cc-viewer 1.6.183 → 1.6.192
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/dist/assets/App-DuGHwadX.js +31 -0
- package/dist/assets/{AppHeader-Dc7WvorH.css → AppHeader-D8MCV07q.css} +3 -3
- package/dist/assets/AppHeader.module-CozRDKfP.js +573 -0
- package/dist/assets/Mobile-Bab634xx.js +10 -0
- package/dist/assets/_baseUniq-DJPPdHyT.js +1 -0
- package/dist/assets/arc-DZ3Bjq-l.js +1 -0
- package/dist/assets/architectureDiagram-Q4EWVU46-xy0J2lr0.js +36 -0
- package/dist/assets/blockDiagram-DXYQGD6D-CoUm8UC5.js +132 -0
- package/dist/assets/c4Diagram-AHTNJAMY-CFHX4Dfx.js +10 -0
- package/dist/assets/channel-G3S1FOvm.js +1 -0
- package/dist/assets/chunk-4BX2VUAB-CiktxOyY.js +1 -0
- package/dist/assets/chunk-4TB4RGXK-DHl7ZlQV.js +206 -0
- package/dist/assets/chunk-55IACEB6-DcgWxDD5.js +1 -0
- package/dist/assets/chunk-EDXVE4YY-DeUzWpQx.js +1 -0
- package/dist/assets/{chunk-FMBD7UC4-Bb0LARSp.js → chunk-FMBD7UC4-BCaKpugk.js} +2 -2
- package/dist/assets/chunk-OYMX7WX6-DKMEMbG9.js +231 -0
- package/dist/assets/chunk-QZHKN3VN-BREApeQ-.js +1 -0
- package/dist/assets/chunk-YZCP3GAM-BYW1PNda.js +1 -0
- package/dist/assets/classDiagram-6PBFFD2Q-B0-7EUsz.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-B0-7EUsz.js +1 -0
- package/dist/assets/clone-CX_D5SrR.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-DpwiMCiq.js +1 -0
- package/dist/assets/cytoscape.esm-BMgRe88L.js +331 -0
- package/dist/assets/dagre-KV5264BT-Dc7qbya2.js +4 -0
- package/dist/assets/defaultLocale-CcTwRAjA.js +1 -0
- package/dist/assets/diagram-5BDNPKRD-v7FsHeLQ.js +10 -0
- package/dist/assets/diagram-G4DWMVQ6-BhKNBlcE.js +24 -0
- package/dist/assets/diagram-MMDJMWI5-C-3cRdzG.js +43 -0
- package/dist/assets/diagram-TYMM5635-HfNcJIfT.js +24 -0
- package/dist/assets/erDiagram-SMLLAGMA-Ckj0dkk7.js +85 -0
- package/dist/assets/flowDiagram-DWJPFMVM-yf315tJr.js +162 -0
- package/dist/assets/ganttDiagram-T4ZO3ILL-Ch2bINVC.js +292 -0
- package/dist/assets/gitGraphDiagram-UUTBAWPF-CesdgsJi.js +106 -0
- package/dist/assets/graph-CRpmapJV.js +1 -0
- package/dist/assets/html2canvas.esm-B8c0f9Wq.js +22 -0
- package/dist/assets/index-DJ0iGKLy.js +2 -0
- package/dist/assets/infoDiagram-42DDH7IO-CuD16P9Y.js +2 -0
- package/dist/assets/init-C7FSzFHJ.js +1 -0
- package/dist/assets/ishikawaDiagram-UXIWVN3A-4y8aG54G.js +70 -0
- package/dist/assets/journeyDiagram-VCZTEJTY-B6TtR2Zk.js +139 -0
- package/dist/assets/kanban-definition-6JOO6SKY-DTcNHYUS.js +89 -0
- package/dist/assets/katex-CJRKSY_b.js +257 -0
- package/dist/assets/layout-CX5hpkD2.js +1 -0
- package/dist/assets/linear-tWlC-NXc.js +1 -0
- package/dist/assets/mermaid.core-DNvsWVDx.js +308 -0
- package/dist/assets/min-CDExe3RN.js +1 -0
- package/dist/assets/mindmap-definition-QFDTVHPH-CW0yNQcb.js +96 -0
- package/dist/assets/ordinal-aRyHI6gl.js +1 -0
- package/dist/assets/pieDiagram-DEJITSTG-DNrnOqmz.js +30 -0
- package/dist/assets/quadrantDiagram-34T5L4WZ-Cl176vnh.js +7 -0
- package/dist/assets/requirementDiagram-MS252O5E-DKp3A5f_.js +84 -0
- package/dist/assets/sankeyDiagram-XADWPNL6-BMV0lAz8.js +10 -0
- package/dist/assets/sequenceDiagram-FGHM5R23-CQ4preep.js +157 -0
- package/dist/assets/stateDiagram-FHFEXIEX-BKqYYN8H.js +1 -0
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-C1W1ECmZ.js +1 -0
- package/dist/assets/timeline-definition-GMOUNBTQ-4kgeuumv.js +120 -0
- package/dist/assets/vendor-antd-Dk5s46Ag.js +406 -0
- package/dist/assets/vendor-codemirror-DxvDOrio.js +46 -0
- package/dist/assets/vendor-highlight-DVwgAdJY.js +3 -0
- package/dist/assets/vendor-markdown-DO-Ppp4f.js +60 -0
- package/dist/assets/vendor-qrcode-hI5wlAgK.js +9 -0
- package/dist/assets/vendor-virtuoso-HW77kTCh.js +1 -0
- package/dist/assets/vendor-xterm-D2cUrYEx.js +140 -0
- package/dist/assets/vennDiagram-DHZGUBPP-CqBcUIdK.js +34 -0
- package/dist/assets/wardley-RL74JXVD-CbEnkKx8.js +162 -0
- package/dist/assets/wardleyDiagram-NUSXRM2D-BJrjkZMg.js +20 -0
- package/dist/assets/xychartDiagram-5P7HB3ND-D8aBEz8e.js +7 -0
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/server.js +13 -4
- package/dist/assets/App-BHfyP8-J.js +0 -31
- package/dist/assets/AppHeader.module-W_78JZt9.js +0 -573
- package/dist/assets/Mobile-ca5EOMpN.js +0 -10
- package/dist/assets/_baseUniq-DYSZB4Xx.js +0 -1
- package/dist/assets/arc-BChSP8hM.js +0 -1
- package/dist/assets/architectureDiagram-Q4EWVU46-vlr5Q6DQ.js +0 -36
- package/dist/assets/blockDiagram-DXYQGD6D-4C3Amh2i.js +0 -132
- package/dist/assets/c4Diagram-AHTNJAMY-wI0efLSs.js +0 -10
- package/dist/assets/channel-d8DITadq.js +0 -1
- package/dist/assets/chunk-4BX2VUAB-BX9brpDB.js +0 -1
- package/dist/assets/chunk-4TB4RGXK-DvFQ-X9V.js +0 -206
- package/dist/assets/chunk-55IACEB6-BNmYjPNf.js +0 -1
- package/dist/assets/chunk-EDXVE4YY-BNvDPqBE.js +0 -1
- package/dist/assets/chunk-OYMX7WX6-BwlvIpeD.js +0 -231
- package/dist/assets/chunk-QZHKN3VN-BS6RK8_X.js +0 -1
- package/dist/assets/chunk-YZCP3GAM-oOqmydQz.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-B1oRrMCc.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-B1oRrMCc.js +0 -1
- package/dist/assets/clone-BrNOd7Lq.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-CamsIqkY.js +0 -1
- package/dist/assets/cytoscape.esm-DxGcaOPV.js +0 -331
- package/dist/assets/dagre-KV5264BT-CPAWWiBh.js +0 -4
- package/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
- package/dist/assets/diagram-5BDNPKRD-D6TmzGhl.js +0 -10
- package/dist/assets/diagram-G4DWMVQ6-DDuJnMCL.js +0 -24
- package/dist/assets/diagram-MMDJMWI5-CQWhvrpz.js +0 -43
- package/dist/assets/diagram-TYMM5635-CEDj3w_h.js +0 -24
- package/dist/assets/erDiagram-SMLLAGMA-B_eQqha6.js +0 -85
- package/dist/assets/flowDiagram-DWJPFMVM-B985i3uQ.js +0 -162
- package/dist/assets/ganttDiagram-T4ZO3ILL-DKp62vr3.js +0 -292
- package/dist/assets/gitGraphDiagram-UUTBAWPF-Cc1gyz1Q.js +0 -106
- package/dist/assets/graph-C-1-3bsA.js +0 -1
- package/dist/assets/html2canvas.esm-QH1iLAAe.js +0 -22
- package/dist/assets/index-LH2WLu05.js +0 -2
- package/dist/assets/infoDiagram-42DDH7IO-DqXaAHZz.js +0 -2
- package/dist/assets/init-Gi6I4Gst.js +0 -1
- package/dist/assets/ishikawaDiagram-UXIWVN3A-zdUdDJX2.js +0 -70
- package/dist/assets/journeyDiagram-VCZTEJTY-ip5SzODy.js +0 -139
- package/dist/assets/kanban-definition-6JOO6SKY-D5EYh6AP.js +0 -89
- package/dist/assets/katex-DkKDou_j.js +0 -257
- package/dist/assets/layout-Cjq8AL8G.js +0 -1
- package/dist/assets/linear-U0KsEJ2u.js +0 -1
- package/dist/assets/mermaid.core-CT-5crLN.js +0 -308
- package/dist/assets/min-C7G6pq26.js +0 -1
- package/dist/assets/mindmap-definition-QFDTVHPH-CIzhFOw1.js +0 -96
- package/dist/assets/ordinal-Cboi1Yqb.js +0 -1
- package/dist/assets/pieDiagram-DEJITSTG-Cp1Zd1MQ.js +0 -30
- package/dist/assets/quadrantDiagram-34T5L4WZ-Cp31xM90.js +0 -7
- package/dist/assets/requirementDiagram-MS252O5E-Dbg_eQqB.js +0 -84
- package/dist/assets/sankeyDiagram-XADWPNL6-CMrzwpwC.js +0 -10
- package/dist/assets/sequenceDiagram-FGHM5R23-KJegoBnN.js +0 -157
- package/dist/assets/stateDiagram-FHFEXIEX-BDWprYzE.js +0 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-CCUmB0qI.js +0 -1
- package/dist/assets/timeline-definition-GMOUNBTQ-BOWeG5LY.js +0 -120
- package/dist/assets/vendor-antd-CtdKd5xs.js +0 -406
- package/dist/assets/vendor-codemirror-CdXaVX4e.js +0 -46
- package/dist/assets/vendor-highlight-D4ATuRwX.js +0 -3
- package/dist/assets/vendor-markdown-CO-jRjTB.js +0 -60
- package/dist/assets/vendor-qrcode-D05RfzwB.js +0 -9
- package/dist/assets/vendor-virtuoso-BhnFrbmh.js +0 -1
- package/dist/assets/vendor-xterm-DWMOrwSy.js +0 -140
- package/dist/assets/vennDiagram-DHZGUBPP-B6mLodPk.js +0 -34
- package/dist/assets/wardley-RL74JXVD-CovHs24Z.js +0 -162
- package/dist/assets/wardleyDiagram-NUSXRM2D-CBg_VXF7.js +0 -20
- package/dist/assets/xychartDiagram-5P7HB3ND-BRxgk_oX.js +0 -7
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{_ as __name,as as markers_default,at as clear2,au as clear,av as clear$1,l as log,c as getConfig2,aw as updateNodeBounds,ax as setNodeElem,af as insertNode,al as getSubGraphTitleMargins,ag as positionNode,ae as insertCluster,ay as insertEdge,az as positionEdgeLabel,aA as insertEdgeLabel}from"./mermaid.core-DNvsWVDx.js";import{i as isUndefined,G as Graph}from"./graph-CRpmapJV.js";import{l as layout}from"./layout-CX5hpkD2.js";import{c as clone}from"./clone-CX_D5SrR.js";import{m as map}from"./min-CDExe3RN.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";import"./_baseUniq-DJPPdHyT.js";function write(g){var json={options:{directed:g.isDirected(),multigraph:g.isMultigraph(),compound:g.isCompound()},nodes:writeNodes(g),edges:writeEdges(g)};return isUndefined(g.graph())||(json.value=clone(g.graph())),json}function writeNodes(g){return map(g.nodes(),function(v){var nodeValue=g.node(v),parent=g.parent(v),node={v};return isUndefined(nodeValue)||(node.value=nodeValue),isUndefined(parent)||(node.parent=parent),node})}function writeEdges(g){return map(g.edges(),function(e){var edgeValue=g.edge(e),edge={v:e.v,w:e.w};return isUndefined(e.name)||(edge.name=e.name),isUndefined(edgeValue)||(edge.value=edgeValue),edge})}var clusterDb=new Map,descendants=new Map,parents=new Map,clear4=__name(()=>{descendants.clear(),parents.clear(),clusterDb.clear()},"clear"),isDescendant=__name((id,ancestorId)=>{const ancestorDescendants=descendants.get(ancestorId)||[];return log.trace("In isDescendant",ancestorId," ",id," = ",ancestorDescendants.includes(id)),ancestorDescendants.includes(id)},"isDescendant"),edgeInCluster=__name((edge,clusterId)=>{const clusterDescendants=descendants.get(clusterId)||[];return log.info("Descendants of ",clusterId," is ",clusterDescendants),log.info("Edge is ",edge),edge.v===clusterId||edge.w===clusterId?!1:clusterDescendants?clusterDescendants.includes(edge.v)||isDescendant(edge.v,clusterId)||isDescendant(edge.w,clusterId)||clusterDescendants.includes(edge.w):(log.debug("Tilt, ",clusterId,",not in descendants"),!1)},"edgeInCluster"),copy=__name((clusterId,graph,newGraph,rootId)=>{log.warn("Copying children of ",clusterId,"root",rootId,"data",graph.node(clusterId),rootId);const nodes=graph.children(clusterId)||[];clusterId!==rootId&&nodes.push(clusterId),log.warn("Copying (nodes) clusterId",clusterId,"nodes",nodes),nodes.forEach(node=>{if(graph.children(node).length>0)copy(node,graph,newGraph,rootId);else{const data=graph.node(node);log.info("cp ",node," to ",rootId," with parent ",clusterId),newGraph.setNode(node,data),rootId!==graph.parent(node)&&(log.warn("Setting parent",node,graph.parent(node)),newGraph.setParent(node,graph.parent(node))),clusterId!==rootId&&node!==clusterId?(log.debug("Setting parent",node,clusterId),newGraph.setParent(node,clusterId)):(log.info("In copy ",clusterId,"root",rootId,"data",graph.node(clusterId),rootId),log.debug("Not Setting parent for node=",node,"cluster!==rootId",clusterId!==rootId,"node!==clusterId",node!==clusterId));const edges=graph.edges(node);log.debug("Copying Edges",edges),edges.forEach(edge=>{log.info("Edge",edge);const data2=graph.edge(edge.v,edge.w,edge.name);log.info("Edge data",data2,rootId);try{edgeInCluster(edge,rootId)?(log.info("Copying as ",edge.v,edge.w,data2,edge.name),newGraph.setEdge(edge.v,edge.w,data2,edge.name),log.info("newGraph edges ",newGraph.edges(),newGraph.edge(newGraph.edges()[0]))):log.info("Skipping copy of edge ",edge.v,"-->",edge.w," rootId: ",rootId," clusterId:",clusterId)}catch(e){log.error(e)}})}log.debug("Removing node",node),graph.removeNode(node)})},"copy"),extractDescendants=__name((id,graph)=>{const children=graph.children(id);let res=[...children];for(const child of children)parents.set(child,id),res=[...res,...extractDescendants(child,graph)];return res},"extractDescendants"),findCommonEdges=__name((graph,id1,id2)=>{const edges1=graph.edges().filter(edge=>edge.v===id1||edge.w===id1),edges2=graph.edges().filter(edge=>edge.v===id2||edge.w===id2),edges1Prim=edges1.map(edge=>({v:edge.v===id1?id2:edge.v,w:edge.w===id1?id1:edge.w})),edges2Prim=edges2.map(edge=>({v:edge.v,w:edge.w}));return edges1Prim.filter(edgeIn1=>edges2Prim.some(edge=>edgeIn1.v===edge.v&&edgeIn1.w===edge.w))},"findCommonEdges"),findNonClusterChild=__name((id,graph,clusterId)=>{const children=graph.children(id);if(log.trace("Searching children of id ",id,children),children.length<1)return id;let reserve;for(const child of children){const _id=findNonClusterChild(child,graph,clusterId),commonEdges=findCommonEdges(graph,clusterId,_id);if(_id)if(commonEdges.length>0)reserve=_id;else return _id}return reserve},"findNonClusterChild"),getAnchorId=__name(id=>!clusterDb.has(id)||!clusterDb.get(id).externalConnections?id:clusterDb.has(id)?clusterDb.get(id).id:id,"getAnchorId"),adjustClustersAndEdges=__name((graph,depth)=>{if(!graph||depth>10){log.debug("Opting out, no graph ");return}else log.debug("Opting in, graph ");graph.nodes().forEach(function(id){graph.children(id).length>0&&(log.warn("Cluster identified",id," Replacement id in edges: ",findNonClusterChild(id,graph,id)),descendants.set(id,extractDescendants(id,graph)),clusterDb.set(id,{id:findNonClusterChild(id,graph,id),clusterData:graph.node(id)}))}),graph.nodes().forEach(function(id){const children=graph.children(id),edges=graph.edges();children.length>0?(log.debug("Cluster identified",id,descendants),edges.forEach(edge=>{const d1=isDescendant(edge.v,id),d2=isDescendant(edge.w,id);d1^d2&&(log.warn("Edge: ",edge," leaves cluster ",id),log.warn("Descendants of XXX ",id,": ",descendants.get(id)),clusterDb.get(id).externalConnections=!0)})):log.debug("Not a cluster ",id,descendants)});for(let id of clusterDb.keys()){const nonClusterChild=clusterDb.get(id).id,parent=graph.parent(nonClusterChild);parent!==id&&clusterDb.has(parent)&&!clusterDb.get(parent).externalConnections&&(clusterDb.get(id).id=parent)}graph.edges().forEach(function(e){const edge=graph.edge(e);log.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),log.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(graph.edge(e)));let v=e.v,w=e.w;if(log.warn("Fix XXX",clusterDb,"ids:",e.v,e.w,"Translating: ",clusterDb.get(e.v)," --- ",clusterDb.get(e.w)),clusterDb.get(e.v)||clusterDb.get(e.w)){if(log.warn("Fixing and trying - removing XXX",e.v,e.w,e.name),v=getAnchorId(e.v),w=getAnchorId(e.w),graph.removeEdge(e.v,e.w,e.name),v!==e.v){const parent=graph.parent(v);clusterDb.get(parent).externalConnections=!0,edge.fromCluster=e.v}if(w!==e.w){const parent=graph.parent(w);clusterDb.get(parent).externalConnections=!0,edge.toCluster=e.w}log.warn("Fix Replacing with XXX",v,w,e.name),graph.setEdge(v,w,edge,e.name)}}),log.warn("Adjusted Graph",write(graph)),extractor(graph,0),log.trace(clusterDb)},"adjustClustersAndEdges"),extractor=__name((graph,depth)=>{var _a,_b;if(log.warn("extractor - ",depth,write(graph),graph.children("D")),depth>10){log.error("Bailing out");return}let nodes=graph.nodes(),hasChildren=!1;for(const node of nodes){const children=graph.children(node);hasChildren=hasChildren||children.length>0}if(!hasChildren){log.debug("Done, no node has children",graph.nodes());return}log.debug("Nodes = ",nodes,depth);for(const node of nodes)if(log.debug("Extracting node",node,clusterDb,clusterDb.has(node)&&!clusterDb.get(node).externalConnections,!graph.parent(node),graph.node(node),graph.children("D")," Depth ",depth),!clusterDb.has(node))log.debug("Not a cluster",node,depth);else if(!clusterDb.get(node).externalConnections&&graph.children(node)&&graph.children(node).length>0){log.warn("Cluster without external connections, without a parent and with children",node,depth);let dir=graph.graph().rankdir==="TB"?"LR":"TB";(_b=(_a=clusterDb.get(node))==null?void 0:_a.clusterData)!=null&&_b.dir&&(dir=clusterDb.get(node).clusterData.dir,log.warn("Fixing dir",clusterDb.get(node).clusterData.dir,dir));const clusterGraph=new Graph({multigraph:!0,compound:!0}).setGraph({rankdir:dir,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});log.warn("Old graph before copy",write(graph)),copy(node,graph,clusterGraph,node),graph.setNode(node,{clusterNode:!0,id:node,clusterData:clusterDb.get(node).clusterData,label:clusterDb.get(node).label,graph:clusterGraph}),log.warn("New graph after copy node: (",node,")",write(clusterGraph)),log.debug("Old graph after copy",write(graph))}else log.warn("Cluster ** ",node," **not meeting the criteria !externalConnections:",!clusterDb.get(node).externalConnections," no parent: ",!graph.parent(node)," children ",graph.children(node)&&graph.children(node).length>0,graph.children("D"),depth),log.debug(clusterDb);nodes=graph.nodes(),log.warn("New list of nodes",nodes);for(const node of nodes){const data=graph.node(node);log.warn(" Now next level",node,data),data!=null&&data.clusterNode&&extractor(data.graph,depth+1)}},"extractor"),sorter=__name((graph,nodes)=>{if(nodes.length===0)return[];let result=Object.assign([],nodes);return nodes.forEach(node=>{const children=graph.children(node),sorted=sorter(graph,children);result=[...result,...sorted]}),result},"sorter"),sortNodesByHierarchy=__name(graph=>sorter(graph,graph.children()),"sortNodesByHierarchy"),recursiveRender=__name(async(_elem,graph,diagramType,id,parentCluster,siteConfig)=>{log.warn("Graph in recursive render:XAX",write(graph),parentCluster);const dir=graph.graph().rankdir;log.trace("Dir in recursive render - dir:",dir);const elem=_elem.insert("g").attr("class","root");graph.nodes()?log.info("Recursive render XXX",graph.nodes()):log.info("No nodes found for",graph),graph.edges().length>0&&log.info("Recursive edges",graph.edge(graph.edges()[0]));const clusters=elem.insert("g").attr("class","clusters"),edgePaths=elem.insert("g").attr("class","edgePaths"),edgeLabels=elem.insert("g").attr("class","edgeLabels"),nodes=elem.insert("g").attr("class","nodes");await Promise.all(graph.nodes().map(async function(v){const node=graph.node(v);if(parentCluster!==void 0){const data=JSON.parse(JSON.stringify(parentCluster.clusterData));log.trace(`Setting data for parent cluster XXX
|
|
2
|
+
Node.id = `,v,`
|
|
3
|
+
data=`,data.height,`
|
|
4
|
+
Parent cluster`,parentCluster.height),graph.setNode(parentCluster.id,data),graph.parent(v)||(log.trace("Setting parent",v,parentCluster.id),graph.setParent(v,parentCluster.id,data))}if(log.info("(Insert) Node XXX"+v+": "+JSON.stringify(graph.node(v))),node!=null&&node.clusterNode){log.info("Cluster identified XBX",v,node.width,graph.node(v));const{ranksep,nodesep}=graph.graph();node.graph.setGraph({...node.graph.graph(),ranksep:ranksep+25,nodesep});const o=await recursiveRender(nodes,node.graph,diagramType,id,graph.node(v),siteConfig),newEl=o.elem;updateNodeBounds(node,newEl),node.diff=o.diff||0,log.info("New compound node after recursive render XAX",v,"width",node.width,"height",node.height),setNodeElem(newEl,node)}else graph.children(v).length>0?(log.trace("Cluster - the non recursive path XBX",v,node.id,node,node.width,"Graph:",graph),log.trace(findNonClusterChild(node.id,graph)),clusterDb.set(node.id,{id:findNonClusterChild(node.id,graph),node})):(log.trace("Node - the non recursive path XAX",v,nodes,graph.node(v),dir),await insertNode(nodes,graph.node(v),{config:siteConfig,dir}))})),await __name(async()=>{const edgePromises=graph.edges().map(async function(e){const edge=graph.edge(e.v,e.w,e.name);log.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),log.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(graph.edge(e))),log.info("Fix",clusterDb,"ids:",e.v,e.w,"Translating: ",clusterDb.get(e.v),clusterDb.get(e.w)),await insertEdgeLabel(edgeLabels,edge)});await Promise.all(edgePromises)},"processEdges")(),log.info("Graph before layout:",JSON.stringify(write(graph))),log.info("############################################# XXX"),log.info("### Layout ### XXX"),log.info("############################################# XXX"),layout(graph),log.info("Graph after layout:",JSON.stringify(write(graph)));let diff=0,{subGraphTitleTotalMargin}=getSubGraphTitleMargins(siteConfig);return await Promise.all(sortNodesByHierarchy(graph).map(async function(v){var _a;const node=graph.node(v);if(log.info("Position XBX => "+v+": ("+node.x,","+node.y,") width: ",node.width," height: ",node.height),node!=null&&node.clusterNode)node.y+=subGraphTitleTotalMargin,log.info("A tainted cluster node XBX1",v,node.id,node.width,node.height,node.x,node.y,graph.parent(v)),clusterDb.get(node.id).node=node,positionNode(node);else if(graph.children(v).length>0){log.info("A pure cluster node XBX1",v,node.id,node.x,node.y,node.width,node.height,graph.parent(v)),node.height+=subGraphTitleTotalMargin,graph.node(node.parentId);const halfPadding=(node==null?void 0:node.padding)/2||0,labelHeight=((_a=node==null?void 0:node.labelBBox)==null?void 0:_a.height)||0,offsetY=labelHeight-halfPadding||0;log.debug("OffsetY",offsetY,"labelHeight",labelHeight,"halfPadding",halfPadding),await insertCluster(clusters,node),clusterDb.get(node.id).node=node}else{const parent=graph.node(node.parentId);node.y+=subGraphTitleTotalMargin/2,log.info("A regular node XBX1 - using the padding",node.id,"parent",node.parentId,node.width,node.height,node.x,node.y,"offsetY",node.offsetY,"parent",parent,parent==null?void 0:parent.offsetY,node),positionNode(node)}})),graph.edges().forEach(function(e){const edge=graph.edge(e);log.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(edge),edge),edge.points.forEach(point=>point.y+=subGraphTitleTotalMargin/2);const startNode=graph.node(e.v);var endNode=graph.node(e.w);const paths=insertEdge(edgePaths,edge,clusterDb,diagramType,startNode,endNode,id);positionEdgeLabel(edge,paths)}),graph.nodes().forEach(function(v){const n=graph.node(v);log.info(v,n.type,n.diff),n.isGroup&&(diff=n.diff)}),log.warn("Returning from recursive render XAX",elem,diff),{elem,diff}},"recursiveRender"),render=__name(async(data4Layout,svg)=>{var _a,_b,_c,_d,_e,_f;const graph=new Graph({multigraph:!0,compound:!0}).setGraph({rankdir:data4Layout.direction,nodesep:((_a=data4Layout.config)==null?void 0:_a.nodeSpacing)||((_c=(_b=data4Layout.config)==null?void 0:_b.flowchart)==null?void 0:_c.nodeSpacing)||data4Layout.nodeSpacing,ranksep:((_d=data4Layout.config)==null?void 0:_d.rankSpacing)||((_f=(_e=data4Layout.config)==null?void 0:_e.flowchart)==null?void 0:_f.rankSpacing)||data4Layout.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),element=svg.select("g");markers_default(element,data4Layout.markers,data4Layout.type,data4Layout.diagramId),clear2(),clear(),clear$1(),clear4(),data4Layout.nodes.forEach(node=>{graph.setNode(node.id,{...node}),node.parentId&&graph.setParent(node.id,node.parentId)}),log.debug("Edges:",data4Layout.edges),data4Layout.edges.forEach(edge=>{if(edge.start===edge.end){const nodeId=edge.start,specialId1=nodeId+"---"+nodeId+"---1",specialId2=nodeId+"---"+nodeId+"---2",node=graph.node(nodeId);graph.setNode(specialId1,{domId:specialId1,id:specialId1,parentId:node.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),graph.setParent(specialId1,node.parentId),graph.setNode(specialId2,{domId:specialId2,id:specialId2,parentId:node.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),graph.setParent(specialId2,node.parentId);const edge1=structuredClone(edge),edgeMid=structuredClone(edge),edge2=structuredClone(edge);edge1.label="",edge1.arrowTypeEnd="none",edge1.id=nodeId+"-cyclic-special-1",edgeMid.arrowTypeStart="none",edgeMid.arrowTypeEnd="none",edgeMid.id=nodeId+"-cyclic-special-mid",edge2.label="",node.isGroup&&(edge1.fromCluster=nodeId,edge2.toCluster=nodeId),edge2.id=nodeId+"-cyclic-special-2",edge2.arrowTypeStart="none",graph.setEdge(nodeId,specialId1,edge1,nodeId+"-cyclic-special-0"),graph.setEdge(specialId1,specialId2,edgeMid,nodeId+"-cyclic-special-1"),graph.setEdge(specialId2,nodeId,edge2,nodeId+"-cyc<lic-special-2")}else graph.setEdge(edge.start,edge.end,{...edge},edge.id)}),log.warn("Graph at first:",JSON.stringify(write(graph))),adjustClustersAndEdges(graph),log.warn("Graph after XAX:",JSON.stringify(write(graph)));const siteConfig=getConfig2();await recursiveRender(element,graph,data4Layout.type,data4Layout.diagramId,void 0,siteConfig)},"render");export{render};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function formatDecimal(x){return Math.abs(x=Math.round(x))>=1e21?x.toLocaleString("en").replace(/,/g,""):x.toString(10)}function formatDecimalParts(x,p){if(!isFinite(x)||x===0)return null;var i=(x=p?x.toExponential(p-1):x.toExponential()).indexOf("e"),coefficient=x.slice(0,i);return[coefficient.length>1?coefficient[0]+coefficient.slice(2):coefficient,+x.slice(i+1)]}function exponent(x){return x=formatDecimalParts(Math.abs(x)),x?x[1]:NaN}function formatGroup(grouping,thousands){return function(value,width){for(var i=value.length,t=[],j=0,g=grouping[0],length=0;i>0&&g>0&&(length+g+1>width&&(g=Math.max(1,width-length)),t.push(value.substring(i-=g,i+g)),!((length+=g+1)>width));)g=grouping[j=(j+1)%grouping.length];return t.reverse().join(thousands)}}function formatNumerals(numerals){return function(value){return value.replace(/[0-9]/g,function(i){return numerals[+i]})}}var re=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(specifier){if(!(match=re.exec(specifier)))throw new Error("invalid format: "+specifier);var match;return new FormatSpecifier({fill:match[1],align:match[2],sign:match[3],symbol:match[4],zero:match[5],width:match[6],comma:match[7],precision:match[8]&&match[8].slice(1),trim:match[9],type:match[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(specifier){this.fill=specifier.fill===void 0?" ":specifier.fill+"",this.align=specifier.align===void 0?">":specifier.align+"",this.sign=specifier.sign===void 0?"-":specifier.sign+"",this.symbol=specifier.symbol===void 0?"":specifier.symbol+"",this.zero=!!specifier.zero,this.width=specifier.width===void 0?void 0:+specifier.width,this.comma=!!specifier.comma,this.precision=specifier.precision===void 0?void 0:+specifier.precision,this.trim=!!specifier.trim,this.type=specifier.type===void 0?"":specifier.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(s){out:for(var n=s.length,i=1,i0=-1,i1;i<n;++i)switch(s[i]){case".":i0=i1=i;break;case"0":i0===0&&(i0=i),i1=i;break;default:if(!+s[i])break out;i0>0&&(i0=0);break}return i0>0?s.slice(0,i0)+s.slice(i1+1):s}var prefixExponent;function formatPrefixAuto(x,p){var d=formatDecimalParts(x,p);if(!d)return prefixExponent=void 0,x.toPrecision(p);var coefficient=d[0],exponent2=d[1],i=exponent2-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(exponent2/3)))*3)+1,n=coefficient.length;return i===n?coefficient:i>n?coefficient+new Array(i-n+1).join("0"):i>0?coefficient.slice(0,i)+"."+coefficient.slice(i):"0."+new Array(1-i).join("0")+formatDecimalParts(x,Math.max(0,p+i-1))[0]}function formatRounded(x,p){var d=formatDecimalParts(x,p);if(!d)return x+"";var coefficient=d[0],exponent2=d[1];return exponent2<0?"0."+new Array(-exponent2).join("0")+coefficient:coefficient.length>exponent2+1?coefficient.slice(0,exponent2+1)+"."+coefficient.slice(exponent2+1):coefficient+new Array(exponent2-coefficient.length+2).join("0")}const formatTypes={"%":(x,p)=>(x*100).toFixed(p),b:x=>Math.round(x).toString(2),c:x=>x+"",d:formatDecimal,e:(x,p)=>x.toExponential(p),f:(x,p)=>x.toFixed(p),g:(x,p)=>x.toPrecision(p),o:x=>Math.round(x).toString(8),p:(x,p)=>formatRounded(x*100,p),r:formatRounded,s:formatPrefixAuto,X:x=>Math.round(x).toString(16).toUpperCase(),x:x=>Math.round(x).toString(16)};function identity(x){return x}var map=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale(locale2){var group=locale2.grouping===void 0||locale2.thousands===void 0?identity:formatGroup(map.call(locale2.grouping,Number),locale2.thousands+""),currencyPrefix=locale2.currency===void 0?"":locale2.currency[0]+"",currencySuffix=locale2.currency===void 0?"":locale2.currency[1]+"",decimal=locale2.decimal===void 0?".":locale2.decimal+"",numerals=locale2.numerals===void 0?identity:formatNumerals(map.call(locale2.numerals,String)),percent=locale2.percent===void 0?"%":locale2.percent+"",minus=locale2.minus===void 0?"−":locale2.minus+"",nan=locale2.nan===void 0?"NaN":locale2.nan+"";function newFormat(specifier,options){specifier=formatSpecifier(specifier);var fill=specifier.fill,align=specifier.align,sign=specifier.sign,symbol=specifier.symbol,zero=specifier.zero,width=specifier.width,comma=specifier.comma,precision=specifier.precision,trim=specifier.trim,type=specifier.type;type==="n"?(comma=!0,type="g"):formatTypes[type]||(precision===void 0&&(precision=12),trim=!0,type="g"),(zero||fill==="0"&&align==="=")&&(zero=!0,fill="0",align="=");var prefix=(options&&options.prefix!==void 0?options.prefix:"")+(symbol==="$"?currencyPrefix:symbol==="#"&&/[boxX]/.test(type)?"0"+type.toLowerCase():""),suffix=(symbol==="$"?currencySuffix:/[%p]/.test(type)?percent:"")+(options&&options.suffix!==void 0?options.suffix:""),formatType=formatTypes[type],maybeSuffix=/[defgprs%]/.test(type);precision=precision===void 0?6:/[gprs]/.test(type)?Math.max(1,Math.min(21,precision)):Math.max(0,Math.min(20,precision));function format2(value){var valuePrefix=prefix,valueSuffix=suffix,i,n,c;if(type==="c")valueSuffix=formatType(value)+valueSuffix,value="";else{value=+value;var valueNegative=value<0||1/value<0;if(value=isNaN(value)?nan:formatType(Math.abs(value),precision),trim&&(value=formatTrim(value)),valueNegative&&+value==0&&sign!=="+"&&(valueNegative=!1),valuePrefix=(valueNegative?sign==="("?sign:minus:sign==="-"||sign==="("?"":sign)+valuePrefix,valueSuffix=(type==="s"&&!isNaN(value)&&prefixExponent!==void 0?prefixes[8+prefixExponent/3]:"")+valueSuffix+(valueNegative&&sign==="("?")":""),maybeSuffix){for(i=-1,n=value.length;++i<n;)if(c=value.charCodeAt(i),48>c||c>57){valueSuffix=(c===46?decimal+value.slice(i+1):value.slice(i))+valueSuffix,value=value.slice(0,i);break}}}comma&&!zero&&(value=group(value,1/0));var length=valuePrefix.length+value.length+valueSuffix.length,padding=length<width?new Array(width-length+1).join(fill):"";switch(comma&&zero&&(value=group(padding+value,padding.length?width-valueSuffix.length:1/0),padding=""),align){case"<":value=valuePrefix+value+valueSuffix+padding;break;case"=":value=valuePrefix+padding+value+valueSuffix;break;case"^":value=padding.slice(0,length=padding.length>>1)+valuePrefix+value+valueSuffix+padding.slice(length);break;default:value=padding+valuePrefix+value+valueSuffix;break}return numerals(value)}return format2.toString=function(){return specifier+""},format2}function formatPrefix2(specifier,value){var e=Math.max(-8,Math.min(8,Math.floor(exponent(value)/3)))*3,k=Math.pow(10,-e),f=newFormat((specifier=formatSpecifier(specifier),specifier.type="f",specifier),{suffix:prefixes[8+e/3]});return function(value2){return f(k*value2)}}return{format:newFormat,formatPrefix:formatPrefix2}}var locale,format,formatPrefix;defaultLocale({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale(definition){return locale=formatLocale(definition),format=locale.format,formatPrefix=locale.formatPrefix,locale}export{formatPrefix as a,format as b,exponent as e,formatSpecifier as f};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{p as setDiagramTitle,b as setAccTitle,s as setAccDescription,q as getDiagramTitle,g as getAccDescription,a as getAccTitle,_ as __name,E as cleanAndMerge,l as log,H as selectSvgElement,e as configureSvgSize,C as getConfig,F as defaultConfig_default,y as clear}from"./mermaid.core-DNvsWVDx.js";import{p as populateCommonDb}from"./chunk-4BX2VUAB-CiktxOyY.js";import{I as ImperativeState}from"./chunk-QZHKN3VN-BREApeQ-.js";import{p as parse}from"./wardley-RL74JXVD-CbEnkKx8.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";import"./min-CDExe3RN.js";import"./_baseUniq-DJPPdHyT.js";var state=new ImperativeState(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),clear2=__name(()=>{state.reset(),clear()},"clear"),getRoot=__name(()=>state.records.stack[0],"getRoot"),getCount=__name(()=>state.records.cnt,"getCount"),defaultConfig=defaultConfig_default.treeView,getConfig2=__name(()=>cleanAndMerge(defaultConfig,getConfig().treeView),"getConfig"),addNode=__name((level,name)=>{for(;level<=state.records.stack[state.records.stack.length-1].level;)state.records.stack.pop();const node={id:state.records.cnt++,level,name,children:[]};state.records.stack[state.records.stack.length-1].children.push(node),state.records.stack.push(node)},"addNode"),db={clear:clear2,addNode,getRoot,getCount,getConfig:getConfig2,getAccTitle,getAccDescription,getDiagramTitle,setAccDescription,setAccTitle,setDiagramTitle},db_default=db,populate=__name(ast=>{populateCommonDb(ast,db_default),ast.nodes.map(node=>db_default.addNode(node.indent?parseInt(node.indent):0,node.name))},"populate"),parser={parse:__name(async input=>{const ast=await parse("treeView",input);log.debug(ast),populate(ast)},"parse")},positionLabel=__name((x,y,node,domElem,config)=>{const label=domElem.append("text").text(node.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:labelHeight,width:labelWidth}=label.node().getBBox(),height=labelHeight+config.paddingY*2,width=labelWidth+config.paddingX*2;label.attr("x",x+config.paddingX),label.attr("y",y+height/2),node.BBox={x,y,width,height}},"positionLabel"),positionLine=__name((domElem,x1,y1,x2,y2,lineThickness)=>domElem.append("line").attr("x1",x1).attr("y1",y1).attr("x2",x2).attr("y2",y2).attr("stroke-width",lineThickness).attr("class","treeView-node-line"),"positionLine"),drawTree=__name((elem,root,config)=>{let totalHeight=0,totalWidth=0;const drawNode=__name((elem2,node,config2,depth)=>{const indent=depth*(config2.rowIndent+config2.paddingX);positionLabel(indent,totalHeight,node,elem2,config2);const{height,width}=node.BBox;positionLine(elem2,indent-config2.rowIndent,totalHeight+height/2,indent,totalHeight+height/2,config2.lineThickness),totalWidth=Math.max(totalWidth,indent+width),totalHeight+=height},"drawNode"),processNode=__name((node,depth=0)=>{drawNode(elem,node,config,depth),node.children.forEach(child=>{processNode(child,depth+1)});const{x,y,height}=node.BBox;if(node.children.length){const{y:endY,height:endHeight}=node.children[node.children.length-1].BBox;positionLine(elem,x+config.paddingX,y+height,x+config.paddingX,endY+endHeight/2+config.lineThickness/2,config.lineThickness)}},"processNode");return processNode(root),{totalHeight,totalWidth}},"drawTree"),draw=__name((text,id,_ver,diagObj)=>{log.debug(`Rendering treeView diagram
|
|
2
|
+
`+text);const db2=diagObj.db,root=db2.getRoot(),config=db2.getConfig(),svg=selectSvgElement(id),treeElem=svg.append("g");treeElem.attr("class","tree-view");const{totalHeight,totalWidth}=drawTree(treeElem,root,config);svg.attr("viewBox",`-${config.lineThickness/2} 0 ${totalWidth} ${totalHeight}`),configureSvgSize(svg,totalHeight,totalWidth,config.useMaxWidth)},"draw"),renderer={draw},renderer_default=renderer,defaultTreeViewDiagramStyles={labelFontSize:"16px",labelColor:"black",lineColor:"black"},styles=__name(({treeView})=>{const{labelFontSize,labelColor,lineColor}=cleanAndMerge(defaultTreeViewDiagramStyles,treeView);return`
|
|
3
|
+
.treeView-node-label {
|
|
4
|
+
font-size: ${labelFontSize};
|
|
5
|
+
fill: ${labelColor};
|
|
6
|
+
}
|
|
7
|
+
.treeView-node-line {
|
|
8
|
+
stroke: ${lineColor};
|
|
9
|
+
}
|
|
10
|
+
`},"styles"),styles_default=styles,diagram={db:db_default,renderer:renderer_default,parser,styles:styles_default};export{diagram};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{_ as __name,I as getThemeVariables3,C as getConfig,E as cleanAndMerge,H as selectSvgElement,e as configureSvgSize,l as log,ba as styles2String,d as select,b as setAccTitle,a as getAccTitle,p as setDiagramTitle,q as getDiagramTitle,g as getAccDescription,s as setAccDescription,F as defaultConfig_default,bb as isLabelStyle,y as clear}from"./mermaid.core-DNvsWVDx.js";import{s as setupViewPortForSVG}from"./chunk-EDXVE4YY-DeUzWpQx.js";import{p as populateCommonDb}from"./chunk-4BX2VUAB-CiktxOyY.js";import{p as parse}from"./wardley-RL74JXVD-CbEnkKx8.js";import{b as format}from"./defaultLocale-CcTwRAjA.js";import{o as ordinal}from"./ordinal-aRyHI6gl.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";import"./min-CDExe3RN.js";import"./_baseUniq-DJPPdHyT.js";import"./init-C7FSzFHJ.js";function count(node){var sum=0,children=node.children,i=children&&children.length;if(!i)sum=1;else for(;--i>=0;)sum+=children[i].value;node.value=sum}function node_count(){return this.eachAfter(count)}function node_each(callback,that){let index=-1;for(const node of this)callback.call(that,node,++index,this);return this}function node_eachBefore(callback,that){for(var node=this,nodes=[node],children,i,index=-1;node=nodes.pop();)if(callback.call(that,node,++index,this),children=node.children)for(i=children.length-1;i>=0;--i)nodes.push(children[i]);return this}function node_eachAfter(callback,that){for(var node=this,nodes=[node],next=[],children,i,n,index=-1;node=nodes.pop();)if(next.push(node),children=node.children)for(i=0,n=children.length;i<n;++i)nodes.push(children[i]);for(;node=next.pop();)callback.call(that,node,++index,this);return this}function node_find(callback,that){let index=-1;for(const node of this)if(callback.call(that,node,++index,this))return node}function node_sum(value){return this.eachAfter(function(node){for(var sum=+value(node.data)||0,children=node.children,i=children&&children.length;--i>=0;)sum+=children[i].value;node.value=sum})}function node_sort(compare){return this.eachBefore(function(node){node.children&&node.children.sort(compare)})}function node_path(end){for(var start=this,ancestor=leastCommonAncestor(start,end),nodes=[start];start!==ancestor;)start=start.parent,nodes.push(start);for(var k=nodes.length;end!==ancestor;)nodes.splice(k,0,end),end=end.parent;return nodes}function leastCommonAncestor(a,b){if(a===b)return a;var aNodes=a.ancestors(),bNodes=b.ancestors(),c=null;for(a=aNodes.pop(),b=bNodes.pop();a===b;)c=a,a=aNodes.pop(),b=bNodes.pop();return c}function node_ancestors(){for(var node=this,nodes=[node];node=node.parent;)nodes.push(node);return nodes}function node_descendants(){return Array.from(this)}function node_leaves(){var leaves=[];return this.eachBefore(function(node){node.children||leaves.push(node)}),leaves}function node_links(){var root=this,links=[];return root.each(function(node){node!==root&&links.push({source:node.parent,target:node})}),links}function*node_iterator(){var node=this,current,next=[node],children,i,n;do for(current=next.reverse(),next=[];node=current.pop();)if(yield node,children=node.children)for(i=0,n=children.length;i<n;++i)next.push(children[i]);while(next.length)}function hierarchy(data,children){data instanceof Map?(data=[void 0,data],children===void 0&&(children=mapChildren)):children===void 0&&(children=objectChildren);for(var root=new Node(data),node,nodes=[root],child,childs,i,n;node=nodes.pop();)if((childs=children(node.data))&&(n=(childs=Array.from(childs)).length))for(node.children=childs,i=n-1;i>=0;--i)nodes.push(child=childs[i]=new Node(childs[i])),child.parent=node,child.depth=node.depth+1;return root.eachBefore(computeHeight)}function node_copy(){return hierarchy(this).eachBefore(copyData)}function objectChildren(d){return d.children}function mapChildren(d){return Array.isArray(d)?d[1]:null}function copyData(node){node.data.value!==void 0&&(node.value=node.data.value),node.data=node.data.data}function computeHeight(node){var height=0;do node.height=height;while((node=node.parent)&&node.height<++height)}function Node(data){this.data=data,this.depth=this.height=0,this.parent=null}Node.prototype=hierarchy.prototype={constructor:Node,count:node_count,each:node_each,eachAfter:node_eachAfter,eachBefore:node_eachBefore,find:node_find,sum:node_sum,sort:node_sort,path:node_path,ancestors:node_ancestors,descendants:node_descendants,leaves:node_leaves,links:node_links,copy:node_copy,[Symbol.iterator]:node_iterator};function required(f){if(typeof f!="function")throw new Error;return f}function constantZero(){return 0}function constant(x){return function(){return x}}function roundNode(node){node.x0=Math.round(node.x0),node.y0=Math.round(node.y0),node.x1=Math.round(node.x1),node.y1=Math.round(node.y1)}function treemapDice(parent,x0,y0,x1,y1){for(var nodes=parent.children,node,i=-1,n=nodes.length,k=parent.value&&(x1-x0)/parent.value;++i<n;)node=nodes[i],node.y0=y0,node.y1=y1,node.x0=x0,node.x1=x0+=node.value*k}function treemapSlice(parent,x0,y0,x1,y1){for(var nodes=parent.children,node,i=-1,n=nodes.length,k=parent.value&&(y1-y0)/parent.value;++i<n;)node=nodes[i],node.x0=x0,node.x1=x1,node.y0=y0,node.y1=y0+=node.value*k}var phi=(1+Math.sqrt(5))/2;function squarifyRatio(ratio,parent,x0,y0,x1,y1){for(var rows=[],nodes=parent.children,row,nodeValue,i0=0,i1=0,n=nodes.length,dx,dy,value=parent.value,sumValue,minValue,maxValue,newRatio,minRatio,alpha,beta;i0<n;){dx=x1-x0,dy=y1-y0;do sumValue=nodes[i1++].value;while(!sumValue&&i1<n);for(minValue=maxValue=sumValue,alpha=Math.max(dy/dx,dx/dy)/(value*ratio),beta=sumValue*sumValue*alpha,minRatio=Math.max(maxValue/beta,beta/minValue);i1<n;++i1){if(sumValue+=nodeValue=nodes[i1].value,nodeValue<minValue&&(minValue=nodeValue),nodeValue>maxValue&&(maxValue=nodeValue),beta=sumValue*sumValue*alpha,newRatio=Math.max(maxValue/beta,beta/minValue),newRatio>minRatio){sumValue-=nodeValue;break}minRatio=newRatio}rows.push(row={value:sumValue,dice:dx<dy,children:nodes.slice(i0,i1)}),row.dice?treemapDice(row,x0,y0,x1,value?y0+=dy*sumValue/value:y1):treemapSlice(row,x0,y0,value?x0+=dx*sumValue/value:x1,y1),value-=sumValue,i0=i1}return rows}const squarify=(function custom(ratio){function squarify2(parent,x0,y0,x1,y1){squarifyRatio(ratio,parent,x0,y0,x1,y1)}return squarify2.ratio=function(x){return custom((x=+x)>1?x:1)},squarify2})(phi);function treemap(){var tile=squarify,round=!1,dx=1,dy=1,paddingStack=[0],paddingInner=constantZero,paddingTop=constantZero,paddingRight=constantZero,paddingBottom=constantZero,paddingLeft=constantZero;function treemap2(root){return root.x0=root.y0=0,root.x1=dx,root.y1=dy,root.eachBefore(positionNode),paddingStack=[0],round&&root.eachBefore(roundNode),root}function positionNode(node){var p=paddingStack[node.depth],x0=node.x0+p,y0=node.y0+p,x1=node.x1-p,y1=node.y1-p;x1<x0&&(x0=x1=(x0+x1)/2),y1<y0&&(y0=y1=(y0+y1)/2),node.x0=x0,node.y0=y0,node.x1=x1,node.y1=y1,node.children&&(p=paddingStack[node.depth+1]=paddingInner(node)/2,x0+=paddingLeft(node)-p,y0+=paddingTop(node)-p,x1-=paddingRight(node)-p,y1-=paddingBottom(node)-p,x1<x0&&(x0=x1=(x0+x1)/2),y1<y0&&(y0=y1=(y0+y1)/2),tile(node,x0,y0,x1,y1))}return treemap2.round=function(x){return arguments.length?(round=!!x,treemap2):round},treemap2.size=function(x){return arguments.length?(dx=+x[0],dy=+x[1],treemap2):[dx,dy]},treemap2.tile=function(x){return arguments.length?(tile=required(x),treemap2):tile},treemap2.padding=function(x){return arguments.length?treemap2.paddingInner(x).paddingOuter(x):treemap2.paddingInner()},treemap2.paddingInner=function(x){return arguments.length?(paddingInner=typeof x=="function"?x:constant(+x),treemap2):paddingInner},treemap2.paddingOuter=function(x){return arguments.length?treemap2.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x):treemap2.paddingTop()},treemap2.paddingTop=function(x){return arguments.length?(paddingTop=typeof x=="function"?x:constant(+x),treemap2):paddingTop},treemap2.paddingRight=function(x){return arguments.length?(paddingRight=typeof x=="function"?x:constant(+x),treemap2):paddingRight},treemap2.paddingBottom=function(x){return arguments.length?(paddingBottom=typeof x=="function"?x:constant(+x),treemap2):paddingBottom},treemap2.paddingLeft=function(x){return arguments.length?(paddingLeft=typeof x=="function"?x:constant(+x),treemap2):paddingLeft},treemap2}var _a,TreeMapDB=(_a=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=setAccTitle,this.getAccTitle=getAccTitle,this.setDiagramTitle=setDiagramTitle,this.getDiagramTitle=getDiagramTitle,this.getAccDescription=getAccDescription,this.setAccDescription=setAccDescription}getNodes(){return this.nodes}getConfig(){const defaultConfig=defaultConfig_default,userConfig=getConfig();return cleanAndMerge({...defaultConfig.treemap,...userConfig.treemap??{}})}addNode(node,level){this.nodes.push(node),this.levels.set(node,level),level===0&&(this.outerNodes.push(node),this.root??(this.root=node))}getRoot(){return{name:"",children:this.outerNodes}}addClass(id,_style){const styleClass=this.classes.get(id)??{id,styles:[],textStyles:[]},styles=_style.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");styles&&styles.forEach(s=>{isLabelStyle(s)&&(styleClass!=null&&styleClass.textStyles?styleClass.textStyles.push(s):styleClass.textStyles=[s]),styleClass!=null&&styleClass.styles?styleClass.styles.push(s):styleClass.styles=[s]}),this.classes.set(id,styleClass)}getClasses(){return this.classes}getStylesForClass(classSelector){var _a2;return((_a2=this.classes.get(classSelector))==null?void 0:_a2.styles)??[]}clear(){clear(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},__name(_a,"TreeMapDB"),_a);function buildHierarchy(items){if(!items.length)return[];const root=[],stack=[];return items.forEach(item=>{const node={name:item.name,children:item.type==="Leaf"?void 0:[]};for(node.classSelector=item==null?void 0:item.classSelector,item!=null&&item.cssCompiledStyles&&(node.cssCompiledStyles=item.cssCompiledStyles),item.type==="Leaf"&&item.value!==void 0&&(node.value=item.value);stack.length>0&&stack[stack.length-1].level>=item.level;)stack.pop();if(stack.length===0)root.push(node);else{const parent=stack[stack.length-1].node;parent.children?parent.children.push(node):parent.children=[node]}item.type!=="Leaf"&&stack.push({node,level:item.level})}),root}__name(buildHierarchy,"buildHierarchy");var populate=__name((ast,db)=>{populateCommonDb(ast,db);const items=[];for(const row of ast.TreemapRows??[])row.$type==="ClassDefStatement"&&db.addClass(row.className??"",row.styleText??"");for(const row of ast.TreemapRows??[]){const item=row.item;if(!item)continue;const level=row.indent?parseInt(row.indent):0,name=getItemName(item),styles=item.classSelector?db.getStylesForClass(item.classSelector):[],cssCompiledStyles=styles.length>0?styles:void 0,itemData={level,name,type:item.$type,value:item.value,classSelector:item.classSelector,cssCompiledStyles};items.push(itemData)}const hierarchyNodes=buildHierarchy(items),addNodesRecursively=__name((nodes,level)=>{for(const node of nodes)db.addNode(node,level),node.children&&node.children.length>0&&addNodesRecursively(node.children,level+1)},"addNodesRecursively");addNodesRecursively(hierarchyNodes,0)},"populate"),getItemName=__name(item=>item.name?String(item.name):"","getItemName"),parser={parser:{yy:void 0},parse:__name(async text=>{var _a2;try{const ast=await parse("treemap",text);log.debug("Treemap AST:",ast);const db=(_a2=parser.parser)==null?void 0:_a2.yy;if(!(db instanceof TreeMapDB))throw new Error("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.");populate(ast,db)}catch(error){throw log.error("Error parsing treemap:",error),error}},"parse")},DEFAULT_INNER_PADDING=10,SECTION_INNER_PADDING=10,SECTION_HEADER_HEIGHT=25,draw=__name((_text,id,_version,diagram2)=>{const treemapDb=diagram2.db,config=treemapDb.getConfig(),treemapInnerPadding=config.padding??DEFAULT_INNER_PADDING,title=treemapDb.getDiagramTitle(),root=treemapDb.getRoot(),{themeVariables}=getConfig();if(!root)return;const titleHeight=title?30:0,svg=selectSvgElement(id),width=config.nodeWidth?config.nodeWidth*SECTION_INNER_PADDING:960,height=config.nodeHeight?config.nodeHeight*SECTION_INNER_PADDING:500,svgWidth=width,svgHeight=height+titleHeight;svg.attr("viewBox",`0 0 ${svgWidth} ${svgHeight}`),configureSvgSize(svg,svgHeight,svgWidth,config.useMaxWidth);let valueFormat;try{const formatStr=config.valueFormat||",";if(formatStr==="$0,0")valueFormat=__name(value=>"$"+format(",")(value),"valueFormat");else if(formatStr.startsWith("$")&&formatStr.includes(",")){const precision=/\.\d+/.exec(formatStr),precisionStr=precision?precision[0]:"";valueFormat=__name(value=>"$"+format(","+precisionStr)(value),"valueFormat")}else if(formatStr.startsWith("$")){const restOfFormat=formatStr.substring(1);valueFormat=__name(value=>"$"+format(restOfFormat||"")(value),"valueFormat")}else valueFormat=format(formatStr)}catch(error){log.error("Error creating format function:",error),valueFormat=format(",")}const colorScale=ordinal().range(["transparent",themeVariables.cScale0,themeVariables.cScale1,themeVariables.cScale2,themeVariables.cScale3,themeVariables.cScale4,themeVariables.cScale5,themeVariables.cScale6,themeVariables.cScale7,themeVariables.cScale8,themeVariables.cScale9,themeVariables.cScale10,themeVariables.cScale11]),colorScalePeer=ordinal().range(["transparent",themeVariables.cScalePeer0,themeVariables.cScalePeer1,themeVariables.cScalePeer2,themeVariables.cScalePeer3,themeVariables.cScalePeer4,themeVariables.cScalePeer5,themeVariables.cScalePeer6,themeVariables.cScalePeer7,themeVariables.cScalePeer8,themeVariables.cScalePeer9,themeVariables.cScalePeer10,themeVariables.cScalePeer11]),colorScaleLabel=ordinal().range([themeVariables.cScaleLabel0,themeVariables.cScaleLabel1,themeVariables.cScaleLabel2,themeVariables.cScaleLabel3,themeVariables.cScaleLabel4,themeVariables.cScaleLabel5,themeVariables.cScaleLabel6,themeVariables.cScaleLabel7,themeVariables.cScaleLabel8,themeVariables.cScaleLabel9,themeVariables.cScaleLabel10,themeVariables.cScaleLabel11]);title&&svg.append("text").attr("x",svgWidth/2).attr("y",titleHeight/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(title);const g=svg.append("g").attr("transform",`translate(0, ${titleHeight})`).attr("class","treemapContainer"),hierarchyRoot=hierarchy(root).sum(d=>d.value??0).sort((a,b)=>(b.value??0)-(a.value??0)),treemapData=treemap().size([width,height]).paddingTop(d=>d.children&&d.children.length>0?SECTION_HEADER_HEIGHT+SECTION_INNER_PADDING:0).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(!0)(hierarchyRoot),branchNodes=treemapData.descendants().filter(d=>d.children&&d.children.length>0),sections=g.selectAll(".treemapSection").data(branchNodes).enter().append("g").attr("class","treemapSection").attr("transform",d=>`translate(${d.x0},${d.y0})`);sections.append("rect").attr("width",d=>d.x1-d.x0).attr("height",SECTION_HEADER_HEIGHT).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",d=>d.depth===0?"display: none;":""),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),sections.append("rect").attr("width",d=>d.x1-d.x0).attr("height",d=>d.y1-d.y0).attr("class",(_d,i)=>`treemapSection section${i}`).attr("fill",d=>colorScale(d.data.name)).attr("fill-opacity",.6).attr("stroke",d=>colorScalePeer(d.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",d=>{if(d.depth===0)return"display: none;";const styles=styles2String({cssCompiledStyles:d.data.cssCompiledStyles});return styles.nodeStyles+";"+styles.borderStyles.join(";")}),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=>{if(d.depth===0)return"display: none;";const labelStyles="dominant-baseline: middle; font-size: 12px; fill:"+colorScaleLabel(d.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",styles=styles2String({cssCompiledStyles:d.data.cssCompiledStyles});return labelStyles+styles.labelStyles.replace("color:","fill:")}).each(function(d){if(d.depth===0)return;const self=select(this),originalText=d.data.name;self.text(originalText);const totalHeaderWidth=d.x1-d.x0,labelXPosition=6;let spaceForTextContent;config.showValues!==!1&&d.value?spaceForTextContent=totalHeaderWidth-10-30-10-labelXPosition:spaceForTextContent=totalHeaderWidth-labelXPosition-6;const actualAvailableWidth=Math.max(15,spaceForTextContent),textNode=self.node();if(textNode.getComputedTextLength()>actualAvailableWidth){let currentTruncatedText=originalText;for(;currentTruncatedText.length>0;){if(currentTruncatedText=originalText.substring(0,currentTruncatedText.length-1),currentTruncatedText.length===0){self.text("..."),textNode.getComputedTextLength()>actualAvailableWidth&&self.text("");break}if(self.text(currentTruncatedText+"..."),textNode.getComputedTextLength()<=actualAvailableWidth)break}}}),config.showValues!==!1&§ions.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=>{if(d.depth===0)return"display: none;";const labelStyles="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+colorScaleLabel(d.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",styles=styles2String({cssCompiledStyles:d.data.cssCompiledStyles});return labelStyles+styles.labelStyles.replace("color:","fill:")});const leafNodes=treemapData.leaves(),cell=g.selectAll(".treemapLeafGroup").data(leafNodes).enter().append("g").attr("class",(d,i)=>`treemapNode treemapLeafGroup leaf${i}${d.data.classSelector?` ${d.data.classSelector}`:""}x`).attr("transform",d=>`translate(${d.x0},${d.y0})`);cell.append("rect").attr("width",d=>d.x1-d.x0).attr("height",d=>d.y1-d.y0).attr("class","treemapLeaf").attr("fill",d=>d.parent?colorScale(d.parent.data.name):colorScale(d.data.name)).attr("style",d=>styles2String({cssCompiledStyles:d.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",d=>d.parent?colorScale(d.parent.data.name):colorScale(d.data.name)).attr("stroke-width",3),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)),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=>{const labelStyles="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+colorScaleLabel(d.data.name)+";",styles=styles2String({cssCompiledStyles:d.data.cssCompiledStyles});return labelStyles+styles.labelStyles.replace("color:","fill:")}).attr("clip-path",(_d,i)=>`url(#clip-${id}-${i})`).text(d=>d.data.name).each(function(d){const self=select(this),nodeWidth=d.x1-d.x0,nodeHeight=d.y1-d.y0,textNode=self.node(),padding=4,availableWidth=nodeWidth-2*padding,availableHeight=nodeHeight-2*padding;if(availableWidth<10||availableHeight<10){self.style("display","none");return}let currentLabelFontSize=parseInt(self.style("font-size"),10);const minLabelFontSize=8,originalValueRelFontSize=28,valueScaleFactor=.6,minValueFontSize=6,spacingBetweenLabelAndValue=2;for(;textNode.getComputedTextLength()>availableWidth&¤tLabelFontSize>minLabelFontSize;)currentLabelFontSize--,self.style("font-size",`${currentLabelFontSize}px`);let prospectiveValueFontSize=Math.max(minValueFontSize,Math.min(originalValueRelFontSize,Math.round(currentLabelFontSize*valueScaleFactor))),combinedHeight=currentLabelFontSize+spacingBetweenLabelAndValue+prospectiveValueFontSize;for(;combinedHeight>availableHeight&¤tLabelFontSize>minLabelFontSize&&(currentLabelFontSize--,prospectiveValueFontSize=Math.max(minValueFontSize,Math.min(originalValueRelFontSize,Math.round(currentLabelFontSize*valueScaleFactor))),!(prospectiveValueFontSize<minValueFontSize&¤tLabelFontSize===minLabelFontSize));)self.style("font-size",`${currentLabelFontSize}px`),combinedHeight=currentLabelFontSize+spacingBetweenLabelAndValue+prospectiveValueFontSize;self.style("font-size",`${currentLabelFontSize}px`),(textNode.getComputedTextLength()>availableWidth||currentLabelFontSize<minLabelFontSize||availableHeight<currentLabelFontSize)&&self.style("display","none")}),config.showValues!==!1&&cell.append("text").attr("class","treemapValue").attr("x",d=>(d.x1-d.x0)/2).attr("y",function(d){return(d.y1-d.y0)/2}).attr("style",d=>{const labelStyles="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+colorScaleLabel(d.data.name)+";",styles=styles2String({cssCompiledStyles:d.data.cssCompiledStyles});return labelStyles+styles.labelStyles.replace("color:","fill:")}).attr("clip-path",(_d,i)=>`url(#clip-${id}-${i})`).text(d=>d.value?valueFormat(d.value):"").each(function(d){const valueTextElement=select(this),parentCellNode=this.parentNode;if(!parentCellNode){valueTextElement.style("display","none");return}const labelElement=select(parentCellNode).select(".treemapLabel");if(labelElement.empty()||labelElement.style("display")==="none"){valueTextElement.style("display","none");return}const finalLabelFontSize=parseFloat(labelElement.style("font-size")),originalValueFontSize=28,valueScaleFactor=.6,minValueFontSize=6,spacingBetweenLabelAndValue=2,actualValueFontSize=Math.max(minValueFontSize,Math.min(originalValueFontSize,Math.round(finalLabelFontSize*valueScaleFactor)));valueTextElement.style("font-size",`${actualValueFontSize}px`);const valueTopActualY=(d.y1-d.y0)/2+finalLabelFontSize/2+spacingBetweenLabelAndValue;valueTextElement.attr("y",valueTopActualY);const nodeWidth=d.x1-d.x0,maxValueBottomY=d.y1-d.y0-4,availableWidthForValue=nodeWidth-8;valueTextElement.node().getComputedTextLength()>availableWidthForValue||valueTopActualY+actualValueFontSize>maxValueBottomY||actualValueFontSize<minValueFontSize?valueTextElement.style("display","none"):valueTextElement.style("display",null)});const diagramPadding=config.diagramPadding??8;setupViewPortForSVG(svg,diagramPadding,"flowchart",(config==null?void 0:config.useMaxWidth)||!1)},"draw"),getClasses=__name(function(_text,diagramObj){return diagramObj.db.getClasses()},"getClasses"),renderer={draw,getClasses},defaultTreemapStyleOptions={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},getStyles=__name(({treemap:treemap2}={})=>{const defaultThemeVariables=getThemeVariables3(),currentConfig=getConfig(),themeVariables=cleanAndMerge(defaultThemeVariables,currentConfig.themeVariables),options=cleanAndMerge(defaultTreemapStyleOptions,treemap2),titleColor=options.titleColor??themeVariables.titleColor,labelColor=options.labelColor??themeVariables.textColor,valueColor=options.valueColor??themeVariables.textColor;return`
|
|
2
|
+
.treemapNode.section {
|
|
3
|
+
stroke: ${options.sectionStrokeColor};
|
|
4
|
+
stroke-width: ${options.sectionStrokeWidth};
|
|
5
|
+
fill: ${options.sectionFillColor};
|
|
6
|
+
}
|
|
7
|
+
.treemapNode.leaf {
|
|
8
|
+
stroke: ${options.leafStrokeColor};
|
|
9
|
+
stroke-width: ${options.leafStrokeWidth};
|
|
10
|
+
fill: ${options.leafFillColor};
|
|
11
|
+
}
|
|
12
|
+
.treemapLabel {
|
|
13
|
+
fill: ${labelColor};
|
|
14
|
+
font-size: ${options.labelFontSize};
|
|
15
|
+
}
|
|
16
|
+
.treemapValue {
|
|
17
|
+
fill: ${valueColor};
|
|
18
|
+
font-size: ${options.valueFontSize};
|
|
19
|
+
}
|
|
20
|
+
.treemapTitle {
|
|
21
|
+
fill: ${titleColor};
|
|
22
|
+
font-size: ${options.titleFontSize};
|
|
23
|
+
}
|
|
24
|
+
`},"getStyles"),styles_default=getStyles,diagram={parser,get db(){return new TreeMapDB},renderer,styles:styles_default};export{diagram};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import{s as setAccDescription,g as getAccDescription,q as getDiagramTitle,p as setDiagramTitle,a as getAccTitle,b as setAccTitle,_ as __name,H as selectSvgElement,y as clear,E as cleanAndMerge,F as defaultConfig_default,C as getConfig,l as log,I as getThemeVariables3,e as configureSvgSize}from"./mermaid.core-DNvsWVDx.js";import{p as populateCommonDb}from"./chunk-4BX2VUAB-CiktxOyY.js";import{p as parse}from"./wardley-RL74JXVD-CbEnkKx8.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";import"./min-CDExe3RN.js";import"./_baseUniq-DJPPdHyT.js";var defaultOptions={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},defaultRadarData={axes:[],curves:[],options:defaultOptions},data=structuredClone(defaultRadarData),DEFAULT_RADAR_CONFIG=defaultConfig_default.radar,getConfig2=__name(()=>cleanAndMerge({...DEFAULT_RADAR_CONFIG,...getConfig().radar}),"getConfig"),getAxes=__name(()=>data.axes,"getAxes"),getCurves=__name(()=>data.curves,"getCurves"),getOptions=__name(()=>data.options,"getOptions"),setAxes=__name(axes=>{data.axes=axes.map(axis=>({name:axis.name,label:axis.label??axis.name}))},"setAxes"),setCurves=__name(curves=>{data.curves=curves.map(curve=>({name:curve.name,label:curve.label??curve.name,entries:computeCurveEntries(curve.entries)}))},"setCurves"),computeCurveEntries=__name(entries=>{if(entries[0].axis==null)return entries.map(entry=>entry.value);const axes=getAxes();if(axes.length===0)throw new Error("Axes must be populated before curves for reference entries");return axes.map(axis=>{const entry=entries.find(entry2=>{var _a;return((_a=entry2.axis)==null?void 0:_a.$refText)===axis.name});if(entry===void 0)throw new Error("Missing entry for axis "+axis.label);return entry.value})},"computeCurveEntries"),setOptions=__name(options=>{var _a,_b,_c,_d,_e;const optionMap=options.reduce((acc,option)=>(acc[option.name]=option,acc),{});data.options={showLegend:((_a=optionMap.showLegend)==null?void 0:_a.value)??defaultOptions.showLegend,ticks:((_b=optionMap.ticks)==null?void 0:_b.value)??defaultOptions.ticks,max:((_c=optionMap.max)==null?void 0:_c.value)??defaultOptions.max,min:((_d=optionMap.min)==null?void 0:_d.value)??defaultOptions.min,graticule:((_e=optionMap.graticule)==null?void 0:_e.value)??defaultOptions.graticule}},"setOptions"),clear2=__name(()=>{clear(),data=structuredClone(defaultRadarData)},"clear"),db={getAxes,getCurves,getOptions,setAxes,setCurves,setOptions,getConfig:getConfig2,clear:clear2,setAccTitle,getAccTitle,setDiagramTitle,getDiagramTitle,getAccDescription,setAccDescription},populate=__name(ast=>{populateCommonDb(ast,db);const{axes,curves,options}=ast;db.setAxes(axes),db.setCurves(curves),db.setOptions(options)},"populate"),parser={parse:__name(async input=>{const ast=await parse("radar",input);log.debug(ast),populate(ast)},"parse")},draw=__name((_text,id,_version,diagram2)=>{const db2=diagram2.db,axes=db2.getAxes(),curves=db2.getCurves(),options=db2.getOptions(),config=db2.getConfig(),title=db2.getDiagramTitle(),svg=selectSvgElement(id),g=drawFrame(svg,config),maxValue=options.max??Math.max(...curves.map(curve=>Math.max(...curve.entries))),minValue=options.min,radius=Math.min(config.width,config.height)/2;drawGraticule(g,axes,radius,options.ticks,options.graticule),drawAxes(g,axes,radius,config),drawCurves(g,axes,curves,minValue,maxValue,options.graticule,config),drawLegend(g,curves,options.showLegend,config),g.append("text").attr("class","radarTitle").text(title).attr("x",0).attr("y",-config.height/2-config.marginTop)},"draw"),drawFrame=__name((svg,config)=>{const totalWidth=config.width+config.marginLeft+config.marginRight,totalHeight=config.height+config.marginTop+config.marginBottom,center={x:config.marginLeft+config.width/2,y:config.marginTop+config.height/2};return configureSvgSize(svg,totalHeight,totalWidth,config.useMaxWidth??!0),svg.attr("viewBox",`0 0 ${totalWidth} ${totalHeight}`),svg.append("g").attr("transform",`translate(${center.x}, ${center.y})`)},"drawFrame"),drawGraticule=__name((g,axes,radius,ticks,graticule)=>{if(graticule==="circle")for(let i=0;i<ticks;i++){const r=radius*(i+1)/ticks;g.append("circle").attr("r",r).attr("class","radarGraticule")}else if(graticule==="polygon"){const numAxes=axes.length;for(let i=0;i<ticks;i++){const r=radius*(i+1)/ticks,points=axes.map((_,j)=>{const angle=2*j*Math.PI/numAxes-Math.PI/2,x=r*Math.cos(angle),y=r*Math.sin(angle);return`${x},${y}`}).join(" ");g.append("polygon").attr("points",points).attr("class","radarGraticule")}}},"drawGraticule"),drawAxes=__name((g,axes,radius,config)=>{const numAxes=axes.length;for(let i=0;i<numAxes;i++){const label=axes[i].label,angle=2*i*Math.PI/numAxes-Math.PI/2;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"),g.append("text").text(label).attr("x",radius*config.axisLabelFactor*Math.cos(angle)).attr("y",radius*config.axisLabelFactor*Math.sin(angle)).attr("class","radarAxisLabel")}},"drawAxes");function drawCurves(g,axes,curves,minValue,maxValue,graticule,config){const numAxes=axes.length,radius=Math.min(config.width,config.height)/2;curves.forEach((curve,index)=>{if(curve.entries.length!==numAxes)return;const points=curve.entries.map((entry,i)=>{const angle=2*Math.PI*i/numAxes-Math.PI/2,r=relativeRadius(entry,minValue,maxValue,radius),x=r*Math.cos(angle),y=r*Math.sin(angle);return{x,y}});graticule==="circle"?g.append("path").attr("d",closedRoundCurve(points,config.curveTension)).attr("class",`radarCurve-${index}`):graticule==="polygon"&&g.append("polygon").attr("points",points.map(p=>`${p.x},${p.y}`).join(" ")).attr("class",`radarCurve-${index}`)})}__name(drawCurves,"drawCurves");function relativeRadius(value,minValue,maxValue,radius){const clippedValue=Math.min(Math.max(value,minValue),maxValue);return radius*(clippedValue-minValue)/(maxValue-minValue)}__name(relativeRadius,"relativeRadius");function closedRoundCurve(points,tension){const numPoints=points.length;let d=`M${points[0].x},${points[0].y}`;for(let i=0;i<numPoints;i++){const p0=points[(i-1+numPoints)%numPoints],p1=points[i],p2=points[(i+1)%numPoints],p3=points[(i+2)%numPoints],cp1={x:p1.x+(p2.x-p0.x)*tension,y:p1.y+(p2.y-p0.y)*tension},cp2={x:p2.x-(p3.x-p1.x)*tension,y:p2.y-(p3.y-p1.y)*tension};d+=` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`}return`${d} Z`}__name(closedRoundCurve,"closedRoundCurve");function drawLegend(g,curves,showLegend,config){if(!showLegend)return;const legendX=(config.width/2+config.marginRight)*3/4,legendY=-(config.height/2+config.marginTop)*3/4,lineHeight=20;curves.forEach((curve,index)=>{const itemGroup=g.append("g").attr("transform",`translate(${legendX}, ${legendY+index*lineHeight})`);itemGroup.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${index}`),itemGroup.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(curve.label)})}__name(drawLegend,"drawLegend");var renderer={draw},genIndexStyles=__name((themeVariables,radarOptions)=>{let sections="";for(let i=0;i<themeVariables.THEME_COLOR_LIMIT;i++){const indexColor=themeVariables[`cScale${i}`];sections+=`
|
|
2
|
+
.radarCurve-${i} {
|
|
3
|
+
color: ${indexColor};
|
|
4
|
+
fill: ${indexColor};
|
|
5
|
+
fill-opacity: ${radarOptions.curveOpacity};
|
|
6
|
+
stroke: ${indexColor};
|
|
7
|
+
stroke-width: ${radarOptions.curveStrokeWidth};
|
|
8
|
+
}
|
|
9
|
+
.radarLegendBox-${i} {
|
|
10
|
+
fill: ${indexColor};
|
|
11
|
+
fill-opacity: ${radarOptions.curveOpacity};
|
|
12
|
+
stroke: ${indexColor};
|
|
13
|
+
}
|
|
14
|
+
`}return sections},"genIndexStyles"),buildRadarStyleOptions=__name(radar=>{const defaultThemeVariables=getThemeVariables3(),currentConfig=getConfig(),themeVariables=cleanAndMerge(defaultThemeVariables,currentConfig.themeVariables),radarOptions=cleanAndMerge(themeVariables.radar,radar);return{themeVariables,radarOptions}},"buildRadarStyleOptions"),styles=__name(({radar}={})=>{const{themeVariables,radarOptions}=buildRadarStyleOptions(radar);return`
|
|
15
|
+
.radarTitle {
|
|
16
|
+
font-size: ${themeVariables.fontSize};
|
|
17
|
+
color: ${themeVariables.titleColor};
|
|
18
|
+
dominant-baseline: hanging;
|
|
19
|
+
text-anchor: middle;
|
|
20
|
+
}
|
|
21
|
+
.radarAxisLine {
|
|
22
|
+
stroke: ${radarOptions.axisColor};
|
|
23
|
+
stroke-width: ${radarOptions.axisStrokeWidth};
|
|
24
|
+
}
|
|
25
|
+
.radarAxisLabel {
|
|
26
|
+
dominant-baseline: middle;
|
|
27
|
+
text-anchor: middle;
|
|
28
|
+
font-size: ${radarOptions.axisLabelFontSize}px;
|
|
29
|
+
color: ${radarOptions.axisColor};
|
|
30
|
+
}
|
|
31
|
+
.radarGraticule {
|
|
32
|
+
fill: ${radarOptions.graticuleColor};
|
|
33
|
+
fill-opacity: ${radarOptions.graticuleOpacity};
|
|
34
|
+
stroke: ${radarOptions.graticuleColor};
|
|
35
|
+
stroke-width: ${radarOptions.graticuleStrokeWidth};
|
|
36
|
+
}
|
|
37
|
+
.radarLegendText {
|
|
38
|
+
text-anchor: start;
|
|
39
|
+
font-size: ${radarOptions.legendFontSize}px;
|
|
40
|
+
dominant-baseline: hanging;
|
|
41
|
+
}
|
|
42
|
+
${genIndexStyles(themeVariables,radarOptions)}
|
|
43
|
+
`},"styles"),diagram={parser,db,renderer,styles};export{diagram};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{_ as __name,E as cleanAndMerge,H as selectSvgElement,e as configureSvgSize,l as log,b as setAccTitle,a as getAccTitle,p as setDiagramTitle,q as getDiagramTitle,g as getAccDescription,s as setAccDescription,F as defaultConfig_default,C as getConfig,y as clear}from"./mermaid.core-DNvsWVDx.js";import{p as populateCommonDb}from"./chunk-4BX2VUAB-CiktxOyY.js";import{p as parse}from"./wardley-RL74JXVD-CbEnkKx8.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";import"./min-CDExe3RN.js";import"./_baseUniq-DJPPdHyT.js";var DEFAULT_PACKET_CONFIG=defaultConfig_default.packet,_a,PacketDB=(_a=class{constructor(){this.packet=[],this.setAccTitle=setAccTitle,this.getAccTitle=getAccTitle,this.setDiagramTitle=setDiagramTitle,this.getDiagramTitle=getDiagramTitle,this.getAccDescription=getAccDescription,this.setAccDescription=setAccDescription}getConfig(){const config=cleanAndMerge({...DEFAULT_PACKET_CONFIG,...getConfig().packet});return config.showBits&&(config.paddingY+=10),config}getPacket(){return this.packet}pushWord(word){word.length>0&&this.packet.push(word)}clear(){clear(),this.packet=[]}},__name(_a,"PacketDB"),_a),maxPacketSize=1e4,populate=__name((ast,db)=>{populateCommonDb(ast,db);let lastBit=-1,word=[],row=1;const{bitsPerRow}=db.getConfig();for(let{start,end,bits,label}of ast.blocks){if(start!==void 0&&end!==void 0&&end<start)throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);if(start??(start=lastBit+1),start!==lastBit+1)throw new Error(`Packet block ${start} - ${end??start} is not contiguous. It should start from ${lastBit+1}.`);if(bits===0)throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);for(end??(end=start+(bits??1)-1),bits??(bits=end-start+1),lastBit=end,log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);word.length<=bitsPerRow+1&&db.getPacket().length<maxPacketSize;){const[block,nextBlock]=getNextFittingBlock({start,end,bits,label},row,bitsPerRow);if(word.push(block),block.end+1===row*bitsPerRow&&(db.pushWord(word),word=[],row++),!nextBlock)break;({start,end,bits,label}=nextBlock)}}db.pushWord(word)},"populate"),getNextFittingBlock=__name((block,row,bitsPerRow)=>{if(block.start===void 0)throw new Error("start should have been set during first phase");if(block.end===void 0)throw new Error("end should have been set during first phase");if(block.start>block.end)throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);if(block.end+1<=row*bitsPerRow)return[block,void 0];const rowEnd=row*bitsPerRow-1,rowStart=row*bitsPerRow;return[{start:block.start,end:rowEnd,label:block.label,bits:rowEnd-block.start},{start:rowStart,end:block.end,label:block.label,bits:block.end-rowStart}]},"getNextFittingBlock"),parser={parser:{yy:void 0},parse:__name(async input=>{var _a2;const ast=await parse("packet",input),db=(_a2=parser.parser)==null?void 0:_a2.yy;if(!(db instanceof PacketDB))throw new Error("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.");log.debug(ast),populate(ast,db)},"parse")},draw=__name((_text,id,_version,diagram2)=>{const db=diagram2.db,config=db.getConfig(),{rowHeight,paddingY,bitWidth,bitsPerRow}=config,words=db.getPacket(),title=db.getDiagramTitle(),totalRowHeight=rowHeight+paddingY,svgHeight=totalRowHeight*(words.length+1)-(title?0:rowHeight),svgWidth=bitWidth*bitsPerRow+2,svg=selectSvgElement(id);svg.attr("viewBox",`0 0 ${svgWidth} ${svgHeight}`),configureSvgSize(svg,svgHeight,svgWidth,config.useMaxWidth);for(const[word,packet]of words.entries())drawWord(svg,packet,word,config);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")},"draw"),drawWord=__name((svg,word,rowNumber,{rowHeight,paddingX,paddingY,bitWidth,bitsPerRow,showBits})=>{const group=svg.append("g"),wordY=rowNumber*(rowHeight+paddingY)+paddingY;for(const block of word){const blockX=block.start%bitsPerRow*bitWidth+1,width=(block.end-block.start+1)*bitWidth-paddingX;if(group.append("rect").attr("x",blockX).attr("y",wordY).attr("width",width).attr("height",rowHeight).attr("class","packetBlock"),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),!showBits)continue;const isSingleBlock=block.end===block.start,bitNumberY=wordY-2;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),isSingleBlock||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)}},"drawWord"),renderer={draw},defaultPacketStyleOptions={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},styles=__name(({packet}={})=>{const options=cleanAndMerge(defaultPacketStyleOptions,packet);return`
|
|
2
|
+
.packetByte {
|
|
3
|
+
font-size: ${options.byteFontSize};
|
|
4
|
+
}
|
|
5
|
+
.packetByte.start {
|
|
6
|
+
fill: ${options.startByteColor};
|
|
7
|
+
}
|
|
8
|
+
.packetByte.end {
|
|
9
|
+
fill: ${options.endByteColor};
|
|
10
|
+
}
|
|
11
|
+
.packetLabel {
|
|
12
|
+
fill: ${options.labelColor};
|
|
13
|
+
font-size: ${options.labelFontSize};
|
|
14
|
+
}
|
|
15
|
+
.packetTitle {
|
|
16
|
+
fill: ${options.titleColor};
|
|
17
|
+
font-size: ${options.titleFontSize};
|
|
18
|
+
}
|
|
19
|
+
.packetBlock {
|
|
20
|
+
stroke: ${options.blockStrokeColor};
|
|
21
|
+
stroke-width: ${options.blockStrokeWidth};
|
|
22
|
+
fill: ${options.blockFillColor};
|
|
23
|
+
}
|
|
24
|
+
`},"styles"),diagram={parser,get db(){return new PacketDB},renderer,styles};export{diagram};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import{g as getDiagramElement}from"./chunk-55IACEB6-DcgWxDD5.js";import{s as setupViewPortForSVG}from"./chunk-EDXVE4YY-DeUzWpQx.js";import{_ as __name,b as setAccTitle,a as getAccTitle,s as setAccDescription,g as getAccDescription,p as setDiagramTitle,q as getDiagramTitle,c as getConfig2,l as log,y as clear,x as getEdgeId,A as rgba,B as __export,o as getRegisteredLayoutAlgorithm,r as render,d as select,u as utils_default}from"./mermaid.core-DNvsWVDx.js";import{c as channel}from"./channel-G3S1FOvm.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";var parser=(function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],$V1=[1,10],$V2=[1,11],$V3=[1,12],$V4=[1,13],$V5=[1,23],$V6=[1,24],$V7=[1,25],$V8=[1,26],$V9=[1,27],$Va=[1,19],$Vb=[1,28],$Vc=[1,29],$Vd=[1,20],$Ve=[1,18],$Vf=[1,21],$Vg=[1,22],$Vh=[1,36],$Vi=[1,37],$Vj=[1,38],$Vk=[1,39],$Vl=[1,40],$Vm=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],$Vn=[1,45],$Vo=[1,46],$Vp=[1,55],$Vq=[40,48,50,51,52,70,71],$Vr=[1,66],$Vs=[1,64],$Vt=[1,61],$Vu=[1,65],$Vv=[1,67],$Vw=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],$Vx=[65,66,67,68,69],$Vy=[1,84],$Vz=[1,83],$VA=[1,81],$VB=[1,82],$VC=[6,10,42,47],$VD=[6,10,13,41,42,47,48,49],$VE=[1,92],$VF=[1,91],$VG=[1,90],$VH=[19,58],$VI=[1,101],$VJ=[1,100],$VK=[19,58,60,62],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:break;case 2:this.$=[];break;case 3:$$[$0-1].push($$[$0]),this.$=$$[$0-1];break;case 4:case 5:this.$=$$[$0];break;case 6:case 7:this.$=[];break;case 8:yy.addEntity($$[$0-4]),yy.addEntity($$[$0-2]),yy.addRelationship($$[$0-4],$$[$0],$$[$0-2],$$[$0-3]);break;case 9:yy.addEntity($$[$0-8]),yy.addEntity($$[$0-4]),yy.addRelationship($$[$0-8],$$[$0],$$[$0-4],$$[$0-5]),yy.setClass([$$[$0-8]],$$[$0-6]),yy.setClass([$$[$0-4]],$$[$0-2]);break;case 10:yy.addEntity($$[$0-6]),yy.addEntity($$[$0-2]),yy.addRelationship($$[$0-6],$$[$0],$$[$0-2],$$[$0-3]),yy.setClass([$$[$0-6]],$$[$0-4]);break;case 11:yy.addEntity($$[$0-6]),yy.addEntity($$[$0-4]),yy.addRelationship($$[$0-6],$$[$0],$$[$0-4],$$[$0-5]),yy.setClass([$$[$0-4]],$$[$0-2]);break;case 12:yy.addEntity($$[$0-3]),yy.addAttributes($$[$0-3],$$[$0-1]);break;case 13:yy.addEntity($$[$0-5]),yy.addAttributes($$[$0-5],$$[$0-1]),yy.setClass([$$[$0-5]],$$[$0-3]);break;case 14:yy.addEntity($$[$0-2]);break;case 15:yy.addEntity($$[$0-4]),yy.setClass([$$[$0-4]],$$[$0-2]);break;case 16:yy.addEntity($$[$0]);break;case 17:yy.addEntity($$[$0-2]),yy.setClass([$$[$0-2]],$$[$0]);break;case 18:yy.addEntity($$[$0-6],$$[$0-4]),yy.addAttributes($$[$0-6],$$[$0-1]);break;case 19:yy.addEntity($$[$0-8],$$[$0-6]),yy.addAttributes($$[$0-8],$$[$0-1]),yy.setClass([$$[$0-8]],$$[$0-3]);break;case 20:yy.addEntity($$[$0-5],$$[$0-3]);break;case 21:yy.addEntity($$[$0-7],$$[$0-5]),yy.setClass([$$[$0-7]],$$[$0-2]);break;case 22:yy.addEntity($$[$0-3],$$[$0-1]);break;case 23:yy.addEntity($$[$0-5],$$[$0-3]),yy.setClass([$$[$0-5]],$$[$0]);break;case 24:case 25:this.$=$$[$0].trim(),yy.setAccTitle(this.$);break;case 26:case 27:this.$=$$[$0].trim(),yy.setAccDescription(this.$);break;case 32:yy.setDirection("TB");break;case 33:yy.setDirection("BT");break;case 34:yy.setDirection("RL");break;case 35:yy.setDirection("LR");break;case 36:this.$=$$[$0-3],yy.addClass($$[$0-2],$$[$0-1]);break;case 37:case 38:case 59:case 67:this.$=[$$[$0]];break;case 39:case 40:this.$=$$[$0-2].concat([$$[$0]]);break;case 41:this.$=$$[$0-2],yy.setClass($$[$0-1],$$[$0]);break;case 42:this.$=$$[$0-3],yy.addCssStyles($$[$0-2],$$[$0-1]);break;case 43:this.$=[$$[$0]];break;case 44:$$[$0-2].push($$[$0]),this.$=$$[$0-2];break;case 46:this.$=$$[$0-1]+$$[$0];break;case 54:case 79:case 80:this.$=$$[$0].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=$$[$0];break;case 60:$$[$0].push($$[$0-1]),this.$=$$[$0];break;case 61:this.$={type:$$[$0-1],name:$$[$0]};break;case 62:this.$={type:$$[$0-2],name:$$[$0-1],keys:$$[$0]};break;case 63:this.$={type:$$[$0-2],name:$$[$0-1],comment:$$[$0]};break;case 64:this.$={type:$$[$0-3],name:$$[$0-2],keys:$$[$0-1],comment:$$[$0]};break;case 65:case 66:case 69:this.$=$$[$0];break;case 68:$$[$0-2].push($$[$0]),this.$=$$[$0-2];break;case 70:this.$=$$[$0].replace(/"/g,"");break;case 71:this.$={cardA:$$[$0],relType:$$[$0-1],cardB:$$[$0-2]};break;case 72:this.$=yy.Cardinality.ZERO_OR_ONE;break;case 73:this.$=yy.Cardinality.ZERO_OR_MORE;break;case 74:this.$=yy.Cardinality.ONE_OR_MORE;break;case 75:this.$=yy.Cardinality.ONLY_ONE;break;case 76:this.$=yy.Cardinality.MD_PARENT;break;case 77:this.$=yy.Identification.NON_IDENTIFYING;break;case 78:this.$=yy.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:$V1,24:$V2,26:$V3,28:$V4,29:14,30:15,31:16,32:17,33:$V5,34:$V6,35:$V7,36:$V8,37:$V9,40:$Va,43:$Vb,44:$Vc,48:$Vd,50:$Ve,51:$Vf,52:$Vg},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:30,11:9,22:$V1,24:$V2,26:$V3,28:$V4,29:14,30:15,31:16,32:17,33:$V5,34:$V6,35:$V7,36:$V8,37:$V9,40:$Va,43:$Vb,44:$Vc,48:$Vd,50:$Ve,51:$Vf,52:$Vg},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:$Vh,66:$Vi,67:$Vj,68:$Vk,69:$Vl}),{23:[1,41]},{25:[1,42]},{27:[1,43]},o($V0,[2,27]),o($V0,[2,28]),o($V0,[2,29]),o($V0,[2,30]),o($V0,[2,31]),o($Vm,[2,54]),o($Vm,[2,55]),o($Vm,[2,56]),o($Vm,[2,57]),o($Vm,[2,58]),o($V0,[2,32]),o($V0,[2,33]),o($V0,[2,34]),o($V0,[2,35]),{16:44,40:$Vn,41:$Vo},{16:47,40:$Vn,41:$Vo},{16:48,40:$Vn,41:$Vo},o($V0,[2,4]),{11:49,40:$Va,48:$Vd,50:$Ve,51:$Vf,52:$Vg},{16:50,40:$Vn,41:$Vo},{18:51,19:[1,52],53:53,54:54,58:$Vp},{11:56,40:$Va,48:$Vd,50:$Ve,51:$Vf,52:$Vg},{64:57,70:[1,58],71:[1,59]},o($Vq,[2,72]),o($Vq,[2,73]),o($Vq,[2,74]),o($Vq,[2,75]),o($Vq,[2,76]),o($V0,[2,24]),o($V0,[2,25]),o($V0,[2,26]),{13:$Vr,38:60,41:$Vs,42:$Vt,45:62,46:63,48:$Vu,49:$Vv},o($Vw,[2,37]),o($Vw,[2,38]),{16:68,40:$Vn,41:$Vo,42:$Vt},{13:$Vr,38:69,41:$Vs,42:$Vt,45:62,46:63,48:$Vu,49:$Vv},{13:[1,70],15:[1,71]},o($V0,[2,17],{63:35,12:72,17:[1,73],42:$Vt,65:$Vh,66:$Vi,67:$Vj,68:$Vk,69:$Vl}),{19:[1,74]},o($V0,[2,14]),{18:75,19:[2,59],53:53,54:54,58:$Vp},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:$Vh,66:$Vi,67:$Vj,68:$Vk,69:$Vl},o($Vx,[2,77]),o($Vx,[2,78]),{6:$Vy,10:$Vz,39:80,42:$VA,47:$VB},{40:[1,85],41:[1,86]},o($VC,[2,43],{46:87,13:$Vr,41:$Vs,48:$Vu,49:$Vv}),o($VD,[2,45]),o($VD,[2,50]),o($VD,[2,51]),o($VD,[2,52]),o($VD,[2,53]),o($V0,[2,41],{42:$Vt}),{6:$Vy,10:$Vz,39:88,42:$VA,47:$VB},{14:89,40:$VE,50:$VF,72:$VG},{16:93,40:$Vn,41:$Vo},{11:94,40:$Va,48:$Vd,50:$Ve,51:$Vf,52:$Vg},{18:95,19:[1,96],53:53,54:54,58:$Vp},o($V0,[2,12]),{19:[2,60]},o($VH,[2,61],{56:97,57:98,59:99,61:$VI,62:$VJ}),o([19,58,61,62],[2,66]),o($V0,[2,22],{15:[1,103],17:[1,102]}),o([40,48,50,51,52],[2,71]),o($V0,[2,36]),{13:$Vr,41:$Vs,45:104,46:63,48:$Vu,49:$Vv},o($V0,[2,47]),o($V0,[2,48]),o($V0,[2,49]),o($Vw,[2,39]),o($Vw,[2,40]),o($VD,[2,46]),o($V0,[2,42]),o($V0,[2,8]),o($V0,[2,79]),o($V0,[2,80]),o($V0,[2,81]),{13:[1,105],42:$Vt},{13:[1,107],15:[1,106]},{19:[1,108]},o($V0,[2,15]),o($VH,[2,62],{57:109,60:[1,110],62:$VJ}),o($VH,[2,63]),o($VK,[2,67]),o($VH,[2,70]),o($VK,[2,69]),{18:111,19:[1,112],53:53,54:54,58:$Vp},{16:113,40:$Vn,41:$Vo},o($VC,[2,44],{46:87,13:$Vr,41:$Vs,48:$Vu,49:$Vv}),{14:114,40:$VE,50:$VF,72:$VG},{16:115,40:$Vn,41:$Vo},{14:116,40:$VE,50:$VF,72:$VG},o($V0,[2,13]),o($VH,[2,64]),{59:117,61:$VI},{19:[1,118]},o($V0,[2,20]),o($V0,[2,23],{17:[1,119],42:$Vt}),o($V0,[2,11]),{13:[1,120],42:$Vt},o($V0,[2,10]),o($VK,[2,68]),o($V0,[2,18]),{18:121,19:[1,122],53:53,54:54,58:$Vp},{14:123,40:$VE,50:$VF,72:$VG},{19:[1,124]},o($V0,[2,21]),o($V0,[2,9]),o($V0,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:__name(function(str,hash){if(hash.recoverable)this.trace(str);else{var error=new Error(str);throw error.hash=hash,error}},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,typeof lexer2.yylloc>"u"&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;typeof sharedState.yy.parseError=="function"?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function popStack(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n}__name(popStack,"popStack");function lex(){var token;return token=tstack.pop()||lexer2.lex()||EOF,typeof token!="number"&&(token instanceof Array&&(tstack=token,token=tstack.pop()),token=self.symbols_[token]||token),token}__name(lex,"lex");for(var symbol,state,action,r,yyval={},p,len,newState,expected;;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:((symbol===null||typeof symbol>"u")&&(symbol=lex()),action=table[state]&&table[state][symbol]),typeof action>"u"||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");lexer2.showPosition?errStr="Parse error on line "+(yylineno+1)+`:
|
|
2
|
+
`+lexer2.showPosition()+`
|
|
3
|
+
Expecting `+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":errStr="Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),typeof r<"u")return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=(function(){var lexer2={EOF:1,parseError:__name(function(str,hash){if(this.yy.parser)this.yy.parser.parseError(str,hash);else throw new Error(str)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+`
|
|
5
|
+
`+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if(tempMatch=this._input.match(this.rules[rules[i]]),tempMatch&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}else return!1}else if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1?token:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return this.begin("acc_title"),24;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),26;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 72;case 16:return 4;case 17:return this.begin("block"),17;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 61;case 25:return 58;case 26:return 58;case 27:return 62;case 28:break;case 29:return this.popState(),19;case 30:return yy_.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;case 34:return this.popState(),10;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;case 40:return 43;case 41:return 65;case 42:return 67;case 43:return 67;case 44:return 67;case 45:return 65;case 46:return 65;case 47:return 66;case 48:return 66;case 49:return 66;case 50:return 66;case 51:return 66;case 52:return 67;case 53:return 66;case 54:return 67;case 55:return 68;case 56:return 68;case 57:return 51;case 58:return 68;case 59:return 68;case 60:return 68;case 61:return 52;case 62:return 48;case 63:return 68;case 64:return 65;case 65:return 66;case 66:return 67;case 67:return 69;case 68:return 70;case 69:return 71;case 70:return 71;case 71:return 70;case 72:return 70;case 73:return 70;case 74:return 41;case 75:return 47;case 76:return 40;case 77:return yy_.yytext[0];case 78:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=\s+[0-9]))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,74,75],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,76,77,78],inclusive:!0}}};return lexer2})();parser2.lexer=lexer;function Parser(){this.yy={}}return __name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser})();parser.parser=parser;var erDiagram_default=parser,_a,ErDB=(_a=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=setAccTitle,this.getAccTitle=getAccTitle,this.setAccDescription=setAccDescription,this.getAccDescription=getAccDescription,this.setDiagramTitle=setDiagramTitle,this.getDiagramTitle=getDiagramTitle,this.getConfig=__name(()=>getConfig2().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}addEntity(name,alias=""){var _a2;return this.entities.has(name)?!((_a2=this.entities.get(name))!=null&&_a2.alias)&&alias&&(this.entities.get(name).alias=alias,log.info(`Add alias '${alias}' to entity '${name}'`)):(this.entities.set(name,{id:`entity-${name}-${this.entities.size}`,label:name,attributes:[],alias,shape:"erBox",look:getConfig2().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),log.info("Added new entity :",name)),this.entities.get(name)}getEntity(name){return this.entities.get(name)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(entityName,attribs){const entity=this.addEntity(entityName);let i;for(i=attribs.length-1;i>=0;i--)attribs[i].keys||(attribs[i].keys=[]),attribs[i].comment||(attribs[i].comment=""),entity.attributes.push(attribs[i]),log.debug("Added attribute ",attribs[i].name)}addRelationship(entA,rolA,entB,rSpec){const entityA=this.entities.get(entA),entityB=this.entities.get(entB);if(!entityA||!entityB)return;const rel={entityA:entityA.id,roleA:rolA,entityB:entityB.id,relSpec:rSpec};this.relationships.push(rel),log.debug("Added new relationship :",rel)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(dir){this.direction=dir}getCompiledStyles(classDefs){let compiledStyles=[];for(const customClass of classDefs){const cssClass=this.classes.get(customClass);cssClass!=null&&cssClass.styles&&(compiledStyles=[...compiledStyles,...cssClass.styles??[]].map(s=>s.trim())),cssClass!=null&&cssClass.textStyles&&(compiledStyles=[...compiledStyles,...cssClass.textStyles??[]].map(s=>s.trim()))}return compiledStyles}addCssStyles(ids,styles){for(const id of ids){const entity=this.entities.get(id);if(!styles||!entity)return;for(const style of styles)entity.cssStyles.push(style)}}addClass(ids,style){ids.forEach(id=>{let classNode=this.classes.get(id);classNode===void 0&&(classNode={id,styles:[],textStyles:[]},this.classes.set(id,classNode)),style&&style.forEach(function(s){if(/color/.exec(s)){const newStyle=s.replace("fill","bgFill");classNode.textStyles.push(newStyle)}classNode.styles.push(s)})})}setClass(ids,classNames){for(const id of ids){const entity=this.entities.get(id);if(entity)for(const className of classNames)entity.cssClasses+=" "+className}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],clear()}getData(){const nodes=[],edges=[],config=getConfig2();let colorIndex=0;for(const entityKey of this.entities.keys()){const entityNode=this.entities.get(entityKey);entityNode&&(entityNode.cssCompiledStyles=this.getCompiledStyles(entityNode.cssClasses.split(" ")),entityNode.colorIndex=colorIndex++,nodes.push(entityNode))}let count=0;for(const relationship of this.relationships){const edge={id:getEdgeId(relationship.entityA,relationship.entityB,{prefix:"id",counter:count++}),type:"normal",curve:"basis",start:relationship.entityA,end:relationship.entityB,label:relationship.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:relationship.relSpec.cardB.toLowerCase(),arrowTypeEnd:relationship.relSpec.cardA.toLowerCase(),pattern:relationship.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:config.look,labelType:"markdown"};edges.push(edge)}return{nodes,edges,other:{},config,direction:"TB"}}},__name(_a,"ErDB"),_a),erRenderer_unified_exports={};__export(erRenderer_unified_exports,{draw:()=>draw});var draw=__name(async function(text,id,_version,diag){log.info("REF0:"),log.info("Drawing er diagram (unified)",id);const{securityLevel,er:conf,layout}=getConfig2(),data4Layout=diag.db.getData(),svg=getDiagramElement(id,securityLevel);data4Layout.type=diag.type,data4Layout.layoutAlgorithm=getRegisteredLayoutAlgorithm(layout),data4Layout.config.flowchart.nodeSpacing=(conf==null?void 0:conf.nodeSpacing)||140,data4Layout.config.flowchart.rankSpacing=(conf==null?void 0:conf.rankSpacing)||80,data4Layout.direction=diag.db.getDirection();const{config}=data4Layout,{look}=config;look==="neo"?data4Layout.markers=["only_one_neo","zero_or_one_neo","one_or_more_neo","zero_or_more_neo"]:data4Layout.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],data4Layout.diagramId=id,await render(data4Layout,svg),data4Layout.layoutAlgorithm==="elk"&&svg.select(".edges").lower();const backgroundNodes=svg.selectAll('[id*="-background"]');Array.from(backgroundNodes).length>0&&backgroundNodes.each(function(){const backgroundNode=select(this),nonBackgroundId=backgroundNode.attr("id").replace("-background",""),nonBackgroundNode=svg.select(`#${CSS.escape(nonBackgroundId)}`);if(!nonBackgroundNode.empty()){const transform=nonBackgroundNode.attr("transform");backgroundNode.attr("transform",transform)}});const padding=8;utils_default.insertTitle(svg,"erDiagramTitleText",(conf==null?void 0:conf.titleTopMargin)??25,diag.db.getDiagramTitle()),setupViewPortForSVG(svg,padding,"erDiagram",(conf==null?void 0:conf.useMaxWidth)??!0)},"draw"),fade=__name((color,opacity)=>{const channel2=channel,r=channel2(color,"r"),g=channel2(color,"g"),b=channel2(color,"b");return rgba(r,g,b,opacity)},"fade"),COLOR_THEMES=new Set(["redux-color","redux-dark-color"]),genColor=__name(options=>{const{theme,look,bkgColorArray,borderColorArray}=options;if(!COLOR_THEMES.has(theme))return"";const hasBkgColors=(bkgColorArray==null?void 0:bkgColorArray.length)>0;let sections="";for(let i=0;i<options.THEME_COLOR_LIMIT;i++)sections+=`
|
|
7
|
+
|
|
8
|
+
[data-look="${look}"][data-color-id="color-${i}"].node path {
|
|
9
|
+
stroke: ${borderColorArray[i]};
|
|
10
|
+
${hasBkgColors?`fill: ${bkgColorArray[i]};`:""}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
[data-look="${look}"][data-color-id="color-${i}"].node rect {
|
|
14
|
+
stroke: ${borderColorArray[i]};
|
|
15
|
+
${hasBkgColors?`fill: ${bkgColorArray[i]};`:""}
|
|
16
|
+
}
|
|
17
|
+
`;return sections},"genColor"),getStyles=__name(options=>{const{look,theme,erEdgeLabelBackground,strokeWidth}=options;return`
|
|
18
|
+
${genColor(options)}
|
|
19
|
+
.entityBox {
|
|
20
|
+
fill: ${options.mainBkg};
|
|
21
|
+
stroke: ${options.nodeBorder};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.relationshipLabelBox {
|
|
25
|
+
fill: ${options.tertiaryColor};
|
|
26
|
+
opacity: 0.7;
|
|
27
|
+
background-color: ${options.tertiaryColor};
|
|
28
|
+
rect {
|
|
29
|
+
opacity: 0.5;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.labelBkg {
|
|
34
|
+
background-color: ${COLOR_THEMES.has(theme)&&erEdgeLabelBackground?erEdgeLabelBackground:fade(options.tertiaryColor,.5)};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.edgeLabel {
|
|
38
|
+
background-color: ${COLOR_THEMES.has(theme)&&erEdgeLabelBackground?erEdgeLabelBackground:options.edgeLabelBackground};
|
|
39
|
+
}
|
|
40
|
+
.edgeLabel .label rect {
|
|
41
|
+
fill: ${COLOR_THEMES.has(theme)&&erEdgeLabelBackground?erEdgeLabelBackground:options.edgeLabelBackground};
|
|
42
|
+
}
|
|
43
|
+
.edgeLabel .label text {
|
|
44
|
+
fill: ${options.textColor};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.edgeLabel .label {
|
|
48
|
+
fill: ${options.nodeBorder};
|
|
49
|
+
font-size: 14px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.label {
|
|
53
|
+
font-family: ${options.fontFamily};
|
|
54
|
+
color: ${options.nodeTextColor||options.textColor};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.edge-pattern-dashed {
|
|
58
|
+
stroke-dasharray: 8,8;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.node rect,
|
|
62
|
+
.node circle,
|
|
63
|
+
.node ellipse,
|
|
64
|
+
.node polygon
|
|
65
|
+
{
|
|
66
|
+
fill: ${options.mainBkg};
|
|
67
|
+
stroke: ${options.nodeBorder};
|
|
68
|
+
stroke-width: ${look==="neo"?strokeWidth:"1px"};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.relationshipLine {
|
|
72
|
+
stroke: ${options.lineColor};
|
|
73
|
+
stroke-width: ${look==="neo"?strokeWidth:"1px"};
|
|
74
|
+
fill: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.marker {
|
|
78
|
+
fill: none !important;
|
|
79
|
+
stroke: ${options.lineColor} !important;
|
|
80
|
+
stroke-width: 1;
|
|
81
|
+
}
|
|
82
|
+
[data-look=neo].labelBkg {
|
|
83
|
+
background-color: ${fade(options.tertiaryColor,.5)};
|
|
84
|
+
}
|
|
85
|
+
`},"getStyles"),styles_default=getStyles,diagram={parser:erDiagram_default,get db(){return new ErDB},renderer:erRenderer_unified_exports,styles:styles_default};export{diagram};
|