import{m as Xe}from"./chunk-6EQESGSB-Baxm-pBP.js";import{y as ze}from"./chunk-T244DUNM-CC5giBJ1.js";import{m as u,H as Ze,U as Je,G as et,$ as tt,j as st,e as it,a as Ne,p as qe,N as rt,n as nt,V as at,c as lt,d as ct}from"./mermaid.esm.min-BFkmcgl4.js";import"./app-DnSLvtbI.js";var Ae=(function(){var e=u(function(F,i,n,s){for(n=n||{},s=F.length;s--;n[F[s]]=i);return n},"o"),l=[1,3],h=[1,4],o=[1,5],r=[1,6],c=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],m=[1,22],d=[2,7],S=[1,26],k=[1,27],N=[1,28],q=[1,29],A=[1,33],C=[1,34],v=[1,35],L=[1,36],O=[1,37],$=[1,38],x=[1,24],w=[1,31],D=[1,32],M=[1,30],E=[1,39],R=[1,40],p=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],U=[1,61],z=[89,90],Ce=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],pe=[27,29],ve=[1,70],Le=[1,71],Oe=[1,72],$e=[1,73],xe=[1,74],we=[1,75],De=[1,76],ee=[1,83],V=[1,80],te=[1,84],se=[1,85],ie=[1,86],re=[1,87],ne=[1,88],ae=[1,89],le=[1,90],ce=[1,91],oe=[1,92],Ee=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Y=[63,64],Me=[1,101],Fe=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],I=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],B=[1,110],H=[1,106],Q=[1,107],K=[1,108],j=[1,109],W=[1,111],he=[1,116],ue=[1,117],ye=[1,114],me=[1,115],Se={trace:u(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:u(function(F,i,n,s,y,t,g){var a=t.length-1;switch(y){case 4:this.$=t[a].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[a].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[a-3],t[a-4]);break;case 22:s.addRequirement(t[a-5],t[a-6]),s.setClass([t[a-5]],t[a-3]);break;case 23:s.setNewReqId(t[a-2]);break;case 24:s.setNewReqText(t[a-2]);break;case 25:s.setNewReqRisk(t[a-2]);break;case 26:s.setNewReqVerifyMethod(t[a-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[a-3]);break;case 43:s.addElement(t[a-5]),s.setClass([t[a-5]],t[a-3]);break;case 44:s.setNewElementType(t[a-2]);break;case 45:s.setNewElementDocRef(t[a-2]);break;case 48:s.addRelationship(t[a-2],t[a],t[a-4]);break;case 49:s.addRelationship(t[a-2],t[a-4],t[a]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[a-2],s.defineClass(t[a-1],t[a]);break;case 58:s.setClass(t[a-1],t[a]);break;case 59:s.setClass([t[a-2]],t[a]);break;case 60:case 62:this.$=[t[a]];break;case 61:case 63:this.$=t[a-2].concat([t[a]]);break;case 64:this.$=t[a-2],s.setCssStyle(t[a-1],t[a]);break;case 65:this.$=[t[a]];break;case 66:t[a-2].push(t[a]),this.$=t[a-2];break;case 68:this.$=t[a-1]+t[a];break}},"anonymous"),table:[{3:1,4:2,6:l,9:h,11:o,13:r},{1:[3]},{3:8,4:2,5:[1,7],6:l,9:h,11:o,13:r},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(c,[2,6]),{3:12,4:2,6:l,9:h,11:o,13:r},{1:[2,2]},{4:17,5:m,7:13,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},e(c,[2,4]),e(c,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:m,7:42,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:43,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:44,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:45,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:46,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:47,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:48,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:49,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{4:17,5:m,7:50,8:d,9:h,11:o,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:S,22:k,23:N,24:q,25:23,33:25,41:A,42:C,43:v,44:L,45:O,46:$,54:x,72:w,74:D,77:M,89:E,90:R},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(p,[2,17]),e(p,[2,18]),e(p,[2,19]),e(p,[2,20]),{30:60,33:62,75:U,89:E,90:R},{30:63,33:62,75:U,89:E,90:R},{30:64,33:62,75:U,89:E,90:R},e(z,[2,29]),e(z,[2,30]),e(z,[2,31]),e(z,[2,32]),e(z,[2,33]),e(z,[2,34]),e(Ce,[2,81]),e(Ce,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(pe,[2,79]),e(pe,[2,80]),{27:[1,67],29:[1,68]},e(pe,[2,85]),e(pe,[2,86]),{62:69,65:ve,66:Le,67:Oe,68:$e,69:xe,70:we,71:De},{62:77,65:ve,66:Le,67:Oe,68:$e,69:xe,70:we,71:De},{30:78,33:62,75:U,89:E,90:R},{73:79,75:ee,76:V,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(Ee,[2,60]),e(Ee,[2,62]),{73:93,75:ee,76:V,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},{30:94,33:62,75:U,76:V,89:E,90:R},{5:[1,95]},{30:96,33:62,75:U,89:E,90:R},{5:[1,97]},{30:98,33:62,75:U,89:E,90:R},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(p,[2,59],{76:V}),e(p,[2,64],{76:Me}),{33:103,75:[1,102],89:E,90:R},e(Fe,[2,65],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),e(I,[2,67]),e(I,[2,69]),e(I,[2,70]),e(I,[2,71]),e(I,[2,72]),e(I,[2,73]),e(I,[2,74]),e(I,[2,75]),e(I,[2,76]),e(I,[2,77]),e(I,[2,78]),e(p,[2,57],{76:Me}),e(p,[2,58],{76:V}),{5:B,28:105,31:H,34:Q,36:K,38:j,40:W},{27:[1,112],76:V},{5:he,40:ue,56:113,57:ye,59:me},{27:[1,118],76:V},{33:119,89:E,90:R},{33:120,89:E,90:R},{75:ee,78:121,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(Ee,[2,61]),e(Ee,[2,63]),e(I,[2,68]),e(p,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:H,34:Q,36:K,38:j,40:W},e(p,[2,28]),{5:[1,127]},e(p,[2,42]),{32:[1,128]},{32:[1,129]},{5:he,40:ue,56:130,57:ye,59:me},e(p,[2,47]),{5:[1,131]},e(p,[2,48]),e(p,[2,49]),e(Fe,[2,66],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),{33:132,89:E,90:R},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(p,[2,27]),{5:B,28:145,31:H,34:Q,36:K,38:j,40:W},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(p,[2,46]),{5:he,40:ue,56:152,57:ye,59:me},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(p,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(p,[2,43]),{5:B,28:159,31:H,34:Q,36:K,38:j,40:W},{5:B,28:160,31:H,34:Q,36:K,38:j,40:W},{5:B,28:161,31:H,34:Q,36:K,38:j,40:W},{5:B,28:162,31:H,34:Q,36:K,38:j,40:W},{5:he,40:ue,56:163,57:ye,59:me},{5:he,40:ue,56:164,57:ye,59:me},e(p,[2,23]),e(p,[2,24]),e(p,[2,25]),e(p,[2,26]),e(p,[2,44]),e(p,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:u(function(F,i){if(i.recoverable)this.trace(F);else{var n=new Error(F);throw n.hash=i,n}},"parseError"),parse:u(function(F){var i=this,n=[0],s=[],y=[null],t=[],g=this.table,a="",de=0,Pe=0,Qe=0,Ke=2,Ue=1,je=t.slice.call(arguments,1),f=Object.create(this.lexer),G={yy:{}};for(var ge in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ge)&&(G.yy[ge]=this.yy[ge]);f.setInput(F,G.yy),G.yy.lexer=f,G.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var be=f.yylloc;t.push(be);var We=f.options&&f.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ge(b){n.length=n.length-2*b,y.length=y.length-b,t.length=t.length-b}u(Ge,"popStack");function Ve(){var b;return b=s.pop()||f.lex()||Ue,typeof b!="number"&&(b instanceof Array&&(s=b,b=s.pop()),b=i.symbols_[b]||b),b}u(Ve,"lex");for(var _,Ie,X,T,pt,Te,Z={},fe,P,Ye,_e;;){if(X=n[n.length-1],this.defaultActions[X]?T=this.defaultActions[X]:((_===null||typeof _>"u")&&(_=Ve()),T=g[X]&&g[X][_]),typeof T>"u"||!T.length||!T[0]){var ke="";_e=[];for(fe in g[X])this.terminals_[fe]&&fe>Ke&&_e.push("'"+this.terminals_[fe]+"'");f.showPosition?ke="Parse error on line "+(de+1)+`: `+f.showPosition()+` Expecting `+_e.join(", ")+", got '"+(this.terminals_[_]||_)+"'":ke="Parse error on line "+(de+1)+": Unexpected "+(_==Ue?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(ke,{text:f.match,token:this.terminals_[_]||_,line:f.yylineno,loc:be,expected:_e})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+X+", token: "+_);switch(T[0]){case 1:n.push(_),y.push(f.yytext),t.push(f.yylloc),n.push(T[1]),_=null,Ie?(_=Ie,Ie=null):(Pe=f.yyleng,a=f.yytext,de=f.yylineno,be=f.yylloc,Qe>0);break;case 2:if(P=this.productions_[T[1]][1],Z.$=y[y.length-P],Z._$={first_line:t[t.length-(P||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(P||1)].first_column,last_column:t[t.length-1].last_column},We&&(Z._$.range=[t[t.length-(P||1)].range[0],t[t.length-1].range[1]]),Te=this.performAction.apply(Z,[a,Pe,de,G.yy,T[1],y,t].concat(je)),typeof Te<"u")return Te;P&&(n=n.slice(0,-1*P*2),y=y.slice(0,-1*P),t=t.slice(0,-1*P)),n.push(this.productions_[T[1]][0]),y.push(Z.$),t.push(Z._$),Ye=g[n[n.length-2]][n[n.length-1]],n.push(Ye);break;case 3:return!0}}return!0},"parse")},He=(function(){var F={EOF:1,parseError:u(function(i,n){if(this.yy.parser)this.yy.parser.parseError(i,n);else throw new Error(i)},"parseError"),setInput:u(function(i,n){return this.yy=n||this.yy||{},this._input=i,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:u(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:u(function(i){var n=i.length,s=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var y=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),s.length-1&&(this.yylineno-=s.length-1);var t=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:s?(s.length===y.length?this.yylloc.first_column:0)+y[y.length-s.length].length-s[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[t[0],t[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:u(function(){return this._more=!0,this},"more"),reject:u(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:u(function(i){this.unput(this.match.slice(i))},"less"),pastInput:u(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:u(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:u(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` `+n+"^"},"showPosition"),test_match:u(function(i,n){var s,y,t;if(this.options.backtrack_lexer&&(t={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&&(t.yylloc.range=this.yylloc.range.slice(0))),y=i[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,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(i[0].length),this.matched+=i[0],s=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var g in t)this[g]=t[g];return!1}return!1},"test_match"),next:u(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,s,y;this._more||(this.yytext="",this.match="");for(var t=this._currentRules(),g=0;gn[0].length)){if(n=s,y=g,this.options.backtrack_lexer){if(i=this.test_match(s,t[g]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,t[y]),i!==!1?i:!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:u(function(){var i=this.next();return i||this.lex()},"lex"),begin:u(function(i){this.conditionStack.push(i)},"begin"),popState:u(function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:u(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:u(function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},"topState"),pushState:u(function(i){this.begin(i)},"pushState"),stateStackSize:u(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:u(function(i,n,s,y){switch(s){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;case 60:return this.begin("style"),74;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return n.yytext=n.yytext.trim(),89;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?: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,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return F})();Se.lexer=He;function Re(){this.yy={}}return u(Re,"Parser"),Re.prototype=Se,Se.Parser=Re,new Re})();Ae.parser=Ae;var ot=Ae,J,ht=(J=class{constructor(){this.relations=[],this.latestRequirement=this.getInitialRequirement(),this.requirements=new Map,this.latestElement=this.getInitialElement(),this.elements=new Map,this.classes=new Map,this.direction="TB",this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},this.setAccTitle=Ze,this.getAccTitle=Je,this.setAccDescription=et,this.getAccDescription=tt,this.setDiagramTitle=st,this.getDiagramTitle=it,this.getConfig=u(()=>Ne().requirement,"getConfig"),this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}getDirection(){return this.direction}setDirection(l){this.direction=l}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(l,h){return this.requirements.has(l)||this.requirements.set(l,{name:l,type:h,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(l)}getRequirements(){return this.requirements}setNewReqId(l){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=l)}setNewReqText(l){this.latestRequirement!==void 0&&(this.latestRequirement.text=l)}setNewReqRisk(l){this.latestRequirement!==void 0&&(this.latestRequirement.risk=l)}setNewReqVerifyMethod(l){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=l)}addElement(l){return this.elements.has(l)||(this.elements.set(l,{name:l,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),qe.info("Added new element: ",l)),this.resetLatestElement(),this.elements.get(l)}getElements(){return this.elements}setNewElementType(l){this.latestElement!==void 0&&(this.latestElement.type=l)}setNewElementDocRef(l){this.latestElement!==void 0&&(this.latestElement.docRef=l)}addRelationship(l,h,o){this.relations.push({type:l,src:h,dst:o})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,rt()}setCssStyle(l,h){for(let o of l){let r=this.requirements.get(o)??this.elements.get(o);if(!h||!r)return;for(let c of h)c.includes(",")?r.cssStyles.push(...c.split(",")):r.cssStyles.push(c)}}setClass(l,h){for(let o of l){let r=this.requirements.get(o)??this.elements.get(o);if(r)for(let c of h){r.classes.push(c);let m=this.classes.get(c)?.styles;m&&r.cssStyles.push(...m)}}}defineClass(l,h){for(let o of l){let r=this.classes.get(o);r===void 0&&(r={id:o,styles:[],textStyles:[]},this.classes.set(o,r)),h&&h.forEach(function(c){if(/color/.exec(c)){let m=c.replace("fill","bgFill");r.textStyles.push(m)}r.styles.push(c)}),this.requirements.forEach(c=>{c.classes.includes(o)&&c.cssStyles.push(...h.flatMap(m=>m.split(",")))}),this.elements.forEach(c=>{c.classes.includes(o)&&c.cssStyles.push(...h.flatMap(m=>m.split(",")))})}}getClasses(){return this.classes}getData(){let l=Ne(),h=[],o=[];for(let r of this.requirements.values()){let c=r;c.id=r.name,c.cssStyles=r.cssStyles,c.cssClasses=r.classes.join(" "),c.shape="requirementBox",c.look=l.look,h.push(c)}for(let r of this.elements.values()){let c=r;c.shape="requirementBox",c.look=l.look,c.id=r.name,c.cssStyles=r.cssStyles,c.cssClasses=r.classes.join(" "),h.push(c)}for(let r of this.relations){let c=0,m=r.type===this.Relationships.CONTAINS,d={id:`${r.src}-${r.dst}-${c}`,start:this.requirements.get(r.src)?.name??this.elements.get(r.src)?.name,end:this.requirements.get(r.dst)?.name??this.elements.get(r.dst)?.name,label:`<<${r.type}>>`,classes:"relationshipLine",style:["fill:none",m?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:m?"normal":"dashed",arrowTypeStart:m?"requirement_contains":"",arrowTypeEnd:m?"":"requirement_arrow",look:l.look};o.push(d),c++}return{nodes:h,edges:o,other:{},config:l,direction:this.getDirection()}}},u(J,"RequirementDB"),J),ut=u(e=>` marker { fill: ${e.relationColor}; stroke: ${e.relationColor}; } marker.cross { stroke: ${e.lineColor}; } svg { font-family: ${e.fontFamily}; font-size: ${e.fontSize}; } .reqBox { fill: ${e.requirementBackground}; fill-opacity: 1.0; stroke: ${e.requirementBorderColor}; stroke-width: ${e.requirementBorderSize}; } .reqTitle, .reqLabel{ fill: ${e.requirementTextColor}; } .reqLabelBox { fill: ${e.relationLabelBackground}; fill-opacity: 1.0; } .req-title-line { stroke: ${e.requirementBorderColor}; stroke-width: ${e.requirementBorderSize}; } .relationshipLine { stroke: ${e.relationColor}; stroke-width: 1; } .relationshipLabel { fill: ${e.relationLabelColor}; } .divider { stroke: ${e.nodeBorder}; stroke-width: 1; } .label { font-family: ${e.fontFamily}; color: ${e.nodeTextColor||e.textColor}; } .label text,span { fill: ${e.nodeTextColor||e.textColor}; color: ${e.nodeTextColor||e.textColor}; } .labelBkg { background-color: ${e.edgeLabelBackground}; } `,"getStyles"),yt=ut,Be={};nt(Be,{draw:()=>mt});var mt=u(async function(e,l,h,o){qe.info("REF0:"),qe.info("Drawing requirement diagram (unified)",l);let{securityLevel:r,state:c,layout:m}=Ne(),d=o.db.getData(),S=Xe(l,r);d.type=o.type,d.layoutAlgorithm=at(m),d.nodeSpacing=c?.nodeSpacing??50,d.rankSpacing=c?.rankSpacing??50,d.markers=["requirement_contains","requirement_arrow"],d.diagramId=l,await lt(d,S),ct.insertTitle(S,"requirementDiagramTitleText",c?.titleTopMargin??25,o.db.getDiagramTitle()),ze(S,8,"requirementDiagram",c?.useMaxWidth??!0)},"draw"),_t={parser:ot,get db(){return new ht},renderer:Be,styles:yt};export{_t as diagram};