2024-08-29 17:38:14 +08:00
import { _ as r , d as ve , s as Fe , g as De , c as Pe , b as Ye , l as xe , r as Ue , j as ce , k as Be , H as Qe , e as Te } from "./index-DUFVDbsz.js" ; import { G as He } from "./graph-ClzNKBFA.js" ; import { l as We } from "./layout-BiYsbmrU.js" ; import "./reduce-BwSmb_Qa.js" ; import "./min-BaNb8v0U.js" ; var he = function ( ) { var e = r ( function ( $ , i , a , l ) { for ( a = a || { } , l = $ . length ; l -- ; a [ $ [ l ] ] = i ) ; return a } , "o" ) , t = [ 1 , 3 ] , c = [ 1 , 4 ] , d = [ 1 , 5 ] , u = [ 1 , 6 ] , p = [ 5 , 6 , 8 , 9 , 11 , 13 , 31 , 32 , 33 , 34 , 35 , 36 , 44 , 62 , 63 ] , y = [ 1 , 18 ] , h = [ 2 , 7 ] , o = [ 1 , 22 ] , g = [ 1 , 23 ] , R = [ 1 , 24 ] , I = [ 1 , 25 ] , b = [ 1 , 26 ] , w = [ 1 , 27 ] , q = [ 1 , 20 ] , v = [ 1 , 28 ] , A = [ 1 , 29 ] , F = [ 62 , 63 ] , pe = [ 5 , 8 , 9 , 11 , 13 , 31 , 32 , 33 , 34 , 35 , 36 , 44 , 51 , 53 , 62 , 63 ] , fe = [ 1 , 47 ] , ye = [ 1 , 48 ] , _e = [ 1 , 49 ] , ge = [ 1 , 50 ] , Ee = [ 1 , 51 ] , Re = [ 1 , 52 ] , me = [ 1 , 53 ] , O = [ 53 , 54 ] , D = [ 1 , 64 ] , P = [ 1 , 60 ] , Y = [ 1 , 61 ] , U = [ 1 , 62 ] , B = [ 1 , 63 ] , Q = [ 1 , 65 ] , j = [ 1 , 69 ] , X = [ 1 , 70 ] , J = [ 1 , 67 ] , Z = [ 1 , 68 ] , S = [ 5 , 8 , 9 , 11 , 13 , 31 , 32 , 33 , 34 , 35 , 36 , 44 , 62 , 63 ] , ne = { trace : r ( 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 , requirementType : 17 , requirementName : 18 , STRUCT _START : 19 , requirementBody : 20 , ID : 21 , COLONSEP : 22 , id : 23 , TEXT : 24 , text : 25 , RISK : 26 , riskLevel : 27 , VERIFYMTHD : 28 , verifyType : 29 , STRUCT _STOP : 30 , REQUIREMENT : 31 , FUNCTIONAL _REQUIREMENT : 32 , INTERFACE _REQUIREMENT : 33 , PERFORMANCE _REQUIREMENT : 34 , PHYSICAL _REQUIREMENT : 35 , DESIGN _CONSTRAINT : 36 , LOW _RISK : 37 , MED _RISK : 38 , HIGH _RISK : 39 , VERIFY _ANALYSIS : 40 , VERIFY _DEMONSTRATION : 41 , VERIFY _INSPECTION : 42 , VERIFY _TEST : 43 , ELEMENT : 44 , elementName : 45 , elementBody : 46 , TYPE : 47 , type : 48 , DOCREF : 49 , ref : 50 , END _ARROW _L : 51 , relationship : 52 , LINE : 53 , END _ARROW _R : 54 , CONTAINS : 55 , COPIES : 56 , DERIVES : 57 , SATISFIES : 58 , VERIFIES : 59 , REFINES : 60 , TRACES : 61 , unqString : 62 , qString : 63 , $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" , 19 : "STRUCT_START" , 21 : "ID" , 22 : "COLONSEP" , 24 : "TEXT" , 26 : "RISK" , 28 : "VERIFYMTHD" , 30 : "STRUCT_STOP" , 31 : "REQUIREMENT" , 32 : "FUNCTIONAL_REQUIREMENT" , 33 : "INTERFACE_REQUIREMENT" , 34 : "PERFORMANCE_REQUIREMENT" , 35 : "PHYSICAL_REQUIREMENT" , 36 : "DESIGN_CONSTRAINT" , 37 : "LOW_RISK" , 38 : "MED_RISK" , 39 : "HIGH_RISK" , 40 : "VERIFY_ANALYSIS" , 41 : "VERIFY_DEMONSTRATION" , 42 : "VERIFY_INSPECTION" , 43 : "VERIFY_TEST" , 44 : "ELEMENT" , 47 : "TYPE" , 49 : "DOCREF" , 51 : "END_ARROW_L" , 53 : "LINE" , 54 : "END_ARROW_R" , 55 : "CONTAINS" , 56 : "COPIES" , 57 : "DERIVES" , 58 : "SATISFIES" , 59 : "VERIFIES" , 60 : "REFINES" , 61 : "TRACES" , 62 : "unqString" , 63 : "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 ] , [ 14 , 5 ] , [ 20 , 5 ] , [ 20 , 5 ] , [ 20 , 5 ] , [ 20 , 5 ] , [ 20 , 2 ] , [ 20 , 1 ] , [ 17 , 1 ] , [ 17 , 1 ] , [ 17 , 1 ] , [ 17 , 1 ] , [ 17 , 1 ] , [ 17 , 1 ] , [ 27 , 1 ] , [ 27 , 1 ] , [ 27 , 1 ] , [ 29 , 1 ] , [ 29 , 1 ] , [ 29 , 1 ] , [ 29 , 1 ] , [ 15 , 5 ] , [ 46 , 5 ] , [ 46 , 5 ] , [ 46 , 2 ] , [ 46 , 1 ] , [ 16 , 5 ] , [ 16 , 5 ] , [ 52 , 1 ] , [ 52 , 1 ] , [ 52 , 1 ] , [ 52 , 1 ] , [ 52 , 1 ] , [ 52 , 1 ] , [ 52 , 1 ] , [ 18 , 1 ] , [ 18 , 1 ] , [ 23 , 1 ] , [ 23 , 1 ] , [ 25 , 1 ] , [ 25 , 1 ] , [ 45 , 1 ] , [ 45 , 1 ] , [ 48 , 1 ] , [ 48 , 1 ] , [ 50 , 1 ] , [ 50 , 1 ] ] , performAction : r ( function ( i , a , l , n , f , s , K ) { var E = s . length - 1 ; switch ( f ) { case 4 : this . $ = s [ E ] . trim ( ) , n . setAccTitle ( this . $ ) ; break ; case 5 : case 6 : this . $ = s [ E ] . trim ( ) , n . setAccDescription ( this . $ ) ; break ; case 7 : this . $ = [ ] ; break ; case 13 : n . addRequirement ( s [ E - 3 ] , s [ E - 4 ] ) ; break ; case 14 : n . setNewReqId ( s [ E - 2 ] ) ; break ; case 15 : n . setNewReqText ( s [ E - 2 ] ) ; break ; case 16 : n . setNewReqRisk ( s [ E - 2 ] ) ; break ; case 17 : n . setNewReqVerifyMethod ( s [ E - 2 ] ) ; break ; case 20 : this . $ = n . RequirementType . REQUIREMENT ; break ; case 21 : this . $ = n . RequirementType . FUNCTIONAL _REQUIREMENT ; break ; case 22 : this . $ = n . RequirementType . INTERFACE _REQUIREMENT ; break ; case 23 : this . $ = n . RequirementType . PERFORMANCE _REQUIREMENT ; break ; case 24 : this . $ = n . RequirementType . PHYSICAL _REQUIREMENT ; break ; case 25 : this . $ = n . RequirementType . DESIGN _CONSTRAINT ; break ; case 26 : this . $ = n . RiskLevel . LOW _RISK ; break ; case 27 : this . $ = n . RiskLevel . MED _RISK ; break ; case 28 : this . $ = n . RiskLevel . HIGH _RISK ; break ; case 29 : this . $ = n . VerifyType . VERIFY _ANALYSIS ; break ; case 30 : this . $ = n . VerifyType . VERIFY _DEMONSTRATION ; break ; case 31 : this . $ = n . VerifyType . VERIFY _INSPECTION ; break ; case 32 : this . $ = n . VerifyType . VERIFY _TEST ; break ; case 33 : n . addElement ( s [ E - 3 ] ) ; break ; case 34 : n . setNewElementType ( s [ E - 2 ] ) ; break ; case 35 : n . setNewElementDocRef ( s [ E - 2 ] ) ; br
2024-08-27 22:31:52 +08:00
` +m.showPosition()+ `
Expecting ` +re.join(", ")+", got '"+(this.terminals_[k]||k)+"'":oe="Parse error on line "+(te+1)+": Unexpected "+(k==be?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(oe,{text:m.match,token:this.terminals_[k]||k,line:m.yylineno,loc:ae,expected:re})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+k);switch(x[0]){case 1:l.push(k),f.push(m.yytext),s.push(m.yylloc),l.push(x[1]),k=null,Ie=m.yyleng,E=m.yytext,te=m.yylineno,ae=m.yylloc;break;case 2:if(V=this.productions_[x[1]][1],H. $ =f[f.length-V],H._ $ ={first_line:s[s.length-(V||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(V||1)].first_column,last_column:s[s.length-1].last_column},Ce&&(H._ $ .range=[s[s.length-(V||1)].range[0],s[s.length-1].range[1]]),le=this.performAction.apply(H,[E,Ie,te,C.yy,x[1],f,s].concat(Oe)),typeof le<"u")return le;V&&(l=l.slice(0,-1*V*2),f=f.slice(0,-1*V),s=s.slice(0,-1*V)),l.push(this.productions_[x[1]][0]),f.push(H. $ ),s.push(H._ $ ),ke=K[l[l.length-2]][l[l.length-1]],l.push(ke);break;case 3:return!0}}return!0},"parse")}, $ e=function(){var $ ={EOF:1,parseError:r(function(a,l){if(this.yy.parser)this.yy.parser.parseError(a,l);else throw new Error(a)},"parseError"),setInput:r(function(i,a){return this.yy=a||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:r(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var a=i.match(/(?: \r \n ?| \n ).*/g);return a?(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:r(function(i){var a=i.length,l=i.split(/(?: \r \n ?| \n )/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var n=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),l.length-1&&(this.yylineno-=l.length-1);var f=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:l?(l.length===n.length?this.yylloc.first_column:0)+n[n.length-l.length].length-l[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:r(function(){return this._more=!0,this},"more"),reject:r(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:r(function(i){this.unput(this.match.slice(i))},"less"),pastInput:r(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:r(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:r(function(){var i=this.pastInput(),a=new Array(i.length+1).join("-");return i+this.upcomingInput()+ `
` +a+"^"},"showPosition"),test_match:r(function(i,a){var l,n,f;if(this.options.backtrack_lexer&&(f={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&&(f.yylloc.range=this.yylloc.range.slice(0))),n=i[0].match(/(?: \r \n ?| \n ).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.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],l=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var s in f)this[s]=f[s];return!1}return!1},"test_match"),next:r(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,a,l,n;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),s=0;s<f.length;s++)if(l=this._input.match(this.rules[f[s]]),l&&(!a||l[0].length>a[0].length)){if(a=l,n=s,this.options.backtrack_lexer){if(i=this.test_match(l,f[s]),i!==!1)return i;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(i=this.test_match(a,f[n]),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:r(function(){var a=this.next();return a||this.lex()},"lex"),begin:r(function(a){this.conditionStack.push(a)},"begin"),popState:r(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:r(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:r(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:r(function(a){this.begin(a)},"pushState"),stateStackSize:r(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:r(function(a,l,n,f){switch(n){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 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return l.yytext=l.yytext.trim(),62}},"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,/^(?:( \r ? \n )+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?: $ )/i,/^(?:requirementDiagram \b )/i,/^(?: \{ )/i,/^(?: \} )/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,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[ \w ][^ \r \n \{ \< \> \- \= ]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],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,50],inclusive:!0}}};return $ }();ne.lexer= $ e;function ee(){this.yy={}}return r(ee,"Parser"),ee.prototype=ne,ne.Parser=ee,new ee}();he.parser=he;var Ke=he,de=[],T={},G=new Map,L={},z=new Map,Ge={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},ze={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},je={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Xe={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINE
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 } ;
}
` ,"getStyles"),pt=dt,ue={CONTAINS:"contains",ARROW:"arrow"},ft=r((e,t)=>{let c=e.append("defs").append("marker").attr("id",ue.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");c.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),c.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),c.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",ue.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d", ` M0 , 0
L$ { t . line _height } , $ { t . line _height / 2 }
M$ { t . line _height } , $ { t . line _height / 2 }
L0 , $ { t . line _height } ` ).attr("stroke-width",1)},"insertLineEndings"),we={ReqMarkers:ue,insertLineEndings:ft},_={},Ne=0,Ae=r((e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",_.rect_min_width+"px").attr("height",_.rect_min_height+"px"),"newRectNode"),qe=r((e,t,c)=>{let d=_.rect_min_width/2,u=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",d).attr("y",_.rect_padding).attr("dominant-baseline","hanging"),p=0;c.forEach(g=>{p==0?u.append("tspan").attr("text-anchor","middle").attr("x",_.rect_min_width/2).attr("dy",0).text(g):u.append("tspan").attr("text-anchor","middle").attr("x",_.rect_min_width/2).attr("dy",_.line_height*.75).text(g),p++});let y=1.5*_.rect_padding,h=p*_.line_height*.75,o=y+h;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",_.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:u,y:o}},"newTitleNode"),Ve=r((e,t,c,d)=>{let u=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",_.rect_padding).attr("y",d).attr("dominant-baseline","hanging"),p=0;const y=30;let h=[];return c.forEach(o=>{let g=o.length;for(;g>y&&p<3;){let R=o.substring(0,y);o=o.substring(y,o.length),g=o.length,h[h.length]=R,p++}if(p==3){let R=h[h.length-1];h[h.length-1]=R.substring(0,R.length-4)+"..."}else h[h.length]=o;p=0}),h.forEach(o=>{u.append("tspan").attr("x",_.rect_padding).attr("dy",_.line_height).text(o)}),u},"newBodyNode"),yt=r((e,t,c,d)=>{const u=t.node().getTotalLength(),p=t.node().getPointAtLength(u*.5),y="rel"+Ne;Ne++;const o=e.append("text").attr("class","req relationshipLabel").attr("id",y).attr("x",p.x).attr("y",p.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d).node().getBBox();e.insert("rect","#"+y).attr("class","req reqLabelBox").attr("x",p.x-o.width/2).attr("y",p.y-o.height/2).attr("width",o.width).attr("height",o.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),_t=r(function(e,t,c,d,u){const p=c.edge(W(t.src),W(t.dst)),y=Qe().x(function(o){return o.x}).y(function(o){return o.y}),h=e.insert("path","#"+d).attr("class","er relationshipLine").attr("d",y(p.points)).attr("fill","none");t.type==u.db.Relationships.CONTAINS?h.attr("marker-start","url("+Te.getUrl(_.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+Te.getUrl(_.arrowMarkerAbsolute)+"#"+we.ReqMarkers.ARROW+"_line_ending)")),yt(e,h,_, ` << $ { t . type } >> ` )},"drawRelationshipFromLayout"),gt=r((e,t,c)=>{e.forEach((d,u)=>{u=W(u),xe.info("Added new requirement: ",u);const p=c.append("g").attr("id",u),y="req-"+u,h=Ae(p,y);let o=[],g=qe(p,u+"_title",[ ` << $ { d . type } >> ` , ` $ { d . name } ` ]);o.push(g.titleNode);let R=Ve(p,u+"_body",[ ` Id : $ { d . id } ` , ` Text : $ { d . text } ` , ` Risk : $ { d . risk } ` , ` Verification : $ { d . verifyMethod } ` ],g.y);o.push(R);const I=h.node().getBBox();t.setNode(u,{width:I.width,height:I.height,shape:"rect",id:u})})},"drawReqs"),Et=r((e,t,c)=>{e.forEach((d,u)=>{const p=W(u),y=c.append("g").attr("id",p),h="element-"+p,o=Ae(y,h);let g=[],R=qe(y,h+"_title",["<<Element>>", ` $ { u } ` ]);g.push(R.titleNode);let I=Ve(y,h+"_body",[ ` Type : $ { d . type || "Not Specified" } ` , ` Doc Ref : $ { d . docRef || "None" } ` ],R.y);g.push(I);const b=o.node().getBBox();t.setNode(p,{width:b.width,height:b.height,shape:"rect",id:p})})},"drawElements"),Rt=r((e,t)=>(e.forEach(function(c){let d=W(c.src),u=W(c.dst);t.setEdge(d,u,{relationship:c})}),e),"addRelationships"),mt=r(function(e,t){t.nodes().forEach(function(c){c!==void 0&&t.node(c)!==void 0&&(e.select("#"+c),e.select("#"+c).attr("transform","translate("+(t.node(c).x-t.node(c).width/2)+","+(t.node(c).y-t.node(c).height/2)+" )"))})},"adjustEntities"),W=r(e=>e.replace(/ \s /g,"").replace(/ \. /g,"_"),"elementString"),It=r((e,t,c,d)=>{_=ve().requirement;const u=_.securityLevel;let p;u==="sandbox"&&(p=ce("#i"+t));const h=(u==="sandbox"?ce(p.nodes()[0].contentDocument.body):ce("body")).select( ` [ id = '${t}' ] ` );we.insertLineEndings(h,_);const o=new He({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:_.layoutDirection,marginx:20,marginy:20,nodesep:100,edges