ranui
Version:
A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.
14 lines (13 loc) • 61.6 kB
JavaScript
const b=require("./chunk-Y2CYZVJY-DPaYLFFP.cjs"),X=require("./src-C9EhKhbk.cjs"),x=require("./chunk-WYO6CB5R-u4mJNOcO.cjs"),H1=require("./channel-C9WSNwcS.cjs"),Re=require("./chunk-ICXQ74PX-BbT9JaEW.cjs"),Q1=require("./chunk-5VM5RSS4-DudUFQ_Z.cjs"),Z1=require("./chunk-32BRIVSS-BXVdG_nV.cjs"),J1=require("./chunk-XXDRQBXY-C8VGLZmt.cjs"),$1=require("./chunk-VR4S4FIN-KiwnPF31.cjs"),et=require("./chunk-ZGVPDNZ5-Cw5_HJba.cjs"),O1=require("./chunk-FWX5IMBZ-D11-gbhc.cjs"),M1=require("./chunk-ZIRB5QZD-aLu-4ITN.cjs");var tt="flowchart-",st=class{constructor(){this.vertexCounter=0,this.config=x.getConfig2(),this.diagramId="",this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=x.setAccTitle,this.setAccDescription=x.setAccDescription,this.setDiagramTitle=x.setDiagramTitle,this.getAccTitle=x.getAccTitle,this.getAccDescription=x.getAccDescription,this.getDiagramTitle=x.getDiagramTitle,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{b.__name(this,"FlowDB")}sanitizeText(e){return x.common_default.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(const r of this.vertices.values())if(r.id===e)return this.diagramId?`${this.diagramId}-${r.domId}`:r.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,r,i,a,n,h,d={},l){if(!e||e.trim().length===0)return;let o;if(l!==void 0){let D;l.includes(`
`)?D=l+`
`:D=`{
`+l+`
}`,o=M1.load(D,{schema:M1.JSON_SCHEMA})}const y=this.edges.find(D=>D.id===e);if(y){const D=o;D?.animate!==void 0&&(y.animate=D.animate),D?.animation!==void 0&&(y.animation=D.animation),D?.curve!==void 0&&(y.interpolate=D.curve);return}let L,p=this.vertices.get(e);if(p===void 0&&(r===void 0&&i===void 0&&a!==void 0&&a!==null&&X.log.warn(`Style applied to unknown node "${e}". This may indicate a typo. The node will be created automatically.`),p={id:e,labelType:"text",domId:tt+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,p)),this.vertexCounter++,r!==void 0?(this.config=x.getConfig2(),L=this.sanitizeText(r.text.trim()),p.labelType=r.type,L.startsWith('"')&&L.endsWith('"')&&(L=L.substring(1,L.length-1)),p.text=L):p.text===void 0&&(p.text=e),i!==void 0&&(p.type=i),a?.forEach(D=>{p.styles.push(D)}),n?.forEach(D=>{p.classes.push(D)}),h!==void 0&&(p.dir=h),p.props===void 0?p.props=d:d!==void 0&&Object.assign(p.props,d),o!==void 0){if(o.shape){if(o.shape!==o.shape.toLowerCase()||o.shape.includes("_"))throw new Error(`No such shape: ${o.shape}. Shape names should be lowercase.`);if(!et.isValidShape(o.shape))throw new Error(`No such shape: ${o.shape}.`);p.type=o?.shape}o?.label&&(p.text=o?.label,p.labelType=this.sanitizeNodeLabelType(o?.labelType)),o?.icon&&(p.icon=o?.icon,!o.label?.trim()&&p.text===e&&(p.text="")),o?.form&&(p.form=o?.form),o?.pos&&(p.pos=o?.pos),o?.img&&(p.img=o?.img,!o.label?.trim()&&p.text===e&&(p.text="")),o?.constraint&&(p.constraint=o.constraint),o.w&&(p.assetWidth=Number(o.w)),o.h&&(p.assetHeight=Number(o.h))}}addSingleLink(e,r,i,a){const n={start:e,end:r,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};X.log.info("abc78 Got edge...",n);const h=i.text;if(h!==void 0&&(n.text=this.sanitizeText(h.text.trim()),n.text.startsWith('"')&&n.text.endsWith('"')&&(n.text=n.text.substring(1,n.text.length-1)),n.labelType=this.sanitizeNodeLabelType(h.type)),i!==void 0&&(n.type=i.type,n.stroke=i.stroke,n.length=i.length>10?10:i.length),a&&!this.edges.some(d=>d.id===a))n.id=a,n.isUserDefinedId=!0;else{const d=this.edges.filter(l=>l.start===n.start&&l.end===n.end);d.length===0?n.id=Re.getEdgeId(n.start,n.end,{counter:0,prefix:"L"}):n.id=Re.getEdgeId(n.start,n.end,{counter:d.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))X.log.info("Pushing edge..."),this.edges.push(n);else throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.
Initialize mermaid with maxEdges set to a higher number to allow more edges.
You cannot set this config via configuration inside the diagram as it is a secure config.
You have to call mermaid.initialize.`)}isLinkData(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,r,i){const a=this.isLinkData(i)?i.id.replace("@",""):void 0;X.log.info("addLink",e,r,a);for(const n of e)for(const h of r){const d=n===e[e.length-1],l=h===r[0];d&&l?this.addSingleLink(n,h,i,a):this.addSingleLink(n,h,i,void 0)}}updateLinkInterpolate(e,r){e.forEach(i=>{i==="default"?this.edges.defaultInterpolate=r:this.edges[i].interpolate=r})}updateLink(e,r){e.forEach(i=>{if(typeof i=="number"&&i>=this.edges.length)throw new Error(`The index ${i} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);i==="default"?this.edges.defaultStyle=r:(this.edges[i].style=r,(this.edges[i]?.style?.length??0)>0&&!this.edges[i]?.style?.some(a=>a?.startsWith("fill"))&&this.edges[i]?.style?.push("fill:none"))})}addClass(e,r){const i=r.join().replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(a=>{let n=this.classes.get(a);n===void 0&&(n={id:a,styles:[],textStyles:[]},this.classes.set(a,n)),i?.forEach(h=>{if(/color/.exec(h)){const d=h.replace("fill","bgFill");n.textStyles.push(d)}n.styles.push(h)})})}setDirection(e){this.direction=e.trim(),/.*</.exec(this.direction)&&(this.direction="RL"),/.*\^/.exec(this.direction)&&(this.direction="BT"),/.*>/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,r){for(const i of e.split(",")){const a=this.vertices.get(i);a&&a.classes.push(r);const n=this.edges.find(d=>d.id===i);n&&n.classes.push(r);const h=this.subGraphLookup.get(i);h&&h.classes.push(r)}}setTooltip(e,r){if(r!==void 0){r=this.sanitizeText(r);for(const i of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(i):i,r)}}setClickFun(e,r,i){if(x.getConfig2().securityLevel!=="loose"||r===void 0)return;let a=[];if(typeof i=="string"){a=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let h=0;h<a.length;h++){let d=a[h].trim();d.startsWith('"')&&d.endsWith('"')&&(d=d.substr(1,d.length-2)),a[h]=d}}a.length===0&&a.push(e);const n=this.vertices.get(e);n&&(n.haveCallback=!0,this.funs.push(()=>{const h=this.lookUpDomId(e),d=document.querySelector(`[id="${h}"]`);d!==null&&d.addEventListener("click",()=>{Re.utils_default.runFunc(r,...a)},!1)}))}setLink(e,r,i){e.split(",").forEach(a=>{const n=this.vertices.get(a);n!==void 0&&(n.link=Re.utils_default.formatUrl(r,this.config),n.linkTarget=i)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,r,i){e.split(",").forEach(a=>{this.setClickFun(a,r,i)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(r=>{r(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){const r=Z1.createTooltip();X.select_default(e).select("svg").selectAll("g.node").on("mouseover",i=>{const a=X.select_default(i.currentTarget),n=a.attr("title");if(n===null)return;const h=i.currentTarget?.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(a.attr("title")).style("left",window.scrollX+h.left+(h.right-h.left)/2+"px").style("top",window.scrollY+h.bottom+"px"),r.html(x.purify.sanitize(n)),a.classed("hover",!0)}).on("mouseout",i=>{r.transition().duration(500).style("opacity",0),X.select_default(i.currentTarget).classed("hover",!1)})}clear(e="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.diagramId="",this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=e,this.config=x.getConfig2(),x.clear()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,r,i){let a=e.text.trim(),n=i.text;e===i&&/\s/.exec(i.text)&&(a=void 0);const h=b.__name(D=>{const de={boolean:{},number:{},string:{}},F=[];let B;return{nodeList:D.filter(function(K){const pe=typeof K;return K.stmt&&K.stmt==="dir"?(B=K.value,!1):K.trim()===""?!1:pe in de?de[pe].hasOwnProperty(K)?!1:de[pe][K]=!0:F.includes(K)?!1:F.push(K)}),dir:B}},"uniq")(r.flat()),d=h.nodeList,l=h.dir,o=l!==void 0,y=x.getConfig2().flowchart??{},L=l??(y.inheritDir?this.getDirection()??x.getConfig2().direction??void 0:void 0);if(this.version==="gen-1")for(let D=0;D<d.length;D++)d[D]=this.lookUpDomId(d[D]);a=a??"subGraph"+this.subCount,n=n||"",n=this.sanitizeText(n),this.subCount=this.subCount+1;const p={id:a,nodes:d,title:n.trim(),classes:[],dir:L,hasExplicitDir:o,labelType:this.sanitizeNodeLabelType(i?.type)};return X.log.info("Adding",p.id,p.nodes,p.dir),p.nodes=this.makeUniq(p,this.subGraphs).nodes,this.subGraphs.push(p),this.subGraphLookup.set(a,p),a}getPosForId(e){for(const[r,i]of this.subGraphs.entries())if(i.id===e)return r;return-1}indexNodes2(e,r){const i=this.subGraphs[r].nodes;if(this.secCount=this.secCount+1,this.secCount>2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=r,this.subGraphs[r].id===e)return{result:!0,count:0};let a=0,n=1;for(;a<i.length;){const h=this.getPosForId(i[a]);if(h>=0){const d=this.indexNodes2(e,h);if(d.result)return{result:!0,count:n+d.count};n=n+d.count}a=a+1}return{result:!1,count:n}}getDepthFirstPos(e){return this.posCrossRef[e]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return this.firstGraphFlag?(this.firstGraphFlag=!1,!0):!1}destructStartLink(e){let r=e.trim(),i="arrow_open";switch(r[0]){case"<":i="arrow_point",r=r.slice(1);break;case"x":i="arrow_cross",r=r.slice(1);break;case"o":i="arrow_circle",r=r.slice(1);break}let a="normal";return r.includes("=")&&(a="thick"),r.includes(".")&&(a="dotted"),{type:i,stroke:a}}countChar(e,r){const i=r.length;let a=0;for(let n=0;n<i;++n)r[n]===e&&++a;return a}destructEndLink(e){const r=e.trim();let i=r.slice(0,-1),a="arrow_open";switch(r.slice(-1)){case"x":a="arrow_cross",r.startsWith("x")&&(a="double_"+a,i=i.slice(1));break;case">":a="arrow_point",r.startsWith("<")&&(a="double_"+a,i=i.slice(1));break;case"o":a="arrow_circle",r.startsWith("o")&&(a="double_"+a,i=i.slice(1));break}let n="normal",h=i.length-1;i.startsWith("=")&&(n="thick"),i.startsWith("~")&&(n="invisible");const d=this.countChar(".",i);return d&&(n="dotted",h=d),{type:a,stroke:n,length:h}}destructLink(e,r){const i=this.destructEndLink(e);let a;if(r){if(a=this.destructStartLink(r),a.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(a.type==="arrow_open")a.type=i.type;else{if(a.type!==i.type)return{type:"INVALID",stroke:"INVALID"};a.type="double_"+a.type}return a.type==="double_arrow"&&(a.type="double_arrow_point"),a.length=i.length,a}return i}exists(e,r){for(const i of e)if(i.nodes.includes(r))return!0;return!1}makeUniq(e,r){const i=[];return e.nodes.forEach((a,n)=>{this.exists(r,a)||i.push(e.nodes[n])}),{nodes:i}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,r){return e.find(i=>i.id===r)}destructEdgeType(e){let r="none",i="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":i=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":r=e.replace("double_",""),i=r;break}return{arrowTypeStart:r,arrowTypeEnd:i}}addNodeFromVertex(e,r,i,a,n,h){const d=i.get(e.id),l=a.get(e.id)??!1,o=this.findNode(r,e.id);if(o)o.cssStyles=e.styles,o.cssCompiledStyles=this.getCompiledStyles(e.classes),o.cssClasses=e.classes.join(" ");else{const y={id:e.id,label:e.text,labelType:e.labelType,labelStyle:"",parentId:d,padding:n.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:h,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};l?r.push({...y,isGroup:!0,shape:"rect"}):r.push({...y,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let r=[];for(const i of e){const a=this.classes.get(i);a?.styles&&(r=[...r,...a.styles??[]].map(n=>n.trim())),a?.textStyles&&(r=[...r,...a.textStyles??[]].map(n=>n.trim()))}return r}getData(){const e=x.getConfig2(),r=[],i=[],a=this.getSubGraphs(),n=new Map,h=new Map;for(let l=a.length-1;l>=0;l--){const o=a[l];o.nodes.length>0&&h.set(o.id,!0);for(const y of o.nodes)n.set(y,o.id)}for(let l=a.length-1;l>=0;l--){const o=a[l];r.push({id:o.id,label:o.title,labelStyle:"",labelType:o.labelType,parentId:n.get(o.id),padding:8,cssCompiledStyles:this.getCompiledStyles(o.classes),cssClasses:o.classes.join(" "),shape:"rect",dir:o.dir==="TD"?"TB":o.dir,explicitDir:o.hasExplicitDir,isGroup:!0,look:e.look})}this.getVertices().forEach(l=>{this.addNodeFromVertex(l,r,n,h,e,e.look||"classic")});const d=this.getEdges();return d.forEach((l,o)=>{const{arrowTypeStart:y,arrowTypeEnd:L}=this.destructEdgeType(l.type),p=[...d.defaultStyle??[]];l.style&&p.push(...l.style);const D={id:Re.getEdgeId(l.start,l.end,{counter:o,prefix:"L"},l.id),isUserDefinedId:l.isUserDefinedId,start:l.start,end:l.end,type:l.type??"normal",label:l.text,labelType:l.labelType,labelpos:"c",thickness:l.stroke,minlen:l.length,classes:l?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:l?.stroke==="invisible"||l?.type==="arrow_open"?"none":y,arrowTypeEnd:l?.stroke==="invisible"||l?.type==="arrow_open"?"none":L,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(l.classes),labelStyle:p,style:p,pattern:l.stroke,look:e.look,animate:l.animate,animation:l.animation,curve:l.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};i.push(D)}),{nodes:r,edges:i,other:{},config:e}}defaultConfig(){return x.defaultConfig2.flowchart}},it={getClasses:b.__name(function(e,r){return r.db.getClasses()},"getClasses"),draw:b.__name(async function(e,r,i,a,n){X.log.info("REF0:"),X.log.info("Drawing state diagram (v2)",r);const{securityLevel:h,flowchart:d,layout:l}=x.getConfig2();a.db.setDiagramId(r),X.log.debug("Before getData: ");const o=a.db.getData();X.log.debug("Data: ",o);const y=J1.getDiagramElement(r,h),L=a.db.getDirection();o.type=a.type,o.layoutAlgorithm=O1.getRegisteredLayoutAlgorithm(l),o.layoutAlgorithm==="dagre"&&l==="elk"&&X.log.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),o.direction=L,o.nodeSpacing=d?.nodeSpacing||50,o.rankSpacing=d?.rankSpacing||50,o.markers=["point","circle","cross"],o.diagramId=r,X.log.debug("REF1:",o),await O1.render(o,y,n);const p=o.config.flowchart?.diagramPadding??8;Re.utils_default.insertTitle(y,"flowchartTitleText",d?.titleTopMargin||0,a.db.getDiagramTitle()),$1.setupViewPortForSVG(y,p,"flowchart",d?.useMaxWidth||!1)},"draw")},i1=(function(){var e=b.__name(function(c,f,A,g){for(A=A||{},g=c.length;g--;A[c[g]]=f);return A},"o"),r=[1,4],i=[1,3],a=[1,5],n=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],h=[2,2],d=[1,13],l=[1,14],o=[1,15],y=[1,16],L=[1,23],p=[1,25],D=[1,26],de=[1,27],F=[1,50],B=[1,49],K=[1,29],pe=[1,30],Pe=[1,31],Ge=[1,32],Oe=[1,33],I=[1,45],w=[1,47],R=[1,43],N=[1,48],P=[1,44],G=[1,51],O=[1,46],M=[1,52],U=[1,53],Me=[1,34],Ue=[1,35],qe=[1,36],We=[1,37],ze=[1,38],fe=[1,58],E=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],ee=[1,62],te=[1,61],se=[1,63],me=[8,9,11,75,77,78],r1=[1,79],_e=[1,92],Ce=[1,97],De=[1,96],Ee=[1,93],Te=[1,89],Se=[1,95],ye=[1,91],xe=[1,98],Fe=[1,94],Be=[1,99],ve=[1,90],be=[8,9,10,11,40,75,77,78],W=[8,9,10,11,40,46,75,77,78],H=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],a1=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],Ve=[44,60,89,102,105,106,109,111,114,115,116],n1=[1,122],u1=[1,123],Ye=[1,125],je=[1,124],o1=[44,60,62,74,89,102,105,106,109,111,114,115,116],l1=[1,134],c1=[1,148],h1=[1,149],d1=[1,150],p1=[1,151],f1=[1,136],g1=[1,138],b1=[1,142],A1=[1,143],k1=[1,144],m1=[1,145],_1=[1,146],C1=[1,147],D1=[1,152],E1=[1,153],T1=[1,132],S1=[1,133],y1=[1,140],x1=[1,135],F1=[1,139],B1=[1,137],Qe=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],v1=[1,155],V1=[1,157],S=[8,9,11],Q=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],k=[1,177],z=[1,173],Y=[1,174],m=[1,178],_=[1,175],C=[1,176],Le=[77,116,119],T=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],L1=[10,106],ge=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],ie=[1,248],re=[1,246],ae=[1,250],ne=[1,244],ue=[1,245],oe=[1,247],le=[1,249],ce=[1,251],Ie=[1,269],I1=[8,9,11,106],$=[8,9,10,11,60,84,105,106,109,110,111,112],Ze={trace:b.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,direction_td:125,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr",125:"direction_td"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1],[33,1]],performAction:b.__name(function(f,A,g,u,v,t,Ne){var s=t.length-1;switch(v){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 183:this.$=t[s];break;case 11:u.setDirection("TB"),this.$="TB";break;case 12:u.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=u.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=u.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=u.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),u.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),u.setAccDescription(this.$);break;case 43:this.$=t[s-1]+t[s];break;case 44:this.$=t[s];break;case 45:u.addVertex(t[s-1][t[s-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s]),u.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 46:u.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 47:u.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 48:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 49:u.addVertex(t[s-1][t[s-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s]),this.$={stmt:t[s-1],nodes:t[s-1],shapeData:t[s]};break;case 50:this.$={stmt:t[s],nodes:t[s]};break;case 51:this.$=[t[s]];break;case 52:u.addVertex(t[s-5][t[s-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s-4]),this.$=t[s-5].concat(t[s]);break;case 53:this.$=t[s-4].concat(t[s]);break;case 54:this.$=t[s];break;case 55:this.$=t[s-2],u.setClass(t[s-2],t[s]);break;case 56:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"square");break;case 57:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"doublecircle");break;case 58:this.$=t[s-5],u.addVertex(t[s-5],t[s-2],"circle");break;case 59:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"ellipse");break;case 60:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"stadium");break;case 61:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"subroutine");break;case 62:this.$=t[s-7],u.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 63:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"cylinder");break;case 64:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"round");break;case 65:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"diamond");break;case 66:this.$=t[s-5],u.addVertex(t[s-5],t[s-2],"hexagon");break;case 67:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"odd");break;case 68:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"trapezoid");break;case 69:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 70:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"lean_right");break;case 71:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"lean_left");break;case 72:this.$=t[s],u.addVertex(t[s]);break;case 73:t[s-1].text=t[s],this.$=t[s-1];break;case 74:case 75:t[s-2].text=t[s-1],this.$=t[s-2];break;case 76:this.$=t[s];break;case 77:var V=u.destructLink(t[s],t[s-2]);this.$={type:V.type,stroke:V.stroke,length:V.length,text:t[s-1]};break;case 78:var V=u.destructLink(t[s],t[s-2]);this.$={type:V.type,stroke:V.stroke,length:V.length,text:t[s-1],id:t[s-3]};break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:this.$={text:t[s],type:"markdown"};break;case 83:var V=u.destructLink(t[s]);this.$={type:V.type,stroke:V.stroke,length:V.length};break;case 84:var V=u.destructLink(t[s]);this.$={type:V.type,stroke:V.stroke,length:V.length,id:t[s-1]};break;case 85:this.$=t[s-1];break;case 86:this.$={text:t[s],type:"text"};break;case 87:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 88:this.$={text:t[s],type:"string"};break;case 89:case 104:this.$={text:t[s],type:"markdown"};break;case 101:this.$={text:t[s],type:"text"};break;case 102:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 103:this.$={text:t[s],type:"text"};break;case 105:this.$=t[s-4],u.addClass(t[s-2],t[s]);break;case 106:this.$=t[s-4],u.setClass(t[s-2],t[s]);break;case 107:case 115:this.$=t[s-1],u.setClickEvent(t[s-1],t[s]);break;case 108:case 116:this.$=t[s-3],u.setClickEvent(t[s-3],t[s-2]),u.setTooltip(t[s-3],t[s]);break;case 109:this.$=t[s-2],u.setClickEvent(t[s-2],t[s-1],t[s]);break;case 110:this.$=t[s-4],u.setClickEvent(t[s-4],t[s-3],t[s-2]),u.setTooltip(t[s-4],t[s]);break;case 111:this.$=t[s-2],u.setLink(t[s-2],t[s]);break;case 112:this.$=t[s-4],u.setLink(t[s-4],t[s-2]),u.setTooltip(t[s-4],t[s]);break;case 113:this.$=t[s-4],u.setLink(t[s-4],t[s-2],t[s]);break;case 114:this.$=t[s-6],u.setLink(t[s-6],t[s-4],t[s]),u.setTooltip(t[s-6],t[s-2]);break;case 117:this.$=t[s-1],u.setLink(t[s-1],t[s]);break;case 118:this.$=t[s-3],u.setLink(t[s-3],t[s-2]),u.setTooltip(t[s-3],t[s]);break;case 119:this.$=t[s-3],u.setLink(t[s-3],t[s-2],t[s]);break;case 120:this.$=t[s-5],u.setLink(t[s-5],t[s-4],t[s]),u.setTooltip(t[s-5],t[s-2]);break;case 121:this.$=t[s-4],u.addVertex(t[s-2],void 0,void 0,t[s]);break;case 122:this.$=t[s-4],u.updateLink([t[s-2]],t[s]);break;case 123:this.$=t[s-4],u.updateLink(t[s-2],t[s]);break;case 124:this.$=t[s-8],u.updateLinkInterpolate([t[s-6]],t[s-2]),u.updateLink([t[s-6]],t[s]);break;case 125:this.$=t[s-8],u.updateLinkInterpolate(t[s-6],t[s-2]),u.updateLink(t[s-6],t[s]);break;case 126:this.$=t[s-6],u.updateLinkInterpolate([t[s-4]],t[s]);break;case 127:this.$=t[s-6],u.updateLinkInterpolate(t[s-4],t[s]);break;case 128:case 130:this.$=[t[s]];break;case 129:case 131:t[s-2].push(t[s]),this.$=t[s-2];break;case 133:this.$=t[s-1]+t[s];break;case 181:this.$=t[s];break;case 182:this.$=t[s-1]+""+t[s];break;case 184:this.$=t[s-1]+""+t[s];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break;case 189:this.$={stmt:"dir",value:"TD"};break}},"anonymous"),table:[{3:1,4:2,9:r,10:i,12:a},{1:[3]},e(n,h,{5:6}),{4:7,9:r,10:i,12:a},{4:8,9:r,10:i,12:a},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:d,9:l,10:o,11:y,20:17,22:18,23:19,24:20,25:21,26:22,27:L,33:24,34:p,36:D,38:de,42:28,43:39,44:F,45:40,47:41,60:B,84:K,85:pe,86:Pe,87:Ge,88:Oe,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U,121:Me,122:Ue,123:qe,124:We,125:ze},e(n,[2,9]),e(n,[2,10]),e(n,[2,11]),{8:[1,55],9:[1,56],10:fe,15:54,18:57},e(E,[2,3]),e(E,[2,4]),e(E,[2,5]),e(E,[2,6]),e(E,[2,7]),e(E,[2,8]),{8:ee,9:te,11:se,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:ee,9:te,11:se,21:68},{8:ee,9:te,11:se,21:69},{8:ee,9:te,11:se,21:70},{8:ee,9:te,11:se,21:71},{8:ee,9:te,11:se,21:72},{8:ee,9:te,10:[1,73],11:se,21:74},e(E,[2,36]),{35:[1,75]},{37:[1,76]},e(E,[2,39]),e(me,[2,50],{18:77,39:78,10:fe,40:r1}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:_e,44:Ce,60:De,80:[1,87],89:Ee,95:[1,84],97:[1,85],101:86,105:Te,106:Se,109:ye,111:xe,114:Fe,115:Be,116:ve,120:88},e(E,[2,185]),e(E,[2,186]),e(E,[2,187]),e(E,[2,188]),e(E,[2,189]),e(be,[2,51]),e(be,[2,54],{46:[1,100]}),e(W,[2,72],{113:113,29:[1,101],44:F,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:B,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:I,102:w,105:R,106:N,109:P,111:G,114:O,115:M,116:U}),e(H,[2,181]),e(H,[2,142]),e(H,[2,143]),e(H,[2,144]),e(H,[2,145]),e(H,[2,146]),e(H,[2,147]),e(H,[2,148]),e(H,[2,149]),e(H,[2,150]),e(H,[2,151]),e(H,[2,152]),e(n,[2,12]),e(n,[2,18]),e(n,[2,19]),{9:[1,114]},e(a1,[2,26],{18:115,10:fe}),e(E,[2,27]),{42:116,43:39,44:F,45:40,47:41,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},e(E,[2,40]),e(E,[2,41]),e(E,[2,42]),e(Ve,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:n1,81:u1,116:Ye,119:je},{75:[1,126],77:[1,127]},e(o1,[2,83]),e(E,[2,28]),e(E,[2,29]),e(E,[2,30]),e(E,[2,31]),e(E,[2,32]),{10:l1,12:c1,14:h1,27:d1,28:128,32:p1,44:f1,60:g1,75:b1,80:[1,130],81:[1,131],83:141,84:A1,85:k1,86:m1,87:_1,88:C1,89:D1,90:E1,91:129,105:T1,109:S1,111:y1,114:x1,115:F1,116:B1},e(Qe,h,{5:154}),e(E,[2,37]),e(E,[2,38]),e(me,[2,48],{44:v1}),e(me,[2,49],{18:156,10:fe,40:V1}),e(be,[2,44]),{44:F,47:158,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},{102:[1,159],103:160,105:[1,161]},{44:F,47:162,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},{44:F,47:163,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},e(S,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},e(S,[2,115],{120:168,10:[1,167],14:_e,44:Ce,60:De,89:Ee,105:Te,106:Se,109:ye,111:xe,114:Fe,115:Be,116:ve}),e(S,[2,117],{10:[1,169]}),e(Q,[2,183]),e(Q,[2,170]),e(Q,[2,171]),e(Q,[2,172]),e(Q,[2,173]),e(Q,[2,174]),e(Q,[2,175]),e(Q,[2,176]),e(Q,[2,177]),e(Q,[2,178]),e(Q,[2,179]),e(Q,[2,180]),{44:F,47:170,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},{30:171,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:179,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:181,50:[1,180],67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:182,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:183,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:184,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{109:[1,185]},{30:186,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:187,65:[1,188],67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:189,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:190,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{30:191,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},e(H,[2,182]),e(n,[2,20]),e(a1,[2,25]),e(me,[2,46],{39:192,18:193,10:fe,40:r1}),e(Ve,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{77:[1,197],79:198,116:Ye,119:je},e(Le,[2,79]),e(Le,[2,81]),e(Le,[2,82]),e(Le,[2,168]),e(Le,[2,169]),{76:199,79:121,80:n1,81:u1,116:Ye,119:je},e(o1,[2,84]),{8:ee,9:te,10:l1,11:se,12:c1,14:h1,21:201,27:d1,29:[1,200],32:p1,44:f1,60:g1,75:b1,83:141,84:A1,85:k1,86:m1,87:_1,88:C1,89:D1,90:E1,91:202,105:T1,109:S1,111:y1,114:x1,115:F1,116:B1},e(T,[2,101]),e(T,[2,103]),e(T,[2,104]),e(T,[2,157]),e(T,[2,158]),e(T,[2,159]),e(T,[2,160]),e(T,[2,161]),e(T,[2,162]),e(T,[2,163]),e(T,[2,164]),e(T,[2,165]),e(T,[2,166]),e(T,[2,167]),e(T,[2,90]),e(T,[2,91]),e(T,[2,92]),e(T,[2,93]),e(T,[2,94]),e(T,[2,95]),e(T,[2,96]),e(T,[2,97]),e(T,[2,98]),e(T,[2,99]),e(T,[2,100]),{6:11,7:12,8:d,9:l,10:o,11:y,20:17,22:18,23:19,24:20,25:21,26:22,27:L,32:[1,203],33:24,34:p,36:D,38:de,42:28,43:39,44:F,45:40,47:41,60:B,84:K,85:pe,86:Pe,87:Ge,88:Oe,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U,121:Me,122:Ue,123:qe,124:We,125:ze},{10:fe,18:204},{44:[1,205]},e(be,[2,43]),{10:[1,206],44:F,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:113,114:O,115:M,116:U},{10:[1,207]},{10:[1,208],106:[1,209]},e(L1,[2,128]),{10:[1,210],44:F,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:113,114:O,115:M,116:U},{10:[1,211],44:F,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:113,114:O,115:M,116:U},{80:[1,212]},e(S,[2,109],{10:[1,213]}),e(S,[2,111],{10:[1,214]}),{80:[1,215]},e(Q,[2,184]),{80:[1,216],98:[1,217]},e(be,[2,55],{113:113,44:F,60:B,89:I,102:w,105:R,106:N,109:P,111:G,114:O,115:M,116:U}),{31:[1,218],67:k,82:219,116:m,117:_,118:C},e(ge,[2,86]),e(ge,[2,88]),e(ge,[2,89]),e(ge,[2,153]),e(ge,[2,154]),e(ge,[2,155]),e(ge,[2,156]),{49:[1,220],67:k,82:219,116:m,117:_,118:C},{30:221,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{51:[1,222],67:k,82:219,116:m,117:_,118:C},{53:[1,223],67:k,82:219,116:m,117:_,118:C},{55:[1,224],67:k,82:219,116:m,117:_,118:C},{57:[1,225],67:k,82:219,116:m,117:_,118:C},{60:[1,226]},{64:[1,227],67:k,82:219,116:m,117:_,118:C},{66:[1,228],67:k,82:219,116:m,117:_,118:C},{30:229,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},{31:[1,230],67:k,82:219,116:m,117:_,118:C},{67:k,69:[1,231],71:[1,232],82:219,116:m,117:_,118:C},{67:k,69:[1,234],71:[1,233],82:219,116:m,117:_,118:C},e(me,[2,45],{18:156,10:fe,40:V1}),e(me,[2,47],{44:v1}),e(Ve,[2,75]),e(Ve,[2,74]),{62:[1,235],67:k,82:219,116:m,117:_,118:C},e(Ve,[2,77]),e(Le,[2,80]),{77:[1,236],79:198,116:Ye,119:je},{30:237,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},e(Qe,h,{5:238}),e(T,[2,102]),e(E,[2,35]),{43:239,44:F,45:40,47:41,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},{10:fe,18:240},{10:ie,60:re,84:ae,92:241,105:ne,107:242,108:243,109:ue,110:oe,111:le,112:ce},{10:ie,60:re,84:ae,92:252,104:[1,253],105:ne,107:242,108:243,109:ue,110:oe,111:le,112:ce},{10:ie,60:re,84:ae,92:254,104:[1,255],105:ne,107:242,108:243,109:ue,110:oe,111:le,112:ce},{105:[1,256]},{10:ie,60:re,84:ae,92:257,105:ne,107:242,108:243,109:ue,110:oe,111:le,112:ce},{44:F,47:258,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},e(S,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},e(S,[2,116]),e(S,[2,118],{10:[1,262]}),e(S,[2,119]),e(W,[2,56]),e(ge,[2,87]),e(W,[2,57]),{51:[1,263],67:k,82:219,116:m,117:_,118:C},e(W,[2,64]),e(W,[2,59]),e(W,[2,60]),e(W,[2,61]),{109:[1,264]},e(W,[2,63]),e(W,[2,65]),{66:[1,265],67:k,82:219,116:m,117:_,118:C},e(W,[2,67]),e(W,[2,68]),e(W,[2,70]),e(W,[2,69]),e(W,[2,71]),e([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),e(Ve,[2,78]),{31:[1,266],67:k,82:219,116:m,117:_,118:C},{6:11,7:12,8:d,9:l,10:o,11:y,20:17,22:18,23:19,24:20,25:21,26:22,27:L,32:[1,267],33:24,34:p,36:D,38:de,42:28,43:39,44:F,45:40,47:41,60:B,84:K,85:pe,86:Pe,87:Ge,88:Oe,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U,121:Me,122:Ue,123:qe,124:We,125:ze},e(be,[2,53]),{43:268,44:F,45:40,47:41,60:B,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U},e(S,[2,121],{106:Ie}),e(I1,[2,130],{108:270,10:ie,60:re,84:ae,105:ne,109:ue,110:oe,111:le,112:ce}),e($,[2,132]),e($,[2,134]),e($,[2,135]),e($,[2,136]),e($,[2,137]),e($,[2,138]),e($,[2,139]),e($,[2,140]),e($,[2,141]),e(S,[2,122],{106:Ie}),{10:[1,271]},e(S,[2,123],{106:Ie}),{10:[1,272]},e(L1,[2,129]),e(S,[2,105],{106:Ie}),e(S,[2,106],{113:113,44:F,60:B,89:I,102:w,105:R,106:N,109:P,111:G,114:O,115:M,116:U}),e(S,[2,110]),e(S,[2,112],{10:[1,273]}),e(S,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:ee,9:te,11:se,21:278},e(E,[2,34]),e(be,[2,52]),{10:ie,60:re,84:ae,105:ne,107:279,108:243,109:ue,110:oe,111:le,112:ce},e($,[2,133]),{14:_e,44:Ce,60:De,89:Ee,101:280,105:Te,106:Se,109:ye,111:xe,114:Fe,115:Be,116:ve,120:88},{14:_e,44:Ce,60:De,89:Ee,101:281,105:Te,106:Se,109:ye,111:xe,114:Fe,115:Be,116:ve,120:88},{98:[1,282]},e(S,[2,120]),e(W,[2,58]),{30:283,67:k,80:z,81:Y,82:172,116:m,117:_,118:C},e(W,[2,66]),e(Qe,h,{5:284}),e(I1,[2,131],{108:270,10:ie,60:re,84:ae,105:ne,109:ue,110:oe,111:le,112:ce}),e(S,[2,126],{120:168,10:[1,285],14:_e,44:Ce,60:De,89:Ee,105:Te,106:Se,109:ye,111:xe,114:Fe,115:Be,116:ve}),e(S,[2,127],{120:168,10:[1,286],14:_e,44:Ce,60:De,89:Ee,105:Te,106:Se,109:ye,111:xe,114:Fe,115:Be,116:ve}),e(S,[2,114]),{31:[1,287],67:k,82:219,116:m,117:_,118:C},{6:11,7:12,8:d,9:l,10:o,11:y,20:17,22:18,23:19,24:20,25:21,26:22,27:L,32:[1,288],33:24,34:p,36:D,38:de,42:28,43:39,44:F,45:40,47:41,60:B,84:K,85:pe,86:Pe,87:Ge,88:Oe,89:I,102:w,105:R,106:N,109:P,111:G,113:42,114:O,115:M,116:U,121:Me,122:Ue,123:qe,124:We,125:ze},{10:ie,60:re,84:ae,92:289,105:ne,107:242,108:243,109:ue,110:oe,111:le,112:ce},{10:ie,60:re,84:ae,92:290,105:ne,107:242,108:243,109:ue,110:oe,111:le,112:ce},e(W,[2,62]),e(E,[2,33]),e(S,[2,124],{106:Ie}),e(S,[2,125],{106:Ie})],defaultActions:{},parseError:b.__name(function(f,A){if(A.recoverable)this.trace(f);else{var g=new Error(f);throw g.hash=A,g}},"parseError"),parse:b.__name(function(f){var A=this,g=[0],u=[],v=[null],t=[],Ne=this.table,s="",V=0,w1=0,R1=0,Y1=2,N1=1,j1=t.slice.call(arguments,1),q=Object.create(this.lexer),Ae={yy:{}};for(var Je in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Je)&&(Ae.yy[Je]=this.yy[Je]);q.setInput(f,Ae.yy),Ae.yy.lexer=q,Ae.yy.parser=this,typeof q.yylloc>"u"&&(q.yylloc={});var $e=q.yylloc;t.push($e);var K1=q.options&&q.options.ranges;typeof Ae.yy.parseError=="function"?this.parseError=Ae.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X1(J){g.length=g.length-2*J,v.length=v.length-J,t.length=t.length-J}b.__name(X1,"popStack");function P1(){var J=u.pop()||q.lex()||N1;return typeof J!="number"&&(J instanceof Array&&(u=J,J=u.pop()),J=A.symbols_[J]||J),J}b.__name(P1,"lex");for(var j,e1,ke,Z,t1,we={},Xe,he,G1,He;;){if(ke=g[g.length-1],this.defaultActions[ke]?Z=this.defaultActions[ke]:((j===null||typeof j>"u")&&(j=P1()),Z=Ne[ke]&&Ne[ke][j]),typeof Z>"u"||!Z.length||!Z[0]){var s1="";He=[];for(Xe in Ne[ke])this.terminals_[Xe]&&Xe>Y1&&He.push("'"+this.terminals_[Xe]+"'");q.showPosition?s1="Parse error on line "+(V+1)+`:
`+q.showPosition()+`
Expecting `+He.join(", ")+", got '"+(this.terminals_[j]||j)+"'":s1="Parse error on line "+(V+1)+": Unexpected "+(j==N1?"end of input":"'"+(this.terminals_[j]||j)+"'"),this.parseError(s1,{text:q.match,token:this.terminals_[j]||j,line:q.yylineno,loc:$e,expected:He})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ke+", token: "+j);switch(Z[0]){case 1:g.push(j),v.push(q.yytext),t.push(q.yylloc),g.push(Z[1]),j=null,e1?(j=e1,e1=null):(w1=q.yyleng,s=q.yytext,V=q.yylineno,$e=q.yylloc,R1>0&&R1--);break;case 2:if(he=this.productions_[Z[1]][1],we.$=v[v.length-he],we._$={first_line:t[t.length-(he||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(he||1)].first_column,last_column:t[t.length-1].last_column},K1&&(we._$.range=[t[t.length-(he||1)].range[0],t[t.length-1].range[1]]),t1=this.performAction.apply(we,[s,w1,V,Ae.yy,Z[1],v,t].concat(j1)),typeof t1<"u")return t1;he&&(g=g.slice(0,-1*he*2),v=v.slice(0,-1*he),t=t.slice(0,-1*he)),g.push(this.productions_[Z[1]][0]),v.push(we.$),t.push(we._$),G1=Ne[g[g.length-2]][g[g.length-1]],g.push(G1);break;case 3:return!0}}return!0},"parse")};Ze.lexer=(function(){return{EOF:1,parseError:b.__name(function(f,A){if(this.yy.parser)this.yy.parser.parseError(f,A);else throw new Error(f)},"parseError"),setInput:b.__name(function(c,f){return this.yy=f||this.yy||{},this._input=c,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:b.__name(function(){var c=this._input[0];return this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c,c.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),c},"input"),unput:b.__name(function(c){var f=c.length,A=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var g=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),A.length-1&&(this.yylineno-=A.length-1);var u=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:A?(A.length===g.length?this.yylloc.first_column:0)+g[g.length-A.length].length-A[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},"unput"),more:b.__name(function(){return this._more=!0,this},"more"),reject:b.__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).
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:b.__name(function(c){this.unput(this.match.slice(c))},"less"),pastInput:b.__name(function(){var c=this.matched.substr(0,this.matched.length-this.match.length);return(c.length>20?"...":"")+c.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:b.__name(function(){var c=this.match;return c.length<20&&(c+=this._input.substr(0,20-c.length)),(c.substr(0,20)+(c.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:b.__name(function(){var c=this.pastInput(),f=new Array(c.length+1).join("-");return c+this.upcomingInput()+`
`+f+"^"},"showPosition"),test_match:b.__name(function(c,f){var A,g,u;if(this.options.backtrack_lexer&&(u={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&&(u.yylloc.range=this.yylloc.range.slice(0))),g=c[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+c[0].length},this.yytext+=c[0],this.match+=c[0],this.matches=c,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(c[0].length),this.matched+=c[0],A=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),A)return A;if(this._backtrack){for(var v in u)this[v]=u[v];return!1}return!1},"test_match"),next:b.__name(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var c,f,A,g;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),v=0;v<u.length;v++)if(A=this._input.match(this.rules[u[v]]),A&&(!f||A[0].length>f[0].length)){if(f=A,g=v,this.options.backtrack_lexer){if(c=this.test_match(A,u[v]),c!==!1)return c;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(c=this.test_match(f,u[g]),c!==!1?c:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:b.__name(function(){var f=this.next();return f||this.lex()},"lex"),begin:b.__name(function(f){this.conditionStack.push(f)},"begin"),popState:b.__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:b.__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:b.__name(function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},"topState"),pushState:b.__name(function(f){this.begin(f)},"pushState"),stateStackSize:b.__name(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:b.__name(function(f,A,g,u){switch(g){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;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 this.pushState("shapeData"),A.yytext="",40;case 8:return this.pushState("shapeDataStr"),40;case 9:return this.popState(),40;case 10:return A.yytext=A.yytext.replace(/\n\s*/g,"<br/>"),40;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 17:this.popState();break;case 18:return 96;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;case 35:return f.lex.firstGraph()&&this.begin("dir"),12;case 36:return f.lex.firstGraph()&&this.begin("dir"),12;case 37:return f.lex.firstGraph()&&this.begin("dir"),12;case 38:return f.lex.firstGraph()&&this.begin("dir"),12;case 39:return 27;case 40:return 32;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return 98;case 45:return this.popState(),13;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return this.popState(),14;case 50:return this.popState(),14;case 51:return this.popState(),14;case 52:return this.popState(),14;case 53:return this.popState(),14;case 54:return this.popState(),14;case 55:return this.popState(),14;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 124;case 60:return 125;case 61:return 78;case 62:return 105;case 63:return 111;case 64:return 46;case 65:return 60;case 66:return 44;case 67:return 8;case 68:return 106;case 69:return 115;case 70:return this.popState(),77;case 71:return this.pushState("edgeText"),75;case 72:return 119;case 73:return this.popState(),77;case 74:return this.pushState("thickEdgeText"),75;case 75:return 119;case 76:return this.popState(),77;case 77:return this.pushState("dottedEdgeText"),75;case 78:return 119;case 79:return 77;case 80:return this.popState(),53;case 81:return"TEXT";case 82:return this.pushState("ellipseText"),52;case 83:return this.popState(),55;case 84:return this.pushState("text"),54;case 85:return this.popState(),57;case 86:return this.pushState("text"),56;case 87:return 58;case 88:return this.pushState("text"),67;case 89:return this.popState(),64;case 90:return this.pushState("text"),63;case 91:return this.popState(),49;case 92:return this.pushState("text"),48;case 93:return this.popState(),69;case 94:return this.popState(),71;case 95:return 117;case 96:return this.pushState("trapText"),68;case 97:return this.pushState("trapText"),70;case 98:return 118;case 99:return 67;case 100:return 90;case 101:return"SEP";case 102:return 89;case 103:return 115;case 104:return 111;case 105:return 44;case 106:return 109;case 107:return 114;case 108:return 116;case 109:return this.popState(),62;case 110:return this.pushState("text"),62;case 111:return this.popState(),51;case 112:return this.pushState("text"),50;case 113:return this.popState(),31;case 114:return this.pushState("text"),29;case 115:return this.popState(),66;case 116:return this.pushState("text"),65;case 117:return"TEXT";case 118:return"QUOTE";case 119:return 9;case 120:return 10;case 121:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?