UNPKG

375 kBJavaScriptView Raw
1function ch(t) {
2 for (var e = [], i = 1; i < arguments.length; i++)
3 e[i - 1] = arguments[i];
4 var r = Array.from(typeof t == "string" ? [t] : t);
5 r[r.length - 1] = r[r.length - 1].replace(/\r?\n([\t ]*)$/, "");
6 var n = r.reduce(function(a, l) {
7 var h = l.match(/\n([\t ]+|(?!\s).)/g);
8 return h ? a.concat(h.map(function(c) {
9 var u, g;
10 return (g = (u = c.match(/[\t ]/g)) === null || u === void 0 ? void 0 : u.length) !== null && g !== void 0 ? g : 0;
11 })) : a;
12 }, []);
13 if (n.length) {
14 var o = new RegExp(`
15[ ]{` + Math.min.apply(Math, n) + "}", "g");
16 r = r.map(function(a) {
17 return a.replace(o, `
18`);
19 });
20 }
21 r[0] = r[0].replace(/^\r?\n/, "");
22 var s = r[0];
23 return e.forEach(function(a, l) {
24 var h = s.match(/(?:^|\n)( *)$/), c = h ? h[1] : "", u = a;
25 typeof a == "string" && a.includes(`
26`) && (u = String(a).split(`
27`).map(function(g, p) {
28 return p === 0 ? g : "" + c + g;
29 }).join(`
30`)), s += u + r[l + 1];
31 }), s;
32}
33var Es = 60, Ms = Es * 60, Os = Ms * 24, uh = Os * 7, xe = 1e3, Pr = Es * xe, vo = Ms * xe, fh = Os * xe, dh = uh * xe, kn = "millisecond", de = "second", pe = "minute", ge = "hour", Ot = "day", wi = "week", dt = "month", $s = "quarter", $t = "year", me = "date", ph = "YYYY-MM-DDTHH:mm:ssZ", ko = "Invalid Date", gh = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, mh = /\[([^\]]+)]|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;
34const _h = {
35 name: "en",
36 weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
37 months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
38 ordinal: function(e) {
39 var i = ["th", "st", "nd", "rd"], r = e % 100;
40 return "[" + e + (i[(r - 20) % 10] || i[r] || i[0]) + "]";
41 }
42};
43var nn = function(e, i, r) {
44 var n = String(e);
45 return !n || n.length >= i ? e : "" + Array(i + 1 - n.length).join(r) + e;
46}, yh = function(e) {
47 var i = -e.utcOffset(), r = Math.abs(i), n = Math.floor(r / 60), o = r % 60;
48 return (i <= 0 ? "+" : "-") + nn(n, 2, "0") + ":" + nn(o, 2, "0");
49}, Ch = function t(e, i) {
50 if (e.date() < i.date())
51 return -t(i, e);
52 var r = (i.year() - e.year()) * 12 + (i.month() - e.month()), n = e.clone().add(r, dt), o = i - n < 0, s = e.clone().add(r + (o ? -1 : 1), dt);
53 return +(-(r + (i - n) / (o ? n - s : s - n)) || 0);
54}, xh = function(e) {
55 return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
56}, bh = function(e) {
57 var i = {
58 M: dt,
59 y: $t,
60 w: wi,
61 d: Ot,
62 D: me,
63 h: ge,
64 m: pe,
65 s: de,
66 ms: kn,
67 Q: $s
68 };
69 return i[e] || String(e || "").toLowerCase().replace(/s$/, "");
70}, Th = function(e) {
71 return e === void 0;
72};
73const Sh = {
74 s: nn,
75 z: yh,
76 m: Ch,
77 a: xh,
78 p: bh,
79 u: Th
80};
81var Pe = "en", Xt = {};
82Xt[Pe] = _h;
83var wn = function(e) {
84 return e instanceof lr;
85}, Pi = function t(e, i, r) {
86 var n;
87 if (!e)
88 return Pe;
89 if (typeof e == "string") {
90 var o = e.toLowerCase();
91 Xt[o] && (n = o), i && (Xt[o] = i, n = o);
92 var s = e.split("-");
93 if (!n && s.length > 1)
94 return t(s[0]);
95 } else {
96 var a = e.name;
97 Xt[a] = e, n = a;
98 }
99 return !r && n && (Pe = n), n || !r && Pe;
100}, G = function(e, i) {
101 if (wn(e))
102 return e.clone();
103 var r = typeof i == "object" ? i : {};
104 return r.date = e, r.args = arguments, new lr(r);
105}, vh = function(e, i) {
106 return G(e, {
107 locale: i.$L,
108 utc: i.$u,
109 x: i.$x,
110 $offset: i.$offset
111 // todo: refactor; do not use this.$offset in you code
112 });
113}, $ = Sh;
114$.l = Pi;
115$.i = wn;
116$.w = vh;
117var kh = function(e) {
118 var i = e.date, r = e.utc;
119 if (i === null)
120 return /* @__PURE__ */ new Date(NaN);
121 if ($.u(i))
122 return /* @__PURE__ */ new Date();
123 if (i instanceof Date)
124 return new Date(i);
125 if (typeof i == "string" && !/Z$/i.test(i)) {
126 var n = i.match(gh);
127 if (n) {
128 var o = n[2] - 1 || 0, s = (n[7] || "0").substring(0, 3);
129 return r ? new Date(Date.UTC(n[1], o, n[3] || 1, n[4] || 0, n[5] || 0, n[6] || 0, s)) : new Date(n[1], o, n[3] || 1, n[4] || 0, n[5] || 0, n[6] || 0, s);
130 }
131 }
132 return new Date(i);
133}, lr = /* @__PURE__ */ function() {
134 function t(i) {
135 this.$L = Pi(i.locale, null, !0), this.parse(i);
136 }
137 var e = t.prototype;
138 return e.parse = function(r) {
139 this.$d = kh(r), this.$x = r.x || {}, this.init();
140 }, e.init = function() {
141 var r = this.$d;
142 this.$y = r.getFullYear(), this.$M = r.getMonth(), this.$D = r.getDate(), this.$W = r.getDay(), this.$H = r.getHours(), this.$m = r.getMinutes(), this.$s = r.getSeconds(), this.$ms = r.getMilliseconds();
143 }, e.$utils = function() {
144 return $;
145 }, e.isValid = function() {
146 return this.$d.toString() !== ko;
147 }, e.isSame = function(r, n) {
148 var o = G(r);
149 return this.startOf(n) <= o && o <= this.endOf(n);
150 }, e.isAfter = function(r, n) {
151 return G(r) < this.startOf(n);
152 }, e.isBefore = function(r, n) {
153 return this.endOf(n) < G(r);
154 }, e.$g = function(r, n, o) {
155 return $.u(r) ? this[n] : this.set(o, r);
156 }, e.unix = function() {
157 return Math.floor(this.valueOf() / 1e3);
158 }, e.valueOf = function() {
159 return this.$d.getTime();
160 }, e.startOf = function(r, n) {
161 var o = this, s = $.u(n) ? !0 : n, a = $.p(r), l = function(A, C) {
162 var F = $.w(o.$u ? Date.UTC(o.$y, C, A) : new Date(o.$y, C, A), o);
163 return s ? F : F.endOf(Ot);
164 }, h = function(A, C) {
165 var F = [0, 0, 0, 0], D = [23, 59, 59, 999];
166 return $.w(o.toDate()[A].apply(
167 // eslint-disable-line prefer-spread
168 o.toDate("s"),
169 (s ? F : D).slice(C)
170 ), o);
171 }, c = this.$W, u = this.$M, g = this.$D, p = "set" + (this.$u ? "UTC" : "");
172 switch (a) {
173 case $t:
174 return s ? l(1, 0) : l(31, 11);
175 case dt:
176 return s ? l(1, u) : l(0, u + 1);
177 case wi: {
178 var _ = this.$locale().weekStart || 0, T = (c < _ ? c + 7 : c) - _;
179 return l(s ? g - T : g + (6 - T), u);
180 }
181 case Ot:
182 case me:
183 return h(p + "Hours", 0);
184 case ge:
185 return h(p + "Minutes", 1);
186 case pe:
187 return h(p + "Seconds", 2);
188 case de:
189 return h(p + "Milliseconds", 3);
190 default:
191 return this.clone();
192 }
193 }, e.endOf = function(r) {
194 return this.startOf(r, !1);
195 }, e.$set = function(r, n) {
196 var o, s = $.p(r), a = "set" + (this.$u ? "UTC" : ""), l = (o = {}, o[Ot] = a + "Date", o[me] = a + "Date", o[dt] = a + "Month", o[$t] = a + "FullYear", o[ge] = a + "Hours", o[pe] = a + "Minutes", o[de] = a + "Seconds", o[kn] = a + "Milliseconds", o)[s], h = s === Ot ? this.$D + (n - this.$W) : n;
197 if (s === dt || s === $t) {
198 var c = this.clone().set(me, 1);
199 c.$d[l](h), c.init(), this.$d = c.set(me, Math.min(this.$D, c.daysInMonth())).$d;
200 } else
201 l && this.$d[l](h);
202 return this.init(), this;
203 }, e.set = function(r, n) {
204 return this.clone().$set(r, n);
205 }, e.get = function(r) {
206 return this[$.p(r)]();
207 }, e.add = function(r, n) {
208 var o = this, s;
209 r = Number(r);
210 var a = $.p(n), l = function(g) {
211 var p = G(o);
212 return $.w(p.date(p.date() + Math.round(g * r)), o);
213 };
214 if (a === dt)
215 return this.set(dt, this.$M + r);
216 if (a === $t)
217 return this.set($t, this.$y + r);
218 if (a === Ot)
219 return l(1);
220 if (a === wi)
221 return l(7);
222 var h = (s = {}, s[pe] = Pr, s[ge] = vo, s[de] = xe, s)[a] || 1, c = this.$d.getTime() + r * h;
223 return $.w(c, this);
224 }, e.subtract = function(r, n) {
225 return this.add(r * -1, n);
226 }, e.format = function(r) {
227 var n = this, o = this.$locale();
228 if (!this.isValid())
229 return o.invalidDate || ko;
230 var s = r || ph, a = $.z(this), l = this.$H, h = this.$m, c = this.$M, u = o.weekdays, g = o.months, p = o.meridiem, _ = function(F, D, R, V) {
231 return F && (F[D] || F(n, s)) || R[D].slice(0, V);
232 }, T = function(F) {
233 return $.s(l % 12 || 12, F, "0");
234 }, B = p || function(C, F, D) {
235 var R = C < 12 ? "AM" : "PM";
236 return D ? R.toLowerCase() : R;
237 }, A = {
238 YY: String(this.$y).slice(-2),
239 YYYY: this.$y,
240 M: c + 1,
241 MM: $.s(c + 1, 2, "0"),
242 MMM: _(o.monthsShort, c, g, 3),
243 MMMM: _(g, c),
244 D: this.$D,
245 DD: $.s(this.$D, 2, "0"),
246 d: String(this.$W),
247 dd: _(o.weekdaysMin, this.$W, u, 2),
248 ddd: _(o.weekdaysShort, this.$W, u, 3),
249 dddd: u[this.$W],
250 H: String(l),
251 HH: $.s(l, 2, "0"),
252 h: T(1),
253 hh: T(2),
254 a: B(l, h, !0),
255 A: B(l, h, !1),
256 m: String(h),
257 mm: $.s(h, 2, "0"),
258 s: String(this.$s),
259 ss: $.s(this.$s, 2, "0"),
260 SSS: $.s(this.$ms, 3, "0"),
261 Z: a
262 // 'ZZ' logic below
263 };
264 return s.replace(mh, function(C, F) {
265 return F || A[C] || a.replace(":", "");
266 });
267 }, e.utcOffset = function() {
268 return -Math.round(this.$d.getTimezoneOffset() / 15) * 15;
269 }, e.diff = function(r, n, o) {
270 var s, a = $.p(n), l = G(r), h = (l.utcOffset() - this.utcOffset()) * Pr, c = this - l, u = $.m(this, l);
271 return u = (s = {}, s[$t] = u / 12, s[dt] = u, s[$s] = u / 3, s[wi] = (c - h) / dh, s[Ot] = (c - h) / fh, s[ge] = c / vo, s[pe] = c / Pr, s[de] = c / xe, s)[a] || c, o ? u : $.a(u);
272 }, e.daysInMonth = function() {
273 return this.endOf(dt).$D;
274 }, e.$locale = function() {
275 return Xt[this.$L];
276 }, e.locale = function(r, n) {
277 if (!r)
278 return this.$L;
279 var o = this.clone(), s = Pi(r, n, !0);
280 return s && (o.$L = s), o;
281 }, e.clone = function() {
282 return $.w(this.$d, this);
283 }, e.toDate = function() {
284 return new Date(this.valueOf());
285 }, e.toJSON = function() {
286 return this.isValid() ? this.toISOString() : null;
287 }, e.toISOString = function() {
288 return this.$d.toISOString();
289 }, e.toString = function() {
290 return this.$d.toUTCString();
291 }, t;
292}(), Is = lr.prototype;
293G.prototype = Is;
294[["$ms", kn], ["$s", de], ["$m", pe], ["$H", ge], ["$W", Ot], ["$M", dt], ["$y", $t], ["$D", me]].forEach(function(t) {
295 Is[t[1]] = function(e) {
296 return this.$g(e, t[0], t[1]);
297 };
298});
299G.extend = function(t, e) {
300 return t.$i || (t(e, lr, G), t.$i = !0), G;
301};
302G.locale = Pi;
303G.isDayjs = wn;
304G.unix = function(t) {
305 return G(t * 1e3);
306};
307G.en = Xt[Pe];
308G.Ls = Xt;
309G.p = {};
310const wt = {
311 trace: 0,
312 debug: 1,
313 info: 2,
314 warn: 3,
315 error: 4,
316 fatal: 5
317}, b = {
318 trace: (...t) => {
319 },
320 debug: (...t) => {
321 },
322 info: (...t) => {
323 },
324 warn: (...t) => {
325 },
326 error: (...t) => {
327 },
328 fatal: (...t) => {
329 }
330}, Bn = function(t = "fatal") {
331 let e = wt.fatal;
332 typeof t == "string" ? (t = t.toLowerCase(), t in wt && (e = wt[t])) : typeof t == "number" && (e = t), b.trace = () => {
333 }, b.debug = () => {
334 }, b.info = () => {
335 }, b.warn = () => {
336 }, b.error = () => {
337 }, b.fatal = () => {
338 }, e <= wt.fatal && (b.fatal = console.error ? console.error.bind(console, lt("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", lt("FATAL"))), e <= wt.error && (b.error = console.error ? console.error.bind(console, lt("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", lt("ERROR"))), e <= wt.warn && (b.warn = console.warn ? console.warn.bind(console, lt("WARN"), "color: orange") : console.log.bind(console, "\x1B[33m", lt("WARN"))), e <= wt.info && (b.info = console.info ? console.info.bind(console, lt("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", lt("INFO"))), e <= wt.debug && (b.debug = console.debug ? console.debug.bind(console, lt("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", lt("DEBUG"))), e <= wt.trace && (b.trace = console.debug ? console.debug.bind(console, lt("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", lt("TRACE")));
339}, lt = (t) => `%c${G().format("ss.SSS")} : ${t} : `;
340var Fn = {};
341Object.defineProperty(Fn, "__esModule", { value: !0 });
342var Ds = Fn.sanitizeUrl = void 0, wh = /^([^\w]*)(javascript|data|vbscript)/im, Bh = /&#(\w+)(^\w|;)?/g, Fh = /&(newline|tab);/gi, Lh = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim, Ah = /^.+(:|&colon;)/gim, Eh = [".", "/"];
343function Mh(t) {
344 return Eh.indexOf(t[0]) > -1;
345}
346function Oh(t) {
347 return t.replace(Bh, function(e, i) {
348 return String.fromCharCode(i);
349 });
350}
351function $h(t) {
352 var e = Oh(t || "").replace(Fh, "").replace(Lh, "").trim();
353 if (!e)
354 return "about:blank";
355 if (Mh(e))
356 return e;
357 var i = e.match(Ah);
358 if (!i)
359 return e;
360 var r = i[0];
361 return wh.test(r) ? "about:blank" : e;
362}
363Ds = Fn.sanitizeUrl = $h;
364var Ih = { value: () => {
365} };
366function Ns() {
367 for (var t = 0, e = arguments.length, i = {}, r; t < e; ++t) {
368 if (!(r = arguments[t] + "") || r in i || /[\s.]/.test(r))
369 throw new Error("illegal type: " + r);
370 i[r] = [];
371 }
372 return new Bi(i);
373}
374function Bi(t) {
375 this._ = t;
376}
377function Dh(t, e) {
378 return t.trim().split(/^|\s+/).map(function(i) {
379 var r = "", n = i.indexOf(".");
380 if (n >= 0 && (r = i.slice(n + 1), i = i.slice(0, n)), i && !e.hasOwnProperty(i))
381 throw new Error("unknown type: " + i);
382 return { type: i, name: r };
383 });
384}
385Bi.prototype = Ns.prototype = {
386 constructor: Bi,
387 on: function(t, e) {
388 var i = this._, r = Dh(t + "", i), n, o = -1, s = r.length;
389 if (arguments.length < 2) {
390 for (; ++o < s; )
391 if ((n = (t = r[o]).type) && (n = Nh(i[n], t.name)))
392 return n;
393 return;
394 }
395 if (e != null && typeof e != "function")
396 throw new Error("invalid callback: " + e);
397 for (; ++o < s; )
398 if (n = (t = r[o]).type)
399 i[n] = wo(i[n], t.name, e);
400 else if (e == null)
401 for (n in i)
402 i[n] = wo(i[n], t.name, null);
403 return this;
404 },
405 copy: function() {
406 var t = {}, e = this._;
407 for (var i in e)
408 t[i] = e[i].slice();
409 return new Bi(t);
410 },
411 call: function(t, e) {
412 if ((n = arguments.length - 2) > 0)
413 for (var i = new Array(n), r = 0, n, o; r < n; ++r)
414 i[r] = arguments[r + 2];
415 if (!this._.hasOwnProperty(t))
416 throw new Error("unknown type: " + t);
417 for (o = this._[t], r = 0, n = o.length; r < n; ++r)
418 o[r].value.apply(e, i);
419 },
420 apply: function(t, e, i) {
421 if (!this._.hasOwnProperty(t))
422 throw new Error("unknown type: " + t);
423 for (var r = this._[t], n = 0, o = r.length; n < o; ++n)
424 r[n].value.apply(e, i);
425 }
426};
427function Nh(t, e) {
428 for (var i = 0, r = t.length, n; i < r; ++i)
429 if ((n = t[i]).name === e)
430 return n.value;
431}
432function wo(t, e, i) {
433 for (var r = 0, n = t.length; r < n; ++r)
434 if (t[r].name === e) {
435 t[r] = Ih, t = t.slice(0, r).concat(t.slice(r + 1));
436 break;
437 }
438 return i != null && t.push({ name: e, value: i }), t;
439}
440var on = "http://www.w3.org/1999/xhtml";
441const Bo = {
442 svg: "http://www.w3.org/2000/svg",
443 xhtml: on,
444 xlink: "http://www.w3.org/1999/xlink",
445 xml: "http://www.w3.org/XML/1998/namespace",
446 xmlns: "http://www.w3.org/2000/xmlns/"
447};
448function hr(t) {
449 var e = t += "", i = e.indexOf(":");
450 return i >= 0 && (e = t.slice(0, i)) !== "xmlns" && (t = t.slice(i + 1)), Bo.hasOwnProperty(e) ? { space: Bo[e], local: t } : t;
451}
452function Rh(t) {
453 return function() {
454 var e = this.ownerDocument, i = this.namespaceURI;
455 return i === on && e.documentElement.namespaceURI === on ? e.createElement(t) : e.createElementNS(i, t);
456 };
457}
458function qh(t) {
459 return function() {
460 return this.ownerDocument.createElementNS(t.space, t.local);
461 };
462}
463function Rs(t) {
464 var e = hr(t);
465 return (e.local ? qh : Rh)(e);
466}
467function Ph() {
468}
469function Ln(t) {
470 return t == null ? Ph : function() {
471 return this.querySelector(t);
472 };
473}
474function zh(t) {
475 typeof t != "function" && (t = Ln(t));
476 for (var e = this._groups, i = e.length, r = new Array(i), n = 0; n < i; ++n)
477 for (var o = e[n], s = o.length, a = r[n] = new Array(s), l, h, c = 0; c < s; ++c)
478 (l = o[c]) && (h = t.call(l, l.__data__, c, o)) && ("__data__" in l && (h.__data__ = l.__data__), a[c] = h);
479 return new st(r, this._parents);
480}
481function Wh(t) {
482 return t == null ? [] : Array.isArray(t) ? t : Array.from(t);
483}
484function Hh() {
485 return [];
486}
487function qs(t) {
488 return t == null ? Hh : function() {
489 return this.querySelectorAll(t);
490 };
491}
492function jh(t) {
493 return function() {
494 return Wh(t.apply(this, arguments));
495 };
496}
497function Uh(t) {
498 typeof t == "function" ? t = jh(t) : t = qs(t);
499 for (var e = this._groups, i = e.length, r = [], n = [], o = 0; o < i; ++o)
500 for (var s = e[o], a = s.length, l, h = 0; h < a; ++h)
501 (l = s[h]) && (r.push(t.call(l, l.__data__, h, s)), n.push(l));
502 return new st(r, n);
503}
504function Ps(t) {
505 return function() {
506 return this.matches(t);
507 };
508}
509function zs(t) {
510 return function(e) {
511 return e.matches(t);
512 };
513}
514var Yh = Array.prototype.find;
515function Gh(t) {
516 return function() {
517 return Yh.call(this.children, t);
518 };
519}
520function Vh() {
521 return this.firstElementChild;
522}
523function Xh(t) {
524 return this.select(t == null ? Vh : Gh(typeof t == "function" ? t : zs(t)));
525}
526var Kh = Array.prototype.filter;
527function Zh() {
528 return Array.from(this.children);
529}
530function Jh(t) {
531 return function() {
532 return Kh.call(this.children, t);
533 };
534}
535function Qh(t) {
536 return this.selectAll(t == null ? Zh : Jh(typeof t == "function" ? t : zs(t)));
537}
538function tc(t) {
539 typeof t != "function" && (t = Ps(t));
540 for (var e = this._groups, i = e.length, r = new Array(i), n = 0; n < i; ++n)
541 for (var o = e[n], s = o.length, a = r[n] = [], l, h = 0; h < s; ++h)
542 (l = o[h]) && t.call(l, l.__data__, h, o) && a.push(l);
543 return new st(r, this._parents);
544}
545function Ws(t) {
546 return new Array(t.length);
547}
548function ec() {
549 return new st(this._enter || this._groups.map(Ws), this._parents);
550}
551function zi(t, e) {
552 this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = e;
553}
554zi.prototype = {
555 constructor: zi,
556 appendChild: function(t) {
557 return this._parent.insertBefore(t, this._next);
558 },
559 insertBefore: function(t, e) {
560 return this._parent.insertBefore(t, e);
561 },
562 querySelector: function(t) {
563 return this._parent.querySelector(t);
564 },
565 querySelectorAll: function(t) {
566 return this._parent.querySelectorAll(t);
567 }
568};
569function ic(t) {
570 return function() {
571 return t;
572 };
573}
574function rc(t, e, i, r, n, o) {
575 for (var s = 0, a, l = e.length, h = o.length; s < h; ++s)
576 (a = e[s]) ? (a.__data__ = o[s], r[s] = a) : i[s] = new zi(t, o[s]);
577 for (; s < l; ++s)
578 (a = e[s]) && (n[s] = a);
579}
580function nc(t, e, i, r, n, o, s) {
581 var a, l, h = /* @__PURE__ */ new Map(), c = e.length, u = o.length, g = new Array(c), p;
582 for (a = 0; a < c; ++a)
583 (l = e[a]) && (g[a] = p = s.call(l, l.__data__, a, e) + "", h.has(p) ? n[a] = l : h.set(p, l));
584 for (a = 0; a < u; ++a)
585 p = s.call(t, o[a], a, o) + "", (l = h.get(p)) ? (r[a] = l, l.__data__ = o[a], h.delete(p)) : i[a] = new zi(t, o[a]);
586 for (a = 0; a < c; ++a)
587 (l = e[a]) && h.get(g[a]) === l && (n[a] = l);
588}
589function oc(t) {
590 return t.__data__;
591}
592function sc(t, e) {
593 if (!arguments.length)
594 return Array.from(this, oc);
595 var i = e ? nc : rc, r = this._parents, n = this._groups;
596 typeof t != "function" && (t = ic(t));
597 for (var o = n.length, s = new Array(o), a = new Array(o), l = new Array(o), h = 0; h < o; ++h) {
598 var c = r[h], u = n[h], g = u.length, p = ac(t.call(c, c && c.__data__, h, r)), _ = p.length, T = a[h] = new Array(_), B = s[h] = new Array(_), A = l[h] = new Array(g);
599 i(c, u, T, B, A, p, e);
600 for (var C = 0, F = 0, D, R; C < _; ++C)
601 if (D = T[C]) {
602 for (C >= F && (F = C + 1); !(R = B[F]) && ++F < _; )
603 ;
604 D._next = R || null;
605 }
606 }
607 return s = new st(s, r), s._enter = a, s._exit = l, s;
608}
609function ac(t) {
610 return typeof t == "object" && "length" in t ? t : Array.from(t);
611}
612function lc() {
613 return new st(this._exit || this._groups.map(Ws), this._parents);
614}
615function hc(t, e, i) {
616 var r = this.enter(), n = this, o = this.exit();
617 return typeof t == "function" ? (r = t(r), r && (r = r.selection())) : r = r.append(t + ""), e != null && (n = e(n), n && (n = n.selection())), i == null ? o.remove() : i(o), r && n ? r.merge(n).order() : n;
618}
619function cc(t) {
620 for (var e = t.selection ? t.selection() : t, i = this._groups, r = e._groups, n = i.length, o = r.length, s = Math.min(n, o), a = new Array(n), l = 0; l < s; ++l)
621 for (var h = i[l], c = r[l], u = h.length, g = a[l] = new Array(u), p, _ = 0; _ < u; ++_)
622 (p = h[_] || c[_]) && (g[_] = p);
623 for (; l < n; ++l)
624 a[l] = i[l];
625 return new st(a, this._parents);
626}
627function uc() {
628 for (var t = this._groups, e = -1, i = t.length; ++e < i; )
629 for (var r = t[e], n = r.length - 1, o = r[n], s; --n >= 0; )
630 (s = r[n]) && (o && s.compareDocumentPosition(o) ^ 4 && o.parentNode.insertBefore(s, o), o = s);
631 return this;
632}
633function fc(t) {
634 t || (t = dc);
635 function e(u, g) {
636 return u && g ? t(u.__data__, g.__data__) : !u - !g;
637 }
638 for (var i = this._groups, r = i.length, n = new Array(r), o = 0; o < r; ++o) {
639 for (var s = i[o], a = s.length, l = n[o] = new Array(a), h, c = 0; c < a; ++c)
640 (h = s[c]) && (l[c] = h);
641 l.sort(e);
642 }
643 return new st(n, this._parents).order();
644}
645function dc(t, e) {
646 return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
647}
648function pc() {
649 var t = arguments[0];
650 return arguments[0] = this, t.apply(null, arguments), this;
651}
652function gc() {
653 return Array.from(this);
654}
655function mc() {
656 for (var t = this._groups, e = 0, i = t.length; e < i; ++e)
657 for (var r = t[e], n = 0, o = r.length; n < o; ++n) {
658 var s = r[n];
659 if (s)
660 return s;
661 }
662 return null;
663}
664function _c() {
665 let t = 0;
666 for (const e of this)
667 ++t;
668 return t;
669}
670function yc() {
671 return !this.node();
672}
673function Cc(t) {
674 for (var e = this._groups, i = 0, r = e.length; i < r; ++i)
675 for (var n = e[i], o = 0, s = n.length, a; o < s; ++o)
676 (a = n[o]) && t.call(a, a.__data__, o, n);
677 return this;
678}
679function xc(t) {
680 return function() {
681 this.removeAttribute(t);
682 };
683}
684function bc(t) {
685 return function() {
686 this.removeAttributeNS(t.space, t.local);
687 };
688}
689function Tc(t, e) {
690 return function() {
691 this.setAttribute(t, e);
692 };
693}
694function Sc(t, e) {
695 return function() {
696 this.setAttributeNS(t.space, t.local, e);
697 };
698}
699function vc(t, e) {
700 return function() {
701 var i = e.apply(this, arguments);
702 i == null ? this.removeAttribute(t) : this.setAttribute(t, i);
703 };
704}
705function kc(t, e) {
706 return function() {
707 var i = e.apply(this, arguments);
708 i == null ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, i);
709 };
710}
711function wc(t, e) {
712 var i = hr(t);
713 if (arguments.length < 2) {
714 var r = this.node();
715 return i.local ? r.getAttributeNS(i.space, i.local) : r.getAttribute(i);
716 }
717 return this.each((e == null ? i.local ? bc : xc : typeof e == "function" ? i.local ? kc : vc : i.local ? Sc : Tc)(i, e));
718}
719function Hs(t) {
720 return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView;
721}
722function Bc(t) {
723 return function() {
724 this.style.removeProperty(t);
725 };
726}
727function Fc(t, e, i) {
728 return function() {
729 this.style.setProperty(t, e, i);
730 };
731}
732function Lc(t, e, i) {
733 return function() {
734 var r = e.apply(this, arguments);
735 r == null ? this.style.removeProperty(t) : this.style.setProperty(t, r, i);
736 };
737}
738function Ac(t, e, i) {
739 return arguments.length > 1 ? this.each((e == null ? Bc : typeof e == "function" ? Lc : Fc)(t, e, i ?? "")) : be(this.node(), t);
740}
741function be(t, e) {
742 return t.style.getPropertyValue(e) || Hs(t).getComputedStyle(t, null).getPropertyValue(e);
743}
744function Ec(t) {
745 return function() {
746 delete this[t];
747 };
748}
749function Mc(t, e) {
750 return function() {
751 this[t] = e;
752 };
753}
754function Oc(t, e) {
755 return function() {
756 var i = e.apply(this, arguments);
757 i == null ? delete this[t] : this[t] = i;
758 };
759}
760function $c(t, e) {
761 return arguments.length > 1 ? this.each((e == null ? Ec : typeof e == "function" ? Oc : Mc)(t, e)) : this.node()[t];
762}
763function js(t) {
764 return t.trim().split(/^|\s+/);
765}
766function An(t) {
767 return t.classList || new Us(t);
768}
769function Us(t) {
770 this._node = t, this._names = js(t.getAttribute("class") || "");
771}
772Us.prototype = {
773 add: function(t) {
774 var e = this._names.indexOf(t);
775 e < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" ")));
776 },
777 remove: function(t) {
778 var e = this._names.indexOf(t);
779 e >= 0 && (this._names.splice(e, 1), this._node.setAttribute("class", this._names.join(" ")));
780 },
781 contains: function(t) {
782 return this._names.indexOf(t) >= 0;
783 }
784};
785function Ys(t, e) {
786 for (var i = An(t), r = -1, n = e.length; ++r < n; )
787 i.add(e[r]);
788}
789function Gs(t, e) {
790 for (var i = An(t), r = -1, n = e.length; ++r < n; )
791 i.remove(e[r]);
792}
793function Ic(t) {
794 return function() {
795 Ys(this, t);
796 };
797}
798function Dc(t) {
799 return function() {
800 Gs(this, t);
801 };
802}
803function Nc(t, e) {
804 return function() {
805 (e.apply(this, arguments) ? Ys : Gs)(this, t);
806 };
807}
808function Rc(t, e) {
809 var i = js(t + "");
810 if (arguments.length < 2) {
811 for (var r = An(this.node()), n = -1, o = i.length; ++n < o; )
812 if (!r.contains(i[n]))
813 return !1;
814 return !0;
815 }
816 return this.each((typeof e == "function" ? Nc : e ? Ic : Dc)(i, e));
817}
818function qc() {
819 this.textContent = "";
820}
821function Pc(t) {
822 return function() {
823 this.textContent = t;
824 };
825}
826function zc(t) {
827 return function() {
828 var e = t.apply(this, arguments);
829 this.textContent = e ?? "";
830 };
831}
832function Wc(t) {
833 return arguments.length ? this.each(t == null ? qc : (typeof t == "function" ? zc : Pc)(t)) : this.node().textContent;
834}
835function Hc() {
836 this.innerHTML = "";
837}
838function jc(t) {
839 return function() {
840 this.innerHTML = t;
841 };
842}
843function Uc(t) {
844 return function() {
845 var e = t.apply(this, arguments);
846 this.innerHTML = e ?? "";
847 };
848}
849function Yc(t) {
850 return arguments.length ? this.each(t == null ? Hc : (typeof t == "function" ? Uc : jc)(t)) : this.node().innerHTML;
851}
852function Gc() {
853 this.nextSibling && this.parentNode.appendChild(this);
854}
855function Vc() {
856 return this.each(Gc);
857}
858function Xc() {
859 this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);
860}
861function Kc() {
862 return this.each(Xc);
863}
864function Zc(t) {
865 var e = typeof t == "function" ? t : Rs(t);
866 return this.select(function() {
867 return this.appendChild(e.apply(this, arguments));
868 });
869}
870function Jc() {
871 return null;
872}
873function Qc(t, e) {
874 var i = typeof t == "function" ? t : Rs(t), r = e == null ? Jc : typeof e == "function" ? e : Ln(e);
875 return this.select(function() {
876 return this.insertBefore(i.apply(this, arguments), r.apply(this, arguments) || null);
877 });
878}
879function tu() {
880 var t = this.parentNode;
881 t && t.removeChild(this);
882}
883function eu() {
884 return this.each(tu);
885}
886function iu() {
887 var t = this.cloneNode(!1), e = this.parentNode;
888 return e ? e.insertBefore(t, this.nextSibling) : t;
889}
890function ru() {
891 var t = this.cloneNode(!0), e = this.parentNode;
892 return e ? e.insertBefore(t, this.nextSibling) : t;
893}
894function nu(t) {
895 return this.select(t ? ru : iu);
896}
897function ou(t) {
898 return arguments.length ? this.property("__data__", t) : this.node().__data__;
899}
900function su(t) {
901 return function(e) {
902 t.call(this, e, this.__data__);
903 };
904}
905function au(t) {
906 return t.trim().split(/^|\s+/).map(function(e) {
907 var i = "", r = e.indexOf(".");
908 return r >= 0 && (i = e.slice(r + 1), e = e.slice(0, r)), { type: e, name: i };
909 });
910}
911function lu(t) {
912 return function() {
913 var e = this.__on;
914 if (e) {
915 for (var i = 0, r = -1, n = e.length, o; i < n; ++i)
916 o = e[i], (!t.type || o.type === t.type) && o.name === t.name ? this.removeEventListener(o.type, o.listener, o.options) : e[++r] = o;
917 ++r ? e.length = r : delete this.__on;
918 }
919 };
920}
921function hu(t, e, i) {
922 return function() {
923 var r = this.__on, n, o = su(e);
924 if (r) {
925 for (var s = 0, a = r.length; s < a; ++s)
926 if ((n = r[s]).type === t.type && n.name === t.name) {
927 this.removeEventListener(n.type, n.listener, n.options), this.addEventListener(n.type, n.listener = o, n.options = i), n.value = e;
928 return;
929 }
930 }
931 this.addEventListener(t.type, o, i), n = { type: t.type, name: t.name, value: e, listener: o, options: i }, r ? r.push(n) : this.__on = [n];
932 };
933}
934function cu(t, e, i) {
935 var r = au(t + ""), n, o = r.length, s;
936 if (arguments.length < 2) {
937 var a = this.node().__on;
938 if (a) {
939 for (var l = 0, h = a.length, c; l < h; ++l)
940 for (n = 0, c = a[l]; n < o; ++n)
941 if ((s = r[n]).type === c.type && s.name === c.name)
942 return c.value;
943 }
944 return;
945 }
946 for (a = e ? hu : lu, n = 0; n < o; ++n)
947 this.each(a(r[n], e, i));
948 return this;
949}
950function Vs(t, e, i) {
951 var r = Hs(t), n = r.CustomEvent;
952 typeof n == "function" ? n = new n(e, i) : (n = r.document.createEvent("Event"), i ? (n.initEvent(e, i.bubbles, i.cancelable), n.detail = i.detail) : n.initEvent(e, !1, !1)), t.dispatchEvent(n);
953}
954function uu(t, e) {
955 return function() {
956 return Vs(this, t, e);
957 };
958}
959function fu(t, e) {
960 return function() {
961 return Vs(this, t, e.apply(this, arguments));
962 };
963}
964function du(t, e) {
965 return this.each((typeof e == "function" ? fu : uu)(t, e));
966}
967function* pu() {
968 for (var t = this._groups, e = 0, i = t.length; e < i; ++e)
969 for (var r = t[e], n = 0, o = r.length, s; n < o; ++n)
970 (s = r[n]) && (yield s);
971}
972var Xs = [null];
973function st(t, e) {
974 this._groups = t, this._parents = e;
975}
976function ei() {
977 return new st([[document.documentElement]], Xs);
978}
979function gu() {
980 return this;
981}
982st.prototype = ei.prototype = {
983 constructor: st,
984 select: zh,
985 selectAll: Uh,
986 selectChild: Xh,
987 selectChildren: Qh,
988 filter: tc,
989 data: sc,
990 enter: ec,
991 exit: lc,
992 join: hc,
993 merge: cc,
994 selection: gu,
995 order: uc,
996 sort: fc,
997 call: pc,
998 nodes: gc,
999 node: mc,
1000 size: _c,
1001 empty: yc,
1002 each: Cc,
1003 attr: wc,
1004 style: Ac,
1005 property: $c,
1006 classed: Rc,
1007 text: Wc,
1008 html: Yc,
1009 raise: Vc,
1010 lower: Kc,
1011 append: Zc,
1012 insert: Qc,
1013 remove: eu,
1014 clone: nu,
1015 datum: ou,
1016 on: cu,
1017 dispatch: du,
1018 [Symbol.iterator]: pu
1019};
1020function Ct(t) {
1021 return typeof t == "string" ? new st([[document.querySelector(t)]], [document.documentElement]) : new st([[t]], Xs);
1022}
1023function En(t, e, i) {
1024 t.prototype = e.prototype = i, i.constructor = t;
1025}
1026function Ks(t, e) {
1027 var i = Object.create(t.prototype);
1028 for (var r in e)
1029 i[r] = e[r];
1030 return i;
1031}
1032function ii() {
1033}
1034var Ue = 0.7, Wi = 1 / Ue, Ce = "\\s*([+-]?\\d+)\\s*", Ye = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", xt = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", mu = /^#([0-9a-f]{3,8})$/, _u = new RegExp(`^rgb\\(${Ce},${Ce},${Ce}\\)$`), yu = new RegExp(`^rgb\\(${xt},${xt},${xt}\\)$`), Cu = new RegExp(`^rgba\\(${Ce},${Ce},${Ce},${Ye}\\)$`), xu = new RegExp(`^rgba\\(${xt},${xt},${xt},${Ye}\\)$`), bu = new RegExp(`^hsl\\(${Ye},${xt},${xt}\\)$`), Tu = new RegExp(`^hsla\\(${Ye},${xt},${xt},${Ye}\\)$`), Fo = {
1035 aliceblue: 15792383,
1036 antiquewhite: 16444375,
1037 aqua: 65535,
1038 aquamarine: 8388564,
1039 azure: 15794175,
1040 beige: 16119260,
1041 bisque: 16770244,
1042 black: 0,
1043 blanchedalmond: 16772045,
1044 blue: 255,
1045 blueviolet: 9055202,
1046 brown: 10824234,
1047 burlywood: 14596231,
1048 cadetblue: 6266528,
1049 chartreuse: 8388352,
1050 chocolate: 13789470,
1051 coral: 16744272,
1052 cornflowerblue: 6591981,
1053 cornsilk: 16775388,
1054 crimson: 14423100,
1055 cyan: 65535,
1056 darkblue: 139,
1057 darkcyan: 35723,
1058 darkgoldenrod: 12092939,
1059 darkgray: 11119017,
1060 darkgreen: 25600,
1061 darkgrey: 11119017,
1062 darkkhaki: 12433259,
1063 darkmagenta: 9109643,
1064 darkolivegreen: 5597999,
1065 darkorange: 16747520,
1066 darkorchid: 10040012,
1067 darkred: 9109504,
1068 darksalmon: 15308410,
1069 darkseagreen: 9419919,
1070 darkslateblue: 4734347,
1071 darkslategray: 3100495,
1072 darkslategrey: 3100495,
1073 darkturquoise: 52945,
1074 darkviolet: 9699539,
1075 deeppink: 16716947,
1076 deepskyblue: 49151,
1077 dimgray: 6908265,
1078 dimgrey: 6908265,
1079 dodgerblue: 2003199,
1080 firebrick: 11674146,
1081 floralwhite: 16775920,
1082 forestgreen: 2263842,
1083 fuchsia: 16711935,
1084 gainsboro: 14474460,
1085 ghostwhite: 16316671,
1086 gold: 16766720,
1087 goldenrod: 14329120,
1088 gray: 8421504,
1089 green: 32768,
1090 greenyellow: 11403055,
1091 grey: 8421504,
1092 honeydew: 15794160,
1093 hotpink: 16738740,
1094 indianred: 13458524,
1095 indigo: 4915330,
1096 ivory: 16777200,
1097 khaki: 15787660,
1098 lavender: 15132410,
1099 lavenderblush: 16773365,
1100 lawngreen: 8190976,
1101 lemonchiffon: 16775885,
1102 lightblue: 11393254,
1103 lightcoral: 15761536,
1104 lightcyan: 14745599,
1105 lightgoldenrodyellow: 16448210,
1106 lightgray: 13882323,
1107 lightgreen: 9498256,
1108 lightgrey: 13882323,
1109 lightpink: 16758465,
1110 lightsalmon: 16752762,
1111 lightseagreen: 2142890,
1112 lightskyblue: 8900346,
1113 lightslategray: 7833753,
1114 lightslategrey: 7833753,
1115 lightsteelblue: 11584734,
1116 lightyellow: 16777184,
1117 lime: 65280,
1118 limegreen: 3329330,
1119 linen: 16445670,
1120 magenta: 16711935,
1121 maroon: 8388608,
1122 mediumaquamarine: 6737322,
1123 mediumblue: 205,
1124 mediumorchid: 12211667,
1125 mediumpurple: 9662683,
1126 mediumseagreen: 3978097,
1127 mediumslateblue: 8087790,
1128 mediumspringgreen: 64154,
1129 mediumturquoise: 4772300,
1130 mediumvioletred: 13047173,
1131 midnightblue: 1644912,
1132 mintcream: 16121850,
1133 mistyrose: 16770273,
1134 moccasin: 16770229,
1135 navajowhite: 16768685,
1136 navy: 128,
1137 oldlace: 16643558,
1138 olive: 8421376,
1139 olivedrab: 7048739,
1140 orange: 16753920,
1141 orangered: 16729344,
1142 orchid: 14315734,
1143 palegoldenrod: 15657130,
1144 palegreen: 10025880,
1145 paleturquoise: 11529966,
1146 palevioletred: 14381203,
1147 papayawhip: 16773077,
1148 peachpuff: 16767673,
1149 peru: 13468991,
1150 pink: 16761035,
1151 plum: 14524637,
1152 powderblue: 11591910,
1153 purple: 8388736,
1154 rebeccapurple: 6697881,
1155 red: 16711680,
1156 rosybrown: 12357519,
1157 royalblue: 4286945,
1158 saddlebrown: 9127187,
1159 salmon: 16416882,
1160 sandybrown: 16032864,
1161 seagreen: 3050327,
1162 seashell: 16774638,
1163 sienna: 10506797,
1164 silver: 12632256,
1165 skyblue: 8900331,
1166 slateblue: 6970061,
1167 slategray: 7372944,
1168 slategrey: 7372944,
1169 snow: 16775930,
1170 springgreen: 65407,
1171 steelblue: 4620980,
1172 tan: 13808780,
1173 teal: 32896,
1174 thistle: 14204888,
1175 tomato: 16737095,
1176 turquoise: 4251856,
1177 violet: 15631086,
1178 wheat: 16113331,
1179 white: 16777215,
1180 whitesmoke: 16119285,
1181 yellow: 16776960,
1182 yellowgreen: 10145074
1183};
1184En(ii, Ge, {
1185 copy(t) {
1186 return Object.assign(new this.constructor(), this, t);
1187 },
1188 displayable() {
1189 return this.rgb().displayable();
1190 },
1191 hex: Lo,
1192 // Deprecated! Use color.formatHex.
1193 formatHex: Lo,
1194 formatHex8: Su,
1195 formatHsl: vu,
1196 formatRgb: Ao,
1197 toString: Ao
1198});
1199function Lo() {
1200 return this.rgb().formatHex();
1201}
1202function Su() {
1203 return this.rgb().formatHex8();
1204}
1205function vu() {
1206 return Zs(this).formatHsl();
1207}
1208function Ao() {
1209 return this.rgb().formatRgb();
1210}
1211function Ge(t) {
1212 var e, i;
1213 return t = (t + "").trim().toLowerCase(), (e = mu.exec(t)) ? (i = e[1].length, e = parseInt(e[1], 16), i === 6 ? Eo(e) : i === 3 ? new it(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, (e & 15) << 4 | e & 15, 1) : i === 8 ? _i(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (e & 255) / 255) : i === 4 ? _i(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, ((e & 15) << 4 | e & 15) / 255) : null) : (e = _u.exec(t)) ? new it(e[1], e[2], e[3], 1) : (e = yu.exec(t)) ? new it(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, 1) : (e = Cu.exec(t)) ? _i(e[1], e[2], e[3], e[4]) : (e = xu.exec(t)) ? _i(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, e[4]) : (e = bu.exec(t)) ? $o(e[1], e[2] / 100, e[3] / 100, 1) : (e = Tu.exec(t)) ? $o(e[1], e[2] / 100, e[3] / 100, e[4]) : Fo.hasOwnProperty(t) ? Eo(Fo[t]) : t === "transparent" ? new it(NaN, NaN, NaN, 0) : null;
1214}
1215function Eo(t) {
1216 return new it(t >> 16 & 255, t >> 8 & 255, t & 255, 1);
1217}
1218function _i(t, e, i, r) {
1219 return r <= 0 && (t = e = i = NaN), new it(t, e, i, r);
1220}
1221function ku(t) {
1222 return t instanceof ii || (t = Ge(t)), t ? (t = t.rgb(), new it(t.r, t.g, t.b, t.opacity)) : new it();
1223}
1224function sn(t, e, i, r) {
1225 return arguments.length === 1 ? ku(t) : new it(t, e, i, r ?? 1);
1226}
1227function it(t, e, i, r) {
1228 this.r = +t, this.g = +e, this.b = +i, this.opacity = +r;
1229}
1230En(it, sn, Ks(ii, {
1231 brighter(t) {
1232 return t = t == null ? Wi : Math.pow(Wi, t), new it(this.r * t, this.g * t, this.b * t, this.opacity);
1233 },
1234 darker(t) {
1235 return t = t == null ? Ue : Math.pow(Ue, t), new it(this.r * t, this.g * t, this.b * t, this.opacity);
1236 },
1237 rgb() {
1238 return this;
1239 },
1240 clamp() {
1241 return new it(Kt(this.r), Kt(this.g), Kt(this.b), Hi(this.opacity));
1242 },
1243 displayable() {
1244 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;
1245 },
1246 hex: Mo,
1247 // Deprecated! Use color.formatHex.
1248 formatHex: Mo,
1249 formatHex8: wu,
1250 formatRgb: Oo,
1251 toString: Oo
1252}));
1253function Mo() {
1254 return `#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}`;
1255}
1256function wu() {
1257 return `#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}${Vt((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
1258}
1259function Oo() {
1260 const t = Hi(this.opacity);
1261 return `${t === 1 ? "rgb(" : "rgba("}${Kt(this.r)}, ${Kt(this.g)}, ${Kt(this.b)}${t === 1 ? ")" : `, ${t})`}`;
1262}
1263function Hi(t) {
1264 return isNaN(t) ? 1 : Math.max(0, Math.min(1, t));
1265}
1266function Kt(t) {
1267 return Math.max(0, Math.min(255, Math.round(t) || 0));
1268}
1269function Vt(t) {
1270 return t = Kt(t), (t < 16 ? "0" : "") + t.toString(16);
1271}
1272function $o(t, e, i, r) {
1273 return r <= 0 ? t = e = i = NaN : i <= 0 || i >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new pt(t, e, i, r);
1274}
1275function Zs(t) {
1276 if (t instanceof pt)
1277 return new pt(t.h, t.s, t.l, t.opacity);
1278 if (t instanceof ii || (t = Ge(t)), !t)
1279 return new pt();
1280 if (t instanceof pt)
1281 return t;
1282 t = t.rgb();
1283 var e = t.r / 255, i = t.g / 255, r = t.b / 255, n = Math.min(e, i, r), o = Math.max(e, i, r), s = NaN, a = o - n, l = (o + n) / 2;
1284 return a ? (e === o ? s = (i - r) / a + (i < r) * 6 : i === o ? s = (r - e) / a + 2 : s = (e - i) / a + 4, a /= l < 0.5 ? o + n : 2 - o - n, s *= 60) : a = l > 0 && l < 1 ? 0 : s, new pt(s, a, l, t.opacity);
1285}
1286function Bu(t, e, i, r) {
1287 return arguments.length === 1 ? Zs(t) : new pt(t, e, i, r ?? 1);
1288}
1289function pt(t, e, i, r) {
1290 this.h = +t, this.s = +e, this.l = +i, this.opacity = +r;
1291}
1292En(pt, Bu, Ks(ii, {
1293 brighter(t) {
1294 return t = t == null ? Wi : Math.pow(Wi, t), new pt(this.h, this.s, this.l * t, this.opacity);
1295 },
1296 darker(t) {
1297 return t = t == null ? Ue : Math.pow(Ue, t), new pt(this.h, this.s, this.l * t, this.opacity);
1298 },
1299 rgb() {
1300 var t = this.h % 360 + (this.h < 0) * 360, e = isNaN(t) || isNaN(this.s) ? 0 : this.s, i = this.l, r = i + (i < 0.5 ? i : 1 - i) * e, n = 2 * i - r;
1301 return new it(
1302 zr(t >= 240 ? t - 240 : t + 120, n, r),
1303 zr(t, n, r),
1304 zr(t < 120 ? t + 240 : t - 120, n, r),
1305 this.opacity
1306 );
1307 },
1308 clamp() {
1309 return new pt(Io(this.h), yi(this.s), yi(this.l), Hi(this.opacity));
1310 },
1311 displayable() {
1312 return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
1313 },
1314 formatHsl() {
1315 const t = Hi(this.opacity);
1316 return `${t === 1 ? "hsl(" : "hsla("}${Io(this.h)}, ${yi(this.s) * 100}%, ${yi(this.l) * 100}%${t === 1 ? ")" : `, ${t})`}`;
1317 }
1318}));
1319function Io(t) {
1320 return t = (t || 0) % 360, t < 0 ? t + 360 : t;
1321}
1322function yi(t) {
1323 return Math.max(0, Math.min(1, t || 0));
1324}
1325function zr(t, e, i) {
1326 return (t < 60 ? e + (i - e) * t / 60 : t < 180 ? i : t < 240 ? e + (i - e) * (240 - t) / 60 : e) * 255;
1327}
1328const Mn = (t) => () => t;
1329function Js(t, e) {
1330 return function(i) {
1331 return t + i * e;
1332 };
1333}
1334function Fu(t, e, i) {
1335 return t = Math.pow(t, i), e = Math.pow(e, i) - t, i = 1 / i, function(r) {
1336 return Math.pow(t + r * e, i);
1337 };
1338}
1339function ib(t, e) {
1340 var i = e - t;
1341 return i ? Js(t, i > 180 || i < -180 ? i - 360 * Math.round(i / 360) : i) : Mn(isNaN(t) ? e : t);
1342}
1343function Lu(t) {
1344 return (t = +t) == 1 ? Qs : function(e, i) {
1345 return i - e ? Fu(e, i, t) : Mn(isNaN(e) ? i : e);
1346 };
1347}
1348function Qs(t, e) {
1349 var i = e - t;
1350 return i ? Js(t, i) : Mn(isNaN(t) ? e : t);
1351}
1352const Do = function t(e) {
1353 var i = Lu(e);
1354 function r(n, o) {
1355 var s = i((n = sn(n)).r, (o = sn(o)).r), a = i(n.g, o.g), l = i(n.b, o.b), h = Qs(n.opacity, o.opacity);
1356 return function(c) {
1357 return n.r = s(c), n.g = a(c), n.b = l(c), n.opacity = h(c), n + "";
1358 };
1359 }
1360 return r.gamma = t, r;
1361}(1);
1362function It(t, e) {
1363 return t = +t, e = +e, function(i) {
1364 return t * (1 - i) + e * i;
1365 };
1366}
1367var an = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Wr = new RegExp(an.source, "g");
1368function Au(t) {
1369 return function() {
1370 return t;
1371 };
1372}
1373function Eu(t) {
1374 return function(e) {
1375 return t(e) + "";
1376 };
1377}
1378function Mu(t, e) {
1379 var i = an.lastIndex = Wr.lastIndex = 0, r, n, o, s = -1, a = [], l = [];
1380 for (t = t + "", e = e + ""; (r = an.exec(t)) && (n = Wr.exec(e)); )
1381 (o = n.index) > i && (o = e.slice(i, o), a[s] ? a[s] += o : a[++s] = o), (r = r[0]) === (n = n[0]) ? a[s] ? a[s] += n : a[++s] = n : (a[++s] = null, l.push({ i: s, x: It(r, n) })), i = Wr.lastIndex;
1382 return i < e.length && (o = e.slice(i), a[s] ? a[s] += o : a[++s] = o), a.length < 2 ? l[0] ? Eu(l[0].x) : Au(e) : (e = l.length, function(h) {
1383 for (var c = 0, u; c < e; ++c)
1384 a[(u = l[c]).i] = u.x(h);
1385 return a.join("");
1386 });
1387}
1388var No = 180 / Math.PI, ln = {
1389 translateX: 0,
1390 translateY: 0,
1391 rotate: 0,
1392 skewX: 0,
1393 scaleX: 1,
1394 scaleY: 1
1395};
1396function ta(t, e, i, r, n, o) {
1397 var s, a, l;
1398 return (s = Math.sqrt(t * t + e * e)) && (t /= s, e /= s), (l = t * i + e * r) && (i -= t * l, r -= e * l), (a = Math.sqrt(i * i + r * r)) && (i /= a, r /= a, l /= a), t * r < e * i && (t = -t, e = -e, l = -l, s = -s), {
1399 translateX: n,
1400 translateY: o,
1401 rotate: Math.atan2(e, t) * No,
1402 skewX: Math.atan(l) * No,
1403 scaleX: s,
1404 scaleY: a
1405 };
1406}
1407var Ci;
1408function Ou(t) {
1409 const e = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(t + "");
1410 return e.isIdentity ? ln : ta(e.a, e.b, e.c, e.d, e.e, e.f);
1411}
1412function $u(t) {
1413 return t == null || (Ci || (Ci = document.createElementNS("http://www.w3.org/2000/svg", "g")), Ci.setAttribute("transform", t), !(t = Ci.transform.baseVal.consolidate())) ? ln : (t = t.matrix, ta(t.a, t.b, t.c, t.d, t.e, t.f));
1414}
1415function ea(t, e, i, r) {
1416 function n(h) {
1417 return h.length ? h.pop() + " " : "";
1418 }
1419 function o(h, c, u, g, p, _) {
1420 if (h !== u || c !== g) {
1421 var T = p.push("translate(", null, e, null, i);
1422 _.push({ i: T - 4, x: It(h, u) }, { i: T - 2, x: It(c, g) });
1423 } else
1424 (u || g) && p.push("translate(" + u + e + g + i);
1425 }
1426 function s(h, c, u, g) {
1427 h !== c ? (h - c > 180 ? c += 360 : c - h > 180 && (h += 360), g.push({ i: u.push(n(u) + "rotate(", null, r) - 2, x: It(h, c) })) : c && u.push(n(u) + "rotate(" + c + r);
1428 }
1429 function a(h, c, u, g) {
1430 h !== c ? g.push({ i: u.push(n(u) + "skewX(", null, r) - 2, x: It(h, c) }) : c && u.push(n(u) + "skewX(" + c + r);
1431 }
1432 function l(h, c, u, g, p, _) {
1433 if (h !== u || c !== g) {
1434 var T = p.push(n(p) + "scale(", null, ",", null, ")");
1435 _.push({ i: T - 4, x: It(h, u) }, { i: T - 2, x: It(c, g) });
1436 } else
1437 (u !== 1 || g !== 1) && p.push(n(p) + "scale(" + u + "," + g + ")");
1438 }
1439 return function(h, c) {
1440 var u = [], g = [];
1441 return h = t(h), c = t(c), o(h.translateX, h.translateY, c.translateX, c.translateY, u, g), s(h.rotate, c.rotate, u, g), a(h.skewX, c.skewX, u, g), l(h.scaleX, h.scaleY, c.scaleX, c.scaleY, u, g), h = c = null, function(p) {
1442 for (var _ = -1, T = g.length, B; ++_ < T; )
1443 u[(B = g[_]).i] = B.x(p);
1444 return u.join("");
1445 };
1446 };
1447}
1448var Iu = ea(Ou, "px, ", "px)", "deg)"), Du = ea($u, ", ", ")", ")"), Te = 0, Ne = 0, Oe = 0, ia = 1e3, ji, Re, Ui = 0, Qt = 0, cr = 0, Ve = typeof performance == "object" && performance.now ? performance : Date, ra = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) {
1449 setTimeout(t, 17);
1450};
1451function On() {
1452 return Qt || (ra(Nu), Qt = Ve.now() + cr);
1453}
1454function Nu() {
1455 Qt = 0;
1456}
1457function Yi() {
1458 this._call = this._time = this._next = null;
1459}
1460Yi.prototype = na.prototype = {
1461 constructor: Yi,
1462 restart: function(t, e, i) {
1463 if (typeof t != "function")
1464 throw new TypeError("callback is not a function");
1465 i = (i == null ? On() : +i) + (e == null ? 0 : +e), !this._next && Re !== this && (Re ? Re._next = this : ji = this, Re = this), this._call = t, this._time = i, hn();
1466 },
1467 stop: function() {
1468 this._call && (this._call = null, this._time = 1 / 0, hn());
1469 }
1470};
1471function na(t, e, i) {
1472 var r = new Yi();
1473 return r.restart(t, e, i), r;
1474}
1475function Ru() {
1476 On(), ++Te;
1477 for (var t = ji, e; t; )
1478 (e = Qt - t._time) >= 0 && t._call.call(void 0, e), t = t._next;
1479 --Te;
1480}
1481function Ro() {
1482 Qt = (Ui = Ve.now()) + cr, Te = Ne = 0;
1483 try {
1484 Ru();
1485 } finally {
1486 Te = 0, Pu(), Qt = 0;
1487 }
1488}
1489function qu() {
1490 var t = Ve.now(), e = t - Ui;
1491 e > ia && (cr -= e, Ui = t);
1492}
1493function Pu() {
1494 for (var t, e = ji, i, r = 1 / 0; e; )
1495 e._call ? (r > e._time && (r = e._time), t = e, e = e._next) : (i = e._next, e._next = null, e = t ? t._next = i : ji = i);
1496 Re = t, hn(r);
1497}
1498function hn(t) {
1499 if (!Te) {
1500 Ne && (Ne = clearTimeout(Ne));
1501 var e = t - Qt;
1502 e > 24 ? (t < 1 / 0 && (Ne = setTimeout(Ro, t - Ve.now() - cr)), Oe && (Oe = clearInterval(Oe))) : (Oe || (Ui = Ve.now(), Oe = setInterval(qu, ia)), Te = 1, ra(Ro));
1503 }
1504}
1505function qo(t, e, i) {
1506 var r = new Yi();
1507 return e = e == null ? 0 : +e, r.restart((n) => {
1508 r.stop(), t(n + e);
1509 }, e, i), r;
1510}
1511var zu = Ns("start", "end", "cancel", "interrupt"), Wu = [], oa = 0, Po = 1, cn = 2, Fi = 3, zo = 4, un = 5, Li = 6;
1512function ur(t, e, i, r, n, o) {
1513 var s = t.__transition;
1514 if (!s)
1515 t.__transition = {};
1516 else if (i in s)
1517 return;
1518 Hu(t, i, {
1519 name: e,
1520 index: r,
1521 // For context during callback.
1522 group: n,
1523 // For context during callback.
1524 on: zu,
1525 tween: Wu,
1526 time: o.time,
1527 delay: o.delay,
1528 duration: o.duration,
1529 ease: o.ease,
1530 timer: null,
1531 state: oa
1532 });
1533}
1534function $n(t, e) {
1535 var i = _t(t, e);
1536 if (i.state > oa)
1537 throw new Error("too late; already scheduled");
1538 return i;
1539}
1540function St(t, e) {
1541 var i = _t(t, e);
1542 if (i.state > Fi)
1543 throw new Error("too late; already running");
1544 return i;
1545}
1546function _t(t, e) {
1547 var i = t.__transition;
1548 if (!i || !(i = i[e]))
1549 throw new Error("transition not found");
1550 return i;
1551}
1552function Hu(t, e, i) {
1553 var r = t.__transition, n;
1554 r[e] = i, i.timer = na(o, 0, i.time);
1555 function o(h) {
1556 i.state = Po, i.timer.restart(s, i.delay, i.time), i.delay <= h && s(h - i.delay);
1557 }
1558 function s(h) {
1559 var c, u, g, p;
1560 if (i.state !== Po)
1561 return l();
1562 for (c in r)
1563 if (p = r[c], p.name === i.name) {
1564 if (p.state === Fi)
1565 return qo(s);
1566 p.state === zo ? (p.state = Li, p.timer.stop(), p.on.call("interrupt", t, t.__data__, p.index, p.group), delete r[c]) : +c < e && (p.state = Li, p.timer.stop(), p.on.call("cancel", t, t.__data__, p.index, p.group), delete r[c]);
1567 }
1568 if (qo(function() {
1569 i.state === Fi && (i.state = zo, i.timer.restart(a, i.delay, i.time), a(h));
1570 }), i.state = cn, i.on.call("start", t, t.__data__, i.index, i.group), i.state === cn) {
1571 for (i.state = Fi, n = new Array(g = i.tween.length), c = 0, u = -1; c < g; ++c)
1572 (p = i.tween[c].value.call(t, t.__data__, i.index, i.group)) && (n[++u] = p);
1573 n.length = u + 1;
1574 }
1575 }
1576 function a(h) {
1577 for (var c = h < i.duration ? i.ease.call(null, h / i.duration) : (i.timer.restart(l), i.state = un, 1), u = -1, g = n.length; ++u < g; )
1578 n[u].call(t, c);
1579 i.state === un && (i.on.call("end", t, t.__data__, i.index, i.group), l());
1580 }
1581 function l() {
1582 i.state = Li, i.timer.stop(), delete r[e];
1583 for (var h in r)
1584 return;
1585 delete t.__transition;
1586 }
1587}
1588function ju(t, e) {
1589 var i = t.__transition, r, n, o = !0, s;
1590 if (i) {
1591 e = e == null ? null : e + "";
1592 for (s in i) {
1593 if ((r = i[s]).name !== e) {
1594 o = !1;
1595 continue;
1596 }
1597 n = r.state > cn && r.state < un, r.state = Li, r.timer.stop(), r.on.call(n ? "interrupt" : "cancel", t, t.__data__, r.index, r.group), delete i[s];
1598 }
1599 o && delete t.__transition;
1600 }
1601}
1602function Uu(t) {
1603 return this.each(function() {
1604 ju(this, t);
1605 });
1606}
1607function Yu(t, e) {
1608 var i, r;
1609 return function() {
1610 var n = St(this, t), o = n.tween;
1611 if (o !== i) {
1612 r = i = o;
1613 for (var s = 0, a = r.length; s < a; ++s)
1614 if (r[s].name === e) {
1615 r = r.slice(), r.splice(s, 1);
1616 break;
1617 }
1618 }
1619 n.tween = r;
1620 };
1621}
1622function Gu(t, e, i) {
1623 var r, n;
1624 if (typeof i != "function")
1625 throw new Error();
1626 return function() {
1627 var o = St(this, t), s = o.tween;
1628 if (s !== r) {
1629 n = (r = s).slice();
1630 for (var a = { name: e, value: i }, l = 0, h = n.length; l < h; ++l)
1631 if (n[l].name === e) {
1632 n[l] = a;
1633 break;
1634 }
1635 l === h && n.push(a);
1636 }
1637 o.tween = n;
1638 };
1639}
1640function Vu(t, e) {
1641 var i = this._id;
1642 if (t += "", arguments.length < 2) {
1643 for (var r = _t(this.node(), i).tween, n = 0, o = r.length, s; n < o; ++n)
1644 if ((s = r[n]).name === t)
1645 return s.value;
1646 return null;
1647 }
1648 return this.each((e == null ? Yu : Gu)(i, t, e));
1649}
1650function In(t, e, i) {
1651 var r = t._id;
1652 return t.each(function() {
1653 var n = St(this, r);
1654 (n.value || (n.value = {}))[e] = i.apply(this, arguments);
1655 }), function(n) {
1656 return _t(n, r).value[e];
1657 };
1658}
1659function sa(t, e) {
1660 var i;
1661 return (typeof e == "number" ? It : e instanceof Ge ? Do : (i = Ge(e)) ? (e = i, Do) : Mu)(t, e);
1662}
1663function Xu(t) {
1664 return function() {
1665 this.removeAttribute(t);
1666 };
1667}
1668function Ku(t) {
1669 return function() {
1670 this.removeAttributeNS(t.space, t.local);
1671 };
1672}
1673function Zu(t, e, i) {
1674 var r, n = i + "", o;
1675 return function() {
1676 var s = this.getAttribute(t);
1677 return s === n ? null : s === r ? o : o = e(r = s, i);
1678 };
1679}
1680function Ju(t, e, i) {
1681 var r, n = i + "", o;
1682 return function() {
1683 var s = this.getAttributeNS(t.space, t.local);
1684 return s === n ? null : s === r ? o : o = e(r = s, i);
1685 };
1686}
1687function Qu(t, e, i) {
1688 var r, n, o;
1689 return function() {
1690 var s, a = i(this), l;
1691 return a == null ? void this.removeAttribute(t) : (s = this.getAttribute(t), l = a + "", s === l ? null : s === r && l === n ? o : (n = l, o = e(r = s, a)));
1692 };
1693}
1694function tf(t, e, i) {
1695 var r, n, o;
1696 return function() {
1697 var s, a = i(this), l;
1698 return a == null ? void this.removeAttributeNS(t.space, t.local) : (s = this.getAttributeNS(t.space, t.local), l = a + "", s === l ? null : s === r && l === n ? o : (n = l, o = e(r = s, a)));
1699 };
1700}
1701function ef(t, e) {
1702 var i = hr(t), r = i === "transform" ? Du : sa;
1703 return this.attrTween(t, typeof e == "function" ? (i.local ? tf : Qu)(i, r, In(this, "attr." + t, e)) : e == null ? (i.local ? Ku : Xu)(i) : (i.local ? Ju : Zu)(i, r, e));
1704}
1705function rf(t, e) {
1706 return function(i) {
1707 this.setAttribute(t, e.call(this, i));
1708 };
1709}
1710function nf(t, e) {
1711 return function(i) {
1712 this.setAttributeNS(t.space, t.local, e.call(this, i));
1713 };
1714}
1715function of(t, e) {
1716 var i, r;
1717 function n() {
1718 var o = e.apply(this, arguments);
1719 return o !== r && (i = (r = o) && nf(t, o)), i;
1720 }
1721 return n._value = e, n;
1722}
1723function sf(t, e) {
1724 var i, r;
1725 function n() {
1726 var o = e.apply(this, arguments);
1727 return o !== r && (i = (r = o) && rf(t, o)), i;
1728 }
1729 return n._value = e, n;
1730}
1731function af(t, e) {
1732 var i = "attr." + t;
1733 if (arguments.length < 2)
1734 return (i = this.tween(i)) && i._value;
1735 if (e == null)
1736 return this.tween(i, null);
1737 if (typeof e != "function")
1738 throw new Error();
1739 var r = hr(t);
1740 return this.tween(i, (r.local ? of : sf)(r, e));
1741}
1742function lf(t, e) {
1743 return function() {
1744 $n(this, t).delay = +e.apply(this, arguments);
1745 };
1746}
1747function hf(t, e) {
1748 return e = +e, function() {
1749 $n(this, t).delay = e;
1750 };
1751}
1752function cf(t) {
1753 var e = this._id;
1754 return arguments.length ? this.each((typeof t == "function" ? lf : hf)(e, t)) : _t(this.node(), e).delay;
1755}
1756function uf(t, e) {
1757 return function() {
1758 St(this, t).duration = +e.apply(this, arguments);
1759 };
1760}
1761function ff(t, e) {
1762 return e = +e, function() {
1763 St(this, t).duration = e;
1764 };
1765}
1766function df(t) {
1767 var e = this._id;
1768 return arguments.length ? this.each((typeof t == "function" ? uf : ff)(e, t)) : _t(this.node(), e).duration;
1769}
1770function pf(t, e) {
1771 if (typeof e != "function")
1772 throw new Error();
1773 return function() {
1774 St(this, t).ease = e;
1775 };
1776}
1777function gf(t) {
1778 var e = this._id;
1779 return arguments.length ? this.each(pf(e, t)) : _t(this.node(), e).ease;
1780}
1781function mf(t, e) {
1782 return function() {
1783 var i = e.apply(this, arguments);
1784 if (typeof i != "function")
1785 throw new Error();
1786 St(this, t).ease = i;
1787 };
1788}
1789function _f(t) {
1790 if (typeof t != "function")
1791 throw new Error();
1792 return this.each(mf(this._id, t));
1793}
1794function yf(t) {
1795 typeof t != "function" && (t = Ps(t));
1796 for (var e = this._groups, i = e.length, r = new Array(i), n = 0; n < i; ++n)
1797 for (var o = e[n], s = o.length, a = r[n] = [], l, h = 0; h < s; ++h)
1798 (l = o[h]) && t.call(l, l.__data__, h, o) && a.push(l);
1799 return new At(r, this._parents, this._name, this._id);
1800}
1801function Cf(t) {
1802 if (t._id !== this._id)
1803 throw new Error();
1804 for (var e = this._groups, i = t._groups, r = e.length, n = i.length, o = Math.min(r, n), s = new Array(r), a = 0; a < o; ++a)
1805 for (var l = e[a], h = i[a], c = l.length, u = s[a] = new Array(c), g, p = 0; p < c; ++p)
1806 (g = l[p] || h[p]) && (u[p] = g);
1807 for (; a < r; ++a)
1808 s[a] = e[a];
1809 return new At(s, this._parents, this._name, this._id);
1810}
1811function xf(t) {
1812 return (t + "").trim().split(/^|\s+/).every(function(e) {
1813 var i = e.indexOf(".");
1814 return i >= 0 && (e = e.slice(0, i)), !e || e === "start";
1815 });
1816}
1817function bf(t, e, i) {
1818 var r, n, o = xf(e) ? $n : St;
1819 return function() {
1820 var s = o(this, t), a = s.on;
1821 a !== r && (n = (r = a).copy()).on(e, i), s.on = n;
1822 };
1823}
1824function Tf(t, e) {
1825 var i = this._id;
1826 return arguments.length < 2 ? _t(this.node(), i).on.on(t) : this.each(bf(i, t, e));
1827}
1828function Sf(t) {
1829 return function() {
1830 var e = this.parentNode;
1831 for (var i in this.__transition)
1832 if (+i !== t)
1833 return;
1834 e && e.removeChild(this);
1835 };
1836}
1837function vf() {
1838 return this.on("end.remove", Sf(this._id));
1839}
1840function kf(t) {
1841 var e = this._name, i = this._id;
1842 typeof t != "function" && (t = Ln(t));
1843 for (var r = this._groups, n = r.length, o = new Array(n), s = 0; s < n; ++s)
1844 for (var a = r[s], l = a.length, h = o[s] = new Array(l), c, u, g = 0; g < l; ++g)
1845 (c = a[g]) && (u = t.call(c, c.__data__, g, a)) && ("__data__" in c && (u.__data__ = c.__data__), h[g] = u, ur(h[g], e, i, g, h, _t(c, i)));
1846 return new At(o, this._parents, e, i);
1847}
1848function wf(t) {
1849 var e = this._name, i = this._id;
1850 typeof t != "function" && (t = qs(t));
1851 for (var r = this._groups, n = r.length, o = [], s = [], a = 0; a < n; ++a)
1852 for (var l = r[a], h = l.length, c, u = 0; u < h; ++u)
1853 if (c = l[u]) {
1854 for (var g = t.call(c, c.__data__, u, l), p, _ = _t(c, i), T = 0, B = g.length; T < B; ++T)
1855 (p = g[T]) && ur(p, e, i, T, g, _);
1856 o.push(g), s.push(c);
1857 }
1858 return new At(o, s, e, i);
1859}
1860var Bf = ei.prototype.constructor;
1861function Ff() {
1862 return new Bf(this._groups, this._parents);
1863}
1864function Lf(t, e) {
1865 var i, r, n;
1866 return function() {
1867 var o = be(this, t), s = (this.style.removeProperty(t), be(this, t));
1868 return o === s ? null : o === i && s === r ? n : n = e(i = o, r = s);
1869 };
1870}
1871function aa(t) {
1872 return function() {
1873 this.style.removeProperty(t);
1874 };
1875}
1876function Af(t, e, i) {
1877 var r, n = i + "", o;
1878 return function() {
1879 var s = be(this, t);
1880 return s === n ? null : s === r ? o : o = e(r = s, i);
1881 };
1882}
1883function Ef(t, e, i) {
1884 var r, n, o;
1885 return function() {
1886 var s = be(this, t), a = i(this), l = a + "";
1887 return a == null && (l = a = (this.style.removeProperty(t), be(this, t))), s === l ? null : s === r && l === n ? o : (n = l, o = e(r = s, a));
1888 };
1889}
1890function Mf(t, e) {
1891 var i, r, n, o = "style." + e, s = "end." + o, a;
1892 return function() {
1893 var l = St(this, t), h = l.on, c = l.value[o] == null ? a || (a = aa(e)) : void 0;
1894 (h !== i || n !== c) && (r = (i = h).copy()).on(s, n = c), l.on = r;
1895 };
1896}
1897function Of(t, e, i) {
1898 var r = (t += "") == "transform" ? Iu : sa;
1899 return e == null ? this.styleTween(t, Lf(t, r)).on("end.style." + t, aa(t)) : typeof e == "function" ? this.styleTween(t, Ef(t, r, In(this, "style." + t, e))).each(Mf(this._id, t)) : this.styleTween(t, Af(t, r, e), i).on("end.style." + t, null);
1900}
1901function $f(t, e, i) {
1902 return function(r) {
1903 this.style.setProperty(t, e.call(this, r), i);
1904 };
1905}
1906function If(t, e, i) {
1907 var r, n;
1908 function o() {
1909 var s = e.apply(this, arguments);
1910 return s !== n && (r = (n = s) && $f(t, s, i)), r;
1911 }
1912 return o._value = e, o;
1913}
1914function Df(t, e, i) {
1915 var r = "style." + (t += "");
1916 if (arguments.length < 2)
1917 return (r = this.tween(r)) && r._value;
1918 if (e == null)
1919 return this.tween(r, null);
1920 if (typeof e != "function")
1921 throw new Error();
1922 return this.tween(r, If(t, e, i ?? ""));
1923}
1924function Nf(t) {
1925 return function() {
1926 this.textContent = t;
1927 };
1928}
1929function Rf(t) {
1930 return function() {
1931 var e = t(this);
1932 this.textContent = e ?? "";
1933 };
1934}
1935function qf(t) {
1936 return this.tween("text", typeof t == "function" ? Rf(In(this, "text", t)) : Nf(t == null ? "" : t + ""));
1937}
1938function Pf(t) {
1939 return function(e) {
1940 this.textContent = t.call(this, e);
1941 };
1942}
1943function zf(t) {
1944 var e, i;
1945 function r() {
1946 var n = t.apply(this, arguments);
1947 return n !== i && (e = (i = n) && Pf(n)), e;
1948 }
1949 return r._value = t, r;
1950}
1951function Wf(t) {
1952 var e = "text";
1953 if (arguments.length < 1)
1954 return (e = this.tween(e)) && e._value;
1955 if (t == null)
1956 return this.tween(e, null);
1957 if (typeof t != "function")
1958 throw new Error();
1959 return this.tween(e, zf(t));
1960}
1961function Hf() {
1962 for (var t = this._name, e = this._id, i = la(), r = this._groups, n = r.length, o = 0; o < n; ++o)
1963 for (var s = r[o], a = s.length, l, h = 0; h < a; ++h)
1964 if (l = s[h]) {
1965 var c = _t(l, e);
1966 ur(l, t, i, h, s, {
1967 time: c.time + c.delay + c.duration,
1968 delay: 0,
1969 duration: c.duration,
1970 ease: c.ease
1971 });
1972 }
1973 return new At(r, this._parents, t, i);
1974}
1975function jf() {
1976 var t, e, i = this, r = i._id, n = i.size();
1977 return new Promise(function(o, s) {
1978 var a = { value: s }, l = { value: function() {
1979 --n === 0 && o();
1980 } };
1981 i.each(function() {
1982 var h = St(this, r), c = h.on;
1983 c !== t && (e = (t = c).copy(), e._.cancel.push(a), e._.interrupt.push(a), e._.end.push(l)), h.on = e;
1984 }), n === 0 && o();
1985 });
1986}
1987var Uf = 0;
1988function At(t, e, i, r) {
1989 this._groups = t, this._parents = e, this._name = i, this._id = r;
1990}
1991function la() {
1992 return ++Uf;
1993}
1994var Bt = ei.prototype;
1995At.prototype = {
1996 constructor: At,
1997 select: kf,
1998 selectAll: wf,
1999 selectChild: Bt.selectChild,
2000 selectChildren: Bt.selectChildren,
2001 filter: yf,
2002 merge: Cf,
2003 selection: Ff,
2004 transition: Hf,
2005 call: Bt.call,
2006 nodes: Bt.nodes,
2007 node: Bt.node,
2008 size: Bt.size,
2009 empty: Bt.empty,
2010 each: Bt.each,
2011 on: Tf,
2012 attr: ef,
2013 attrTween: af,
2014 style: Of,
2015 styleTween: Df,
2016 text: qf,
2017 textTween: Wf,
2018 remove: vf,
2019 tween: Vu,
2020 delay: cf,
2021 duration: df,
2022 ease: gf,
2023 easeVarying: _f,
2024 end: jf,
2025 [Symbol.iterator]: Bt[Symbol.iterator]
2026};
2027function Yf(t) {
2028 return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
2029}
2030var Gf = {
2031 time: null,
2032 // Set on use.
2033 delay: 0,
2034 duration: 250,
2035 ease: Yf
2036};
2037function Vf(t, e) {
2038 for (var i; !(i = t.__transition) || !(i = i[e]); )
2039 if (!(t = t.parentNode))
2040 throw new Error(`transition ${e} not found`);
2041 return i;
2042}
2043function Xf(t) {
2044 var e, i;
2045 t instanceof At ? (e = t._id, t = t._name) : (e = la(), (i = Gf).time = On(), t = t == null ? null : t + "");
2046 for (var r = this._groups, n = r.length, o = 0; o < n; ++o)
2047 for (var s = r[o], a = s.length, l, h = 0; h < a; ++h)
2048 (l = s[h]) && ur(l, t, e, h, s, i || Vf(l, e));
2049 return new At(r, this._parents, t, e);
2050}
2051ei.prototype.interrupt = Uu;
2052ei.prototype.transition = Xf;
2053const rb = Math.abs, nb = Math.atan2, ob = Math.cos, sb = Math.max, ab = Math.min, lb = Math.sin, hb = Math.sqrt, Wo = 1e-12, Dn = Math.PI, Ho = Dn / 2, cb = 2 * Dn;
2054function ub(t) {
2055 return t > 1 ? 0 : t < -1 ? Dn : Math.acos(t);
2056}
2057function fb(t) {
2058 return t >= 1 ? Ho : t <= -1 ? -Ho : Math.asin(t);
2059}
2060function ha(t) {
2061 this._context = t;
2062}
2063ha.prototype = {
2064 areaStart: function() {
2065 this._line = 0;
2066 },
2067 areaEnd: function() {
2068 this._line = NaN;
2069 },
2070 lineStart: function() {
2071 this._point = 0;
2072 },
2073 lineEnd: function() {
2074 (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
2075 },
2076 point: function(t, e) {
2077 switch (t = +t, e = +e, this._point) {
2078 case 0:
2079 this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e);
2080 break;
2081 case 1:
2082 this._point = 2;
2083 default:
2084 this._context.lineTo(t, e);
2085 break;
2086 }
2087 }
2088};
2089function Kf(t) {
2090 return new ha(t);
2091}
2092class ca {
2093 constructor(e, i) {
2094 this._context = e, this._x = i;
2095 }
2096 areaStart() {
2097 this._line = 0;
2098 }
2099 areaEnd() {
2100 this._line = NaN;
2101 }
2102 lineStart() {
2103 this._point = 0;
2104 }
2105 lineEnd() {
2106 (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
2107 }
2108 point(e, i) {
2109 switch (e = +e, i = +i, this._point) {
2110 case 0: {
2111 this._point = 1, this._line ? this._context.lineTo(e, i) : this._context.moveTo(e, i);
2112 break;
2113 }
2114 case 1:
2115 this._point = 2;
2116 default: {
2117 this._x ? this._context.bezierCurveTo(this._x0 = (this._x0 + e) / 2, this._y0, this._x0, i, e, i) : this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + i) / 2, e, this._y0, e, i);
2118 break;
2119 }
2120 }
2121 this._x0 = e, this._y0 = i;
2122 }
2123}
2124function Zf(t) {
2125 return new ca(t, !0);
2126}
2127function Jf(t) {
2128 return new ca(t, !1);
2129}
2130function qt() {
2131}
2132function Gi(t, e, i) {
2133 t._context.bezierCurveTo(
2134 (2 * t._x0 + t._x1) / 3,
2135 (2 * t._y0 + t._y1) / 3,
2136 (t._x0 + 2 * t._x1) / 3,
2137 (t._y0 + 2 * t._y1) / 3,
2138 (t._x0 + 4 * t._x1 + e) / 6,
2139 (t._y0 + 4 * t._y1 + i) / 6
2140 );
2141}
2142function fr(t) {
2143 this._context = t;
2144}
2145fr.prototype = {
2146 areaStart: function() {
2147 this._line = 0;
2148 },
2149 areaEnd: function() {
2150 this._line = NaN;
2151 },
2152 lineStart: function() {
2153 this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
2154 },
2155 lineEnd: function() {
2156 switch (this._point) {
2157 case 3:
2158 Gi(this, this._x1, this._y1);
2159 case 2:
2160 this._context.lineTo(this._x1, this._y1);
2161 break;
2162 }
2163 (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
2164 },
2165 point: function(t, e) {
2166 switch (t = +t, e = +e, this._point) {
2167 case 0:
2168 this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e);
2169 break;
2170 case 1:
2171 this._point = 2;
2172 break;
2173 case 2:
2174 this._point = 3, this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
2175 default:
2176 Gi(this, t, e);
2177 break;
2178 }
2179 this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e;
2180 }
2181};
2182function Qf(t) {
2183 return new fr(t);
2184}
2185function ua(t) {
2186 this._context = t;
2187}
2188ua.prototype = {
2189 areaStart: qt,
2190 areaEnd: qt,
2191 lineStart: function() {
2192 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0;
2193 },
2194 lineEnd: function() {
2195 switch (this._point) {
2196 case 1: {
2197 this._context.moveTo(this._x2, this._y2), this._context.closePath();
2198 break;
2199 }
2200 case 2: {
2201 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();
2202 break;
2203 }
2204 case 3: {
2205 this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4);
2206 break;
2207 }
2208 }
2209 },
2210 point: function(t, e) {
2211 switch (t = +t, e = +e, this._point) {
2212 case 0:
2213 this._point = 1, this._x2 = t, this._y2 = e;
2214 break;
2215 case 1:
2216 this._point = 2, this._x3 = t, this._y3 = e;
2217 break;
2218 case 2:
2219 this._point = 3, this._x4 = t, this._y4 = e, this._context.moveTo((this._x0 + 4 * this._x1 + t) / 6, (this._y0 + 4 * this._y1 + e) / 6);
2220 break;
2221 default:
2222 Gi(this, t, e);
2223 break;
2224 }
2225 this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e;
2226 }
2227};
2228function td(t) {
2229 return new ua(t);
2230}
2231function fa(t) {
2232 this._context = t;
2233}
2234fa.prototype = {
2235 areaStart: function() {
2236 this._line = 0;
2237 },
2238 areaEnd: function() {
2239 this._line = NaN;
2240 },
2241 lineStart: function() {
2242 this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
2243 },
2244 lineEnd: function() {
2245 (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
2246 },
2247 point: function(t, e) {
2248 switch (t = +t, e = +e, this._point) {
2249 case 0:
2250 this._point = 1;
2251 break;
2252 case 1:
2253 this._point = 2;
2254 break;
2255 case 2:
2256 this._point = 3;
2257 var i = (this._x0 + 4 * this._x1 + t) / 6, r = (this._y0 + 4 * this._y1 + e) / 6;
2258 this._line ? this._context.lineTo(i, r) : this._context.moveTo(i, r);
2259 break;
2260 case 3:
2261 this._point = 4;
2262 default:
2263 Gi(this, t, e);
2264 break;
2265 }
2266 this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e;
2267 }
2268};
2269function ed(t) {
2270 return new fa(t);
2271}
2272function da(t, e) {
2273 this._basis = new fr(t), this._beta = e;
2274}
2275da.prototype = {
2276 lineStart: function() {
2277 this._x = [], this._y = [], this._basis.lineStart();
2278 },
2279 lineEnd: function() {
2280 var t = this._x, e = this._y, i = t.length - 1;
2281 if (i > 0)
2282 for (var r = t[0], n = e[0], o = t[i] - r, s = e[i] - n, a = -1, l; ++a <= i; )
2283 l = a / i, this._basis.point(
2284 this._beta * t[a] + (1 - this._beta) * (r + l * o),
2285 this._beta * e[a] + (1 - this._beta) * (n + l * s)
2286 );
2287 this._x = this._y = null, this._basis.lineEnd();
2288 },
2289 point: function(t, e) {
2290 this._x.push(+t), this._y.push(+e);
2291 }
2292};
2293const id = function t(e) {
2294 function i(r) {
2295 return e === 1 ? new fr(r) : new da(r, e);
2296 }
2297 return i.beta = function(r) {
2298 return t(+r);
2299 }, i;
2300}(0.85);
2301function Vi(t, e, i) {
2302 t._context.bezierCurveTo(
2303 t._x1 + t._k * (t._x2 - t._x0),
2304 t._y1 + t._k * (t._y2 - t._y0),
2305 t._x2 + t._k * (t._x1 - e),
2306 t._y2 + t._k * (t._y1 - i),
2307 t._x2,
2308 t._y2
2309 );
2310}
2311function Nn(t, e) {
2312 this._context = t, this._k = (1 - e) / 6;
2313}
2314Nn.prototype = {
2315 areaStart: function() {
2316 this._line = 0;
2317 },
2318 areaEnd: function() {
2319 this._line = NaN;
2320 },
2321 lineStart: function() {
2322 this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
2323 },
2324 lineEnd: function() {
2325 switch (this._point) {
2326 case 2:
2327 this._context.lineTo(this._x2, this._y2);
2328 break;
2329 case 3:
2330 Vi(this, this._x1, this._y1);
2331 break;
2332 }
2333 (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
2334 },
2335 point: function(t, e) {
2336 switch (t = +t, e = +e, this._point) {
2337 case 0:
2338 this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e);
2339 break;
2340 case 1:
2341 this._point = 2, this._x1 = t, this._y1 = e;
2342 break;
2343 case 2:
2344 this._point = 3;
2345 default:
2346 Vi(this, t, e);
2347 break;
2348 }
2349 this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
2350 }
2351};
2352const rd = function t(e) {
2353 function i(r) {
2354 return new Nn(r, e);
2355 }
2356 return i.tension = function(r) {
2357 return t(+r);
2358 }, i;
2359}(0);
2360function Rn(t, e) {
2361 this._context = t, this._k = (1 - e) / 6;
2362}
2363Rn.prototype = {
2364 areaStart: qt,
2365 areaEnd: qt,
2366 lineStart: function() {
2367 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;
2368 },
2369 lineEnd: function() {
2370 switch (this._point) {
2371 case 1: {
2372 this._context.moveTo(this._x3, this._y3), this._context.closePath();
2373 break;
2374 }
2375 case 2: {
2376 this._context.lineTo(this._x3, this._y3), this._context.closePath();
2377 break;
2378 }
2379 case 3: {
2380 this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
2381 break;
2382 }
2383 }
2384 },
2385 point: function(t, e) {
2386 switch (t = +t, e = +e, this._point) {
2387 case 0:
2388 this._point = 1, this._x3 = t, this._y3 = e;
2389 break;
2390 case 1:
2391 this._point = 2, this._context.moveTo(this._x4 = t, this._y4 = e);
2392 break;
2393 case 2:
2394 this._point = 3, this._x5 = t, this._y5 = e;
2395 break;
2396 default:
2397 Vi(this, t, e);
2398 break;
2399 }
2400 this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
2401 }
2402};
2403const nd = function t(e) {
2404 function i(r) {
2405 return new Rn(r, e);
2406 }
2407 return i.tension = function(r) {
2408 return t(+r);
2409 }, i;
2410}(0);
2411function qn(t, e) {
2412 this._context = t, this._k = (1 - e) / 6;
2413}
2414qn.prototype = {
2415 areaStart: function() {
2416 this._line = 0;
2417 },
2418 areaEnd: function() {
2419 this._line = NaN;
2420 },
2421 lineStart: function() {
2422 this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
2423 },
2424 lineEnd: function() {
2425 (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
2426 },
2427 point: function(t, e) {
2428 switch (t = +t, e = +e, this._point) {
2429 case 0:
2430 this._point = 1;
2431 break;
2432 case 1:
2433 this._point = 2;
2434 break;
2435 case 2:
2436 this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
2437 break;
2438 case 3:
2439 this._point = 4;
2440 default:
2441 Vi(this, t, e);
2442 break;
2443 }
2444 this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
2445 }
2446};
2447const od = function t(e) {
2448 function i(r) {
2449 return new qn(r, e);
2450 }
2451 return i.tension = function(r) {
2452 return t(+r);
2453 }, i;
2454}(0);
2455function Pn(t, e, i) {
2456 var r = t._x1, n = t._y1, o = t._x2, s = t._y2;
2457 if (t._l01_a > Wo) {
2458 var a = 2 * t._l01_2a + 3 * t._l01_a * t._l12_a + t._l12_2a, l = 3 * t._l01_a * (t._l01_a + t._l12_a);
2459 r = (r * a - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / l, n = (n * a - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / l;
2460 }
2461 if (t._l23_a > Wo) {
2462 var h = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a, c = 3 * t._l23_a * (t._l23_a + t._l12_a);
2463 o = (o * h + t._x1 * t._l23_2a - e * t._l12_2a) / c, s = (s * h + t._y1 * t._l23_2a - i * t._l12_2a) / c;
2464 }
2465 t._context.bezierCurveTo(r, n, o, s, t._x2, t._y2);
2466}
2467function pa(t, e) {
2468 this._context = t, this._alpha = e;
2469}
2470pa.prototype = {
2471 areaStart: function() {
2472 this._line = 0;
2473 },
2474 areaEnd: function() {
2475 this._line = NaN;
2476 },
2477 lineStart: function() {
2478 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;
2479 },
2480 lineEnd: function() {
2481 switch (this._point) {
2482 case 2:
2483 this._context.lineTo(this._x2, this._y2);
2484 break;
2485 case 3:
2486 this.point(this._x2, this._y2);
2487 break;
2488 }
2489 (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
2490 },
2491 point: function(t, e) {
2492 if (t = +t, e = +e, this._point) {
2493 var i = this._x2 - t, r = this._y2 - e;
2494 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(i * i + r * r, this._alpha));
2495 }
2496 switch (this._point) {
2497 case 0:
2498 this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e);
2499 break;
2500 case 1:
2501 this._point = 2;
2502 break;
2503 case 2:
2504 this._point = 3;
2505 default:
2506 Pn(this, t, e);
2507 break;
2508 }
2509 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 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
2510 }
2511};
2512const sd = function t(e) {
2513 function i(r) {
2514 return e ? new pa(r, e) : new Nn(r, 0);
2515 }
2516 return i.alpha = function(r) {
2517 return t(+r);
2518 }, i;
2519}(0.5);
2520function ga(t, e) {
2521 this._context = t, this._alpha = e;
2522}
2523ga.prototype = {
2524 areaStart: qt,
2525 areaEnd: qt,
2526 lineStart: function() {
2527 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;
2528 },
2529 lineEnd: function() {
2530 switch (this._point) {
2531 case 1: {
2532 this._context.moveTo(this._x3, this._y3), this._context.closePath();
2533 break;
2534 }
2535 case 2: {
2536 this._context.lineTo(this._x3, this._y3), this._context.closePath();
2537 break;
2538 }
2539 case 3: {
2540 this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
2541 break;
2542 }
2543 }
2544 },
2545 point: function(t, e) {
2546 if (t = +t, e = +e, this._point) {
2547 var i = this._x2 - t, r = this._y2 - e;
2548 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(i * i + r * r, this._alpha));
2549 }
2550 switch (this._point) {
2551 case 0:
2552 this._point = 1, this._x3 = t, this._y3 = e;
2553 break;
2554 case 1:
2555 this._point = 2, this._context.moveTo(this._x4 = t, this._y4 = e);
2556 break;
2557 case 2:
2558 this._point = 3, this._x5 = t, this._y5 = e;
2559 break;
2560 default:
2561 Pn(this, t, e);
2562 break;
2563 }
2564 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 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
2565 }
2566};
2567const ad = function t(e) {
2568 function i(r) {
2569 return e ? new ga(r, e) : new Rn(r, 0);
2570 }
2571 return i.alpha = function(r) {
2572 return t(+r);
2573 }, i;
2574}(0.5);
2575function ma(t, e) {
2576 this._context = t, this._alpha = e;
2577}
2578ma.prototype = {
2579 areaStart: function() {
2580 this._line = 0;
2581 },
2582 areaEnd: function() {
2583 this._line = NaN;
2584 },
2585 lineStart: function() {
2586 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;
2587 },
2588 lineEnd: function() {
2589 (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
2590 },
2591 point: function(t, e) {
2592 if (t = +t, e = +e, this._point) {
2593 var i = this._x2 - t, r = this._y2 - e;
2594 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(i * i + r * r, this._alpha));
2595 }
2596 switch (this._point) {
2597 case 0:
2598 this._point = 1;
2599 break;
2600 case 1:
2601 this._point = 2;
2602 break;
2603 case 2:
2604 this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
2605 break;
2606 case 3:
2607 this._point = 4;
2608 default:
2609 Pn(this, t, e);
2610 break;
2611 }
2612 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 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
2613 }
2614};
2615const ld = function t(e) {
2616 function i(r) {
2617 return e ? new ma(r, e) : new qn(r, 0);
2618 }
2619 return i.alpha = function(r) {
2620 return t(+r);
2621 }, i;
2622}(0.5);
2623function _a(t) {
2624 this._context = t;
2625}
2626_a.prototype = {
2627 areaStart: qt,
2628 areaEnd: qt,
2629 lineStart: function() {
2630 this._point = 0;
2631 },
2632 lineEnd: function() {
2633 this._point && this._context.closePath();
2634 },
2635 point: function(t, e) {
2636 t = +t, e = +e, this._point ? this._context.lineTo(t, e) : (this._point = 1, this._context.moveTo(t, e));
2637 }
2638};
2639function hd(t) {
2640 return new _a(t);
2641}
2642function jo(t) {
2643 return t < 0 ? -1 : 1;
2644}
2645function Uo(t, e, i) {
2646 var r = t._x1 - t._x0, n = e - t._x1, o = (t._y1 - t._y0) / (r || n < 0 && -0), s = (i - t._y1) / (n || r < 0 && -0), a = (o * n + s * r) / (r + n);
2647 return (jo(o) + jo(s)) * Math.min(Math.abs(o), Math.abs(s), 0.5 * Math.abs(a)) || 0;
2648}
2649function Yo(t, e) {
2650 var i = t._x1 - t._x0;
2651 return i ? (3 * (t._y1 - t._y0) / i - e) / 2 : e;
2652}
2653function Hr(t, e, i) {
2654 var r = t._x0, n = t._y0, o = t._x1, s = t._y1, a = (o - r) / 3;
2655 t._context.bezierCurveTo(r + a, n + a * e, o - a, s - a * i, o, s);
2656}
2657function Xi(t) {
2658 this._context = t;
2659}
2660Xi.prototype = {
2661 areaStart: function() {
2662 this._line = 0;
2663 },
2664 areaEnd: function() {
2665 this._line = NaN;
2666 },
2667 lineStart: function() {
2668 this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0;
2669 },
2670 lineEnd: function() {
2671 switch (this._point) {
2672 case 2:
2673 this._context.lineTo(this._x1, this._y1);
2674 break;
2675 case 3:
2676 Hr(this, this._t0, Yo(this, this._t0));
2677 break;
2678 }
2679 (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
2680 },
2681 point: function(t, e) {
2682 var i = NaN;
2683 if (t = +t, e = +e, !(t === this._x1 && e === this._y1)) {
2684 switch (this._point) {
2685 case 0:
2686 this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e);
2687 break;
2688 case 1:
2689 this._point = 2;
2690 break;
2691 case 2:
2692 this._point = 3, Hr(this, Yo(this, i = Uo(this, t, e)), i);
2693 break;
2694 default:
2695 Hr(this, this._t0, i = Uo(this, t, e));
2696 break;
2697 }
2698 this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e, this._t0 = i;
2699 }
2700 }
2701};
2702function ya(t) {
2703 this._context = new Ca(t);
2704}
2705(ya.prototype = Object.create(Xi.prototype)).point = function(t, e) {
2706 Xi.prototype.point.call(this, e, t);
2707};
2708function Ca(t) {
2709 this._context = t;
2710}
2711Ca.prototype = {
2712 moveTo: function(t, e) {
2713 this._context.moveTo(e, t);
2714 },
2715 closePath: function() {
2716 this._context.closePath();
2717 },
2718 lineTo: function(t, e) {
2719 this._context.lineTo(e, t);
2720 },
2721 bezierCurveTo: function(t, e, i, r, n, o) {
2722 this._context.bezierCurveTo(e, t, r, i, o, n);
2723 }
2724};
2725function cd(t) {
2726 return new Xi(t);
2727}
2728function ud(t) {
2729 return new ya(t);
2730}
2731function xa(t) {
2732 this._context = t;
2733}
2734xa.prototype = {
2735 areaStart: function() {
2736 this._line = 0;
2737 },
2738 areaEnd: function() {
2739 this._line = NaN;
2740 },
2741 lineStart: function() {
2742 this._x = [], this._y = [];
2743 },
2744 lineEnd: function() {
2745 var t = this._x, e = this._y, i = t.length;
2746 if (i)
2747 if (this._line ? this._context.lineTo(t[0], e[0]) : this._context.moveTo(t[0], e[0]), i === 2)
2748 this._context.lineTo(t[1], e[1]);
2749 else
2750 for (var r = Go(t), n = Go(e), o = 0, s = 1; s < i; ++o, ++s)
2751 this._context.bezierCurveTo(r[0][o], n[0][o], r[1][o], n[1][o], t[s], e[s]);
2752 (this._line || this._line !== 0 && i === 1) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null;
2753 },
2754 point: function(t, e) {
2755 this._x.push(+t), this._y.push(+e);
2756 }
2757};
2758function Go(t) {
2759 var e, i = t.length - 1, r, n = new Array(i), o = new Array(i), s = new Array(i);
2760 for (n[0] = 0, o[0] = 2, s[0] = t[0] + 2 * t[1], e = 1; e < i - 1; ++e)
2761 n[e] = 1, o[e] = 4, s[e] = 4 * t[e] + 2 * t[e + 1];
2762 for (n[i - 1] = 2, o[i - 1] = 7, s[i - 1] = 8 * t[i - 1] + t[i], e = 1; e < i; ++e)
2763 r = n[e] / o[e - 1], o[e] -= r, s[e] -= r * s[e - 1];
2764 for (n[i - 1] = s[i - 1] / o[i - 1], e = i - 2; e >= 0; --e)
2765 n[e] = (s[e] - n[e + 1]) / o[e];
2766 for (o[i - 1] = (t[i] + n[i - 1]) / 2, e = 0; e < i - 1; ++e)
2767 o[e] = 2 * t[e + 1] - n[e + 1];
2768 return [n, o];
2769}
2770function fd(t) {
2771 return new xa(t);
2772}
2773function dr(t, e) {
2774 this._context = t, this._t = e;
2775}
2776dr.prototype = {
2777 areaStart: function() {
2778 this._line = 0;
2779 },
2780 areaEnd: function() {
2781 this._line = NaN;
2782 },
2783 lineStart: function() {
2784 this._x = this._y = NaN, this._point = 0;
2785 },
2786 lineEnd: function() {
2787 0 < this._t && this._t < 1 && this._point === 2 && this._context.lineTo(this._x, this._y), (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line);
2788 },
2789 point: function(t, e) {
2790 switch (t = +t, e = +e, this._point) {
2791 case 0:
2792 this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e);
2793 break;
2794 case 1:
2795 this._point = 2;
2796 default: {
2797 if (this._t <= 0)
2798 this._context.lineTo(this._x, e), this._context.lineTo(t, e);
2799 else {
2800 var i = this._x * (1 - this._t) + t * this._t;
2801 this._context.lineTo(i, this._y), this._context.lineTo(i, e);
2802 }
2803 break;
2804 }
2805 }
2806 this._x = t, this._y = e;
2807 }
2808};
2809function dd(t) {
2810 return new dr(t, 0.5);
2811}
2812function pd(t) {
2813 return new dr(t, 0);
2814}
2815function gd(t) {
2816 return new dr(t, 1);
2817}
2818function qe(t, e, i) {
2819 this.k = t, this.x = e, this.y = i;
2820}
2821qe.prototype = {
2822 constructor: qe,
2823 scale: function(t) {
2824 return t === 1 ? this : new qe(this.k * t, this.x, this.y);
2825 },
2826 translate: function(t, e) {
2827 return t === 0 & e === 0 ? this : new qe(this.k, this.x + this.k * t, this.y + this.k * e);
2828 },
2829 apply: function(t) {
2830 return [t[0] * this.k + this.x, t[1] * this.k + this.y];
2831 },
2832 applyX: function(t) {
2833 return t * this.k + this.x;
2834 },
2835 applyY: function(t) {
2836 return t * this.k + this.y;
2837 },
2838 invert: function(t) {
2839 return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k];
2840 },
2841 invertX: function(t) {
2842 return (t - this.x) / this.k;
2843 },
2844 invertY: function(t) {
2845 return (t - this.y) / this.k;
2846 },
2847 rescaleX: function(t) {
2848 return t.copy().domain(t.range().map(this.invertX, this).map(t.invert, t));
2849 },
2850 rescaleY: function(t) {
2851 return t.copy().domain(t.range().map(this.invertY, this).map(t.invert, t));
2852 },
2853 toString: function() {
2854 return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
2855 }
2856};
2857qe.prototype;
2858/*! @license DOMPurify 3.0.3 | (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.3/LICENSE */
2859const {
2860 entries: ba,
2861 setPrototypeOf: Vo,
2862 isFrozen: md,
2863 getPrototypeOf: _d,
2864 getOwnPropertyDescriptor: yd
2865} = Object;
2866let {
2867 freeze: tt,
2868 seal: mt,
2869 create: Cd
2870} = Object, {
2871 apply: fn,
2872 construct: dn
2873} = typeof Reflect < "u" && Reflect;
2874fn || (fn = function(e, i, r) {
2875 return e.apply(i, r);
2876});
2877tt || (tt = function(e) {
2878 return e;
2879});
2880mt || (mt = function(e) {
2881 return e;
2882});
2883dn || (dn = function(e, i) {
2884 return new e(...i);
2885});
2886const xd = ct(Array.prototype.forEach), Xo = ct(Array.prototype.pop), $e = ct(Array.prototype.push), Ai = ct(String.prototype.toLowerCase), jr = ct(String.prototype.toString), bd = ct(String.prototype.match), ft = ct(String.prototype.replace), Td = ct(String.prototype.indexOf), Sd = ct(String.prototype.trim), ot = ct(RegExp.prototype.test), Ie = vd(TypeError);
2887function ct(t) {
2888 return function(e) {
2889 for (var i = arguments.length, r = new Array(i > 1 ? i - 1 : 0), n = 1; n < i; n++)
2890 r[n - 1] = arguments[n];
2891 return fn(t, e, r);
2892 };
2893}
2894function vd(t) {
2895 return function() {
2896 for (var e = arguments.length, i = new Array(e), r = 0; r < e; r++)
2897 i[r] = arguments[r];
2898 return dn(t, i);
2899 };
2900}
2901function E(t, e, i) {
2902 var r;
2903 i = (r = i) !== null && r !== void 0 ? r : Ai, Vo && Vo(t, null);
2904 let n = e.length;
2905 for (; n--; ) {
2906 let o = e[n];
2907 if (typeof o == "string") {
2908 const s = i(o);
2909 s !== o && (md(e) || (e[n] = s), o = s);
2910 }
2911 t[o] = !0;
2912 }
2913 return t;
2914}
2915function ue(t) {
2916 const e = Cd(null);
2917 for (const [i, r] of ba(t))
2918 e[i] = r;
2919 return e;
2920}
2921function xi(t, e) {
2922 for (; t !== null; ) {
2923 const r = yd(t, e);
2924 if (r) {
2925 if (r.get)
2926 return ct(r.get);
2927 if (typeof r.value == "function")
2928 return ct(r.value);
2929 }
2930 t = _d(t);
2931 }
2932 function i(r) {
2933 return console.warn("fallback value for", r), null;
2934 }
2935 return i;
2936}
2937const Ko = tt(["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"]), Ur = tt(["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"]), Yr = tt(["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"]), kd = tt(["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"]), Gr = tt(["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"]), wd = tt(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Zo = tt(["#text"]), Jo = tt(["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"]), Vr = tt(["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"]), Qo = tt(["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"]), bi = tt(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Bd = mt(/\{\{[\w\W]*|[\w\W]*\}\}/gm), Fd = mt(/<%[\w\W]*|[\w\W]*%>/gm), Ld = mt(/\${[\w\W]*}/gm), Ad = mt(/^data-[\-\w.\u00B7-\uFFFF]/), Ed = mt(/^aria-[\-\w]+$/), Ta = mt(
2938 /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
2939 // eslint-disable-line no-useless-escape
2940), Md = mt(/^(?:\w+script|data):/i), Od = mt(
2941 /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
2942 // eslint-disable-line no-control-regex
2943), Sa = mt(/^html$/i);
2944var ts = /* @__PURE__ */ Object.freeze({
2945 __proto__: null,
2946 MUSTACHE_EXPR: Bd,
2947 ERB_EXPR: Fd,
2948 TMPLIT_EXPR: Ld,
2949 DATA_ATTR: Ad,
2950 ARIA_ATTR: Ed,
2951 IS_ALLOWED_URI: Ta,
2952 IS_SCRIPT_OR_DATA: Md,
2953 ATTR_WHITESPACE: Od,
2954 DOCTYPE_NAME: Sa
2955});
2956const $d = () => typeof window > "u" ? null : window, Id = function(e, i) {
2957 if (typeof e != "object" || typeof e.createPolicy != "function")
2958 return null;
2959 let r = null;
2960 const n = "data-tt-policy-suffix";
2961 i && i.hasAttribute(n) && (r = i.getAttribute(n));
2962 const o = "dompurify" + (r ? "#" + r : "");
2963 try {
2964 return e.createPolicy(o, {
2965 createHTML(s) {
2966 return s;
2967 },
2968 createScriptURL(s) {
2969 return s;
2970 }
2971 });
2972 } catch {
2973 return console.warn("TrustedTypes policy " + o + " could not be created."), null;
2974 }
2975};
2976function va() {
2977 let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : $d();
2978 const e = (S) => va(S);
2979 if (e.version = "3.0.3", e.removed = [], !t || !t.document || t.document.nodeType !== 9)
2980 return e.isSupported = !1, e;
2981 const i = t.document, r = i.currentScript;
2982 let {
2983 document: n
2984 } = t;
2985 const {
2986 DocumentFragment: o,
2987 HTMLTemplateElement: s,
2988 Node: a,
2989 Element: l,
2990 NodeFilter: h,
2991 NamedNodeMap: c = t.NamedNodeMap || t.MozNamedAttrMap,
2992 HTMLFormElement: u,
2993 DOMParser: g,
2994 trustedTypes: p
2995 } = t, _ = l.prototype, T = xi(_, "cloneNode"), B = xi(_, "nextSibling"), A = xi(_, "childNodes"), C = xi(_, "parentNode");
2996 if (typeof s == "function") {
2997 const S = n.createElement("template");
2998 S.content && S.content.ownerDocument && (n = S.content.ownerDocument);
2999 }
3000 let F, D = "";
3001 const {
3002 implementation: R,
3003 createNodeIterator: V,
3004 createDocumentFragment: O,
3005 getElementsByTagName: wr
3006 } = n, {
3007 importNode: Br
3008 } = i;
3009 let H = {};
3010 e.isSupported = typeof ba == "function" && typeof C == "function" && R && R.createHTMLDocument !== void 0;
3011 const {
3012 MUSTACHE_EXPR: si,
3013 ERB_EXPR: Wt,
3014 TMPLIT_EXPR: ne,
3015 DATA_ATTR: ai,
3016 ARIA_ATTR: li,
3017 IS_SCRIPT_OR_DATA: hi,
3018 ATTR_WHITESPACE: nt
3019 } = ts;
3020 let {
3021 IS_ALLOWED_URI: ci
3022 } = ts, P = null;
3023 const io = E({}, [...Ko, ...Ur, ...Yr, ...Gr, ...Zo]);
3024 let j = null;
3025 const ro = E({}, [...Jo, ...Vr, ...Qo, ...bi]);
3026 let q = Object.seal(Object.create(null, {
3027 tagNameCheck: {
3028 writable: !0,
3029 configurable: !1,
3030 enumerable: !0,
3031 value: null
3032 },
3033 attributeNameCheck: {
3034 writable: !0,
3035 configurable: !1,
3036 enumerable: !0,
3037 value: null
3038 },
3039 allowCustomizedBuiltInElements: {
3040 writable: !0,
3041 configurable: !1,
3042 enumerable: !0,
3043 value: !1
3044 }
3045 })), Ee = null, Fr = null, no = !0, Lr = !0, oo = !1, so = !0, oe = !1, Ht = !1, Ar = !1, Er = !1, se = !1, ui = !1, fi = !1, ao = !0, lo = !1;
3046 const eh = "user-content-";
3047 let Mr = !0, Me = !1, ae = {}, le = null;
3048 const ho = E({}, ["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"]);
3049 let co = null;
3050 const uo = E({}, ["audio", "video", "img", "source", "image", "track"]);
3051 let Or = null;
3052 const fo = E({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), di = "http://www.w3.org/1998/Math/MathML", pi = "http://www.w3.org/2000/svg", vt = "http://www.w3.org/1999/xhtml";
3053 let he = vt, $r = !1, Ir = null;
3054 const ih = E({}, [di, pi, vt], jr);
3055 let jt;
3056 const rh = ["application/xhtml+xml", "text/html"], nh = "text/html";
3057 let U, ce = null;
3058 const oh = n.createElement("form"), po = function(f) {
3059 return f instanceof RegExp || f instanceof Function;
3060 }, Dr = function(f) {
3061 if (!(ce && ce === f)) {
3062 if ((!f || typeof f != "object") && (f = {}), f = ue(f), jt = // eslint-disable-next-line unicorn/prefer-includes
3063 rh.indexOf(f.PARSER_MEDIA_TYPE) === -1 ? jt = nh : jt = f.PARSER_MEDIA_TYPE, U = jt === "application/xhtml+xml" ? jr : Ai, P = "ALLOWED_TAGS" in f ? E({}, f.ALLOWED_TAGS, U) : io, j = "ALLOWED_ATTR" in f ? E({}, f.ALLOWED_ATTR, U) : ro, Ir = "ALLOWED_NAMESPACES" in f ? E({}, f.ALLOWED_NAMESPACES, jr) : ih, Or = "ADD_URI_SAFE_ATTR" in f ? E(
3064 ue(fo),
3065 // eslint-disable-line indent
3066 f.ADD_URI_SAFE_ATTR,
3067 // eslint-disable-line indent
3068 U
3069 // eslint-disable-line indent
3070 ) : fo, co = "ADD_DATA_URI_TAGS" in f ? E(
3071 ue(uo),
3072 // eslint-disable-line indent
3073 f.ADD_DATA_URI_TAGS,
3074 // eslint-disable-line indent
3075 U
3076 // eslint-disable-line indent
3077 ) : uo, le = "FORBID_CONTENTS" in f ? E({}, f.FORBID_CONTENTS, U) : ho, Ee = "FORBID_TAGS" in f ? E({}, f.FORBID_TAGS, U) : {}, Fr = "FORBID_ATTR" in f ? E({}, f.FORBID_ATTR, U) : {}, ae = "USE_PROFILES" in f ? f.USE_PROFILES : !1, no = f.ALLOW_ARIA_ATTR !== !1, Lr = f.ALLOW_DATA_ATTR !== !1, oo = f.ALLOW_UNKNOWN_PROTOCOLS || !1, so = f.ALLOW_SELF_CLOSE_IN_ATTR !== !1, oe = f.SAFE_FOR_TEMPLATES || !1, Ht = f.WHOLE_DOCUMENT || !1, se = f.RETURN_DOM || !1, ui = f.RETURN_DOM_FRAGMENT || !1, fi = f.RETURN_TRUSTED_TYPE || !1, Er = f.FORCE_BODY || !1, ao = f.SANITIZE_DOM !== !1, lo = f.SANITIZE_NAMED_PROPS || !1, Mr = f.KEEP_CONTENT !== !1, Me = f.IN_PLACE || !1, ci = f.ALLOWED_URI_REGEXP || Ta, he = f.NAMESPACE || vt, q = f.CUSTOM_ELEMENT_HANDLING || {}, f.CUSTOM_ELEMENT_HANDLING && po(f.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (q.tagNameCheck = f.CUSTOM_ELEMENT_HANDLING.tagNameCheck), f.CUSTOM_ELEMENT_HANDLING && po(f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (q.attributeNameCheck = f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), f.CUSTOM_ELEMENT_HANDLING && typeof f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (q.allowCustomizedBuiltInElements = f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), oe && (Lr = !1), ui && (se = !0), ae && (P = E({}, [...Zo]), j = [], ae.html === !0 && (E(P, Ko), E(j, Jo)), ae.svg === !0 && (E(P, Ur), E(j, Vr), E(j, bi)), ae.svgFilters === !0 && (E(P, Yr), E(j, Vr), E(j, bi)), ae.mathMl === !0 && (E(P, Gr), E(j, Qo), E(j, bi))), f.ADD_TAGS && (P === io && (P = ue(P)), E(P, f.ADD_TAGS, U)), f.ADD_ATTR && (j === ro && (j = ue(j)), E(j, f.ADD_ATTR, U)), f.ADD_URI_SAFE_ATTR && E(Or, f.ADD_URI_SAFE_ATTR, U), f.FORBID_CONTENTS && (le === ho && (le = ue(le)), E(le, f.FORBID_CONTENTS, U)), Mr && (P["#text"] = !0), Ht && E(P, ["html", "head", "body"]), P.table && (E(P, ["tbody"]), delete Ee.tbody), f.TRUSTED_TYPES_POLICY) {
3078 if (typeof f.TRUSTED_TYPES_POLICY.createHTML != "function")
3079 throw Ie('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
3080 if (typeof f.TRUSTED_TYPES_POLICY.createScriptURL != "function")
3081 throw Ie('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
3082 F = f.TRUSTED_TYPES_POLICY, D = F.createHTML("");
3083 } else
3084 F === void 0 && (F = Id(p, r)), F !== null && typeof D == "string" && (D = F.createHTML(""));
3085 tt && tt(f), ce = f;
3086 }
3087 }, go = E({}, ["mi", "mo", "mn", "ms", "mtext"]), mo = E({}, ["foreignobject", "desc", "title", "annotation-xml"]), sh = E({}, ["title", "style", "font", "a", "script"]), gi = E({}, Ur);
3088 E(gi, Yr), E(gi, kd);
3089 const Nr = E({}, Gr);
3090 E(Nr, wd);
3091 const ah = function(f) {
3092 let m = C(f);
3093 (!m || !m.tagName) && (m = {
3094 namespaceURI: he,
3095 tagName: "template"
3096 });
3097 const x = Ai(f.tagName), M = Ai(m.tagName);
3098 return Ir[f.namespaceURI] ? f.namespaceURI === pi ? m.namespaceURI === vt ? x === "svg" : m.namespaceURI === di ? x === "svg" && (M === "annotation-xml" || go[M]) : !!gi[x] : f.namespaceURI === di ? m.namespaceURI === vt ? x === "math" : m.namespaceURI === pi ? x === "math" && mo[M] : !!Nr[x] : f.namespaceURI === vt ? m.namespaceURI === pi && !mo[M] || m.namespaceURI === di && !go[M] ? !1 : !Nr[x] && (sh[x] || !gi[x]) : !!(jt === "application/xhtml+xml" && Ir[f.namespaceURI]) : !1;
3099 }, Ut = function(f) {
3100 $e(e.removed, {
3101 element: f
3102 });
3103 try {
3104 f.parentNode.removeChild(f);
3105 } catch {
3106 f.remove();
3107 }
3108 }, Rr = function(f, m) {
3109 try {
3110 $e(e.removed, {
3111 attribute: m.getAttributeNode(f),
3112 from: m
3113 });
3114 } catch {
3115 $e(e.removed, {
3116 attribute: null,
3117 from: m
3118 });
3119 }
3120 if (m.removeAttribute(f), f === "is" && !j[f])
3121 if (se || ui)
3122 try {
3123 Ut(m);
3124 } catch {
3125 }
3126 else
3127 try {
3128 m.setAttribute(f, "");
3129 } catch {
3130 }
3131 }, _o = function(f) {
3132 let m, x;
3133 if (Er)
3134 f = "<remove></remove>" + f;
3135 else {
3136 const at = bd(f, /^[\r\n\t ]+/);
3137 x = at && at[0];
3138 }
3139 jt === "application/xhtml+xml" && he === vt && (f = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + f + "</body></html>");
3140 const M = F ? F.createHTML(f) : f;
3141 if (he === vt)
3142 try {
3143 m = new g().parseFromString(M, jt);
3144 } catch {
3145 }
3146 if (!m || !m.documentElement) {
3147 m = R.createDocument(he, "template", null);
3148 try {
3149 m.documentElement.innerHTML = $r ? D : M;
3150 } catch {
3151 }
3152 }
3153 const Y = m.body || m.documentElement;
3154 return f && x && Y.insertBefore(n.createTextNode(x), Y.childNodes[0] || null), he === vt ? wr.call(m, Ht ? "html" : "body")[0] : Ht ? m.documentElement : Y;
3155 }, yo = function(f) {
3156 return V.call(
3157 f.ownerDocument || f,
3158 f,
3159 // eslint-disable-next-line no-bitwise
3160 h.SHOW_ELEMENT | h.SHOW_COMMENT | h.SHOW_TEXT,
3161 null,
3162 !1
3163 );
3164 }, lh = function(f) {
3165 return f instanceof u && (typeof f.nodeName != "string" || typeof f.textContent != "string" || typeof f.removeChild != "function" || !(f.attributes instanceof c) || typeof f.removeAttribute != "function" || typeof f.setAttribute != "function" || typeof f.namespaceURI != "string" || typeof f.insertBefore != "function" || typeof f.hasChildNodes != "function");
3166 }, mi = function(f) {
3167 return typeof a == "object" ? f instanceof a : f && typeof f == "object" && typeof f.nodeType == "number" && typeof f.nodeName == "string";
3168 }, kt = function(f, m, x) {
3169 H[f] && xd(H[f], (M) => {
3170 M.call(e, m, x, ce);
3171 });
3172 }, Co = function(f) {
3173 let m;
3174 if (kt("beforeSanitizeElements", f, null), lh(f))
3175 return Ut(f), !0;
3176 const x = U(f.nodeName);
3177 if (kt("uponSanitizeElement", f, {
3178 tagName: x,
3179 allowedTags: P
3180 }), f.hasChildNodes() && !mi(f.firstElementChild) && (!mi(f.content) || !mi(f.content.firstElementChild)) && ot(/<[/\w]/g, f.innerHTML) && ot(/<[/\w]/g, f.textContent))
3181 return Ut(f), !0;
3182 if (!P[x] || Ee[x]) {
3183 if (!Ee[x] && bo(x) && (q.tagNameCheck instanceof RegExp && ot(q.tagNameCheck, x) || q.tagNameCheck instanceof Function && q.tagNameCheck(x)))
3184 return !1;
3185 if (Mr && !le[x]) {
3186 const M = C(f) || f.parentNode, Y = A(f) || f.childNodes;
3187 if (Y && M) {
3188 const at = Y.length;
3189 for (let N = at - 1; N >= 0; --N)
3190 M.insertBefore(T(Y[N], !0), B(f));
3191 }
3192 }
3193 return Ut(f), !0;
3194 }
3195 return f instanceof l && !ah(f) || (x === "noscript" || x === "noembed") && ot(/<\/no(script|embed)/i, f.innerHTML) ? (Ut(f), !0) : (oe && f.nodeType === 3 && (m = f.textContent, m = ft(m, si, " "), m = ft(m, Wt, " "), m = ft(m, ne, " "), f.textContent !== m && ($e(e.removed, {
3196 element: f.cloneNode()
3197 }), f.textContent = m)), kt("afterSanitizeElements", f, null), !1);
3198 }, xo = function(f, m, x) {
3199 if (ao && (m === "id" || m === "name") && (x in n || x in oh))
3200 return !1;
3201 if (!(Lr && !Fr[m] && ot(ai, m))) {
3202 if (!(no && ot(li, m))) {
3203 if (!j[m] || Fr[m]) {
3204 if (
3205 // First condition does a very basic check if a) it's basically a valid custom element tagname AND
3206 // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
3207 // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
3208 !(bo(f) && (q.tagNameCheck instanceof RegExp && ot(q.tagNameCheck, f) || q.tagNameCheck instanceof Function && q.tagNameCheck(f)) && (q.attributeNameCheck instanceof RegExp && ot(q.attributeNameCheck, m) || q.attributeNameCheck instanceof Function && q.attributeNameCheck(m)) || // Alternative, second condition checks if it's an `is`-attribute, AND
3209 // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
3210 m === "is" && q.allowCustomizedBuiltInElements && (q.tagNameCheck instanceof RegExp && ot(q.tagNameCheck, x) || q.tagNameCheck instanceof Function && q.tagNameCheck(x)))
3211 )
3212 return !1;
3213 } else if (!Or[m]) {
3214 if (!ot(ci, ft(x, nt, ""))) {
3215 if (!((m === "src" || m === "xlink:href" || m === "href") && f !== "script" && Td(x, "data:") === 0 && co[f])) {
3216 if (!(oo && !ot(hi, ft(x, nt, "")))) {
3217 if (x)
3218 return !1;
3219 }
3220 }
3221 }
3222 }
3223 }
3224 }
3225 return !0;
3226 }, bo = function(f) {
3227 return f.indexOf("-") > 0;
3228 }, To = function(f) {
3229 let m, x, M, Y;
3230 kt("beforeSanitizeAttributes", f, null);
3231 const {
3232 attributes: at
3233 } = f;
3234 if (!at)
3235 return;
3236 const N = {
3237 attrName: "",
3238 attrValue: "",
3239 keepAttr: !0,
3240 allowedAttributes: j
3241 };
3242 for (Y = at.length; Y--; ) {
3243 m = at[Y];
3244 const {
3245 name: yt,
3246 namespaceURI: qr
3247 } = m;
3248 if (x = yt === "value" ? m.value : Sd(m.value), M = U(yt), N.attrName = M, N.attrValue = x, N.keepAttr = !0, N.forceKeepAttr = void 0, kt("uponSanitizeAttribute", f, N), x = N.attrValue, N.forceKeepAttr || (Rr(yt, f), !N.keepAttr))
3249 continue;
3250 if (!so && ot(/\/>/i, x)) {
3251 Rr(yt, f);
3252 continue;
3253 }
3254 oe && (x = ft(x, si, " "), x = ft(x, Wt, " "), x = ft(x, ne, " "));
3255 const So = U(f.nodeName);
3256 if (xo(So, M, x)) {
3257 if (lo && (M === "id" || M === "name") && (Rr(yt, f), x = eh + x), F && typeof p == "object" && typeof p.getAttributeType == "function" && !qr)
3258 switch (p.getAttributeType(So, M)) {
3259 case "TrustedHTML": {
3260 x = F.createHTML(x);
3261 break;
3262 }
3263 case "TrustedScriptURL": {
3264 x = F.createScriptURL(x);
3265 break;
3266 }
3267 }
3268 try {
3269 qr ? f.setAttributeNS(qr, yt, x) : f.setAttribute(yt, x), Xo(e.removed);
3270 } catch {
3271 }
3272 }
3273 }
3274 kt("afterSanitizeAttributes", f, null);
3275 }, hh = function S(f) {
3276 let m;
3277 const x = yo(f);
3278 for (kt("beforeSanitizeShadowDOM", f, null); m = x.nextNode(); )
3279 kt("uponSanitizeShadowNode", m, null), !Co(m) && (m.content instanceof o && S(m.content), To(m));
3280 kt("afterSanitizeShadowDOM", f, null);
3281 };
3282 return e.sanitize = function(S) {
3283 let f = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, m, x, M, Y;
3284 if ($r = !S, $r && (S = "<!-->"), typeof S != "string" && !mi(S))
3285 if (typeof S.toString == "function") {
3286 if (S = S.toString(), typeof S != "string")
3287 throw Ie("dirty is not a string, aborting");
3288 } else
3289 throw Ie("toString is not a function");
3290 if (!e.isSupported)
3291 return S;
3292 if (Ar || Dr(f), e.removed = [], typeof S == "string" && (Me = !1), Me) {
3293 if (S.nodeName) {
3294 const yt = U(S.nodeName);
3295 if (!P[yt] || Ee[yt])
3296 throw Ie("root node is forbidden and cannot be sanitized in-place");
3297 }
3298 } else if (S instanceof a)
3299 m = _o("<!---->"), x = m.ownerDocument.importNode(S, !0), x.nodeType === 1 && x.nodeName === "BODY" || x.nodeName === "HTML" ? m = x : m.appendChild(x);
3300 else {
3301 if (!se && !oe && !Ht && // eslint-disable-next-line unicorn/prefer-includes
3302 S.indexOf("<") === -1)
3303 return F && fi ? F.createHTML(S) : S;
3304 if (m = _o(S), !m)
3305 return se ? null : fi ? D : "";
3306 }
3307 m && Er && Ut(m.firstChild);
3308 const at = yo(Me ? S : m);
3309 for (; M = at.nextNode(); )
3310 Co(M) || (M.content instanceof o && hh(M.content), To(M));
3311 if (Me)
3312 return S;
3313 if (se) {
3314 if (ui)
3315 for (Y = O.call(m.ownerDocument); m.firstChild; )
3316 Y.appendChild(m.firstChild);
3317 else
3318 Y = m;
3319 return (j.shadowroot || j.shadowrootmod) && (Y = Br.call(i, Y, !0)), Y;
3320 }
3321 let N = Ht ? m.outerHTML : m.innerHTML;
3322 return Ht && P["!doctype"] && m.ownerDocument && m.ownerDocument.doctype && m.ownerDocument.doctype.name && ot(Sa, m.ownerDocument.doctype.name) && (N = "<!DOCTYPE " + m.ownerDocument.doctype.name + `>
3323` + N), oe && (N = ft(N, si, " "), N = ft(N, Wt, " "), N = ft(N, ne, " ")), F && fi ? F.createHTML(N) : N;
3324 }, e.setConfig = function(S) {
3325 Dr(S), Ar = !0;
3326 }, e.clearConfig = function() {
3327 ce = null, Ar = !1;
3328 }, e.isValidAttribute = function(S, f, m) {
3329 ce || Dr({});
3330 const x = U(S), M = U(f);
3331 return xo(x, M, m);
3332 }, e.addHook = function(S, f) {
3333 typeof f == "function" && (H[S] = H[S] || [], $e(H[S], f));
3334 }, e.removeHook = function(S) {
3335 if (H[S])
3336 return Xo(H[S]);
3337 }, e.removeHooks = function(S) {
3338 H[S] && (H[S] = []);
3339 }, e.removeAllHooks = function() {
3340 H = {};
3341 }, e;
3342}
3343var Ki = va();
3344const pr = /<br\s*\/?>/gi, Dd = (t) => t ? wa(t).replace(/\\n/g, "#br#").split("#br#") : [""], ka = (t) => Ki.sanitize(t), es = (t, e) => {
3345 var i;
3346 if (((i = e.flowchart) == null ? void 0 : i.htmlLabels) !== !1) {
3347 const r = e.securityLevel;
3348 r === "antiscript" || r === "strict" ? t = ka(t) : r !== "loose" && (t = wa(t), t = t.replace(/</g, "&lt;").replace(/>/g, "&gt;"), t = t.replace(/=/g, "&equals;"), t = Pd(t));
3349 }
3350 return t;
3351}, Xe = (t, e) => t && (e.dompurifyConfig ? t = Ki.sanitize(es(t, e), e.dompurifyConfig).toString() : t = Ki.sanitize(es(t, e), {
3352 FORBID_TAGS: ["style"]
3353}).toString(), t), Nd = (t, e) => typeof t == "string" ? Xe(t, e) : t.flat().map((i) => Xe(i, e)), Rd = (t) => pr.test(t), qd = (t) => t.split(pr), Pd = (t) => t.replace(/#br#/g, "<br/>"), wa = (t) => t.replace(pr, "#br#"), zd = (t) => {
3354 let e = "";
3355 return t && (e = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, e = e.replaceAll(/\(/g, "\\("), e = e.replaceAll(/\)/g, "\\)")), e;
3356}, Ba = (t) => !(t === !1 || ["false", "null", "0"].includes(String(t).trim().toLowerCase())), Wd = function(...t) {
3357 const e = t.filter((i) => !isNaN(i));
3358 return Math.max(...e);
3359}, Hd = function(...t) {
3360 const e = t.filter((i) => !isNaN(i));
3361 return Math.min(...e);
3362}, jd = function(t) {
3363 let e = t;
3364 if (t.split("~").length - 1 >= 2) {
3365 let i = e;
3366 do
3367 e = i, i = e.replace(/~([^\s,:;]+)~/, "<$1>");
3368 while (i != e);
3369 return jd(i);
3370 } else
3371 return e;
3372}, zn = {
3373 getRows: Dd,
3374 sanitizeText: Xe,
3375 sanitizeTextOrArray: Nd,
3376 hasBreaks: Rd,
3377 splitBreaks: qd,
3378 lineBreakRegex: pr,
3379 removeScript: ka,
3380 getUrl: zd,
3381 evaluate: Ba,
3382 getMax: Wd,
3383 getMin: Hd
3384}, Ei = {
3385 /* CLAMP */
3386 min: {
3387 r: 0,
3388 g: 0,
3389 b: 0,
3390 s: 0,
3391 l: 0,
3392 a: 0
3393 },
3394 max: {
3395 r: 255,
3396 g: 255,
3397 b: 255,
3398 h: 360,
3399 s: 100,
3400 l: 100,
3401 a: 1
3402 },
3403 clamp: {
3404 r: (t) => t >= 255 ? 255 : t < 0 ? 0 : t,
3405 g: (t) => t >= 255 ? 255 : t < 0 ? 0 : t,
3406 b: (t) => t >= 255 ? 255 : t < 0 ? 0 : t,
3407 h: (t) => t % 360,
3408 s: (t) => t >= 100 ? 100 : t < 0 ? 0 : t,
3409 l: (t) => t >= 100 ? 100 : t < 0 ? 0 : t,
3410 a: (t) => t >= 1 ? 1 : t < 0 ? 0 : t
3411 },
3412 /* CONVERSION */
3413 //SOURCE: https://planetcalc.com/7779
3414 toLinear: (t) => {
3415 const e = t / 255;
3416 return t > 0.03928 ? Math.pow((e + 0.055) / 1.055, 2.4) : e / 12.92;
3417 },
3418 //SOURCE: https://gist.github.com/mjackson/5311256
3419 hue2rgb: (t, e, i) => (i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + (e - t) * 6 * i : i < 1 / 2 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t),
3420 hsl2rgb: ({ h: t, s: e, l: i }, r) => {
3421 if (!e)
3422 return i * 2.55;
3423 t /= 360, e /= 100, i /= 100;
3424 const n = i < 0.5 ? i * (1 + e) : i + e - i * e, o = 2 * i - n;
3425 switch (r) {
3426 case "r":
3427 return Ei.hue2rgb(o, n, t + 1 / 3) * 255;
3428 case "g":
3429 return Ei.hue2rgb(o, n, t) * 255;
3430 case "b":
3431 return Ei.hue2rgb(o, n, t - 1 / 3) * 255;
3432 }
3433 },
3434 rgb2hsl: ({ r: t, g: e, b: i }, r) => {
3435 t /= 255, e /= 255, i /= 255;
3436 const n = Math.max(t, e, i), o = Math.min(t, e, i), s = (n + o) / 2;
3437 if (r === "l")
3438 return s * 100;
3439 if (n === o)
3440 return 0;
3441 const a = n - o, l = s > 0.5 ? a / (2 - n - o) : a / (n + o);
3442 if (r === "s")
3443 return l * 100;
3444 switch (n) {
3445 case t:
3446 return ((e - i) / a + (e < i ? 6 : 0)) * 60;
3447 case e:
3448 return ((i - t) / a + 2) * 60;
3449 case i:
3450 return ((t - e) / a + 4) * 60;
3451 default:
3452 return -1;
3453 }
3454 }
3455}, Ud = Ei, Yd = {
3456 /* API */
3457 clamp: (t, e, i) => e > i ? Math.min(e, Math.max(i, t)) : Math.min(i, Math.max(e, t)),
3458 round: (t) => Math.round(t * 1e10) / 1e10
3459}, Gd = Yd, Vd = {
3460 /* API */
3461 dec2hex: (t) => {
3462 const e = Math.round(t).toString(16);
3463 return e.length > 1 ? e : `0${e}`;
3464 }
3465}, Xd = Vd, Kd = {
3466 channel: Ud,
3467 lang: Gd,
3468 unit: Xd
3469}, L = Kd, Mt = {};
3470for (let t = 0; t <= 255; t++)
3471 Mt[t] = L.unit.dec2hex(t);
3472const X = {
3473 ALL: 0,
3474 RGB: 1,
3475 HSL: 2
3476};
3477class Zd {
3478 constructor() {
3479 this.type = X.ALL;
3480 }
3481 /* API */
3482 get() {
3483 return this.type;
3484 }
3485 set(e) {
3486 if (this.type && this.type !== e)
3487 throw new Error("Cannot change both RGB and HSL channels at the same time");
3488 this.type = e;
3489 }
3490 reset() {
3491 this.type = X.ALL;
3492 }
3493 is(e) {
3494 return this.type === e;
3495 }
3496}
3497const Jd = Zd;
3498class Qd {
3499 /* CONSTRUCTOR */
3500 constructor(e, i) {
3501 this.color = i, this.changed = !1, this.data = e, this.type = new Jd();
3502 }
3503 /* API */
3504 set(e, i) {
3505 return this.color = i, this.changed = !1, this.data = e, this.type.type = X.ALL, this;
3506 }
3507 /* HELPERS */
3508 _ensureHSL() {
3509 const e = this.data, { h: i, s: r, l: n } = e;
3510 i === void 0 && (e.h = L.channel.rgb2hsl(e, "h")), r === void 0 && (e.s = L.channel.rgb2hsl(e, "s")), n === void 0 && (e.l = L.channel.rgb2hsl(e, "l"));
3511 }
3512 _ensureRGB() {
3513 const e = this.data, { r: i, g: r, b: n } = e;
3514 i === void 0 && (e.r = L.channel.hsl2rgb(e, "r")), r === void 0 && (e.g = L.channel.hsl2rgb(e, "g")), n === void 0 && (e.b = L.channel.hsl2rgb(e, "b"));
3515 }
3516 /* GETTERS */
3517 get r() {
3518 const e = this.data, i = e.r;
3519 return !this.type.is(X.HSL) && i !== void 0 ? i : (this._ensureHSL(), L.channel.hsl2rgb(e, "r"));
3520 }
3521 get g() {
3522 const e = this.data, i = e.g;
3523 return !this.type.is(X.HSL) && i !== void 0 ? i : (this._ensureHSL(), L.channel.hsl2rgb(e, "g"));
3524 }
3525 get b() {
3526 const e = this.data, i = e.b;
3527 return !this.type.is(X.HSL) && i !== void 0 ? i : (this._ensureHSL(), L.channel.hsl2rgb(e, "b"));
3528 }
3529 get h() {
3530 const e = this.data, i = e.h;
3531 return !this.type.is(X.RGB) && i !== void 0 ? i : (this._ensureRGB(), L.channel.rgb2hsl(e, "h"));
3532 }
3533 get s() {
3534 const e = this.data, i = e.s;
3535 return !this.type.is(X.RGB) && i !== void 0 ? i : (this._ensureRGB(), L.channel.rgb2hsl(e, "s"));
3536 }
3537 get l() {
3538 const e = this.data, i = e.l;
3539 return !this.type.is(X.RGB) && i !== void 0 ? i : (this._ensureRGB(), L.channel.rgb2hsl(e, "l"));
3540 }
3541 get a() {
3542 return this.data.a;
3543 }
3544 /* SETTERS */
3545 set r(e) {
3546 this.type.set(X.RGB), this.changed = !0, this.data.r = e;
3547 }
3548 set g(e) {
3549 this.type.set(X.RGB), this.changed = !0, this.data.g = e;
3550 }
3551 set b(e) {
3552 this.type.set(X.RGB), this.changed = !0, this.data.b = e;
3553 }
3554 set h(e) {
3555 this.type.set(X.HSL), this.changed = !0, this.data.h = e;
3556 }
3557 set s(e) {
3558 this.type.set(X.HSL), this.changed = !0, this.data.s = e;
3559 }
3560 set l(e) {
3561 this.type.set(X.HSL), this.changed = !0, this.data.l = e;
3562 }
3563 set a(e) {
3564 this.changed = !0, this.data.a = e;
3565 }
3566}
3567const tp = Qd, ep = new tp({ r: 0, g: 0, b: 0, a: 0 }, "transparent"), gr = ep, Fa = {
3568 /* VARIABLES */
3569 re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
3570 /* API */
3571 parse: (t) => {
3572 if (t.charCodeAt(0) !== 35)
3573 return;
3574 const e = t.match(Fa.re);
3575 if (!e)
3576 return;
3577 const i = e[1], r = parseInt(i, 16), n = i.length, o = n % 4 === 0, s = n > 4, a = s ? 1 : 17, l = s ? 8 : 4, h = o ? 0 : -1, c = s ? 255 : 15;
3578 return gr.set({
3579 r: (r >> l * (h + 3) & c) * a,
3580 g: (r >> l * (h + 2) & c) * a,
3581 b: (r >> l * (h + 1) & c) * a,
3582 a: o ? (r & c) * a / 255 : 1
3583 }, t);
3584 },
3585 stringify: (t) => {
3586 const { r: e, g: i, b: r, a: n } = t;
3587 return n < 1 ? `#${Mt[Math.round(e)]}${Mt[Math.round(i)]}${Mt[Math.round(r)]}${Mt[Math.round(n * 255)]}` : `#${Mt[Math.round(e)]}${Mt[Math.round(i)]}${Mt[Math.round(r)]}`;
3588 }
3589}, ze = Fa, Mi = {
3590 /* VARIABLES */
3591 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,
3592 hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
3593 /* HELPERS */
3594 _hue2deg: (t) => {
3595 const e = t.match(Mi.hueRe);
3596 if (e) {
3597 const [, i, r] = e;
3598 switch (r) {
3599 case "grad":
3600 return L.channel.clamp.h(parseFloat(i) * 0.9);
3601 case "rad":
3602 return L.channel.clamp.h(parseFloat(i) * 180 / Math.PI);
3603 case "turn":
3604 return L.channel.clamp.h(parseFloat(i) * 360);
3605 }
3606 }
3607 return L.channel.clamp.h(parseFloat(t));
3608 },
3609 /* API */
3610 parse: (t) => {
3611 const e = t.charCodeAt(0);
3612 if (e !== 104 && e !== 72)
3613 return;
3614 const i = t.match(Mi.re);
3615 if (!i)
3616 return;
3617 const [, r, n, o, s, a] = i;
3618 return gr.set({
3619 h: Mi._hue2deg(r),
3620 s: L.channel.clamp.s(parseFloat(n)),
3621 l: L.channel.clamp.l(parseFloat(o)),
3622 a: s ? L.channel.clamp.a(a ? parseFloat(s) / 100 : parseFloat(s)) : 1
3623 }, t);
3624 },
3625 stringify: (t) => {
3626 const { h: e, s: i, l: r, a: n } = t;
3627 return n < 1 ? `hsla(${L.lang.round(e)}, ${L.lang.round(i)}%, ${L.lang.round(r)}%, ${n})` : `hsl(${L.lang.round(e)}, ${L.lang.round(i)}%, ${L.lang.round(r)}%)`;
3628 }
3629}, Ti = Mi, Oi = {
3630 /* VARIABLES */
3631 colors: {
3632 aliceblue: "#f0f8ff",
3633 antiquewhite: "#faebd7",
3634 aqua: "#00ffff",
3635 aquamarine: "#7fffd4",
3636 azure: "#f0ffff",
3637 beige: "#f5f5dc",
3638 bisque: "#ffe4c4",
3639 black: "#000000",
3640 blanchedalmond: "#ffebcd",
3641 blue: "#0000ff",
3642 blueviolet: "#8a2be2",
3643 brown: "#a52a2a",
3644 burlywood: "#deb887",
3645 cadetblue: "#5f9ea0",
3646 chartreuse: "#7fff00",
3647 chocolate: "#d2691e",
3648 coral: "#ff7f50",
3649 cornflowerblue: "#6495ed",
3650 cornsilk: "#fff8dc",
3651 crimson: "#dc143c",
3652 cyanaqua: "#00ffff",
3653 darkblue: "#00008b",
3654 darkcyan: "#008b8b",
3655 darkgoldenrod: "#b8860b",
3656 darkgray: "#a9a9a9",
3657 darkgreen: "#006400",
3658 darkgrey: "#a9a9a9",
3659 darkkhaki: "#bdb76b",
3660 darkmagenta: "#8b008b",
3661 darkolivegreen: "#556b2f",
3662 darkorange: "#ff8c00",
3663 darkorchid: "#9932cc",
3664 darkred: "#8b0000",
3665 darksalmon: "#e9967a",
3666 darkseagreen: "#8fbc8f",
3667 darkslateblue: "#483d8b",
3668 darkslategray: "#2f4f4f",
3669 darkslategrey: "#2f4f4f",
3670 darkturquoise: "#00ced1",
3671 darkviolet: "#9400d3",
3672 deeppink: "#ff1493",
3673 deepskyblue: "#00bfff",
3674 dimgray: "#696969",
3675 dimgrey: "#696969",
3676 dodgerblue: "#1e90ff",
3677 firebrick: "#b22222",
3678 floralwhite: "#fffaf0",
3679 forestgreen: "#228b22",
3680 fuchsia: "#ff00ff",
3681 gainsboro: "#dcdcdc",
3682 ghostwhite: "#f8f8ff",
3683 gold: "#ffd700",
3684 goldenrod: "#daa520",
3685 gray: "#808080",
3686 green: "#008000",
3687 greenyellow: "#adff2f",
3688 grey: "#808080",
3689 honeydew: "#f0fff0",
3690 hotpink: "#ff69b4",
3691 indianred: "#cd5c5c",
3692 indigo: "#4b0082",
3693 ivory: "#fffff0",
3694 khaki: "#f0e68c",
3695 lavender: "#e6e6fa",
3696 lavenderblush: "#fff0f5",
3697 lawngreen: "#7cfc00",
3698 lemonchiffon: "#fffacd",
3699 lightblue: "#add8e6",
3700 lightcoral: "#f08080",
3701 lightcyan: "#e0ffff",
3702 lightgoldenrodyellow: "#fafad2",
3703 lightgray: "#d3d3d3",
3704 lightgreen: "#90ee90",
3705 lightgrey: "#d3d3d3",
3706 lightpink: "#ffb6c1",
3707 lightsalmon: "#ffa07a",
3708 lightseagreen: "#20b2aa",
3709 lightskyblue: "#87cefa",
3710 lightslategray: "#778899",
3711 lightslategrey: "#778899",
3712 lightsteelblue: "#b0c4de",
3713 lightyellow: "#ffffe0",
3714 lime: "#00ff00",
3715 limegreen: "#32cd32",
3716 linen: "#faf0e6",
3717 magenta: "#ff00ff",
3718 maroon: "#800000",
3719 mediumaquamarine: "#66cdaa",
3720 mediumblue: "#0000cd",
3721 mediumorchid: "#ba55d3",
3722 mediumpurple: "#9370db",
3723 mediumseagreen: "#3cb371",
3724 mediumslateblue: "#7b68ee",
3725 mediumspringgreen: "#00fa9a",
3726 mediumturquoise: "#48d1cc",
3727 mediumvioletred: "#c71585",
3728 midnightblue: "#191970",
3729 mintcream: "#f5fffa",
3730 mistyrose: "#ffe4e1",
3731 moccasin: "#ffe4b5",
3732 navajowhite: "#ffdead",
3733 navy: "#000080",
3734 oldlace: "#fdf5e6",
3735 olive: "#808000",
3736 olivedrab: "#6b8e23",
3737 orange: "#ffa500",
3738 orangered: "#ff4500",
3739 orchid: "#da70d6",
3740 palegoldenrod: "#eee8aa",
3741 palegreen: "#98fb98",
3742 paleturquoise: "#afeeee",
3743 palevioletred: "#db7093",
3744 papayawhip: "#ffefd5",
3745 peachpuff: "#ffdab9",
3746 peru: "#cd853f",
3747 pink: "#ffc0cb",
3748 plum: "#dda0dd",
3749 powderblue: "#b0e0e6",
3750 purple: "#800080",
3751 rebeccapurple: "#663399",
3752 red: "#ff0000",
3753 rosybrown: "#bc8f8f",
3754 royalblue: "#4169e1",
3755 saddlebrown: "#8b4513",
3756 salmon: "#fa8072",
3757 sandybrown: "#f4a460",
3758 seagreen: "#2e8b57",
3759 seashell: "#fff5ee",
3760 sienna: "#a0522d",
3761 silver: "#c0c0c0",
3762 skyblue: "#87ceeb",
3763 slateblue: "#6a5acd",
3764 slategray: "#708090",
3765 slategrey: "#708090",
3766 snow: "#fffafa",
3767 springgreen: "#00ff7f",
3768 tan: "#d2b48c",
3769 teal: "#008080",
3770 thistle: "#d8bfd8",
3771 transparent: "#00000000",
3772 turquoise: "#40e0d0",
3773 violet: "#ee82ee",
3774 wheat: "#f5deb3",
3775 white: "#ffffff",
3776 whitesmoke: "#f5f5f5",
3777 yellow: "#ffff00",
3778 yellowgreen: "#9acd32"
3779 },
3780 /* API */
3781 parse: (t) => {
3782 t = t.toLowerCase();
3783 const e = Oi.colors[t];
3784 if (e)
3785 return ze.parse(e);
3786 },
3787 stringify: (t) => {
3788 const e = ze.stringify(t);
3789 for (const i in Oi.colors)
3790 if (Oi.colors[i] === e)
3791 return i;
3792 }
3793}, is = Oi, La = {
3794 /* VARIABLES */
3795 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,
3796 /* API */
3797 parse: (t) => {
3798 const e = t.charCodeAt(0);
3799 if (e !== 114 && e !== 82)
3800 return;
3801 const i = t.match(La.re);
3802 if (!i)
3803 return;
3804 const [, r, n, o, s, a, l, h, c] = i;
3805 return gr.set({
3806 r: L.channel.clamp.r(n ? parseFloat(r) * 2.55 : parseFloat(r)),
3807 g: L.channel.clamp.g(s ? parseFloat(o) * 2.55 : parseFloat(o)),
3808 b: L.channel.clamp.b(l ? parseFloat(a) * 2.55 : parseFloat(a)),
3809 a: h ? L.channel.clamp.a(c ? parseFloat(h) / 100 : parseFloat(h)) : 1
3810 }, t);
3811 },
3812 stringify: (t) => {
3813 const { r: e, g: i, b: r, a: n } = t;
3814 return n < 1 ? `rgba(${L.lang.round(e)}, ${L.lang.round(i)}, ${L.lang.round(r)}, ${L.lang.round(n)})` : `rgb(${L.lang.round(e)}, ${L.lang.round(i)}, ${L.lang.round(r)})`;
3815 }
3816}, Si = La, ip = {
3817 /* VARIABLES */
3818 format: {
3819 keyword: is,
3820 hex: ze,
3821 rgb: Si,
3822 rgba: Si,
3823 hsl: Ti,
3824 hsla: Ti
3825 },
3826 /* API */
3827 parse: (t) => {
3828 if (typeof t != "string")
3829 return t;
3830 const e = ze.parse(t) || Si.parse(t) || Ti.parse(t) || is.parse(t);
3831 if (e)
3832 return e;
3833 throw new Error(`Unsupported color format: "${t}"`);
3834 },
3835 stringify: (t) => !t.changed && t.color ? t.color : t.type.is(X.HSL) || t.data.r === void 0 ? Ti.stringify(t) : t.a < 1 || !Number.isInteger(t.r) || !Number.isInteger(t.g) || !Number.isInteger(t.b) ? Si.stringify(t) : ze.stringify(t)
3836}, Tt = ip, rp = (t, e) => {
3837 const i = Tt.parse(t);
3838 for (const r in e)
3839 i[r] = L.channel.clamp[r](e[r]);
3840 return Tt.stringify(i);
3841}, Aa = rp, np = (t, e, i = 0, r = 1) => {
3842 if (typeof t != "number")
3843 return Aa(t, { a: e });
3844 const n = gr.set({
3845 r: L.channel.clamp.r(t),
3846 g: L.channel.clamp.g(e),
3847 b: L.channel.clamp.b(i),
3848 a: L.channel.clamp.a(r)
3849 });
3850 return Tt.stringify(n);
3851}, We = np, op = (t) => {
3852 const { r: e, g: i, b: r } = Tt.parse(t), n = 0.2126 * L.channel.toLinear(e) + 0.7152 * L.channel.toLinear(i) + 0.0722 * L.channel.toLinear(r);
3853 return L.lang.round(n);
3854}, sp = op, ap = (t) => sp(t) >= 0.5, lp = ap, hp = (t) => !lp(t), ri = hp, cp = (t, e, i) => {
3855 const r = Tt.parse(t), n = r[e], o = L.channel.clamp[e](n + i);
3856 return n !== o && (r[e] = o), Tt.stringify(r);
3857}, Ea = cp, up = (t, e) => Ea(t, "l", e), v = up, fp = (t, e) => Ea(t, "l", -e), w = fp, dp = (t, e) => {
3858 const i = Tt.parse(t), r = {};
3859 for (const n in e)
3860 e[n] && (r[n] = i[n] + e[n]);
3861 return Aa(t, r);
3862}, d = dp, pp = (t, e, i = 50) => {
3863 const { r, g: n, b: o, a: s } = Tt.parse(t), { r: a, g: l, b: h, a: c } = Tt.parse(e), u = i / 100, g = u * 2 - 1, p = s - c, T = ((g * p === -1 ? g : (g + p) / (1 + g * p)) + 1) / 2, B = 1 - T, A = r * T + a * B, C = n * T + l * B, F = o * T + h * B, D = s * u + c * (1 - u);
3864 return We(A, C, F, D);
3865}, gp = pp, mp = (t, e = 100) => {
3866 const i = Tt.parse(t);
3867 return i.r = 255 - i.r, i.g = 255 - i.g, i.b = 255 - i.b, gp(i, t, e);
3868}, y = mp, Q = (t, e) => e ? d(t, { s: -40, l: 10 }) : d(t, { s: -40, l: -10 }), mr = "#ffffff", _r = "#f2f2f2";
3869let _p = class {
3870 constructor() {
3871 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";
3872 }
3873 updateColors() {
3874 if (this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333"), this.secondaryColor = this.secondaryColor || d(this.primaryColor, { h: -120 }), this.tertiaryColor = this.tertiaryColor || d(this.primaryColor, { h: 180, l: 5 }), this.primaryBorderColor = this.primaryBorderColor || Q(this.primaryColor, this.darkMode), this.secondaryBorderColor = this.secondaryBorderColor || Q(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = this.tertiaryBorderColor || Q(this.tertiaryColor, this.darkMode), this.noteBorderColor = this.noteBorderColor || Q(this.noteBkgColor, this.darkMode), this.noteBkgColor = this.noteBkgColor || "#fff5ad", this.noteTextColor = this.noteTextColor || "#333", this.secondaryTextColor = this.secondaryTextColor || y(this.secondaryColor), this.tertiaryTextColor = this.tertiaryTextColor || y(this.tertiaryColor), this.lineColor = this.lineColor || y(this.background), this.arrowheadColor = this.arrowheadColor || y(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 ? w(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 || w(this.secondaryColor, 10), this.activationBkgColor = this.activationBkgColor || this.secondaryColor, this.sequenceNumberColor = this.sequenceNumberColor || y(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 || v(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 || d(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || d(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || d(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || d(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || d(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || d(this.primaryColor, { h: 210, l: 150 }), this.cScale9 = this.cScale9 || d(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || d(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || d(this.primaryColor, { h: 330 }), this.darkMode)
3875 for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
3876 this["cScale" + i] = w(this["cScale" + i], 75);
3877 else
3878 for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
3879 this["cScale" + i] = w(this["cScale" + i], 25);
3880 for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
3881 this["cScaleInv" + i] = this["cScaleInv" + i] || y(this["cScale" + i]);
3882 for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
3883 this.darkMode ? this["cScalePeer" + i] = this["cScalePeer" + i] || v(this["cScale" + i], 10) : this["cScalePeer" + i] = this["cScalePeer" + i] || w(this["cScale" + i], 10);
3884 this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
3885 for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
3886 this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
3887 const e = this.darkMode ? -4 : -1;
3888 for (let i = 0; i < 5; i++)
3889 this["surface" + i] = this["surface" + i] || d(this.mainBkg, { h: 180, s: -15, l: e * (5 + i * 3) }), this["surfacePeer" + i] = this["surfacePeer" + i] || d(this.mainBkg, { h: 180, s: -15, l: e * (8 + i * 3) });
3890 this.classText = this.classText || this.textColor, this.fillType0 = this.fillType0 || this.primaryColor, this.fillType1 = this.fillType1 || this.secondaryColor, this.fillType2 = this.fillType2 || d(this.primaryColor, { h: 64 }), this.fillType3 = this.fillType3 || d(this.secondaryColor, { h: 64 }), this.fillType4 = this.fillType4 || d(this.primaryColor, { h: -64 }), this.fillType5 = this.fillType5 || d(this.secondaryColor, { h: -64 }), this.fillType6 = this.fillType6 || d(this.primaryColor, { h: 128 }), this.fillType7 = this.fillType7 || d(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 || d(this.primaryColor, { l: -10 }), this.pie5 = this.pie5 || d(this.secondaryColor, { l: -10 }), this.pie6 = this.pie6 || d(this.tertiaryColor, { l: -10 }), this.pie7 = this.pie7 || d(this.primaryColor, { h: 60, l: -10 }), this.pie8 = this.pie8 || d(this.primaryColor, { h: -60, l: -10 }), this.pie9 = this.pie9 || d(this.primaryColor, { h: 120, l: 0 }), this.pie10 = this.pie10 || d(this.primaryColor, { h: 60, l: -20 }), this.pie11 = this.pie11 || d(this.primaryColor, { h: -60, l: -20 }), this.pie12 = this.pie12 || d(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.quadrant1Fill = this.quadrant1Fill || this.primaryColor, this.quadrant2Fill = this.quadrant2Fill || d(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || d(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || d(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || d(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || d(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || d(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || ri(this.quadrant1Fill) ? v(this.quadrant1Fill) : w(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.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 ? w(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 || d(this.primaryColor, { h: -30 }), this.git4 = this.git4 || d(this.primaryColor, { h: -60 }), this.git5 = this.git5 || d(this.primaryColor, { h: -90 }), this.git6 = this.git6 || d(this.primaryColor, { h: 60 }), this.git7 = this.git7 || d(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = v(this.git0, 25), this.git1 = v(this.git1, 25), this.git2 = v(this.git2, 25), this.git3 = v(this.git3, 25), this.git4 = v(this.git4, 25), this.git5 = v(this.git5, 25), this.git6 = v(this.git6, 25), this.git7 = v(this.git7, 25)) : (this.git0 = w(this.git0, 25), this.git1 = w(this.git1, 25), this.git2 = w(this.git2, 25), this.git3 = w(this.git3, 25), this.git4 = w(this.git4, 25), this.git5 = w(this.git5, 25), this.git6 = w(this.git6, 25), this.git7 = w(this.git7, 25)), this.gitInv0 = this.gitInv0 || y(this.git0), this.gitInv1 = this.gitInv1 || y(this.git1), this.gitInv2 = this.gitInv2 || y(this.git2), this.gitInv3 = this.gitInv3 || y(this.git3), this.gitInv4 = this.gitInv4 || y(this.git4), this.gitInv5 = this.gitInv5 || y(this.git5), this.gitInv6 = this.gitInv6 || y(this.git6), this.gitInv7 = this.gitInv7 || y(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 || mr, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || _r;
3891 }
3892 calculate(e) {
3893 if (typeof e != "object") {
3894 this.updateColors();
3895 return;
3896 }
3897 const i = Object.keys(e);
3898 i.forEach((r) => {
3899 this[r] = e[r];
3900 }), this.updateColors(), i.forEach((r) => {
3901 this[r] = e[r];
3902 });
3903 }
3904};
3905const yp = (t) => {
3906 const e = new _p();
3907 return e.calculate(t), e;
3908};
3909let Cp = class {
3910 constructor() {
3911 this.background = "#333", this.primaryColor = "#1f2020", this.secondaryColor = v(this.primaryColor, 16), this.tertiaryColor = d(this.primaryColor, { h: -160 }), this.primaryBorderColor = y(this.background), this.secondaryBorderColor = Q(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Q(this.tertiaryColor, this.darkMode), this.primaryTextColor = y(this.primaryColor), this.secondaryTextColor = y(this.secondaryColor), this.tertiaryTextColor = y(this.tertiaryColor), this.lineColor = y(this.background), this.textColor = y(this.background), this.mainBkg = "#1f2020", this.secondBkg = "calculated", this.mainContrastColor = "lightgrey", this.darkTextColor = v(y("#323D47"), 10), this.lineColor = "calculated", this.border1 = "#81B1DB", this.border2 = We(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 = w("#EAE8D9", 30), this.altSectionBkgColor = "calculated", this.sectionBkgColor2 = "#EAE8D9", this.excludeBkgColor = w(this.sectionBkgColor, 10), this.taskBorderColor = We(255, 255, 255, 70), this.taskBkgColor = "calculated", this.taskTextColor = "calculated", this.taskTextLightColor = "calculated", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = We(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";
3912 }
3913 updateColors() {
3914 this.secondBkg = v(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 = v(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 = v(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 = d(this.primaryColor, { h: 64 }), this.fillType3 = d(this.secondaryColor, { h: 64 }), this.fillType4 = d(this.primaryColor, { h: -64 }), this.fillType5 = d(this.secondaryColor, { h: -64 }), this.fillType6 = d(this.primaryColor, { h: 128 }), this.fillType7 = d(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 || d(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || d(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || d(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || d(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || d(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || d(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || d(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || d(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || d(this.primaryColor, { h: 330 });
3915 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3916 this["cScaleInv" + e] = this["cScaleInv" + e] || y(this["cScale" + e]);
3917 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3918 this["cScalePeer" + e] = this["cScalePeer" + e] || v(this["cScale" + e], 10);
3919 for (let e = 0; e < 5; e++)
3920 this["surface" + e] = this["surface" + e] || d(this.mainBkg, { h: 30, s: -30, l: -(-10 + e * 4) }), this["surfacePeer" + e] = this["surfacePeer" + e] || d(this.mainBkg, { h: 30, s: -30, l: -(-7 + e * 4) });
3921 this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
3922 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3923 this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.scaleLabelColor;
3924 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3925 this["pie" + e] = this["cScale" + e];
3926 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 || d(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || d(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || d(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || d(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || d(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || d(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || ri(this.quadrant1Fill) ? v(this.quadrant1Fill) : w(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.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 ? w(this.secondaryColor, 30) : this.secondaryColor), this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = v(this.secondaryColor, 20), this.git1 = v(this.pie2 || this.secondaryColor, 20), this.git2 = v(this.pie3 || this.tertiaryColor, 20), this.git3 = v(this.pie4 || d(this.primaryColor, { h: -30 }), 20), this.git4 = v(this.pie5 || d(this.primaryColor, { h: -60 }), 20), this.git5 = v(this.pie6 || d(this.primaryColor, { h: -90 }), 10), this.git6 = v(this.pie7 || d(this.primaryColor, { h: 60 }), 10), this.git7 = v(this.pie8 || d(this.primaryColor, { h: 120 }), 20), this.gitInv0 = this.gitInv0 || y(this.git0), this.gitInv1 = this.gitInv1 || y(this.git1), this.gitInv2 = this.gitInv2 || y(this.git2), this.gitInv3 = this.gitInv3 || y(this.git3), this.gitInv4 = this.gitInv4 || y(this.git4), this.gitInv5 = this.gitInv5 || y(this.git5), this.gitInv6 = this.gitInv6 || y(this.git6), this.gitInv7 = this.gitInv7 || y(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || y(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || y(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 || v(this.background, 12), this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || v(this.background, 2);
3927 }
3928 calculate(e) {
3929 if (typeof e != "object") {
3930 this.updateColors();
3931 return;
3932 }
3933 const i = Object.keys(e);
3934 i.forEach((r) => {
3935 this[r] = e[r];
3936 }), this.updateColors(), i.forEach((r) => {
3937 this[r] = e[r];
3938 });
3939 }
3940};
3941const xp = (t) => {
3942 const e = new Cp();
3943 return e.calculate(t), e;
3944};
3945let bp = class {
3946 constructor() {
3947 this.background = "#f4f4f4", this.primaryColor = "#ECECFF", this.secondaryColor = d(this.primaryColor, { h: 120 }), this.secondaryColor = "#ffffde", this.tertiaryColor = d(this.primaryColor, { h: -160 }), this.primaryBorderColor = Q(this.primaryColor, this.darkMode), this.secondaryBorderColor = Q(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Q(this.tertiaryColor, this.darkMode), this.primaryTextColor = y(this.primaryColor), this.secondaryTextColor = y(this.secondaryColor), this.tertiaryTextColor = y(this.tertiaryColor), this.lineColor = y(this.background), this.textColor = y(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 = We(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();
3948 }
3949 updateColors() {
3950 this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || d(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || d(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || d(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || d(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || d(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || d(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || d(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || d(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || d(this.primaryColor, { h: 330 }), this["cScalePeer1"] = this["cScalePeer1"] || w(this.secondaryColor, 45), this["cScalePeer2"] = this["cScalePeer2"] || w(this.tertiaryColor, 40);
3951 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3952 this["cScale" + e] = w(this["cScale" + e], 10), this["cScalePeer" + e] = this["cScalePeer" + e] || w(this["cScale" + e], 25);
3953 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3954 this["cScaleInv" + e] = this["cScaleInv" + e] || d(this["cScale" + e], { h: 180 });
3955 for (let e = 0; e < 5; e++)
3956 this["surface" + e] = this["surface" + e] || d(this.mainBkg, { h: 30, l: -(5 + e * 5) }), this["surfacePeer" + e] = this["surfacePeer" + e] || d(this.mainBkg, { h: 30, l: -(7 + e * 5) });
3957 if (this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor, this.labelTextColor !== "calculated") {
3958 this.cScaleLabel0 = this.cScaleLabel0 || y(this.labelTextColor), this.cScaleLabel3 = this.cScaleLabel3 || y(this.labelTextColor);
3959 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3960 this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.labelTextColor;
3961 }
3962 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 = v(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 = d(this.primaryColor, { h: 64 }), this.fillType3 = d(this.secondaryColor, { h: 64 }), this.fillType4 = d(this.primaryColor, { h: -64 }), this.fillType5 = d(this.secondaryColor, { h: -64 }), this.fillType6 = d(this.primaryColor, { h: 128 }), this.fillType7 = d(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || d(this.tertiaryColor, { l: -40 }), this.pie4 = this.pie4 || d(this.primaryColor, { l: -10 }), this.pie5 = this.pie5 || d(this.secondaryColor, { l: -30 }), this.pie6 = this.pie6 || d(this.tertiaryColor, { l: -20 }), this.pie7 = this.pie7 || d(this.primaryColor, { h: 60, l: -20 }), this.pie8 = this.pie8 || d(this.primaryColor, { h: -60, l: -40 }), this.pie9 = this.pie9 || d(this.primaryColor, { h: 120, l: -40 }), this.pie10 = this.pie10 || d(this.primaryColor, { h: 60, l: -40 }), this.pie11 = this.pie11 || d(this.primaryColor, { h: -90, l: -40 }), this.pie12 = this.pie12 || d(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 || d(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || d(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || d(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || d(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || d(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || d(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || ri(this.quadrant1Fill) ? v(this.quadrant1Fill) : w(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.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 || d(this.primaryColor, { h: -30 }), this.git4 = this.git4 || d(this.primaryColor, { h: -60 }), this.git5 = this.git5 || d(this.primaryColor, { h: -90 }), this.git6 = this.git6 || d(this.primaryColor, { h: 60 }), this.git7 = this.git7 || d(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = v(this.git0, 25), this.git1 = v(this.git1, 25), this.git2 = v(this.git2, 25), this.git3 = v(this.git3, 25), this.git4 = v(this.git4, 25), this.git5 = v(this.git5, 25), this.git6 = v(this.git6, 25), this.git7 = v(this.git7, 25)) : (this.git0 = w(this.git0, 25), this.git1 = w(this.git1, 25), this.git2 = w(this.git2, 25), this.git3 = w(this.git3, 25), this.git4 = w(this.git4, 25), this.git5 = w(this.git5, 25), this.git6 = w(this.git6, 25), this.git7 = w(this.git7, 25)), this.gitInv0 = this.gitInv0 || w(y(this.git0), 25), this.gitInv1 = this.gitInv1 || y(this.git1), this.gitInv2 = this.gitInv2 || y(this.git2), this.gitInv3 = this.gitInv3 || y(this.git3), this.gitInv4 = this.gitInv4 || y(this.git4), this.gitInv5 = this.gitInv5 || y(this.git5), this.gitInv6 = this.gitInv6 || y(this.git6), this.gitInv7 = this.gitInv7 || y(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || y(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || y(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 || mr, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || _r;
3963 }
3964 calculate(e) {
3965 if (typeof e != "object") {
3966 this.updateColors();
3967 return;
3968 }
3969 const i = Object.keys(e);
3970 i.forEach((r) => {
3971 this[r] = e[r];
3972 }), this.updateColors(), i.forEach((r) => {
3973 this[r] = e[r];
3974 });
3975 }
3976};
3977const Tp = (t) => {
3978 const e = new bp();
3979 return e.calculate(t), e;
3980};
3981let Sp = class {
3982 constructor() {
3983 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 = v("#cde498", 10), this.primaryBorderColor = Q(this.primaryColor, this.darkMode), this.secondaryBorderColor = Q(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Q(this.tertiaryColor, this.darkMode), this.primaryTextColor = y(this.primaryColor), this.secondaryTextColor = y(this.secondaryColor), this.tertiaryTextColor = y(this.primaryColor), this.lineColor = y(this.background), this.textColor = y(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";
3984 }
3985 updateColors() {
3986 this.actorBorder = w(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 || d(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || d(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || d(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || d(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || d(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || d(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || d(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || d(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || d(this.primaryColor, { h: 330 }), this["cScalePeer1"] = this["cScalePeer1"] || w(this.secondaryColor, 45), this["cScalePeer2"] = this["cScalePeer2"] || w(this.tertiaryColor, 40);
3987 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3988 this["cScale" + e] = w(this["cScale" + e], 10), this["cScalePeer" + e] = this["cScalePeer" + e] || w(this["cScale" + e], 25);
3989 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3990 this["cScaleInv" + e] = this["cScaleInv" + e] || d(this["cScale" + e], { h: 180 });
3991 this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
3992 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
3993 this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.scaleLabelColor;
3994 for (let e = 0; e < 5; e++)
3995 this["surface" + e] = this["surface" + e] || d(this.mainBkg, { h: 30, s: -30, l: -(5 + e * 5) }), this["surfacePeer" + e] = this["surfacePeer" + e] || d(this.mainBkg, { h: 30, s: -30, l: -(8 + e * 5) });
3996 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 = d(this.primaryColor, { h: 64 }), this.fillType3 = d(this.secondaryColor, { h: 64 }), this.fillType4 = d(this.primaryColor, { h: -64 }), this.fillType5 = d(this.secondaryColor, { h: -64 }), this.fillType6 = d(this.primaryColor, { h: 128 }), this.fillType7 = d(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 || d(this.primaryColor, { l: -30 }), this.pie5 = this.pie5 || d(this.secondaryColor, { l: -30 }), this.pie6 = this.pie6 || d(this.tertiaryColor, { h: 40, l: -40 }), this.pie7 = this.pie7 || d(this.primaryColor, { h: 60, l: -10 }), this.pie8 = this.pie8 || d(this.primaryColor, { h: -60, l: -10 }), this.pie9 = this.pie9 || d(this.primaryColor, { h: 120, l: 0 }), this.pie10 = this.pie10 || d(this.primaryColor, { h: 60, l: -50 }), this.pie11 = this.pie11 || d(this.primaryColor, { h: -60, l: -50 }), this.pie12 = this.pie12 || d(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 || d(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || d(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || d(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || d(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || d(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || d(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || ri(this.quadrant1Fill) ? v(this.quadrant1Fill) : w(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.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 || d(this.primaryColor, { h: -30 }), this.git4 = this.git4 || d(this.primaryColor, { h: -60 }), this.git5 = this.git5 || d(this.primaryColor, { h: -90 }), this.git6 = this.git6 || d(this.primaryColor, { h: 60 }), this.git7 = this.git7 || d(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = v(this.git0, 25), this.git1 = v(this.git1, 25), this.git2 = v(this.git2, 25), this.git3 = v(this.git3, 25), this.git4 = v(this.git4, 25), this.git5 = v(this.git5, 25), this.git6 = v(this.git6, 25), this.git7 = v(this.git7, 25)) : (this.git0 = w(this.git0, 25), this.git1 = w(this.git1, 25), this.git2 = w(this.git2, 25), this.git3 = w(this.git3, 25), this.git4 = w(this.git4, 25), this.git5 = w(this.git5, 25), this.git6 = w(this.git6, 25), this.git7 = w(this.git7, 25)), this.gitInv0 = this.gitInv0 || y(this.git0), this.gitInv1 = this.gitInv1 || y(this.git1), this.gitInv2 = this.gitInv2 || y(this.git2), this.gitInv3 = this.gitInv3 || y(this.git3), this.gitInv4 = this.gitInv4 || y(this.git4), this.gitInv5 = this.gitInv5 || y(this.git5), this.gitInv6 = this.gitInv6 || y(this.git6), this.gitInv7 = this.gitInv7 || y(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || y(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || y(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 || mr, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || _r;
3997 }
3998 calculate(e) {
3999 if (typeof e != "object") {
4000 this.updateColors();
4001 return;
4002 }
4003 const i = Object.keys(e);
4004 i.forEach((r) => {
4005 this[r] = e[r];
4006 }), this.updateColors(), i.forEach((r) => {
4007 this[r] = e[r];
4008 });
4009 }
4010};
4011const vp = (t) => {
4012 const e = new Sp();
4013 return e.calculate(t), e;
4014};
4015class kp {
4016 constructor() {
4017 this.primaryColor = "#eee", this.contrast = "#707070", this.secondaryColor = v(this.contrast, 55), this.background = "#ffffff", this.tertiaryColor = d(this.primaryColor, { h: -160 }), this.primaryBorderColor = Q(this.primaryColor, this.darkMode), this.secondaryBorderColor = Q(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Q(this.tertiaryColor, this.darkMode), this.primaryTextColor = y(this.primaryColor), this.secondaryTextColor = y(this.secondaryColor), this.tertiaryTextColor = y(this.tertiaryColor), this.lineColor = y(this.background), this.textColor = y(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";
4018 }
4019 updateColors() {
4020 this.secondBkg = v(this.contrast, 55), this.border2 = this.contrast, this.actorBorder = v(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";
4021 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
4022 this["cScaleInv" + e] = this["cScaleInv" + e] || y(this["cScale" + e]);
4023 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
4024 this.darkMode ? this["cScalePeer" + e] = this["cScalePeer" + e] || v(this["cScale" + e], 10) : this["cScalePeer" + e] = this["cScalePeer" + e] || w(this["cScale" + e], 10);
4025 this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor), this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1, this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;
4026 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
4027 this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.scaleLabelColor;
4028 for (let e = 0; e < 5; e++)
4029 this["surface" + e] = this["surface" + e] || d(this.mainBkg, { l: -(5 + e * 5) }), this["surfacePeer" + e] = this["surfacePeer" + e] || d(this.mainBkg, { l: -(8 + e * 5) });
4030 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 = v(this.contrast, 30), this.sectionBkgColor2 = v(this.contrast, 30), this.taskBorderColor = w(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 = v(this.border1, 30), this.doneTaskBkgColor = this.done, this.doneTaskBorderColor = this.lineColor, this.critBkgColor = this.critical, this.critBorderColor = w(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 = d(this.primaryColor, { h: 64 }), this.fillType3 = d(this.secondaryColor, { h: 64 }), this.fillType4 = d(this.primaryColor, { h: -64 }), this.fillType5 = d(this.secondaryColor, { h: -64 }), this.fillType6 = d(this.primaryColor, { h: 128 }), this.fillType7 = d(this.secondaryColor, { h: 128 });
4031 for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
4032 this["pie" + e] = this["cScale" + e];
4033 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 || d(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || d(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || d(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || d(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || d(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || d(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || ri(this.quadrant1Fill) ? v(this.quadrant1Fill) : w(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.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 = w(this.pie1, 25) || this.primaryColor, this.git1 = this.pie2 || this.secondaryColor, this.git2 = this.pie3 || this.tertiaryColor, this.git3 = this.pie4 || d(this.primaryColor, { h: -30 }), this.git4 = this.pie5 || d(this.primaryColor, { h: -60 }), this.git5 = this.pie6 || d(this.primaryColor, { h: -90 }), this.git6 = this.pie7 || d(this.primaryColor, { h: 60 }), this.git7 = this.pie8 || d(this.primaryColor, { h: 120 }), this.gitInv0 = this.gitInv0 || y(this.git0), this.gitInv1 = this.gitInv1 || y(this.git1), this.gitInv2 = this.gitInv2 || y(this.git2), this.gitInv3 = this.gitInv3 || y(this.git3), this.gitInv4 = this.gitInv4 || y(this.git4), this.gitInv5 = this.gitInv5 || y(this.git5), this.gitInv6 = this.gitInv6 || y(this.git6), this.gitInv7 = this.gitInv7 || y(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 || mr, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || _r;
4034 }
4035 calculate(e) {
4036 if (typeof e != "object") {
4037 this.updateColors();
4038 return;
4039 }
4040 const i = Object.keys(e);
4041 i.forEach((r) => {
4042 this[r] = e[r];
4043 }), this.updateColors(), i.forEach((r) => {
4044 this[r] = e[r];
4045 });
4046 }
4047}
4048const wp = (t) => {
4049 const e = new kp();
4050 return e.calculate(t), e;
4051}, Lt = {
4052 base: {
4053 getThemeVariables: yp
4054 },
4055 dark: {
4056 getThemeVariables: xp
4057 },
4058 default: {
4059 getThemeVariables: Tp
4060 },
4061 forest: {
4062 getThemeVariables: vp
4063 },
4064 neutral: {
4065 getThemeVariables: wp
4066 }
4067}, Nt = {
4068 /**
4069 * Theme , the CSS style sheet
4070 *
4071 * | Parameter | Description | Type | Required | Values |
4072 * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
4073 * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
4074 *
4075 * **Notes:** To disable any pre-defined mermaid theme, use "null".
4076 *
4077 * @example
4078 *
4079 * ```js
4080 * {
4081 * "theme": "forest",
4082 * "themeCSS": ".node rect { fill: red; }"
4083 * }
4084 * ```
4085 */
4086 theme: "default",
4087 themeVariables: Lt.default.getThemeVariables(),
4088 themeCSS: void 0,
4089 /* **maxTextSize** - The maximum allowed size of the users text diagram */
4090 maxTextSize: 5e4,
4091 darkMode: !1,
4092 /**
4093 * | Parameter | Description | Type | Required | Values |
4094 * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
4095 * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
4096 *
4097 * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
4098 */
4099 fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
4100 /**
4101 * | Parameter | Description | Type | Required | Values |
4102 * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |
4103 * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' |
4104 *
4105 * **Notes:**
4106 *
4107 * - Trace: 0
4108 * - Debug: 1
4109 * - Info: 2
4110 * - Warn: 3
4111 * - Error: 4
4112 * - Fatal: 5 (default)
4113 */
4114 logLevel: 5,
4115 /**
4116 * | Parameter | Description | Type | Required | Values |
4117 * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
4118 * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
4119 *
4120 * **Notes**:
4121 *
4122 * - **strict**: (**default**) HTML tags in the text are encoded and click functionality is disabled.
4123 * - **antiscript**: HTML tags in text are allowed (only script elements are removed), and click
4124 * functionality is enabled.
4125 * - **loose**: HTML tags in text are allowed and click functionality is enabled.
4126 * - **sandbox**: With this security level, all rendering takes place in a sandboxed iframe. This
4127 * prevent any JavaScript from running in the context. This may hinder interactive functionality
4128 * of the diagram, like scripts, popups in the sequence diagram, links to other tabs or targets, etc.
4129 */
4130 securityLevel: "strict",
4131 /**
4132 * | Parameter | Description | Type | Required | Values |
4133 * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
4134 * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
4135 *
4136 * **Notes:** Default value: true
4137 */
4138 startOnLoad: !0,
4139 /**
4140 * | Parameter | Description | Type | Required | Values |
4141 * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
4142 * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
4143 *
4144 * **Notes**:
4145 *
4146 * This matters if you are using base tag settings.
4147 *
4148 * Default value: false
4149 */
4150 arrowMarkerAbsolute: !1,
4151 /**
4152 * This option controls which currentConfig keys are considered _secure_ and can only be changed
4153 * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
4154 * `secure` keys in the current currentConfig. This prevents malicious graph directives from
4155 * overriding a site's default security.
4156 *
4157 * **Notes**:
4158 *
4159 * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
4160 */
4161 secure: ["secure", "securityLevel", "startOnLoad", "maxTextSize"],
4162 /**
4163 * This option controls if the generated ids of nodes in the SVG are generated randomly or based
4164 * on a seed. If set to false, the IDs are generated based on the current date and thus are not
4165 * deterministic. This is the default behavior.
4166 *
4167 * **Notes**:
4168 *
4169 * This matters if your files are checked into source control e.g. git and should not change unless
4170 * content is changed.
4171 *
4172 * Default value: false
4173 */
4174 deterministicIds: !1,
4175 /**
4176 * This option is the optional seed for deterministic ids. if set to undefined but
4177 * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
4178 * the seed on a static string.
4179 */
4180 deterministicIDSeed: void 0,
4181 /** The object containing configurations specific for flowcharts */
4182 flowchart: {
4183 /**
4184 * ### titleTopMargin
4185 *
4186 * | Parameter | Description | Type | Required | Values |
4187 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
4188 * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |
4189 *
4190 * **Notes:** Default value: 25
4191 */
4192 titleTopMargin: 25,
4193 /**
4194 * | Parameter | Description | Type | Required | Values |
4195 * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
4196 * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
4197 *
4198 * **Notes:**
4199 *
4200 * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
4201 * expressed in pixels
4202 *
4203 * Default value: 8
4204 */
4205 diagramPadding: 8,
4206 /**
4207 * | Parameter | Description | Type | Required | Values |
4208 * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
4209 * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
4210 *
4211 * **Notes:** Default value: true.
4212 */
4213 htmlLabels: !0,
4214 /**
4215 * | Parameter | Description | Type | Required | Values |
4216 * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
4217 * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
4218 *
4219 * **Notes:**
4220 *
4221 * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
4222 * vertical spacing for LR as well as RL graphs.**
4223 *
4224 * Default value: 50
4225 */
4226 nodeSpacing: 50,
4227 /**
4228 * | Parameter | Description | Type | Required | Values |
4229 * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
4230 * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
4231 *
4232 * **Notes**:
4233 *
4234 * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
4235 * spacing for LR as well as RL graphs.
4236 *
4237 * Default value 50
4238 */
4239 rankSpacing: 50,
4240 /**
4241 * | Parameter | Description | Type | Required | Values |
4242 * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
4243 * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
4244 *
4245 * **Notes:**
4246 *
4247 * Default Value: 'basis'
4248 */
4249 curve: "basis",
4250 // Only used in new experimental rendering
4251 // represents the padding between the labels and the shape
4252 padding: 15,
4253 /**
4254 * | Parameter | Description | Type | Required | Values |
4255 * | ----------- | ----------- | ------- | -------- | ----------- |
4256 * | useMaxWidth | See notes | boolean | 4 | true, false |
4257 *
4258 * **Notes:**
4259 *
4260 * When this flag is set the height and width is set to 100% and is then scaling with the
4261 * available space if not the absolute space required is used.
4262 *
4263 * Default value: true
4264 */
4265 useMaxWidth: !0,
4266 /**
4267 * | Parameter | Description | Type | Required | Values |
4268 * | --------------- | ----------- | ------- | -------- | ----------------------- |
4269 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |
4270 *
4271 * **Notes:**
4272 *
4273 * Decides which rendering engine that is to be used for the rendering. Legal values are:
4274 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
4275 * elkjs
4276 *
4277 * Default value: 'dagre-wrapper'
4278 */
4279 defaultRenderer: "dagre-wrapper",
4280 /**
4281 * | Parameter | Description | Type | Required | Values |
4282 * | --------------- | ----------- | ------- | -------- | ----------------------- |
4283 * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |
4284 *
4285 * **Notes:**
4286 *
4287 * When using markdown strings the text ius wrapped automatically, this
4288 * value sets the max width of a text before it continues on a new line.
4289 * Default value: 'dagre-wrapper'
4290 */
4291 wrappingWidth: 200
4292 },
4293 /** The object containing configurations specific for sequence diagrams */
4294 sequence: {
4295 hideUnusedParticipants: !1,
4296 /**
4297 * | Parameter | Description | Type | Required | Values |
4298 * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
4299 * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
4300 *
4301 * **Notes:** Default value :10
4302 */
4303 activationWidth: 10,
4304 /**
4305 * | Parameter | Description | Type | Required | Values |
4306 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
4307 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
4308 *
4309 * **Notes:** Default value: 50
4310 */
4311 diagramMarginX: 50,
4312 /**
4313 * | Parameter | Description | Type | Required | Values |
4314 * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
4315 * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
4316 *
4317 * **Notes:** Default value: 10
4318 */
4319 diagramMarginY: 10,
4320 /**
4321 * | Parameter | Description | Type | Required | Values |
4322 * | ----------- | --------------------- | ------- | -------- | ------------------ |
4323 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
4324 *
4325 * **Notes:** Default value: 50
4326 */
4327 actorMargin: 50,
4328 /**
4329 * | Parameter | Description | Type | Required | Values |
4330 * | --------- | -------------------- | ------- | -------- | ------------------ |
4331 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
4332 *
4333 * **Notes:** Default value: 150
4334 */
4335 width: 150,
4336 /**
4337 * | Parameter | Description | Type | Required | Values |
4338 * | --------- | --------------------- | ------- | -------- | ------------------ |
4339 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
4340 *
4341 * **Notes:** Default value: 65
4342 */
4343 height: 65,
4344 /**
4345 * | Parameter | Description | Type | Required | Values |
4346 * | --------- | ------------------------ | ------- | -------- | ------------------ |
4347 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
4348 *
4349 * **Notes:** Default value: 10
4350 */
4351 boxMargin: 10,
4352 /**
4353 * | Parameter | Description | Type | Required | Values |
4354 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
4355 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
4356 *
4357 * **Notes:** Default value: 5
4358 */
4359 boxTextMargin: 5,
4360 /**
4361 * | Parameter | Description | Type | Required | Values |
4362 * | ---------- | ------------------- | ------- | -------- | ------------------ |
4363 * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
4364 *
4365 * **Notes:** Default value: 10
4366 */
4367 noteMargin: 10,
4368 /**
4369 * | Parameter | Description | Type | Required | Values |
4370 * | ------------- | ---------------------- | ------- | -------- | ------------------ |
4371 * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
4372 *
4373 * **Notes:** Default value: 35
4374 */
4375 messageMargin: 35,
4376 /**
4377 * | Parameter | Description | Type | Required | Values |
4378 * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
4379 * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
4380 *
4381 * **Notes:** Default value: 'center'
4382 */
4383 messageAlign: "center",
4384 /**
4385 * | Parameter | Description | Type | Required | Values |
4386 * | ------------ | --------------------------- | ------- | -------- | ----------- |
4387 * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
4388 *
4389 * **Notes:** Default value: true
4390 */
4391 mirrorActors: !0,
4392 /**
4393 * | Parameter | Description | Type | Required | Values |
4394 * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
4395 * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
4396 *
4397 * **Notes:**
4398 *
4399 * Default value: false.
4400 */
4401 forceMenus: !1,
4402 /**
4403 * | Parameter | Description | Type | Required | Values |
4404 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
4405 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
4406 *
4407 * **Notes:**
4408 *
4409 * Depending on css styling this might need adjustment.
4410 *
4411 * Default value: 1
4412 */
4413 bottomMarginAdj: 1,
4414 /**
4415 * | Parameter | Description | Type | Required | Values |
4416 * | ----------- | ----------- | ------- | -------- | ----------- |
4417 * | useMaxWidth | See Notes | boolean | Required | true, false |
4418 *
4419 * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
4420 * scaling with the available space. If set to false, the absolute space required is used.
4421 *
4422 * Default value: true
4423 */
4424 useMaxWidth: !0,
4425 /**
4426 * | Parameter | Description | Type | Required | Values |
4427 * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
4428 * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
4429 *
4430 * **Notes:**
4431 *
4432 * This will display arrows that start and begin at the same node as right angles, rather than a
4433 * curve
4434 *
4435 * Default value: false
4436 */
4437 rightAngles: !1,
4438 /**
4439 * | Parameter | Description | Type | Required | Values |
4440 * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
4441 * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
4442 *
4443 * **Notes:** Default value: false
4444 */
4445 showSequenceNumbers: !1,
4446 /**
4447 * | Parameter | Description | Type | Required | Values |
4448 * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
4449 * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
4450 *
4451 * **Notes:** **Default value 14**..
4452 */
4453 actorFontSize: 14,
4454 /**
4455 * | Parameter | Description | Type | Required | Values |
4456 * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
4457 * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
4458 *
4459 * **Notes:** Default value: "'Open Sans", sans-serif'
4460 */
4461 actorFontFamily: '"Open Sans", sans-serif',
4462 /**
4463 * This sets the font weight of the actor's description
4464 *
4465 * **Notes:** Default value: 400.
4466 */
4467 actorFontWeight: 400,
4468 /**
4469 * | Parameter | Description | Type | Required | Values |
4470 * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
4471 * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
4472 *
4473 * **Notes:** Default value: 14
4474 */
4475 noteFontSize: 14,
4476 /**
4477 * | Parameter | Description | Type | Required | Values |
4478 * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
4479 * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
4480 *
4481 * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
4482 */
4483 noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
4484 /**
4485 * This sets the font weight of the note's description
4486 *
4487 * **Notes:** Default value: 400
4488 */
4489 noteFontWeight: 400,
4490 /**
4491 * | Parameter | Description | Type | Required | Values |
4492 * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
4493 * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
4494 *
4495 * **Notes:** Default value: 'center'
4496 */
4497 noteAlign: "center",
4498 /**
4499 * | Parameter | Description | Type | Required | Values |
4500 * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
4501 * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
4502 *
4503 * **Notes:** Default value: 16
4504 */
4505 messageFontSize: 16,
4506 /**
4507 * | Parameter | Description | Type | Required | Values |
4508 * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
4509 * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
4510 *
4511 * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
4512 */
4513 messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
4514 /**
4515 * This sets the font weight of the message's description
4516 *
4517 * **Notes:** Default value: 400.
4518 */
4519 messageFontWeight: 400,
4520 /**
4521 * This sets the auto-wrap state for the diagram
4522 *
4523 * **Notes:** Default value: false.
4524 */
4525 wrap: !1,
4526 /**
4527 * This sets the auto-wrap padding for the diagram (sides only)
4528 *
4529 * **Notes:** Default value: 0.
4530 */
4531 wrapPadding: 10,
4532 /**
4533 * This sets the width of the loop-box (loop, alt, opt, par)
4534 *
4535 * **Notes:** Default value: 50.
4536 */
4537 labelBoxWidth: 50,
4538 /**
4539 * This sets the height of the loop-box (loop, alt, opt, par)
4540 *
4541 * **Notes:** Default value: 20.
4542 */
4543 labelBoxHeight: 20,
4544 messageFont: function() {
4545 return {
4546 fontFamily: this.messageFontFamily,
4547 fontSize: this.messageFontSize,
4548 fontWeight: this.messageFontWeight
4549 };
4550 },
4551 noteFont: function() {
4552 return {
4553 fontFamily: this.noteFontFamily,
4554 fontSize: this.noteFontSize,
4555 fontWeight: this.noteFontWeight
4556 };
4557 },
4558 actorFont: function() {
4559 return {
4560 fontFamily: this.actorFontFamily,
4561 fontSize: this.actorFontSize,
4562 fontWeight: this.actorFontWeight
4563 };
4564 }
4565 },
4566 /** The object containing configurations specific for gantt diagrams */
4567 gantt: {
4568 /**
4569 * ### titleTopMargin
4570 *
4571 * | Parameter | Description | Type | Required | Values |
4572 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
4573 * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
4574 *
4575 * **Notes:** Default value: 25
4576 */
4577 titleTopMargin: 25,
4578 /**
4579 * | Parameter | Description | Type | Required | Values |
4580 * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
4581 * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
4582 *
4583 * **Notes:** Default value: 20
4584 */
4585 barHeight: 20,
4586 /**
4587 * | Parameter | Description | Type | Required | Values |
4588 * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
4589 * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
4590 *
4591 * **Notes:** Default value: 4
4592 */
4593 barGap: 4,
4594 /**
4595 * | Parameter | Description | Type | Required | Values |
4596 * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
4597 * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
4598 *
4599 * **Notes:** Default value: 50
4600 */
4601 topPadding: 50,
4602 /**
4603 * | Parameter | Description | Type | Required | Values |
4604 * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
4605 * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
4606 *
4607 * **Notes:** Default value: 75
4608 */
4609 rightPadding: 75,
4610 /**
4611 * | Parameter | Description | Type | Required | Values |
4612 * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
4613 * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
4614 *
4615 * **Notes:** Default value: 75
4616 */
4617 leftPadding: 75,
4618 /**
4619 * | Parameter | Description | Type | Required | Values |
4620 * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
4621 * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
4622 *
4623 * **Notes:** Default value: 35
4624 */
4625 gridLineStartPadding: 35,
4626 /**
4627 * | Parameter | Description | Type | Required | Values |
4628 * | --------- | ----------- | ------- | -------- | ------------------ |
4629 * | fontSize | Font size | Integer | Required | Any Positive Value |
4630 *
4631 * **Notes:** Default value: 11
4632 */
4633 fontSize: 11,
4634 /**
4635 * | Parameter | Description | Type | Required | Values |
4636 * | --------------- | ---------------------- | ------- | -------- | ------------------ |
4637 * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
4638 *
4639 * **Notes:** Default value: 11
4640 */
4641 sectionFontSize: 11,
4642 /**
4643 * | Parameter | Description | Type | Required | Values |
4644 * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
4645 * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
4646 *
4647 * **Notes:** Default value: 4
4648 */
4649 numberSectionStyles: 4,
4650 /**
4651 * | Parameter | Description | Type | Required | Values |
4652 * | ----------- | ------------------------- | ------ | -------- | --------- |
4653 * | displayMode | Controls the display mode | string | 4 | 'compact' |
4654 *
4655 * **Notes**:
4656 *
4657 * - **compact**: Enables displaying multiple tasks on the same row.
4658 */
4659 displayMode: "",
4660 /**
4661 * | Parameter | Description | Type | Required | Values |
4662 * | ---------- | ---------------------------- | ---- | -------- | ---------------- |
4663 * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |
4664 *
4665 * **Notes:**
4666 *
4667 * This might need adjustment to match your locale and preferences
4668 *
4669 * Default value: '%Y-%m-%d'.
4670 */
4671 axisFormat: "%Y-%m-%d",
4672 /**
4673 * | Parameter | Description | Type | Required | Values |
4674 * | ------------ | ------------| ------ | -------- | ------- |
4675 * | tickInterval | axis ticks | string | Optional | string |
4676 *
4677 * **Notes:**
4678 *
4679 * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/
4680 *
4681 * Default value: undefined
4682 */
4683 tickInterval: void 0,
4684 /**
4685 * | Parameter | Description | Type | Required | Values |
4686 * | ----------- | ----------- | ------- | -------- | ----------- |
4687 * | useMaxWidth | See notes | boolean | 4 | true, false |
4688 *
4689 * **Notes:**
4690 *
4691 * When this flag is set the height and width is set to 100% and is then scaling with the
4692 * available space if not the absolute space required is used.
4693 *
4694 * Default value: true
4695 */
4696 useMaxWidth: !0,
4697 /**
4698 * | Parameter | Description | Type | Required | Values |
4699 * | --------- | ----------- | ------- | -------- | ----------- |
4700 * | topAxis | See notes | Boolean | 4 | True, False |
4701 *
4702 * **Notes:** when this flag is set date labels will be added to the top of the chart
4703 *
4704 * **Default value false**.
4705 */
4706 topAxis: !1,
4707 useWidth: void 0
4708 },
4709 /** The object containing configurations specific for journey diagrams */
4710 journey: {
4711 /**
4712 * | Parameter | Description | Type | Required | Values |
4713 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
4714 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
4715 *
4716 * **Notes:** Default value: 50
4717 */
4718 diagramMarginX: 50,
4719 /**
4720 * | Parameter | Description | Type | Required | Values |
4721 * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
4722 * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
4723 *
4724 * **Notes:** Default value: 10
4725 */
4726 diagramMarginY: 10,
4727 /**
4728 * | Parameter | Description | Type | Required | Values |
4729 * | ----------- | --------------------- | ------- | -------- | ------------------ |
4730 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
4731 *
4732 * **Notes:** Default value: 50
4733 */
4734 leftMargin: 150,
4735 /**
4736 * | Parameter | Description | Type | Required | Values |
4737 * | --------- | -------------------- | ------- | -------- | ------------------ |
4738 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
4739 *
4740 * **Notes:** Default value: 150
4741 */
4742 width: 150,
4743 /**
4744 * | Parameter | Description | Type | Required | Values |
4745 * | --------- | --------------------- | ------- | -------- | ------------------ |
4746 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
4747 *
4748 * **Notes:** Default value: 65
4749 */
4750 height: 50,
4751 /**
4752 * | Parameter | Description | Type | Required | Values |
4753 * | --------- | ------------------------ | ------- | -------- | ------------------ |
4754 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
4755 *
4756 * **Notes:** Default value: 10
4757 */
4758 boxMargin: 10,
4759 /**
4760 * | Parameter | Description | Type | Required | Values |
4761 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
4762 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
4763 *
4764 * **Notes:** Default value: 5
4765 */
4766 boxTextMargin: 5,
4767 /**
4768 * | Parameter | Description | Type | Required | Values |
4769 * | ---------- | ------------------- | ------- | -------- | ------------------ |
4770 * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
4771 *
4772 * **Notes:** Default value: 10
4773 */
4774 noteMargin: 10,
4775 /**
4776 * | Parameter | Description | Type | Required | Values |
4777 * | ------------- | ----------------------- | ------- | -------- | ------------------ |
4778 * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
4779 *
4780 * **Notes:**
4781 *
4782 * Space between messages.
4783 *
4784 * Default value: 35
4785 */
4786 messageMargin: 35,
4787 /**
4788 * | Parameter | Description | Type | Required | Values |
4789 * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
4790 * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
4791 *
4792 * **Notes:** Default value: 'center'
4793 */
4794 messageAlign: "center",
4795 /**
4796 * | Parameter | Description | Type | Required | Values |
4797 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
4798 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
4799 *
4800 * **Notes:**
4801 *
4802 * Depending on css styling this might need adjustment.
4803 *
4804 * Default value: 1
4805 */
4806 bottomMarginAdj: 1,
4807 /**
4808 * | Parameter | Description | Type | Required | Values |
4809 * | ----------- | ----------- | ------- | -------- | ----------- |
4810 * | useMaxWidth | See notes | boolean | 4 | true, false |
4811 *
4812 * **Notes:**
4813 *
4814 * When this flag is set the height and width is set to 100% and is then scaling with the
4815 * available space if not the absolute space required is used.
4816 *
4817 * Default value: true
4818 */
4819 useMaxWidth: !0,
4820 /**
4821 * | Parameter | Description | Type | Required | Values |
4822 * | ----------- | --------------------------------- | ---- | -------- | ----------- |
4823 * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
4824 *
4825 * **Notes:**
4826 *
4827 * This will display arrows that start and begin at the same node as right angles, rather than a
4828 * curves
4829 *
4830 * Default value: false
4831 */
4832 rightAngles: !1,
4833 taskFontSize: 14,
4834 taskFontFamily: '"Open Sans", sans-serif',
4835 taskMargin: 50,
4836 // width of activation box
4837 activationWidth: 10,
4838 // text placement as: tspan | fo | old only text as before
4839 textPlacement: "fo",
4840 actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
4841 sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
4842 sectionColours: ["#fff"]
4843 },
4844 /** The object containing configurations specific for timeline diagrams */
4845 timeline: {
4846 /**
4847 * | Parameter | Description | Type | Required | Values |
4848 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
4849 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
4850 *
4851 * **Notes:** Default value: 50
4852 */
4853 diagramMarginX: 50,
4854 /**
4855 * | Parameter | Description | Type | Required | Values |
4856 * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
4857 * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
4858 *
4859 * **Notes:** Default value: 10
4860 */
4861 diagramMarginY: 10,
4862 /**
4863 * | Parameter | Description | Type | Required | Values |
4864 * | ----------- | --------------------- | ------- | -------- | ------------------ |
4865 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
4866 *
4867 * **Notes:** Default value: 50
4868 */
4869 leftMargin: 150,
4870 /**
4871 * | Parameter | Description | Type | Required | Values |
4872 * | --------- | -------------------- | ------- | -------- | ------------------ |
4873 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
4874 *
4875 * **Notes:** Default value: 150
4876 */
4877 width: 150,
4878 /**
4879 * | Parameter | Description | Type | Required | Values |
4880 * | --------- | --------------------- | ------- | -------- | ------------------ |
4881 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
4882 *
4883 * **Notes:** Default value: 65
4884 */
4885 height: 50,
4886 /**
4887 * | Parameter | Description | Type | Required | Values |
4888 * | --------- | ------------------------ | ------- | -------- | ------------------ |
4889 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
4890 *
4891 * **Notes:** Default value: 10
4892 */
4893 boxMargin: 10,
4894 /**
4895 * | Parameter | Description | Type | Required | Values |
4896 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
4897 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
4898 *
4899 * **Notes:** Default value: 5
4900 */
4901 boxTextMargin: 5,
4902 /**
4903 * | Parameter | Description | Type | Required | Values |
4904 * | ---------- | ------------------- | ------- | -------- | ------------------ |
4905 * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
4906 *
4907 * **Notes:** Default value: 10
4908 */
4909 noteMargin: 10,
4910 /**
4911 * | Parameter | Description | Type | Required | Values |
4912 * | ------------- | ----------------------- | ------- | -------- | ------------------ |
4913 * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
4914 *
4915 * **Notes:**
4916 *
4917 * Space between messages.
4918 *
4919 * Default value: 35
4920 */
4921 messageMargin: 35,
4922 /**
4923 * | Parameter | Description | Type | Required | Values |
4924 * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
4925 * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
4926 *
4927 * **Notes:** Default value: 'center'
4928 */
4929 messageAlign: "center",
4930 /**
4931 * | Parameter | Description | Type | Required | Values |
4932 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
4933 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
4934 *
4935 * **Notes:**
4936 *
4937 * Depending on css styling this might need adjustment.
4938 *
4939 * Default value: 1
4940 */
4941 bottomMarginAdj: 1,
4942 /**
4943 * | Parameter | Description | Type | Required | Values |
4944 * | ----------- | ----------- | ------- | -------- | ----------- |
4945 * | useMaxWidth | See notes | boolean | 4 | true, false |
4946 *
4947 * **Notes:**
4948 *
4949 * When this flag is set the height and width is set to 100% and is then scaling with the
4950 * available space if not the absolute space required is used.
4951 *
4952 * Default value: true
4953 */
4954 useMaxWidth: !0,
4955 /**
4956 * | Parameter | Description | Type | Required | Values |
4957 * | ----------- | --------------------------------- | ---- | -------- | ----------- |
4958 * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
4959 *
4960 * **Notes:**
4961 *
4962 * This will display arrows that start and begin at the same node as right angles, rather than a
4963 * curves
4964 *
4965 * Default value: false
4966 */
4967 rightAngles: !1,
4968 taskFontSize: 14,
4969 taskFontFamily: '"Open Sans", sans-serif',
4970 taskMargin: 50,
4971 // width of activation box
4972 activationWidth: 10,
4973 // text placement as: tspan | fo | old only text as before
4974 textPlacement: "fo",
4975 actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
4976 sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
4977 sectionColours: ["#fff"],
4978 disableMulticolor: !1
4979 },
4980 class: {
4981 /**
4982 * ### titleTopMargin
4983 *
4984 * | Parameter | Description | Type | Required | Values |
4985 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
4986 * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
4987 *
4988 * **Notes:** Default value: 25
4989 */
4990 titleTopMargin: 25,
4991 arrowMarkerAbsolute: !1,
4992 dividerMargin: 10,
4993 padding: 5,
4994 textHeight: 10,
4995 /**
4996 * | Parameter | Description | Type | Required | Values |
4997 * | ----------- | ----------- | ------- | -------- | ----------- |
4998 * | useMaxWidth | See notes | boolean | 4 | true, false |
4999 *
5000 * **Notes:**
5001 *
5002 * When this flag is set the height and width is set to 100% and is then scaling with the
5003 * available space if not the absolute space required is used.
5004 *
5005 * Default value: true
5006 */
5007 useMaxWidth: !0,
5008 /**
5009 * | Parameter | Description | Type | Required | Values |
5010 * | --------------- | ----------- | ------- | -------- | ----------------------- |
5011 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
5012 *
5013 * **Notes**:
5014 *
5015 * Decides which rendering engine that is to be used for the rendering. Legal values are:
5016 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
5017 *
5018 * Default value: 'dagre-d3'
5019 */
5020 defaultRenderer: "dagre-wrapper"
5021 },
5022 state: {
5023 /**
5024 * ### titleTopMargin
5025 *
5026 * | Parameter | Description | Type | Required | Values |
5027 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
5028 * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
5029 *
5030 * **Notes:** Default value: 25
5031 */
5032 titleTopMargin: 25,
5033 dividerMargin: 10,
5034 sizeUnit: 5,
5035 padding: 8,
5036 textHeight: 10,
5037 titleShift: -15,
5038 noteMargin: 10,
5039 forkWidth: 70,
5040 forkHeight: 7,
5041 // Used
5042 miniPadding: 2,
5043 // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
5044 // layout. This might need updating if/when switching font
5045 fontSizeFactor: 5.02,
5046 fontSize: 24,
5047 labelHeight: 16,
5048 edgeLengthFactor: "20",
5049 compositTitleSize: 35,
5050 radius: 5,
5051 /**
5052 * | Parameter | Description | Type | Required | Values |
5053 * | ----------- | ----------- | ------- | -------- | ----------- |
5054 * | useMaxWidth | See notes | boolean | 4 | true, false |
5055 *
5056 * **Notes:**
5057 *
5058 * When this flag is set the height and width is set to 100% and is then scaling with the
5059 * available space if not the absolute space required is used.
5060 *
5061 * Default value: true
5062 */
5063 useMaxWidth: !0,
5064 /**
5065 * | Parameter | Description | Type | Required | Values |
5066 * | --------------- | ----------- | ------- | -------- | ----------------------- |
5067 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
5068 *
5069 * **Notes:**
5070 *
5071 * Decides which rendering engine that is to be used for the rendering. Legal values are:
5072 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
5073 *
5074 * Default value: 'dagre-d3'
5075 */
5076 defaultRenderer: "dagre-wrapper"
5077 },
5078 /** The object containing configurations specific for entity relationship diagrams */
5079 er: {
5080 /**
5081 * ### titleTopMargin
5082 *
5083 * | Parameter | Description | Type | Required | Values |
5084 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
5085 * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |
5086 *
5087 * **Notes:** Default value: 25
5088 */
5089 titleTopMargin: 25,
5090 /**
5091 * | Parameter | Description | Type | Required | Values |
5092 * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
5093 * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
5094 *
5095 * **Notes:**
5096 *
5097 * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
5098 * expressed in pixels
5099 *
5100 * Default value: 20
5101 */
5102 diagramPadding: 20,
5103 /**
5104 * | Parameter | Description | Type | Required | Values |
5105 * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
5106 * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
5107 *
5108 * **Notes:**
5109 *
5110 * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
5111 *
5112 * T = top, B = bottom, L = left, and R = right.
5113 *
5114 * Default value: 'TB'
5115 */
5116 layoutDirection: "TB",
5117 /**
5118 * | Parameter | Description | Type | Required | Values |
5119 * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
5120 * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
5121 *
5122 * **Notes:** Expressed in pixels. Default value: 100
5123 */
5124 minEntityWidth: 100,
5125 /**
5126 * | Parameter | Description | Type | Required | Values |
5127 * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
5128 * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
5129 *
5130 * **Notes:** Expressed in pixels Default value: 75
5131 */
5132 minEntityHeight: 75,
5133 /**
5134 * | Parameter | Description | Type | Required | Values |
5135 * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
5136 * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
5137 *
5138 * **Notes:**
5139 *
5140 * The minimum internal padding between text in an entity box and the enclosing box borders,
5141 * expressed in pixels.
5142 *
5143 * Default value: 15
5144 */
5145 entityPadding: 15,
5146 /**
5147 * | Parameter | Description | Type | Required | Values |
5148 * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
5149 * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
5150 *
5151 * **Notes:** Default value: 'gray'
5152 */
5153 stroke: "gray",
5154 /**
5155 * | Parameter | Description | Type | Required | Values |
5156 * | --------- | -------------------------- | ------ | -------- | -------------------- |
5157 * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
5158 *
5159 * **Notes:** Default value: 'honeydew'
5160 */
5161 fill: "honeydew",
5162 /**
5163 * | Parameter | Description | Type | Required | Values |
5164 * | --------- | ------------------- | ------- | -------- | ------------------ |
5165 * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
5166 *
5167 * **Notes:**
5168 *
5169 * Font size (expressed as an integer representing a number of pixels) Default value: 12
5170 */
5171 fontSize: 12,
5172 /**
5173 * | Parameter | Description | Type | Required | Values |
5174 * | ----------- | ----------- | ------- | -------- | ----------- |
5175 * | useMaxWidth | See Notes | boolean | Required | true, false |
5176 *
5177 * **Notes:**
5178 *
5179 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
5180 * available space. If set to false, the diagram reserves its absolute width.
5181 *
5182 * Default value: true
5183 */
5184 useMaxWidth: !0
5185 },
5186 /** The object containing configurations specific for pie diagrams */
5187 pie: {
5188 useWidth: void 0,
5189 /**
5190 * | Parameter | Description | Type | Required | Values |
5191 * | ----------- | ----------- | ------- | -------- | ----------- |
5192 * | useMaxWidth | See Notes | boolean | Required | true, false |
5193 *
5194 * **Notes:**
5195 *
5196 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
5197 * available space. If set to false, the diagram reserves its absolute width.
5198 *
5199 * Default value: true
5200 */
5201 useMaxWidth: !0,
5202 /**
5203 * | Parameter | Description | Type | Required | Values |
5204 * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |
5205 * | 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 |
5206 *
5207 * **Notes:** Default value: 0.75
5208 */
5209 textPosition: 0.75
5210 },
5211 quadrantChart: {
5212 /**
5213 * | Parameter | Description | Type | Required | Values |
5214 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
5215 * | chartWidth | Width of the chart | number | Optional | Any positive number |
5216 *
5217 * **Notes:**
5218 * Default value: 500
5219 */
5220 chartWidth: 500,
5221 /**
5222 * | Parameter | Description | Type | Required | Values |
5223 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
5224 * | chartHeight | Height of the chart | number | Optional | Any positive number |
5225 *
5226 * **Notes:**
5227 * Default value: 500
5228 */
5229 chartHeight: 500,
5230 /**
5231 * | Parameter | Description | Type | Required | Values |
5232 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
5233 * | titlePadding | Chart title top and bottom padding | number | Optional | Any positive number |
5234 *
5235 * **Notes:**
5236 * Default value: 10
5237 */
5238 titlePadding: 10,
5239 /**
5240 * | Parameter | Description | Type | Required | Values |
5241 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
5242 * | titleFontSize | Chart title font size | number | Optional | Any positive number |
5243 *
5244 * **Notes:**
5245 * Default value: 20
5246 */
5247 titleFontSize: 20,
5248 /**
5249 * | Parameter | Description | Type | Required | Values |
5250 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
5251 * | quadrantPadding | Padding around the quadrant square | number | Optional | Any positive number |
5252 *
5253 * **Notes:**
5254 * Default value: 5
5255 */
5256 quadrantPadding: 5,
5257 /**
5258 * | Parameter | Description | Type | Required | Values |
5259 * | ---------------------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------- |
5260 * | quadrantTextTopPadding | quadrant title padding from top if the quadrant is rendered on top | number | Optional | Any positive number |
5261 *
5262 * **Notes:**
5263 * Default value: 5
5264 */
5265 quadrantTextTopPadding: 5,
5266 /**
5267 * | Parameter | Description | Type | Required | Values |
5268 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
5269 * | quadrantLabelFontSize | quadrant title font size | number | Optional | Any positive number |
5270 *
5271 * **Notes:**
5272 * Default value: 16
5273 */
5274 quadrantLabelFontSize: 16,
5275 /**
5276 * | Parameter | Description | Type | Required | Values |
5277 * | --------------------------------- | ------------------------------------------------------------- | ------- | -------- | ------------------- |
5278 * | quadrantInternalBorderStrokeWidth | stroke width of edges of the box that are inside the quadrant | number | Optional | Any positive number |
5279 *
5280 * **Notes:**
5281 * Default value: 1
5282 */
5283 quadrantInternalBorderStrokeWidth: 1,
5284 /**
5285 * | Parameter | Description | Type | Required | Values |
5286 * | --------------------------------- | -------------------------------------------------------------- | ------- | -------- | ------------------- |
5287 * | quadrantExternalBorderStrokeWidth | stroke width of edges of the box that are outside the quadrant | number | Optional | Any positive number |
5288 *
5289 * **Notes:**
5290 * Default value: 2
5291 */
5292 quadrantExternalBorderStrokeWidth: 2,
5293 /**
5294 * | Parameter | Description | Type | Required | Values |
5295 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
5296 * | xAxisLabelPadding | Padding around x-axis labels | number | Optional | Any positive number |
5297 *
5298 * **Notes:**
5299 * Default value: 5
5300 */
5301 xAxisLabelPadding: 5,
5302 /**
5303 * | Parameter | Description | Type | Required | Values |
5304 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
5305 * | xAxisLabelFontSize | x-axis label font size | number | Optional | Any positive number |
5306 *
5307 * **Notes:**
5308 * Default value: 16
5309 */
5310 xAxisLabelFontSize: 16,
5311 /**
5312 * | Parameter | Description | Type | Required | Values |
5313 * | ------------- | ------------------------------- | ------- | -------- | ------------------- |
5314 * | xAxisPosition | position of x-axis labels | string | Optional | 'top' or 'bottom' |
5315 *
5316 * **Notes:**
5317 * Default value: top
5318 */
5319 xAxisPosition: "top",
5320 /**
5321 * | Parameter | Description | Type | Required | Values |
5322 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
5323 * | yAxisLabelPadding | Padding around y-axis labels | number | Optional | Any positive number |
5324 *
5325 * **Notes:**
5326 * Default value: 5
5327 */
5328 yAxisLabelPadding: 5,
5329 /**
5330 * | Parameter | Description | Type | Required | Values |
5331 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
5332 * | yAxisLabelFontSize | y-axis label font size | number | Optional | Any positive number |
5333 *
5334 * **Notes:**
5335 * Default value: 16
5336 */
5337 yAxisLabelFontSize: 16,
5338 /**
5339 * | Parameter | Description | Type | Required | Values |
5340 * | ------------- | ------------------------------- | ------- | -------- | ------------------- |
5341 * | yAxisPosition | position of y-axis labels | string | Optional | 'left' or 'right' |
5342 *
5343 * **Notes:**
5344 * Default value: left
5345 */
5346 yAxisPosition: "left",
5347 /**
5348 * | Parameter | Description | Type | Required | Values |
5349 * | ---------------------- | -------------------------------------- | ------- | -------- | ------------------- |
5350 * | pointTextPadding | padding between point and point label | number | Optional | Any positive number |
5351 *
5352 * **Notes:**
5353 * Default value: 5
5354 */
5355 pointTextPadding: 5,
5356 /**
5357 * | Parameter | Description | Type | Required | Values |
5358 * | ---------------------- | ---------------------- | ------- | -------- | ------------------- |
5359 * | pointTextPadding | point title font size | number | Optional | Any positive number |
5360 *
5361 * **Notes:**
5362 * Default value: 12
5363 */
5364 pointLabelFontSize: 12,
5365 /**
5366 * | Parameter | Description | Type | Required | Values |
5367 * | ------------- | ------------------------------- | ------- | -------- | ------------------- |
5368 * | pointRadius | radius of the point to be drawn | number | Optional | Any positive number |
5369 *
5370 * **Notes:**
5371 * Default value: 5
5372 */
5373 pointRadius: 5,
5374 /**
5375 * | Parameter | Description | Type | Required | Values |
5376 * | ----------- | ----------- | ------- | -------- | ----------- |
5377 * | useMaxWidth | See Notes | boolean | Required | true, false |
5378 *
5379 * **Notes:**
5380 *
5381 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
5382 * available space. If set to false, the diagram reserves its absolute width.
5383 *
5384 * Default value: true
5385 */
5386 useMaxWidth: !0
5387 },
5388 /** The object containing configurations specific for req diagrams */
5389 requirement: {
5390 useWidth: void 0,
5391 /**
5392 * | Parameter | Description | Type | Required | Values |
5393 * | ----------- | ----------- | ------- | -------- | ----------- |
5394 * | useMaxWidth | See Notes | boolean | Required | true, false |
5395 *
5396 * **Notes:**
5397 *
5398 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
5399 * available space. If set to false, the diagram reserves its absolute width.
5400 *
5401 * Default value: true
5402 */
5403 useMaxWidth: !0,
5404 rect_fill: "#f9f9f9",
5405 text_color: "#333",
5406 rect_border_size: "0.5px",
5407 rect_border_color: "#bbb",
5408 rect_min_width: 200,
5409 rect_min_height: 200,
5410 fontSize: 14,
5411 rect_padding: 10,
5412 line_height: 20
5413 },
5414 gitGraph: {
5415 /**
5416 * ### titleTopMargin
5417 *
5418 * | Parameter | Description | Type | Required | Values |
5419 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
5420 * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |
5421 *
5422 * **Notes:** Default value: 25
5423 */
5424 titleTopMargin: 25,
5425 diagramPadding: 8,
5426 nodeLabel: {
5427 width: 75,
5428 height: 100,
5429 x: -25,
5430 y: 0
5431 },
5432 mainBranchName: "main",
5433 mainBranchOrder: 0,
5434 showCommitLabel: !0,
5435 showBranches: !0,
5436 rotateCommitLabel: !0
5437 },
5438 /** The object containing configurations specific for c4 diagrams */
5439 c4: {
5440 useWidth: void 0,
5441 /**
5442 * | Parameter | Description | Type | Required | Values |
5443 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
5444 * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
5445 *
5446 * **Notes:** Default value: 50
5447 */
5448 diagramMarginX: 50,
5449 /**
5450 * | Parameter | Description | Type | Required | Values |
5451 * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
5452 * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
5453 *
5454 * **Notes:** Default value: 10
5455 */
5456 diagramMarginY: 10,
5457 /**
5458 * | Parameter | Description | Type | Required | Values |
5459 * | ------------- | --------------------- | ------- | -------- | ------------------ |
5460 * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
5461 *
5462 * **Notes:** Default value: 50
5463 */
5464 c4ShapeMargin: 50,
5465 /**
5466 * | Parameter | Description | Type | Required | Values |
5467 * | -------------- | ---------------------- | ------- | -------- | ------------------ |
5468 * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
5469 *
5470 * **Notes:** Default value: 20
5471 */
5472 c4ShapePadding: 20,
5473 /**
5474 * | Parameter | Description | Type | Required | Values |
5475 * | --------- | --------------------- | ------- | -------- | ------------------ |
5476 * | width | Width of person boxes | Integer | Required | Any Positive Value |
5477 *
5478 * **Notes:** Default value: 216
5479 */
5480 width: 216,
5481 /**
5482 * | Parameter | Description | Type | Required | Values |
5483 * | --------- | ---------------------- | ------- | -------- | ------------------ |
5484 * | height | Height of person boxes | Integer | Required | Any Positive Value |
5485 *
5486 * **Notes:** Default value: 60
5487 */
5488 height: 60,
5489 /**
5490 * | Parameter | Description | Type | Required | Values |
5491 * | --------- | ------------------- | ------- | -------- | ------------------ |
5492 * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
5493 *
5494 * **Notes:** Default value: 10
5495 */
5496 boxMargin: 10,
5497 /**
5498 * | Parameter | Description | Type | Required | Values |
5499 * | ----------- | ----------- | ------- | -------- | ----------- |
5500 * | useMaxWidth | See Notes | boolean | Required | true, false |
5501 *
5502 * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
5503 * scaling with the available space. If set to false, the absolute space required is used.
5504 *
5505 * Default value: true
5506 */
5507 useMaxWidth: !0,
5508 /**
5509 * | Parameter | Description | Type | Required | Values |
5510 * | ------------ | ----------- | ------- | -------- | ------------------ |
5511 * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
5512 *
5513 * **Notes:** How many shapes to place in each row.
5514 *
5515 * Default value: 4
5516 */
5517 c4ShapeInRow: 4,
5518 nextLinePaddingX: 0,
5519 /**
5520 * | Parameter | Description | Type | Required | Values |
5521 * | --------------- | ----------- | ------- | -------- | ------------------ |
5522 * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
5523 *
5524 * **Notes:** How many boundaries to place in each row.
5525 *
5526 * Default value: 2
5527 */
5528 c4BoundaryInRow: 2,
5529 /**
5530 * This sets the font size of Person shape for the diagram
5531 *
5532 * **Notes:** Default value: 14.
5533 */
5534 personFontSize: 14,
5535 /**
5536 * This sets the font family of Person shape for the diagram
5537 *
5538 * **Notes:** Default value: "Open Sans", sans-serif.
5539 */
5540 personFontFamily: '"Open Sans", sans-serif',
5541 /**
5542 * This sets the font weight of Person shape for the diagram
5543 *
5544 * **Notes:** Default value: normal.
5545 */
5546 personFontWeight: "normal",
5547 /**
5548 * This sets the font size of External Person shape for the diagram
5549 *
5550 * **Notes:** Default value: 14.
5551 */
5552 external_personFontSize: 14,
5553 /**
5554 * This sets the font family of External Person shape for the diagram
5555 *
5556 * **Notes:** Default value: "Open Sans", sans-serif.
5557 */
5558 external_personFontFamily: '"Open Sans", sans-serif',
5559 /**
5560 * This sets the font weight of External Person shape for the diagram
5561 *
5562 * **Notes:** Default value: normal.
5563 */
5564 external_personFontWeight: "normal",
5565 /**
5566 * This sets the font size of System shape for the diagram
5567 *
5568 * **Notes:** Default value: 14.
5569 */
5570 systemFontSize: 14,
5571 /**
5572 * This sets the font family of System shape for the diagram
5573 *
5574 * **Notes:** Default value: "Open Sans", sans-serif.
5575 */
5576 systemFontFamily: '"Open Sans", sans-serif',
5577 /**
5578 * This sets the font weight of System shape for the diagram
5579 *
5580 * **Notes:** Default value: normal.
5581 */
5582 systemFontWeight: "normal",
5583 /**
5584 * This sets the font size of External System shape for the diagram
5585 *
5586 * **Notes:** Default value: 14.
5587 */
5588 external_systemFontSize: 14,
5589 /**
5590 * This sets the font family of External System shape for the diagram
5591 *
5592 * **Notes:** Default value: "Open Sans", sans-serif.
5593 */
5594 external_systemFontFamily: '"Open Sans", sans-serif',
5595 /**
5596 * This sets the font weight of External System shape for the diagram
5597 *
5598 * **Notes:** Default value: normal.
5599 */
5600 external_systemFontWeight: "normal",
5601 /**
5602 * This sets the font size of System DB shape for the diagram
5603 *
5604 * **Notes:** Default value: 14.
5605 */
5606 system_dbFontSize: 14,
5607 /**
5608 * This sets the font family of System DB shape for the diagram
5609 *
5610 * **Notes:** Default value: "Open Sans", sans-serif.
5611 */
5612 system_dbFontFamily: '"Open Sans", sans-serif',
5613 /**
5614 * This sets the font weight of System DB shape for the diagram
5615 *
5616 * **Notes:** Default value: normal.
5617 */
5618 system_dbFontWeight: "normal",
5619 /**
5620 * This sets the font size of External System DB shape for the diagram
5621 *
5622 * **Notes:** Default value: 14.
5623 */
5624 external_system_dbFontSize: 14,
5625 /**
5626 * This sets the font family of External System DB shape for the diagram
5627 *
5628 * **Notes:** Default value: "Open Sans", sans-serif.
5629 */
5630 external_system_dbFontFamily: '"Open Sans", sans-serif',
5631 /**
5632 * This sets the font weight of External System DB shape for the diagram
5633 *
5634 * **Notes:** Default value: normal.
5635 */
5636 external_system_dbFontWeight: "normal",
5637 /**
5638 * This sets the font size of System Queue shape for the diagram
5639 *
5640 * **Notes:** Default value: 14.
5641 */
5642 system_queueFontSize: 14,
5643 /**
5644 * This sets the font family of System Queue shape for the diagram
5645 *
5646 * **Notes:** Default value: "Open Sans", sans-serif.
5647 */
5648 system_queueFontFamily: '"Open Sans", sans-serif',
5649 /**
5650 * This sets the font weight of System Queue shape for the diagram
5651 *
5652 * **Notes:** Default value: normal.
5653 */
5654 system_queueFontWeight: "normal",
5655 /**
5656 * This sets the font size of External System Queue shape for the diagram
5657 *
5658 * **Notes:** Default value: 14.
5659 */
5660 external_system_queueFontSize: 14,
5661 /**
5662 * This sets the font family of External System Queue shape for the diagram
5663 *
5664 * **Notes:** Default value: "Open Sans", sans-serif.
5665 */
5666 external_system_queueFontFamily: '"Open Sans", sans-serif',
5667 /**
5668 * This sets the font weight of External System Queue shape for the diagram
5669 *
5670 * **Notes:** Default value: normal.
5671 */
5672 external_system_queueFontWeight: "normal",
5673 /**
5674 * This sets the font size of Boundary shape for the diagram
5675 *
5676 * **Notes:** Default value: 14.
5677 */
5678 boundaryFontSize: 14,
5679 /**
5680 * This sets the font family of Boundary shape for the diagram
5681 *
5682 * **Notes:** Default value: "Open Sans", sans-serif.
5683 */
5684 boundaryFontFamily: '"Open Sans", sans-serif',
5685 /**
5686 * This sets the font weight of Boundary shape for the diagram
5687 *
5688 * **Notes:** Default value: normal.
5689 */
5690 boundaryFontWeight: "normal",
5691 /**
5692 * This sets the font size of Message shape for the diagram
5693 *
5694 * **Notes:** Default value: 12.
5695 */
5696 messageFontSize: 12,
5697 /**
5698 * This sets the font family of Message shape for the diagram
5699 *
5700 * **Notes:** Default value: "Open Sans", sans-serif.
5701 */
5702 messageFontFamily: '"Open Sans", sans-serif',
5703 /**
5704 * This sets the font weight of Message shape for the diagram
5705 *
5706 * **Notes:** Default value: normal.
5707 */
5708 messageFontWeight: "normal",
5709 /**
5710 * This sets the font size of Container shape for the diagram
5711 *
5712 * **Notes:** Default value: 14.
5713 */
5714 containerFontSize: 14,
5715 /**
5716 * This sets the font family of Container shape for the diagram
5717 *
5718 * **Notes:** Default value: "Open Sans", sans-serif.
5719 */
5720 containerFontFamily: '"Open Sans", sans-serif',
5721 /**
5722 * This sets the font weight of Container shape for the diagram
5723 *
5724 * **Notes:** Default value: normal.
5725 */
5726 containerFontWeight: "normal",
5727 /**
5728 * This sets the font size of External Container shape for the diagram
5729 *
5730 * **Notes:** Default value: 14.
5731 */
5732 external_containerFontSize: 14,
5733 /**
5734 * This sets the font family of External Container shape for the diagram
5735 *
5736 * **Notes:** Default value: "Open Sans", sans-serif.
5737 */
5738 external_containerFontFamily: '"Open Sans", sans-serif',
5739 /**
5740 * This sets the font weight of External Container shape for the diagram
5741 *
5742 * **Notes:** Default value: normal.
5743 */
5744 external_containerFontWeight: "normal",
5745 /**
5746 * This sets the font size of Container DB shape for the diagram
5747 *
5748 * **Notes:** Default value: 14.
5749 */
5750 container_dbFontSize: 14,
5751 /**
5752 * This sets the font family of Container DB shape for the diagram
5753 *
5754 * **Notes:** Default value: "Open Sans", sans-serif.
5755 */
5756 container_dbFontFamily: '"Open Sans", sans-serif',
5757 /**
5758 * This sets the font weight of Container DB shape for the diagram
5759 *
5760 * **Notes:** Default value: normal.
5761 */
5762 container_dbFontWeight: "normal",
5763 /**
5764 * This sets the font size of External Container DB shape for the diagram
5765 *
5766 * **Notes:** Default value: 14.
5767 */
5768 external_container_dbFontSize: 14,
5769 /**
5770 * This sets the font family of External Container DB shape for the diagram
5771 *
5772 * **Notes:** Default value: "Open Sans", sans-serif.
5773 */
5774 external_container_dbFontFamily: '"Open Sans", sans-serif',
5775 /**
5776 * This sets the font weight of External Container DB shape for the diagram
5777 *
5778 * **Notes:** Default value: normal.
5779 */
5780 external_container_dbFontWeight: "normal",
5781 /**
5782 * This sets the font size of Container Queue shape for the diagram
5783 *
5784 * **Notes:** Default value: 14.
5785 */
5786 container_queueFontSize: 14,
5787 /**
5788 * This sets the font family of Container Queue shape for the diagram
5789 *
5790 * **Notes:** Default value: "Open Sans", sans-serif.
5791 */
5792 container_queueFontFamily: '"Open Sans", sans-serif',
5793 /**
5794 * This sets the font weight of Container Queue shape for the diagram
5795 *
5796 * **Notes:** Default value: normal.
5797 */
5798 container_queueFontWeight: "normal",
5799 /**
5800 * This sets the font size of External Container Queue shape for the diagram
5801 *
5802 * **Notes:** Default value: 14.
5803 */
5804 external_container_queueFontSize: 14,
5805 /**
5806 * This sets the font family of External Container Queue shape for the diagram
5807 *
5808 * **Notes:** Default value: "Open Sans", sans-serif.
5809 */
5810 external_container_queueFontFamily: '"Open Sans", sans-serif',
5811 /**
5812 * This sets the font weight of External Container Queue shape for the diagram
5813 *
5814 * **Notes:** Default value: normal.
5815 */
5816 external_container_queueFontWeight: "normal",
5817 /**
5818 * This sets the font size of Component shape for the diagram
5819 *
5820 * **Notes:** Default value: 14.
5821 */
5822 componentFontSize: 14,
5823 /**
5824 * This sets the font family of Component shape for the diagram
5825 *
5826 * **Notes:** Default value: "Open Sans", sans-serif.
5827 */
5828 componentFontFamily: '"Open Sans", sans-serif',
5829 /**
5830 * This sets the font weight of Component shape for the diagram
5831 *
5832 * **Notes:** Default value: normal.
5833 */
5834 componentFontWeight: "normal",
5835 /**
5836 * This sets the font size of External Component shape for the diagram
5837 *
5838 * **Notes:** Default value: 14.
5839 */
5840 external_componentFontSize: 14,
5841 /**
5842 * This sets the font family of External Component shape for the diagram
5843 *
5844 * **Notes:** Default value: "Open Sans", sans-serif.
5845 */
5846 external_componentFontFamily: '"Open Sans", sans-serif',
5847 /**
5848 * This sets the font weight of External Component shape for the diagram
5849 *
5850 * **Notes:** Default value: normal.
5851 */
5852 external_componentFontWeight: "normal",
5853 /**
5854 * This sets the font size of Component DB shape for the diagram
5855 *
5856 * **Notes:** Default value: 14.
5857 */
5858 component_dbFontSize: 14,
5859 /**
5860 * This sets the font family of Component DB shape for the diagram
5861 *
5862 * **Notes:** Default value: "Open Sans", sans-serif.
5863 */
5864 component_dbFontFamily: '"Open Sans", sans-serif',
5865 /**
5866 * This sets the font weight of Component DB shape for the diagram
5867 *
5868 * **Notes:** Default value: normal.
5869 */
5870 component_dbFontWeight: "normal",
5871 /**
5872 * This sets the font size of External Component DB shape for the diagram
5873 *
5874 * **Notes:** Default value: 14.
5875 */
5876 external_component_dbFontSize: 14,
5877 /**
5878 * This sets the font family of External Component DB shape for the diagram
5879 *
5880 * **Notes:** Default value: "Open Sans", sans-serif.
5881 */
5882 external_component_dbFontFamily: '"Open Sans", sans-serif',
5883 /**
5884 * This sets the font weight of External Component DB shape for the diagram
5885 *
5886 * **Notes:** Default value: normal.
5887 */
5888 external_component_dbFontWeight: "normal",
5889 /**
5890 * This sets the font size of Component Queue shape for the diagram
5891 *
5892 * **Notes:** Default value: 14.
5893 */
5894 component_queueFontSize: 14,
5895 /**
5896 * This sets the font family of Component Queue shape for the diagram
5897 *
5898 * **Notes:** Default value: "Open Sans", sans-serif.
5899 */
5900 component_queueFontFamily: '"Open Sans", sans-serif',
5901 /**
5902 * This sets the font weight of Component Queue shape for the diagram
5903 *
5904 * **Notes:** Default value: normal.
5905 */
5906 component_queueFontWeight: "normal",
5907 /**
5908 * This sets the font size of External Component Queue shape for the diagram
5909 *
5910 * **Notes:** Default value: 14.
5911 */
5912 external_component_queueFontSize: 14,
5913 /**
5914 * This sets the font family of External Component Queue shape for the diagram
5915 *
5916 * **Notes:** Default value: "Open Sans", sans-serif.
5917 */
5918 external_component_queueFontFamily: '"Open Sans", sans-serif',
5919 /**
5920 * This sets the font weight of External Component Queue shape for the diagram
5921 *
5922 * **Notes:** Default value: normal.
5923 */
5924 external_component_queueFontWeight: "normal",
5925 /**
5926 * This sets the auto-wrap state for the diagram
5927 *
5928 * **Notes:** Default value: true.
5929 */
5930 wrap: !0,
5931 /**
5932 * This sets the auto-wrap padding for the diagram (sides only)
5933 *
5934 * **Notes:** Default value: 0.
5935 */
5936 wrapPadding: 10,
5937 personFont: function() {
5938 return {
5939 fontFamily: this.personFontFamily,
5940 fontSize: this.personFontSize,
5941 fontWeight: this.personFontWeight
5942 };
5943 },
5944 external_personFont: function() {
5945 return {
5946 fontFamily: this.external_personFontFamily,
5947 fontSize: this.external_personFontSize,
5948 fontWeight: this.external_personFontWeight
5949 };
5950 },
5951 systemFont: function() {
5952 return {
5953 fontFamily: this.systemFontFamily,
5954 fontSize: this.systemFontSize,
5955 fontWeight: this.systemFontWeight
5956 };
5957 },
5958 external_systemFont: function() {
5959 return {
5960 fontFamily: this.external_systemFontFamily,
5961 fontSize: this.external_systemFontSize,
5962 fontWeight: this.external_systemFontWeight
5963 };
5964 },
5965 system_dbFont: function() {
5966 return {
5967 fontFamily: this.system_dbFontFamily,
5968 fontSize: this.system_dbFontSize,
5969 fontWeight: this.system_dbFontWeight
5970 };
5971 },
5972 external_system_dbFont: function() {
5973 return {
5974 fontFamily: this.external_system_dbFontFamily,
5975 fontSize: this.external_system_dbFontSize,
5976 fontWeight: this.external_system_dbFontWeight
5977 };
5978 },
5979 system_queueFont: function() {
5980 return {
5981 fontFamily: this.system_queueFontFamily,
5982 fontSize: this.system_queueFontSize,
5983 fontWeight: this.system_queueFontWeight
5984 };
5985 },
5986 external_system_queueFont: function() {
5987 return {
5988 fontFamily: this.external_system_queueFontFamily,
5989 fontSize: this.external_system_queueFontSize,
5990 fontWeight: this.external_system_queueFontWeight
5991 };
5992 },
5993 containerFont: function() {
5994 return {
5995 fontFamily: this.containerFontFamily,
5996 fontSize: this.containerFontSize,
5997 fontWeight: this.containerFontWeight
5998 };
5999 },
6000 external_containerFont: function() {
6001 return {
6002 fontFamily: this.external_containerFontFamily,
6003 fontSize: this.external_containerFontSize,
6004 fontWeight: this.external_containerFontWeight
6005 };
6006 },
6007 container_dbFont: function() {
6008 return {
6009 fontFamily: this.container_dbFontFamily,
6010 fontSize: this.container_dbFontSize,
6011 fontWeight: this.container_dbFontWeight
6012 };
6013 },
6014 external_container_dbFont: function() {
6015 return {
6016 fontFamily: this.external_container_dbFontFamily,
6017 fontSize: this.external_container_dbFontSize,
6018 fontWeight: this.external_container_dbFontWeight
6019 };
6020 },
6021 container_queueFont: function() {
6022 return {
6023 fontFamily: this.container_queueFontFamily,
6024 fontSize: this.container_queueFontSize,
6025 fontWeight: this.container_queueFontWeight
6026 };
6027 },
6028 external_container_queueFont: function() {
6029 return {
6030 fontFamily: this.external_container_queueFontFamily,
6031 fontSize: this.external_container_queueFontSize,
6032 fontWeight: this.external_container_queueFontWeight
6033 };
6034 },
6035 componentFont: function() {
6036 return {
6037 fontFamily: this.componentFontFamily,
6038 fontSize: this.componentFontSize,
6039 fontWeight: this.componentFontWeight
6040 };
6041 },
6042 external_componentFont: function() {
6043 return {
6044 fontFamily: this.external_componentFontFamily,
6045 fontSize: this.external_componentFontSize,
6046 fontWeight: this.external_componentFontWeight
6047 };
6048 },
6049 component_dbFont: function() {
6050 return {
6051 fontFamily: this.component_dbFontFamily,
6052 fontSize: this.component_dbFontSize,
6053 fontWeight: this.component_dbFontWeight
6054 };
6055 },
6056 external_component_dbFont: function() {
6057 return {
6058 fontFamily: this.external_component_dbFontFamily,
6059 fontSize: this.external_component_dbFontSize,
6060 fontWeight: this.external_component_dbFontWeight
6061 };
6062 },
6063 component_queueFont: function() {
6064 return {
6065 fontFamily: this.component_queueFontFamily,
6066 fontSize: this.component_queueFontSize,
6067 fontWeight: this.component_queueFontWeight
6068 };
6069 },
6070 external_component_queueFont: function() {
6071 return {
6072 fontFamily: this.external_component_queueFontFamily,
6073 fontSize: this.external_component_queueFontSize,
6074 fontWeight: this.external_component_queueFontWeight
6075 };
6076 },
6077 boundaryFont: function() {
6078 return {
6079 fontFamily: this.boundaryFontFamily,
6080 fontSize: this.boundaryFontSize,
6081 fontWeight: this.boundaryFontWeight
6082 };
6083 },
6084 messageFont: function() {
6085 return {
6086 fontFamily: this.messageFontFamily,
6087 fontSize: this.messageFontSize,
6088 fontWeight: this.messageFontWeight
6089 };
6090 },
6091 // ' Colors
6092 // ' ##################################
6093 person_bg_color: "#08427B",
6094 person_border_color: "#073B6F",
6095 external_person_bg_color: "#686868",
6096 external_person_border_color: "#8A8A8A",
6097 system_bg_color: "#1168BD",
6098 system_border_color: "#3C7FC0",
6099 system_db_bg_color: "#1168BD",
6100 system_db_border_color: "#3C7FC0",
6101 system_queue_bg_color: "#1168BD",
6102 system_queue_border_color: "#3C7FC0",
6103 external_system_bg_color: "#999999",
6104 external_system_border_color: "#8A8A8A",
6105 external_system_db_bg_color: "#999999",
6106 external_system_db_border_color: "#8A8A8A",
6107 external_system_queue_bg_color: "#999999",
6108 external_system_queue_border_color: "#8A8A8A",
6109 container_bg_color: "#438DD5",
6110 container_border_color: "#3C7FC0",
6111 container_db_bg_color: "#438DD5",
6112 container_db_border_color: "#3C7FC0",
6113 container_queue_bg_color: "#438DD5",
6114 container_queue_border_color: "#3C7FC0",
6115 external_container_bg_color: "#B3B3B3",
6116 external_container_border_color: "#A6A6A6",
6117 external_container_db_bg_color: "#B3B3B3",
6118 external_container_db_border_color: "#A6A6A6",
6119 external_container_queue_bg_color: "#B3B3B3",
6120 external_container_queue_border_color: "#A6A6A6",
6121 component_bg_color: "#85BBF0",
6122 component_border_color: "#78A8D8",
6123 component_db_bg_color: "#85BBF0",
6124 component_db_border_color: "#78A8D8",
6125 component_queue_bg_color: "#85BBF0",
6126 component_queue_border_color: "#78A8D8",
6127 external_component_bg_color: "#CCCCCC",
6128 external_component_border_color: "#BFBFBF",
6129 external_component_db_bg_color: "#CCCCCC",
6130 external_component_db_border_color: "#BFBFBF",
6131 external_component_queue_bg_color: "#CCCCCC",
6132 external_component_queue_border_color: "#BFBFBF"
6133 },
6134 mindmap: {
6135 useMaxWidth: !0,
6136 padding: 10,
6137 maxNodeWidth: 200
6138 },
6139 fontSize: 16
6140};
6141Nt.class && (Nt.class.arrowMarkerAbsolute = Nt.arrowMarkerAbsolute);
6142Nt.gitGraph && (Nt.gitGraph.arrowMarkerAbsolute = Nt.arrowMarkerAbsolute);
6143const Ma = (t, e = "") => Object.keys(t).reduce((i, r) => Array.isArray(t[r]) ? i : typeof t[r] == "object" && t[r] !== null ? [...i, e + r, ...Ma(t[r], "")] : [...i, e + r], []), Bp = Ma(Nt, ""), Fp = Nt;
6144/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
6145function Oa(t) {
6146 return typeof t > "u" || t === null;
6147}
6148function Lp(t) {
6149 return typeof t == "object" && t !== null;
6150}
6151function Ap(t) {
6152 return Array.isArray(t) ? t : Oa(t) ? [] : [t];
6153}
6154function Ep(t, e) {
6155 var i, r, n, o;
6156 if (e)
6157 for (o = Object.keys(e), i = 0, r = o.length; i < r; i += 1)
6158 n = o[i], t[n] = e[n];
6159 return t;
6160}
6161function Mp(t, e) {
6162 var i = "", r;
6163 for (r = 0; r < e; r += 1)
6164 i += t;
6165 return i;
6166}
6167function Op(t) {
6168 return t === 0 && Number.NEGATIVE_INFINITY === 1 / t;
6169}
6170var $p = Oa, Ip = Lp, Dp = Ap, Np = Mp, Rp = Op, qp = Ep, J = {
6171 isNothing: $p,
6172 isObject: Ip,
6173 toArray: Dp,
6174 repeat: Np,
6175 isNegativeZero: Rp,
6176 extend: qp
6177};
6178function $a(t, e) {
6179 var i = "", r = t.reason || "(unknown reason)";
6180 return t.mark ? (t.mark.name && (i += 'in "' + t.mark.name + '" '), i += "(" + (t.mark.line + 1) + ":" + (t.mark.column + 1) + ")", !e && t.mark.snippet && (i += `
6181
6182` + t.mark.snippet), r + " " + i) : r;
6183}
6184function Ke(t, e) {
6185 Error.call(this), this.name = "YAMLException", this.reason = t, this.mark = e, this.message = $a(this, !1), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || "";
6186}
6187Ke.prototype = Object.create(Error.prototype);
6188Ke.prototype.constructor = Ke;
6189Ke.prototype.toString = function(e) {
6190 return this.name + ": " + $a(this, e);
6191};
6192var Ft = Ke;
6193function Xr(t, e, i, r, n) {
6194 var o = "", s = "", a = Math.floor(n / 2) - 1;
6195 return r - e > a && (o = " ... ", e = r - a + o.length), i - r > a && (s = " ...", i = r + a - s.length), {
6196 str: o + t.slice(e, i).replace(/\t/g, "→") + s,
6197 pos: r - e + o.length
6198 // relative position
6199 };
6200}
6201function Kr(t, e) {
6202 return J.repeat(" ", e - t.length) + t;
6203}
6204function Pp(t, e) {
6205 if (e = Object.create(e || null), !t.buffer)
6206 return null;
6207 e.maxLength || (e.maxLength = 79), typeof e.indent != "number" && (e.indent = 1), typeof e.linesBefore != "number" && (e.linesBefore = 3), typeof e.linesAfter != "number" && (e.linesAfter = 2);
6208 for (var i = /\r?\n|\r|\0/g, r = [0], n = [], o, s = -1; o = i.exec(t.buffer); )
6209 n.push(o.index), r.push(o.index + o[0].length), t.position <= o.index && s < 0 && (s = r.length - 2);
6210 s < 0 && (s = r.length - 1);
6211 var a = "", l, h, c = Math.min(t.line + e.linesAfter, n.length).toString().length, u = e.maxLength - (e.indent + c + 3);
6212 for (l = 1; l <= e.linesBefore && !(s - l < 0); l++)
6213 h = Xr(
6214 t.buffer,
6215 r[s - l],
6216 n[s - l],
6217 t.position - (r[s] - r[s - l]),
6218 u
6219 ), a = J.repeat(" ", e.indent) + Kr((t.line - l + 1).toString(), c) + " | " + h.str + `
6220` + a;
6221 for (h = Xr(t.buffer, r[s], n[s], t.position, u), a += J.repeat(" ", e.indent) + Kr((t.line + 1).toString(), c) + " | " + h.str + `
6222`, a += J.repeat("-", e.indent + c + 3 + h.pos) + `^
6223`, l = 1; l <= e.linesAfter && !(s + l >= n.length); l++)
6224 h = Xr(
6225 t.buffer,
6226 r[s + l],
6227 n[s + l],
6228 t.position - (r[s] - r[s + l]),
6229 u
6230 ), a += J.repeat(" ", e.indent) + Kr((t.line + l + 1).toString(), c) + " | " + h.str + `
6231`;
6232 return a.replace(/\n$/, "");
6233}
6234var zp = Pp, Wp = [
6235 "kind",
6236 "multi",
6237 "resolve",
6238 "construct",
6239 "instanceOf",
6240 "predicate",
6241 "represent",
6242 "representName",
6243 "defaultStyle",
6244 "styleAliases"
6245], Hp = [
6246 "scalar",
6247 "sequence",
6248 "mapping"
6249];
6250function jp(t) {
6251 var e = {};
6252 return t !== null && Object.keys(t).forEach(function(i) {
6253 t[i].forEach(function(r) {
6254 e[String(r)] = i;
6255 });
6256 }), e;
6257}
6258function Up(t, e) {
6259 if (e = e || {}, Object.keys(e).forEach(function(i) {
6260 if (Wp.indexOf(i) === -1)
6261 throw new Ft('Unknown option "' + i + '" is met in definition of "' + t + '" YAML type.');
6262 }), this.options = e, this.tag = t, this.kind = e.kind || null, this.resolve = e.resolve || function() {
6263 return !0;
6264 }, this.construct = e.construct || function(i) {
6265 return i;
6266 }, this.instanceOf = e.instanceOf || null, this.predicate = e.predicate || null, this.represent = e.represent || null, this.representName = e.representName || null, this.defaultStyle = e.defaultStyle || null, this.multi = e.multi || !1, this.styleAliases = jp(e.styleAliases || null), Hp.indexOf(this.kind) === -1)
6267 throw new Ft('Unknown kind "' + this.kind + '" is specified for "' + t + '" YAML type.');
6268}
6269var Z = Up;
6270function rs(t, e) {
6271 var i = [];
6272 return t[e].forEach(function(r) {
6273 var n = i.length;
6274 i.forEach(function(o, s) {
6275 o.tag === r.tag && o.kind === r.kind && o.multi === r.multi && (n = s);
6276 }), i[n] = r;
6277 }), i;
6278}
6279function Yp() {
6280 var t = {
6281 scalar: {},
6282 sequence: {},
6283 mapping: {},
6284 fallback: {},
6285 multi: {
6286 scalar: [],
6287 sequence: [],
6288 mapping: [],
6289 fallback: []
6290 }
6291 }, e, i;
6292 function r(n) {
6293 n.multi ? (t.multi[n.kind].push(n), t.multi.fallback.push(n)) : t[n.kind][n.tag] = t.fallback[n.tag] = n;
6294 }
6295 for (e = 0, i = arguments.length; e < i; e += 1)
6296 arguments[e].forEach(r);
6297 return t;
6298}
6299function pn(t) {
6300 return this.extend(t);
6301}
6302pn.prototype.extend = function(e) {
6303 var i = [], r = [];
6304 if (e instanceof Z)
6305 r.push(e);
6306 else if (Array.isArray(e))
6307 r = r.concat(e);
6308 else if (e && (Array.isArray(e.implicit) || Array.isArray(e.explicit)))
6309 e.implicit && (i = i.concat(e.implicit)), e.explicit && (r = r.concat(e.explicit));
6310 else
6311 throw new Ft("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
6312 i.forEach(function(o) {
6313 if (!(o instanceof Z))
6314 throw new Ft("Specified list of YAML types (or a single Type object) contains a non-Type object.");
6315 if (o.loadKind && o.loadKind !== "scalar")
6316 throw new Ft("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
6317 if (o.multi)
6318 throw new Ft("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
6319 }), r.forEach(function(o) {
6320 if (!(o instanceof Z))
6321 throw new Ft("Specified list of YAML types (or a single Type object) contains a non-Type object.");
6322 });
6323 var n = Object.create(pn.prototype);
6324 return n.implicit = (this.implicit || []).concat(i), n.explicit = (this.explicit || []).concat(r), n.compiledImplicit = rs(n, "implicit"), n.compiledExplicit = rs(n, "explicit"), n.compiledTypeMap = Yp(n.compiledImplicit, n.compiledExplicit), n;
6325};
6326var Gp = pn, Vp = new Z("tag:yaml.org,2002:str", {
6327 kind: "scalar",
6328 construct: function(t) {
6329 return t !== null ? t : "";
6330 }
6331}), Xp = new Z("tag:yaml.org,2002:seq", {
6332 kind: "sequence",
6333 construct: function(t) {
6334 return t !== null ? t : [];
6335 }
6336}), Kp = new Z("tag:yaml.org,2002:map", {
6337 kind: "mapping",
6338 construct: function(t) {
6339 return t !== null ? t : {};
6340 }
6341}), Ia = new Gp({
6342 explicit: [
6343 Vp,
6344 Xp,
6345 Kp
6346 ]
6347});
6348function Zp(t) {
6349 if (t === null)
6350 return !0;
6351 var e = t.length;
6352 return e === 1 && t === "~" || e === 4 && (t === "null" || t === "Null" || t === "NULL");
6353}
6354function Jp() {
6355 return null;
6356}
6357function Qp(t) {
6358 return t === null;
6359}
6360var tg = new Z("tag:yaml.org,2002:null", {
6361 kind: "scalar",
6362 resolve: Zp,
6363 construct: Jp,
6364 predicate: Qp,
6365 represent: {
6366 canonical: function() {
6367 return "~";
6368 },
6369 lowercase: function() {
6370 return "null";
6371 },
6372 uppercase: function() {
6373 return "NULL";
6374 },
6375 camelcase: function() {
6376 return "Null";
6377 },
6378 empty: function() {
6379 return "";
6380 }
6381 },
6382 defaultStyle: "lowercase"
6383});
6384function eg(t) {
6385 if (t === null)
6386 return !1;
6387 var e = t.length;
6388 return e === 4 && (t === "true" || t === "True" || t === "TRUE") || e === 5 && (t === "false" || t === "False" || t === "FALSE");
6389}
6390function ig(t) {
6391 return t === "true" || t === "True" || t === "TRUE";
6392}
6393function rg(t) {
6394 return Object.prototype.toString.call(t) === "[object Boolean]";
6395}
6396var ng = new Z("tag:yaml.org,2002:bool", {
6397 kind: "scalar",
6398 resolve: eg,
6399 construct: ig,
6400 predicate: rg,
6401 represent: {
6402 lowercase: function(t) {
6403 return t ? "true" : "false";
6404 },
6405 uppercase: function(t) {
6406 return t ? "TRUE" : "FALSE";
6407 },
6408 camelcase: function(t) {
6409 return t ? "True" : "False";
6410 }
6411 },
6412 defaultStyle: "lowercase"
6413});
6414function og(t) {
6415 return 48 <= t && t <= 57 || 65 <= t && t <= 70 || 97 <= t && t <= 102;
6416}
6417function sg(t) {
6418 return 48 <= t && t <= 55;
6419}
6420function ag(t) {
6421 return 48 <= t && t <= 57;
6422}
6423function lg(t) {
6424 if (t === null)
6425 return !1;
6426 var e = t.length, i = 0, r = !1, n;
6427 if (!e)
6428 return !1;
6429 if (n = t[i], (n === "-" || n === "+") && (n = t[++i]), n === "0") {
6430 if (i + 1 === e)
6431 return !0;
6432 if (n = t[++i], n === "b") {
6433 for (i++; i < e; i++)
6434 if (n = t[i], n !== "_") {
6435 if (n !== "0" && n !== "1")
6436 return !1;
6437 r = !0;
6438 }
6439 return r && n !== "_";
6440 }
6441 if (n === "x") {
6442 for (i++; i < e; i++)
6443 if (n = t[i], n !== "_") {
6444 if (!og(t.charCodeAt(i)))
6445 return !1;
6446 r = !0;
6447 }
6448 return r && n !== "_";
6449 }
6450 if (n === "o") {
6451 for (i++; i < e; i++)
6452 if (n = t[i], n !== "_") {
6453 if (!sg(t.charCodeAt(i)))
6454 return !1;
6455 r = !0;
6456 }
6457 return r && n !== "_";
6458 }
6459 }
6460 if (n === "_")
6461 return !1;
6462 for (; i < e; i++)
6463 if (n = t[i], n !== "_") {
6464 if (!ag(t.charCodeAt(i)))
6465 return !1;
6466 r = !0;
6467 }
6468 return !(!r || n === "_");
6469}
6470function hg(t) {
6471 var e = t, i = 1, r;
6472 if (e.indexOf("_") !== -1 && (e = e.replace(/_/g, "")), r = e[0], (r === "-" || r === "+") && (r === "-" && (i = -1), e = e.slice(1), r = e[0]), e === "0")
6473 return 0;
6474 if (r === "0") {
6475 if (e[1] === "b")
6476 return i * parseInt(e.slice(2), 2);
6477 if (e[1] === "x")
6478 return i * parseInt(e.slice(2), 16);
6479 if (e[1] === "o")
6480 return i * parseInt(e.slice(2), 8);
6481 }
6482 return i * parseInt(e, 10);
6483}
6484function cg(t) {
6485 return Object.prototype.toString.call(t) === "[object Number]" && t % 1 === 0 && !J.isNegativeZero(t);
6486}
6487var ug = new Z("tag:yaml.org,2002:int", {
6488 kind: "scalar",
6489 resolve: lg,
6490 construct: hg,
6491 predicate: cg,
6492 represent: {
6493 binary: function(t) {
6494 return t >= 0 ? "0b" + t.toString(2) : "-0b" + t.toString(2).slice(1);
6495 },
6496 octal: function(t) {
6497 return t >= 0 ? "0o" + t.toString(8) : "-0o" + t.toString(8).slice(1);
6498 },
6499 decimal: function(t) {
6500 return t.toString(10);
6501 },
6502 /* eslint-disable max-len */
6503 hexadecimal: function(t) {
6504 return t >= 0 ? "0x" + t.toString(16).toUpperCase() : "-0x" + t.toString(16).toUpperCase().slice(1);
6505 }
6506 },
6507 defaultStyle: "decimal",
6508 styleAliases: {
6509 binary: [2, "bin"],
6510 octal: [8, "oct"],
6511 decimal: [10, "dec"],
6512 hexadecimal: [16, "hex"]
6513 }
6514}), fg = new RegExp(
6515 // 2.5e4, 2.5 and integers
6516 "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
6517);
6518function dg(t) {
6519 return !(t === null || !fg.test(t) || // Quick hack to not allow integers end with `_`
6520 // Probably should update regexp & check speed
6521 t[t.length - 1] === "_");
6522}
6523function pg(t) {
6524 var e, i;
6525 return e = t.replace(/_/g, "").toLowerCase(), i = e[0] === "-" ? -1 : 1, "+-".indexOf(e[0]) >= 0 && (e = e.slice(1)), e === ".inf" ? i === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : e === ".nan" ? NaN : i * parseFloat(e, 10);
6526}
6527var gg = /^[-+]?[0-9]+e/;
6528function mg(t, e) {
6529 var i;
6530 if (isNaN(t))
6531 switch (e) {
6532 case "lowercase":
6533 return ".nan";
6534 case "uppercase":
6535 return ".NAN";
6536 case "camelcase":
6537 return ".NaN";
6538 }
6539 else if (Number.POSITIVE_INFINITY === t)
6540 switch (e) {
6541 case "lowercase":
6542 return ".inf";
6543 case "uppercase":
6544 return ".INF";
6545 case "camelcase":
6546 return ".Inf";
6547 }
6548 else if (Number.NEGATIVE_INFINITY === t)
6549 switch (e) {
6550 case "lowercase":
6551 return "-.inf";
6552 case "uppercase":
6553 return "-.INF";
6554 case "camelcase":
6555 return "-.Inf";
6556 }
6557 else if (J.isNegativeZero(t))
6558 return "-0.0";
6559 return i = t.toString(10), gg.test(i) ? i.replace("e", ".e") : i;
6560}
6561function _g(t) {
6562 return Object.prototype.toString.call(t) === "[object Number]" && (t % 1 !== 0 || J.isNegativeZero(t));
6563}
6564var yg = new Z("tag:yaml.org,2002:float", {
6565 kind: "scalar",
6566 resolve: dg,
6567 construct: pg,
6568 predicate: _g,
6569 represent: mg,
6570 defaultStyle: "lowercase"
6571}), Cg = Ia.extend({
6572 implicit: [
6573 tg,
6574 ng,
6575 ug,
6576 yg
6577 ]
6578}), xg = Cg, Da = new RegExp(
6579 "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
6580), Na = new RegExp(
6581 "^([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]))?))?$"
6582);
6583function bg(t) {
6584 return t === null ? !1 : Da.exec(t) !== null || Na.exec(t) !== null;
6585}
6586function Tg(t) {
6587 var e, i, r, n, o, s, a, l = 0, h = null, c, u, g;
6588 if (e = Da.exec(t), e === null && (e = Na.exec(t)), e === null)
6589 throw new Error("Date resolve error");
6590 if (i = +e[1], r = +e[2] - 1, n = +e[3], !e[4])
6591 return new Date(Date.UTC(i, r, n));
6592 if (o = +e[4], s = +e[5], a = +e[6], e[7]) {
6593 for (l = e[7].slice(0, 3); l.length < 3; )
6594 l += "0";
6595 l = +l;
6596 }
6597 return e[9] && (c = +e[10], u = +(e[11] || 0), h = (c * 60 + u) * 6e4, e[9] === "-" && (h = -h)), g = new Date(Date.UTC(i, r, n, o, s, a, l)), h && g.setTime(g.getTime() - h), g;
6598}
6599function Sg(t) {
6600 return t.toISOString();
6601}
6602var vg = new Z("tag:yaml.org,2002:timestamp", {
6603 kind: "scalar",
6604 resolve: bg,
6605 construct: Tg,
6606 instanceOf: Date,
6607 represent: Sg
6608});
6609function kg(t) {
6610 return t === "<<" || t === null;
6611}
6612var wg = new Z("tag:yaml.org,2002:merge", {
6613 kind: "scalar",
6614 resolve: kg
6615}), Wn = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
6616\r`;
6617function Bg(t) {
6618 if (t === null)
6619 return !1;
6620 var e, i, r = 0, n = t.length, o = Wn;
6621 for (i = 0; i < n; i++)
6622 if (e = o.indexOf(t.charAt(i)), !(e > 64)) {
6623 if (e < 0)
6624 return !1;
6625 r += 6;
6626 }
6627 return r % 8 === 0;
6628}
6629function Fg(t) {
6630 var e, i, r = t.replace(/[\r\n=]/g, ""), n = r.length, o = Wn, s = 0, a = [];
6631 for (e = 0; e < n; e++)
6632 e % 4 === 0 && e && (a.push(s >> 16 & 255), a.push(s >> 8 & 255), a.push(s & 255)), s = s << 6 | o.indexOf(r.charAt(e));
6633 return i = n % 4 * 6, i === 0 ? (a.push(s >> 16 & 255), a.push(s >> 8 & 255), a.push(s & 255)) : i === 18 ? (a.push(s >> 10 & 255), a.push(s >> 2 & 255)) : i === 12 && a.push(s >> 4 & 255), new Uint8Array(a);
6634}
6635function Lg(t) {
6636 var e = "", i = 0, r, n, o = t.length, s = Wn;
6637 for (r = 0; r < o; r++)
6638 r % 3 === 0 && r && (e += s[i >> 18 & 63], e += s[i >> 12 & 63], e += s[i >> 6 & 63], e += s[i & 63]), i = (i << 8) + t[r];
6639 return n = o % 3, n === 0 ? (e += s[i >> 18 & 63], e += s[i >> 12 & 63], e += s[i >> 6 & 63], e += s[i & 63]) : n === 2 ? (e += s[i >> 10 & 63], e += s[i >> 4 & 63], e += s[i << 2 & 63], e += s[64]) : n === 1 && (e += s[i >> 2 & 63], e += s[i << 4 & 63], e += s[64], e += s[64]), e;
6640}
6641function Ag(t) {
6642 return Object.prototype.toString.call(t) === "[object Uint8Array]";
6643}
6644var Eg = new Z("tag:yaml.org,2002:binary", {
6645 kind: "scalar",
6646 resolve: Bg,
6647 construct: Fg,
6648 predicate: Ag,
6649 represent: Lg
6650}), Mg = Object.prototype.hasOwnProperty, Og = Object.prototype.toString;
6651function $g(t) {
6652 if (t === null)
6653 return !0;
6654 var e = [], i, r, n, o, s, a = t;
6655 for (i = 0, r = a.length; i < r; i += 1) {
6656 if (n = a[i], s = !1, Og.call(n) !== "[object Object]")
6657 return !1;
6658 for (o in n)
6659 if (Mg.call(n, o))
6660 if (!s)
6661 s = !0;
6662 else
6663 return !1;
6664 if (!s)
6665 return !1;
6666 if (e.indexOf(o) === -1)
6667 e.push(o);
6668 else
6669 return !1;
6670 }
6671 return !0;
6672}
6673function Ig(t) {
6674 return t !== null ? t : [];
6675}
6676var Dg = new Z("tag:yaml.org,2002:omap", {
6677 kind: "sequence",
6678 resolve: $g,
6679 construct: Ig
6680}), Ng = Object.prototype.toString;
6681function Rg(t) {
6682 if (t === null)
6683 return !0;
6684 var e, i, r, n, o, s = t;
6685 for (o = new Array(s.length), e = 0, i = s.length; e < i; e += 1) {
6686 if (r = s[e], Ng.call(r) !== "[object Object]" || (n = Object.keys(r), n.length !== 1))
6687 return !1;
6688 o[e] = [n[0], r[n[0]]];
6689 }
6690 return !0;
6691}
6692function qg(t) {
6693 if (t === null)
6694 return [];
6695 var e, i, r, n, o, s = t;
6696 for (o = new Array(s.length), e = 0, i = s.length; e < i; e += 1)
6697 r = s[e], n = Object.keys(r), o[e] = [n[0], r[n[0]]];
6698 return o;
6699}
6700var Pg = new Z("tag:yaml.org,2002:pairs", {
6701 kind: "sequence",
6702 resolve: Rg,
6703 construct: qg
6704}), zg = Object.prototype.hasOwnProperty;
6705function Wg(t) {
6706 if (t === null)
6707 return !0;
6708 var e, i = t;
6709 for (e in i)
6710 if (zg.call(i, e) && i[e] !== null)
6711 return !1;
6712 return !0;
6713}
6714function Hg(t) {
6715 return t !== null ? t : {};
6716}
6717var jg = new Z("tag:yaml.org,2002:set", {
6718 kind: "mapping",
6719 resolve: Wg,
6720 construct: Hg
6721}), Ug = xg.extend({
6722 implicit: [
6723 vg,
6724 wg
6725 ],
6726 explicit: [
6727 Eg,
6728 Dg,
6729 Pg,
6730 jg
6731 ]
6732}), Pt = Object.prototype.hasOwnProperty, Zi = 1, Ra = 2, qa = 3, Ji = 4, Zr = 1, Yg = 2, ns = 3, Gg = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, Vg = /[\x85\u2028\u2029]/, Xg = /[,\[\]\{\}]/, Pa = /^(?:!|!!|![a-z\-]+!)$/i, za = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
6733function os(t) {
6734 return Object.prototype.toString.call(t);
6735}
6736function bt(t) {
6737 return t === 10 || t === 13;
6738}
6739function Zt(t) {
6740 return t === 9 || t === 32;
6741}
6742function rt(t) {
6743 return t === 9 || t === 32 || t === 10 || t === 13;
6744}
6745function _e(t) {
6746 return t === 44 || t === 91 || t === 93 || t === 123 || t === 125;
6747}
6748function Kg(t) {
6749 var e;
6750 return 48 <= t && t <= 57 ? t - 48 : (e = t | 32, 97 <= e && e <= 102 ? e - 97 + 10 : -1);
6751}
6752function Zg(t) {
6753 return t === 120 ? 2 : t === 117 ? 4 : t === 85 ? 8 : 0;
6754}
6755function Jg(t) {
6756 return 48 <= t && t <= 57 ? t - 48 : -1;
6757}
6758function ss(t) {
6759 return t === 48 ? "\0" : t === 97 ? "\x07" : t === 98 ? "\b" : t === 116 || t === 9 ? " " : t === 110 ? `
6760` : t === 118 ? "\v" : t === 102 ? "\f" : t === 114 ? "\r" : t === 101 ? "\x1B" : t === 32 ? " " : t === 34 ? '"' : t === 47 ? "/" : t === 92 ? "\\" : t === 78 ? "…" : t === 95 ? " " : t === 76 ? "\u2028" : t === 80 ? "\u2029" : "";
6761}
6762function Qg(t) {
6763 return t <= 65535 ? String.fromCharCode(t) : String.fromCharCode(
6764 (t - 65536 >> 10) + 55296,
6765 (t - 65536 & 1023) + 56320
6766 );
6767}
6768var Wa = new Array(256), Ha = new Array(256);
6769for (var fe = 0; fe < 256; fe++)
6770 Wa[fe] = ss(fe) ? 1 : 0, Ha[fe] = ss(fe);
6771function tm(t, e) {
6772 this.input = t, this.filename = e.filename || null, this.schema = e.schema || Ug, this.onWarning = e.onWarning || null, this.legacy = e.legacy || !1, this.json = e.json || !1, this.listener = e.listener || null, this.implicitTypes = this.schema.compiledImplicit, this.typeMap = this.schema.compiledTypeMap, this.length = t.length, this.position = 0, this.line = 0, this.lineStart = 0, this.lineIndent = 0, this.firstTabInLine = -1, this.documents = [];
6773}
6774function ja(t, e) {
6775 var i = {
6776 name: t.filename,
6777 buffer: t.input.slice(0, -1),
6778 // omit trailing \0
6779 position: t.position,
6780 line: t.line,
6781 column: t.position - t.lineStart
6782 };
6783 return i.snippet = zp(i), new Ft(e, i);
6784}
6785function k(t, e) {
6786 throw ja(t, e);
6787}
6788function Qi(t, e) {
6789 t.onWarning && t.onWarning.call(null, ja(t, e));
6790}
6791var as = {
6792 YAML: function(e, i, r) {
6793 var n, o, s;
6794 e.version !== null && k(e, "duplication of %YAML directive"), r.length !== 1 && k(e, "YAML directive accepts exactly one argument"), n = /^([0-9]+)\.([0-9]+)$/.exec(r[0]), n === null && k(e, "ill-formed argument of the YAML directive"), o = parseInt(n[1], 10), s = parseInt(n[2], 10), o !== 1 && k(e, "unacceptable YAML version of the document"), e.version = r[0], e.checkLineBreaks = s < 2, s !== 1 && s !== 2 && Qi(e, "unsupported YAML version of the document");
6795 },
6796 TAG: function(e, i, r) {
6797 var n, o;
6798 r.length !== 2 && k(e, "TAG directive accepts exactly two arguments"), n = r[0], o = r[1], Pa.test(n) || k(e, "ill-formed tag handle (first argument) of the TAG directive"), Pt.call(e.tagMap, n) && k(e, 'there is a previously declared suffix for "' + n + '" tag handle'), za.test(o) || k(e, "ill-formed tag prefix (second argument) of the TAG directive");
6799 try {
6800 o = decodeURIComponent(o);
6801 } catch {
6802 k(e, "tag prefix is malformed: " + o);
6803 }
6804 e.tagMap[n] = o;
6805 }
6806};
6807function Rt(t, e, i, r) {
6808 var n, o, s, a;
6809 if (e < i) {
6810 if (a = t.input.slice(e, i), r)
6811 for (n = 0, o = a.length; n < o; n += 1)
6812 s = a.charCodeAt(n), s === 9 || 32 <= s && s <= 1114111 || k(t, "expected valid JSON character");
6813 else
6814 Gg.test(a) && k(t, "the stream contains non-printable characters");
6815 t.result += a;
6816 }
6817}
6818function ls(t, e, i, r) {
6819 var n, o, s, a;
6820 for (J.isObject(i) || k(t, "cannot merge mappings; the provided source object is unacceptable"), n = Object.keys(i), s = 0, a = n.length; s < a; s += 1)
6821 o = n[s], Pt.call(e, o) || (e[o] = i[o], r[o] = !0);
6822}
6823function ye(t, e, i, r, n, o, s, a, l) {
6824 var h, c;
6825 if (Array.isArray(n))
6826 for (n = Array.prototype.slice.call(n), h = 0, c = n.length; h < c; h += 1)
6827 Array.isArray(n[h]) && k(t, "nested arrays are not supported inside keys"), typeof n == "object" && os(n[h]) === "[object Object]" && (n[h] = "[object Object]");
6828 if (typeof n == "object" && os(n) === "[object Object]" && (n = "[object Object]"), n = String(n), e === null && (e = {}), r === "tag:yaml.org,2002:merge")
6829 if (Array.isArray(o))
6830 for (h = 0, c = o.length; h < c; h += 1)
6831 ls(t, e, o[h], i);
6832 else
6833 ls(t, e, o, i);
6834 else
6835 !t.json && !Pt.call(i, n) && Pt.call(e, n) && (t.line = s || t.line, t.lineStart = a || t.lineStart, t.position = l || t.position, k(t, "duplicated mapping key")), n === "__proto__" ? Object.defineProperty(e, n, {
6836 configurable: !0,
6837 enumerable: !0,
6838 writable: !0,
6839 value: o
6840 }) : e[n] = o, delete i[n];
6841 return e;
6842}
6843function Hn(t) {
6844 var e;
6845 e = t.input.charCodeAt(t.position), e === 10 ? t.position++ : e === 13 ? (t.position++, t.input.charCodeAt(t.position) === 10 && t.position++) : k(t, "a line break is expected"), t.line += 1, t.lineStart = t.position, t.firstTabInLine = -1;
6846}
6847function W(t, e, i) {
6848 for (var r = 0, n = t.input.charCodeAt(t.position); n !== 0; ) {
6849 for (; Zt(n); )
6850 n === 9 && t.firstTabInLine === -1 && (t.firstTabInLine = t.position), n = t.input.charCodeAt(++t.position);
6851 if (e && n === 35)
6852 do
6853 n = t.input.charCodeAt(++t.position);
6854 while (n !== 10 && n !== 13 && n !== 0);
6855 if (bt(n))
6856 for (Hn(t), n = t.input.charCodeAt(t.position), r++, t.lineIndent = 0; n === 32; )
6857 t.lineIndent++, n = t.input.charCodeAt(++t.position);
6858 else
6859 break;
6860 }
6861 return i !== -1 && r !== 0 && t.lineIndent < i && Qi(t, "deficient indentation"), r;
6862}
6863function yr(t) {
6864 var e = t.position, i;
6865 return i = t.input.charCodeAt(e), !!((i === 45 || i === 46) && i === t.input.charCodeAt(e + 1) && i === t.input.charCodeAt(e + 2) && (e += 3, i = t.input.charCodeAt(e), i === 0 || rt(i)));
6866}
6867function jn(t, e) {
6868 e === 1 ? t.result += " " : e > 1 && (t.result += J.repeat(`
6869`, e - 1));
6870}
6871function em(t, e, i) {
6872 var r, n, o, s, a, l, h, c, u = t.kind, g = t.result, p;
6873 if (p = t.input.charCodeAt(t.position), rt(p) || _e(p) || p === 35 || p === 38 || p === 42 || p === 33 || p === 124 || p === 62 || p === 39 || p === 34 || p === 37 || p === 64 || p === 96 || (p === 63 || p === 45) && (n = t.input.charCodeAt(t.position + 1), rt(n) || i && _e(n)))
6874 return !1;
6875 for (t.kind = "scalar", t.result = "", o = s = t.position, a = !1; p !== 0; ) {
6876 if (p === 58) {
6877 if (n = t.input.charCodeAt(t.position + 1), rt(n) || i && _e(n))
6878 break;
6879 } else if (p === 35) {
6880 if (r = t.input.charCodeAt(t.position - 1), rt(r))
6881 break;
6882 } else {
6883 if (t.position === t.lineStart && yr(t) || i && _e(p))
6884 break;
6885 if (bt(p))
6886 if (l = t.line, h = t.lineStart, c = t.lineIndent, W(t, !1, -1), t.lineIndent >= e) {
6887 a = !0, p = t.input.charCodeAt(t.position);
6888 continue;
6889 } else {
6890 t.position = s, t.line = l, t.lineStart = h, t.lineIndent = c;
6891 break;
6892 }
6893 }
6894 a && (Rt(t, o, s, !1), jn(t, t.line - l), o = s = t.position, a = !1), Zt(p) || (s = t.position + 1), p = t.input.charCodeAt(++t.position);
6895 }
6896 return Rt(t, o, s, !1), t.result ? !0 : (t.kind = u, t.result = g, !1);
6897}
6898function im(t, e) {
6899 var i, r, n;
6900 if (i = t.input.charCodeAt(t.position), i !== 39)
6901 return !1;
6902 for (t.kind = "scalar", t.result = "", t.position++, r = n = t.position; (i = t.input.charCodeAt(t.position)) !== 0; )
6903 if (i === 39)
6904 if (Rt(t, r, t.position, !0), i = t.input.charCodeAt(++t.position), i === 39)
6905 r = t.position, t.position++, n = t.position;
6906 else
6907 return !0;
6908 else
6909 bt(i) ? (Rt(t, r, n, !0), jn(t, W(t, !1, e)), r = n = t.position) : t.position === t.lineStart && yr(t) ? k(t, "unexpected end of the document within a single quoted scalar") : (t.position++, n = t.position);
6910 k(t, "unexpected end of the stream within a single quoted scalar");
6911}
6912function rm(t, e) {
6913 var i, r, n, o, s, a;
6914 if (a = t.input.charCodeAt(t.position), a !== 34)
6915 return !1;
6916 for (t.kind = "scalar", t.result = "", t.position++, i = r = t.position; (a = t.input.charCodeAt(t.position)) !== 0; ) {
6917 if (a === 34)
6918 return Rt(t, i, t.position, !0), t.position++, !0;
6919 if (a === 92) {
6920 if (Rt(t, i, t.position, !0), a = t.input.charCodeAt(++t.position), bt(a))
6921 W(t, !1, e);
6922 else if (a < 256 && Wa[a])
6923 t.result += Ha[a], t.position++;
6924 else if ((s = Zg(a)) > 0) {
6925 for (n = s, o = 0; n > 0; n--)
6926 a = t.input.charCodeAt(++t.position), (s = Kg(a)) >= 0 ? o = (o << 4) + s : k(t, "expected hexadecimal character");
6927 t.result += Qg(o), t.position++;
6928 } else
6929 k(t, "unknown escape sequence");
6930 i = r = t.position;
6931 } else
6932 bt(a) ? (Rt(t, i, r, !0), jn(t, W(t, !1, e)), i = r = t.position) : t.position === t.lineStart && yr(t) ? k(t, "unexpected end of the document within a double quoted scalar") : (t.position++, r = t.position);
6933 }
6934 k(t, "unexpected end of the stream within a double quoted scalar");
6935}
6936function nm(t, e) {
6937 var i = !0, r, n, o, s = t.tag, a, l = t.anchor, h, c, u, g, p, _ = /* @__PURE__ */ Object.create(null), T, B, A, C;
6938 if (C = t.input.charCodeAt(t.position), C === 91)
6939 c = 93, p = !1, a = [];
6940 else if (C === 123)
6941 c = 125, p = !0, a = {};
6942 else
6943 return !1;
6944 for (t.anchor !== null && (t.anchorMap[t.anchor] = a), C = t.input.charCodeAt(++t.position); C !== 0; ) {
6945 if (W(t, !0, e), C = t.input.charCodeAt(t.position), C === c)
6946 return t.position++, t.tag = s, t.anchor = l, t.kind = p ? "mapping" : "sequence", t.result = a, !0;
6947 i ? C === 44 && k(t, "expected the node content, but found ','") : k(t, "missed comma between flow collection entries"), B = T = A = null, u = g = !1, C === 63 && (h = t.input.charCodeAt(t.position + 1), rt(h) && (u = g = !0, t.position++, W(t, !0, e))), r = t.line, n = t.lineStart, o = t.position, Se(t, e, Zi, !1, !0), B = t.tag, T = t.result, W(t, !0, e), C = t.input.charCodeAt(t.position), (g || t.line === r) && C === 58 && (u = !0, C = t.input.charCodeAt(++t.position), W(t, !0, e), Se(t, e, Zi, !1, !0), A = t.result), p ? ye(t, a, _, B, T, A, r, n, o) : u ? a.push(ye(t, null, _, B, T, A, r, n, o)) : a.push(T), W(t, !0, e), C = t.input.charCodeAt(t.position), C === 44 ? (i = !0, C = t.input.charCodeAt(++t.position)) : i = !1;
6948 }
6949 k(t, "unexpected end of the stream within a flow collection");
6950}
6951function om(t, e) {
6952 var i, r, n = Zr, o = !1, s = !1, a = e, l = 0, h = !1, c, u;
6953 if (u = t.input.charCodeAt(t.position), u === 124)
6954 r = !1;
6955 else if (u === 62)
6956 r = !0;
6957 else
6958 return !1;
6959 for (t.kind = "scalar", t.result = ""; u !== 0; )
6960 if (u = t.input.charCodeAt(++t.position), u === 43 || u === 45)
6961 Zr === n ? n = u === 43 ? ns : Yg : k(t, "repeat of a chomping mode identifier");
6962 else if ((c = Jg(u)) >= 0)
6963 c === 0 ? k(t, "bad explicit indentation width of a block scalar; it cannot be less than one") : s ? k(t, "repeat of an indentation width identifier") : (a = e + c - 1, s = !0);
6964 else
6965 break;
6966 if (Zt(u)) {
6967 do
6968 u = t.input.charCodeAt(++t.position);
6969 while (Zt(u));
6970 if (u === 35)
6971 do
6972 u = t.input.charCodeAt(++t.position);
6973 while (!bt(u) && u !== 0);
6974 }
6975 for (; u !== 0; ) {
6976 for (Hn(t), t.lineIndent = 0, u = t.input.charCodeAt(t.position); (!s || t.lineIndent < a) && u === 32; )
6977 t.lineIndent++, u = t.input.charCodeAt(++t.position);
6978 if (!s && t.lineIndent > a && (a = t.lineIndent), bt(u)) {
6979 l++;
6980 continue;
6981 }
6982 if (t.lineIndent < a) {
6983 n === ns ? t.result += J.repeat(`
6984`, o ? 1 + l : l) : n === Zr && o && (t.result += `
6985`);
6986 break;
6987 }
6988 for (r ? Zt(u) ? (h = !0, t.result += J.repeat(`
6989`, o ? 1 + l : l)) : h ? (h = !1, t.result += J.repeat(`
6990`, l + 1)) : l === 0 ? o && (t.result += " ") : t.result += J.repeat(`
6991`, l) : t.result += J.repeat(`
6992`, o ? 1 + l : l), o = !0, s = !0, l = 0, i = t.position; !bt(u) && u !== 0; )
6993 u = t.input.charCodeAt(++t.position);
6994 Rt(t, i, t.position, !1);
6995 }
6996 return !0;
6997}
6998function hs(t, e) {
6999 var i, r = t.tag, n = t.anchor, o = [], s, a = !1, l;
7000 if (t.firstTabInLine !== -1)
7001 return !1;
7002 for (t.anchor !== null && (t.anchorMap[t.anchor] = o), l = t.input.charCodeAt(t.position); l !== 0 && (t.firstTabInLine !== -1 && (t.position = t.firstTabInLine, k(t, "tab characters must not be used in indentation")), !(l !== 45 || (s = t.input.charCodeAt(t.position + 1), !rt(s)))); ) {
7003 if (a = !0, t.position++, W(t, !0, -1) && t.lineIndent <= e) {
7004 o.push(null), l = t.input.charCodeAt(t.position);
7005 continue;
7006 }
7007 if (i = t.line, Se(t, e, qa, !1, !0), o.push(t.result), W(t, !0, -1), l = t.input.charCodeAt(t.position), (t.line === i || t.lineIndent > e) && l !== 0)
7008 k(t, "bad indentation of a sequence entry");
7009 else if (t.lineIndent < e)
7010 break;
7011 }
7012 return a ? (t.tag = r, t.anchor = n, t.kind = "sequence", t.result = o, !0) : !1;
7013}
7014function sm(t, e, i) {
7015 var r, n, o, s, a, l, h = t.tag, c = t.anchor, u = {}, g = /* @__PURE__ */ Object.create(null), p = null, _ = null, T = null, B = !1, A = !1, C;
7016 if (t.firstTabInLine !== -1)
7017 return !1;
7018 for (t.anchor !== null && (t.anchorMap[t.anchor] = u), C = t.input.charCodeAt(t.position); C !== 0; ) {
7019 if (!B && t.firstTabInLine !== -1 && (t.position = t.firstTabInLine, k(t, "tab characters must not be used in indentation")), r = t.input.charCodeAt(t.position + 1), o = t.line, (C === 63 || C === 58) && rt(r))
7020 C === 63 ? (B && (ye(t, u, g, p, _, null, s, a, l), p = _ = T = null), A = !0, B = !0, n = !0) : B ? (B = !1, n = !0) : k(t, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"), t.position += 1, C = r;
7021 else {
7022 if (s = t.line, a = t.lineStart, l = t.position, !Se(t, i, Ra, !1, !0))
7023 break;
7024 if (t.line === o) {
7025 for (C = t.input.charCodeAt(t.position); Zt(C); )
7026 C = t.input.charCodeAt(++t.position);
7027 if (C === 58)
7028 C = t.input.charCodeAt(++t.position), rt(C) || k(t, "a whitespace character is expected after the key-value separator within a block mapping"), B && (ye(t, u, g, p, _, null, s, a, l), p = _ = T = null), A = !0, B = !1, n = !1, p = t.tag, _ = t.result;
7029 else if (A)
7030 k(t, "can not read an implicit mapping pair; a colon is missed");
7031 else
7032 return t.tag = h, t.anchor = c, !0;
7033 } else if (A)
7034 k(t, "can not read a block mapping entry; a multiline key may not be an implicit key");
7035 else
7036 return t.tag = h, t.anchor = c, !0;
7037 }
7038 if ((t.line === o || t.lineIndent > e) && (B && (s = t.line, a = t.lineStart, l = t.position), Se(t, e, Ji, !0, n) && (B ? _ = t.result : T = t.result), B || (ye(t, u, g, p, _, T, s, a, l), p = _ = T = null), W(t, !0, -1), C = t.input.charCodeAt(t.position)), (t.line === o || t.lineIndent > e) && C !== 0)
7039 k(t, "bad indentation of a mapping entry");
7040 else if (t.lineIndent < e)
7041 break;
7042 }
7043 return B && ye(t, u, g, p, _, null, s, a, l), A && (t.tag = h, t.anchor = c, t.kind = "mapping", t.result = u), A;
7044}
7045function am(t) {
7046 var e, i = !1, r = !1, n, o, s;
7047 if (s = t.input.charCodeAt(t.position), s !== 33)
7048 return !1;
7049 if (t.tag !== null && k(t, "duplication of a tag property"), s = t.input.charCodeAt(++t.position), s === 60 ? (i = !0, s = t.input.charCodeAt(++t.position)) : s === 33 ? (r = !0, n = "!!", s = t.input.charCodeAt(++t.position)) : n = "!", e = t.position, i) {
7050 do
7051 s = t.input.charCodeAt(++t.position);
7052 while (s !== 0 && s !== 62);
7053 t.position < t.length ? (o = t.input.slice(e, t.position), s = t.input.charCodeAt(++t.position)) : k(t, "unexpected end of the stream within a verbatim tag");
7054 } else {
7055 for (; s !== 0 && !rt(s); )
7056 s === 33 && (r ? k(t, "tag suffix cannot contain exclamation marks") : (n = t.input.slice(e - 1, t.position + 1), Pa.test(n) || k(t, "named tag handle cannot contain such characters"), r = !0, e = t.position + 1)), s = t.input.charCodeAt(++t.position);
7057 o = t.input.slice(e, t.position), Xg.test(o) && k(t, "tag suffix cannot contain flow indicator characters");
7058 }
7059 o && !za.test(o) && k(t, "tag name cannot contain such characters: " + o);
7060 try {
7061 o = decodeURIComponent(o);
7062 } catch {
7063 k(t, "tag name is malformed: " + o);
7064 }
7065 return i ? t.tag = o : Pt.call(t.tagMap, n) ? t.tag = t.tagMap[n] + o : n === "!" ? t.tag = "!" + o : n === "!!" ? t.tag = "tag:yaml.org,2002:" + o : k(t, 'undeclared tag handle "' + n + '"'), !0;
7066}
7067function lm(t) {
7068 var e, i;
7069 if (i = t.input.charCodeAt(t.position), i !== 38)
7070 return !1;
7071 for (t.anchor !== null && k(t, "duplication of an anchor property"), i = t.input.charCodeAt(++t.position), e = t.position; i !== 0 && !rt(i) && !_e(i); )
7072 i = t.input.charCodeAt(++t.position);
7073 return t.position === e && k(t, "name of an anchor node must contain at least one character"), t.anchor = t.input.slice(e, t.position), !0;
7074}
7075function hm(t) {
7076 var e, i, r;
7077 if (r = t.input.charCodeAt(t.position), r !== 42)
7078 return !1;
7079 for (r = t.input.charCodeAt(++t.position), e = t.position; r !== 0 && !rt(r) && !_e(r); )
7080 r = t.input.charCodeAt(++t.position);
7081 return t.position === e && k(t, "name of an alias node must contain at least one character"), i = t.input.slice(e, t.position), Pt.call(t.anchorMap, i) || k(t, 'unidentified alias "' + i + '"'), t.result = t.anchorMap[i], W(t, !0, -1), !0;
7082}
7083function Se(t, e, i, r, n) {
7084 var o, s, a, l = 1, h = !1, c = !1, u, g, p, _, T, B;
7085 if (t.listener !== null && t.listener("open", t), t.tag = null, t.anchor = null, t.kind = null, t.result = null, o = s = a = Ji === i || qa === i, r && W(t, !0, -1) && (h = !0, t.lineIndent > e ? l = 1 : t.lineIndent === e ? l = 0 : t.lineIndent < e && (l = -1)), l === 1)
7086 for (; am(t) || lm(t); )
7087 W(t, !0, -1) ? (h = !0, a = o, t.lineIndent > e ? l = 1 : t.lineIndent === e ? l = 0 : t.lineIndent < e && (l = -1)) : a = !1;
7088 if (a && (a = h || n), (l === 1 || Ji === i) && (Zi === i || Ra === i ? T = e : T = e + 1, B = t.position - t.lineStart, l === 1 ? a && (hs(t, B) || sm(t, B, T)) || nm(t, T) ? c = !0 : (s && om(t, T) || im(t, T) || rm(t, T) ? c = !0 : hm(t) ? (c = !0, (t.tag !== null || t.anchor !== null) && k(t, "alias node should not have any properties")) : em(t, T, Zi === i) && (c = !0, t.tag === null && (t.tag = "?")), t.anchor !== null && (t.anchorMap[t.anchor] = t.result)) : l === 0 && (c = a && hs(t, B))), t.tag === null)
7089 t.anchor !== null && (t.anchorMap[t.anchor] = t.result);
7090 else if (t.tag === "?") {
7091 for (t.result !== null && t.kind !== "scalar" && k(t, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + t.kind + '"'), u = 0, g = t.implicitTypes.length; u < g; u += 1)
7092 if (_ = t.implicitTypes[u], _.resolve(t.result)) {
7093 t.result = _.construct(t.result), t.tag = _.tag, t.anchor !== null && (t.anchorMap[t.anchor] = t.result);
7094 break;
7095 }
7096 } else if (t.tag !== "!") {
7097 if (Pt.call(t.typeMap[t.kind || "fallback"], t.tag))
7098 _ = t.typeMap[t.kind || "fallback"][t.tag];
7099 else
7100 for (_ = null, p = t.typeMap.multi[t.kind || "fallback"], u = 0, g = p.length; u < g; u += 1)
7101 if (t.tag.slice(0, p[u].tag.length) === p[u].tag) {
7102 _ = p[u];
7103 break;
7104 }
7105 _ || k(t, "unknown tag !<" + t.tag + ">"), t.result !== null && _.kind !== t.kind && k(t, "unacceptable node kind for !<" + t.tag + '> tag; it should be "' + _.kind + '", not "' + t.kind + '"'), _.resolve(t.result, t.tag) ? (t.result = _.construct(t.result, t.tag), t.anchor !== null && (t.anchorMap[t.anchor] = t.result)) : k(t, "cannot resolve a node with !<" + t.tag + "> explicit tag");
7106 }
7107 return t.listener !== null && t.listener("close", t), t.tag !== null || t.anchor !== null || c;
7108}
7109function cm(t) {
7110 var e = t.position, i, r, n, o = !1, s;
7111 for (t.version = null, t.checkLineBreaks = t.legacy, t.tagMap = /* @__PURE__ */ Object.create(null), t.anchorMap = /* @__PURE__ */ Object.create(null); (s = t.input.charCodeAt(t.position)) !== 0 && (W(t, !0, -1), s = t.input.charCodeAt(t.position), !(t.lineIndent > 0 || s !== 37)); ) {
7112 for (o = !0, s = t.input.charCodeAt(++t.position), i = t.position; s !== 0 && !rt(s); )
7113 s = t.input.charCodeAt(++t.position);
7114 for (r = t.input.slice(i, t.position), n = [], r.length < 1 && k(t, "directive name must not be less than one character in length"); s !== 0; ) {
7115 for (; Zt(s); )
7116 s = t.input.charCodeAt(++t.position);
7117 if (s === 35) {
7118 do
7119 s = t.input.charCodeAt(++t.position);
7120 while (s !== 0 && !bt(s));
7121 break;
7122 }
7123 if (bt(s))
7124 break;
7125 for (i = t.position; s !== 0 && !rt(s); )
7126 s = t.input.charCodeAt(++t.position);
7127 n.push(t.input.slice(i, t.position));
7128 }
7129 s !== 0 && Hn(t), Pt.call(as, r) ? as[r](t, r, n) : Qi(t, 'unknown document directive "' + r + '"');
7130 }
7131 if (W(t, !0, -1), t.lineIndent === 0 && t.input.charCodeAt(t.position) === 45 && t.input.charCodeAt(t.position + 1) === 45 && t.input.charCodeAt(t.position + 2) === 45 ? (t.position += 3, W(t, !0, -1)) : o && k(t, "directives end mark is expected"), Se(t, t.lineIndent - 1, Ji, !1, !0), W(t, !0, -1), t.checkLineBreaks && Vg.test(t.input.slice(e, t.position)) && Qi(t, "non-ASCII line breaks are interpreted as content"), t.documents.push(t.result), t.position === t.lineStart && yr(t)) {
7132 t.input.charCodeAt(t.position) === 46 && (t.position += 3, W(t, !0, -1));
7133 return;
7134 }
7135 if (t.position < t.length - 1)
7136 k(t, "end of the stream or a document separator is expected");
7137 else
7138 return;
7139}
7140function Ua(t, e) {
7141 t = String(t), e = e || {}, t.length !== 0 && (t.charCodeAt(t.length - 1) !== 10 && t.charCodeAt(t.length - 1) !== 13 && (t += `
7142`), t.charCodeAt(0) === 65279 && (t = t.slice(1)));
7143 var i = new tm(t, e), r = t.indexOf("\0");
7144 for (r !== -1 && (i.position = r, k(i, "null byte is not allowed in input")), i.input += "\0"; i.input.charCodeAt(i.position) === 32; )
7145 i.lineIndent += 1, i.position += 1;
7146 for (; i.position < i.length - 1; )
7147 cm(i);
7148 return i.documents;
7149}
7150function um(t, e, i) {
7151 e !== null && typeof e == "object" && typeof i > "u" && (i = e, e = null);
7152 var r = Ua(t, i);
7153 if (typeof e != "function")
7154 return r;
7155 for (var n = 0, o = r.length; n < o; n += 1)
7156 e(r[n]);
7157}
7158function fm(t, e) {
7159 var i = Ua(t, e);
7160 if (i.length !== 0) {
7161 if (i.length === 1)
7162 return i[0];
7163 throw new Ft("expected a single document in the stream, but found more");
7164 }
7165}
7166var dm = um, pm = fm, gm = {
7167 loadAll: dm,
7168 load: pm
7169}, mm = Ia, _m = gm.load;
7170const Ya = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
7171function ym(t, e) {
7172 var r, n;
7173 const i = t.match(Ya);
7174 if (i) {
7175 const o = _m(i[1], {
7176 // To keep things simple, only allow strings, arrays, and plain objects.
7177 // https://www.yaml.org/spec/1.2/spec.html#id2802346
7178 schema: mm
7179 });
7180 return o != null && o.title && ((r = e.setDiagramTitle) == null || r.call(e, o.title)), o != null && o.displayMode && ((n = e.setDisplayMode) == null || n.call(e, o.displayMode)), t.slice(i[0].length);
7181 } else
7182 return t;
7183}
7184const gn = function(t, e, i) {
7185 const { depth: r, clobber: n } = Object.assign({ depth: 2, clobber: !1 }, i);
7186 return Array.isArray(e) && !Array.isArray(t) ? (e.forEach((o) => gn(t, o, i)), t) : Array.isArray(e) && Array.isArray(t) ? (e.forEach((o) => {
7187 t.includes(o) || t.push(o);
7188 }), t) : t === void 0 || r <= 0 ? t != null && typeof t == "object" && typeof e == "object" ? Object.assign(t, e) : e : (e !== void 0 && typeof t == "object" && typeof e == "object" && Object.keys(e).forEach((o) => {
7189 typeof e[o] == "object" && (t[o] === void 0 || typeof t[o] == "object") ? (t[o] === void 0 && (t[o] = Array.isArray(e[o]) ? [] : {}), t[o] = gn(t[o], e[o], { depth: r - 1, clobber: n })) : (n || typeof t[o] != "object" && typeof e[o] != "object") && (t[o] = e[o]);
7190 }), t);
7191}, K = gn, Ze = Object.freeze(Fp);
7192let et = K({}, Ze), Ga, ve = [], He = K({}, Ze);
7193const Cr = (t, e) => {
7194 let i = K({}, t), r = {};
7195 for (const n of e)
7196 Xa(n), r = K(r, n);
7197 if (i = K(i, r), r.theme && r.theme in Lt) {
7198 const n = K({}, Ga), o = K(
7199 n.themeVariables || {},
7200 r.themeVariables
7201 );
7202 i.theme && i.theme in Lt && (i.themeVariables = Lt[i.theme].getThemeVariables(o));
7203 }
7204 return He = i, Ja(He), He;
7205}, Cm = (t) => (et = K({}, Ze), et = K(et, t), t.theme && Lt[t.theme] && (et.themeVariables = Lt[t.theme].getThemeVariables(t.themeVariables)), Cr(et, ve), et), xm = (t) => {
7206 Ga = K({}, t);
7207}, bm = (t) => (et = K(et, t), Cr(et, ve), et), Va = () => K({}, et), Tm = (t) => (Ja(t), K(He, t), Et()), Et = () => K({}, He), Xa = (t) => {
7208 ["secure", ...et.secure ?? []].forEach((e) => {
7209 t[e] !== void 0 && (b.debug(`Denied attempt to modify a secure key ${e}`, t[e]), delete t[e]);
7210 }), Object.keys(t).forEach((e) => {
7211 e.indexOf("__") === 0 && delete t[e];
7212 }), Object.keys(t).forEach((e) => {
7213 typeof t[e] == "string" && (t[e].includes("<") || t[e].includes(">") || t[e].includes("url(data:")) && delete t[e], typeof t[e] == "object" && Xa(t[e]);
7214 });
7215}, Ka = (t) => {
7216 t.fontFamily && (t.themeVariables ? t.themeVariables.fontFamily || (t.themeVariables = { fontFamily: t.fontFamily }) : t.themeVariables = { fontFamily: t.fontFamily }), ve.push(t), Cr(et, ve);
7217}, tr = (t = et) => {
7218 ve = [], Cr(t, ve);
7219};
7220var Za = /* @__PURE__ */ ((t) => (t.LAZY_LOAD_DEPRECATED = "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.", t))(Za || {});
7221const cs = {}, Sm = (t) => {
7222 cs[t] || (b.warn(Za[t]), cs[t] = !0);
7223}, Ja = (t) => {
7224 t && (t.lazyLoadedDiagrams || t.loadExternalDiagramsAtStartup) && Sm("LAZY_LOAD_DEPRECATED");
7225}, vm = function(t, e) {
7226 for (let i of e)
7227 t.attr(i[0], i[1]);
7228}, km = function(t, e, i) {
7229 let r = /* @__PURE__ */ new Map();
7230 return i ? (r.set("width", "100%"), r.set("style", `max-width: ${e}px;`)) : (r.set("height", t), r.set("width", e)), r;
7231}, wm = function(t, e, i, r) {
7232 const n = km(e, i, r);
7233 vm(t, n);
7234}, Bm = function(t, e, i, r) {
7235 const n = e.node().getBBox(), o = n.width, s = n.height;
7236 b.info(`SVG bounds: ${o}x${s}`, n);
7237 let a = 0, l = 0;
7238 b.info(`Graph bounds: ${a}x${l}`, t), a = o + i * 2, l = s + i * 2, b.info(`Calculated bounds: ${a}x${l}`), wm(e, l, a, r);
7239 const h = `${n.x - i} ${n.y - i} ${n.width + 2 * i} ${n.height + 2 * i}`;
7240 e.attr("viewBox", h);
7241}, $i = {}, Fm = (t, e, i) => {
7242 let r = "";
7243 return t in $i && $i[t] ? r = $i[t](i) : b.warn(`No theme found for ${t}`), ` & {
7244 font-family: ${i.fontFamily};
7245 font-size: ${i.fontSize};
7246 fill: ${i.textColor}
7247 }
7248
7249 /* Classes common for multiple diagrams */
7250
7251 & .error-icon {
7252 fill: ${i.errorBkgColor};
7253 }
7254 & .error-text {
7255 fill: ${i.errorTextColor};
7256 stroke: ${i.errorTextColor};
7257 }
7258
7259 & .edge-thickness-normal {
7260 stroke-width: 2px;
7261 }
7262 & .edge-thickness-thick {
7263 stroke-width: 3.5px
7264 }
7265 & .edge-pattern-solid {
7266 stroke-dasharray: 0;
7267 }
7268
7269 & .edge-pattern-dashed{
7270 stroke-dasharray: 3;
7271 }
7272 .edge-pattern-dotted {
7273 stroke-dasharray: 2;
7274 }
7275
7276 & .marker {
7277 fill: ${i.lineColor};
7278 stroke: ${i.lineColor};
7279 }
7280 & .marker.cross {
7281 stroke: ${i.lineColor};
7282 }
7283
7284 & svg {
7285 font-family: ${i.fontFamily};
7286 font-size: ${i.fontSize};
7287 }
7288
7289 ${r}
7290
7291 ${e}
7292`;
7293}, Lm = (t, e) => {
7294 $i[t] = e;
7295}, Am = Fm;
7296let Un = "", xr = "", Yn = "";
7297const Gn = (t) => Xe(t, Et()), Qa = function() {
7298 Un = "", Yn = "", xr = "";
7299}, tl = function(t) {
7300 Un = Gn(t).replace(/^\s+/g, "");
7301}, el = function() {
7302 return Un || xr;
7303}, il = function(t) {
7304 Yn = Gn(t).replace(/\n\s+/g, `
7305`);
7306}, rl = function() {
7307 return Yn;
7308}, nl = function(t) {
7309 xr = Gn(t);
7310}, ol = function() {
7311 return xr;
7312}, Em = {
7313 getAccTitle: el,
7314 setAccTitle: tl,
7315 getDiagramTitle: ol,
7316 setDiagramTitle: nl,
7317 getAccDescription: rl,
7318 setAccDescription: il,
7319 clear: Qa
7320}, Mm = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7321 __proto__: null,
7322 clear: Qa,
7323 default: Em,
7324 getAccDescription: rl,
7325 getAccTitle: el,
7326 getDiagramTitle: ol,
7327 setAccDescription: il,
7328 setAccTitle: tl,
7329 setDiagramTitle: nl
7330}, Symbol.toStringTag, { value: "Module" }));
7331let Yt = {};
7332const sl = function(t, e, i, r) {
7333 b.debug("parseDirective is being called", e, i, r);
7334 try {
7335 if (e !== void 0)
7336 switch (e = e.trim(), i) {
7337 case "open_directive":
7338 Yt = {};
7339 break;
7340 case "type_directive":
7341 if (!Yt)
7342 throw new Error("currentDirective is undefined");
7343 Yt.type = e.toLowerCase();
7344 break;
7345 case "arg_directive":
7346 if (!Yt)
7347 throw new Error("currentDirective is undefined");
7348 Yt.args = JSON.parse(e);
7349 break;
7350 case "close_directive":
7351 Om(t, Yt, r), Yt = void 0;
7352 break;
7353 }
7354 } catch (n) {
7355 b.error(
7356 `Error while rendering sequenceDiagram directive: ${e} jison context: ${i}`
7357 ), b.error(n.message);
7358 }
7359}, Om = function(t, e, i) {
7360 switch (b.info(`Directive type=${e.type} with args:`, e.args), e.type) {
7361 case "init":
7362 case "initialize": {
7363 ["config"].forEach((r) => {
7364 e.args[r] !== void 0 && (i === "flowchart-v2" && (i = "flowchart"), e.args[i] = e.args[r], delete e.args[r]);
7365 }), b.info("sanitize in handleDirective", e.args), we(e.args), b.info("sanitize in handleDirective (done)", e.args), Ka(e.args);
7366 break;
7367 }
7368 case "wrap":
7369 case "nowrap":
7370 t && t.setWrap && t.setWrap(e.type === "wrap");
7371 break;
7372 case "themeCss":
7373 b.warn("themeCss encountered");
7374 break;
7375 default:
7376 b.warn(
7377 `Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(
7378 e.args ? e.args : {}
7379 )}}%%`,
7380 e
7381 );
7382 break;
7383 }
7384}, $m = b, Im = Bn, al = Et, Dm = (t) => Xe(t, al()), Nm = Bm, Rm = () => Mm, qm = (t, e, i, r) => sl(t, e, i, r), er = {}, ir = (t, e, i) => {
7385 if (er[t])
7386 throw new Error(`Diagram ${t} already registered.`);
7387 er[t] = e, i && cl(t, i), Lm(t, e.styles), e.injectUtils && e.injectUtils(
7388 $m,
7389 Im,
7390 al,
7391 Dm,
7392 Nm,
7393 Rm(),
7394 qm
7395 );
7396}, Vn = (t) => {
7397 if (t in er)
7398 return er[t];
7399 throw new Error(`Diagram ${t} not found.`);
7400};
7401class ll extends Error {
7402 constructor(e) {
7403 super(e), this.name = "UnknownDiagramError";
7404 }
7405}
7406const Pm = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, zm = /\s*%%.*\n/gm, ke = {}, br = function(t, e) {
7407 t = t.replace(Ya, "").replace(Pm, "").replace(zm, `
7408`);
7409 for (const [i, { detector: r }] of Object.entries(ke))
7410 if (r(t, e))
7411 return i;
7412 throw new ll(
7413 `No diagram type detected matching given configuration for text: ${t}`
7414 );
7415}, hl = (...t) => {
7416 for (const { id: e, detector: i, loader: r } of t)
7417 cl(e, i, r);
7418}, Wm = async () => {
7419 b.debug("Loading registered diagrams");
7420 const e = (await Promise.allSettled(
7421 Object.entries(ke).map(async ([i, { detector: r, loader: n }]) => {
7422 if (n)
7423 try {
7424 Vn(i);
7425 } catch {
7426 try {
7427 const { diagram: s, id: a } = await n();
7428 ir(a, s, r);
7429 } catch (s) {
7430 throw b.error(`Failed to load external diagram with key ${i}. Removing from detectors.`), delete ke[i], s;
7431 }
7432 }
7433 })
7434 )).filter((i) => i.status === "rejected");
7435 if (e.length > 0) {
7436 b.error(`Failed to load ${e.length} external diagrams`);
7437 for (const i of e)
7438 b.error(i);
7439 throw new Error(`Failed to load ${e.length} external diagrams`);
7440 }
7441}, cl = (t, e, i) => {
7442 ke[t] ? b.error(`Detector with key ${t} already exists`) : ke[t] = { detector: e, loader: i }, b.debug(`Detector with key ${t} added${i ? " with loader" : ""}`);
7443}, Hm = (t) => ke[t].loader;
7444var jm = typeof global == "object" && global && global.Object === Object && global;
7445const ul = jm;
7446var Um = typeof self == "object" && self && self.Object === Object && self, Ym = ul || Um || Function("return this")();
7447const zt = Ym;
7448var Gm = zt.Symbol;
7449const rr = Gm;
7450var fl = Object.prototype, Vm = fl.hasOwnProperty, Xm = fl.toString, De = rr ? rr.toStringTag : void 0;
7451function Km(t) {
7452 var e = Vm.call(t, De), i = t[De];
7453 try {
7454 t[De] = void 0;
7455 var r = !0;
7456 } catch {
7457 }
7458 var n = Xm.call(t);
7459 return r && (e ? t[De] = i : delete t[De]), n;
7460}
7461var Zm = Object.prototype, Jm = Zm.toString;
7462function Qm(t) {
7463 return Jm.call(t);
7464}
7465var t0 = "[object Null]", e0 = "[object Undefined]", us = rr ? rr.toStringTag : void 0;
7466function ni(t) {
7467 return t == null ? t === void 0 ? e0 : t0 : us && us in Object(t) ? Km(t) : Qm(t);
7468}
7469function dl(t) {
7470 var e = typeof t;
7471 return t != null && (e == "object" || e == "function");
7472}
7473var i0 = "[object AsyncFunction]", r0 = "[object Function]", n0 = "[object GeneratorFunction]", o0 = "[object Proxy]";
7474function pl(t) {
7475 if (!dl(t))
7476 return !1;
7477 var e = ni(t);
7478 return e == r0 || e == n0 || e == i0 || e == o0;
7479}
7480var s0 = zt["__core-js_shared__"];
7481const Jr = s0;
7482var fs = function() {
7483 var t = /[^.]+$/.exec(Jr && Jr.keys && Jr.keys.IE_PROTO || "");
7484 return t ? "Symbol(src)_1." + t : "";
7485}();
7486function a0(t) {
7487 return !!fs && fs in t;
7488}
7489var l0 = Function.prototype, h0 = l0.toString;
7490function ie(t) {
7491 if (t != null) {
7492 try {
7493 return h0.call(t);
7494 } catch {
7495 }
7496 try {
7497 return t + "";
7498 } catch {
7499 }
7500 }
7501 return "";
7502}
7503var c0 = /[\\^$.*+?()[\]{}|]/g, u0 = /^\[object .+?Constructor\]$/, f0 = Function.prototype, d0 = Object.prototype, p0 = f0.toString, g0 = d0.hasOwnProperty, m0 = RegExp(
7504 "^" + p0.call(g0).replace(c0, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
7505);
7506function _0(t) {
7507 if (!dl(t) || a0(t))
7508 return !1;
7509 var e = pl(t) ? m0 : u0;
7510 return e.test(ie(t));
7511}
7512function y0(t, e) {
7513 return t == null ? void 0 : t[e];
7514}
7515function Fe(t, e) {
7516 var i = y0(t, e);
7517 return _0(i) ? i : void 0;
7518}
7519var C0 = Fe(Object, "create");
7520const Je = C0;
7521function x0() {
7522 this.__data__ = Je ? Je(null) : {}, this.size = 0;
7523}
7524function b0(t) {
7525 var e = this.has(t) && delete this.__data__[t];
7526 return this.size -= e ? 1 : 0, e;
7527}
7528var T0 = "__lodash_hash_undefined__", S0 = Object.prototype, v0 = S0.hasOwnProperty;
7529function k0(t) {
7530 var e = this.__data__;
7531 if (Je) {
7532 var i = e[t];
7533 return i === T0 ? void 0 : i;
7534 }
7535 return v0.call(e, t) ? e[t] : void 0;
7536}
7537var w0 = Object.prototype, B0 = w0.hasOwnProperty;
7538function F0(t) {
7539 var e = this.__data__;
7540 return Je ? e[t] !== void 0 : B0.call(e, t);
7541}
7542var L0 = "__lodash_hash_undefined__";
7543function A0(t, e) {
7544 var i = this.__data__;
7545 return this.size += this.has(t) ? 0 : 1, i[t] = Je && e === void 0 ? L0 : e, this;
7546}
7547function te(t) {
7548 var e = -1, i = t == null ? 0 : t.length;
7549 for (this.clear(); ++e < i; ) {
7550 var r = t[e];
7551 this.set(r[0], r[1]);
7552 }
7553}
7554te.prototype.clear = x0;
7555te.prototype.delete = b0;
7556te.prototype.get = k0;
7557te.prototype.has = F0;
7558te.prototype.set = A0;
7559function E0() {
7560 this.__data__ = [], this.size = 0;
7561}
7562function M0(t, e) {
7563 return t === e || t !== t && e !== e;
7564}
7565function Tr(t, e) {
7566 for (var i = t.length; i--; )
7567 if (M0(t[i][0], e))
7568 return i;
7569 return -1;
7570}
7571var O0 = Array.prototype, $0 = O0.splice;
7572function I0(t) {
7573 var e = this.__data__, i = Tr(e, t);
7574 if (i < 0)
7575 return !1;
7576 var r = e.length - 1;
7577 return i == r ? e.pop() : $0.call(e, i, 1), --this.size, !0;
7578}
7579function D0(t) {
7580 var e = this.__data__, i = Tr(e, t);
7581 return i < 0 ? void 0 : e[i][1];
7582}
7583function N0(t) {
7584 return Tr(this.__data__, t) > -1;
7585}
7586function R0(t, e) {
7587 var i = this.__data__, r = Tr(i, t);
7588 return r < 0 ? (++this.size, i.push([t, e])) : i[r][1] = e, this;
7589}
7590function Le(t) {
7591 var e = -1, i = t == null ? 0 : t.length;
7592 for (this.clear(); ++e < i; ) {
7593 var r = t[e];
7594 this.set(r[0], r[1]);
7595 }
7596}
7597Le.prototype.clear = E0;
7598Le.prototype.delete = I0;
7599Le.prototype.get = D0;
7600Le.prototype.has = N0;
7601Le.prototype.set = R0;
7602var q0 = Fe(zt, "Map");
7603const nr = q0;
7604function P0() {
7605 this.size = 0, this.__data__ = {
7606 hash: new te(),
7607 map: new (nr || Le)(),
7608 string: new te()
7609 };
7610}
7611function z0(t) {
7612 var e = typeof t;
7613 return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null;
7614}
7615function Sr(t, e) {
7616 var i = t.__data__;
7617 return z0(e) ? i[typeof e == "string" ? "string" : "hash"] : i.map;
7618}
7619function W0(t) {
7620 var e = Sr(this, t).delete(t);
7621 return this.size -= e ? 1 : 0, e;
7622}
7623function H0(t) {
7624 return Sr(this, t).get(t);
7625}
7626function j0(t) {
7627 return Sr(this, t).has(t);
7628}
7629function U0(t, e) {
7630 var i = Sr(this, t), r = i.size;
7631 return i.set(t, e), this.size += i.size == r ? 0 : 1, this;
7632}
7633function re(t) {
7634 var e = -1, i = t == null ? 0 : t.length;
7635 for (this.clear(); ++e < i; ) {
7636 var r = t[e];
7637 this.set(r[0], r[1]);
7638 }
7639}
7640re.prototype.clear = P0;
7641re.prototype.delete = W0;
7642re.prototype.get = H0;
7643re.prototype.has = j0;
7644re.prototype.set = U0;
7645var Y0 = "Expected a function";
7646function oi(t, e) {
7647 if (typeof t != "function" || e != null && typeof e != "function")
7648 throw new TypeError(Y0);
7649 var i = function() {
7650 var r = arguments, n = e ? e.apply(this, r) : r[0], o = i.cache;
7651 if (o.has(n))
7652 return o.get(n);
7653 var s = t.apply(this, r);
7654 return i.cache = o.set(n, s) || o, s;
7655 };
7656 return i.cache = new (oi.Cache || re)(), i;
7657}
7658oi.Cache = re;
7659const G0 = {
7660 curveBasis: Qf,
7661 curveBasisClosed: td,
7662 curveBasisOpen: ed,
7663 curveBumpX: Zf,
7664 curveBumpY: Jf,
7665 curveBundle: id,
7666 curveCardinalClosed: nd,
7667 curveCardinalOpen: od,
7668 curveCardinal: rd,
7669 curveCatmullRomClosed: ad,
7670 curveCatmullRomOpen: ld,
7671 curveCatmullRom: sd,
7672 curveLinear: Kf,
7673 curveLinearClosed: hd,
7674 curveMonotoneX: cd,
7675 curveMonotoneY: ud,
7676 curveNatural: fd,
7677 curveStep: dd,
7678 curveStepAfter: gd,
7679 curveStepBefore: pd
7680}, Qr = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, V0 = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, X0 = function(t, e) {
7681 const i = gl(t, /(?:init\b)|(?:initialize\b)/);
7682 let r = {};
7683 if (Array.isArray(i)) {
7684 const n = i.map((o) => o.args);
7685 we(n), r = K(r, [...n]);
7686 } else
7687 r = i.args;
7688 if (r) {
7689 let n = br(t, e);
7690 ["config"].forEach((o) => {
7691 r[o] !== void 0 && (n === "flowchart-v2" && (n = "flowchart"), r[n] = r[o], delete r[o]);
7692 });
7693 }
7694 return r;
7695}, gl = function(t, e = null) {
7696 try {
7697 const i = new RegExp(
7698 `[%]{2}(?![{]${V0.source})(?=[}][%]{2}).*
7699`,
7700 "ig"
7701 );
7702 t = t.trim().replace(i, "").replace(/'/gm, '"'), b.debug(
7703 `Detecting diagram directive${e !== null ? " type:" + e : ""} based on the text:${t}`
7704 );
7705 let r;
7706 const n = [];
7707 for (; (r = Qr.exec(t)) !== null; )
7708 if (r.index === Qr.lastIndex && Qr.lastIndex++, r && !e || e && r[1] && r[1].match(e) || e && r[2] && r[2].match(e)) {
7709 const o = r[1] ? r[1] : r[2], s = r[3] ? r[3].trim() : r[4] ? JSON.parse(r[4].trim()) : null;
7710 n.push({ type: o, args: s });
7711 }
7712 return n.length === 0 && n.push({ type: t, args: null }), n.length === 1 ? n[0] : n;
7713 } catch (i) {
7714 return b.error(
7715 `ERROR: ${i.message} - Unable to parse directive
7716 ${e !== null ? " type:" + e : ""} based on the text:${t}`
7717 ), { type: null, args: null };
7718 }
7719}, K0 = function(t, e) {
7720 for (const [i, r] of e.entries())
7721 if (r.match(t))
7722 return i;
7723 return -1;
7724};
7725function Z0(t, e) {
7726 if (!t)
7727 return e;
7728 const i = `curve${t.charAt(0).toUpperCase() + t.slice(1)}`;
7729 return G0[i] || e;
7730}
7731function J0(t, e) {
7732 const i = t.trim();
7733 if (i)
7734 return e.securityLevel !== "loose" ? Ds(i) : i;
7735}
7736const Q0 = (t, ...e) => {
7737 const i = t.split("."), r = i.length - 1, n = i[r];
7738 let o = window;
7739 for (let s = 0; s < r; s++)
7740 if (o = o[i[s]], !o)
7741 return;
7742 o[n](...e);
7743};
7744function or(t, e) {
7745 return t && e ? Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) : 0;
7746}
7747function t_(t) {
7748 let e, i = 0;
7749 t.forEach((o) => {
7750 i += or(o, e), e = o;
7751 });
7752 let r = i / 2, n;
7753 return e = void 0, t.forEach((o) => {
7754 if (e && !n) {
7755 const s = or(o, e);
7756 if (s < r)
7757 r -= s;
7758 else {
7759 const a = r / s;
7760 a <= 0 && (n = e), a >= 1 && (n = { x: o.x, y: o.y }), a > 0 && a < 1 && (n = {
7761 x: (1 - a) * e.x + a * o.x,
7762 y: (1 - a) * e.y + a * o.y
7763 });
7764 }
7765 }
7766 e = o;
7767 }), n;
7768}
7769function e_(t) {
7770 return t.length === 1 ? t[0] : t_(t);
7771}
7772const i_ = (t, e, i) => {
7773 let r;
7774 b.info(`our points ${JSON.stringify(e)}`), e[0] !== i && (e = e.reverse());
7775 let o = 25, s;
7776 r = void 0, e.forEach((c) => {
7777 if (r && !s) {
7778 const u = or(c, r);
7779 if (u < o)
7780 o -= u;
7781 else {
7782 const g = o / u;
7783 g <= 0 && (s = r), g >= 1 && (s = { x: c.x, y: c.y }), g > 0 && g < 1 && (s = {
7784 x: (1 - g) * r.x + g * c.x,
7785 y: (1 - g) * r.y + g * c.y
7786 });
7787 }
7788 }
7789 r = c;
7790 });
7791 const a = t ? 10 : 5, l = Math.atan2(e[0].y - s.y, e[0].x - s.x), h = { x: 0, y: 0 };
7792 return h.x = Math.sin(l) * a + (e[0].x + s.x) / 2, h.y = -Math.cos(l) * a + (e[0].y + s.y) / 2, h;
7793};
7794function r_(t, e, i) {
7795 let r = JSON.parse(JSON.stringify(i)), n;
7796 b.info("our points", r), e !== "start_left" && e !== "start_right" && (r = r.reverse()), r.forEach((u) => {
7797 n = u;
7798 });
7799 let s = 25 + t, a;
7800 n = void 0, r.forEach((u) => {
7801 if (n && !a) {
7802 const g = or(u, n);
7803 if (g < s)
7804 s -= g;
7805 else {
7806 const p = s / g;
7807 p <= 0 && (a = n), p >= 1 && (a = { x: u.x, y: u.y }), p > 0 && p < 1 && (a = {
7808 x: (1 - p) * n.x + p * u.x,
7809 y: (1 - p) * n.y + p * u.y
7810 });
7811 }
7812 }
7813 n = u;
7814 });
7815 const l = 10 + t * 0.5, h = Math.atan2(r[0].y - a.y, r[0].x - a.x), c = { x: 0, y: 0 };
7816 return c.x = Math.sin(h) * l + (r[0].x + a.x) / 2, c.y = -Math.cos(h) * l + (r[0].y + a.y) / 2, e === "start_left" && (c.x = Math.sin(h + Math.PI) * l + (r[0].x + a.x) / 2, c.y = -Math.cos(h + Math.PI) * l + (r[0].y + a.y) / 2), e === "end_right" && (c.x = Math.sin(h - Math.PI) * l + (r[0].x + a.x) / 2 - 5, c.y = -Math.cos(h - Math.PI) * l + (r[0].y + a.y) / 2 - 5), e === "end_left" && (c.x = Math.sin(h) * l + (r[0].x + a.x) / 2 - 5, c.y = -Math.cos(h) * l + (r[0].y + a.y) / 2 - 5), c;
7817}
7818function n_(t) {
7819 let e = "", i = "";
7820 for (const r of t)
7821 r !== void 0 && (r.startsWith("color:") || r.startsWith("text-align:") ? i = i + r + ";" : e = e + r + ";");
7822 return { style: e, labelStyle: i };
7823}
7824let ds = 0;
7825const o_ = () => (ds++, "id-" + Math.random().toString(36).substr(2, 12) + "-" + ds);
7826function s_(t) {
7827 let e = "";
7828 const i = "0123456789abcdef", r = i.length;
7829 for (let n = 0; n < t; n++)
7830 e += i.charAt(Math.floor(Math.random() * r));
7831 return e;
7832}
7833const a_ = (t) => s_(t.length), l_ = function() {
7834 return {
7835 x: 0,
7836 y: 0,
7837 fill: void 0,
7838 anchor: "start",
7839 style: "#666",
7840 width: 100,
7841 height: 100,
7842 textMargin: 0,
7843 rx: 0,
7844 ry: 0,
7845 valign: void 0
7846 };
7847}, h_ = function(t, e) {
7848 const i = e.text.replace(zn.lineBreakRegex, " "), [, r] = Kn(e.fontSize), n = t.append("text");
7849 n.attr("x", e.x), n.attr("y", e.y), n.style("text-anchor", e.anchor), n.style("font-family", e.fontFamily), n.style("font-size", r), n.style("font-weight", e.fontWeight), n.attr("fill", e.fill), e.class !== void 0 && n.attr("class", e.class);
7850 const o = n.append("tspan");
7851 return o.attr("x", e.x + e.textMargin * 2), o.attr("fill", e.fill), o.text(i), n;
7852}, c_ = oi(
7853 (t, e, i) => {
7854 if (!t || (i = Object.assign(
7855 { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "<br/>" },
7856 i
7857 ), zn.lineBreakRegex.test(t)))
7858 return t;
7859 const r = t.split(" "), n = [];
7860 let o = "";
7861 return r.forEach((s, a) => {
7862 const l = sr(`${s} `, i), h = sr(o, i);
7863 if (l > e) {
7864 const { hyphenatedStrings: g, remainingWord: p } = u_(s, e, "-", i);
7865 n.push(o, ...g), o = p;
7866 } else
7867 h + l >= e ? (n.push(o), o = s) : o = [o, s].filter(Boolean).join(" ");
7868 a + 1 === r.length && n.push(o);
7869 }), n.filter((s) => s !== "").join(i.joinWith);
7870 },
7871 (t, e, i) => `${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`
7872), u_ = oi(
7873 (t, e, i = "-", r) => {
7874 r = Object.assign(
7875 { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
7876 r
7877 );
7878 const n = [...t], o = [];
7879 let s = "";
7880 return n.forEach((a, l) => {
7881 const h = `${s}${a}`;
7882 if (sr(h, r) >= e) {
7883 const u = l + 1, g = n.length === u, p = `${h}${i}`;
7884 o.push(g ? h : p), s = "";
7885 } else
7886 s = h;
7887 }), { hyphenatedStrings: o, remainingWord: s };
7888 },
7889 (t, e, i = "-", r) => `${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`
7890);
7891function f_(t, e) {
7892 return e = Object.assign(
7893 { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 15 },
7894 e
7895 ), Xn(t, e).height;
7896}
7897function sr(t, e) {
7898 return e = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, e), Xn(t, e).width;
7899}
7900const Xn = oi(
7901 (t, e) => {
7902 e = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, e);
7903 const { fontSize: i, fontFamily: r, fontWeight: n } = e;
7904 if (!t)
7905 return { width: 0, height: 0 };
7906 const [, o] = Kn(i), s = ["sans-serif", r], a = t.split(zn.lineBreakRegex), l = [], h = Ct("body");
7907 if (!h.remove)
7908 return { width: 0, height: 0, lineHeight: 0 };
7909 const c = h.append("svg");
7910 for (const g of s) {
7911 let p = 0;
7912 const _ = { width: 0, height: 0, lineHeight: 0 };
7913 for (const T of a) {
7914 const B = l_();
7915 B.text = T;
7916 const A = h_(c, B).style("font-size", o).style("font-weight", n).style("font-family", g), C = (A._groups || A)[0][0].getBBox();
7917 if (C.width === 0 && C.height === 0)
7918 throw new Error("svg element not in render tree");
7919 _.width = Math.round(Math.max(_.width, C.width)), p = Math.round(C.height), _.height += p, _.lineHeight = Math.round(Math.max(_.lineHeight, p));
7920 }
7921 l.push(_);
7922 }
7923 c.remove();
7924 const u = isNaN(l[1].height) || isNaN(l[1].width) || isNaN(l[1].lineHeight) || l[0].height > l[1].height && l[0].width > l[1].width && l[0].lineHeight > l[1].lineHeight ? 0 : 1;
7925 return l[u];
7926 },
7927 (t, e) => `${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`
7928), d_ = class {
7929 constructor(e, i) {
7930 this.deterministic = e, this.seed = i, this.count = i ? i.length : 0;
7931 }
7932 next() {
7933 return this.deterministic ? this.count++ : Date.now();
7934 }
7935};
7936let vi;
7937const p_ = function(t) {
7938 return vi = vi || document.createElement("div"), t = escape(t).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"), vi.innerHTML = t, unescape(vi.textContent);
7939}, we = (t) => {
7940 if (b.debug("directiveSanitizer called with", t), typeof t == "object" && (t.length ? t.forEach((e) => we(e)) : Object.keys(t).forEach((e) => {
7941 b.debug("Checking key", e), e.startsWith("__") && (b.debug("sanitize deleting __ option", e), delete t[e]), e.includes("proto") && (b.debug("sanitize deleting proto option", e), delete t[e]), e.includes("constr") && (b.debug("sanitize deleting constr option", e), delete t[e]), e.includes("themeCSS") && (b.debug("sanitizing themeCss option"), t[e] = Ii(t[e])), e.includes("fontFamily") && (b.debug("sanitizing fontFamily option"), t[e] = Ii(t[e])), e.includes("altFontFamily") && (b.debug("sanitizing altFontFamily option"), t[e] = Ii(t[e])), Bp.includes(e) ? typeof t[e] == "object" && (b.debug("sanitize deleting object", e), we(t[e])) : (b.debug("sanitize deleting option", e), delete t[e]);
7942 })), t.themeVariables) {
7943 const e = Object.keys(t.themeVariables);
7944 for (const i of e) {
7945 const r = t.themeVariables[i];
7946 r && r.match && !r.match(/^[\d "#%(),.;A-Za-z]+$/) && (t.themeVariables[i] = "");
7947 }
7948 }
7949 b.debug("After sanitization", t);
7950}, Ii = (t) => {
7951 let e = 0, i = 0;
7952 for (const r of t) {
7953 if (e < i)
7954 return "{ /* ERROR: Unbalanced CSS */ }";
7955 r === "{" ? e++ : r === "}" && i++;
7956 }
7957 return e !== i ? "{ /* ERROR: Unbalanced CSS */ }" : t;
7958};
7959function ml(t) {
7960 return "str" in t;
7961}
7962function g_(t) {
7963 return t instanceof Error ? t.message : String(t);
7964}
7965const m_ = (t, e, i, r) => {
7966 if (!r)
7967 return;
7968 const n = t.node().getBBox();
7969 t.append("text").text(r).attr("x", n.x + n.width / 2).attr("y", -i).attr("class", e);
7970}, Kn = (t) => {
7971 if (typeof t == "number")
7972 return [t, t + "px"];
7973 const e = parseInt(t, 10);
7974 return Number.isNaN(e) ? [void 0, void 0] : t === String(e) ? [e, t + "px"] : [e, t];
7975}, Di = {
7976 assignWithDepth: K,
7977 wrapLabel: c_,
7978 calculateTextHeight: f_,
7979 calculateTextWidth: sr,
7980 calculateTextDimensions: Xn,
7981 detectInit: X0,
7982 detectDirective: gl,
7983 isSubstringInArray: K0,
7984 interpolateToCurve: Z0,
7985 calcLabelPosition: e_,
7986 calcCardinalityPosition: i_,
7987 calcTerminalLabelPosition: r_,
7988 formatUrl: J0,
7989 getStylesFromArray: n_,
7990 generateId: o_,
7991 random: a_,
7992 runFunc: Q0,
7993 entityDecode: p_,
7994 initIdGenerator: d_,
7995 directiveSanitizer: we,
7996 sanitizeCss: Ii,
7997 insertTitle: m_,
7998 parseFontSize: Kn
7999};
8000var _l = "comm", yl = "rule", Cl = "decl", __ = "@import", y_ = "@keyframes", C_ = Math.abs, Zn = String.fromCharCode;
8001function xl(t) {
8002 return t.trim();
8003}
8004function mn(t, e, i) {
8005 return t.replace(e, i);
8006}
8007function x_(t, e) {
8008 return t.indexOf(e);
8009}
8010function Qe(t, e) {
8011 return t.charCodeAt(e) | 0;
8012}
8013function ti(t, e, i) {
8014 return t.slice(e, i);
8015}
8016function Dt(t) {
8017 return t.length;
8018}
8019function bl(t) {
8020 return t.length;
8021}
8022function ki(t, e) {
8023 return e.push(t), t;
8024}
8025var vr = 1, Be = 1, Tl = 0, ut = 0, z = 0, Ae = "";
8026function Jn(t, e, i, r, n, o, s) {
8027 return { value: t, root: e, parent: i, type: r, props: n, children: o, line: vr, column: Be, length: s, return: "" };
8028}
8029function b_() {
8030 return z;
8031}
8032function T_() {
8033 return z = ut > 0 ? Qe(Ae, --ut) : 0, Be--, z === 10 && (Be = 1, vr--), z;
8034}
8035function gt() {
8036 return z = ut < Tl ? Qe(Ae, ut++) : 0, Be++, z === 10 && (Be = 1, vr++), z;
8037}
8038function Jt() {
8039 return Qe(Ae, ut);
8040}
8041function Ni() {
8042 return ut;
8043}
8044function kr(t, e) {
8045 return ti(Ae, t, e);
8046}
8047function _n(t) {
8048 switch (t) {
8049 case 0:
8050 case 9:
8051 case 10:
8052 case 13:
8053 case 32:
8054 return 5;
8055 case 33:
8056 case 43:
8057 case 44:
8058 case 47:
8059 case 62:
8060 case 64:
8061 case 126:
8062 case 59:
8063 case 123:
8064 case 125:
8065 return 4;
8066 case 58:
8067 return 3;
8068 case 34:
8069 case 39:
8070 case 40:
8071 case 91:
8072 return 2;
8073 case 41:
8074 case 93:
8075 return 1;
8076 }
8077 return 0;
8078}
8079function S_(t) {
8080 return vr = Be = 1, Tl = Dt(Ae = t), ut = 0, [];
8081}
8082function v_(t) {
8083 return Ae = "", t;
8084}
8085function tn(t) {
8086 return xl(kr(ut - 1, yn(t === 91 ? t + 2 : t === 40 ? t + 1 : t)));
8087}
8088function k_(t) {
8089 for (; (z = Jt()) && z < 33; )
8090 gt();
8091 return _n(t) > 2 || _n(z) > 3 ? "" : " ";
8092}
8093function w_(t, e) {
8094 for (; --e && gt() && !(z < 48 || z > 102 || z > 57 && z < 65 || z > 70 && z < 97); )
8095 ;
8096 return kr(t, Ni() + (e < 6 && Jt() == 32 && gt() == 32));
8097}
8098function yn(t) {
8099 for (; gt(); )
8100 switch (z) {
8101 case t:
8102 return ut;
8103 case 34:
8104 case 39:
8105 t !== 34 && t !== 39 && yn(z);
8106 break;
8107 case 40:
8108 t === 41 && yn(t);
8109 break;
8110 case 92:
8111 gt();
8112 break;
8113 }
8114 return ut;
8115}
8116function B_(t, e) {
8117 for (; gt() && t + z !== 47 + 10; )
8118 if (t + z === 42 + 42 && Jt() === 47)
8119 break;
8120 return "/*" + kr(e, ut - 1) + "*" + Zn(t === 47 ? t : gt());
8121}
8122function F_(t) {
8123 for (; !_n(Jt()); )
8124 gt();
8125 return kr(t, ut);
8126}
8127function L_(t) {
8128 return v_(Ri("", null, null, null, [""], t = S_(t), 0, [0], t));
8129}
8130function Ri(t, e, i, r, n, o, s, a, l) {
8131 for (var h = 0, c = 0, u = s, g = 0, p = 0, _ = 0, T = 1, B = 1, A = 1, C = 0, F = "", D = n, R = o, V = r, O = F; B; )
8132 switch (_ = C, C = gt()) {
8133 case 40:
8134 if (_ != 108 && Qe(O, u - 1) == 58) {
8135 x_(O += mn(tn(C), "&", "&\f"), "&\f") != -1 && (A = -1);
8136 break;
8137 }
8138 case 34:
8139 case 39:
8140 case 91:
8141 O += tn(C);
8142 break;
8143 case 9:
8144 case 10:
8145 case 13:
8146 case 32:
8147 O += k_(_);
8148 break;
8149 case 92:
8150 O += w_(Ni() - 1, 7);
8151 continue;
8152 case 47:
8153 switch (Jt()) {
8154 case 42:
8155 case 47:
8156 ki(A_(B_(gt(), Ni()), e, i), l);
8157 break;
8158 default:
8159 O += "/";
8160 }
8161 break;
8162 case 123 * T:
8163 a[h++] = Dt(O) * A;
8164 case 125 * T:
8165 case 59:
8166 case 0:
8167 switch (C) {
8168 case 0:
8169 case 125:
8170 B = 0;
8171 case 59 + c:
8172 p > 0 && Dt(O) - u && ki(p > 32 ? gs(O + ";", r, i, u - 1) : gs(mn(O, " ", "") + ";", r, i, u - 2), l);
8173 break;
8174 case 59:
8175 O += ";";
8176 default:
8177 if (ki(V = ps(O, e, i, h, c, n, a, F, D = [], R = [], u), o), C === 123)
8178 if (c === 0)
8179 Ri(O, e, V, V, D, o, u, a, R);
8180 else
8181 switch (g === 99 && Qe(O, 3) === 110 ? 100 : g) {
8182 case 100:
8183 case 109:
8184 case 115:
8185 Ri(t, V, V, r && ki(ps(t, V, V, 0, 0, n, a, F, n, D = [], u), R), n, R, u, a, r ? D : R);
8186 break;
8187 default:
8188 Ri(O, V, V, V, [""], R, 0, a, R);
8189 }
8190 }
8191 h = c = p = 0, T = A = 1, F = O = "", u = s;
8192 break;
8193 case 58:
8194 u = 1 + Dt(O), p = _;
8195 default:
8196 if (T < 1) {
8197 if (C == 123)
8198 --T;
8199 else if (C == 125 && T++ == 0 && T_() == 125)
8200 continue;
8201 }
8202 switch (O += Zn(C), C * T) {
8203 case 38:
8204 A = c > 0 ? 1 : (O += "\f", -1);
8205 break;
8206 case 44:
8207 a[h++] = (Dt(O) - 1) * A, A = 1;
8208 break;
8209 case 64:
8210 Jt() === 45 && (O += tn(gt())), g = Jt(), c = u = Dt(F = O += F_(Ni())), C++;
8211 break;
8212 case 45:
8213 _ === 45 && Dt(O) == 2 && (T = 0);
8214 }
8215 }
8216 return o;
8217}
8218function ps(t, e, i, r, n, o, s, a, l, h, c) {
8219 for (var u = n - 1, g = n === 0 ? o : [""], p = bl(g), _ = 0, T = 0, B = 0; _ < r; ++_)
8220 for (var A = 0, C = ti(t, u + 1, u = C_(T = s[_])), F = t; A < p; ++A)
8221 (F = xl(T > 0 ? g[A] + " " + C : mn(C, /&\f/g, g[A]))) && (l[B++] = F);
8222 return Jn(t, e, i, n === 0 ? yl : a, l, h, c);
8223}
8224function A_(t, e, i) {
8225 return Jn(t, e, i, _l, Zn(b_()), ti(t, 2, -2), 0);
8226}
8227function gs(t, e, i, r) {
8228 return Jn(t, e, i, Cl, ti(t, 0, r), ti(t, r + 1, -1), r);
8229}
8230function Cn(t, e) {
8231 for (var i = "", r = bl(t), n = 0; n < r; n++)
8232 i += e(t[n], n, t, e) || "";
8233 return i;
8234}
8235function E_(t, e, i, r) {
8236 switch (t.type) {
8237 case __:
8238 case Cl:
8239 return t.return = t.return || t.value;
8240 case _l:
8241 return "";
8242 case y_:
8243 return t.return = t.value + "{" + Cn(t.children, r) + "}";
8244 case yl:
8245 t.value = t.props.join(",");
8246 }
8247 return Dt(i = Cn(t.children, r)) ? t.return = t.value + "{" + i + "}" : "";
8248}
8249const ms = "10.2.0", Sl = "c4", M_ = (t) => t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null, O_ = async () => {
8250 const { diagram: t } = await import("./c4Diagram-1aeee79c.js");
8251 return { id: Sl, diagram: t };
8252}, $_ = {
8253 id: Sl,
8254 detector: M_,
8255 loader: O_
8256}, I_ = $_, vl = "flowchart", D_ = (t, e) => {
8257 var i, r;
8258 return ((i = e == null ? void 0 : e.flowchart) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" || ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "elk" ? !1 : t.match(/^\s*graph/) !== null;
8259}, N_ = async () => {
8260 const { diagram: t } = await import("./flowDiagram-1d5ecf94.js");
8261 return { id: vl, diagram: t };
8262}, R_ = {
8263 id: vl,
8264 detector: D_,
8265 loader: N_
8266}, q_ = R_, kl = "flowchart-v2", P_ = (t, e) => {
8267 var i, r, n;
8268 return ((i = e == null ? void 0 : e.flowchart) == null ? void 0 : i.defaultRenderer) === "dagre-d3" || ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "elk" ? !1 : t.match(/^\s*graph/) !== null && ((n = e == null ? void 0 : e.flowchart) == null ? void 0 : n.defaultRenderer) === "dagre-wrapper" ? !0 : t.match(/^\s*flowchart/) !== null;
8269}, z_ = async () => {
8270 const { diagram: t } = await import("./flowDiagram-v2-a232e201.js");
8271 return { id: kl, diagram: t };
8272}, W_ = {
8273 id: kl,
8274 detector: P_,
8275 loader: z_
8276}, H_ = W_, wl = "er", j_ = (t) => t.match(/^\s*erDiagram/) !== null, U_ = async () => {
8277 const { diagram: t } = await import("./erDiagram-6e9c0e5f.js");
8278 return { id: wl, diagram: t };
8279}, Y_ = {
8280 id: wl,
8281 detector: j_,
8282 loader: U_
8283}, G_ = Y_, Bl = "gitGraph", V_ = (t) => t.match(/^\s*gitGraph/) !== null, X_ = async () => {
8284 const { diagram: t } = await import("./gitGraphDiagram-55446347.js");
8285 return { id: Bl, diagram: t };
8286}, K_ = {
8287 id: Bl,
8288 detector: V_,
8289 loader: X_
8290}, Z_ = K_, Fl = "gantt", J_ = (t) => t.match(/^\s*gantt/) !== null, Q_ = async () => {
8291 const { diagram: t } = await import("./ganttDiagram-de5cce7c.js");
8292 return { id: Fl, diagram: t };
8293}, ty = {
8294 id: Fl,
8295 detector: J_,
8296 loader: Q_
8297}, ey = ty, Ll = "info", iy = (t) => t.match(/^\s*info/) !== null, ry = async () => {
8298 const { diagram: t } = await import("./infoDiagram-a4952db5.js");
8299 return { id: Ll, diagram: t };
8300}, ny = {
8301 id: Ll,
8302 detector: iy,
8303 loader: ry
8304}, oy = ny, Al = "pie", sy = (t) => t.match(/^\s*pie/) !== null, ay = async () => {
8305 const { diagram: t } = await import("./pieDiagram-c6456618.js");
8306 return { id: Al, diagram: t };
8307}, ly = {
8308 id: Al,
8309 detector: sy,
8310 loader: ay
8311}, hy = ly, El = "quadrantChart", cy = (t) => t.match(/^\s*quadrantChart/) !== null, uy = async () => {
8312 const { diagram: t } = await import("./quadrantDiagram-f1fd3d51.js");
8313 return { id: El, diagram: t };
8314}, fy = {
8315 id: El,
8316 detector: cy,
8317 loader: uy
8318}, dy = fy, Ml = "requirement", py = (t) => t.match(/^\s*requirement(Diagram)?/) !== null, gy = async () => {
8319 const { diagram: t } = await import("./requirementDiagram-128084d2.js");
8320 return { id: Ml, diagram: t };
8321}, my = {
8322 id: Ml,
8323 detector: py,
8324 loader: gy
8325}, _y = my, Ol = "sequence", yy = (t) => t.match(/^\s*sequenceDiagram/) !== null, Cy = async () => {
8326 const { diagram: t } = await import("./sequenceDiagram-0cbbfffa.js");
8327 return { id: Ol, diagram: t };
8328}, xy = {
8329 id: Ol,
8330 detector: yy,
8331 loader: Cy
8332}, by = xy, $l = "class", Ty = (t, e) => {
8333 var i;
8334 return ((i = e == null ? void 0 : e.class) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" ? !1 : t.match(/^\s*classDiagram/) !== null;
8335}, Sy = async () => {
8336 const { diagram: t } = await import("./classDiagram-bbe85371.js");
8337 return { id: $l, diagram: t };
8338}, vy = {
8339 id: $l,
8340 detector: Ty,
8341 loader: Sy
8342}, ky = vy, Il = "classDiagram", wy = (t, e) => {
8343 var i;
8344 return t.match(/^\s*classDiagram/) !== null && ((i = e == null ? void 0 : e.class) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" ? !0 : t.match(/^\s*classDiagram-v2/) !== null;
8345}, By = async () => {
8346 const { diagram: t } = await import("./classDiagram-v2-1c2c680d.js");
8347 return { id: Il, diagram: t };
8348}, Fy = {
8349 id: Il,
8350 detector: wy,
8351 loader: By
8352}, Ly = Fy, Dl = "state", Ay = (t, e) => {
8353 var i;
8354 return ((i = e == null ? void 0 : e.state) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" ? !1 : t.match(/^\s*stateDiagram/) !== null;
8355}, Ey = async () => {
8356 const { diagram: t } = await import("./stateDiagram-84937bea.js");
8357 return { id: Dl, diagram: t };
8358}, My = {
8359 id: Dl,
8360 detector: Ay,
8361 loader: Ey
8362}, Oy = My, Nl = "stateDiagram", $y = (t, e) => {
8363 var i, r;
8364 return !!(t.match(/^\s*stateDiagram-v2/) !== null || t.match(/^\s*stateDiagram/) && ((i = e == null ? void 0 : e.state) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" || t.match(/^\s*stateDiagram/) && ((r = e == null ? void 0 : e.state) == null ? void 0 : r.defaultRenderer) === "dagre-wrapper");
8365}, Iy = async () => {
8366 const { diagram: t } = await import("./stateDiagram-v2-95cd6741.js");
8367 return { id: Nl, diagram: t };
8368}, Dy = {
8369 id: Nl,
8370 detector: $y,
8371 loader: Iy
8372}, Ny = Dy, Rl = "journey", Ry = (t) => t.match(/^\s*journey/) !== null, qy = async () => {
8373 const { diagram: t } = await import("./journeyDiagram-e9f7e166.js");
8374 return { id: Rl, diagram: t };
8375}, Py = {
8376 id: Rl,
8377 detector: Ry,
8378 loader: qy
8379}, zy = Py, Wy = () => "", Hy = Wy, jy = function() {
8380}, Uy = (t, e, i) => {
8381 try {
8382 b.debug(`Renering svg for syntax error
8383`);
8384 const r = Ct("#" + e), n = r.append("g");
8385 n.append("path").attr("class", "error-icon").attr(
8386 "d",
8387 "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"
8388 ), n.append("path").attr("class", "error-icon").attr(
8389 "d",
8390 "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"
8391 ), n.append("path").attr("class", "error-icon").attr(
8392 "d",
8393 "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"
8394 ), n.append("path").attr("class", "error-icon").attr(
8395 "d",
8396 "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"
8397 ), n.append("path").attr("class", "error-icon").attr(
8398 "d",
8399 "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"
8400 ), n.append("path").attr("class", "error-icon").attr(
8401 "d",
8402 "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"
8403 ), n.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"), n.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text("mermaid version " + i), r.attr("height", 100), r.attr("width", 500), r.attr("viewBox", "768 0 912 512");
8404 } catch (r) {
8405 b.error("Error while rendering info diagram"), b.error(g_(r));
8406 }
8407}, ql = {
8408 setConf: jy,
8409 draw: Uy
8410}, Yy = {
8411 db: {
8412 clear: () => {
8413 }
8414 },
8415 styles: Hy,
8416 renderer: ql,
8417 parser: {
8418 parser: { yy: {} },
8419 parse: () => {
8420 }
8421 },
8422 init: () => {
8423 }
8424}, Gy = Yy, Pl = "flowchart-elk", Vy = (t, e) => {
8425 var i;
8426 return (
8427 // If diagram explicitly states flowchart-elk
8428 !!(t.match(/^\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk
8429 t.match(/^\s*flowchart|graph/) && ((i = e == null ? void 0 : e.flowchart) == null ? void 0 : i.defaultRenderer) === "elk")
8430 );
8431}, Xy = async () => {
8432 const { diagram: t } = await import("./flowchart-elk-definition-de178c98.js");
8433 return { id: Pl, diagram: t };
8434}, Ky = {
8435 id: Pl,
8436 detector: Vy,
8437 loader: Xy
8438}, Zy = Ky, zl = "timeline", Jy = (t) => t.match(/^\s*timeline/) !== null, Qy = async () => {
8439 const { diagram: t } = await import("./timeline-definition-a4c404a4.js");
8440 return { id: zl, diagram: t };
8441}, tC = {
8442 id: zl,
8443 detector: Jy,
8444 loader: Qy
8445}, eC = tC, Wl = "mindmap", iC = (t) => t.match(/^\s*mindmap/) !== null, rC = async () => {
8446 const { diagram: t } = await import("./mindmap-definition-f15622b9.js");
8447 return { id: Wl, diagram: t };
8448}, nC = {
8449 id: Wl,
8450 detector: iC,
8451 loader: rC
8452}, oC = nC;
8453let _s = !1;
8454const Qn = () => {
8455 _s || (_s = !0, ir("error", Gy, (t) => t.toLowerCase().trim() === "error"), ir(
8456 "---",
8457 // --- diagram type may appear if YAML front-matter is not parsed correctly
8458 {
8459 db: {
8460 clear: () => {
8461 }
8462 },
8463 styles: {},
8464 // should never be used
8465 renderer: {},
8466 // should never be used
8467 parser: {
8468 parser: { yy: {} },
8469 parse: () => {
8470 throw new Error(
8471 "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"
8472 );
8473 }
8474 },
8475 init: () => null
8476 // no op
8477 },
8478 (t) => t.toLowerCase().trimStart().startsWith("---")
8479 ), hl(
8480 I_,
8481 Ly,
8482 ky,
8483 G_,
8484 ey,
8485 oy,
8486 hy,
8487 _y,
8488 by,
8489 Zy,
8490 H_,
8491 q_,
8492 oC,
8493 eC,
8494 Z_,
8495 Ny,
8496 Oy,
8497 zy,
8498 dy
8499 ));
8500}, sC = (t) => t.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm, "");
8501class Hl {
8502 constructor(e) {
8503 var o, s;
8504 this.text = e, this.type = "graph", this.text += `
8505`;
8506 const i = Et();
8507 try {
8508 this.type = br(e, i);
8509 } catch (a) {
8510 this.type = "error", this.detectError = a;
8511 }
8512 const r = Vn(this.type);
8513 b.debug("Type " + this.type), this.db = r.db, (s = (o = this.db).clear) == null || s.call(o), this.renderer = r.renderer, this.parser = r.parser;
8514 const n = this.parser.parse.bind(this.parser);
8515 this.parser.parse = (a) => n(sC(ym(a, this.db))), this.parser.parser.yy = this.db, r.init && (r.init(i), b.info("Initialized diagram " + this.type, i)), this.parse();
8516 }
8517 parse() {
8518 var e, i;
8519 if (this.detectError)
8520 throw this.detectError;
8521 (i = (e = this.db).clear) == null || i.call(e), this.parser.parse(this.text);
8522 }
8523 async render(e, i) {
8524 await this.renderer.draw(this.text, e, i, this);
8525 }
8526 getParser() {
8527 return this.parser;
8528 }
8529 getType() {
8530 return this.type;
8531 }
8532}
8533const to = async (t) => {
8534 const e = br(t, Et());
8535 try {
8536 Vn(e);
8537 } catch {
8538 const r = Hm(e);
8539 if (!r)
8540 throw new ll(`Diagram ${e} not found.`);
8541 const { id: n, diagram: o } = await r();
8542 ir(n, o);
8543 }
8544 return new Hl(t);
8545};
8546let xn = [];
8547const yb = (t) => {
8548 xn.push(t);
8549}, aC = () => {
8550 xn.forEach((t) => {
8551 t();
8552 }), xn = [];
8553};
8554var lC = Object.prototype;
8555function jl(t) {
8556 var e = t && t.constructor, i = typeof e == "function" && e.prototype || lC;
8557 return t === i;
8558}
8559function hC(t, e) {
8560 return function(i) {
8561 return t(e(i));
8562 };
8563}
8564var cC = hC(Object.keys, Object);
8565const uC = cC;
8566var fC = Object.prototype, dC = fC.hasOwnProperty;
8567function pC(t) {
8568 if (!jl(t))
8569 return uC(t);
8570 var e = [];
8571 for (var i in Object(t))
8572 dC.call(t, i) && i != "constructor" && e.push(i);
8573 return e;
8574}
8575var gC = Fe(zt, "DataView");
8576const bn = gC;
8577var mC = Fe(zt, "Promise");
8578const Tn = mC;
8579var _C = Fe(zt, "Set");
8580const Sn = _C;
8581var yC = Fe(zt, "WeakMap");
8582const vn = yC;
8583var ys = "[object Map]", CC = "[object Object]", Cs = "[object Promise]", xs = "[object Set]", bs = "[object WeakMap]", Ts = "[object DataView]", xC = ie(bn), bC = ie(nr), TC = ie(Tn), SC = ie(Sn), vC = ie(vn), Gt = ni;
8584(bn && Gt(new bn(new ArrayBuffer(1))) != Ts || nr && Gt(new nr()) != ys || Tn && Gt(Tn.resolve()) != Cs || Sn && Gt(new Sn()) != xs || vn && Gt(new vn()) != bs) && (Gt = function(t) {
8585 var e = ni(t), i = e == CC ? t.constructor : void 0, r = i ? ie(i) : "";
8586 if (r)
8587 switch (r) {
8588 case xC:
8589 return Ts;
8590 case bC:
8591 return ys;
8592 case TC:
8593 return Cs;
8594 case SC:
8595 return xs;
8596 case vC:
8597 return bs;
8598 }
8599 return e;
8600});
8601const kC = Gt;
8602function eo(t) {
8603 return t != null && typeof t == "object";
8604}
8605var wC = "[object Arguments]";
8606function Ss(t) {
8607 return eo(t) && ni(t) == wC;
8608}
8609var Ul = Object.prototype, BC = Ul.hasOwnProperty, FC = Ul.propertyIsEnumerable, LC = Ss(function() {
8610 return arguments;
8611}()) ? Ss : function(t) {
8612 return eo(t) && BC.call(t, "callee") && !FC.call(t, "callee");
8613};
8614const AC = LC;
8615var EC = Array.isArray;
8616const MC = EC;
8617var OC = 9007199254740991;
8618function Yl(t) {
8619 return typeof t == "number" && t > -1 && t % 1 == 0 && t <= OC;
8620}
8621function $C(t) {
8622 return t != null && Yl(t.length) && !pl(t);
8623}
8624function IC() {
8625 return !1;
8626}
8627var Gl = typeof exports == "object" && exports && !exports.nodeType && exports, vs = Gl && typeof module == "object" && module && !module.nodeType && module, DC = vs && vs.exports === Gl, ks = DC ? zt.Buffer : void 0, NC = ks ? ks.isBuffer : void 0, RC = NC || IC;
8628const qC = RC;
8629var PC = "[object Arguments]", zC = "[object Array]", WC = "[object Boolean]", HC = "[object Date]", jC = "[object Error]", UC = "[object Function]", YC = "[object Map]", GC = "[object Number]", VC = "[object Object]", XC = "[object RegExp]", KC = "[object Set]", ZC = "[object String]", JC = "[object WeakMap]", QC = "[object ArrayBuffer]", tx = "[object DataView]", ex = "[object Float32Array]", ix = "[object Float64Array]", rx = "[object Int8Array]", nx = "[object Int16Array]", ox = "[object Int32Array]", sx = "[object Uint8Array]", ax = "[object Uint8ClampedArray]", lx = "[object Uint16Array]", hx = "[object Uint32Array]", I = {};
8630I[ex] = I[ix] = I[rx] = I[nx] = I[ox] = I[sx] = I[ax] = I[lx] = I[hx] = !0;
8631I[PC] = I[zC] = I[QC] = I[WC] = I[tx] = I[HC] = I[jC] = I[UC] = I[YC] = I[GC] = I[VC] = I[XC] = I[KC] = I[ZC] = I[JC] = !1;
8632function cx(t) {
8633 return eo(t) && Yl(t.length) && !!I[ni(t)];
8634}
8635function ux(t) {
8636 return function(e) {
8637 return t(e);
8638 };
8639}
8640var Vl = typeof exports == "object" && exports && !exports.nodeType && exports, je = Vl && typeof module == "object" && module && !module.nodeType && module, fx = je && je.exports === Vl, en = fx && ul.process, dx = function() {
8641 try {
8642 var t = je && je.require && je.require("util").types;
8643 return t || en && en.binding && en.binding("util");
8644 } catch {
8645 }
8646}();
8647const ws = dx;
8648var Bs = ws && ws.isTypedArray, px = Bs ? ux(Bs) : cx;
8649const gx = px;
8650var mx = "[object Map]", _x = "[object Set]", yx = Object.prototype, Cx = yx.hasOwnProperty;
8651function qi(t) {
8652 if (t == null)
8653 return !0;
8654 if ($C(t) && (MC(t) || typeof t == "string" || typeof t.splice == "function" || qC(t) || gx(t) || AC(t)))
8655 return !t.length;
8656 var e = kC(t);
8657 if (e == mx || e == _x)
8658 return !t.size;
8659 if (jl(t))
8660 return !pC(t).length;
8661 for (var i in t)
8662 if (Cx.call(t, i))
8663 return !1;
8664 return !0;
8665}
8666const xx = "graphics-document document";
8667function bx(t, e) {
8668 t.attr("role", xx), qi(e) || t.attr("aria-roledescription", e);
8669}
8670function Tx(t, e, i, r) {
8671 if (t.insert !== void 0)
8672 if (e || i) {
8673 if (i) {
8674 const n = "chart-desc-" + r;
8675 t.attr("aria-describedby", n), t.insert("desc", ":first-child").attr("id", n).text(i);
8676 }
8677 if (e) {
8678 const n = "chart-title-" + r;
8679 t.attr("aria-labelledby", n), t.insert("title", ":first-child").attr("id", n).text(e);
8680 }
8681 } else
8682 return;
8683}
8684const Xl = [
8685 "graph",
8686 "flowchart",
8687 "flowchart-v2",
8688 "flowchart-elk",
8689 "stateDiagram",
8690 "stateDiagram-v2"
8691], Sx = 5e4, vx = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa", kx = "sandbox", wx = "loose", Bx = "http://www.w3.org/2000/svg", Fx = "http://www.w3.org/1999/xlink", Lx = "http://www.w3.org/1999/xhtml", Ax = "100%", Ex = "100%", Mx = "border:0;margin:0;", Ox = "margin:0", $x = "allow-top-navigation-by-user-activation allow-popups", Ix = 'The "iframe" tag is not supported by your browser.', Dx = ["foreignobject"], Nx = ["dominant-baseline"];
8692async function Rx(t, e) {
8693 Qn();
8694 try {
8695 (await to(t)).parse();
8696 } catch (i) {
8697 if (e != null && e.suppressErrors)
8698 return !1;
8699 throw i;
8700 }
8701 return !0;
8702}
8703const qx = function(t) {
8704 let e = t;
8705 return e = e.replace(/style.*:\S*#.*;/g, function(i) {
8706 return i.substring(0, i.length - 1);
8707 }), e = e.replace(/classDef.*:\S*#.*;/g, function(i) {
8708 return i.substring(0, i.length - 1);
8709 }), e = e.replace(/#\w+;/g, function(i) {
8710 const r = i.substring(1, i.length - 1);
8711 return /^\+?\d+$/.test(r) ? "fl°°" + r + "¶ß" : "fl°" + r + "¶ß";
8712 }), e;
8713}, Px = function(t) {
8714 return t.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";");
8715}, Fs = (t, e, i = []) => `
8716.${t} ${e} { ${i.join(" !important; ")} !important; }`, zx = (t, e, i = {}) => {
8717 var n;
8718 let r = "";
8719 if (t.themeCSS !== void 0 && (r += `
8720${t.themeCSS}`), t.fontFamily !== void 0 && (r += `
8721:root { --mermaid-font-family: ${t.fontFamily}}`), t.altFontFamily !== void 0 && (r += `
8722:root { --mermaid-alt-font-family: ${t.altFontFamily}}`), !qi(i) && Xl.includes(e)) {
8723 const l = t.htmlLabels || ((n = t.flowchart) == null ? void 0 : n.htmlLabels) ? ["> *", "span"] : ["rect", "polygon", "ellipse", "circle", "path"];
8724 for (const h in i) {
8725 const c = i[h];
8726 qi(c.styles) || l.forEach((u) => {
8727 r += Fs(c.id, u, c.styles);
8728 }), qi(c.textStyles) || (r += Fs(c.id, "tspan", c.textStyles));
8729 }
8730 }
8731 return r;
8732}, Wx = (t, e, i, r) => {
8733 const n = zx(t, e, i), o = Am(e, n, t.themeVariables);
8734 return Cn(L_(`${r}{${o}}`), E_);
8735}, Hx = (t = "", e, i) => {
8736 let r = t;
8737 return !i && !e && (r = r.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#')), r = Px(r), r = r.replace(/<br>/g, "<br/>"), r;
8738}, jx = (t = "", e) => {
8739 const i = e ? e.viewBox.baseVal.height + "px" : Ex, r = btoa('<body style="' + Ox + '">' + t + "</body>");
8740 return `<iframe style="width:${Ax};height:${i};${Mx}" src="data:text/html;base64,${r}" sandbox="${$x}">
8741 ${Ix}
8742</iframe>`;
8743}, Ls = (t, e, i, r, n) => {
8744 const o = t.append("div");
8745 o.attr("id", i), r && o.attr("style", r);
8746 const s = o.append("svg").attr("id", e).attr("width", "100%").attr("xmlns", Bx);
8747 return n && s.attr("xmlns:xlink", n), s.append("g"), t;
8748};
8749function As(t, e) {
8750 return t.append("iframe").attr("id", e).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
8751}
8752const Ux = (t, e, i, r) => {
8753 var n, o, s;
8754 (n = t.getElementById(e)) == null || n.remove(), (o = t.getElementById(i)) == null || o.remove(), (s = t.getElementById(r)) == null || s.remove();
8755}, Yx = async function(t, e, i) {
8756 var ne, ai, li, hi;
8757 Qn(), tr();
8758 const r = Di.detectInit(e);
8759 r && (we(r), Ka(r));
8760 const n = Et();
8761 b.debug(n), e.length > ((n == null ? void 0 : n.maxTextSize) ?? Sx) && (e = vx), e = e.replace(/\r\n?/g, `
8762`), e = e.replace(
8763 /<(\w+)([^>]*)>/g,
8764 (nt, ci, P) => "<" + ci + P.replace(/="([^"]*)"/g, "='$1'") + ">"
8765 );
8766 const o = "#" + t, s = "i" + t, a = "#" + s, l = "d" + t, h = "#" + l;
8767 let c = Ct("body");
8768 const u = n.securityLevel === kx, g = n.securityLevel === wx, p = n.fontFamily;
8769 if (i !== void 0) {
8770 if (i && (i.innerHTML = ""), u) {
8771 const nt = As(Ct(i), s);
8772 c = Ct(nt.nodes()[0].contentDocument.body), c.node().style.margin = 0;
8773 } else
8774 c = Ct(i);
8775 Ls(c, t, l, `font-family: ${p}`, Fx);
8776 } else {
8777 if (Ux(document, t, l, s), u) {
8778 const nt = As(Ct("body"), s);
8779 c = Ct(nt.nodes()[0].contentDocument.body), c.node().style.margin = 0;
8780 } else
8781 c = Ct("body");
8782 Ls(c, t, l);
8783 }
8784 e = qx(e);
8785 let _, T;
8786 try {
8787 _ = await to(e);
8788 } catch (nt) {
8789 _ = new Hl("error"), T = nt;
8790 }
8791 const B = c.select(h).node(), A = _.type, C = B.firstChild, F = C.firstChild, D = Xl.includes(A) ? _.renderer.getClasses(e, _) : {}, R = Wx(
8792 n,
8793 A,
8794 // @ts-ignore convert renderer to TS.
8795 D,
8796 o
8797 ), V = document.createElement("style");
8798 V.innerHTML = R, C.insertBefore(V, F);
8799 try {
8800 await _.renderer.draw(e, t, ms, _);
8801 } catch (nt) {
8802 throw ql.draw(e, t, ms), nt;
8803 }
8804 const O = c.select(`${h} svg`), wr = (ai = (ne = _.db).getAccTitle) == null ? void 0 : ai.call(ne), Br = (hi = (li = _.db).getAccDescription) == null ? void 0 : hi.call(li);
8805 Vx(A, O, wr, Br), c.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns", Lx);
8806 let H = c.select(h).node().innerHTML;
8807 if (b.debug("config.arrowMarkerAbsolute", n.arrowMarkerAbsolute), H = Hx(H, u, Ba(n.arrowMarkerAbsolute)), u) {
8808 const nt = c.select(h + " svg").node();
8809 H = jx(H, nt);
8810 } else
8811 g || (H = Ki.sanitize(H, {
8812 ADD_TAGS: Dx,
8813 ADD_ATTR: Nx
8814 }));
8815 if (aC(), T)
8816 throw T;
8817 const Wt = Ct(u ? a : h).node();
8818 return Wt && "remove" in Wt && Wt.remove(), {
8819 svg: H,
8820 bindFunctions: _.db.bindFunctions
8821 };
8822};
8823function Gx(t = {}) {
8824 var i;
8825 t != null && t.fontFamily && !((i = t.themeVariables) != null && i.fontFamily) && (t.themeVariables || (t.themeVariables = {}), t.themeVariables.fontFamily = t.fontFamily), xm(t), t != null && t.theme && t.theme in Lt ? t.themeVariables = Lt[t.theme].getThemeVariables(
8826 t.themeVariables
8827 ) : t && (t.themeVariables = Lt.default.getThemeVariables(t.themeVariables));
8828 const e = typeof t == "object" ? Cm(t) : Va();
8829 Bn(e.logLevel), Qn();
8830}
8831function Vx(t, e, i, r) {
8832 bx(e, t), Tx(e, i, r, e.attr("id"));
8833}
8834const ee = Object.freeze({
8835 render: Yx,
8836 parse: Rx,
8837 parseDirective: sl,
8838 getDiagramFromText: to,
8839 initialize: Gx,
8840 getConfig: Et,
8841 setConfig: Tm,
8842 getSiteConfig: Va,
8843 updateSiteConfig: bm,
8844 reset: () => {
8845 tr();
8846 },
8847 globalReset: () => {
8848 tr(Ze);
8849 },
8850 defaultConfig: Ze
8851});
8852Bn(Et().logLevel);
8853tr(Et());
8854const Xx = (t, e, i) => {
8855 b.warn(t), ml(t) ? (i && i(t.str, t.hash), e.push({ ...t, message: t.str, error: t })) : (i && i(t), t instanceof Error && e.push({
8856 str: t.message,
8857 message: t.message,
8858 hash: t.name,
8859 error: t
8860 }));
8861}, Kl = async function(t = {
8862 querySelector: ".mermaid"
8863}) {
8864 try {
8865 await Kx(t);
8866 } catch (e) {
8867 if (ml(e) && b.error(e.str), ht.parseError && ht.parseError(e), !t.suppressErrors)
8868 throw b.error("Use the suppressErrors option to suppress these errors"), e;
8869 }
8870}, Kx = async function({ postRenderCallback: t, querySelector: e, nodes: i } = {
8871 querySelector: ".mermaid"
8872}) {
8873 const r = ee.getConfig();
8874 b.debug(`${t ? "" : "No "}Callback function found`);
8875 let n;
8876 if (i)
8877 n = i;
8878 else if (e)
8879 n = document.querySelectorAll(e);
8880 else
8881 throw new Error("Nodes and querySelector are both undefined");
8882 b.debug(`Found ${n.length} diagrams`), (r == null ? void 0 : r.startOnLoad) !== void 0 && (b.debug("Start On Load: " + (r == null ? void 0 : r.startOnLoad)), ee.updateSiteConfig({ startOnLoad: r == null ? void 0 : r.startOnLoad }));
8883 const o = new Di.initIdGenerator(r.deterministicIds, r.deterministicIDSeed);
8884 let s;
8885 const a = [];
8886 for (const l of Array.from(n)) {
8887 b.info("Rendering diagram: " + l.id);
8888 /*! Check if previously processed */
8889 if (l.getAttribute("data-processed"))
8890 continue;
8891 l.setAttribute("data-processed", "true");
8892 const h = `mermaid-${o.next()}`;
8893 s = l.innerHTML, s = ch(Di.entityDecode(s)).trim().replace(/<br\s*\/?>/gi, "<br/>");
8894 const c = Di.detectInit(s);
8895 c && b.debug("Detected early reinit: ", c);
8896 try {
8897 const { svg: u, bindFunctions: g } = await th(h, s, l);
8898 l.innerHTML = u, t && await t(h), g && g(l);
8899 } catch (u) {
8900 Xx(u, a, ht.parseError);
8901 }
8902 }
8903 if (a.length > 0)
8904 throw a[0];
8905}, Zl = function(t) {
8906 ee.initialize(t);
8907}, Zx = async function(t, e, i) {
8908 b.warn("mermaid.init is deprecated. Please use run instead."), t && Zl(t);
8909 const r = { postRenderCallback: i, querySelector: ".mermaid" };
8910 typeof e == "string" ? r.querySelector = e : e && (e instanceof HTMLElement ? r.nodes = [e] : r.nodes = e), await Kl(r);
8911}, Jx = async (t, {
8912 lazyLoad: e = !0
8913} = {}) => {
8914 hl(...t), e === !1 && await Wm();
8915}, Jl = function() {
8916 if (ht.startOnLoad) {
8917 const { startOnLoad: t } = ee.getConfig();
8918 t && ht.run().catch((e) => b.error("Mermaid failed to initialize", e));
8919 }
8920};
8921if (typeof document < "u") {
8922 /*!
8923 * Wait for document loaded before starting the execution
8924 */
8925 window.addEventListener("load", Jl, !1);
8926}
8927const Qx = function(t) {
8928 ht.parseError = t;
8929}, ar = [];
8930let rn = !1;
8931const Ql = async () => {
8932 if (!rn) {
8933 for (rn = !0; ar.length > 0; ) {
8934 const t = ar.shift();
8935 if (t)
8936 try {
8937 await t();
8938 } catch (e) {
8939 b.error("Error executing queue", e);
8940 }
8941 }
8942 rn = !1;
8943 }
8944}, tb = async (t, e) => new Promise((i, r) => {
8945 const n = () => new Promise((o, s) => {
8946 ee.parse(t, e).then(
8947 (a) => {
8948 o(a), i(a);
8949 },
8950 (a) => {
8951 var l;
8952 b.error("Error parsing", a), (l = ht.parseError) == null || l.call(ht, a), s(a), r(a);
8953 }
8954 );
8955 });
8956 ar.push(n), Ql().catch(r);
8957}), th = (t, e, i) => new Promise((r, n) => {
8958 const o = () => new Promise((s, a) => {
8959 ee.render(t, e, i).then(
8960 (l) => {
8961 s(l), r(l);
8962 },
8963 (l) => {
8964 var h;
8965 b.error("Error parsing", l), (h = ht.parseError) == null || h.call(ht, l), a(l), n(l);
8966 }
8967 );
8968 });
8969 ar.push(o), Ql().catch(n);
8970}), ht = {
8971 startOnLoad: !0,
8972 mermaidAPI: ee,
8973 parse: tb,
8974 render: th,
8975 init: Zx,
8976 run: Kl,
8977 registerExternalDiagrams: Jx,
8978 initialize: Zl,
8979 parseError: void 0,
8980 contentLoaded: Jl,
8981 setParseErrorHandler: Qx,
8982 detectType: br
8983};
8984export {
8985 Ge as $,
8986 ol as A,
8987 Qa as B,
8988 Tt as C,
8989 Qf as D,
8990 jd as E,
8991 a_ as F,
8992 al as G,
8993 Nm as H,
8994 En as I,
8995 Ks as J,
8996 ii as K,
8997 ku as L,
8998 Qs as M,
8999 ib as N,
9000 Ot as O,
9001 ph as P,
9002 G as Q,
9003 it as R,
9004 cb as S,
9005 Kn as T,
9006 Tp as U,
9007 Fp as V,
9008 wi as W,
9009 Mn as X,
9010 $t as Y,
9011 It as Z,
9012 L as _,
9013 rl as a,
9014 Do as a0,
9015 Mu as a1,
9016 yb as a2,
9017 st as a3,
9018 Xs as a4,
9019 Wh as a5,
9020 o_ as a6,
9021 eo as a7,
9022 ni as a8,
9023 rr as a9,
9024 ri as aA,
9025 v as aB,
9026 w as aC,
9027 Ho as aD,
9028 Wo as aE,
9029 ob as aF,
9030 lb as aG,
9031 hb as aH,
9032 ab as aI,
9033 rb as aJ,
9034 Dn as aK,
9035 nb as aL,
9036 fb as aM,
9037 ub as aN,
9038 sb as aO,
9039 ch as aP,
9040 ht as aQ,
9041 MC as aa,
9042 dl as ab,
9043 Fe as ac,
9044 M0 as ad,
9045 $C as ae,
9046 AC as af,
9047 qC as ag,
9048 gx as ah,
9049 pC as ai,
9050 jl as aj,
9051 oi as ak,
9052 hC as al,
9053 Le as am,
9054 nr as an,
9055 re as ao,
9056 zt as ap,
9057 kC as aq,
9058 ws as ar,
9059 ux as as,
9060 Yl as at,
9061 Sn as au,
9062 qi as av,
9063 Ze as aw,
9064 Px as ax,
9065 Mm as ay,
9066 sl as az,
9067 il as b,
9068 Et as c,
9069 Xe as d,
9070 Ds as e,
9071 zn as f,
9072 el as g,
9073 K as h,
9074 sr as i,
9075 Ct as j,
9076 wm as k,
9077 b as l,
9078 ee as m,
9079 f_ as n,
9080 Kf as o,
9081 n_ as p,
9082 Ba as q,
9083 Z0 as r,
9084 tl as s,
9085 Bm as t,
9086 Tm as u,
9087 pl as v,
9088 c_ as w,
9089 Di as x,
9090 We as y,
9091 nl as z
9092};