+214
@@ -0,0 +1,214 @@
|
||||
import {
|
||||
ImperativeState
|
||||
} from "./chunk-VPVLR6E4.js";
|
||||
import {
|
||||
populateCommonDb
|
||||
} from "./chunk-BEGFPAJS.js";
|
||||
import {
|
||||
parse
|
||||
} from "./chunk-R5NQBCLB.js";
|
||||
import "./chunk-JH6V2QOE.js";
|
||||
import "./chunk-QLH66CIT.js";
|
||||
import "./chunk-SHHXTPWA.js";
|
||||
import "./chunk-JLNTX6TF.js";
|
||||
import "./chunk-IELG6YWI.js";
|
||||
import "./chunk-ZOQ3FUUK.js";
|
||||
import "./chunk-TAVNOOKD.js";
|
||||
import "./chunk-5D6MANWW.js";
|
||||
import "./chunk-E3W5VJ2T.js";
|
||||
import "./chunk-S4AGLBPD.js";
|
||||
import "./chunk-K3ORWWMK.js";
|
||||
import {
|
||||
selectSvgElement
|
||||
} from "./chunk-QBIGODNM.js";
|
||||
import "./chunk-BQ2Z5GT2.js";
|
||||
import {
|
||||
cleanAndMerge
|
||||
} from "./chunk-GUBXVVWZ.js";
|
||||
import "./chunk-MOBZPS7F.js";
|
||||
import {
|
||||
clear,
|
||||
configureSvgSize,
|
||||
defaultConfig_default,
|
||||
getAccDescription,
|
||||
getAccTitle,
|
||||
getConfig,
|
||||
getDiagramTitle,
|
||||
setAccDescription,
|
||||
setAccTitle,
|
||||
setDiagramTitle
|
||||
} from "./chunk-6YWVU24R.js";
|
||||
import "./chunk-5ZDVNSGT.js";
|
||||
import {
|
||||
__name,
|
||||
log
|
||||
} from "./chunk-XOKMXDAB.js";
|
||||
import "./chunk-DBU5TJLK.js";
|
||||
|
||||
// node_modules/mermaid/dist/chunks/mermaid.core/diagram-5BDNPKRD.mjs
|
||||
var state = new ImperativeState(() => ({
|
||||
cnt: 1,
|
||||
stack: [
|
||||
{
|
||||
id: 0,
|
||||
level: -1,
|
||||
name: "/",
|
||||
children: []
|
||||
}
|
||||
]
|
||||
}));
|
||||
var clear2 = __name(() => {
|
||||
state.reset();
|
||||
clear();
|
||||
}, "clear");
|
||||
var getRoot = __name(() => {
|
||||
return state.records.stack[0];
|
||||
}, "getRoot");
|
||||
var getCount = __name(() => state.records.cnt, "getCount");
|
||||
var defaultConfig = defaultConfig_default.treeView;
|
||||
var getConfig2 = __name(() => {
|
||||
return cleanAndMerge(defaultConfig, getConfig().treeView);
|
||||
}, "getConfig");
|
||||
var addNode = __name((level, name) => {
|
||||
while (level <= state.records.stack[state.records.stack.length - 1].level) {
|
||||
state.records.stack.pop();
|
||||
}
|
||||
const node = {
|
||||
id: state.records.cnt++,
|
||||
level,
|
||||
name,
|
||||
children: []
|
||||
};
|
||||
state.records.stack[state.records.stack.length - 1].children.push(node);
|
||||
state.records.stack.push(node);
|
||||
}, "addNode");
|
||||
var db = {
|
||||
clear: clear2,
|
||||
addNode,
|
||||
getRoot,
|
||||
getCount,
|
||||
getConfig: getConfig2,
|
||||
getAccTitle,
|
||||
getAccDescription,
|
||||
getDiagramTitle,
|
||||
setAccDescription,
|
||||
setAccTitle,
|
||||
setDiagramTitle
|
||||
};
|
||||
var db_default = db;
|
||||
var populate = __name((ast) => {
|
||||
populateCommonDb(ast, db_default);
|
||||
ast.nodes.map((node) => db_default.addNode(node.indent ? parseInt(node.indent) : 0, node.name));
|
||||
}, "populate");
|
||||
var parser = {
|
||||
parse: __name(async (input) => {
|
||||
const ast = await parse("treeView", input);
|
||||
log.debug(ast);
|
||||
populate(ast);
|
||||
}, "parse")
|
||||
};
|
||||
var positionLabel = __name((x, y, node, domElem, config) => {
|
||||
const label = domElem.append("text").text(node.name).attr("dominant-baseline", "middle").attr("class", "treeView-node-label");
|
||||
const { height: labelHeight, width: labelWidth } = label.node().getBBox();
|
||||
const height = labelHeight + config.paddingY * 2;
|
||||
const width = labelWidth + config.paddingX * 2;
|
||||
label.attr("x", x + config.paddingX);
|
||||
label.attr("y", y + height / 2);
|
||||
node.BBox = {
|
||||
x,
|
||||
y,
|
||||
width,
|
||||
height
|
||||
};
|
||||
}, "positionLabel");
|
||||
var positionLine = __name((domElem, x1, y1, x2, y2, lineThickness) => {
|
||||
return domElem.append("line").attr("x1", x1).attr("y1", y1).attr("x2", x2).attr("y2", y2).attr("stroke-width", lineThickness).attr("class", "treeView-node-line");
|
||||
}, "positionLine");
|
||||
var drawTree = __name((elem, root, config) => {
|
||||
let totalHeight = 0;
|
||||
let totalWidth = 0;
|
||||
const drawNode = __name((elem2, node, config2, depth) => {
|
||||
const indent = depth * (config2.rowIndent + config2.paddingX);
|
||||
positionLabel(indent, totalHeight, node, elem2, config2);
|
||||
const { height, width } = node.BBox;
|
||||
positionLine(
|
||||
elem2,
|
||||
indent - config2.rowIndent,
|
||||
totalHeight + height / 2,
|
||||
indent,
|
||||
totalHeight + height / 2,
|
||||
config2.lineThickness
|
||||
);
|
||||
totalWidth = Math.max(totalWidth, indent + width);
|
||||
totalHeight += height;
|
||||
}, "drawNode");
|
||||
const processNode = __name((node, depth = 0) => {
|
||||
drawNode(elem, node, config, depth);
|
||||
node.children.forEach((child) => {
|
||||
processNode(child, depth + 1);
|
||||
});
|
||||
const { x, y, height } = node.BBox;
|
||||
if (node.children.length) {
|
||||
const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;
|
||||
positionLine(
|
||||
elem,
|
||||
x + config.paddingX,
|
||||
y + height,
|
||||
x + config.paddingX,
|
||||
endY + endHeight / 2 + config.lineThickness / 2,
|
||||
config.lineThickness
|
||||
);
|
||||
}
|
||||
}, "processNode");
|
||||
processNode(root);
|
||||
return { totalHeight, totalWidth };
|
||||
}, "drawTree");
|
||||
var draw = __name((text, id, _ver, diagObj) => {
|
||||
log.debug("Rendering treeView diagram\n" + text);
|
||||
const db2 = diagObj.db;
|
||||
const root = db2.getRoot();
|
||||
const config = db2.getConfig();
|
||||
const svg = selectSvgElement(id);
|
||||
const treeElem = svg.append("g");
|
||||
treeElem.attr("class", "tree-view");
|
||||
const { totalHeight, totalWidth } = drawTree(treeElem, root, config);
|
||||
svg.attr("viewBox", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);
|
||||
configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);
|
||||
}, "draw");
|
||||
var renderer = {
|
||||
draw
|
||||
};
|
||||
var renderer_default = renderer;
|
||||
var defaultTreeViewDiagramStyles = {
|
||||
labelFontSize: "16px",
|
||||
labelColor: "black",
|
||||
lineColor: "black"
|
||||
};
|
||||
var styles = __name(({
|
||||
treeView
|
||||
}) => {
|
||||
const { labelFontSize, labelColor, lineColor } = cleanAndMerge(
|
||||
defaultTreeViewDiagramStyles,
|
||||
treeView
|
||||
);
|
||||
return `
|
||||
.treeView-node-label {
|
||||
font-size: ${labelFontSize};
|
||||
fill: ${labelColor};
|
||||
}
|
||||
.treeView-node-line {
|
||||
stroke: ${lineColor};
|
||||
}
|
||||
`;
|
||||
}, "styles");
|
||||
var styles_default = styles;
|
||||
var diagram = {
|
||||
db: db_default,
|
||||
renderer: renderer_default,
|
||||
parser,
|
||||
styles: styles_default
|
||||
};
|
||||
export {
|
||||
diagram
|
||||
};
|
||||
//# sourceMappingURL=diagram-5BDNPKRD-IMF7AYPE.js.map
|
||||
Reference in New Issue
Block a user