import { w as e } from "./src-BEYP07TO.js";
import { C as t, D as n, E as r, O as i, S as a, T as o, _ as s, b as c, h as l, v as u, w as d, x as f, y as p } from "./chunk-GEFDOKGD-bXEkwPrJ.js";
import { n as m, r as h } from "./src-hxErHTV1.js";
import { b as g, w as _ } from "./chunk-7R4GIKGN-DiZ1HYFd.js";
import { t as v } from "./line-xLJn8e8J.js";
import { n as y } from "./chunk-PU5JKC2W-CAfe4Tg3.js";
import { i as b, n as x, r as S, t as C } from "./chunk-MX3YWQON-DnBlqD44.js";
import { n as w } from "./chunk-YBOYWFTD-DVqQ1pen.js";
import { i as T, n as ee } from "./chunk-PQ6SQG4A-DPz_e-Es.js";
import { t as E } from "./rough.esm-Czyj4U3Q.js";
import { r as D } from "./chunk-KYZI473N-4Y4_4kXL.js";
//#region node_modules/mermaid/dist/chunks/mermaid.core/chunk-O4XLMI2P.mjs
var te = /* @__PURE__ */ m((e, t, n, r, i, a) => {
	t.arrowTypeStart && k(e, "start", t.arrowTypeStart, n, r, i, a), t.arrowTypeEnd && k(e, "end", t.arrowTypeEnd, n, r, i, a);
}, "addEdgeMarkers"), O = {
	arrow_cross: {
		type: "cross",
		fill: !1
	},
	arrow_point: {
		type: "point",
		fill: !0
	},
	arrow_barb: {
		type: "barb",
		fill: !0
	},
	arrow_circle: {
		type: "circle",
		fill: !1
	},
	aggregation: {
		type: "aggregation",
		fill: !1
	},
	extension: {
		type: "extension",
		fill: !1
	},
	composition: {
		type: "composition",
		fill: !0
	},
	dependency: {
		type: "dependency",
		fill: !0
	},
	lollipop: {
		type: "lollipop",
		fill: !1
	},
	only_one: {
		type: "onlyOne",
		fill: !1
	},
	zero_or_one: {
		type: "zeroOrOne",
		fill: !1
	},
	one_or_more: {
		type: "oneOrMore",
		fill: !1
	},
	zero_or_more: {
		type: "zeroOrMore",
		fill: !1
	},
	requirement_arrow: {
		type: "requirement_arrow",
		fill: !1
	},
	requirement_contains: {
		type: "requirement_contains",
		fill: !1
	}
}, k = /* @__PURE__ */ m((e, t, n, r, i, a, o) => {
	let s = O[n];
	if (!s) {
		h.warn(`Unknown arrow type: ${n}`);
		return;
	}
	let c = `${i}_${a}-${s.type}${t === "start" ? "Start" : "End"}`;
	if (o && o.trim() !== "") {
		let n = `${c}_${o.replace(/[^\dA-Za-z]/g, "_")}`;
		if (!document.getElementById(n)) {
			let e = document.getElementById(c);
			if (e) {
				let t = e.cloneNode(!0);
				t.id = n, t.querySelectorAll("path, circle, line").forEach((e) => {
					e.setAttribute("stroke", o), s.fill && e.setAttribute("fill", o);
				}), e.parentNode?.appendChild(t);
			}
		}
		e.attr(`marker-${t}`, `url(${r}#${n})`);
	} else e.attr(`marker-${t}`, `url(${r}#${c})`);
}, "addEdgeMarker"), ne = /* @__PURE__ */ m((e) => typeof e == "string" ? e : g()?.flowchart?.curve, "resolveEdgeCurveType"), A = /* @__PURE__ */ new Map(), j = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ m(() => {
	A.clear(), j.clear();
}, "clear"), N = /* @__PURE__ */ m((e) => e ? typeof e == "string" ? e : e.reduce((e, t) => e + ";" + t, "") : "", "getLabelStyles"), P = /* @__PURE__ */ m(async (t, n) => {
	let r = g(), i = _(r), { labelStyles: a } = T(n);
	n.labelStyle = a;
	let o = t.insert("g").attr("class", "edgeLabel"), s = o.insert("g").attr("class", "label").attr("data-id", n.id), c = n.labelType === "markdown", l = await y(t, n.label, {
		style: N(n.labelStyle),
		useHtmlLabels: i,
		addSvgBackground: !0,
		isNode: !1,
		markdown: c,
		width: void 0
	}, r);
	s.node().appendChild(l), h.info("abc82", n, n.labelType);
	let u = l.getBBox(), d = u;
	if (i) {
		let t = l.children[0], n = e(l);
		u = t.getBoundingClientRect(), d = u, n.attr("width", u.width), n.attr("height", u.height);
	} else {
		let t = e(l).select("text").node();
		t && typeof t.getBBox == "function" && (d = t.getBBox());
	}
	s.attr("transform", C(d, i)), A.set(n.id, o), n.width = u.width, n.height = u.height;
	let f;
	if (n.startLabelLeft) {
		let r = t.insert("g").attr("class", "edgeTerminals"), a = r.insert("g").attr("class", "inner"), o = await D(a, n.startLabelLeft, N(n.labelStyle) || "", !1, !1);
		f = o;
		let s = o.getBBox();
		if (i) {
			let t = o.children[0], n = e(o);
			s = t.getBoundingClientRect(), n.attr("width", s.width), n.attr("height", s.height);
		}
		a.attr("transform", C(s, i)), j.get(n.id) || j.set(n.id, {}), j.get(n.id).startLeft = r, F(f, n.startLabelLeft);
	}
	if (n.startLabelRight) {
		let r = t.insert("g").attr("class", "edgeTerminals"), a = r.insert("g").attr("class", "inner"), o = await D(a, n.startLabelRight, N(n.labelStyle) || "", !1, !1);
		f = o, a.node().appendChild(o);
		let s = o.getBBox();
		if (i) {
			let t = o.children[0], n = e(o);
			s = t.getBoundingClientRect(), n.attr("width", s.width), n.attr("height", s.height);
		}
		a.attr("transform", C(s, i)), j.get(n.id) || j.set(n.id, {}), j.get(n.id).startRight = r, F(f, n.startLabelRight);
	}
	if (n.endLabelLeft) {
		let r = t.insert("g").attr("class", "edgeTerminals"), a = r.insert("g").attr("class", "inner"), o = await D(a, n.endLabelLeft, N(n.labelStyle) || "", !1, !1);
		f = o;
		let s = o.getBBox();
		if (i) {
			let t = o.children[0], n = e(o);
			s = t.getBoundingClientRect(), n.attr("width", s.width), n.attr("height", s.height);
		}
		a.attr("transform", C(s, i)), r.node().appendChild(o), j.get(n.id) || j.set(n.id, {}), j.get(n.id).endLeft = r, F(f, n.endLabelLeft);
	}
	if (n.endLabelRight) {
		let r = t.insert("g").attr("class", "edgeTerminals"), a = r.insert("g").attr("class", "inner"), o = await D(a, n.endLabelRight, N(n.labelStyle) || "", !1, !1);
		f = o;
		let s = o.getBBox();
		if (i) {
			let t = o.children[0], n = e(o);
			s = t.getBoundingClientRect(), n.attr("width", s.width), n.attr("height", s.height);
		}
		a.attr("transform", C(s, i)), r.node().appendChild(o), j.get(n.id) || j.set(n.id, {}), j.get(n.id).endRight = r, F(f, n.endLabelRight);
	}
	return l;
}, "insertEdgeLabel");
function F(e, t) {
	_(g()) && e && (e.style.width = t.length * 9 + "px", e.style.height = "12px");
}
m(F, "setTerminalWidth");
var I = /* @__PURE__ */ m((e, t) => {
	h.debug("Moving label abc88 ", e.id, e.label, A.get(e.id), t);
	let n = t.updatedPath ? t.updatedPath : t.originalPath, { subGraphTitleTotalMargin: r } = w(g());
	if (e.label) {
		let i = A.get(e.id), a = e.x, o = e.y;
		if (n) {
			let r = l.calcLabelPosition(n);
			h.debug("Moving label " + e.label + " from (", a, ",", o, ") to (", r.x, ",", r.y, ") abc88"), t.updatedPath && (a = r.x, o = r.y);
		}
		i.attr("transform", `translate(${a}, ${o + r / 2})`);
	}
	if (e.startLabelLeft) {
		let t = j.get(e.id).startLeft, r = e.x, i = e.y;
		if (n) {
			let t = l.calcTerminalLabelPosition(e.arrowTypeStart ? 10 : 0, "start_left", n);
			r = t.x, i = t.y;
		}
		t.attr("transform", `translate(${r}, ${i})`);
	}
	if (e.startLabelRight) {
		let t = j.get(e.id).startRight, r = e.x, i = e.y;
		if (n) {
			let t = l.calcTerminalLabelPosition(e.arrowTypeStart ? 10 : 0, "start_right", n);
			r = t.x, i = t.y;
		}
		t.attr("transform", `translate(${r}, ${i})`);
	}
	if (e.endLabelLeft) {
		let t = j.get(e.id).endLeft, r = e.x, i = e.y;
		if (n) {
			let t = l.calcTerminalLabelPosition(e.arrowTypeEnd ? 10 : 0, "end_left", n);
			r = t.x, i = t.y;
		}
		t.attr("transform", `translate(${r}, ${i})`);
	}
	if (e.endLabelRight) {
		let t = j.get(e.id).endRight, r = e.x, i = e.y;
		if (n) {
			let t = l.calcTerminalLabelPosition(e.arrowTypeEnd ? 10 : 0, "end_right", n);
			r = t.x, i = t.y;
		}
		t.attr("transform", `translate(${r}, ${i})`);
	}
}, "positionEdgeLabel"), L = /* @__PURE__ */ m((e, t) => {
	let n = e.x, r = e.y, i = Math.abs(t.x - n), a = Math.abs(t.y - r), o = e.width / 2, s = e.height / 2;
	return i >= o || a >= s;
}, "outsideNode"), R = /* @__PURE__ */ m((e, t, n) => {
	h.debug(`intersection calc abc89:
  outsidePoint: ${JSON.stringify(t)}
  insidePoint : ${JSON.stringify(n)}
  node        : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);
	let r = e.x, i = e.y, a = Math.abs(r - n.x), o = e.width / 2, s = n.x < t.x ? o - a : o + a, c = e.height / 2, l = Math.abs(t.y - n.y), u = Math.abs(t.x - n.x);
	if (Math.abs(i - t.y) * o > Math.abs(r - t.x) * c) {
		let e = n.y < t.y ? t.y - c - i : i - c - t.y;
		s = u * e / l;
		let r = {
			x: n.x < t.x ? n.x + s : n.x - u + s,
			y: n.y < t.y ? n.y + l - e : n.y - l + e
		};
		return s === 0 && (r.x = t.x, r.y = t.y), u === 0 && (r.x = t.x), l === 0 && (r.y = t.y), h.debug(`abc89 top/bottom calc, Q ${l}, q ${e}, R ${u}, r ${s}`, r), r;
	} else {
		s = n.x < t.x ? t.x - o - r : r - o - t.x;
		let e = l * s / u, i = n.x < t.x ? n.x + u - s : n.x - u + s, a = n.y < t.y ? n.y + e : n.y - e;
		return h.debug(`sides calc abc89, Q ${l}, q ${e}, R ${u}, r ${s}`, {
			_x: i,
			_y: a
		}), s === 0 && (i = t.x, a = t.y), u === 0 && (i = t.x), l === 0 && (a = t.y), {
			x: i,
			y: a
		};
	}
}, "intersection"), z = /* @__PURE__ */ m((e, t) => {
	h.warn("abc88 cutPathAtIntersect", e, t);
	let n = [], r = e[0], i = !1;
	return e.forEach((e) => {
		if (h.info("abc88 checking point", e, t), !L(t, e) && !i) {
			let a = R(t, r, e);
			h.debug("abc88 inside", e, r, a), h.debug("abc88 intersection", a, t);
			let o = !1;
			n.forEach((e) => {
				o ||= e.x === a.x && e.y === a.y;
			}), n.some((e) => e.x === a.x && e.y === a.y) ? h.warn("abc88 no intersect", a, n) : n.push(a), i = !0;
		} else h.warn("abc88 outside", e, r), r = e, i || n.push(e);
	}), h.debug("returning points", n), n;
}, "cutPathAtIntersect");
function B(e) {
	let t = [], n = [];
	for (let r = 1; r < e.length - 1; r++) {
		let i = e[r - 1], a = e[r], o = e[r + 1];
		(i.x === a.x && a.y === o.y && Math.abs(a.x - o.x) > 5 && Math.abs(a.y - i.y) > 5 || i.y === a.y && a.x === o.x && Math.abs(a.x - i.x) > 5 && Math.abs(a.y - o.y) > 5) && (t.push(a), n.push(r));
	}
	return {
		cornerPoints: t,
		cornerPointPositions: n
	};
}
m(B, "extractCornerPoints");
var V = /* @__PURE__ */ m(function(e, t, n) {
	let r = t.x - e.x, i = t.y - e.y, a = n / Math.sqrt(r * r + i * i);
	return {
		x: t.x - a * r,
		y: t.y - a * i
	};
}, "findAdjacentPoint"), H = /* @__PURE__ */ m(function(e) {
	let { cornerPointPositions: t } = B(e), n = [];
	for (let r = 0; r < e.length; r++) if (t.includes(r)) {
		let t = e[r - 1], i = e[r + 1], a = e[r], o = V(t, a, 5), s = V(i, a, 5), c = s.x - o.x, l = s.y - o.y;
		n.push(o);
		let u = Math.sqrt(2) * 2, d = {
			x: a.x,
			y: a.y
		};
		Math.abs(i.x - t.x) > 10 && Math.abs(i.y - t.y) >= 10 ? (h.debug("Corner point fixing", Math.abs(i.x - t.x), Math.abs(i.y - t.y)), d = a.x === o.x ? {
			x: c < 0 ? o.x - 5 + u : o.x + 5 - u,
			y: l < 0 ? o.y - u : o.y + u
		} : {
			x: c < 0 ? o.x - u : o.x + u,
			y: l < 0 ? o.y - 5 + u : o.y + 5 - u
		}) : h.debug("Corner point skipping fixing", Math.abs(i.x - t.x), Math.abs(i.y - t.y)), n.push(d, s);
	} else n.push(e[r]);
	return n;
}, "fixCorners"), re = /* @__PURE__ */ m((e, t, n) => {
	let r = e - t - n, i = Math.floor(r / 4);
	return `0 ${t} ${Array(i).fill("2 2").join(" ")} ${n}`;
}, "generateDashArray"), U = /* @__PURE__ */ m(function(m, _, y, S, C, w, T, D = !1) {
	let { handDrawnSeed: O } = g(), k = _.points, A = !1, j = C;
	var M = w;
	let N = [];
	for (let e in _.cssCompiledStyles) ee(e) || N.push(_.cssCompiledStyles[e]);
	h.debug("UIO intersect check", _.points, M.x, j.x), M.intersect && j.intersect && !D && (k = k.slice(1, _.points.length - 1), k.unshift(j.intersect(k[0])), h.debug("Last point UIO", _.start, "-->", _.end, k[k.length - 1], M, M.intersect(k[k.length - 1])), k.push(M.intersect(k[k.length - 1])));
	let P = btoa(JSON.stringify(k));
	_.toCluster && (h.info("to cluster abc88", y.get(_.toCluster)), k = z(_.points, y.get(_.toCluster).node), A = !0), _.fromCluster && (h.debug("from cluster abc88", y.get(_.fromCluster), JSON.stringify(k, null, 2)), k = z(k.reverse(), y.get(_.fromCluster).node).reverse(), A = !0);
	let F = k.filter((e) => !Number.isNaN(e.y)), I = ne(_.curve);
	I !== "rounded" && (F = H(F));
	let L = i;
	switch (I) {
		case "linear":
			L = i;
			break;
		case "basis":
			L = o;
			break;
		case "cardinal":
			L = d;
			break;
		case "bumpX":
			L = r;
			break;
		case "bumpY":
			L = n;
			break;
		case "catmullRom":
			L = t;
			break;
		case "monotoneX":
			L = f;
			break;
		case "monotoneY":
			L = a;
			break;
		case "natural":
			L = c;
			break;
		case "step":
			L = p;
			break;
		case "stepAfter":
			L = s;
			break;
		case "stepBefore":
			L = u;
			break;
		case "rounded":
			L = i;
			break;
		default: L = o;
	}
	let { x: R, y: B } = x(_), V = v().x(R).y(B).curve(L), U;
	switch (_.thickness) {
		case "normal":
			U = "edge-thickness-normal";
			break;
		case "thick":
			U = "edge-thickness-thick";
			break;
		case "invisible":
			U = "edge-thickness-invisible";
			break;
		default: U = "edge-thickness-normal";
	}
	switch (_.pattern) {
		case "solid":
			U += " edge-pattern-solid";
			break;
		case "dotted":
			U += " edge-pattern-dotted";
			break;
		case "dashed":
			U += " edge-pattern-dashed";
			break;
		default: U += " edge-pattern-solid";
	}
	let G, q = I === "rounded" ? W(K(F, _), 5) : V(F), J = Array.isArray(_.style) ? _.style : [_.style], Y = J.find((e) => e?.startsWith("stroke:")), X = "";
	_.animate && (X = "edge-animation-fast"), _.animation && (X = "edge-animation-" + _.animation);
	let Z = !1;
	if (_.look === "handDrawn") {
		let t = E.svg(m);
		Object.assign([], F);
		let n = t.path(q, {
			roughness: .3,
			seed: O
		});
		U += " transition", G = e(n).select("path").attr("id", _.id).attr("class", " " + U + (_.classes ? " " + _.classes : "") + (X ? " " + X : "")).attr("style", J ? J.reduce((e, t) => e + ";" + t, "") : "");
		let r = G.attr("d");
		G.attr("d", r), m.node().appendChild(G.node());
	} else {
		let e = N.join(";"), t = J ? J.reduce((e, t) => e + t + ";", "") : "", n = (e ? e + ";" + t + ";" : t) + ";" + (J ? J.reduce((e, t) => e + ";" + t, "") : "");
		G = m.append("path").attr("d", q).attr("id", _.id).attr("class", " " + U + (_.classes ? " " + _.classes : "") + (X ? " " + X : "")).attr("style", n), Y = n.match(/stroke:([^;]+)/)?.[1], Z = _.animate === !0 || !!_.animation || e.includes("animation");
		let r = G.node(), i = typeof r.getTotalLength == "function" ? r.getTotalLength() : 0, a = b[_.arrowTypeStart] || 0, o = b[_.arrowTypeEnd] || 0;
		if (_.look === "neo" && !Z) {
			let e = `stroke-dasharray: ${_.pattern === "dotted" || _.pattern === "dashed" ? re(i, a, o) : `0 ${a} ${i - a - o} ${o}`}; stroke-dashoffset: 0;`;
			G.attr("style", e + G.attr("style"));
		}
	}
	G.attr("data-edge", !0), G.attr("data-et", "edge"), G.attr("data-id", _.id), G.attr("data-points", P), _.showPoints && F.forEach((e) => {
		m.append("circle").style("stroke", "red").style("fill", "red").attr("r", 1).attr("cx", e.x).attr("cy", e.y);
	});
	let Q = "";
	(g().flowchart.arrowMarkerAbsolute || g().state.arrowMarkerAbsolute) && (Q = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, Q = Q.replace(/\(/g, "\\(").replace(/\)/g, "\\)")), h.info("arrowTypeStart", _.arrowTypeStart), h.info("arrowTypeEnd", _.arrowTypeEnd), te(G, _, Q, T, S, Y);
	let ie = Math.floor(k.length / 2), ae = k[ie];
	l.isLabelCoordinateInPath(ae, G.attr("d")) || (A = !0);
	let $ = {};
	return A && ($.updatedPath = k), $.originalPath = _.points, $;
}, "insertEdge");
function W(e, t) {
	if (e.length < 2) return "";
	let n = "", r = e.length, i = 1e-5;
	for (let a = 0; a < r; a++) {
		let o = e[a], s = e[a - 1], c = e[a + 1];
		if (a === 0) n += `M${o.x},${o.y}`;
		else if (a === r - 1) n += `L${o.x},${o.y}`;
		else {
			let e = o.x - s.x, r = o.y - s.y, a = c.x - o.x, l = c.y - o.y, u = Math.hypot(e, r), d = Math.hypot(a, l);
			if (u < i || d < i) {
				n += `L${o.x},${o.y}`;
				continue;
			}
			let f = e / u, p = r / u, m = a / d, h = l / d, g = f * m + p * h, _ = Math.acos(Math.max(-1, Math.min(1, g)));
			if (_ < i || Math.abs(Math.PI - _) < i) {
				n += `L${o.x},${o.y}`;
				continue;
			}
			let v = Math.min(t / Math.sin(_ / 2), u / 2, d / 2), y = o.x - f * v, b = o.y - p * v, x = o.x + m * v, S = o.y + h * v;
			n += `L${y},${b}`, n += `Q${o.x},${o.y} ${x},${S}`;
		}
	}
	return n;
}
m(W, "generateRoundedPath");
function G(e, t) {
	if (!e || !t) return {
		angle: 0,
		deltaX: 0,
		deltaY: 0
	};
	let n = t.x - e.x, r = t.y - e.y;
	return {
		angle: Math.atan2(r, n),
		deltaX: n,
		deltaY: r
	};
}
m(G, "calculateDeltaAndAngle");
function K(e, t) {
	let n = e.map((e) => ({ ...e }));
	if (e.length >= 2 && S[t.arrowTypeStart]) {
		let r = S[t.arrowTypeStart], i = e[0], a = e[1], { angle: o } = G(i, a), s = r * Math.cos(o), c = r * Math.sin(o);
		n[0].x = i.x + s, n[0].y = i.y + c;
	}
	let r = e.length;
	if (r >= 2 && S[t.arrowTypeEnd]) {
		let i = S[t.arrowTypeEnd], a = e[r - 1], o = e[r - 2], { angle: s } = G(o, a), c = i * Math.cos(s), l = i * Math.sin(s);
		n[r - 1].x = a.x - c, n[r - 1].y = a.y - l;
	}
	return n;
}
m(K, "applyMarkerOffsetsToPoints");
var q = /* @__PURE__ */ m((e, t, n, r) => {
	t.forEach((t) => {
		J[t](e, n, r);
	});
}, "insertMarkers"), J = {
	extension: /* @__PURE__ */ m((e, t, n) => {
		h.trace("Making markers for ", n), e.append("defs").append("marker").attr("id", n + "_" + t + "-extensionStart").attr("class", "marker extension " + t).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), e.append("defs").append("marker").attr("id", n + "_" + t + "-extensionEnd").attr("class", "marker extension " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
	}, "extension"),
	composition: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-compositionStart").attr("class", "marker composition " + t).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", n + "_" + t + "-compositionEnd").attr("class", "marker composition " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
	}, "composition"),
	aggregation: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-aggregationStart").attr("class", "marker aggregation " + t).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", n + "_" + t + "-aggregationEnd").attr("class", "marker aggregation " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
	}, "aggregation"),
	dependency: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-dependencyStart").attr("class", "marker dependency " + t).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", n + "_" + t + "-dependencyEnd").attr("class", "marker dependency " + t).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
	}, "dependency"),
	lollipop: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-lollipopStart").attr("class", "marker lollipop " + t).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6), e.append("defs").append("marker").attr("id", n + "_" + t + "-lollipopEnd").attr("class", "marker lollipop " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
	}, "lollipop"),
	point: /* @__PURE__ */ m((e, t, n) => {
		e.append("marker").attr("id", n + "_" + t + "-pointEnd").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"), e.append("marker").attr("id", n + "_" + t + "-pointStart").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
	}, "point"),
	circle: /* @__PURE__ */ m((e, t, n) => {
		e.append("marker").attr("id", n + "_" + t + "-circleEnd").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"), e.append("marker").attr("id", n + "_" + t + "-circleStart").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
	}, "circle"),
	cross: /* @__PURE__ */ m((e, t, n) => {
		e.append("marker").attr("id", n + "_" + t + "-crossEnd").attr("class", "marker cross " + t).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"), e.append("marker").attr("id", n + "_" + t + "-crossStart").attr("class", "marker cross " + t).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
	}, "cross"),
	barb: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "userSpaceOnUse").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
	}, "barb"),
	only_one: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-onlyOneStart").attr("class", "marker onlyOne " + t).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M9,0 L9,18 M15,0 L15,18"), e.append("defs").append("marker").attr("id", n + "_" + t + "-onlyOneEnd").attr("class", "marker onlyOne " + t).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M3,0 L3,18 M9,0 L9,18");
	}, "only_one"),
	zero_or_one: /* @__PURE__ */ m((e, t, n) => {
		let r = e.append("defs").append("marker").attr("id", n + "_" + t + "-zeroOrOneStart").attr("class", "marker zeroOrOne " + t).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
		r.append("circle").attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6), r.append("path").attr("d", "M9,0 L9,18");
		let i = e.append("defs").append("marker").attr("id", n + "_" + t + "-zeroOrOneEnd").attr("class", "marker zeroOrOne " + t).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
		i.append("circle").attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6), i.append("path").attr("d", "M21,0 L21,18");
	}, "zero_or_one"),
	one_or_more: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-oneOrMoreStart").attr("class", "marker oneOrMore " + t).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"), e.append("defs").append("marker").attr("id", n + "_" + t + "-oneOrMoreEnd").attr("class", "marker oneOrMore " + t).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
	}, "one_or_more"),
	zero_or_more: /* @__PURE__ */ m((e, t, n) => {
		let r = e.append("defs").append("marker").attr("id", n + "_" + t + "-zeroOrMoreStart").attr("class", "marker zeroOrMore " + t).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
		r.append("circle").attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6), r.append("path").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
		let i = e.append("defs").append("marker").attr("id", n + "_" + t + "-zeroOrMoreEnd").attr("class", "marker zeroOrMore " + t).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
		i.append("circle").attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6), i.append("path").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
	}, "zero_or_more"),
	requirement_arrow: /* @__PURE__ */ m((e, t, n) => {
		e.append("defs").append("marker").attr("id", n + "_" + t + "-requirement_arrowEnd").attr("refX", 20).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("path").attr("d", "M0,0\n      L20,10\n      M20,10\n      L0,20");
	}, "requirement_arrow"),
	requirement_contains: /* @__PURE__ */ m((e, t, n) => {
		let r = e.append("defs").append("marker").attr("id", n + "_" + t + "-requirement_containsStart").attr("refX", 0).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("g");
		r.append("circle").attr("cx", 10).attr("cy", 10).attr("r", 9).attr("fill", "none"), r.append("line").attr("x1", 1).attr("x2", 19).attr("y1", 10).attr("y2", 10), r.append("line").attr("y1", 1).attr("y2", 19).attr("x1", 10).attr("x2", 10);
	}, "requirement_contains")
}, Y = q;
//#endregion
export { I as a, Y as i, U as n, P as r, M as t };

//# sourceMappingURL=chunk-O4XLMI2P-BcKxBhcn.js.map