markdown-flow-ui
Version:
A React UI library for rendering markdown with interactive flow components, typewriter effects, and plugin support
1 lines • 13.9 kB
Source Map (JSON)
{"version":3,"file":"diagram-GUPCWM2R-DaxddOxt.mjs","sources":["../node_modules/mermaid/dist/chunks/mermaid.core/diagram-GUPCWM2R.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 configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-VIW5F6AA.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewbox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["DEFAULT_PACKET_CONFIG","defaultConfig_default","PacketDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","config","cleanAndMerge","getConfig","word","clear","__name","maxPacketSize","populate","ast","db","populateCommonDb","lastBit","row","bitsPerRow","start","end","bits","label","log","block","nextBlock","getNextFittingBlock","rowEnd","rowStart","parser","input","parse","draw","_text","id","_version","diagram2","rowHeight","paddingY","bitWidth","words","title","totalRowHeight","svgHeight","svgWidth","svg","selectSvgElement","configureSvgSize","packet","drawWord","rowNumber","paddingX","showBits","group","wordY","blockX","width","isSingleBlock","bitNumberY","renderer","defaultPacketStyleOptions","styles","options","diagram"],"mappings":"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","x_google_ignoreList":[0]}