import { AbstractMermaidTokenBuilder as e, AbstractMermaidValueConverter as t, EmptyFileSystem as n, MermaidGeneratedSharedModule as r, TreemapGrammarGeneratedModule as i, __name as a, createDefaultCoreModule as o, createDefaultSharedCoreModule as s, inject as c } from "./chunk-NNHCCRGN.js";
//#region ../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-BR22UD5L.mjs
var l = class extends e {
	static {
		a(this, "TreemapTokenBuilder");
	}
	constructor() {
		super(["treemap"]);
	}
}, u = /classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/, d = class extends t {
	static {
		a(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);
	}
}
a(f, "registerValidationChecks");
var p = class {
	static {
		a(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__ */ a(() => new l(), "TokenBuilder"),
		ValueConverter: /* @__PURE__ */ a(() => new d(), "ValueConverter")
	},
	validation: { TreemapValidator: /* @__PURE__ */ a(() => new p(), "TreemapValidator") }
};
function h(e = n) {
	let t = c(s(e), r), a = c(o({ shared: t }), i, m);
	return t.ServiceRegistry.register(a), f(a), {
		shared: t,
		Treemap: a
	};
}
a(h, "createTreemapServices");
//#endregion
export { m as TreemapModule, h as createTreemapServices };

//# sourceMappingURL=chunk-BR22UD5L.js.map