markdown-flow-ui
Version:
A React UI library for rendering markdown with interactive flow components, typewriter effects, and plugin support
1 lines • 21.3 kB
Source Map (JSON)
{"version":3,"file":"diagram-RP2FKANI-NMJLjAcl.mjs","sources":["../node_modules/mermaid/dist/chunks/mermaid.core/diagram-RP2FKANI.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-ANTBXLJU.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-U37J5Y7L.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-T57MJCP2.mjs\";\nimport {\n __name,\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-VIW5F6AA.mjs\";\n\n// src/diagrams/radar/db.ts\nvar defaultOptions = {\n showLegend: true,\n ticks: 5,\n max: null,\n min: 0,\n graticule: \"circle\"\n};\nvar defaultRadarData = {\n axes: [],\n curves: [],\n options: defaultOptions\n};\nvar data = structuredClone(defaultRadarData);\nvar DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_RADAR_CONFIG,\n ...getConfig().radar\n });\n return config;\n}, \"getConfig\");\nvar getAxes = /* @__PURE__ */ __name(() => data.axes, \"getAxes\");\nvar getCurves = /* @__PURE__ */ __name(() => data.curves, \"getCurves\");\nvar getOptions = /* @__PURE__ */ __name(() => data.options, \"getOptions\");\nvar setAxes = /* @__PURE__ */ __name((axes) => {\n data.axes = axes.map((axis) => {\n return {\n name: axis.name,\n label: axis.label ?? axis.name\n };\n });\n}, \"setAxes\");\nvar setCurves = /* @__PURE__ */ __name((curves) => {\n data.curves = curves.map((curve) => {\n return {\n name: curve.name,\n label: curve.label ?? curve.name,\n entries: computeCurveEntries(curve.entries)\n };\n });\n}, \"setCurves\");\nvar computeCurveEntries = /* @__PURE__ */ __name((entries) => {\n if (entries[0].axis == void 0) {\n return entries.map((entry) => entry.value);\n }\n const axes = getAxes();\n if (axes.length === 0) {\n throw new Error(\"Axes must be populated before curves for reference entries\");\n }\n return axes.map((axis) => {\n const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);\n if (entry === void 0) {\n throw new Error(\"Missing entry for axis \" + axis.label);\n }\n return entry.value;\n });\n}, \"computeCurveEntries\");\nvar setOptions = /* @__PURE__ */ __name((options) => {\n const optionMap = options.reduce(\n (acc, option) => {\n acc[option.name] = option;\n return acc;\n },\n {}\n );\n data.options = {\n showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,\n ticks: optionMap.ticks?.value ?? defaultOptions.ticks,\n max: optionMap.max?.value ?? defaultOptions.max,\n min: optionMap.min?.value ?? defaultOptions.min,\n graticule: optionMap.graticule?.value ?? defaultOptions.graticule\n };\n}, \"setOptions\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultRadarData);\n}, \"clear\");\nvar db = {\n getAxes,\n getCurves,\n getOptions,\n setAxes,\n setCurves,\n setOptions,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/radar/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n const { axes, curves, options } = ast;\n db.setAxes(axes);\n db.setCurves(curves);\n db.setOptions(options);\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"radar\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/radar/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const axes = db2.getAxes();\n const curves = db2.getCurves();\n const options = db2.getOptions();\n const config = db2.getConfig();\n const title = db2.getDiagramTitle();\n const svg = selectSvgElement(id);\n const g = drawFrame(svg, config);\n const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));\n const minValue = options.min;\n const radius = Math.min(config.width, config.height) / 2;\n drawGraticule(g, axes, radius, options.ticks, options.graticule);\n drawAxes(g, axes, radius, config);\n drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);\n drawLegend(g, curves, options.showLegend, config);\n g.append(\"text\").attr(\"class\", \"radarTitle\").text(title).attr(\"x\", 0).attr(\"y\", -config.height / 2 - config.marginTop);\n}, \"draw\");\nvar drawFrame = /* @__PURE__ */ __name((svg, config) => {\n const totalWidth = config.width + config.marginLeft + config.marginRight;\n const totalHeight = config.height + config.marginTop + config.marginBottom;\n const center = {\n x: config.marginLeft + config.width / 2,\n y: config.marginTop + config.height / 2\n };\n svg.attr(\"viewbox\", `0 0 ${totalWidth} ${totalHeight}`).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n return svg.append(\"g\").attr(\"transform\", `translate(${center.x}, ${center.y})`);\n}, \"drawFrame\");\nvar drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {\n if (graticule === \"circle\") {\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n g.append(\"circle\").attr(\"r\", r).attr(\"class\", \"radarGraticule\");\n }\n } else if (graticule === \"polygon\") {\n const numAxes = axes.length;\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n const points = axes.map((_, j) => {\n const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return `${x},${y}`;\n }).join(\" \");\n g.append(\"polygon\").attr(\"points\", points).attr(\"class\", \"radarGraticule\");\n }\n }\n}, \"drawGraticule\");\nvar drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {\n const numAxes = axes.length;\n for (let i = 0; i < numAxes; i++) {\n const label = axes[i].label;\n const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;\n g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", 0).attr(\"x2\", radius * config.axisScaleFactor * Math.cos(angle)).attr(\"y2\", radius * config.axisScaleFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLine\");\n g.append(\"text\").text(label).attr(\"x\", radius * config.axisLabelFactor * Math.cos(angle)).attr(\"y\", radius * config.axisLabelFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLabel\");\n }\n}, \"drawAxes\");\nfunction drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {\n const numAxes = axes.length;\n const radius = Math.min(config.width, config.height) / 2;\n curves.forEach((curve, index) => {\n if (curve.entries.length !== numAxes) {\n return;\n }\n const points = curve.entries.map((entry, i) => {\n const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;\n const r = relativeRadius(entry, minValue, maxValue, radius);\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return { x, y };\n });\n if (graticule === \"circle\") {\n g.append(\"path\").attr(\"d\", closedRoundCurve(points, config.curveTension)).attr(\"class\", `radarCurve-${index}`);\n } else if (graticule === \"polygon\") {\n g.append(\"polygon\").attr(\"points\", points.map((p) => `${p.x},${p.y}`).join(\" \")).attr(\"class\", `radarCurve-${index}`);\n }\n });\n}\n__name(drawCurves, \"drawCurves\");\nfunction relativeRadius(value, minValue, maxValue, radius) {\n const clippedValue = Math.min(Math.max(value, minValue), maxValue);\n return radius * (clippedValue - minValue) / (maxValue - minValue);\n}\n__name(relativeRadius, \"relativeRadius\");\nfunction closedRoundCurve(points, tension) {\n const numPoints = points.length;\n let d = `M${points[0].x},${points[0].y}`;\n for (let i = 0; i < numPoints; i++) {\n const p0 = points[(i - 1 + numPoints) % numPoints];\n const p1 = points[i];\n const p2 = points[(i + 1) % numPoints];\n const p3 = points[(i + 2) % numPoints];\n const cp1 = {\n x: p1.x + (p2.x - p0.x) * tension,\n y: p1.y + (p2.y - p0.y) * tension\n };\n const cp2 = {\n x: p2.x - (p3.x - p1.x) * tension,\n y: p2.y - (p3.y - p1.y) * tension\n };\n d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;\n }\n return `${d} Z`;\n}\n__name(closedRoundCurve, \"closedRoundCurve\");\nfunction drawLegend(g, curves, showLegend, config) {\n if (!showLegend) {\n return;\n }\n const legendX = (config.width / 2 + config.marginRight) * 3 / 4;\n const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;\n const lineHeight = 20;\n curves.forEach((curve, index) => {\n const itemGroup = g.append(\"g\").attr(\"transform\", `translate(${legendX}, ${legendY + index * lineHeight})`);\n itemGroup.append(\"rect\").attr(\"width\", 12).attr(\"height\", 12).attr(\"class\", `radarLegendBox-${index}`);\n itemGroup.append(\"text\").attr(\"x\", 16).attr(\"y\", 0).attr(\"class\", \"radarLegendText\").text(curve.label);\n });\n}\n__name(drawLegend, \"drawLegend\");\nvar renderer = { draw };\n\n// src/diagrams/radar/styles.ts\nvar genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {\n let sections = \"\";\n for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {\n const indexColor = themeVariables[`cScale${i}`];\n sections += `\n\t\t.radarCurve-${i} {\n\t\t\tcolor: ${indexColor};\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t\tstroke-width: ${radarOptions.curveStrokeWidth};\n\t\t}\n\t\t.radarLegendBox-${i} {\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t}\n\t\t`;\n }\n return sections;\n}, \"genIndexStyles\");\nvar buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const radarOptions = cleanAndMerge(themeVariables.radar, radar);\n return { themeVariables, radarOptions };\n}, \"buildRadarStyleOptions\");\nvar styles = /* @__PURE__ */ __name(({ radar } = {}) => {\n const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);\n return `\n\t.radarTitle {\n\t\tfont-size: ${themeVariables.fontSize};\n\t\tcolor: ${themeVariables.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${radarOptions.axisColor};\n\t\tstroke-width: ${radarOptions.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${radarOptions.axisLabelFontSize}px;\n\t\tcolor: ${radarOptions.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${radarOptions.graticuleColor};\n\t\tfill-opacity: ${radarOptions.graticuleOpacity};\n\t\tstroke: ${radarOptions.graticuleColor};\n\t\tstroke-width: ${radarOptions.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${radarOptions.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${genIndexStyles(themeVariables, radarOptions)}\n\t`;\n}, \"styles\");\n\n// src/diagrams/radar/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["defaultOptions","defaultRadarData","data","DEFAULT_RADAR_CONFIG","defaultConfig_default","getConfig2","__name","cleanAndMerge","getConfig","getAxes","getCurves","getOptions","setAxes","axes","axis","setCurves","curves","curve","computeCurveEntries","entries","entry","entry2","setOptions","options","optionMap","acc","option","clear2","clear","db","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","populate","ast","populateCommonDb","parser","input","parse","log","draw","_text","id","_version","diagram2","db2","config","title","svg","selectSvgElement","g","drawFrame","maxValue","minValue","radius","drawGraticule","drawAxes","drawCurves","drawLegend","totalWidth","totalHeight","center","ticks","graticule","i","r","numAxes","points","_","j","angle","x","y","label","index","relativeRadius","closedRoundCurve","p","value","clippedValue","tension","numPoints","d","p0","p1","p2","p3","cp1","cp2","showLegend","legendX","legendY","lineHeight","itemGroup","renderer","genIndexStyles","themeVariables","radarOptions","sections","indexColor","buildRadarStyleOptions","radar","defaultThemeVariables","getThemeVariables","currentConfig","styles","diagram"],"mappings":"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","x_google_ignoreList":[0]}