@oxide/design-system 1.7.7--canary.c74e439.0 → 1.7.7--canary.2a63c1e.0
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/components/dist/asciidoc.css +42 -0
- package/components/dist/index.d.ts +0 -3
- package/components/dist/index.js +145 -1807
- package/components/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/components/dist/architecture-I3QFYML2-YZWO3N3B.js +0 -14
- package/components/dist/architecture-I3QFYML2-YZWO3N3B.js.map +0 -1
- package/components/dist/architectureDiagram-UYN6MBPD-HXPGIDN7.js +0 -8846
- package/components/dist/architectureDiagram-UYN6MBPD-HXPGIDN7.js.map +0 -1
- package/components/dist/blockDiagram-ZHA2E4KO-OAYYKCLF.js +0 -3721
- package/components/dist/blockDiagram-ZHA2E4KO-OAYYKCLF.js.map +0 -1
- package/components/dist/c4Diagram-6F5ED5ID-TBHFK2XY.js +0 -2599
- package/components/dist/c4Diagram-6F5ED5ID-TBHFK2XY.js.map +0 -1
- package/components/dist/chunk-2DDKDUUO.js +0 -439
- package/components/dist/chunk-2DDKDUUO.js.map +0 -1
- package/components/dist/chunk-2NHDMTP7.js +0 -26905
- package/components/dist/chunk-2NHDMTP7.js.map +0 -1
- package/components/dist/chunk-4IJS44L3.js +0 -22
- package/components/dist/chunk-4IJS44L3.js.map +0 -1
- package/components/dist/chunk-562WOS3Z.js +0 -1109
- package/components/dist/chunk-562WOS3Z.js.map +0 -1
- package/components/dist/chunk-6UD2HOKB.js +0 -17082
- package/components/dist/chunk-6UD2HOKB.js.map +0 -1
- package/components/dist/chunk-76BOQ7BT.js +0 -63
- package/components/dist/chunk-76BOQ7BT.js.map +0 -1
- package/components/dist/chunk-7I5DT373.js +0 -97
- package/components/dist/chunk-7I5DT373.js.map +0 -1
- package/components/dist/chunk-BPREMNVP.js +0 -1875
- package/components/dist/chunk-BPREMNVP.js.map +0 -1
- package/components/dist/chunk-BVYAEHG3.js +0 -122
- package/components/dist/chunk-BVYAEHG3.js.map +0 -1
- package/components/dist/chunk-BW7DFBOS.js +0 -152
- package/components/dist/chunk-BW7DFBOS.js.map +0 -1
- package/components/dist/chunk-EZG2MNHW.js +0 -59
- package/components/dist/chunk-EZG2MNHW.js.map +0 -1
- package/components/dist/chunk-G6QWNAHJ.js +0 -43
- package/components/dist/chunk-G6QWNAHJ.js.map +0 -1
- package/components/dist/chunk-H72D3HRR.js +0 -1244
- package/components/dist/chunk-H72D3HRR.js.map +0 -1
- package/components/dist/chunk-K532NZMW.js +0 -46
- package/components/dist/chunk-K532NZMW.js.map +0 -1
- package/components/dist/chunk-LC3BX2KL.js +0 -25
- package/components/dist/chunk-LC3BX2KL.js.map +0 -1
- package/components/dist/chunk-LQ2ABR7F.js +0 -5665
- package/components/dist/chunk-LQ2ABR7F.js.map +0 -1
- package/components/dist/chunk-M6L3MM6K.js +0 -22
- package/components/dist/chunk-M6L3MM6K.js.map +0 -1
- package/components/dist/chunk-MWA4PRRW.js +0 -122
- package/components/dist/chunk-MWA4PRRW.js.map +0 -1
- package/components/dist/chunk-ND3FLKHU.js +0 -570
- package/components/dist/chunk-ND3FLKHU.js.map +0 -1
- package/components/dist/chunk-NIVHLOPB.js +0 -2621
- package/components/dist/chunk-NIVHLOPB.js.map +0 -1
- package/components/dist/chunk-R6F6FFK7.js +0 -65
- package/components/dist/chunk-R6F6FFK7.js.map +0 -1
- package/components/dist/chunk-RN5R3L7O.js +0 -2041
- package/components/dist/chunk-RN5R3L7O.js.map +0 -1
- package/components/dist/chunk-RWDBBMDN.js +0 -10910
- package/components/dist/chunk-RWDBBMDN.js.map +0 -1
- package/components/dist/chunk-T7HPDS4Z.js +0 -573
- package/components/dist/chunk-T7HPDS4Z.js.map +0 -1
- package/components/dist/chunk-TG4YEU4Q.js +0 -23
- package/components/dist/chunk-TG4YEU4Q.js.map +0 -1
- package/components/dist/chunk-U5WCXBW2.js +0 -48
- package/components/dist/chunk-U5WCXBW2.js.map +0 -1
- package/components/dist/chunk-V6PWN6OH.js +0 -1875
- package/components/dist/chunk-V6PWN6OH.js.map +0 -1
- package/components/dist/chunk-VLTHNCSD.js +0 -48
- package/components/dist/chunk-VLTHNCSD.js.map +0 -1
- package/components/dist/chunk-WDK4G4UR.js +0 -2791
- package/components/dist/chunk-WDK4G4UR.js.map +0 -1
- package/components/dist/chunk-WLVQWTC6.js +0 -77
- package/components/dist/chunk-WLVQWTC6.js.map +0 -1
- package/components/dist/chunk-YDLS5R4M.js +0 -48
- package/components/dist/chunk-YDLS5R4M.js.map +0 -1
- package/components/dist/chunk-YGFBWU2Q.js +0 -7
- package/components/dist/chunk-YGFBWU2Q.js.map +0 -1
- package/components/dist/chunk-ZBL4CWCH.js +0 -2120
- package/components/dist/chunk-ZBL4CWCH.js.map +0 -1
- package/components/dist/classDiagram-LNE6IOMH-VRQHEQWM.js +0 -40
- package/components/dist/classDiagram-LNE6IOMH-VRQHEQWM.js.map +0 -1
- package/components/dist/classDiagram-v2-MQ7JQ4JX-5GB4NXXM.js +0 -40
- package/components/dist/classDiagram-v2-MQ7JQ4JX-5GB4NXXM.js.map +0 -1
- package/components/dist/dagre-4EVJKHTY-XW45LMKR.js +0 -734
- package/components/dist/dagre-4EVJKHTY-XW45LMKR.js.map +0 -1
- package/components/dist/diagram-QW4FP2JN-J2YMUPB5.js +0 -226
- package/components/dist/diagram-QW4FP2JN-J2YMUPB5.js.map +0 -1
- package/components/dist/erDiagram-6RL3IURR-HQULDVJI.js +0 -1381
- package/components/dist/erDiagram-6RL3IURR-HQULDVJI.js.map +0 -1
- package/components/dist/flowDiagram-7ASYPVHJ-2542732I.js +0 -2349
- package/components/dist/flowDiagram-7ASYPVHJ-2542732I.js.map +0 -1
- package/components/dist/ganttDiagram-NTVNEXSI-V66YQQB3.js +0 -2413
- package/components/dist/ganttDiagram-NTVNEXSI-V66YQQB3.js.map +0 -1
- package/components/dist/gitGraph-YCYPL57B-AAXPWQN7.js +0 -14
- package/components/dist/gitGraph-YCYPL57B-AAXPWQN7.js.map +0 -1
- package/components/dist/gitGraphDiagram-NRZ2UAAF-5DU6QMYZ.js +0 -1763
- package/components/dist/gitGraphDiagram-NRZ2UAAF-5DU6QMYZ.js.map +0 -1
- package/components/dist/info-46DW6VJ7-43TTIEYF.js +0 -14
- package/components/dist/info-46DW6VJ7-43TTIEYF.js.map +0 -1
- package/components/dist/infoDiagram-A4XQUW5V-UZERSQDI.js +0 -54
- package/components/dist/infoDiagram-A4XQUW5V-UZERSQDI.js.map +0 -1
- package/components/dist/journeyDiagram-G5WM74LC-RVKMRGRW.js +0 -1244
- package/components/dist/journeyDiagram-G5WM74LC-RVKMRGRW.js.map +0 -1
- package/components/dist/kanban-definition-QRCXZQQD-NWU5I3TK.js +0 -1119
- package/components/dist/kanban-definition-QRCXZQQD-NWU5I3TK.js.map +0 -1
- package/components/dist/katex-WNZY3CE5.js +0 -14484
- package/components/dist/katex-WNZY3CE5.js.map +0 -1
- package/components/dist/mindmap-definition-GWI6TPTV-MISEH6LG.js +0 -6013
- package/components/dist/mindmap-definition-GWI6TPTV-MISEH6LG.js.map +0 -1
- package/components/dist/packet-W2GHVCYJ-FBZCFIPR.js +0 -14
- package/components/dist/packet-W2GHVCYJ-FBZCFIPR.js.map +0 -1
- package/components/dist/pie-BEWT4RHE-UFFBBCXM.js +0 -14
- package/components/dist/pie-BEWT4RHE-UFFBBCXM.js.map +0 -1
- package/components/dist/pieDiagram-YF2LJOPJ-IXEVHPCM.js +0 -223
- package/components/dist/pieDiagram-YF2LJOPJ-IXEVHPCM.js.map +0 -1
- package/components/dist/quadrantDiagram-OS5C2QUG-MW26UCZV.js +0 -1408
- package/components/dist/quadrantDiagram-OS5C2QUG-MW26UCZV.js.map +0 -1
- package/components/dist/requirementDiagram-MIRIMTAZ-BX24AAHL.js +0 -1175
- package/components/dist/requirementDiagram-MIRIMTAZ-BX24AAHL.js.map +0 -1
- package/components/dist/sankeyDiagram-Y46BX6SQ-5RKUGG63.js +0 -1278
- package/components/dist/sankeyDiagram-Y46BX6SQ-5RKUGG63.js.map +0 -1
- package/components/dist/sequenceDiagram-G6AWOVSC-2T3JBUZ2.js +0 -3529
- package/components/dist/sequenceDiagram-G6AWOVSC-2T3JBUZ2.js.map +0 -1
- package/components/dist/stateDiagram-MAYHULR4-HZ5EGLPA.js +0 -505
- package/components/dist/stateDiagram-MAYHULR4-HZ5EGLPA.js.map +0 -1
- package/components/dist/stateDiagram-v2-4JROLMXI-DN2FEZV3.js +0 -40
- package/components/dist/stateDiagram-v2-4JROLMXI-DN2FEZV3.js.map +0 -1
- package/components/dist/timeline-definition-U7ZMHBDA-GB6AKKW4.js +0 -1260
- package/components/dist/timeline-definition-U7ZMHBDA-GB6AKKW4.js.map +0 -1
- package/components/dist/xychartDiagram-6QU3TZC5-BFFLEHUP.js +0 -1877
- package/components/dist/xychartDiagram-6QU3TZC5-BFFLEHUP.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/dagre-d3-es/src/graphlib/json.js","../../node_modules/mermaid/dist/chunks/mermaid.core/dagre-4EVJKHTY.mjs"],"sourcesContent":["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\nexport { write, read };\n\nfunction write(g) {\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-66SQ7PYY.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-7NZE2EM7.mjs\";\nimport \"./chunk-OPO4IU42.mjs\";\nimport \"./chunk-3JNJP5BE.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-3X56UNUX.mjs\";\nimport \"./chunk-6JOS74DS.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n getConfig2 as getConfig,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson2 from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib2 from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear4 = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson2.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson2.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson2.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);\n const startNode = graph.node(e.v);\n var endNode = graph.node(e.w);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib2.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyc<lic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson2.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson2.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n render\n};\n"],"mappings":"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","names":["clear"]}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
populateCommonDb
|
|
3
|
-
} from "./chunk-4IJS44L3.js";
|
|
4
|
-
import {
|
|
5
|
-
parse
|
|
6
|
-
} from "./chunk-R6F6FFK7.js";
|
|
7
|
-
import "./chunk-EZG2MNHW.js";
|
|
8
|
-
import "./chunk-76BOQ7BT.js";
|
|
9
|
-
import "./chunk-U5WCXBW2.js";
|
|
10
|
-
import {
|
|
11
|
-
selectSvgElement
|
|
12
|
-
} from "./chunk-TG4YEU4Q.js";
|
|
13
|
-
import {
|
|
14
|
-
cleanAndMerge
|
|
15
|
-
} from "./chunk-T7HPDS4Z.js";
|
|
16
|
-
import "./chunk-7I5DT373.js";
|
|
17
|
-
import {
|
|
18
|
-
__name,
|
|
19
|
-
clear,
|
|
20
|
-
configureSvgSize,
|
|
21
|
-
defaultConfig_default,
|
|
22
|
-
getAccDescription,
|
|
23
|
-
getAccTitle,
|
|
24
|
-
getConfig,
|
|
25
|
-
getDiagramTitle,
|
|
26
|
-
log,
|
|
27
|
-
setAccDescription,
|
|
28
|
-
setAccTitle,
|
|
29
|
-
setDiagramTitle
|
|
30
|
-
} from "./chunk-RWDBBMDN.js";
|
|
31
|
-
import "./chunk-YDLS5R4M.js";
|
|
32
|
-
import "./chunk-VLTHNCSD.js";
|
|
33
|
-
import "./chunk-6UD2HOKB.js";
|
|
34
|
-
import "./chunk-ZBL4CWCH.js";
|
|
35
|
-
import "./chunk-BVYAEHG3.js";
|
|
36
|
-
import "./chunk-562WOS3Z.js";
|
|
37
|
-
import "./chunk-K532NZMW.js";
|
|
38
|
-
|
|
39
|
-
// node_modules/mermaid/dist/chunks/mermaid.core/diagram-QW4FP2JN.mjs
|
|
40
|
-
var defaultPacketData = {
|
|
41
|
-
packet: []
|
|
42
|
-
};
|
|
43
|
-
var data = structuredClone(defaultPacketData);
|
|
44
|
-
var DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;
|
|
45
|
-
var getConfig2 = /* @__PURE__ */ __name(() => {
|
|
46
|
-
const config = cleanAndMerge({
|
|
47
|
-
...DEFAULT_PACKET_CONFIG,
|
|
48
|
-
...getConfig().packet
|
|
49
|
-
});
|
|
50
|
-
if (config.showBits) {
|
|
51
|
-
config.paddingY += 10;
|
|
52
|
-
}
|
|
53
|
-
return config;
|
|
54
|
-
}, "getConfig");
|
|
55
|
-
var getPacket = /* @__PURE__ */ __name(() => data.packet, "getPacket");
|
|
56
|
-
var pushWord = /* @__PURE__ */ __name((word) => {
|
|
57
|
-
if (word.length > 0) {
|
|
58
|
-
data.packet.push(word);
|
|
59
|
-
}
|
|
60
|
-
}, "pushWord");
|
|
61
|
-
var clear2 = /* @__PURE__ */ __name(() => {
|
|
62
|
-
clear();
|
|
63
|
-
data = structuredClone(defaultPacketData);
|
|
64
|
-
}, "clear");
|
|
65
|
-
var db = {
|
|
66
|
-
pushWord,
|
|
67
|
-
getPacket,
|
|
68
|
-
getConfig: getConfig2,
|
|
69
|
-
clear: clear2,
|
|
70
|
-
setAccTitle,
|
|
71
|
-
getAccTitle,
|
|
72
|
-
setDiagramTitle,
|
|
73
|
-
getDiagramTitle,
|
|
74
|
-
getAccDescription,
|
|
75
|
-
setAccDescription
|
|
76
|
-
};
|
|
77
|
-
var maxPacketSize = 1e4;
|
|
78
|
-
var populate = /* @__PURE__ */ __name((ast) => {
|
|
79
|
-
populateCommonDb(ast, db);
|
|
80
|
-
let lastByte = -1;
|
|
81
|
-
let word = [];
|
|
82
|
-
let row = 1;
|
|
83
|
-
const { bitsPerRow } = db.getConfig();
|
|
84
|
-
for (let { start, end, label } of ast.blocks) {
|
|
85
|
-
if (end && end < start) {
|
|
86
|
-
throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);
|
|
87
|
-
}
|
|
88
|
-
if (start !== lastByte + 1) {
|
|
89
|
-
throw new Error(
|
|
90
|
-
`Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastByte + 1}.`
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
lastByte = end ?? start;
|
|
94
|
-
log.debug(`Packet block ${start} - ${lastByte} with label ${label}`);
|
|
95
|
-
while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {
|
|
96
|
-
const [block, nextBlock] = getNextFittingBlock({ start, end, label }, row, bitsPerRow);
|
|
97
|
-
word.push(block);
|
|
98
|
-
if (block.end + 1 === row * bitsPerRow) {
|
|
99
|
-
db.pushWord(word);
|
|
100
|
-
word = [];
|
|
101
|
-
row++;
|
|
102
|
-
}
|
|
103
|
-
if (!nextBlock) {
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
({ start, end, label } = nextBlock);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
db.pushWord(word);
|
|
110
|
-
}, "populate");
|
|
111
|
-
var getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {
|
|
112
|
-
if (block.end === void 0) {
|
|
113
|
-
block.end = block.start;
|
|
114
|
-
}
|
|
115
|
-
if (block.start > block.end) {
|
|
116
|
-
throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);
|
|
117
|
-
}
|
|
118
|
-
if (block.end + 1 <= row * bitsPerRow) {
|
|
119
|
-
return [block, void 0];
|
|
120
|
-
}
|
|
121
|
-
return [
|
|
122
|
-
{
|
|
123
|
-
start: block.start,
|
|
124
|
-
end: row * bitsPerRow - 1,
|
|
125
|
-
label: block.label
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
start: row * bitsPerRow,
|
|
129
|
-
end: block.end,
|
|
130
|
-
label: block.label
|
|
131
|
-
}
|
|
132
|
-
];
|
|
133
|
-
}, "getNextFittingBlock");
|
|
134
|
-
var parser = {
|
|
135
|
-
parse: /* @__PURE__ */ __name(async (input) => {
|
|
136
|
-
const ast = await parse("packet", input);
|
|
137
|
-
log.debug(ast);
|
|
138
|
-
populate(ast);
|
|
139
|
-
}, "parse")
|
|
140
|
-
};
|
|
141
|
-
var draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {
|
|
142
|
-
const db2 = diagram2.db;
|
|
143
|
-
const config = db2.getConfig();
|
|
144
|
-
const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;
|
|
145
|
-
const words = db2.getPacket();
|
|
146
|
-
const title = db2.getDiagramTitle();
|
|
147
|
-
const totalRowHeight = rowHeight + paddingY;
|
|
148
|
-
const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);
|
|
149
|
-
const svgWidth = bitWidth * bitsPerRow + 2;
|
|
150
|
-
const svg = selectSvgElement(id);
|
|
151
|
-
svg.attr("viewbox", `0 0 ${svgWidth} ${svgHeight}`);
|
|
152
|
-
configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);
|
|
153
|
-
for (const [word, packet] of words.entries()) {
|
|
154
|
-
drawWord(svg, packet, word, config);
|
|
155
|
-
}
|
|
156
|
-
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");
|
|
157
|
-
}, "draw");
|
|
158
|
-
var drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {
|
|
159
|
-
const group = svg.append("g");
|
|
160
|
-
const wordY = rowNumber * (rowHeight + paddingY) + paddingY;
|
|
161
|
-
for (const block of word) {
|
|
162
|
-
const blockX = block.start % bitsPerRow * bitWidth + 1;
|
|
163
|
-
const width = (block.end - block.start + 1) * bitWidth - paddingX;
|
|
164
|
-
group.append("rect").attr("x", blockX).attr("y", wordY).attr("width", width).attr("height", rowHeight).attr("class", "packetBlock");
|
|
165
|
-
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);
|
|
166
|
-
if (!showBits) {
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
const isSingleBlock = block.end === block.start;
|
|
170
|
-
const bitNumberY = wordY - 2;
|
|
171
|
-
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);
|
|
172
|
-
if (!isSingleBlock) {
|
|
173
|
-
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);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}, "drawWord");
|
|
177
|
-
var renderer = { draw };
|
|
178
|
-
var defaultPacketStyleOptions = {
|
|
179
|
-
byteFontSize: "10px",
|
|
180
|
-
startByteColor: "black",
|
|
181
|
-
endByteColor: "black",
|
|
182
|
-
labelColor: "black",
|
|
183
|
-
labelFontSize: "12px",
|
|
184
|
-
titleColor: "black",
|
|
185
|
-
titleFontSize: "14px",
|
|
186
|
-
blockStrokeColor: "black",
|
|
187
|
-
blockStrokeWidth: "1",
|
|
188
|
-
blockFillColor: "#efefef"
|
|
189
|
-
};
|
|
190
|
-
var styles = /* @__PURE__ */ __name(({ packet } = {}) => {
|
|
191
|
-
const options = cleanAndMerge(defaultPacketStyleOptions, packet);
|
|
192
|
-
return `
|
|
193
|
-
.packetByte {
|
|
194
|
-
font-size: ${options.byteFontSize};
|
|
195
|
-
}
|
|
196
|
-
.packetByte.start {
|
|
197
|
-
fill: ${options.startByteColor};
|
|
198
|
-
}
|
|
199
|
-
.packetByte.end {
|
|
200
|
-
fill: ${options.endByteColor};
|
|
201
|
-
}
|
|
202
|
-
.packetLabel {
|
|
203
|
-
fill: ${options.labelColor};
|
|
204
|
-
font-size: ${options.labelFontSize};
|
|
205
|
-
}
|
|
206
|
-
.packetTitle {
|
|
207
|
-
fill: ${options.titleColor};
|
|
208
|
-
font-size: ${options.titleFontSize};
|
|
209
|
-
}
|
|
210
|
-
.packetBlock {
|
|
211
|
-
stroke: ${options.blockStrokeColor};
|
|
212
|
-
stroke-width: ${options.blockStrokeWidth};
|
|
213
|
-
fill: ${options.blockFillColor};
|
|
214
|
-
}
|
|
215
|
-
`;
|
|
216
|
-
}, "styles");
|
|
217
|
-
var diagram = {
|
|
218
|
-
parser,
|
|
219
|
-
db,
|
|
220
|
-
renderer,
|
|
221
|
-
styles
|
|
222
|
-
};
|
|
223
|
-
export {
|
|
224
|
-
diagram
|
|
225
|
-
};
|
|
226
|
-
//# sourceMappingURL=diagram-QW4FP2JN-J2YMUPB5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-QW4FP2JN.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-TMUBEWPD.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-EJ4ZWXGL.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-6DBFFHIP.mjs\";\n\n// src/diagrams/packet/db.ts\nvar defaultPacketData = {\n packet: []\n};\nvar data = structuredClone(defaultPacketData);\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\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}, \"getConfig\");\nvar getPacket = /* @__PURE__ */ __name(() => data.packet, \"getPacket\");\nvar pushWord = /* @__PURE__ */ __name((word) => {\n if (word.length > 0) {\n data.packet.push(word);\n }\n}, \"pushWord\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultPacketData);\n}, \"clear\");\nvar db = {\n pushWord,\n getPacket,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n let lastByte = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, label } of ast.blocks) {\n if (end && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n if (start !== lastByte + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastByte + 1}.`\n );\n }\n lastByte = end ?? start;\n log.debug(`Packet block ${start} - ${lastByte} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, 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, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.end === void 0) {\n block.end = block.start;\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 return [\n {\n start: block.start,\n end: row * bitsPerRow - 1,\n label: block.label\n },\n {\n start: row * bitsPerRow,\n end: block.end,\n label: block.label\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const config = db2.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db2.getPacket();\n const title = db2.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 db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"mappings":"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","names":[]}
|