@pinkpixel/marzipan 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -37
- package/dist/_basePickBy-D4kyG5Tu.js +152 -0
- package/dist/_basePickBy-D4kyG5Tu.js.map +1 -0
- package/dist/_baseUniq-s5uZhHMt.js +615 -0
- package/dist/_baseUniq-s5uZhHMt.js.map +1 -0
- package/dist/arc-Cd2Fw3V6.js +84 -0
- package/dist/arc-Cd2Fw3V6.js.map +1 -0
- package/dist/architectureDiagram-VXUJARFQ-ylT61Lln.js +4663 -0
- package/dist/architectureDiagram-VXUJARFQ-ylT61Lln.js.map +1 -0
- package/dist/blockDiagram-VD42YOAC-CoIxLSyQ.js +2257 -0
- package/dist/blockDiagram-VD42YOAC-CoIxLSyQ.js.map +1 -0
- package/dist/c4Diagram-YG6GDRKO-CsQimMM6.js +1581 -0
- package/dist/c4Diagram-YG6GDRKO-CsQimMM6.js.map +1 -0
- package/dist/channel-0tZUlnqz.js +6 -0
- package/dist/channel-0tZUlnqz.js.map +1 -0
- package/dist/chunk-4BX2VUAB-DVkBhLxy.js +9 -0
- package/dist/chunk-4BX2VUAB-DVkBhLxy.js.map +1 -0
- package/dist/chunk-55IACEB6-CVQcegI-.js +9 -0
- package/dist/chunk-55IACEB6-CVQcegI-.js.map +1 -0
- package/dist/chunk-B4BG7PRW-DPUTNckV.js +1376 -0
- package/dist/chunk-B4BG7PRW-DPUTNckV.js.map +1 -0
- package/dist/chunk-DI55MBZ5-F7DI2N9R.js +1371 -0
- package/dist/chunk-DI55MBZ5-F7DI2N9R.js.map +1 -0
- package/dist/chunk-FMBD7UC4-C3wNpU7V.js +20 -0
- package/dist/chunk-FMBD7UC4-C3wNpU7V.js.map +1 -0
- package/dist/chunk-QN33PNHL-BOdqrixJ.js +20 -0
- package/dist/chunk-QN33PNHL-BOdqrixJ.js.map +1 -0
- package/dist/chunk-QZHKN3VN-BFPNdgmW.js +16 -0
- package/dist/chunk-QZHKN3VN-BFPNdgmW.js.map +1 -0
- package/dist/chunk-TZMSLE5B-BZuxNW58.js +65 -0
- package/dist/chunk-TZMSLE5B-BZuxNW58.js.map +1 -0
- package/dist/classDiagram-2ON5EDUG-CiRjpBEe.js +17 -0
- package/dist/classDiagram-2ON5EDUG-CiRjpBEe.js.map +1 -0
- package/dist/classDiagram-v2-WZHVMYZB-CiRjpBEe.js +17 -0
- package/dist/classDiagram-v2-WZHVMYZB-CiRjpBEe.js.map +1 -0
- package/dist/clone-Bm_onhkP.js +9 -0
- package/dist/clone-Bm_onhkP.js.map +1 -0
- package/dist/cose-bilkent-S5V4N54A-D9xMKgKB.js +2609 -0
- package/dist/cose-bilkent-S5V4N54A-D9xMKgKB.js.map +1 -0
- package/dist/dagre-6UL2VRFP-BhIQJjaK.js +445 -0
- package/dist/dagre-6UL2VRFP-BhIQJjaK.js.map +1 -0
- package/dist/diagram-PSM6KHXK-h4YEzD1S.js +532 -0
- package/dist/diagram-PSM6KHXK-h4YEzD1S.js.map +1 -0
- package/dist/diagram-QEK2KX5R-spuV0akZ.js +218 -0
- package/dist/diagram-QEK2KX5R-spuV0akZ.js.map +1 -0
- package/dist/diagram-S2PKOQOG-CQx-wsyw.js +143 -0
- package/dist/diagram-S2PKOQOG-CQx-wsyw.js.map +1 -0
- package/dist/erDiagram-Q2GNP2WA-Cqkjjf2a.js +842 -0
- package/dist/erDiagram-Q2GNP2WA-Cqkjjf2a.js.map +1 -0
- package/dist/flowDiagram-NV44I4VS-mCXE9u9b.js +1621 -0
- package/dist/flowDiagram-NV44I4VS-mCXE9u9b.js.map +1 -0
- package/dist/ganttDiagram-JELNMOA3-Bz1GBIHE.js +2671 -0
- package/dist/ganttDiagram-JELNMOA3-Bz1GBIHE.js.map +1 -0
- package/dist/gitGraphDiagram-V2S2FVAM-Be01Oq15.js +700 -0
- package/dist/gitGraphDiagram-V2S2FVAM-Be01Oq15.js.map +1 -0
- package/dist/graph-DVWVTM7e.js +248 -0
- package/dist/graph-DVWVTM7e.js.map +1 -0
- package/dist/index-kKw24iiA.js +34 -0
- package/dist/index-kKw24iiA.js.map +1 -0
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +270 -277
- package/dist/index.js.map +1 -1
- package/dist/infoDiagram-HS3SLOUP-joTtnw9j.js +25 -0
- package/dist/infoDiagram-HS3SLOUP-joTtnw9j.js.map +1 -0
- package/dist/journeyDiagram-XKPGCS4Q-CMVu7VEd.js +835 -0
- package/dist/journeyDiagram-XKPGCS4Q-CMVu7VEd.js.map +1 -0
- package/dist/kanban-definition-3W4ZIXB7-CfanK5Eg.js +720 -0
- package/dist/kanban-definition-3W4ZIXB7-CfanK5Eg.js.map +1 -0
- package/dist/katex-Cj93GM5Y.js +11605 -0
- package/dist/katex-Cj93GM5Y.js.map +1 -0
- package/dist/layout-BC8VSiQq.js +1336 -0
- package/dist/layout-BC8VSiQq.js.map +1 -0
- package/dist/linear-GV5CIa17.js +260 -0
- package/dist/linear-GV5CIa17.js.map +1 -0
- package/dist/marzipan.d.ts +1 -2
- package/dist/marzipan.d.ts.map +1 -1
- package/dist/marzipan.js +1 -19
- package/dist/marzipan.js.map +1 -1
- package/dist/mermaid.core-cSWK5aGH.js +15302 -0
- package/dist/mermaid.core-cSWK5aGH.js.map +1 -0
- package/dist/mindmap-definition-VGOIOE7T-Vu_RTZar.js +785 -0
- package/dist/mindmap-definition-VGOIOE7T-Vu_RTZar.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +6 -5
- package/dist/parser.js.map +1 -1
- package/dist/pieDiagram-ADFJNKIX-BUcd1l-6.js +162 -0
- package/dist/pieDiagram-ADFJNKIX-BUcd1l-6.js.map +1 -0
- package/dist/plugins/accentSwatchPlugin.d.ts +1 -1
- package/dist/plugins/accentSwatchPlugin.d.ts.map +1 -1
- package/dist/plugins/accentSwatchPlugin.js +162 -81
- package/dist/plugins/accentSwatchPlugin.js.map +1 -1
- package/dist/plugins/block-handles.d.ts +10 -2
- package/dist/plugins/block-handles.d.ts.map +1 -1
- package/dist/plugins/block-handles.js +77 -51
- package/dist/plugins/block-handles.js.map +1 -1
- package/dist/plugins/index.d.ts +0 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +27 -29
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/mermaidPlugin.js +1 -1
- package/dist/plugins/tinyHighlight.d.ts.map +1 -1
- package/dist/plugins/tinyHighlight.js +34 -22
- package/dist/plugins/tinyHighlight.js.map +1 -1
- package/dist/quadrantDiagram-AYHSOK5B-B1ekOH99.js +1023 -0
- package/dist/quadrantDiagram-AYHSOK5B-B1ekOH99.js.map +1 -0
- package/dist/requirementDiagram-UZGBJVZJ-BNcVcwNf.js +851 -0
- package/dist/requirementDiagram-UZGBJVZJ-BNcVcwNf.js.map +1 -0
- package/dist/sankeyDiagram-TZEHDZUN-BpHcdj5K.js +811 -0
- package/dist/sankeyDiagram-TZEHDZUN-BpHcdj5K.js.map +1 -0
- package/dist/sequenceDiagram-WL72ISMW-D5UyNvsv.js +2512 -0
- package/dist/sequenceDiagram-WL72ISMW-D5UyNvsv.js.map +1 -0
- package/dist/stateDiagram-FKZM4ZOC-C8DBscXu.js +264 -0
- package/dist/stateDiagram-FKZM4ZOC-C8DBscXu.js.map +1 -0
- package/dist/stateDiagram-v2-4FDKWEC3-CHqwUDPY.js +17 -0
- package/dist/stateDiagram-v2-4FDKWEC3-CHqwUDPY.js.map +1 -0
- package/dist/timeline-definition-IT6M3QCI-Dtg0oJbr.js +796 -0
- package/dist/timeline-definition-IT6M3QCI-Dtg0oJbr.js.map +1 -0
- package/dist/treemap-GDKQZRPO-rbQo3Em-.js +17926 -0
- package/dist/treemap-GDKQZRPO-rbQo3Em-.js.map +1 -0
- package/dist/xychartDiagram-PRI3JC2R-uNpgYSnV.js +1341 -0
- package/dist/xychartDiagram-PRI3JC2R-uNpgYSnV.js.map +1 -0
- package/docs/.vitepress/config.ts +1 -1
- package/docs/README.md +6 -8
- package/docs/TABLE_OF_CONTENTS.md +4 -1
- package/docs/api.md +262 -202
- package/docs/index.md +22 -19
- package/docs/plugins.md +27 -23
- package/package.json +1 -1
- package/docs/block-handles.md +0 -325
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-PSM6KHXK-h4YEzD1S.js","sources":["../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/accessors.js","../node_modules/d3-hierarchy/src/constant.js","../node_modules/d3-hierarchy/src/treemap/round.js","../node_modules/d3-hierarchy/src/treemap/dice.js","../node_modules/d3-hierarchy/src/treemap/slice.js","../node_modules/d3-hierarchy/src/treemap/squarify.js","../node_modules/d3-hierarchy/src/treemap/index.js","../node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n 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/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\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, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = [item.cssCompiledStyles];\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles.join(\";\") : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n valueColor: \"black\",\n titleColor: \"black\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${options.labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${options.valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${options.titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["count","node","sum","children","i","node_count","node_each","callback","that","index","node_eachBefore","nodes","node_eachAfter","next","n","node_find","node_sum","value","node_sort","compare","node_path","end","start","ancestor","leastCommonAncestor","k","a","b","aNodes","bNodes","c","node_ancestors","node_descendants","node_leaves","leaves","node_links","root","links","node_iterator","current","hierarchy","data","mapChildren","objectChildren","Node","child","childs","computeHeight","node_copy","copyData","d","height","required","f","constantZero","constant","x","roundNode","treemapDice","parent","x0","y0","x1","y1","treemapSlice","phi","squarifyRatio","ratio","rows","row","nodeValue","i0","i1","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","squarify","custom","treemap","tile","round","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","positionNode","p","TreeMapDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","defaultConfig","defaultConfig_default","userConfig","getConfig","cleanAndMerge","level","id","_style","styleClass","styles","isLabelStyle","classSelector","clear","__name","buildHierarchy","items","stack","item","populate","ast","db","populateCommonDb","name","getItemName","cssCompiledStyles","itemData","hierarchyNodes","addNodesRecursively","parser","text","parse","log","error","DEFAULT_INNER_PADDING","SECTION_INNER_PADDING","SECTION_HEADER_HEIGHT","draw","_text","_version","diagram2","treemapDb","config","treemapInnerPadding","title","themeVariables","titleHeight","svg","selectSvgElement","width","svgWidth","svgHeight","configureSvgSize","valueFormat","formatStr","format","precision","precisionStr","restOfFormat","colorScale","scaleOrdinal","colorScalePeer","colorScaleLabel","g","hierarchyRoot","treemapData","branchNodes","sections","_d","styles2String","labelStyles","self","select","originalText","totalHeaderWidth","labelXPosition","spaceForTextContent","actualAvailableWidth","textNode","currentTruncatedText","leafNodes","cell","nodeWidth","nodeHeight","padding","availableWidth","availableHeight","currentLabelFontSize","minLabelFontSize","originalValueRelFontSize","valueScaleFactor","minValueFontSize","spacingBetweenLabelAndValue","prospectiveValueFontSize","combinedHeight","valueTextElement","parentCellNode","labelElement","finalLabelFontSize","originalValueFontSize","actualValueFontSize","valueTopActualY","maxValueBottomY","availableWidthForValue","diagramPadding","setupViewPortForSVG","getClasses","diagramObj","renderer","defaultTreemapStyleOptions","getStyles","treemap2","options","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { s as k, g as R, q as E, p as F, a as I, b as _, _ as l, H as D, y as G, D as f, E as P, F as C, l as z, K as H } from "./mermaid.core-cSWK5aGH.js";
|
|
2
|
+
import { p as V } from "./chunk-4BX2VUAB-DVkBhLxy.js";
|
|
3
|
+
import { p as W } from "./treemap-GDKQZRPO-rbQo3Em-.js";
|
|
4
|
+
var x = {
|
|
5
|
+
showLegend: !0,
|
|
6
|
+
ticks: 5,
|
|
7
|
+
max: null,
|
|
8
|
+
min: 0,
|
|
9
|
+
graticule: "circle"
|
|
10
|
+
}, w = {
|
|
11
|
+
axes: [],
|
|
12
|
+
curves: [],
|
|
13
|
+
options: x
|
|
14
|
+
}, h = structuredClone(w), B = P.radar, j = /* @__PURE__ */ l(() => f({
|
|
15
|
+
...B,
|
|
16
|
+
...C().radar
|
|
17
|
+
}), "getConfig"), b = /* @__PURE__ */ l(() => h.axes, "getAxes"), q = /* @__PURE__ */ l(() => h.curves, "getCurves"), K = /* @__PURE__ */ l(() => h.options, "getOptions"), N = /* @__PURE__ */ l((a) => {
|
|
18
|
+
h.axes = a.map((t) => ({
|
|
19
|
+
name: t.name,
|
|
20
|
+
label: t.label ?? t.name
|
|
21
|
+
}));
|
|
22
|
+
}, "setAxes"), U = /* @__PURE__ */ l((a) => {
|
|
23
|
+
h.curves = a.map((t) => ({
|
|
24
|
+
name: t.name,
|
|
25
|
+
label: t.label ?? t.name,
|
|
26
|
+
entries: X(t.entries)
|
|
27
|
+
}));
|
|
28
|
+
}, "setCurves"), X = /* @__PURE__ */ l((a) => {
|
|
29
|
+
if (a[0].axis == null)
|
|
30
|
+
return a.map((e) => e.value);
|
|
31
|
+
const t = b();
|
|
32
|
+
if (t.length === 0)
|
|
33
|
+
throw new Error("Axes must be populated before curves for reference entries");
|
|
34
|
+
return t.map((e) => {
|
|
35
|
+
const r = a.find((s) => s.axis?.$refText === e.name);
|
|
36
|
+
if (r === void 0)
|
|
37
|
+
throw new Error("Missing entry for axis " + e.label);
|
|
38
|
+
return r.value;
|
|
39
|
+
});
|
|
40
|
+
}, "computeCurveEntries"), Y = /* @__PURE__ */ l((a) => {
|
|
41
|
+
const t = a.reduce(
|
|
42
|
+
(e, r) => (e[r.name] = r, e),
|
|
43
|
+
{}
|
|
44
|
+
);
|
|
45
|
+
h.options = {
|
|
46
|
+
showLegend: t.showLegend?.value ?? x.showLegend,
|
|
47
|
+
ticks: t.ticks?.value ?? x.ticks,
|
|
48
|
+
max: t.max?.value ?? x.max,
|
|
49
|
+
min: t.min?.value ?? x.min,
|
|
50
|
+
graticule: t.graticule?.value ?? x.graticule
|
|
51
|
+
};
|
|
52
|
+
}, "setOptions"), Z = /* @__PURE__ */ l(() => {
|
|
53
|
+
G(), h = structuredClone(w);
|
|
54
|
+
}, "clear"), $ = {
|
|
55
|
+
getAxes: b,
|
|
56
|
+
getCurves: q,
|
|
57
|
+
getOptions: K,
|
|
58
|
+
setAxes: N,
|
|
59
|
+
setCurves: U,
|
|
60
|
+
setOptions: Y,
|
|
61
|
+
getConfig: j,
|
|
62
|
+
clear: Z,
|
|
63
|
+
setAccTitle: _,
|
|
64
|
+
getAccTitle: I,
|
|
65
|
+
setDiagramTitle: F,
|
|
66
|
+
getDiagramTitle: E,
|
|
67
|
+
getAccDescription: R,
|
|
68
|
+
setAccDescription: k
|
|
69
|
+
}, J = /* @__PURE__ */ l((a) => {
|
|
70
|
+
V(a, $);
|
|
71
|
+
const { axes: t, curves: e, options: r } = a;
|
|
72
|
+
$.setAxes(t), $.setCurves(e), $.setOptions(r);
|
|
73
|
+
}, "populate"), Q = {
|
|
74
|
+
parse: /* @__PURE__ */ l(async (a) => {
|
|
75
|
+
const t = await W("radar", a);
|
|
76
|
+
z.debug(t), J(t);
|
|
77
|
+
}, "parse")
|
|
78
|
+
}, tt = /* @__PURE__ */ l((a, t, e, r) => {
|
|
79
|
+
const s = r.db, o = s.getAxes(), i = s.getCurves(), n = s.getOptions(), c = s.getConfig(), d = s.getDiagramTitle(), p = D(t), u = et(p, c), g = n.max ?? Math.max(...i.map((y) => Math.max(...y.entries))), m = n.min, v = Math.min(c.width, c.height) / 2;
|
|
80
|
+
at(u, o, v, n.ticks, n.graticule), rt(u, o, v, c), M(u, o, i, m, g, n.graticule, c), T(u, i, n.showLegend, c), u.append("text").attr("class", "radarTitle").text(d).attr("x", 0).attr("y", -c.height / 2 - c.marginTop);
|
|
81
|
+
}, "draw"), et = /* @__PURE__ */ l((a, t) => {
|
|
82
|
+
const e = t.width + t.marginLeft + t.marginRight, r = t.height + t.marginTop + t.marginBottom, s = {
|
|
83
|
+
x: t.marginLeft + t.width / 2,
|
|
84
|
+
y: t.marginTop + t.height / 2
|
|
85
|
+
};
|
|
86
|
+
return a.attr("viewbox", `0 0 ${e} ${r}`).attr("width", e).attr("height", r), a.append("g").attr("transform", `translate(${s.x}, ${s.y})`);
|
|
87
|
+
}, "drawFrame"), at = /* @__PURE__ */ l((a, t, e, r, s) => {
|
|
88
|
+
if (s === "circle")
|
|
89
|
+
for (let o = 0; o < r; o++) {
|
|
90
|
+
const i = e * (o + 1) / r;
|
|
91
|
+
a.append("circle").attr("r", i).attr("class", "radarGraticule");
|
|
92
|
+
}
|
|
93
|
+
else if (s === "polygon") {
|
|
94
|
+
const o = t.length;
|
|
95
|
+
for (let i = 0; i < r; i++) {
|
|
96
|
+
const n = e * (i + 1) / r, c = t.map((d, p) => {
|
|
97
|
+
const u = 2 * p * Math.PI / o - Math.PI / 2, g = n * Math.cos(u), m = n * Math.sin(u);
|
|
98
|
+
return `${g},${m}`;
|
|
99
|
+
}).join(" ");
|
|
100
|
+
a.append("polygon").attr("points", c).attr("class", "radarGraticule");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, "drawGraticule"), rt = /* @__PURE__ */ l((a, t, e, r) => {
|
|
104
|
+
const s = t.length;
|
|
105
|
+
for (let o = 0; o < s; o++) {
|
|
106
|
+
const i = t[o].label, n = 2 * o * Math.PI / s - Math.PI / 2;
|
|
107
|
+
a.append("line").attr("x1", 0).attr("y1", 0).attr("x2", e * r.axisScaleFactor * Math.cos(n)).attr("y2", e * r.axisScaleFactor * Math.sin(n)).attr("class", "radarAxisLine"), a.append("text").text(i).attr("x", e * r.axisLabelFactor * Math.cos(n)).attr("y", e * r.axisLabelFactor * Math.sin(n)).attr("class", "radarAxisLabel");
|
|
108
|
+
}
|
|
109
|
+
}, "drawAxes");
|
|
110
|
+
function M(a, t, e, r, s, o, i) {
|
|
111
|
+
const n = t.length, c = Math.min(i.width, i.height) / 2;
|
|
112
|
+
e.forEach((d, p) => {
|
|
113
|
+
if (d.entries.length !== n)
|
|
114
|
+
return;
|
|
115
|
+
const u = d.entries.map((g, m) => {
|
|
116
|
+
const v = 2 * Math.PI * m / n - Math.PI / 2, y = A(g, r, s, c), O = y * Math.cos(v), S = y * Math.sin(v);
|
|
117
|
+
return { x: O, y: S };
|
|
118
|
+
});
|
|
119
|
+
o === "circle" ? a.append("path").attr("d", L(u, i.curveTension)).attr("class", `radarCurve-${p}`) : o === "polygon" && a.append("polygon").attr("points", u.map((g) => `${g.x},${g.y}`).join(" ")).attr("class", `radarCurve-${p}`);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
l(M, "drawCurves");
|
|
123
|
+
function A(a, t, e, r) {
|
|
124
|
+
const s = Math.min(Math.max(a, t), e);
|
|
125
|
+
return r * (s - t) / (e - t);
|
|
126
|
+
}
|
|
127
|
+
l(A, "relativeRadius");
|
|
128
|
+
function L(a, t) {
|
|
129
|
+
const e = a.length;
|
|
130
|
+
let r = `M${a[0].x},${a[0].y}`;
|
|
131
|
+
for (let s = 0; s < e; s++) {
|
|
132
|
+
const o = a[(s - 1 + e) % e], i = a[s], n = a[(s + 1) % e], c = a[(s + 2) % e], d = {
|
|
133
|
+
x: i.x + (n.x - o.x) * t,
|
|
134
|
+
y: i.y + (n.y - o.y) * t
|
|
135
|
+
}, p = {
|
|
136
|
+
x: n.x - (c.x - i.x) * t,
|
|
137
|
+
y: n.y - (c.y - i.y) * t
|
|
138
|
+
};
|
|
139
|
+
r += ` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`;
|
|
140
|
+
}
|
|
141
|
+
return `${r} Z`;
|
|
142
|
+
}
|
|
143
|
+
l(L, "closedRoundCurve");
|
|
144
|
+
function T(a, t, e, r) {
|
|
145
|
+
if (!e)
|
|
146
|
+
return;
|
|
147
|
+
const s = (r.width / 2 + r.marginRight) * 3 / 4, o = -(r.height / 2 + r.marginTop) * 3 / 4, i = 20;
|
|
148
|
+
t.forEach((n, c) => {
|
|
149
|
+
const d = a.append("g").attr("transform", `translate(${s}, ${o + c * i})`);
|
|
150
|
+
d.append("rect").attr("width", 12).attr("height", 12).attr("class", `radarLegendBox-${c}`), d.append("text").attr("x", 16).attr("y", 0).attr("class", "radarLegendText").text(n.label);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
l(T, "drawLegend");
|
|
154
|
+
var st = { draw: tt }, nt = /* @__PURE__ */ l((a, t) => {
|
|
155
|
+
let e = "";
|
|
156
|
+
for (let r = 0; r < a.THEME_COLOR_LIMIT; r++) {
|
|
157
|
+
const s = a[`cScale${r}`];
|
|
158
|
+
e += `
|
|
159
|
+
.radarCurve-${r} {
|
|
160
|
+
color: ${s};
|
|
161
|
+
fill: ${s};
|
|
162
|
+
fill-opacity: ${t.curveOpacity};
|
|
163
|
+
stroke: ${s};
|
|
164
|
+
stroke-width: ${t.curveStrokeWidth};
|
|
165
|
+
}
|
|
166
|
+
.radarLegendBox-${r} {
|
|
167
|
+
fill: ${s};
|
|
168
|
+
fill-opacity: ${t.curveOpacity};
|
|
169
|
+
stroke: ${s};
|
|
170
|
+
}
|
|
171
|
+
`;
|
|
172
|
+
}
|
|
173
|
+
return e;
|
|
174
|
+
}, "genIndexStyles"), ot = /* @__PURE__ */ l((a) => {
|
|
175
|
+
const t = H(), e = C(), r = f(t, e.themeVariables), s = f(r.radar, a);
|
|
176
|
+
return { themeVariables: r, radarOptions: s };
|
|
177
|
+
}, "buildRadarStyleOptions"), it = /* @__PURE__ */ l(({ radar: a } = {}) => {
|
|
178
|
+
const { themeVariables: t, radarOptions: e } = ot(a);
|
|
179
|
+
return `
|
|
180
|
+
.radarTitle {
|
|
181
|
+
font-size: ${t.fontSize};
|
|
182
|
+
color: ${t.titleColor};
|
|
183
|
+
dominant-baseline: hanging;
|
|
184
|
+
text-anchor: middle;
|
|
185
|
+
}
|
|
186
|
+
.radarAxisLine {
|
|
187
|
+
stroke: ${e.axisColor};
|
|
188
|
+
stroke-width: ${e.axisStrokeWidth};
|
|
189
|
+
}
|
|
190
|
+
.radarAxisLabel {
|
|
191
|
+
dominant-baseline: middle;
|
|
192
|
+
text-anchor: middle;
|
|
193
|
+
font-size: ${e.axisLabelFontSize}px;
|
|
194
|
+
color: ${e.axisColor};
|
|
195
|
+
}
|
|
196
|
+
.radarGraticule {
|
|
197
|
+
fill: ${e.graticuleColor};
|
|
198
|
+
fill-opacity: ${e.graticuleOpacity};
|
|
199
|
+
stroke: ${e.graticuleColor};
|
|
200
|
+
stroke-width: ${e.graticuleStrokeWidth};
|
|
201
|
+
}
|
|
202
|
+
.radarLegendText {
|
|
203
|
+
text-anchor: start;
|
|
204
|
+
font-size: ${e.legendFontSize}px;
|
|
205
|
+
dominant-baseline: hanging;
|
|
206
|
+
}
|
|
207
|
+
${nt(t, e)}
|
|
208
|
+
`;
|
|
209
|
+
}, "styles"), ut = {
|
|
210
|
+
parser: Q,
|
|
211
|
+
db: $,
|
|
212
|
+
renderer: st,
|
|
213
|
+
styles: it
|
|
214
|
+
};
|
|
215
|
+
export {
|
|
216
|
+
ut as diagram
|
|
217
|
+
};
|
|
218
|
+
//# sourceMappingURL=diagram-QEK2KX5R-spuV0akZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-QEK2KX5R-spuV0akZ.js","sources":["../node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\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/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]}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { _ as b, D as m, H as B, e as C, l as w, b as S, a as D, p as T, q as E, g as F, s as P, E as z, F as A, y as W } from "./mermaid.core-cSWK5aGH.js";
|
|
2
|
+
import { p as _ } from "./chunk-4BX2VUAB-DVkBhLxy.js";
|
|
3
|
+
import { p as N } from "./treemap-GDKQZRPO-rbQo3Em-.js";
|
|
4
|
+
var L = z.packet, u, v = (u = class {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.packet = [], this.setAccTitle = S, this.getAccTitle = D, this.setDiagramTitle = T, this.getDiagramTitle = E, this.getAccDescription = F, this.setAccDescription = P;
|
|
7
|
+
}
|
|
8
|
+
getConfig() {
|
|
9
|
+
const t = m({
|
|
10
|
+
...L,
|
|
11
|
+
...A().packet
|
|
12
|
+
});
|
|
13
|
+
return t.showBits && (t.paddingY += 10), t;
|
|
14
|
+
}
|
|
15
|
+
getPacket() {
|
|
16
|
+
return this.packet;
|
|
17
|
+
}
|
|
18
|
+
pushWord(t) {
|
|
19
|
+
t.length > 0 && this.packet.push(t);
|
|
20
|
+
}
|
|
21
|
+
clear() {
|
|
22
|
+
W(), this.packet = [];
|
|
23
|
+
}
|
|
24
|
+
}, b(u, "PacketDB"), u), M = 1e4, Y = /* @__PURE__ */ b((e, t) => {
|
|
25
|
+
_(e, t);
|
|
26
|
+
let r = -1, s = [], n = 1;
|
|
27
|
+
const { bitsPerRow: l } = t.getConfig();
|
|
28
|
+
for (let { start: a, end: i, bits: d, label: c } of e.blocks) {
|
|
29
|
+
if (a !== void 0 && i !== void 0 && i < a)
|
|
30
|
+
throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);
|
|
31
|
+
if (a ?? (a = r + 1), a !== r + 1)
|
|
32
|
+
throw new Error(
|
|
33
|
+
`Packet block ${a} - ${i ?? a} is not contiguous. It should start from ${r + 1}.`
|
|
34
|
+
);
|
|
35
|
+
if (d === 0)
|
|
36
|
+
throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);
|
|
37
|
+
for (i ?? (i = a + (d ?? 1) - 1), d ?? (d = i - a + 1), r = i, w.debug(`Packet block ${a} - ${r} with label ${c}`); s.length <= l + 1 && t.getPacket().length < M; ) {
|
|
38
|
+
const [p, o] = H({ start: a, end: i, bits: d, label: c }, n, l);
|
|
39
|
+
if (s.push(p), p.end + 1 === n * l && (t.pushWord(s), s = [], n++), !o)
|
|
40
|
+
break;
|
|
41
|
+
({ start: a, end: i, bits: d, label: c } = o);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
t.pushWord(s);
|
|
45
|
+
}, "populate"), H = /* @__PURE__ */ b((e, t, r) => {
|
|
46
|
+
if (e.start === void 0)
|
|
47
|
+
throw new Error("start should have been set during first phase");
|
|
48
|
+
if (e.end === void 0)
|
|
49
|
+
throw new Error("end should have been set during first phase");
|
|
50
|
+
if (e.start > e.end)
|
|
51
|
+
throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);
|
|
52
|
+
if (e.end + 1 <= t * r)
|
|
53
|
+
return [e, void 0];
|
|
54
|
+
const s = t * r - 1, n = t * r;
|
|
55
|
+
return [
|
|
56
|
+
{
|
|
57
|
+
start: e.start,
|
|
58
|
+
end: s,
|
|
59
|
+
label: e.label,
|
|
60
|
+
bits: s - e.start
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
start: n,
|
|
64
|
+
end: e.end,
|
|
65
|
+
label: e.label,
|
|
66
|
+
bits: e.end - n
|
|
67
|
+
}
|
|
68
|
+
];
|
|
69
|
+
}, "getNextFittingBlock"), x = {
|
|
70
|
+
// @ts-expect-error - PacketDB is not assignable to DiagramDB
|
|
71
|
+
parser: { yy: void 0 },
|
|
72
|
+
parse: /* @__PURE__ */ b(async (e) => {
|
|
73
|
+
const t = await N("packet", e), r = x.parser?.yy;
|
|
74
|
+
if (!(r instanceof v))
|
|
75
|
+
throw new Error(
|
|
76
|
+
"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."
|
|
77
|
+
);
|
|
78
|
+
w.debug(t), Y(t, r);
|
|
79
|
+
}, "parse")
|
|
80
|
+
}, I = /* @__PURE__ */ b((e, t, r, s) => {
|
|
81
|
+
const n = s.db, l = n.getConfig(), { rowHeight: a, paddingY: i, bitWidth: d, bitsPerRow: c } = l, p = n.getPacket(), o = n.getDiagramTitle(), h = a + i, g = h * (p.length + 1) - (o ? 0 : a), k = d * c + 2, f = B(t);
|
|
82
|
+
f.attr("viewbox", `0 0 ${k} ${g}`), C(f, g, k, l.useMaxWidth);
|
|
83
|
+
for (const [y, $] of p.entries())
|
|
84
|
+
O(f, $, y, l);
|
|
85
|
+
f.append("text").text(o).attr("x", k / 2).attr("y", g - h / 2).attr("dominant-baseline", "middle").attr("text-anchor", "middle").attr("class", "packetTitle");
|
|
86
|
+
}, "draw"), O = /* @__PURE__ */ b((e, t, r, { rowHeight: s, paddingX: n, paddingY: l, bitWidth: a, bitsPerRow: i, showBits: d }) => {
|
|
87
|
+
const c = e.append("g"), p = r * (s + l) + l;
|
|
88
|
+
for (const o of t) {
|
|
89
|
+
const h = o.start % i * a + 1, g = (o.end - o.start + 1) * a - n;
|
|
90
|
+
if (c.append("rect").attr("x", h).attr("y", p).attr("width", g).attr("height", s).attr("class", "packetBlock"), c.append("text").attr("x", h + g / 2).attr("y", p + s / 2).attr("class", "packetLabel").attr("dominant-baseline", "middle").attr("text-anchor", "middle").text(o.label), !d)
|
|
91
|
+
continue;
|
|
92
|
+
const k = o.end === o.start, f = p - 2;
|
|
93
|
+
c.append("text").attr("x", h + (k ? g / 2 : 0)).attr("y", f).attr("class", "packetByte start").attr("dominant-baseline", "auto").attr("text-anchor", k ? "middle" : "start").text(o.start), k || c.append("text").attr("x", h + g).attr("y", f).attr("class", "packetByte end").attr("dominant-baseline", "auto").attr("text-anchor", "end").text(o.end);
|
|
94
|
+
}
|
|
95
|
+
}, "drawWord"), j = { draw: I }, q = {
|
|
96
|
+
byteFontSize: "10px",
|
|
97
|
+
startByteColor: "black",
|
|
98
|
+
endByteColor: "black",
|
|
99
|
+
labelColor: "black",
|
|
100
|
+
labelFontSize: "12px",
|
|
101
|
+
titleColor: "black",
|
|
102
|
+
titleFontSize: "14px",
|
|
103
|
+
blockStrokeColor: "black",
|
|
104
|
+
blockStrokeWidth: "1",
|
|
105
|
+
blockFillColor: "#efefef"
|
|
106
|
+
}, G = /* @__PURE__ */ b(({ packet: e } = {}) => {
|
|
107
|
+
const t = m(q, e);
|
|
108
|
+
return `
|
|
109
|
+
.packetByte {
|
|
110
|
+
font-size: ${t.byteFontSize};
|
|
111
|
+
}
|
|
112
|
+
.packetByte.start {
|
|
113
|
+
fill: ${t.startByteColor};
|
|
114
|
+
}
|
|
115
|
+
.packetByte.end {
|
|
116
|
+
fill: ${t.endByteColor};
|
|
117
|
+
}
|
|
118
|
+
.packetLabel {
|
|
119
|
+
fill: ${t.labelColor};
|
|
120
|
+
font-size: ${t.labelFontSize};
|
|
121
|
+
}
|
|
122
|
+
.packetTitle {
|
|
123
|
+
fill: ${t.titleColor};
|
|
124
|
+
font-size: ${t.titleFontSize};
|
|
125
|
+
}
|
|
126
|
+
.packetBlock {
|
|
127
|
+
stroke: ${t.blockStrokeColor};
|
|
128
|
+
stroke-width: ${t.blockStrokeWidth};
|
|
129
|
+
fill: ${t.blockFillColor};
|
|
130
|
+
}
|
|
131
|
+
`;
|
|
132
|
+
}, "styles"), X = {
|
|
133
|
+
parser: x,
|
|
134
|
+
get db() {
|
|
135
|
+
return new v();
|
|
136
|
+
},
|
|
137
|
+
renderer: j,
|
|
138
|
+
styles: G
|
|
139
|
+
};
|
|
140
|
+
export {
|
|
141
|
+
X as diagram
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=diagram-S2PKOQOG-CQx-wsyw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-S2PKOQOG-CQx-wsyw.js","sources":["../node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n 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/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]}
|