{"version":3,"file":"pieDiagram-ADFJNKIX-AcT9hkDi.chunk.mjs","sources":["../node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge,\n parseFontSize\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/pie/pieParser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/pie/pieDb.ts\nvar DEFAULT_PIE_CONFIG = defaultConfig_default.pie;\nvar DEFAULT_PIE_DB = {\n sections: /* @__PURE__ */ new Map(),\n showData: false,\n config: DEFAULT_PIE_CONFIG\n};\nvar sections = DEFAULT_PIE_DB.sections;\nvar showData = DEFAULT_PIE_DB.showData;\nvar config = structuredClone(DEFAULT_PIE_CONFIG);\nvar getConfig2 = /* @__PURE__ */ __name(() => structuredClone(config), \"getConfig\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n sections = /* @__PURE__ */ new Map();\n showData = DEFAULT_PIE_DB.showData;\n clear();\n}, \"clear\");\nvar addSection = /* @__PURE__ */ __name(({ label, value }) => {\n if (value < 0) {\n throw new Error(\n `\"${label}\" has invalid value: ${value}. Negative values are not allowed in pie charts. All slice values must be >= 0.`\n );\n }\n if (!sections.has(label)) {\n sections.set(label, value);\n log.debug(`added new section: ${label}, with value: ${value}`);\n }\n}, \"addSection\");\nvar getSections = /* @__PURE__ */ __name(() => sections, \"getSections\");\nvar setShowData = /* @__PURE__ */ __name((toggle) => {\n showData = toggle;\n}, \"setShowData\");\nvar getShowData = /* @__PURE__ */ __name(() => showData, \"getShowData\");\nvar db = {\n getConfig: getConfig2,\n clear: clear2,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n setShowData,\n getShowData\n};\n\n// src/diagrams/pie/pieParser.ts\nvar populateDb = /* @__PURE__ */ __name((ast, db2) => {\n populateCommonDb(ast, db2);\n db2.setShowData(ast.showData);\n ast.sections.map(db2.addSection);\n}, \"populateDb\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"pie\", input);\n log.debug(ast);\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/pie/pieStyles.ts\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .pieCircle{\n stroke: ${options.pieStrokeColor};\n stroke-width : ${options.pieStrokeWidth};\n opacity : ${options.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${options.pieOuterStrokeColor};\n stroke-width: ${options.pieOuterStrokeWidth};\n fill: none;\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${options.pieTitleTextSize};\n fill: ${options.pieTitleTextColor};\n font-family: ${options.fontFamily};\n }\n .slice {\n font-family: ${options.fontFamily};\n fill: ${options.pieSectionTextColor};\n font-size:${options.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${options.pieLegendTextColor};\n font-family: ${options.fontFamily};\n font-size: ${options.pieLegendTextSize};\n }\n`, \"getStyles\");\nvar pieStyles_default = getStyles;\n\n// src/diagrams/pie/pieRenderer.ts\nimport { arc, pie as d3pie, scaleOrdinal } from \"d3\";\nvar createPieArcs = /* @__PURE__ */ __name((sections2) => {\n const sum = [...sections2.values()].reduce((acc, val) => acc + val, 0);\n const pieData = [...sections2.entries()].map(([label, value]) => ({ label, value })).filter((d) => d.value / sum * 100 >= 1).sort((a, b) => b.value - a.value);\n const pie = d3pie().value((d) => d.value);\n return pie(pieData);\n}, \"createPieArcs\");\nvar draw = /* @__PURE__ */ __name((text, id, _version, diagObj) => {\n log.debug(\"rendering pie chart\\n\" + text);\n const db2 = diagObj.db;\n const globalConfig = getConfig();\n const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie);\n const MARGIN = 40;\n const LEGEND_RECT_SIZE = 18;\n const LEGEND_SPACING = 4;\n const height = 450;\n const pieWidth = height;\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\");\n group.attr(\"transform\", \"translate(\" + pieWidth / 2 + \",\" + height / 2 + \")\");\n const { themeVariables } = globalConfig;\n let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);\n outerStrokeWidth ??= 2;\n const textPosition = pieConfig.textPosition;\n const radius = Math.min(pieWidth, height) / 2 - MARGIN;\n const arcGenerator = arc().innerRadius(0).outerRadius(radius);\n const labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);\n group.append(\"circle\").attr(\"cx\", 0).attr(\"cy\", 0).attr(\"r\", radius + outerStrokeWidth / 2).attr(\"class\", \"pieOuterCircle\");\n const sections2 = db2.getSections();\n const arcs = createPieArcs(sections2);\n const myGeneratedColors = [\n themeVariables.pie1,\n themeVariables.pie2,\n themeVariables.pie3,\n themeVariables.pie4,\n themeVariables.pie5,\n themeVariables.pie6,\n themeVariables.pie7,\n themeVariables.pie8,\n themeVariables.pie9,\n themeVariables.pie10,\n themeVariables.pie11,\n themeVariables.pie12\n ];\n let sum = 0;\n sections2.forEach((section) => {\n sum += section;\n });\n const filteredArcs = arcs.filter((datum) => (datum.data.value / sum * 100).toFixed(0) !== \"0\");\n const color = scaleOrdinal(myGeneratedColors);\n group.selectAll(\"mySlices\").data(filteredArcs).enter().append(\"path\").attr(\"d\", arcGenerator).attr(\"fill\", (datum) => {\n return color(datum.data.label);\n }).attr(\"class\", \"pieCircle\");\n group.selectAll(\"mySlices\").data(filteredArcs).enter().append(\"text\").text((datum) => {\n return (datum.data.value / sum * 100).toFixed(0) + \"%\";\n }).attr(\"transform\", (datum) => {\n return \"translate(\" + labelArcGenerator.centroid(datum) + \")\";\n }).style(\"text-anchor\", \"middle\").attr(\"class\", \"slice\");\n group.append(\"text\").text(db2.getDiagramTitle()).attr(\"x\", 0).attr(\"y\", -(height - 50) / 2).attr(\"class\", \"pieTitleText\");\n const allSectionData = [...sections2.entries()].map(([label, value]) => ({\n label,\n value\n }));\n const legend = group.selectAll(\".legend\").data(allSectionData).enter().append(\"g\").attr(\"class\", \"legend\").attr(\"transform\", (_datum, index) => {\n const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING;\n const offset = height2 * allSectionData.length / 2;\n const horizontal = 12 * LEGEND_RECT_SIZE;\n const vertical = index * height2 - offset;\n return \"translate(\" + horizontal + \",\" + vertical + \")\";\n });\n legend.append(\"rect\").attr(\"width\", LEGEND_RECT_SIZE).attr(\"height\", LEGEND_RECT_SIZE).style(\"fill\", (d) => color(d.label)).style(\"stroke\", (d) => color(d.label));\n legend.append(\"text\").attr(\"x\", LEGEND_RECT_SIZE + LEGEND_SPACING).attr(\"y\", LEGEND_RECT_SIZE - LEGEND_SPACING).text((d) => {\n if (db2.getShowData()) {\n return `${d.label} [${d.value}]`;\n }\n return d.label;\n });\n const longestTextWidth = Math.max(\n ...legend.selectAll(\"text\").nodes().map((node) => node?.getBoundingClientRect().width ?? 0)\n );\n const totalWidth = pieWidth + MARGIN + LEGEND_RECT_SIZE + LEGEND_SPACING + longestTextWidth;\n svg.attr(\"viewBox\", `0 0 ${totalWidth} ${height}`);\n configureSvgSize(svg, height, totalWidth, pieConfig.useMaxWidth);\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/pie/pieDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles: pieStyles_default\n};\nexport {\n diagram\n};\n"],"names":["DEFAULT_PIE_CONFIG","defaultConfig_default","DEFAULT_PIE_DB","sections","showData","config","getConfig2","__name","clear2","clear","addSection","label","value","log","getSections","setShowData","toggle","getShowData","db","setDiagramTitle","getDiagramTitle","setAccTitle","getAccTitle","setAccDescription","getAccDescription","populateDb","ast","db2","populateCommonDb","parser","input","parse","getStyles","options","pieStyles_default","createPieArcs","sections2","sum","acc","val","pieData","d","a","b","d3pie","draw","text","id","_version","diagObj","globalConfig","getConfig","pieConfig","cleanAndMerge","MARGIN","LEGEND_RECT_SIZE","LEGEND_SPACING","height","pieWidth","svg","selectSvgElement","group","themeVariables","outerStrokeWidth","parseFontSize","textPosition","radius","arcGenerator","arc","labelArcGenerator","arcs","myGeneratedColors","section","filteredArcs","datum","color","scaleOrdinal","allSectionData","legend","_datum","index","height2","offset","horizontal","vertical","longestTextWidth","node","totalWidth","configureSvgSize","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0]}