import { d as e, f as t, g as n, h as r, m as i, n as a, p as o, s, t as c } from "./chunk-XZSTWKYB-CpQJcKKv.js";
//#region node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-OZEHJAEY.mjs
var l = class extends c {
	static {
		t(this, "TreemapTokenBuilder");
	}
	constructor() {
		super(["treemap"]);
	}
}, u = /classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/, d = class extends a {
	static {
		t(this, "TreemapValueConverter");
	}
	runCustomConverter(e, t, n) {
		if (e.name === "NUMBER2") return parseFloat(t.replace(/,/g, ""));
		if (e.name === "SEPARATOR" || e.name === "STRING2") return t.substring(1, t.length - 1);
		if (e.name === "INDENTATION") return t.length;
		if (e.name === "ClassDef") {
			if (typeof t != "string") return t;
			let e = u.exec(t);
			if (e) return {
				$type: "ClassDefStatement",
				className: e[1],
				styleText: e[2] || void 0
			};
		}
	}
};
function f(e) {
	let t = e.validation.TreemapValidator, n = e.validation.ValidationRegistry;
	if (n) {
		let e = { Treemap: t.checkSingleRoot.bind(t) };
		n.register(e, t);
	}
}
t(f, "registerValidationChecks");
var p = class {
	static {
		t(this, "TreemapValidator");
	}
	checkSingleRoot(e, t) {
		let n;
		for (let r of e.TreemapRows) r.item && (n === void 0 && r.indent === void 0 ? n = 0 : (r.indent === void 0 || n !== void 0 && n >= parseInt(r.indent, 10)) && t("error", "Multiple root nodes are not allowed in a treemap.", {
			node: r,
			property: "item"
		}));
	}
}, m = {
	parser: {
		TokenBuilder: /* @__PURE__ */ t(() => new l(), "TokenBuilder"),
		ValueConverter: /* @__PURE__ */ t(() => new d(), "ValueConverter")
	},
	validation: { TreemapValidator: /* @__PURE__ */ t(() => new p(), "TreemapValidator") }
};
function h(t = o) {
	let a = i(n(t), s), c = i(r({ shared: a }), e, m);
	return a.ServiceRegistry.register(c), f(c), {
		shared: a,
		Treemap: c
	};
}
t(h, "createTreemapServices");
//#endregion
export { h as n, m as t };
