cc-viewer 1.6.261 → 1.6.262
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{App-Co-5BI9q.js → App-DfhQt_ed.js} +1 -1
- package/dist/assets/{MdxEditorPanel-DFNyQW6b.js → MdxEditorPanel-j9aQWwCJ.js} +1 -1
- package/dist/assets/{Mobile-DwYIskc6.js → Mobile-0ZF71DQy.js} +1 -1
- package/dist/assets/{_baseUniq-DGKwdzTD.js → _baseUniq-DiLy7vi3.js} +1 -1
- package/dist/assets/{arc-nTLBi2ib.js → arc-CAB2oIHx.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-pWWvthzV.js → architectureDiagram-Q4EWVU46-Cijl_JpW.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-CpU6v2gv.js → blockDiagram-DXYQGD6D-Bk4yWCPQ.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-zdTsx1jJ.js → c4Diagram-AHTNJAMY-Vz4JKuzi.js} +1 -1
- package/dist/assets/{channel-Cq1UANGu.js → channel-BnYKz_zI.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-D6w9m5kB.js → chunk-4BX2VUAB-DM3ZjqKX.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-DjZZc11c.js → chunk-4TB4RGXK-BTiJOoNa.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-Cw2U09Tu.js → chunk-55IACEB6-B4fMQcTE.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-Cv-G70H7.js → chunk-EDXVE4YY-B_WylnyS.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Dykxux6b.js → chunk-FMBD7UC4-Cx2lqZi9.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-Cn9oAaEC.js → chunk-OYMX7WX6-CPZm7o6V.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-CA1IccbG.js → chunk-QZHKN3VN-DuYVzv7E.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-CbReBNg5.js → chunk-YZCP3GAM-Bk3OysLK.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-CeAAXpgl.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-CeAAXpgl.js +1 -0
- package/dist/assets/clone-BcGHaFBY.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-TwxpCIwM.js → cose-bilkent-S5V4N54A-CQuaqKHt.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-CxuHKd9a.js → dagre-KV5264BT-BFdoRcuo.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-BzR9Peib.js → diagram-5BDNPKRD-ByFdSFIu.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-PWFXrQqF.js → diagram-G4DWMVQ6-C1TcKWp0.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-CqnrwtNB.js → diagram-MMDJMWI5-B5N1Sn5F.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-Do2MhBCf.js → diagram-TYMM5635-B-payI0e.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-CklZI6kO.js → erDiagram-SMLLAGMA-zziefklH.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-C_SKJN0d.js → flowDiagram-DWJPFMVM-BOSomu1b.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-ChhhqFiR.js → ganttDiagram-T4ZO3ILL-DILUsv0T.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-HarEJVSI.js → gitGraphDiagram-UUTBAWPF-BKp2DE69.js} +1 -1
- package/dist/assets/{graph-BTcI3kpi.js → graph-NObGxitU.js} +1 -1
- package/dist/assets/{index-B0NtFDg2.js → index-0aPBVZuP.js} +1 -1
- package/dist/assets/{index-B7-pqPyp.js → index-BI-0Lyyt.js} +1 -1
- package/dist/assets/{index-CQ579eP2.js → index-BbXZgnby.js} +1 -1
- package/dist/assets/{index-BG6Hzhck.js → index-Bq9Sic2n.js} +1 -1
- package/dist/assets/{index-NNx0667m.js → index-C88BDuL0.js} +1 -1
- package/dist/assets/index-DX4SlYho.js +2 -0
- package/dist/assets/{index-CF0YP7s8.js → index-PsZiLKrC.js} +1 -1
- package/dist/assets/{index-Bzp41aRh.js → index-VqFARC4A.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-DOcCtSEj.js → infoDiagram-42DDH7IO-D409o-BL.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-Crb_pmG4.js → ishikawaDiagram-UXIWVN3A-CMVPOGr3.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-BUv2Exj_.js → journeyDiagram-VCZTEJTY-Bl_5WlaZ.js} +1 -1
- package/dist/assets/{jszip.min-BuZCDHia.js → jszip.min-C2654z9i.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-DwSHz9oV.js → kanban-definition-6JOO6SKY-BfCyUP29.js} +1 -1
- package/dist/assets/{layout-Dp3N3WRT.js → layout-CgAMa0xE.js} +1 -1
- package/dist/assets/{linear-JU5ltHCp.js → linear-J1N1npGr.js} +1 -1
- package/dist/assets/{mermaid.core-f1mZHh7u.js → mermaid.core-YnqOkuoS.js} +2 -2
- package/dist/assets/{min-CDzial6q.js → min-CowkZam8.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-DnhPHplB.js → mindmap-definition-QFDTVHPH-D7yMfot2.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-dMhPj5wG.js → pieDiagram-DEJITSTG-DKUHBCwB.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-GCi1_zHo.js → quadrantDiagram-34T5L4WZ-DhRqBNfT.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-WeErs64x.js → requirementDiagram-MS252O5E-DVE3wKT7.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-BKpP6-8Q.js → sankeyDiagram-XADWPNL6-Rn_9b5V_.js} +1 -1
- package/dist/assets/seqResourceLoaders-CH1DqmCg.js +2 -0
- package/dist/assets/{seqResourceLoaders-B8CyM6Ul.css → seqResourceLoaders-DSKrKxVy.css} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-CAC5BKbx.js → sequenceDiagram-FGHM5R23-CemLRaXC.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-Cxrg604Z.js → stateDiagram-FHFEXIEX-DNT1gAty.js} +1 -1
- package/dist/assets/{stateDiagram-v2-QKLJ7IA2-DaUpf340.js → stateDiagram-v2-QKLJ7IA2-DPlMhu-M.js} +1 -1
- package/dist/assets/{timeline-definition-GMOUNBTQ-DbvXGDTU.js → timeline-definition-GMOUNBTQ-B-F8vgZN.js} +1 -1
- package/dist/assets/{vendor-antd-jGWxgt_-.js → vendor-antd-Dq3DHFa-.js} +1 -1
- package/dist/assets/{vendor-codemirror-9gysGjWj.js → vendor-codemirror-DjMkT0sn.js} +1 -1
- package/dist/assets/{vendor-mdxeditor-BFiCaYAL.js → vendor-mdxeditor-CrZ9SWce.js} +2 -2
- package/dist/assets/{vendor-qrcode-DjZ-VpGR.js → vendor-qrcode-C_77dtHg.js} +1 -1
- package/dist/assets/{vendor-virtuoso-DB1J9xKG.js → vendor-virtuoso-aMZPf2fi.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-BoIw-nWl.js → vennDiagram-DHZGUBPP-K67JHnnN.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-4PjirsHP.js → wardley-RL74JXVD-CCis01LD.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-C8RzJmfU.js → wardleyDiagram-NUSXRM2D-BjqRIOpN.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-Ct6fDXwq.js → xychartDiagram-5P7HB3ND-CaXETYTI.js} +1 -1
- package/dist/index.html +4 -4
- package/package.json +1 -1
- package/pty-manager.js +1 -1
- package/scratch-pty-manager.js +2 -2
- package/dist/assets/classDiagram-6PBFFD2Q-PgwmelQQ.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-PgwmelQQ.js +0 -1
- package/dist/assets/clone-Dnu1HdEX.js +0 -1
- package/dist/assets/index-C6MrFmhs.js +0 -2
- package/dist/assets/seqResourceLoaders-80G7f5Kr.js +0 -2
package/dist/assets/{sequenceDiagram-FGHM5R23-CAC5BKbx.js → sequenceDiagram-FGHM5R23-CemLRaXC.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _a;import{_ as __name,n as setConfig2,c as getConfig2,d as select,l as log,j as distExports,e as configureSvgSize,f as assignWithDepth_default,k as common_default,b as setAccTitle,s as setAccDescription,p as setDiagramTitle,a as getAccTitle,g as getAccDescription,q as getDiagramTitle,t as load,J as JSON_SCHEMA,y as clear,i as sanitizeText,u as utils_default,K as hasKatex,L as calculateMathMLDimensions,M as parseFontSize,Z as ZERO_WIDTH_SPACE,C as getConfig,N as getUrl,O as renderKatexSanitized}from"./mermaid.core-f1mZHh7u.js";import{a as drawBackgroundRect,b as getTextObj,g as getNoteRect,d as drawRect,e as drawEmbeddedImage,f as drawImage}from"./chunk-YZCP3GAM-CbReBNg5.js";import{I as ImperativeState}from"./chunk-QZHKN3VN-CA1IccbG.js";import"./vendor-mdxeditor-BFiCaYAL.js";import"./vendor-antd-jGWxgt_-.js";import"./vendor-codemirror-9gysGjWj.js";import"./vendor-markdown-BFrYfpb0.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,2],$V1=[1,3],$V2=[1,4],$V3=[2,4],$V4=[1,9],$V5=[1,11],$V6=[1,12],$V7=[1,14],$V8=[1,15],$V9=[1,17],$Va=[1,18],$Vb=[1,19],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,42],$Vt=[1,43],$Vu=[1,44],$Vv=[1,45],$Vw=[1,46],$Vx=[1,47],$Vy=[1,4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,49,50,51,53,54,56,61,62,63,64,73],$Vz=[1,74],$VA=[1,80],$VB=[1,81],$VC=[1,82],$VD=[1,83],$VE=[1,84],$VF=[1,85],$VG=[1,86],$VH=[1,87],$VI=[1,88],$VJ=[1,89],$VK=[1,90],$VL=[1,91],$VM=[1,92],$VN=[1,93],$VO=[1,94],$VP=[1,95],$VQ=[1,96],$VR=[1,97],$VS=[1,98],$VT=[1,99],$VU=[1,100],$VV=[1,101],$VW=[1,102],$VX=[1,103],$VY=[1,104],$VZ=[1,105],$V_=[2,78],$V$=[4,5,17,51,53,54],$V01=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],$V11=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,50,51,53,54,56,61,62,63,64,73],$V21=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,49,51,53,54,56,61,62,63,64,73],$V31=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,51,53,54,56,61,62,63,64,73],$V41=[5,52],$V51=[70,71,72,73],$V61=[1,151],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,INVALID:10,box_section:11,box_line:12,participant_statement:13,create:14,box:15,restOfLine:16,end:17,signal:18,autonumber:19,NUM:20,off:21,activate:22,actor:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,legacy_title:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,loop:37,rect:38,opt:39,alt:40,else_sections:41,par:42,par_sections:43,par_over:44,critical:45,option_sections:46,break:47,option:48,and:49,else:50,participant:51,AS:52,participant_actor:53,destroy:54,actor_with_config:55,note:56,placement:57,text2:58,over:59,actor_pair:60,links:61,link:62,properties:63,details:64,spaceList:65,",":66,left_of:67,right_of:68,signaltype:69,"+":70,"-":71,"()":72,ACTOR:73,config_object:74,CONFIG_START:75,CONFIG_CONTENT:76,CONFIG_END:77,SOLID_OPEN_ARROW:78,DOTTED_OPEN_ARROW:79,SOLID_ARROW:80,SOLID_ARROW_TOP:81,SOLID_ARROW_BOTTOM:82,STICK_ARROW_TOP:83,STICK_ARROW_BOTTOM:84,SOLID_ARROW_TOP_DOTTED:85,SOLID_ARROW_BOTTOM_DOTTED:86,STICK_ARROW_TOP_DOTTED:87,STICK_ARROW_BOTTOM_DOTTED:88,SOLID_ARROW_TOP_REVERSE:89,SOLID_ARROW_BOTTOM_REVERSE:90,STICK_ARROW_TOP_REVERSE:91,STICK_ARROW_BOTTOM_REVERSE:92,SOLID_ARROW_TOP_REVERSE_DOTTED:93,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:94,STICK_ARROW_TOP_REVERSE_DOTTED:95,STICK_ARROW_BOTTOM_REVERSE_DOTTED:96,BIDIRECTIONAL_SOLID_ARROW:97,DOTTED_ARROW:98,BIDIRECTIONAL_DOTTED_ARROW:99,SOLID_CROSS:100,DOTTED_CROSS:101,SOLID_POINT:102,DOTTED_POINT:103,TXT:104,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",10:"INVALID",14:"create",15:"box",16:"restOfLine",17:"end",19:"autonumber",20:"NUM",21:"off",22:"activate",24:"deactivate",30:"title",31:"legacy_title",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"loop",38:"rect",39:"opt",40:"alt",42:"par",44:"par_over",45:"critical",47:"break",48:"option",49:"and",50:"else",51:"participant",52:"AS",53:"participant_actor",54:"destroy",56:"note",59:"over",61:"links",62:"link",63:"properties",64:"details",66:",",67:"left_of",68:"right_of",70:"+",71:"-",72:"()",73:"ACTOR",75:"CONFIG_START",76:"CONFIG_CONTENT",77:"CONFIG_END",78:"SOLID_OPEN_ARROW",79:"DOTTED_OPEN_ARROW",80:"SOLID_ARROW",81:"SOLID_ARROW_TOP",82:"SOLID_ARROW_BOTTOM",83:"STICK_ARROW_TOP",84:"STICK_ARROW_BOTTOM",85:"SOLID_ARROW_TOP_DOTTED",86:"SOLID_ARROW_BOTTOM_DOTTED",87:"STICK_ARROW_TOP_DOTTED",88:"STICK_ARROW_BOTTOM_DOTTED",89:"SOLID_ARROW_TOP_REVERSE",90:"SOLID_ARROW_BOTTOM_REVERSE",91:"STICK_ARROW_TOP_REVERSE",92:"STICK_ARROW_BOTTOM_REVERSE",93:"SOLID_ARROW_TOP_REVERSE_DOTTED",94:"SOLID_ARROW_BOTTOM_REVERSE_DOTTED",95:"STICK_ARROW_TOP_REVERSE_DOTTED",96:"STICK_ARROW_BOTTOM_REVERSE_DOTTED",97:"BIDIRECTIONAL_SOLID_ARROW",98:"DOTTED_ARROW",99:"BIDIRECTIONAL_DOTTED_ARROW",100:"SOLID_CROSS",101:"DOTTED_CROSS",102:"SOLID_POINT",103:"DOTTED_POINT",104:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[8,1],[11,0],[11,2],[12,2],[12,1],[12,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[46,1],[46,4],[43,1],[43,4],[41,1],[41,4],[13,5],[13,3],[13,5],[13,3],[13,3],[13,5],[13,3],[13,5],[13,3],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[65,2],[65,1],[60,3],[60,1],[57,1],[57,1],[18,5],[18,5],[18,5],[18,5],[18,6],[18,4],[55,2],[74,3],[23,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[58,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 3:return yy.apply($$[$0]),$$[$0];case 4:case 10:case 8:case 9:case 14:this.$=[];break;case 5:case 11:$$[$0-1].push($$[$0]),this.$=$$[$0-1];break;case 6:case 7:case 12:case 13:case 67:this.$=$$[$0];break;case 16:$$[$0].type="createParticipant",this.$=$$[$0];break;case 17:$$[$0-1].unshift({type:"boxStart",boxData:yy.parseBoxData($$[$0-2])}),$$[$0-1].push({type:"boxEnd",boxText:$$[$0-2]}),this.$=$$[$0-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number($$[$0-2]),sequenceIndexStep:Number($$[$0-1]),sequenceVisible:!0,signalType:yy.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number($$[$0-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:yy.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:yy.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:yy.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:yy.LINETYPE.ACTIVE_START,actor:$$[$0-1].actor};break;case 24:this.$={type:"activeEnd",signalType:yy.LINETYPE.ACTIVE_END,actor:$$[$0-1].actor};break;case 30:yy.setDiagramTitle($$[$0].substring(6)),this.$=$$[$0].substring(6);break;case 31:yy.setDiagramTitle($$[$0].substring(7)),this.$=$$[$0].substring(7);break;case 32:this.$=$$[$0].trim(),yy.setAccTitle(this.$);break;case 33:case 34:this.$=$$[$0].trim(),yy.setAccDescription(this.$);break;case 35:$$[$0-1].unshift({type:"loopStart",loopText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.LOOP_START}),$$[$0-1].push({type:"loopEnd",loopText:$$[$0-2],signalType:yy.LINETYPE.LOOP_END}),this.$=$$[$0-1];break;case 36:$$[$0-1].unshift({type:"rectStart",color:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.RECT_START}),$$[$0-1].push({type:"rectEnd",color:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.RECT_END}),this.$=$$[$0-1];break;case 37:$$[$0-1].unshift({type:"optStart",optText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.OPT_START}),$$[$0-1].push({type:"optEnd",optText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.OPT_END}),this.$=$$[$0-1];break;case 38:$$[$0-1].unshift({type:"altStart",altText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.ALT_START}),$$[$0-1].push({type:"altEnd",signalType:yy.LINETYPE.ALT_END}),this.$=$$[$0-1];break;case 39:$$[$0-1].unshift({type:"parStart",parText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.PAR_START}),$$[$0-1].push({type:"parEnd",signalType:yy.LINETYPE.PAR_END}),this.$=$$[$0-1];break;case 40:$$[$0-1].unshift({type:"parStart",parText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.PAR_OVER_START}),$$[$0-1].push({type:"parEnd",signalType:yy.LINETYPE.PAR_END}),this.$=$$[$0-1];break;case 41:$$[$0-1].unshift({type:"criticalStart",criticalText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.CRITICAL_START}),$$[$0-1].push({type:"criticalEnd",signalType:yy.LINETYPE.CRITICAL_END}),this.$=$$[$0-1];break;case 42:$$[$0-1].unshift({type:"breakStart",breakText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.BREAK_START}),$$[$0-1].push({type:"breakEnd",optText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.BREAK_END}),this.$=$$[$0-1];break;case 44:this.$=$$[$0-3].concat([{type:"option",optionText:yy.parseMessage($$[$0-1]),signalType:yy.LINETYPE.CRITICAL_OPTION},$$[$0]]);break;case 46:this.$=$$[$0-3].concat([{type:"and",parText:yy.parseMessage($$[$0-1]),signalType:yy.LINETYPE.PAR_AND},$$[$0]]);break;case 48:this.$=$$[$0-3].concat([{type:"else",altText:yy.parseMessage($$[$0-1]),signalType:yy.LINETYPE.ALT_ELSE},$$[$0]]);break;case 49:case 54:$$[$0-3].draw="participant",$$[$0-3].type="addParticipant",$$[$0-3].description=yy.parseMessage($$[$0-1]),this.$=$$[$0-3];break;case 50:case 55:$$[$0-1].draw="participant",$$[$0-1].type="addParticipant",this.$=$$[$0-1];break;case 51:case 56:$$[$0-3].draw="actor",$$[$0-3].type="addParticipant",$$[$0-3].description=yy.parseMessage($$[$0-1]),this.$=$$[$0-3];break;case 52:case 57:$$[$0-1].draw="actor",$$[$0-1].type="addParticipant",this.$=$$[$0-1];break;case 53:$$[$0-1].type="destroyParticipant",this.$=$$[$0-1];break;case 58:this.$=[$$[$0-1],{type:"addNote",placement:$$[$0-2],actor:$$[$0-1].actor,text:$$[$0]}];break;case 59:$$[$0-2]=[].concat($$[$0-1],$$[$0-1]).slice(0,2),$$[$0-2][0]=$$[$0-2][0].actor,$$[$0-2][1]=$$[$0-2][1].actor,this.$=[$$[$0-1],{type:"addNote",placement:yy.PLACEMENT.OVER,actor:$$[$0-2].slice(0,2),text:$$[$0]}];break;case 60:this.$=[$$[$0-1],{type:"addLinks",actor:$$[$0-1].actor,text:$$[$0]}];break;case 61:this.$=[$$[$0-1],{type:"addALink",actor:$$[$0-1].actor,text:$$[$0]}];break;case 62:this.$=[$$[$0-1],{type:"addProperties",actor:$$[$0-1].actor,text:$$[$0]}];break;case 63:this.$=[$$[$0-1],{type:"addDetails",actor:$$[$0-1].actor,text:$$[$0]}];break;case 66:this.$=[$$[$0-2],$$[$0]];break;case 68:this.$=yy.PLACEMENT.LEFTOF;break;case 69:this.$=yy.PLACEMENT.RIGHTOF;break;case 70:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0],activate:!0},{type:"activeStart",signalType:yy.LINETYPE.ACTIVE_START,actor:$$[$0-1].actor}];break;case 71:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0]},{type:"activeEnd",signalType:yy.LINETYPE.ACTIVE_END,actor:$$[$0-4].actor}];break;case 72:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0],activate:!0,centralConnection:yy.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:yy.LINETYPE.CENTRAL_CONNECTION,actor:$$[$0-1].actor}];break;case 73:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-2],msg:$$[$0],activate:!1,centralConnection:yy.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:yy.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:$$[$0-4].actor}];break;case 74:this.$=[$$[$0-5],$$[$0-1],{type:"addMessage",from:$$[$0-5].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0],activate:!0,centralConnection:yy.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:yy.LINETYPE.CENTRAL_CONNECTION,actor:$$[$0-1].actor},{type:"centralConnectionReverse",signalType:yy.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:$$[$0-5].actor}];break;case 75:this.$=[$$[$0-3],$$[$0-1],{type:"addMessage",from:$$[$0-3].actor,to:$$[$0-1].actor,signalType:$$[$0-2],msg:$$[$0]}];break;case 76:this.$={type:"addParticipant",actor:$$[$0-1],config:$$[$0]};break;case 77:this.$=$$[$0-1].trim();break;case 78:this.$={type:"addParticipant",actor:$$[$0]};break;case 79:this.$=yy.LINETYPE.SOLID_OPEN;break;case 80:this.$=yy.LINETYPE.DOTTED_OPEN;break;case 81:this.$=yy.LINETYPE.SOLID;break;case 82:this.$=yy.LINETYPE.SOLID_TOP;break;case 83:this.$=yy.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=yy.LINETYPE.STICK_TOP;break;case 85:this.$=yy.LINETYPE.STICK_BOTTOM;break;case 86:this.$=yy.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=yy.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=yy.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=yy.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=yy.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=yy.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=yy.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=yy.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=yy.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=yy.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=yy.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=yy.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=yy.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=yy.LINETYPE.DOTTED;break;case 100:this.$=yy.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=yy.LINETYPE.SOLID_CROSS;break;case 102:this.$=yy.LINETYPE.DOTTED_CROSS;break;case 103:this.$=yy.LINETYPE.SOLID_POINT;break;case 104:this.$=yy.LINETYPE.DOTTED_POINT;break;case 105:this.$=yy.parseMessage($$[$0].trim().substring(1))}},"anonymous"),table:[{3:1,4:$V0,5:$V1,6:$V2},{1:[3]},{3:5,4:$V0,5:$V1,6:$V2},{3:6,4:$V0,5:$V1,6:$V2},o([1,4,5,10,14,15,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],$V3,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},o($Vy,[2,5]),{9:48,13:13,14:$V7,15:$V8,18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},o($Vy,[2,7]),o($Vy,[2,8]),o($Vy,[2,9]),o($Vy,[2,15]),{13:49,51:$Vp,53:$Vq,54:$Vr},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:$Vx},{23:56,73:$Vx},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},o($Vy,[2,30]),o($Vy,[2,31]),{33:[1,62]},{35:[1,63]},o($Vy,[2,34]),{16:[1,64]},{16:[1,65]},{16:[1,66]},{16:[1,67]},{16:[1,68]},{16:[1,69]},{16:[1,70]},{16:[1,71]},{23:72,55:73,73:$Vz},{23:75,55:76,73:$Vz},{23:77,73:$Vx},{69:78,72:[1,79],78:$VA,79:$VB,80:$VC,81:$VD,82:$VE,83:$VF,84:$VG,85:$VH,86:$VI,87:$VJ,88:$VK,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,96:$VS,97:$VT,98:$VU,99:$VV,100:$VW,101:$VX,102:$VY,103:$VZ},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:$Vx},{23:111,73:$Vx},{23:112,73:$Vx},{23:113,73:$Vx},o([5,66,72,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],$V_),o($Vy,[2,6]),o($Vy,[2,16]),o($V$,[2,10],{11:114}),o($Vy,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},o($Vy,[2,22]),{5:[1,118]},{5:[1,119]},o($Vy,[2,25]),o($Vy,[2,26]),o($Vy,[2,27]),o($Vy,[2,28]),o($Vy,[2,29]),o($Vy,[2,32]),o($Vy,[2,33]),o($V01,$V3,{7:120}),o($V01,$V3,{7:121}),o($V01,$V3,{7:122}),o($V11,$V3,{41:123,7:124}),o($V21,$V3,{43:125,7:126}),o($V21,$V3,{7:126,43:127}),o($V31,$V3,{46:128,7:129}),o($V01,$V3,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},o($V41,$V_,{74:135,75:[1,136]}),{5:[1,138],52:[1,137]},{5:[1,140],52:[1,139]},{5:[1,141]},{23:145,70:[1,142],71:[1,143],72:[1,144],73:$Vx},{69:146,78:$VA,79:$VB,80:$VC,81:$VD,82:$VE,83:$VF,84:$VG,85:$VH,86:$VI,87:$VJ,88:$VK,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,96:$VS,97:$VT,98:$VU,99:$VV,100:$VW,101:$VX,102:$VY,103:$VZ},o($V51,[2,79]),o($V51,[2,80]),o($V51,[2,81]),o($V51,[2,82]),o($V51,[2,83]),o($V51,[2,84]),o($V51,[2,85]),o($V51,[2,86]),o($V51,[2,87]),o($V51,[2,88]),o($V51,[2,89]),o($V51,[2,90]),o($V51,[2,91]),o($V51,[2,92]),o($V51,[2,93]),o($V51,[2,94]),o($V51,[2,95]),o($V51,[2,96]),o($V51,[2,97]),o($V51,[2,98]),o($V51,[2,99]),o($V51,[2,100]),o($V51,[2,101]),o($V51,[2,102]),o($V51,[2,103]),o($V51,[2,104]),{23:147,73:$Vx},{23:149,60:148,73:$Vx},{73:[2,68]},{73:[2,69]},{58:150,104:$V61},{58:152,104:$V61},{58:153,104:$V61},{58:154,104:$V61},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:$Vp,53:$Vq,54:$Vr},{5:[1,160]},o($Vy,[2,20]),o($Vy,[2,21]),o($Vy,[2,23]),o($Vy,[2,24]),{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,161],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,162],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,163],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{17:[1,164]},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[2,47],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,50:[1,165],51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{17:[1,166]},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[2,45],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,49:[1,167],51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{17:[1,168]},{17:[1,169]},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[2,43],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,48:[1,170],51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,171],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{16:[1,172]},o($Vy,[2,50]),{16:[1,173]},o($Vy,[2,55]),o($V41,[2,76]),{76:[1,174]},{16:[1,175]},o($Vy,[2,52]),{16:[1,176]},o($Vy,[2,57]),o($Vy,[2,53]),{23:177,73:$Vx},{23:178,73:$Vx},{23:179,73:$Vx},{58:180,104:$V61},{23:181,72:[1,182],73:$Vx},{58:183,104:$V61},{58:184,104:$V61},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},o($Vy,[2,17]),o($V$,[2,11]),{13:186,51:$Vp,53:$Vq,54:$Vr},o($V$,[2,13]),o($V$,[2,14]),o($Vy,[2,19]),o($Vy,[2,35]),o($Vy,[2,36]),o($Vy,[2,37]),o($Vy,[2,38]),{16:[1,187]},o($Vy,[2,39]),{16:[1,188]},o($Vy,[2,40]),o($Vy,[2,41]),{16:[1,189]},o($Vy,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:$V61},{58:196,104:$V61},{58:197,104:$V61},{5:[2,75]},{58:198,104:$V61},{23:199,73:$Vx},{5:[2,58]},{5:[2,59]},{23:200,73:$Vx},o($V$,[2,12]),o($V11,$V3,{7:124,41:201}),o($V21,$V3,{7:126,43:202}),o($V31,$V3,{7:129,46:203}),o($Vy,[2,49]),o($Vy,[2,54]),o($V41,[2,77]),o($Vy,[2,51]),o($Vy,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:$V61},{104:[2,66]},{17:[2,48]},{17:[2,46]},{17:[2,44]},{5:[2,74]}],defaultActions:{5:[2,1],6:[2,2],108:[2,68],109:[2,69],150:[2,60],151:[2,105],152:[2,61],153:[2,62],154:[2,63],180:[2,75],183:[2,58],184:[2,59],195:[2,70],196:[2,71],197:[2,72],198:[2,73],200:[2,66],201:[2,48],202:[2,46],203:[2,44],204:[2,74]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.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),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 59:case 92:return 5;case 1:case 2:case 3:case 4:case 5:break;case 6:return 20;case 7:return this.begin("CONFIG"),75;case 8:return 76;case 9:return this.popState(),this.begin("ALIAS"),77;case 10:return this.popState(),this.popState(),77;case 11:case 60:return yy_.yytext=yy_.yytext.trim(),73;case 12:return yy_.yytext=yy_.yytext.trim(),this.begin("ALIAS"),73;case 13:return yy_.yytext=yy_.yytext.trim(),this.popState(),73;case 14:return this.popState(),10;case 15:return yy_.yytext=yy_.yytext.trim(),this.popState(),10;case 16:return this.begin("LINE"),15;case 17:return this.begin("ID"),51;case 18:return this.begin("ID"),53;case 19:return 14;case 20:return this.begin("ID"),54;case 21:return this.popState(),this.popState(),this.begin("LINE"),52;case 22:return this.popState(),this.popState(),5;case 23:return this.begin("LINE"),37;case 24:return this.begin("LINE"),38;case 25:return this.begin("LINE"),39;case 26:return this.begin("LINE"),40;case 27:return this.begin("LINE"),50;case 28:return this.begin("LINE"),42;case 29:return this.begin("LINE"),44;case 30:return this.begin("LINE"),49;case 31:return this.begin("LINE"),45;case 32:return this.begin("LINE"),48;case 33:return this.begin("LINE"),47;case 34:return this.popState(),16;case 35:return 17;case 36:return 67;case 37:return 68;case 38:return 61;case 39:return 62;case 40:return 63;case 41:return 64;case 42:return 59;case 43:return 56;case 44:return this.begin("ID"),22;case 45:return this.begin("ID"),24;case 46:return 30;case 47:return 31;case 48:return this.begin("acc_title"),32;case 49:return this.popState(),"acc_title_value";case 50:return this.begin("acc_descr"),34;case 51:return this.popState(),"acc_descr_value";case 52:this.begin("acc_descr_multiline");break;case 53:this.popState();break;case 54:return"acc_descr_multiline_value";case 55:return 6;case 56:return 19;case 57:return 21;case 58:return 66;case 61:return 80;case 62:return 97;case 63:return 98;case 64:return 99;case 65:return 78;case 66:return 79;case 67:return 100;case 68:return 101;case 69:return 102;case 70:return 103;case 71:return 85;case 72:return 86;case 73:return 87;case 74:return 88;case 75:return 93;case 76:return 94;case 77:return 95;case 78:return 96;case 79:return 81;case 80:return 82;case 81:return 83;case 82:return 84;case 83:return 89;case 84:return 90;case 85:return 91;case 86:return 92;case 87:case 88:return 104;case 89:return 70;case 90:return 71;case 91:return 72;case 93:return 10}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\}(?=\s+as\s))/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^<>:\n,;@\s]+(?=\s+as\s))/i,/^(?:[^<>:\n,;@]+(?=\s*[\n;#]|$))/i,/^(?:[^<>:\n,;@]*<[^\n]*)/i,/^(?:[^\n]+)/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\/\\\+\()\+<\->\->:\n,;]+((?!(-x|--x|-\)|--\)|-\|\\|-\\|-\/|-\/\/|-\|\/|\/\|-|\\\|-|\/\/-|\\\\-|\/\|-|--\|\\|--|\(\)))[\-]*[^\+<\->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?:--\|\\)/i,/^(?:--\|\/)/i,/^(?:--\\\\)/i,/^(?:--\/\/)/i,/^(?:\/\|--)/i,/^(?:\\\|--)/i,/^(?:\/\/--)/i,/^(?:\\\\--)/i,/^(?:-\|\\)/i,/^(?:-\|\/)/i,/^(?:-\\\\)/i,/^(?:-\/\/)/i,/^(?:\/\|-)/i,/^(?:\\\|-)/i,/^(?:\/\/-)/i,/^(?:\\\\-)/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\(\))/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[53,54],inclusive:!1},acc_descr:{rules:[51],inclusive:!1},acc_title:{rules:[49],inclusive:!1},ID:{rules:[2,3,7,11,12,13,14,15],inclusive:!1},ALIAS:{rules:[2,3,21,22],inclusive:!1},LINE:{rules:[2,3,34],inclusive:!1},CONFIG:{rules:[8,9,10],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,16,17,18,19,20,23,24,25,26,27,28,29,30,31,32,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var sequenceDiagram_default=parser,LINETYPE={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34,SOLID_TOP:41,SOLID_BOTTOM:42,STICK_TOP:43,STICK_BOTTOM:44,SOLID_ARROW_TOP_REVERSE:45,SOLID_ARROW_BOTTOM_REVERSE:46,STICK_ARROW_TOP_REVERSE:47,STICK_ARROW_BOTTOM_REVERSE:48,SOLID_TOP_DOTTED:51,SOLID_BOTTOM_DOTTED:52,STICK_TOP_DOTTED:53,STICK_BOTTOM_DOTTED:54,SOLID_ARROW_TOP_REVERSE_DOTTED:55,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:56,STICK_ARROW_TOP_REVERSE_DOTTED:57,STICK_ARROW_BOTTOM_REVERSE_DOTTED:58,CENTRAL_CONNECTION:59,CENTRAL_CONNECTION_REVERSE:60,CENTRAL_CONNECTION_DUAL:61},ARROWTYPE={FILLED:0,OPEN:1},PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},PARTICIPANT_TYPE_ACTOR="actor",PARTICIPANT_TYPE_CONTROL="control",PARTICIPANT_TYPE_DATABASE="database",PARTICIPANT_TYPE_ENTITY="entity",SequenceDB=(__name(_a=class{constructor(){this.state=new ImperativeState(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),this.setAccTitle=setAccTitle,this.setAccDescription=setAccDescription,this.setDiagramTitle=setDiagramTitle,this.getAccTitle=getAccTitle,this.getAccDescription=getAccDescription,this.getDiagramTitle=getDiagramTitle,this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(getConfig2().wrap),this.LINETYPE=LINETYPE,this.ARROWTYPE=ARROWTYPE,this.PLACEMENT=PLACEMENT}addBox(data){this.state.records.boxes.push({name:data.text,wrap:data.wrap??this.autoWrap(),fill:data.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(id,name,description,type,metadata){let doc,assignedBox=this.state.records.currentBox;if(void 0!==metadata){let yamlData;yamlData=metadata.includes("\n")?metadata+"\n":"{\n"+metadata+"\n}",doc=load(yamlData,{schema:JSON_SCHEMA})}type=(null==doc?void 0:doc.type)??type,!(null==doc?void 0:doc.alias)||description&&description.text!==name||(description={text:doc.alias,wrap:null==description?void 0:description.wrap,type:type});const old=this.state.records.actors.get(id);if(old){if(this.state.records.currentBox&&old.box&&this.state.records.currentBox!==old.box)throw new Error(`A same participant should only be defined in one Box: ${old.name} can't be in '${old.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(assignedBox=old.box?old.box:this.state.records.currentBox,old.box=assignedBox,old&&name===old.name&&null==description)return}if(null==(null==description?void 0:description.text)&&(description={text:name,type:type}),null!=type&&null!=description.text||(description={text:name,type:type}),this.state.records.actors.set(id,{box:assignedBox,name:name,description:description.text,wrap:description.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:type??"participant"}),this.state.records.prevActor){const prevActorInRecords=this.state.records.actors.get(this.state.records.prevActor);prevActorInRecords&&(prevActorInRecords.nextActor=id)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(id),this.state.records.prevActor=id}activationCount(part){let i,count=0;if(!part)return 0;for(i=0;i<this.state.records.messages.length;i++)this.state.records.messages[i].type===this.LINETYPE.ACTIVE_START&&this.state.records.messages[i].from===part&&count++,this.state.records.messages[i].type===this.LINETYPE.ACTIVE_END&&this.state.records.messages[i].from===part&&count--;return count}addMessage(idFrom,idTo,message,answer){this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:idFrom,to:idTo,message:message.text,wrap:message.wrap??this.autoWrap(),answer:answer})}addSignal(idFrom,idTo,message,messageType,activate=!1,centralConnection){if(messageType===this.LINETYPE.ACTIVE_END){if(this.activationCount(idFrom??"")<1){const error=new Error("Trying to inactivate an inactive participant ("+idFrom+")");throw error.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},error}}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:idFrom,to:idTo,message:(null==message?void 0:message.text)??"",wrap:(null==message?void 0:message.wrap)??this.autoWrap(),type:messageType,activate:activate,centralConnection:centralConnection??0}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(b=>b.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(id){return this.state.records.actors.get(id)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(wrapSetting){this.state.records.wrapEnabled=wrapSetting}extractWrap(text){if(void 0===text)return{};text=text.trim();const wrap=null!==/^:?wrap:/.exec(text)||null===/^:?nowrap:/.exec(text)&&void 0;return{cleanedText:(void 0===wrap?text:text.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:wrap}}autoWrap(){var _a2;return void 0!==this.state.records.wrapEnabled?this.state.records.wrapEnabled:(null==(_a2=getConfig2().sequence)?void 0:_a2.wrap)??!1}clear(){this.state.reset(),clear()}parseMessage(str){const trimmedStr=str.trim(),{wrap:wrap,cleanedText:cleanedText}=this.extractWrap(trimmedStr),message={text:cleanedText,wrap:wrap};return log.debug(`parseMessage: ${JSON.stringify(message)}`),message}parseBoxData(str){const match=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(str);let color=(null==match?void 0:match[1])?match[1].trim():"transparent",title=(null==match?void 0:match[2])?match[2].trim():void 0;if(null==window?void 0:window.CSS)window.CSS.supports("color",color)||(color="transparent",title=str.trim());else{const style=(new Option).style;style.color=color,style.color!==color&&(color="transparent",title=str.trim())}const{wrap:wrap,cleanedText:cleanedText}=this.extractWrap(title);return{text:cleanedText?sanitizeText(cleanedText,getConfig2()):void 0,color:color,wrap:wrap}}addNote(actor,placement,message){const note={actor:actor,placement:placement,message:message.text,wrap:message.wrap??this.autoWrap()},actors=[].concat(actor,actor);this.state.records.notes.push(note),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:actors[0],to:actors[1],message:message.text,wrap:message.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:placement})}addLinks(actorId,text){const actor=this.getActor(actorId);try{let sanitizedText=sanitizeText(text.text,getConfig2());sanitizedText=sanitizedText.replace(/=/g,"="),sanitizedText=sanitizedText.replace(/&/g,"&");const links=JSON.parse(sanitizedText);this.insertLinks(actor,links)}catch(e){log.error("error while parsing actor link text",e)}}addALink(actorId,text){const actor=this.getActor(actorId);try{const links={};let sanitizedText=sanitizeText(text.text,getConfig2());const sep=sanitizedText.indexOf("@");sanitizedText=sanitizedText.replace(/=/g,"="),sanitizedText=sanitizedText.replace(/&/g,"&");const label=sanitizedText.slice(0,sep-1).trim(),link=sanitizedText.slice(sep+1).trim();links[label]=link,this.insertLinks(actor,links)}catch(e){log.error("error while parsing actor link text",e)}}insertLinks(actor,links){if(null==actor.links)actor.links=links;else for(const key in links)actor.links[key]=links[key]}addProperties(actorId,text){const actor=this.getActor(actorId);try{const sanitizedText=sanitizeText(text.text,getConfig2()),properties=JSON.parse(sanitizedText);this.insertProperties(actor,properties)}catch(e){log.error("error while parsing actor properties text",e)}}insertProperties(actor,properties){if(null==actor.properties)actor.properties=properties;else for(const key in properties)actor.properties[key]=properties[key]}boxEnd(){this.state.records.currentBox=void 0}addDetails(actorId,text){const actor=this.getActor(actorId),elem=document.getElementById(text.text);try{const text2=elem.innerHTML,details=JSON.parse(text2);details.properties&&this.insertProperties(actor,details.properties),details.links&&this.insertLinks(actor,details.links)}catch(e){log.error("error while parsing actor details text",e)}}getActorProperty(actor,key){if(void 0!==(null==actor?void 0:actor.properties))return actor.properties[key]}apply(param){if(Array.isArray(param))param.forEach(item=>{this.apply(item)});else switch(param.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:param.sequenceIndex,step:param.sequenceIndexStep,visible:param.sequenceVisible},wrap:!1,type:param.signalType});break;case"addParticipant":this.addActor(param.actor,param.actor,param.description,param.draw,param.config);break;case"createParticipant":if(this.state.records.actors.has(param.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=param.actor,this.addActor(param.actor,param.actor,param.description,param.draw,param.config),this.state.records.createdActors.set(param.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=param.actor,this.state.records.destroyedActors.set(param.actor,this.state.records.messages.length);break;case"activeStart":case"centralConnection":case"centralConnectionReverse":case"activeEnd":this.addSignal(param.actor,void 0,void 0,param.signalType);break;case"addNote":this.addNote(param.actor,param.placement,param.text);break;case"addLinks":this.addLinks(param.actor,param.text);break;case"addALink":this.addALink(param.actor,param.text);break;case"addProperties":this.addProperties(param.actor,param.text);break;case"addDetails":this.addDetails(param.actor,param.text);break;case"addMessage":if(this.state.records.lastCreated){if(param.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(param.to!==this.state.records.lastDestroyed&¶m.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(param.from,param.to,param.msg,param.signalType,param.activate,param.centralConnection);break;case"boxStart":this.addBox(param.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,param.loopText,param.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":this.addSignal(void 0,void 0,void 0,param.signalType);break;case"rectStart":this.addSignal(void 0,void 0,param.color,param.signalType);break;case"optStart":this.addSignal(void 0,void 0,param.optText,param.signalType);break;case"altStart":case"else":this.addSignal(void 0,void 0,param.altText,param.signalType);break;case"setAccTitle":setAccTitle(param.text);break;case"parStart":case"and":this.addSignal(void 0,void 0,param.parText,param.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,param.criticalText,param.signalType);break;case"option":this.addSignal(void 0,void 0,param.optionText,param.signalType);break;case"breakStart":this.addSignal(void 0,void 0,param.breakText,param.signalType)}}getConfig(){return getConfig2().sequence}},"SequenceDB"),_a),styles_default=__name(options=>{const dropShadow=options.dropShadow??"none",{look:look}=getConfig2();return`.actor {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n stroke-width: ${options.strokeWidth??1};\n }\n\n rect.actor.outer-path[data-look="neo"] {\n filter: ${dropShadow};\n }\n\n rect.note[data-look="neo"] {\n stroke:${options.noteBorderColor};\n fill:${options.noteBkgColor};\n filter: ${dropShadow};\n }\n\n text.actor > tspan {\n fill: ${options.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${options.actorLineColor};\n }\n\n .innerArc {\n stroke-width: 1.5;\n stroke-dasharray: none;\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${options.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${options.signalColor};\n }\n\n [id$="-arrowhead"] path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .sequenceNumber {\n fill: ${options.sequenceNumberColor};\n }\n\n [id$="-sequencenumber"] {\n fill: ${options.signalColor};\n }\n\n [id$="-crosshead"] path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .messageText {\n fill: ${options.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBkgColor};\n filter: ${"neo"===look?dropShadow:"none"};\n }\n\n .labelText, .labelText > tspan {\n fill: ${options.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${options.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${options.noteTextColor};\n stroke: none;\n ${options.noteFontWeight?`font-weight: ${options.noteFontWeight};`:""}\n }\n\n .activation0 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation1 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation2 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${options.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man circle, line {\n fill: ${options.actorBkg};\n stroke-width: 2px;\n }\n\n g rect.rect {\n filter: ${dropShadow};\n stroke: ${options.nodeBorder};\n }\n`},"getStyles"),COLOR_THEMES=new Set(["redux-color","redux-dark-color"]),drawRect2=__name(function(elem,rectData){const rectElement=drawRect(elem,rectData);return"neo"===getConfig().look&&rectElement.attr("data-look","neo"),rectElement},"drawRect"),drawPopup=__name(function(elem,actor,minMenuWidth,textAttrs,forceMenus){if(void 0===actor.links||null===actor.links||0===Object.keys(actor.links).length)return{height:0,width:0};const links=actor.links,actorCnt2=actor.actorCnt,rectData=actor.rectData;var displayValue="none";forceMenus&&(displayValue="block !important");const g=elem.append("g");g.attr("id","actor"+actorCnt2+"_popup"),g.attr("class","actorPopupMenu"),g.attr("display",displayValue);var actorClass="";void 0!==rectData.class&&(actorClass=" "+rectData.class);let menuWidth=rectData.width>minMenuWidth?rectData.width:minMenuWidth;const rectElem=g.append("rect");if(rectElem.attr("class","actorPopupMenuPanel"+actorClass),rectElem.attr("x",rectData.x),rectElem.attr("y",rectData.height),rectElem.attr("fill",rectData.fill),rectElem.attr("stroke",rectData.stroke),rectElem.attr("width",menuWidth),rectElem.attr("height",rectData.height),rectElem.attr("rx",rectData.rx),rectElem.attr("ry",rectData.ry),null!=links){var linkY=20;for(let key in links){var linkElem=g.append("a"),sanitizedLink=distExports.sanitizeUrl(links[key]);linkElem.attr("xlink:href",sanitizedLink),linkElem.attr("target","_blank"),_drawMenuItemTextCandidateFunc(textAttrs)(key,linkElem,rectData.x+10,rectData.height+linkY,menuWidth,20,{class:"actor"},textAttrs),linkY+=30}}return rectElem.attr("height",linkY),{height:rectData.height+linkY,width:menuWidth}},"drawPopup"),popupMenuToggle=__name(function(popId){return"var pu = document.getElementById('"+popId+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),drawKatex=__name(async function(elem,textData,msgModel=null){let textElem=elem.append("foreignObject");const linesSanitized=await renderKatexSanitized(textData.text,getConfig()),dim=textElem.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(linesSanitized).node().getBoundingClientRect();if(textElem.attr("height",Math.round(dim.height)).attr("width",Math.round(dim.width)),"noteText"===textData.class){const rectElem=elem.node().firstChild;rectElem.setAttribute("height",dim.height+2*textData.textMargin);const rectDim=rectElem.getBBox();textElem.attr("x",Math.round(rectDim.x+rectDim.width/2-dim.width/2)).attr("y",Math.round(rectDim.y+rectDim.height/2-dim.height/2))}else if(msgModel){let{startx:startx,stopx:stopx,starty:starty}=msgModel;if(startx>stopx){const temp=startx;startx=stopx,stopx=temp}textElem.attr("x",Math.round(startx+Math.abs(startx-stopx)/2-dim.width/2)),"loopText"===textData.class?textElem.attr("y",Math.round(starty)):textElem.attr("y",Math.round(starty-dim.height))}return[textElem]},"drawKatex"),drawText=__name(function(elem,textData){let prevTextHeight=0,textHeight=0;const lines=textData.text.split(common_default.lineBreakRegex),[_textFontSize,_textFontSizePx]=parseFontSize(textData.fontSize);let textElems=[],dy=0,yfunc=__name(()=>textData.y,"yfunc");if(void 0!==textData.valign&&void 0!==textData.textMargin&&textData.textMargin>0)switch(textData.valign){case"top":case"start":yfunc=__name(()=>Math.round(textData.y+textData.textMargin),"yfunc");break;case"middle":case"center":yfunc=__name(()=>Math.round(textData.y+(prevTextHeight+textHeight+textData.textMargin)/2),"yfunc");break;case"bottom":case"end":yfunc=__name(()=>Math.round(textData.y+(prevTextHeight+textHeight+2*textData.textMargin)-textData.textMargin),"yfunc")}if(void 0!==textData.anchor&&void 0!==textData.textMargin&&void 0!==textData.width)switch(textData.anchor){case"left":case"start":textData.x=Math.round(textData.x+textData.textMargin),textData.anchor="start",textData.dominantBaseline="middle",textData.alignmentBaseline="middle";break;case"middle":case"center":textData.x=Math.round(textData.x+textData.width/2),textData.anchor="middle",textData.dominantBaseline="middle",textData.alignmentBaseline="middle";break;case"right":case"end":textData.x=Math.round(textData.x+textData.width-textData.textMargin),textData.anchor="end",textData.dominantBaseline="middle",textData.alignmentBaseline="middle"}for(let[i,line]of lines.entries()){void 0!==textData.textMargin&&0===textData.textMargin&&void 0!==_textFontSize&&(dy=i*_textFontSize);const textElem=elem.append("text");textElem.attr("x",textData.x),textElem.attr("y",yfunc()),void 0!==textData.anchor&&textElem.attr("text-anchor",textData.anchor).attr("dominant-baseline",textData.dominantBaseline).attr("alignment-baseline",textData.alignmentBaseline),void 0!==textData.fontFamily&&textElem.style("font-family",textData.fontFamily),void 0!==_textFontSizePx&&textElem.style("font-size",_textFontSizePx),void 0!==textData.fontWeight&&textElem.style("font-weight",textData.fontWeight),void 0!==textData.fill&&textElem.attr("fill",textData.fill),void 0!==textData.class&&textElem.attr("class",textData.class),void 0!==textData.dy?textElem.attr("dy",textData.dy):0!==dy&&textElem.attr("dy",dy);const text=line||ZERO_WIDTH_SPACE;if(textData.tspan){const span=textElem.append("tspan");span.attr("x",textData.x),void 0!==textData.fill&&span.attr("fill",textData.fill),span.text(text)}else textElem.text(text);void 0!==textData.valign&&void 0!==textData.textMargin&&textData.textMargin>0&&(textHeight+=(textElem._groups||textElem)[0][0].getBBox().height,prevTextHeight=textHeight),textElems.push(textElem)}return textElems},"drawText"),drawLabel=__name(function(elem,txtObject){function genPoints(x,y,width,height,cut){return x+","+y+" "+(x+width)+","+y+" "+(x+width)+","+(y+height-cut)+" "+(x+width-1.2*cut)+","+(y+height)+" "+x+","+(y+height)}__name(genPoints,"genPoints");const polygon=elem.append("polygon");return polygon.attr("points",genPoints(txtObject.x,txtObject.y,txtObject.width,txtObject.height,7)),polygon.attr("class","labelBox"),txtObject.y=txtObject.y+txtObject.height/2,drawText(elem,txtObject),polygon},"drawLabel"),actorCnt=-1,fixLifeLineHeights=__name((diagram2,actors,actorKeys,conf2)=>{diagram2.select&&actorKeys.forEach(actorKey=>{const actor=actors.get(actorKey),actorDOM=diagram2.select("#actor"+actor.actorCnt);!conf2.mirrorActors&&actor.stopy?actorDOM.attr("y2",actor.stopy+actor.height/2):conf2.mirrorActors&&actorDOM.attr("y2",actor.stopy)})},"fixLifeLineHeights"),drawActorTypeParticipant=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2,_b;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,boxplusLineGroup=elem.append("g").lower();var g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();var cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.class=cssclass,rect.rx=3,rect.ry=3,rect.name=actor.name,"neo"===look&&(rect.rx=6,rect.ry=6);const rectElem=drawRect2(g,rect),actorCount=actorIndexMap.get(actor.name)??0;if(COLOR_THEMES.has(theme)&&(rectElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),rectElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])),"neo"===look&&rectElem.attr("filter","url(#drop-shadow)"),actor.rectData=rect,null==(_b=actor.properties)?void 0:_b.icon){const iconSrc=actor.properties.icon.trim();"@"===iconSrc.charAt(0)?drawEmbeddedImage(g,rect.x+rect.width-20,rect.y+10,iconSrc.substr(1)):drawImage(g,rect.x+rect.width-20,rect.y+10,iconSrc)}isFooter||(g.attr("data-et","participant"),g.attr("data-type","participant"),g.attr("data-id",actor.name)),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x,rect.y,rect.width,rect.height,{class:"actor actor-box"},conf2);let height=actor.height;if(rectElem.node){const bounds2=rectElem.node().getBBox();actor.height=bounds2.height,height=bounds2.height}return height},"drawActorTypeParticipant"),drawActorTypeCollections=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2,_b;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,boxplusLineGroup=elem.append("g").lower();var g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();var cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.class=cssclass,rect.name=actor.name;const shadowRect={...rect,x:rect.x+-6,y:rect.y+6,class:"actor"},rectElem=drawRect2(g,rect),stackedRect=drawRect2(g,shadowRect);actor.rectData=rect,"neo"===look&&g.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;if(COLOR_THEMES.has(theme)&&(rectElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),rectElem.style("fill",bkgColorArray[actorCount%borderColorArray.length]),stackedRect.style("stroke",borderColorArray[actorCount%borderColorArray.length]),stackedRect.style("fill",bkgColorArray[actorCount%borderColorArray.length])),null==(_b=actor.properties)?void 0:_b.icon){const iconSrc=actor.properties.icon.trim();"@"===iconSrc.charAt(0)?drawEmbeddedImage(g,rect.x+rect.width-20,rect.y+10,iconSrc.substr(1)):drawImage(g,rect.x+rect.width-20,rect.y+10,iconSrc)}_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x-6,rect.y+6,rect.width,rect.height,{class:"actor actor-box"},conf2);let height=actor.height;if(rectElem.node){const bounds2=rectElem.node().getBBox();actor.height=bounds2.height,height=bounds2.height}return isFooter||(g.attr("data-et","participant"),g.attr("data-type","collections"),g.attr("data-id",actor.name)),height},"drawActorTypeCollections"),drawActorTypeQueue=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2,_b;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,boxplusLineGroup=elem.append("g").lower();let g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();let cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",g.attr("class",cssclass),rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.name=actor.name;const ry=rect.height/2,rx=ry/(2.5+rect.height/50),cylinderGroup=g.append("g"),cylinderArc=g.append("g"),cylinderPath=`M ${rect.x},${rect.y+ry}\n a ${rx},${ry} 0 0 0 0,${rect.height}\n h ${rect.width-2*rx}\n a ${rx},${ry} 0 0 0 0,-${rect.height}\n Z\n `;cylinderGroup.append("path").attr("d",cylinderPath),cylinderArc.append("path").attr("d",`M ${rect.x},${rect.y+ry}\n a ${rx},${ry} 0 0 0 0,${rect.height}`),cylinderGroup.attr("transform",`translate(${rx}, ${-rect.height/2})`),cylinderArc.attr("transform",`translate(${rect.width-rx}, ${-rect.height/2})`),actor.rectData=rect,"neo"===look&&cylinderGroup.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;if(COLOR_THEMES.has(theme)&&(cylinderGroup.style("stroke",borderColorArray[actorCount%borderColorArray.length]),cylinderGroup.style("fill",bkgColorArray[actorCount%borderColorArray.length]),cylinderArc.style("stroke",borderColorArray[actorCount%borderColorArray.length]),cylinderArc.style("fill",bkgColorArray[actorCount%borderColorArray.length])),null==(_b=actor.properties)?void 0:_b.icon){const iconSrc=actor.properties.icon.trim(),iconX=rect.x+rect.width-20,iconY=rect.y+10;"@"===iconSrc.charAt(0)?drawEmbeddedImage(g,iconX,iconY,iconSrc.substr(1)):drawImage(g,iconX,iconY,iconSrc)}_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x,rect.y,rect.width,rect.height,{class:"actor actor-box"},conf2);let height=actor.height;const lastPath=cylinderGroup.select("path:last-child");if(lastPath.node()){const bounds2=lastPath.node().getBBox();actor.height=bounds2.height,height=bounds2.height}return isFooter||(g.attr("data-et","participant"),g.attr("data-type","queue"),g.attr("data-id",actor.name)),height},"drawActorTypeQueue"),drawActorTypeControl=__name(function(elem,actor,conf2,isFooter,diagramId,actorIndexMap){var _a2;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+75,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder,actorBkg:actorBkg}=themeVariables,line=elem.append("g").lower();isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt);const actElem=elem.append("g");let cssClass="actor-man";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name);const rect=getNoteRect();rect.x=actor.x,rect.y=actorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height,rect.class="actor";const cx=actor.x+actor.width/2,cy=actorY+32;actElem.append("defs").append("marker").attr("id",diagramId+"-filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").attr("stroke-width",1.2).append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),actElem.append("circle").attr("cx",cx).attr("cy",cy).attr("r",22).attr("filter",""+("neo"===look?"url(#drop-shadow)":"")),actElem.append("line").attr("marker-end","url(#"+diagramId+"-filled-head-control)").attr("transform",`translate(${cx}, ${cy-22})`);const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)?(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])):(actElem.style("stroke",actorBorder),actElem.style("fill",actorBkg));const bounds2=actElem.node().getBBox();return actor.height=bounds2.height+2*((null==(_a2=null==conf2?void 0:conf2.sequence)?void 0:_a2.labelBoxHeight)??0),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,rect.y+22+(isFooter?5:12),rect.width,rect.height,{class:"actor actor-man"},conf2),isFooter||(actElem.attr("data-et","participant"),actElem.attr("data-type","control"),actElem.attr("data-id",actor.name)),actor.height},"drawActorTypeControl"),drawActorTypeEntity=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+75,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,line=elem.append("g").lower(),actElem=elem.append("g");let cssClass="actor";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name);const rect=getNoteRect();rect.x=actor.x,rect.y=actorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height,rect.class="actor";const cx=actor.x+actor.width/2,cy=actorY+(isFooter?10:25),r=22;actElem.append("circle").attr("cx",cx).attr("cy",cy).attr("r",r).attr("width",actor.width).attr("height",actor.height),actElem.append("line").attr("x1",cx-r).attr("x2",cx+r).attr("y1",cy+r).attr("y2",cy+r).attr("stroke-width",2),"neo"===look&&actElem.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)&&(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length]));const bounds2=actElem.node().getBBox();return actor.height=bounds2.height+((null==(_a2=null==conf2?void 0:conf2.sequence)?void 0:_a2.labelBoxHeight)??0),isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,rect.y+(isFooter?15:30),rect.width,rect.height,{class:"actor actor-man"},conf2),isFooter?actElem.attr("transform","translate(0, 22)"):(actElem.attr("transform","translate(0, 6)"),actElem.attr("data-et","participant"),actElem.attr("data-type","entity"),actElem.attr("data-id",actor.name)),actor.height},"drawActorTypeEntity"),drawActorTypeDatabase=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height+2*conf2.boxTextMargin,{theme:theme,themeVariables:themeVariables,look:look}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder}=themeVariables,boxplusLineGroup=elem.append("g").lower();let g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();let cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.class=cssclass,rect.name=actor.name,rect.x=actor.x,rect.y=actorY;const w=rect.width/3,h=rect.width/3,rx=w/2,ry=rx/(2.5+w/50),cylinderGroup=g.append("g");cylinderGroup.attr("class",cssclass);const d=`\n M ${rect.x},${rect.y+ry}\n a ${rx},${ry} 0 0 0 ${w},0\n a ${rx},${ry} 0 0 0 -${w},0\n l 0,${h-2*ry}\n a ${rx},${ry} 0 0 0 ${w},0\n l 0,-${h-2*ry}\n`;cylinderGroup.append("path").attr("d",d),"neo"===look&&cylinderGroup.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)?(cylinderGroup.style("stroke",borderColorArray[actorCount%borderColorArray.length]),cylinderGroup.style("fill",bkgColorArray[actorCount%borderColorArray.length])):cylinderGroup.style("stroke",actorBorder),cylinderGroup.attr("transform",`translate(${w}, ${ry})`),actor.rectData=rect,_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x,rect.y+35,rect.width,rect.height,{class:"actor actor-box"},conf2);const lastPath=cylinderGroup.select("path:last-child");if(lastPath.node()){const bounds2=lastPath.node().getBBox();actor.height=bounds2.height+(conf2.sequence.labelBoxHeight??0)}return isFooter||(g.attr("data-et","participant"),g.attr("data-type","database"),g.attr("data-id",actor.name)),actor.height},"drawActorTypeDatabase"),drawActorTypeBoundary=__name(function(elem,actor,conf2,isFooter,actorIndexMap){const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+80,line=elem.append("g").lower(),{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder}=themeVariables;isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt);const actElem=elem.append("g");let cssClass="actor-man";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name);const rect=getNoteRect();rect.x=actor.x,rect.y=actorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height,rect.class="actor",actElem.append("line").attr("id","actor-man-torso"+actorCnt).attr("x1",actor.x+actor.width/2-55).attr("y1",actorY+12).attr("x2",actor.x+actor.width/2-15).attr("y2",actorY+12),actElem.append("line").attr("id","actor-man-arms"+actorCnt).attr("x1",actor.x+actor.width/2-55).attr("y1",actorY+2).attr("x2",actor.x+actor.width/2-55).attr("y2",actorY+22),actElem.append("circle").attr("cx",actor.x+actor.width/2).attr("cy",actorY+12).attr("r",22),"neo"===look&&actElem.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)?(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])):actElem.style("stroke",actorBorder);const bounds2=actElem.node().getBBox();return actor.height=bounds2.height+(conf2.sequence.labelBoxHeight??0),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,rect.y+15,rect.width,rect.height,{class:"actor actor-man"},conf2),actElem.attr("transform","translate(0,21)"),isFooter||(actElem.attr("data-et","participant"),actElem.attr("data-type","boundary"),actElem.attr("data-id",actor.name)),actor.height},"drawActorTypeBoundary"),drawActorTypeActor=__name(function(elem,actor,conf2,isFooter,actorIndexMap){const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+80,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder}=themeVariables,line=elem.append("g").lower();isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt);const actElem=elem.append("g");let cssClass="actor-man";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name),isFooter||actElem.attr("data-et","participant").attr("data-type","actor").attr("data-id",actor.name);const scale="neo"===look?.5:1,adjustedActorY="neo"===look?actorY+30*(1-scale):actorY;actElem.append("line").attr("id","actor-man-torso"+actorCnt).attr("x1",center).attr("y1",adjustedActorY+25*scale).attr("x2",center).attr("y2",adjustedActorY+45*scale),actElem.append("line").attr("id","actor-man-arms"+actorCnt).attr("x1",center-18*scale).attr("y1",adjustedActorY+33*scale).attr("x2",center+18*scale).attr("y2",adjustedActorY+33*scale),actElem.append("line").attr("x1",center-18*scale).attr("y1",adjustedActorY+60*scale).attr("x2",center).attr("y2",adjustedActorY+45*scale),actElem.append("line").attr("x1",center).attr("y1",adjustedActorY+45*scale).attr("x2",center+16*scale).attr("y2",adjustedActorY+60*scale);const circle=actElem.append("circle");circle.attr("cx",actor.x+actor.width/2),circle.attr("cy",adjustedActorY+10*scale),circle.attr("r",15*scale),circle.attr("width",actor.width*scale),circle.attr("height",actor.height*scale);const bounds2=actElem.node().getBBox();actor.height=bounds2.height;const rect=getNoteRect();rect.x=actor.x,rect.y=adjustedActorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height/scale,rect.class="actor",rect.rx=3,rect.ry=3;const actorCount=actorIndexMap.get(actor.name)??0;return COLOR_THEMES.has(theme)?(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])):actElem.style("stroke",actorBorder),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,adjustedActorY+35*scale-("neo"===look?10:0),rect.width,rect.height,{class:"actor actor-man"},conf2),actor.height},"drawActorTypeActor"),drawActor=__name(async function(elem,actor,conf2,isFooter,diagramId,diagObj,actorIndexMap){const resolvedActorIndexMap=actorIndexMap??new Map([...diagObj.db.getActors().values()].map((participant,index)=>[participant.name,index]));switch(actor.type){case"actor":return await drawActorTypeActor(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"participant":return await drawActorTypeParticipant(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"boundary":return await drawActorTypeBoundary(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"control":return await drawActorTypeControl(elem,actor,conf2,isFooter,diagramId,resolvedActorIndexMap);case"entity":return await drawActorTypeEntity(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"database":return await drawActorTypeDatabase(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"collections":return await drawActorTypeCollections(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"queue":return await drawActorTypeQueue(elem,actor,conf2,isFooter,resolvedActorIndexMap)}},"drawActor"),drawBox=__name(function(elem,box,conf2){const g=elem.append("g");drawBackgroundRect2(g,box),box.name&&_drawTextCandidateFunc(conf2)(box.name,g,box.x,box.y+conf2.boxTextMargin+(box.textMaxHeight||0)/2,box.width,0,{class:"text"},conf2),g.lower()},"drawBox"),anchorElement=__name(function(elem){return elem.append("g")},"anchorElement"),drawActivation=__name(function(_elem,bounds2,verticalPos,conf2,actorActivations2,diagObj,actorIndexMap){const{theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,mainBkg:mainBkg}=themeVariables,rect=getNoteRect(),g=bounds2.anchored,actor=bounds2.actor;rect.x=bounds2.startx,rect.y=bounds2.starty,rect.class="activation"+actorActivations2%3,rect.width=bounds2.stopx-bounds2.startx,rect.height=verticalPos-bounds2.starty;const rectElem=drawRect2(g,rect),actorCount=(actorIndexMap??new Map([...diagObj.db.getActors().values()].map((participant,index)=>[participant.name,index]))).get(actor)??0;COLOR_THEMES.has(theme)&&(rectElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),rectElem.style("fill",bkgColorArray[actorCount%borderColorArray.length]??mainBkg))},"drawActivation"),drawLoop=__name(async function(elem,loopModel,labelText,conf2,msg){const{boxMargin:boxMargin,boxTextMargin:boxTextMargin,labelBoxHeight:labelBoxHeight,labelBoxWidth:labelBoxWidth,messageFontFamily:fontFamily,messageFontSize:fontSize,messageFontWeight:fontWeight}=conf2,g=elem.append("g").attr("data-et","control-structure").attr("data-id","i"+msg.id),drawLoopLine=__name(function(startx,starty,stopx,stopy){return g.append("line").attr("x1",startx).attr("y1",starty).attr("x2",stopx).attr("y2",stopy).attr("class","loopLine")},"drawLoopLine");drawLoopLine(loopModel.startx,loopModel.starty,loopModel.stopx,loopModel.starty),drawLoopLine(loopModel.stopx,loopModel.starty,loopModel.stopx,loopModel.stopy),drawLoopLine(loopModel.startx,loopModel.stopy,loopModel.stopx,loopModel.stopy),drawLoopLine(loopModel.startx,loopModel.starty,loopModel.startx,loopModel.stopy),void 0!==loopModel.sections&&loopModel.sections.forEach(function(item){drawLoopLine(loopModel.startx,item.y,loopModel.stopx,item.y).style("stroke-dasharray","3, 3")});let txt=getTextObj();txt.text=labelText,txt.x=loopModel.startx,txt.y=loopModel.starty,txt.fontFamily=fontFamily,txt.fontSize=fontSize,txt.fontWeight=fontWeight,txt.anchor="middle",txt.valign="middle",txt.tspan=!1,txt.width=Math.max(labelBoxWidth??0,50),txt.height=labelBoxHeight+("neo"===conf2.look?15:0)||20,txt.textMargin=boxTextMargin,txt.class="labelText",drawLabel(g,txt),txt=getTextObj2(),txt.text=loopModel.title,txt.x=loopModel.startx+labelBoxWidth/2+(loopModel.stopx-loopModel.startx)/2,txt.y=loopModel.starty+boxMargin+boxTextMargin,txt.anchor="middle",txt.valign="middle",txt.textMargin=boxTextMargin,txt.class="loopText",txt.fontFamily=fontFamily,txt.fontSize=fontSize,txt.fontWeight=fontWeight,txt.wrap=!0;let textElem=hasKatex(txt.text)?await drawKatex(g,txt,loopModel):drawText(g,txt);if(void 0!==loopModel.sectionTitles)for(const[idx,item]of Object.entries(loopModel.sectionTitles))if(item.message){txt.text=item.message,txt.x=loopModel.startx+(loopModel.stopx-loopModel.startx)/2,txt.y=loopModel.sections[idx].y+boxMargin+boxTextMargin,txt.class="loopText",txt.anchor="middle",txt.valign="middle",txt.tspan=!1,txt.fontFamily=fontFamily,txt.fontSize=fontSize,txt.fontWeight=fontWeight,txt.wrap=loopModel.wrap,hasKatex(txt.text)?(loopModel.starty=loopModel.sections[idx].y,await drawKatex(g,txt,loopModel)):drawText(g,txt);let sectionHeight=Math.round(textElem.map(te=>(te._groups||te)[0][0].getBBox().height).reduce((acc,curr)=>acc+curr));loopModel.sections[idx].height+=sectionHeight-(boxMargin+boxTextMargin)}return loopModel.height=Math.round(loopModel.stopy-loopModel.starty),g},"drawLoop"),drawBackgroundRect2=__name(function(elem,bounds2){drawBackgroundRect(elem,bounds2)},"drawBackgroundRect"),insertDatabaseIcon=__name(function(elem,id){elem.append("defs").append("symbol").attr("id",id+"-database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),insertComputerIcon=__name(function(elem,id){elem.append("defs").append("symbol").attr("id",id+"-computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),insertClockIcon=__name(function(elem,id){elem.append("defs").append("symbol").attr("id",id+"-clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),insertArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),insertArrowFilledHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),insertSequenceNumber=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),insertArrowCrossHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),insertDropShadow=__name(function(elem,conf2){const{theme:theme}=conf2;elem.append("defs").append("filter").attr("id","drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",""+("redux"===theme||"redux-color"===theme?"#000000":"#FFFFFF"))},"insertDropShadow"),getTextObj2=__name(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),getNoteRect2=__name(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),_drawTextCandidateFunc=function(){function byText(content,g,x,y,width,height,textAttrs){_setTextAttrs(g.append("text").attr("x",x+width/2).attr("y",y+height/2+5).style("text-anchor","middle").text(content),textAttrs)}function byTspan(content,g,x,y,width,height,textAttrs,conf2){const{actorFontSize:actorFontSize,actorFontFamily:actorFontFamily,actorFontWeight:actorFontWeight}=conf2,[_actorFontSize,_actorFontSizePx]=parseFontSize(actorFontSize),lines=content.split(common_default.lineBreakRegex);for(let i=0;i<lines.length;i++){const dy=i*_actorFontSize-_actorFontSize*(lines.length-1)/2,text=g.append("text").attr("x",x+width/2).attr("y",y).style("text-anchor","middle").style("font-size",_actorFontSizePx).style("font-weight",actorFontWeight).style("font-family",actorFontFamily);text.append("tspan").attr("x",x+width/2).attr("dy",dy).text(lines[i]),text.attr("y",y+height/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),_setTextAttrs(text,textAttrs)}}function byFo(content,g,x,y,width,height,textAttrs,conf2){const s=g.append("switch"),text=s.append("foreignObject").attr("x",x).attr("y",y).attr("width",width).attr("height",height).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");text.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(content),byTspan(content,s,x,y,width,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}async function byKatex(content,g,x,y,width,height,textAttrs,conf2){const dim=await calculateMathMLDimensions(content,getConfig()),s=g.append("switch"),text=s.append("foreignObject").attr("x",x+width/2-dim.width/2).attr("y",y+height/2-dim.height/2).attr("width",dim.width).attr("height",dim.height).append("xhtml:div").style("height","100%").style("width","100%");text.append("div").style("text-align","center").style("vertical-align","middle").html(await renderKatexSanitized(content,getConfig())),byTspan(content,s,x,y,width,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}function _setTextAttrs(toText,fromTextAttrsDict){for(const key in fromTextAttrsDict)fromTextAttrsDict.hasOwnProperty(key)&&toText.attr(key,fromTextAttrsDict[key])}return __name(byText,"byText"),__name(byTspan,"byTspan"),__name(byFo,"byFo"),__name(byKatex,"byKatex"),__name(_setTextAttrs,"_setTextAttrs"),function(conf2,hasKatex2=!1){return hasKatex2?byKatex:"fo"===conf2.textPlacement?byFo:"old"===conf2.textPlacement?byText:byTspan}}(),_drawMenuItemTextCandidateFunc=function(){function byText(content,g,x,y,width,height,textAttrs){_setTextAttrs(g.append("text").attr("x",x).attr("y",y).style("text-anchor","start").text(content),textAttrs)}function byTspan(content,g,x,y,width,height,textAttrs,conf2){const{actorFontSize:actorFontSize,actorFontFamily:actorFontFamily,actorFontWeight:actorFontWeight}=conf2,lines=content.split(common_default.lineBreakRegex);for(let i=0;i<lines.length;i++){const dy=i*actorFontSize-actorFontSize*(lines.length-1)/2,text=g.append("text").attr("x",x).attr("y",y).style("text-anchor","start").style("font-size",actorFontSize).style("font-weight",actorFontWeight).style("font-family",actorFontFamily);text.append("tspan").attr("x",x).attr("dy",dy).text(lines[i]),text.attr("y",y+height/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),_setTextAttrs(text,textAttrs)}}function byFo(content,g,x,y,width,height,textAttrs,conf2){const s=g.append("switch"),text=s.append("foreignObject").attr("x",x).attr("y",y).attr("width",width).attr("height",height).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");text.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(content),byTspan(content,s,x,y,0,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}function _setTextAttrs(toText,fromTextAttrsDict){for(const key in fromTextAttrsDict)fromTextAttrsDict.hasOwnProperty(key)&&toText.attr(key,fromTextAttrsDict[key])}return __name(byText,"byText"),__name(byTspan,"byTspan"),__name(byFo,"byFo"),__name(_setTextAttrs,"_setTextAttrs"),function(conf2){return"fo"===conf2.textPlacement?byFo:"old"===conf2.textPlacement?byText:byTspan}}(),insertSolidTopArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-solidTopArrowHead").attr("refX",7.9).attr("refY",7.25).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 8 L 0 8 z")},"insertSolidTopArrowHead"),insertSolidBottomArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-solidBottomArrowHead").attr("refX",7.9).attr("refY",.75).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 0 L 0 8 z")},"insertSolidBottomArrowHead"),insertStickTopArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-stickTopArrowHead").attr("refX",7.5).attr("refY",7).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 7 7").attr("stroke","black").attr("stroke-width",1.5).attr("fill","none")},"insertStickTopArrowHead"),insertStickBottomArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-stickBottomArrowHead").attr("refX",7.5).attr("refY",0).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 7 L 7 0").attr("stroke","black").attr("stroke-width",1.5).attr("fill","none")},"insertStickBottomArrowHead"),svgDraw_default={drawRect:drawRect2,drawText:drawText,drawLabel:drawLabel,drawActor:drawActor,drawBox:drawBox,drawPopup:drawPopup,anchorElement:anchorElement,drawActivation:drawActivation,drawLoop:drawLoop,drawBackgroundRect:drawBackgroundRect2,insertArrowHead:insertArrowHead,insertArrowFilledHead:insertArrowFilledHead,insertSequenceNumber:insertSequenceNumber,insertArrowCrossHead:insertArrowCrossHead,insertDatabaseIcon:insertDatabaseIcon,insertComputerIcon:insertComputerIcon,insertClockIcon:insertClockIcon,getTextObj:getTextObj2,getNoteRect:getNoteRect2,fixLifeLineHeights:fixLifeLineHeights,sanitizeUrl:distExports.sanitizeUrl,insertDropShadow:insertDropShadow,insertSolidTopArrowHead:insertSolidTopArrowHead,insertSolidBottomArrowHead:insertSolidBottomArrowHead,insertStickTopArrowHead:insertStickTopArrowHead,insertStickBottomArrowHead:insertStickBottomArrowHead},conf={},bounds={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:__name(function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map(actor=>actor.height||0))+(0===this.loops.length?0:this.loops.map(it=>it.height||0).reduce((acc,h)=>acc+h))+(0===this.messages.length?0:this.messages.map(it=>it.height||0).reduce((acc,h)=>acc+h))+(0===this.notes.length?0:this.notes.map(it=>it.height||0).reduce((acc,h)=>acc+h))},"getHeight"),clear:__name(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:__name(function(boxModel){this.boxes.push(boxModel)},"addBox"),addActor:__name(function(actorModel){this.actors.push(actorModel)},"addActor"),addLoop:__name(function(loopModel){this.loops.push(loopModel)},"addLoop"),addMessage:__name(function(msgModel){this.messages.push(msgModel)},"addMessage"),addNote:__name(function(noteModel){this.notes.push(noteModel)},"addNote"),lastActor:__name(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:__name(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:__name(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:__name(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:__name(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,setConf(getConfig2())},"init"),updateVal:__name(function(obj,key,val,fun){void 0===obj[key]?obj[key]=val:obj[key]=fun(val,obj[key])},"updateVal"),updateBounds:__name(function(startx,starty,stopx,stopy){const _self=this;let cnt=0;function updateFn(type){return __name(function(item){cnt++;const n=_self.sequenceItems.length-cnt+1;_self.updateVal(item,"starty",starty-n*conf.boxMargin,Math.min),_self.updateVal(item,"stopy",stopy+n*conf.boxMargin,Math.max),_self.updateVal(bounds.data,"startx",startx-n*conf.boxMargin,Math.min),_self.updateVal(bounds.data,"stopx",stopx+n*conf.boxMargin,Math.max),"activation"!==type&&(_self.updateVal(item,"startx",startx-n*conf.boxMargin,Math.min),_self.updateVal(item,"stopx",stopx+n*conf.boxMargin,Math.max),_self.updateVal(bounds.data,"starty",starty-n*conf.boxMargin,Math.min),_self.updateVal(bounds.data,"stopy",stopy+n*conf.boxMargin,Math.max))},"updateItemBounds")}__name(updateFn,"updateFn"),this.sequenceItems.forEach(updateFn()),this.activations.forEach(updateFn("activation"))},"updateBounds"),insert:__name(function(startx,starty,stopx,stopy){const _startx=common_default.getMin(startx,stopx),_stopx=common_default.getMax(startx,stopx),_starty=common_default.getMin(starty,stopy),_stopy=common_default.getMax(starty,stopy);this.updateVal(bounds.data,"startx",_startx,Math.min),this.updateVal(bounds.data,"starty",_starty,Math.min),this.updateVal(bounds.data,"stopx",_stopx,Math.max),this.updateVal(bounds.data,"stopy",_stopy,Math.max),this.updateBounds(_startx,_starty,_stopx,_stopy)},"insert"),newActivation:__name(function(message,diagram2,actors){const actorRect=actors.get(message.from),stackedSize=actorActivations(message.from).length||0,x=actorRect.x+actorRect.width/2+(stackedSize-1)*conf.activationWidth/2;this.activations.push({startx:x,starty:this.verticalPos+2,stopx:x+conf.activationWidth,stopy:void 0,actor:message.from,anchored:svgDraw_default.anchorElement(diagram2)})},"newActivation"),endActivation:__name(function(message){const lastActorActivationIdx=this.activations.map(function(activation){return activation.actor}).lastIndexOf(message.from);return this.activations.splice(lastActorActivationIdx,1)[0]},"endActivation"),createLoop:__name(function(title={message:void 0,wrap:!1,width:void 0},fill){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:title.message,wrap:title.wrap,width:title.width,height:0,fill:fill}},"createLoop"),newLoop:__name(function(title={message:void 0,wrap:!1,width:void 0},fill){this.sequenceItems.push(this.createLoop(title,fill))},"newLoop"),endLoop:__name(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:__name(function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},"isLoopOverlap"),addSectionToLoop:__name(function(message){const loop=this.sequenceItems.pop();loop.sections=loop.sections||[],loop.sectionTitles=loop.sectionTitles||[],loop.sections.push({y:bounds.getVerticalPos(),height:0}),loop.sectionTitles.push(message),this.sequenceItems.push(loop)},"addSectionToLoop"),saveVerticalPos:__name(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:__name(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:__name(function(bump){this.verticalPos=this.verticalPos+bump,this.data.stopy=common_default.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:__name(function(){return this.verticalPos},"getVerticalPos"),getBounds:__name(function(){return{bounds:this.data,models:this.models}},"getBounds")},drawNote=__name(async function(elem,noteModel,id){bounds.bumpVerticalPos(conf.boxMargin),noteModel.height=conf.boxMargin,noteModel.starty=bounds.getVerticalPos();const rect=getNoteRect();rect.x=noteModel.startx,rect.y=noteModel.starty,rect.width=noteModel.width||conf.width,rect.class="note";const g=elem.append("g");g.attr("data-et","note"),g.attr("data-id","i"+id);const rectElem=svgDraw_default.drawRect(g,rect),textObj=getTextObj();textObj.x=noteModel.startx,textObj.y=noteModel.starty,textObj.width=rect.width,textObj.dy="1em",textObj.text=noteModel.message,textObj.class="noteText",textObj.fontFamily=conf.noteFontFamily,textObj.fontSize=conf.noteFontSize,textObj.fontWeight=conf.noteFontWeight,textObj.anchor=conf.noteAlign,textObj.textMargin=conf.noteMargin,textObj.valign="center";const textElem=hasKatex(textObj.text)?await drawKatex(g,textObj):drawText(g,textObj),textHeight=Math.round(textElem.map(te=>(te._groups||te)[0][0].getBBox().height).reduce((acc,curr)=>acc+curr));rectElem.attr("height",textHeight+2*conf.noteMargin),noteModel.height+=textHeight+2*conf.noteMargin,bounds.bumpVerticalPos(textHeight+2*conf.noteMargin),noteModel.stopy=noteModel.starty+textHeight+2*conf.noteMargin,noteModel.stopx=noteModel.startx+rect.width,bounds.insert(noteModel.startx,noteModel.starty,noteModel.stopx,noteModel.stopy),bounds.models.addNote(noteModel)},"drawNote"),drawCentralConnection=__name(function(elem,msg,msgModel,diagObj,startx,stopx,lineStartY){const actors=diagObj.db.getActors(),fromActor=actors.get(msg.from),toActor=actors.get(msg.to),isAutoNumberOn=msgModel.sequenceVisible;let fromCenter=fromActor.x+fromActor.width/2,toCenter=toActor.x+toActor.width/2;const isLeftToRight=fromCenter<=toCenter,isReverse=isReverseArrowType(msg,diagObj),g=elem.append("g"),getCircleOffset=__name((isLeftToRight2,isReverse2)=>{const baseOffset=isLeftToRight2?16.5:-16.5;return isReverse2?-baseOffset:baseOffset},"getCircleOffset"),drawCircle=__name(cx=>{g.append("circle").attr("cx",cx).attr("cy",lineStartY).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:CENTRAL_CONNECTION,CENTRAL_CONNECTION_REVERSE:CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL:CENTRAL_CONNECTION_DUAL}=diagObj.db.LINETYPE;if(isAutoNumberOn)switch(msg.centralConnection){case CENTRAL_CONNECTION:isReverse&&(toCenter+=getCircleOffset(isLeftToRight,!0));break;case CENTRAL_CONNECTION_REVERSE:isReverse||(fromCenter+=getCircleOffset(isLeftToRight,!1));break;case CENTRAL_CONNECTION_DUAL:isReverse?toCenter+=getCircleOffset(isLeftToRight,!0):fromCenter+=getCircleOffset(isLeftToRight,!1)}switch(msg.centralConnection){case CENTRAL_CONNECTION:drawCircle(toCenter);break;case CENTRAL_CONNECTION_REVERSE:drawCircle(fromCenter);break;case CENTRAL_CONNECTION_DUAL:drawCircle(fromCenter),drawCircle(toCenter)}},"drawCentralConnection"),messageFont=__name(cnf=>({fontFamily:cnf.messageFontFamily,fontSize:cnf.messageFontSize,fontWeight:cnf.messageFontWeight}),"messageFont"),noteFont=__name(cnf=>({fontFamily:cnf.noteFontFamily,fontSize:cnf.noteFontSize,fontWeight:cnf.noteFontWeight}),"noteFont"),actorFont=__name(cnf=>({fontFamily:cnf.actorFontFamily,fontSize:cnf.actorFontSize,fontWeight:cnf.actorFontWeight}),"actorFont");async function boundMessage(_diagram,msgModel){bounds.bumpVerticalPos(10);const{startx:startx,stopx:stopx,message:message}=msgModel,lines=common_default.splitBreaks(message).length,isKatexMsg=hasKatex(message),textDims=isKatexMsg?await calculateMathMLDimensions(message,getConfig2()):utils_default.calculateTextDimensions(message,messageFont(conf));if(!isKatexMsg){const lineHeight=textDims.height/lines;msgModel.height+=lineHeight,bounds.bumpVerticalPos(lineHeight)}let lineStartY,totalOffset=textDims.height-10;const textWidth=textDims.width;if(startx===stopx){lineStartY=bounds.getVerticalPos()+totalOffset,conf.rightAngles||(totalOffset+=conf.boxMargin,lineStartY=bounds.getVerticalPos()+totalOffset),totalOffset+=30;const dx=common_default.getMax(textWidth/2,conf.width/2);bounds.insert(startx-dx,bounds.getVerticalPos()-10+totalOffset,stopx+dx,bounds.getVerticalPos()+30+totalOffset)}else totalOffset+=conf.boxMargin,lineStartY=bounds.getVerticalPos()+totalOffset,bounds.insert(startx,lineStartY-10,stopx,lineStartY);return bounds.bumpVerticalPos(totalOffset),msgModel.height+=totalOffset,msgModel.stopy=msgModel.starty+msgModel.height,bounds.insert(msgModel.fromBounds,msgModel.starty,msgModel.toBounds,msgModel.stopy),lineStartY}__name(boundMessage,"boundMessage");var drawMessage=__name(async function(diagram2,msgModel,lineStartY,diagObj,msg,diagramId){const{startx:startx,stopx:stopx,starty:starty,message:message,type:type,sequenceIndex:sequenceIndex,sequenceVisible:sequenceVisible}=msgModel,textDims=utils_default.calculateTextDimensions(message,messageFont(conf)),textObj=getTextObj();textObj.x=startx,textObj.y=starty+10,textObj.width=stopx-startx,textObj.class="messageText",textObj.dy="1em",textObj.text=message,textObj.fontFamily=conf.messageFontFamily,textObj.fontSize=conf.messageFontSize,textObj.fontWeight=conf.messageFontWeight,textObj.anchor=conf.messageAlign,textObj.valign="center",textObj.textMargin=conf.wrapPadding,textObj.tspan=!1,hasKatex(textObj.text)?await drawKatex(diagram2,textObj,{startx:startx,stopx:stopx,starty:lineStartY}):drawText(diagram2,textObj);const textWidth=textDims.width;let line;if(startx===stopx){const isAutoNumberOn=sequenceVisible||conf.showSequenceNumbers,isReverse=isReverseArrowType(msg,diagObj),isBidirectional=isBidirectionalArrowType(msg,diagObj),lineStartX=startx+(isAutoNumberOn&&(isReverse||isBidirectional)?10:0);line=conf.rightAngles?diagram2.append("path").attr("d",`M ${lineStartX},${lineStartY} H ${startx+common_default.getMax(conf.width/2,textWidth/2)} V ${lineStartY+25} H ${startx}`):diagram2.append("path").attr("d","M "+lineStartX+","+lineStartY+" C "+(lineStartX+60)+","+(lineStartY-10)+" "+(startx+60)+","+(lineStartY+30)+" "+startx+","+(lineStartY+20)),hasCentralConnection(msg,diagObj)&&drawCentralConnection(diagram2,msg,msgModel,diagObj,startx,stopx,lineStartY)}else line=diagram2.append("line"),line.attr("x1",startx),line.attr("y1",lineStartY),line.attr("x2",stopx),line.attr("y2",lineStartY),hasCentralConnection(msg,diagObj)&&drawCentralConnection(diagram2,msg,msgModel,diagObj,startx,stopx,lineStartY);type===diagObj.db.LINETYPE.DOTTED||type===diagObj.db.LINETYPE.DOTTED_CROSS||type===diagObj.db.LINETYPE.DOTTED_POINT||type===diagObj.db.LINETYPE.DOTTED_OPEN||type===diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED||type===diagObj.db.LINETYPE.SOLID_TOP_DOTTED||type===diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED||type===diagObj.db.LINETYPE.STICK_TOP_DOTTED||type===diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED||type===diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(line.style("stroke-dasharray","3, 3"),line.attr("class","messageLine1")):line.attr("class","messageLine0"),line.attr("data-et","message"),line.attr("data-id","i"+msgModel.id),line.attr("data-from",msgModel.from),line.attr("data-to",msgModel.to);let url="";if(conf.arrowMarkerAbsolute&&(url=getUrl(!0)),line.attr("stroke-width",2),line.attr("stroke","none"),line.style("fill","none"),type!==diagObj.db.LINETYPE.SOLID_TOP&&type!==diagObj.db.LINETYPE.SOLID_TOP_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-solidTopArrowHead)"),type!==diagObj.db.LINETYPE.SOLID_BOTTOM&&type!==diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-solidBottomArrowHead)"),type!==diagObj.db.LINETYPE.STICK_TOP&&type!==diagObj.db.LINETYPE.STICK_TOP_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-stickTopArrowHead)"),type!==diagObj.db.LINETYPE.STICK_BOTTOM&&type!==diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-stickBottomArrowHead)"),type!==diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE&&type!==diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-solidBottomArrowHead)"),type!==diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE&&type!==diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-solidTopArrowHead)"),type!==diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE&&type!==diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-stickBottomArrowHead)"),type!==diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE&&type!==diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-stickTopArrowHead)"),type!==diagObj.db.LINETYPE.SOLID&&type!==diagObj.db.LINETYPE.DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-arrowhead)"),type!==diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID&&type!==diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED||(line.attr("marker-start","url("+url+"#"+diagramId+"-arrowhead)"),line.attr("marker-end","url("+url+"#"+diagramId+"-arrowhead)")),type!==diagObj.db.LINETYPE.SOLID_POINT&&type!==diagObj.db.LINETYPE.DOTTED_POINT||line.attr("marker-end","url("+url+"#"+diagramId+"-filled-head)"),type!==diagObj.db.LINETYPE.SOLID_CROSS&&type!==diagObj.db.LINETYPE.DOTTED_CROSS||line.attr("marker-end","url("+url+"#"+diagramId+"-crosshead)"),sequenceVisible||conf.showSequenceNumbers){const isBidirectional=type===diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID||type===diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED,isReverseArrowType2=type===diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||type===diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||type===diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE||type===diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||type===diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,SEQUENCE_NUMBER_RADIUS=6,hasCentralConn=hasCentralConnection(msg,diagObj);let lineStartX=startx,lineStopX=stopx;isBidirectional?(startx<stopx?lineStartX=startx+2*SEQUENCE_NUMBER_RADIUS:(lineStartX=startx-SEQUENCE_NUMBER_RADIUS+(hasCentralConn?-5:0),lineStartX+=(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_DUAL||(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),line.attr("x1",lineStartX)):isReverseArrowType2?(stopx>startx?lineStopX=stopx-2*SEQUENCE_NUMBER_RADIUS:(lineStopX=stopx-SEQUENCE_NUMBER_RADIUS,lineStartX+=(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_DUAL||(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),lineStopX+=hasCentralConn?15:0,line.attr("x2",lineStopX),line.attr("x1",lineStartX)):line.attr("x1",startx+SEQUENCE_NUMBER_RADIUS);let autonumberX=0;const isLeftToRight=startx<=stopx;autonumberX=startx===stopx?msgModel.fromBounds+1:isReverseArrowType2?isLeftToRight?msgModel.toBounds-1:msgModel.fromBounds+1:isLeftToRight?msgModel.fromBounds+1:msgModel.toBounds-1,diagram2.append("line").attr("x1",autonumberX).attr("y1",lineStartY).attr("x2",autonumberX).attr("y2",lineStartY).attr("stroke-width",0).attr("marker-start","url("+url+"#"+diagramId+"-sequencenumber)"),diagram2.append("text").attr("x",autonumberX).attr("y",lineStartY+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(sequenceIndex)}},"drawMessage"),addActorRenderingData=__name(function(diagram2,actors,createdActors,actorKeys,verticalPos,messages,isFooter){let prevBox,prevWidth=0,prevMargin=0,maxHeight=0;for(const actorKey of actorKeys){const actor=actors.get(actorKey),box=actor.box;prevBox&&prevBox!=box&&(isFooter||bounds.models.addBox(prevBox),prevMargin+=conf.boxMargin+prevBox.margin),box&&box!=prevBox&&(isFooter||(box.x=prevWidth+prevMargin,box.y=verticalPos),prevMargin+=box.margin),actor.width=common_default.getMax(actor.width||conf.width,conf.width),actor.height=common_default.getMax(actor.height||conf.height,conf.height),actor.margin=actor.margin||conf.actorMargin,maxHeight=common_default.getMax(maxHeight,actor.height),createdActors.get(actor.name)&&(prevMargin+=actor.width/2),actor.x=prevWidth+prevMargin,actor.starty=bounds.getVerticalPos(),bounds.insert(actor.x,verticalPos,actor.x+actor.width,actor.height),prevWidth+=actor.width+prevMargin,actor.box&&(actor.box.width=prevWidth+box.margin-actor.box.x),prevMargin=actor.margin,prevBox=actor.box,bounds.models.addActor(actor)}prevBox&&!isFooter&&bounds.models.addBox(prevBox),bounds.bumpVerticalPos(maxHeight)},"addActorRenderingData"),drawActors=__name(async function(diagram2,actors,actorKeys,isFooter,diagramId,diagObj,actorIndexMap){if(isFooter){let maxHeight=0;bounds.bumpVerticalPos(2*conf.boxMargin);for(const actorKey of actorKeys){const actor=actors.get(actorKey);actor.stopy||(actor.stopy=bounds.getVerticalPos());const height=await svgDraw_default.drawActor(diagram2,actor,conf,!0,diagramId,diagObj,actorIndexMap);maxHeight=common_default.getMax(maxHeight,height)}bounds.bumpVerticalPos(maxHeight+conf.boxMargin)}else for(const actorKey of actorKeys){const actor=actors.get(actorKey);await svgDraw_default.drawActor(diagram2,actor,conf,!1,diagramId,diagObj,actorIndexMap)}},"drawActors"),drawActorsPopup=__name(function(diagram2,actors,actorKeys,doc){let maxHeight=0,maxWidth=0;for(const actorKey of actorKeys){const actor=actors.get(actorKey),minMenuWidth=getRequiredPopupWidth(actor),menuDimensions=svgDraw_default.drawPopup(diagram2,actor,minMenuWidth,conf,conf.forceMenus,doc);menuDimensions.height>maxHeight&&(maxHeight=menuDimensions.height),menuDimensions.width+actor.x>maxWidth&&(maxWidth=menuDimensions.width+actor.x)}return{maxHeight:maxHeight,maxWidth:maxWidth}},"drawActorsPopup"),setConf=__name(function(cnf){assignWithDepth_default(conf,cnf),cnf.fontFamily&&(conf.actorFontFamily=conf.noteFontFamily=conf.messageFontFamily=cnf.fontFamily),cnf.fontSize&&(conf.actorFontSize=conf.noteFontSize=conf.messageFontSize=cnf.fontSize),cnf.fontWeight&&(conf.actorFontWeight=conf.noteFontWeight=conf.messageFontWeight=cnf.fontWeight)},"setConf"),actorActivations=__name(function(actor){return bounds.activations.filter(function(activation){return activation.actor===actor})},"actorActivations"),activationBounds=__name(function(actor,actors){const actorObj=actors.get(actor),activations=actorActivations(actor);return[activations.reduce(function(acc,activation){return common_default.getMin(acc,activation.startx)},actorObj.x+actorObj.width/2-1),activations.reduce(function(acc,activation){return common_default.getMax(acc,activation.stopx)},actorObj.x+actorObj.width/2+1)]},"activationBounds");function adjustLoopHeightForWrap(loopWidths,msg,preMargin,postMargin,addLoopFn){bounds.bumpVerticalPos(preMargin);let heightAdjust=postMargin;if(msg.id&&msg.message&&loopWidths[msg.id]){const loopWidth=loopWidths[msg.id].width,textConf=messageFont(conf);msg.message=utils_default.wrapLabel(`[${msg.message}]`,loopWidth-2*conf.wrapPadding,textConf),msg.width=loopWidth,msg.wrap=!0;const textDims=utils_default.calculateTextDimensions(msg.message,textConf),totalOffset=common_default.getMax(textDims.height,conf.labelBoxHeight);heightAdjust=postMargin+totalOffset,log.debug(`${totalOffset} - ${msg.message}`)}addLoopFn(msg),bounds.bumpVerticalPos(heightAdjust)}function adjustCreatedDestroyedData(msg,msgModel,lineStartY,index,actors,createdActors,destroyedActors){function receiverAdjustment(actor,adjustment){actor.x<actors.get(msg.from).x?(bounds.insert(msgModel.stopx-adjustment,msgModel.starty,msgModel.startx,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.stopx=msgModel.stopx+adjustment):(bounds.insert(msgModel.startx,msgModel.starty,msgModel.stopx+adjustment,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.stopx=msgModel.stopx-adjustment)}function senderAdjustment(actor,adjustment){actor.x<actors.get(msg.to).x?(bounds.insert(msgModel.startx-adjustment,msgModel.starty,msgModel.stopx,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.startx=msgModel.startx+adjustment):(bounds.insert(msgModel.stopx,msgModel.starty,msgModel.startx+adjustment,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.startx=msgModel.startx-adjustment)}__name(receiverAdjustment,"receiverAdjustment"),__name(senderAdjustment,"senderAdjustment");const actorArray=[PARTICIPANT_TYPE_ACTOR,PARTICIPANT_TYPE_CONTROL,PARTICIPANT_TYPE_ENTITY,PARTICIPANT_TYPE_DATABASE];if(createdActors.get(msg.to)==index){const actor=actors.get(msg.to);receiverAdjustment(actor,actorArray.includes(actor.type)?21:actor.width/2+3),actor.starty=lineStartY-actor.height/2,bounds.bumpVerticalPos(actor.height/2)}else if(destroyedActors.get(msg.from)==index){const actor=actors.get(msg.from);if(conf.mirrorActors){senderAdjustment(actor,actorArray.includes(actor.type)?18:actor.width/2)}actor.stopy=lineStartY-actor.height/2,bounds.bumpVerticalPos(actor.height/2)}else if(destroyedActors.get(msg.to)==index){const actor=actors.get(msg.to);if(conf.mirrorActors){receiverAdjustment(actor,actorArray.includes(actor.type)?21:actor.width/2+3)}actor.stopy=lineStartY-actor.height/2,bounds.bumpVerticalPos(actor.height/2)}}__name(adjustLoopHeightForWrap,"adjustLoopHeightForWrap"),__name(adjustCreatedDestroyedData,"adjustCreatedDestroyedData");var draw=__name(async function(_text,id,_version,diagObj){const{securityLevel:securityLevel,sequence:sequence,look:look}=getConfig2();let sandboxElement;conf=sequence,"sandbox"===securityLevel&&(sandboxElement=select("#i"+id));const root=select("sandbox"===securityLevel?sandboxElement.nodes()[0].contentDocument.body:"body"),doc="sandbox"===securityLevel?sandboxElement.nodes()[0].contentDocument:document;bounds.init(),log.debug(diagObj.db);const diagram2="sandbox"===securityLevel?root.select(`[id="${id}"]`):select(`[id="${id}"]`),actors=diagObj.db.getActors(),createdActors=diagObj.db.getCreatedActors(),destroyedActors=diagObj.db.getDestroyedActors(),boxes=diagObj.db.getBoxes();let actorKeys=diagObj.db.getActorKeys();const messages=diagObj.db.getMessages(),title=diagObj.db.getDiagramTitle(),hasBoxes=diagObj.db.hasAtLeastOneBox(),hasBoxTitles=diagObj.db.hasAtLeastOneBoxWithTitle(),maxMessageWidthPerActor=await getMaxMessageWidthPerActor(actors,messages,diagObj);if(conf.height=await calculateActorMargins(actors,maxMessageWidthPerActor,boxes),svgDraw_default.insertComputerIcon(diagram2,id),svgDraw_default.insertDatabaseIcon(diagram2,id),svgDraw_default.insertClockIcon(diagram2,id),hasBoxes&&(bounds.bumpVerticalPos(conf.boxMargin),hasBoxTitles&&bounds.bumpVerticalPos(boxes[0].textMaxHeight)),!0===conf.hideUnusedParticipants){const newActors=new Set;messages.forEach(message=>{newActors.add(message.from),newActors.add(message.to)}),actorKeys=actorKeys.filter(actorKey=>newActors.has(actorKey))}const actorIndexMap=new Map(actorKeys.map((actorKey,index2)=>{var _a2;return[(null==(_a2=actors.get(actorKey))?void 0:_a2.name)??actorKey,index2]}));addActorRenderingData(diagram2,actors,createdActors,actorKeys,0,messages,!1);const loopWidths=await calculateLoopBounds(messages,actors,maxMessageWidthPerActor,diagObj);function activeEnd(msg,verticalPos){const activationData=bounds.endActivation(msg);activationData.starty+18>verticalPos&&(activationData.starty=verticalPos-6,verticalPos+=12),svgDraw_default.drawActivation(diagram2,activationData,verticalPos,conf,actorActivations(msg.from).length,diagObj,actorIndexMap),bounds.insert(activationData.startx,verticalPos-10,activationData.stopx,verticalPos)}svgDraw_default.insertArrowHead(diagram2,id),svgDraw_default.insertArrowCrossHead(diagram2,id),svgDraw_default.insertArrowFilledHead(diagram2,id),svgDraw_default.insertSequenceNumber(diagram2,id),svgDraw_default.insertSolidTopArrowHead(diagram2,id),svgDraw_default.insertSolidBottomArrowHead(diagram2,id),svgDraw_default.insertStickTopArrowHead(diagram2,id),svgDraw_default.insertStickBottomArrowHead(diagram2,id),"neo"===look&&svgDraw_default.insertDropShadow(diagram2,conf),__name(activeEnd,"activeEnd");let sequenceIndex=1,sequenceIndexStep=1;const messagesToDraw=[],backgrounds=[];let index=0;for(const msg of messages){let loopModel,noteModel,msgModel;switch(msg.type){case diagObj.db.LINETYPE.NOTE:bounds.resetVerticalPos(),noteModel=msg.noteModel,await drawNote(diagram2,noteModel,msg.id);break;case diagObj.db.LINETYPE.ACTIVE_START:case diagObj.db.LINETYPE.CENTRAL_CONNECTION:case diagObj.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:bounds.newActivation(msg,diagram2,actors);break;case diagObj.db.LINETYPE.ACTIVE_END:activeEnd(msg,bounds.getVerticalPos());break;case diagObj.db.LINETYPE.LOOP_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.LOOP_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"loop",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.RECT_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin,message=>bounds.newLoop(void 0,message.message));break;case diagObj.db.LINETYPE.RECT_END:loopModel=bounds.endLoop(),backgrounds.push(loopModel),bounds.models.addLoop(loopModel),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos());break;case diagObj.db.LINETYPE.OPT_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.OPT_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"opt",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.ALT_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.ALT_ELSE:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin+conf.boxTextMargin,conf.boxMargin,message=>bounds.addSectionToLoop(message));break;case diagObj.db.LINETYPE.ALT_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"alt",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.PAR_START:case diagObj.db.LINETYPE.PAR_OVER_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message)),bounds.saveVerticalPos();break;case diagObj.db.LINETYPE.PAR_AND:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin+conf.boxTextMargin,conf.boxMargin,message=>bounds.addSectionToLoop(message));break;case diagObj.db.LINETYPE.PAR_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"par",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.AUTONUMBER:sequenceIndex=msg.message.start||sequenceIndex,sequenceIndexStep=msg.message.step||sequenceIndexStep,msg.message.visible?diagObj.db.enableSequenceNumbers():diagObj.db.disableSequenceNumbers();break;case diagObj.db.LINETYPE.CRITICAL_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.CRITICAL_OPTION:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin+conf.boxTextMargin,conf.boxMargin,message=>bounds.addSectionToLoop(message));break;case diagObj.db.LINETYPE.CRITICAL_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"critical",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.BREAK_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.BREAK_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"break",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;default:try{msgModel=msg.msgModel,msgModel.starty=bounds.getVerticalPos(),msgModel.sequenceIndex=sequenceIndex,msgModel.sequenceVisible=diagObj.db.showSequenceNumbers(),msgModel.id=msg.id,msgModel.from=msg.from,msgModel.to=msg.to;const lineStartY=await boundMessage(0,msgModel);adjustCreatedDestroyedData(msg,msgModel,lineStartY,index,actors,createdActors,destroyedActors),messagesToDraw.push({messageModel:msgModel,lineStartY:lineStartY,msg:msg}),bounds.models.addMessage(msgModel)}catch(e){log.error("error while drawing message",e)}}[diagObj.db.LINETYPE.SOLID_OPEN,diagObj.db.LINETYPE.DOTTED_OPEN,diagObj.db.LINETYPE.SOLID,diagObj.db.LINETYPE.SOLID_TOP,diagObj.db.LINETYPE.SOLID_BOTTOM,diagObj.db.LINETYPE.STICK_TOP,diagObj.db.LINETYPE.STICK_BOTTOM,diagObj.db.LINETYPE.SOLID_TOP_DOTTED,diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED,diagObj.db.LINETYPE.STICK_TOP_DOTTED,diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.DOTTED,diagObj.db.LINETYPE.SOLID_CROSS,diagObj.db.LINETYPE.DOTTED_CROSS,diagObj.db.LINETYPE.SOLID_POINT,diagObj.db.LINETYPE.DOTTED_POINT,diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(msg.type)&&(sequenceIndex+=sequenceIndexStep),index++}log.debug("createdActors",createdActors),log.debug("destroyedActors",destroyedActors),await drawActors(diagram2,actors,actorKeys,!1,id,diagObj,actorIndexMap);for(const e of messagesToDraw)await drawMessage(diagram2,e.messageModel,e.lineStartY,diagObj,e.msg,id);conf.mirrorActors&&await drawActors(diagram2,actors,actorKeys,!0,id,diagObj,actorIndexMap),backgrounds.forEach(e=>svgDraw_default.drawBackgroundRect(diagram2,e)),fixLifeLineHeights(diagram2,actors,actorKeys,conf);for(const box2 of bounds.models.boxes){box2.height=bounds.getVerticalPos()-box2.y,bounds.insert(box2.x,box2.y,box2.x+box2.width,box2.height);const boxPadding=2*conf.boxMargin;box2.startx=box2.x-boxPadding,box2.starty=box2.y-.25*boxPadding,box2.stopx=box2.startx+box2.width+2*boxPadding,box2.stopy=box2.starty+box2.height+.75*boxPadding,box2.stroke="rgb(0,0,0, 0.5)",svgDraw_default.drawBox(diagram2,box2,conf)}hasBoxes&&bounds.bumpVerticalPos(conf.boxMargin);const requiredBoxSize=drawActorsPopup(diagram2,actors,actorKeys,doc),{bounds:box}=bounds.getBounds();void 0===box.startx&&(box.startx=0),void 0===box.starty&&(box.starty=0),void 0===box.stopx&&(box.stopx=0),void 0===box.stopy&&(box.stopy=0);let boxHeight=box.stopy-box.starty;boxHeight<requiredBoxSize.maxHeight&&(boxHeight=requiredBoxSize.maxHeight);let height=boxHeight+2*conf.diagramMarginY;conf.mirrorActors&&(height=height-conf.boxMargin+conf.bottomMarginAdj);let boxWidth=box.stopx-box.startx;boxWidth<requiredBoxSize.maxWidth&&(boxWidth=requiredBoxSize.maxWidth);const width=boxWidth+2*conf.diagramMarginX;title&&diagram2.append("text").text(title).attr("x",(box.stopx-box.startx)/2-2*conf.diagramMarginX).attr("y",-25),configureSvgSize(diagram2,height,width,conf.useMaxWidth);const extraVertForTitle=title?40:0,extraHeightForNeoActors=actors.size&&"neo"===look?30:0;diagram2.attr("viewBox",box.startx-conf.diagramMarginX+" -"+(conf.diagramMarginY+extraVertForTitle)+" "+width+" "+(height+extraVertForTitle+extraHeightForNeoActors)),log.debug("models:",bounds.models)},"draw");async function getMaxMessageWidthPerActor(actors,messages,diagObj){const maxMessageWidthPerActor={};for(const msg of messages)if(actors.get(msg.to)&&actors.get(msg.from)){const actor=actors.get(msg.to);if(msg.placement===diagObj.db.PLACEMENT.LEFTOF&&!actor.prevActor)continue;if(msg.placement===diagObj.db.PLACEMENT.RIGHTOF&&!actor.nextActor)continue;const isNote=void 0!==msg.placement,isMessage=!isNote,textFont=isNote?noteFont(conf):messageFont(conf),wrappedMessage=msg.wrap?utils_default.wrapLabel(msg.message,conf.width-2*conf.wrapPadding,textFont):msg.message,messageWidth=(hasKatex(wrappedMessage)?await calculateMathMLDimensions(msg.message,getConfig2()):utils_default.calculateTextDimensions(wrappedMessage,textFont)).width+2*conf.wrapPadding;isMessage&&msg.from===actor.nextActor?maxMessageWidthPerActor[msg.to]=common_default.getMax(maxMessageWidthPerActor[msg.to]||0,messageWidth):isMessage&&msg.from===actor.prevActor?maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth):isMessage&&msg.from===msg.to?(maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth/2),maxMessageWidthPerActor[msg.to]=common_default.getMax(maxMessageWidthPerActor[msg.to]||0,messageWidth/2)):msg.placement===diagObj.db.PLACEMENT.RIGHTOF?maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth):msg.placement===diagObj.db.PLACEMENT.LEFTOF?maxMessageWidthPerActor[actor.prevActor]=common_default.getMax(maxMessageWidthPerActor[actor.prevActor]||0,messageWidth):msg.placement===diagObj.db.PLACEMENT.OVER&&(actor.prevActor&&(maxMessageWidthPerActor[actor.prevActor]=common_default.getMax(maxMessageWidthPerActor[actor.prevActor]||0,messageWidth/2)),actor.nextActor&&(maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth/2)))}return log.debug("maxMessageWidthPerActor:",maxMessageWidthPerActor),maxMessageWidthPerActor}__name(getMaxMessageWidthPerActor,"getMaxMessageWidthPerActor");var getRequiredPopupWidth=__name(function(actor){let requiredPopupWidth=0;const textFont=actorFont(conf);for(const key in actor.links){const labelWidth=utils_default.calculateTextDimensions(key,textFont).width+2*conf.wrapPadding+2*conf.boxMargin;requiredPopupWidth<labelWidth&&(requiredPopupWidth=labelWidth)}return requiredPopupWidth},"getRequiredPopupWidth");async function calculateActorMargins(actors,actorToMessageWidth,boxes){let maxHeight=0;for(const prop of actors.keys()){const actor=actors.get(prop);actor.wrap&&(actor.description=utils_default.wrapLabel(actor.description,conf.width-2*conf.wrapPadding,actorFont(conf)));const actDims=hasKatex(actor.description)?await calculateMathMLDimensions(actor.description,getConfig2()):utils_default.calculateTextDimensions(actor.description,actorFont(conf));actor.width=actor.wrap?conf.width:common_default.getMax(conf.width,actDims.width+2*conf.wrapPadding),actor.height=actor.wrap?common_default.getMax(actDims.height,conf.height):conf.height,maxHeight=common_default.getMax(maxHeight,actor.height)}for(const actorKey in actorToMessageWidth){const actor=actors.get(actorKey);if(!actor)continue;const nextActor=actors.get(actor.nextActor);if(!nextActor){const actorWidth2=actorToMessageWidth[actorKey]+conf.actorMargin-actor.width/2;actor.margin=common_default.getMax(actorWidth2,conf.actorMargin);continue}const actorWidth=actorToMessageWidth[actorKey]+conf.actorMargin-actor.width/2-nextActor.width/2;actor.margin=common_default.getMax(actorWidth,conf.actorMargin)}let maxBoxHeight=0;return boxes.forEach(box=>{const textFont=messageFont(conf);let totalWidth=box.actorKeys.reduce((total,aKey)=>total+(actors.get(aKey).width+(actors.get(aKey).margin||0)),0);totalWidth+=8*conf.boxMargin,totalWidth-=2*conf.boxTextMargin,box.wrap&&(box.name=utils_default.wrapLabel(box.name,totalWidth-2*conf.wrapPadding,textFont));const boxMsgDimensions=utils_default.calculateTextDimensions(box.name,textFont);maxBoxHeight=common_default.getMax(boxMsgDimensions.height,maxBoxHeight);const minWidth=common_default.getMax(totalWidth,boxMsgDimensions.width+2*conf.wrapPadding);if(box.margin=conf.boxTextMargin,totalWidth<minWidth){const missing=(minWidth-totalWidth)/2;box.margin+=missing}}),boxes.forEach(box=>box.textMaxHeight=maxBoxHeight),common_default.getMax(maxHeight,conf.height)}__name(calculateActorMargins,"calculateActorMargins");var buildNoteModel=__name(async function(msg,actors,diagObj){const fromActor=actors.get(msg.from),toActor=actors.get(msg.to),startx=fromActor.x,stopx=toActor.x,shouldWrap=msg.wrap&&msg.message;let textDimensions=hasKatex(msg.message)?await calculateMathMLDimensions(msg.message,getConfig2()):utils_default.calculateTextDimensions(shouldWrap?utils_default.wrapLabel(msg.message,conf.width,noteFont(conf)):msg.message,noteFont(conf));const noteModel={width:shouldWrap?conf.width:common_default.getMax(conf.width,textDimensions.width+2*conf.noteMargin),height:0,startx:fromActor.x,stopx:0,starty:0,stopy:0,message:msg.message};return msg.placement===diagObj.db.PLACEMENT.RIGHTOF?(noteModel.width=shouldWrap?common_default.getMax(conf.width,textDimensions.width):common_default.getMax(fromActor.width/2+toActor.width/2,textDimensions.width+2*conf.noteMargin),noteModel.startx=startx+(fromActor.width+conf.actorMargin)/2):msg.placement===diagObj.db.PLACEMENT.LEFTOF?(noteModel.width=shouldWrap?common_default.getMax(conf.width,textDimensions.width+2*conf.noteMargin):common_default.getMax(fromActor.width/2+toActor.width/2,textDimensions.width+2*conf.noteMargin),noteModel.startx=startx-noteModel.width+(fromActor.width-conf.actorMargin)/2):msg.to===msg.from?(textDimensions=utils_default.calculateTextDimensions(shouldWrap?utils_default.wrapLabel(msg.message,common_default.getMax(conf.width,fromActor.width),noteFont(conf)):msg.message,noteFont(conf)),noteModel.width=shouldWrap?common_default.getMax(conf.width,fromActor.width):common_default.getMax(fromActor.width,conf.width,textDimensions.width+2*conf.noteMargin),noteModel.startx=startx+(fromActor.width-noteModel.width)/2):(noteModel.width=Math.abs(startx+fromActor.width/2-(stopx+toActor.width/2))+conf.actorMargin,noteModel.startx=startx<stopx?startx+fromActor.width/2-conf.actorMargin/2:stopx+toActor.width/2-conf.actorMargin/2),shouldWrap&&(noteModel.message=utils_default.wrapLabel(msg.message,noteModel.width-2*conf.wrapPadding,noteFont(conf))),log.debug(`NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`),noteModel},"buildNoteModel"),hasCentralConnection=__name(function(msg,diagObj){const{CENTRAL_CONNECTION:CENTRAL_CONNECTION,CENTRAL_CONNECTION_REVERSE:CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL:CENTRAL_CONNECTION_DUAL}=diagObj.db.LINETYPE;return[CENTRAL_CONNECTION,CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL].includes(msg.centralConnection)},"hasCentralConnection"),calculateCentralConnectionOffset=__name(function(msg,diagObj,isArrowToRight){const{CENTRAL_CONNECTION_REVERSE:CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL:CENTRAL_CONNECTION_DUAL,BIDIRECTIONAL_SOLID:BIDIRECTIONAL_SOLID,BIDIRECTIONAL_DOTTED:BIDIRECTIONAL_DOTTED}=diagObj.db.LINETYPE;let offset=0;return msg.centralConnection!==CENTRAL_CONNECTION_REVERSE&&msg.centralConnection!==CENTRAL_CONNECTION_DUAL||(offset+=4),msg.centralConnection!==CENTRAL_CONNECTION_REVERSE&&msg.centralConnection!==CENTRAL_CONNECTION_DUAL||msg.type!==BIDIRECTIONAL_SOLID&&msg.type!==BIDIRECTIONAL_DOTTED||(offset+=isArrowToRight?0:-6),offset},"calculateCentralConnectionOffset"),isReverseArrowType=__name(function(msg,diagObj){const{SOLID_ARROW_TOP_REVERSE:SOLID_ARROW_TOP_REVERSE,SOLID_ARROW_TOP_REVERSE_DOTTED:SOLID_ARROW_TOP_REVERSE_DOTTED,SOLID_ARROW_BOTTOM_REVERSE:SOLID_ARROW_BOTTOM_REVERSE,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:SOLID_ARROW_BOTTOM_REVERSE_DOTTED,STICK_ARROW_TOP_REVERSE:STICK_ARROW_TOP_REVERSE,STICK_ARROW_TOP_REVERSE_DOTTED:STICK_ARROW_TOP_REVERSE_DOTTED,STICK_ARROW_BOTTOM_REVERSE:STICK_ARROW_BOTTOM_REVERSE,STICK_ARROW_BOTTOM_REVERSE_DOTTED:STICK_ARROW_BOTTOM_REVERSE_DOTTED}=diagObj.db.LINETYPE;return[SOLID_ARROW_TOP_REVERSE,SOLID_ARROW_TOP_REVERSE_DOTTED,SOLID_ARROW_BOTTOM_REVERSE,SOLID_ARROW_BOTTOM_REVERSE_DOTTED,STICK_ARROW_TOP_REVERSE,STICK_ARROW_TOP_REVERSE_DOTTED,STICK_ARROW_BOTTOM_REVERSE,STICK_ARROW_BOTTOM_REVERSE_DOTTED].includes(msg.type)},"isReverseArrowType"),isBidirectionalArrowType=__name(function(msg,diagObj){const{BIDIRECTIONAL_SOLID:BIDIRECTIONAL_SOLID,BIDIRECTIONAL_DOTTED:BIDIRECTIONAL_DOTTED}=diagObj.db.LINETYPE;return[BIDIRECTIONAL_SOLID,BIDIRECTIONAL_DOTTED].includes(msg.type)},"isBidirectionalArrowType"),buildMessageModel=__name(function(msg,actors,diagObj){const{look:look}=getConfig2();if(![diagObj.db.LINETYPE.SOLID_OPEN,diagObj.db.LINETYPE.DOTTED_OPEN,diagObj.db.LINETYPE.SOLID,diagObj.db.LINETYPE.SOLID_TOP,diagObj.db.LINETYPE.SOLID_BOTTOM,diagObj.db.LINETYPE.STICK_TOP,diagObj.db.LINETYPE.STICK_BOTTOM,diagObj.db.LINETYPE.SOLID_TOP_DOTTED,diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED,diagObj.db.LINETYPE.STICK_TOP_DOTTED,diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.DOTTED,diagObj.db.LINETYPE.SOLID_CROSS,diagObj.db.LINETYPE.DOTTED_CROSS,diagObj.db.LINETYPE.SOLID_POINT,diagObj.db.LINETYPE.DOTTED_POINT,diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(msg.type))return{};const[fromLeft,fromRight]=activationBounds(msg.from,actors),[toLeft,toRight]=activationBounds(msg.to,actors),isArrowToRight=fromLeft<=toLeft;let startx=isArrowToRight?fromRight:fromLeft,stopx=isArrowToRight?toLeft:toRight;if("neo"===look){const offset=3;msg.type!==diagObj.db.LINETYPE.SOLID_OPEN&&(stopx+=isArrowToRight?-offset:offset),msg.type!==diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID&&msg.type!==diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED||(startx+=isArrowToRight?offset:-offset)}startx+=calculateCentralConnectionOffset(msg,diagObj,isArrowToRight);const isArrowToActivation=Math.abs(toLeft-toRight)>2,adjustValue=__name(value=>isArrowToRight?-value:value,"adjustValue");msg.from===msg.to?stopx=startx:(msg.activate&&!isArrowToActivation&&(stopx+=adjustValue(conf.activationWidth/2-1)),[diagObj.db.LINETYPE.SOLID_OPEN,diagObj.db.LINETYPE.DOTTED_OPEN,diagObj.db.LINETYPE.STICK_TOP,diagObj.db.LINETYPE.STICK_BOTTOM,diagObj.db.LINETYPE.STICK_TOP_DOTTED,diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(msg.type)||(stopx+=adjustValue(3)),[diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(msg.type)&&(startx-=adjustValue(3)));const allBounds=[fromLeft,fromRight,toLeft,toRight],boundedWidth=Math.abs(startx-stopx);msg.wrap&&msg.message&&(msg.message=utils_default.wrapLabel(msg.message,common_default.getMax(boundedWidth+2*conf.wrapPadding,conf.width),messageFont(conf)));const msgDims=utils_default.calculateTextDimensions(msg.message,messageFont(conf));return{width:common_default.getMax(msg.wrap?0:msgDims.width+2*conf.wrapPadding,boundedWidth+2*conf.wrapPadding,conf.width),height:0,startx:startx,stopx:stopx,starty:0,stopy:0,message:msg.message,type:msg.type,wrap:msg.wrap,fromBounds:Math.min.apply(null,allBounds),toBounds:Math.max.apply(null,allBounds)}},"buildMessageModel"),calculateLoopBounds=__name(async function(messages,actors,_maxWidthPerActor,diagObj){const loops={},stack=[];let current,noteModel,msgModel;for(const msg of messages){switch(msg.type){case diagObj.db.LINETYPE.LOOP_START:case diagObj.db.LINETYPE.ALT_START:case diagObj.db.LINETYPE.OPT_START:case diagObj.db.LINETYPE.PAR_START:case diagObj.db.LINETYPE.PAR_OVER_START:case diagObj.db.LINETYPE.CRITICAL_START:case diagObj.db.LINETYPE.BREAK_START:stack.push({id:msg.id,msg:msg.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case diagObj.db.LINETYPE.ALT_ELSE:case diagObj.db.LINETYPE.PAR_AND:case diagObj.db.LINETYPE.CRITICAL_OPTION:msg.message&&(current=stack.pop(),loops[current.id]=current,loops[msg.id]=current,stack.push(current));break;case diagObj.db.LINETYPE.LOOP_END:case diagObj.db.LINETYPE.ALT_END:case diagObj.db.LINETYPE.OPT_END:case diagObj.db.LINETYPE.PAR_END:case diagObj.db.LINETYPE.CRITICAL_END:case diagObj.db.LINETYPE.BREAK_END:current=stack.pop(),loops[current.id]=current;break;case diagObj.db.LINETYPE.ACTIVE_START:{const actorRect=actors.get(msg.from?msg.from:msg.to.actor),stackedSize=actorActivations(msg.from?msg.from:msg.to.actor).length,x=actorRect.x+actorRect.width/2+(stackedSize-1)*conf.activationWidth/2,toAdd={startx:x,stopx:x+conf.activationWidth,actor:msg.from,enabled:!0};bounds.activations.push(toAdd)}break;case diagObj.db.LINETYPE.ACTIVE_END:{const lastActorActivationIdx=bounds.activations.map(a=>a.actor).lastIndexOf(msg.from);bounds.activations.splice(lastActorActivationIdx,1).splice(0,1)}}void 0!==msg.placement?(noteModel=await buildNoteModel(msg,actors,diagObj),msg.noteModel=noteModel,stack.forEach(stk=>{current=stk,current.from=common_default.getMin(current.from,noteModel.startx),current.to=common_default.getMax(current.to,noteModel.startx+noteModel.width),current.width=common_default.getMax(current.width,Math.abs(current.from-current.to))-conf.labelBoxWidth})):(msgModel=buildMessageModel(msg,actors,diagObj),msg.msgModel=msgModel,msgModel.startx&&msgModel.stopx&&stack.length>0&&stack.forEach(stk=>{if(current=stk,msgModel.startx===msgModel.stopx){const from=actors.get(msg.from),to=actors.get(msg.to);current.from=common_default.getMin(from.x-msgModel.width/2,from.x-from.width/2,current.from),current.to=common_default.getMax(to.x+msgModel.width/2,to.x+from.width/2,current.to),current.width=common_default.getMax(current.width,Math.abs(current.to-current.from))-conf.labelBoxWidth}else current.from=common_default.getMin(msgModel.startx,current.from),current.to=common_default.getMax(msgModel.stopx,current.to),current.width=common_default.getMax(current.width,msgModel.width)-conf.labelBoxWidth}))}return bounds.activations=[],log.debug("Loop type widths:",loops),loops},"calculateLoopBounds"),sequenceRenderer_default={bounds:bounds,drawActors:drawActors,drawActorsPopup:drawActorsPopup,setConf:setConf,draw:draw},diagram={parser:sequenceDiagram_default,get db(){return new SequenceDB},renderer:sequenceRenderer_default,styles:styles_default,init:__name(cnf=>{cnf.sequence||(cnf.sequence={}),cnf.wrap&&(cnf.sequence.wrap=cnf.wrap,setConfig2({sequence:{wrap:cnf.wrap}}))},"init")};export{diagram};
|
|
1
|
+
var _a;import{_ as __name,n as setConfig2,c as getConfig2,d as select,l as log,j as distExports,e as configureSvgSize,f as assignWithDepth_default,k as common_default,b as setAccTitle,s as setAccDescription,p as setDiagramTitle,a as getAccTitle,g as getAccDescription,q as getDiagramTitle,t as load,J as JSON_SCHEMA,y as clear,i as sanitizeText,u as utils_default,K as hasKatex,L as calculateMathMLDimensions,M as parseFontSize,Z as ZERO_WIDTH_SPACE,C as getConfig,N as getUrl,O as renderKatexSanitized}from"./mermaid.core-YnqOkuoS.js";import{a as drawBackgroundRect,b as getTextObj,g as getNoteRect,d as drawRect,e as drawEmbeddedImage,f as drawImage}from"./chunk-YZCP3GAM-Bk3OysLK.js";import{I as ImperativeState}from"./chunk-QZHKN3VN-DuYVzv7E.js";import"./vendor-mdxeditor-CrZ9SWce.js";import"./vendor-antd-Dq3DHFa-.js";import"./vendor-codemirror-DjMkT0sn.js";import"./vendor-markdown-BFrYfpb0.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,2],$V1=[1,3],$V2=[1,4],$V3=[2,4],$V4=[1,9],$V5=[1,11],$V6=[1,12],$V7=[1,14],$V8=[1,15],$V9=[1,17],$Va=[1,18],$Vb=[1,19],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,42],$Vt=[1,43],$Vu=[1,44],$Vv=[1,45],$Vw=[1,46],$Vx=[1,47],$Vy=[1,4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,49,50,51,53,54,56,61,62,63,64,73],$Vz=[1,74],$VA=[1,80],$VB=[1,81],$VC=[1,82],$VD=[1,83],$VE=[1,84],$VF=[1,85],$VG=[1,86],$VH=[1,87],$VI=[1,88],$VJ=[1,89],$VK=[1,90],$VL=[1,91],$VM=[1,92],$VN=[1,93],$VO=[1,94],$VP=[1,95],$VQ=[1,96],$VR=[1,97],$VS=[1,98],$VT=[1,99],$VU=[1,100],$VV=[1,101],$VW=[1,102],$VX=[1,103],$VY=[1,104],$VZ=[1,105],$V_=[2,78],$V$=[4,5,17,51,53,54],$V01=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],$V11=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,50,51,53,54,56,61,62,63,64,73],$V21=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,49,51,53,54,56,61,62,63,64,73],$V31=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,51,53,54,56,61,62,63,64,73],$V41=[5,52],$V51=[70,71,72,73],$V61=[1,151],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,INVALID:10,box_section:11,box_line:12,participant_statement:13,create:14,box:15,restOfLine:16,end:17,signal:18,autonumber:19,NUM:20,off:21,activate:22,actor:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,legacy_title:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,loop:37,rect:38,opt:39,alt:40,else_sections:41,par:42,par_sections:43,par_over:44,critical:45,option_sections:46,break:47,option:48,and:49,else:50,participant:51,AS:52,participant_actor:53,destroy:54,actor_with_config:55,note:56,placement:57,text2:58,over:59,actor_pair:60,links:61,link:62,properties:63,details:64,spaceList:65,",":66,left_of:67,right_of:68,signaltype:69,"+":70,"-":71,"()":72,ACTOR:73,config_object:74,CONFIG_START:75,CONFIG_CONTENT:76,CONFIG_END:77,SOLID_OPEN_ARROW:78,DOTTED_OPEN_ARROW:79,SOLID_ARROW:80,SOLID_ARROW_TOP:81,SOLID_ARROW_BOTTOM:82,STICK_ARROW_TOP:83,STICK_ARROW_BOTTOM:84,SOLID_ARROW_TOP_DOTTED:85,SOLID_ARROW_BOTTOM_DOTTED:86,STICK_ARROW_TOP_DOTTED:87,STICK_ARROW_BOTTOM_DOTTED:88,SOLID_ARROW_TOP_REVERSE:89,SOLID_ARROW_BOTTOM_REVERSE:90,STICK_ARROW_TOP_REVERSE:91,STICK_ARROW_BOTTOM_REVERSE:92,SOLID_ARROW_TOP_REVERSE_DOTTED:93,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:94,STICK_ARROW_TOP_REVERSE_DOTTED:95,STICK_ARROW_BOTTOM_REVERSE_DOTTED:96,BIDIRECTIONAL_SOLID_ARROW:97,DOTTED_ARROW:98,BIDIRECTIONAL_DOTTED_ARROW:99,SOLID_CROSS:100,DOTTED_CROSS:101,SOLID_POINT:102,DOTTED_POINT:103,TXT:104,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",10:"INVALID",14:"create",15:"box",16:"restOfLine",17:"end",19:"autonumber",20:"NUM",21:"off",22:"activate",24:"deactivate",30:"title",31:"legacy_title",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"loop",38:"rect",39:"opt",40:"alt",42:"par",44:"par_over",45:"critical",47:"break",48:"option",49:"and",50:"else",51:"participant",52:"AS",53:"participant_actor",54:"destroy",56:"note",59:"over",61:"links",62:"link",63:"properties",64:"details",66:",",67:"left_of",68:"right_of",70:"+",71:"-",72:"()",73:"ACTOR",75:"CONFIG_START",76:"CONFIG_CONTENT",77:"CONFIG_END",78:"SOLID_OPEN_ARROW",79:"DOTTED_OPEN_ARROW",80:"SOLID_ARROW",81:"SOLID_ARROW_TOP",82:"SOLID_ARROW_BOTTOM",83:"STICK_ARROW_TOP",84:"STICK_ARROW_BOTTOM",85:"SOLID_ARROW_TOP_DOTTED",86:"SOLID_ARROW_BOTTOM_DOTTED",87:"STICK_ARROW_TOP_DOTTED",88:"STICK_ARROW_BOTTOM_DOTTED",89:"SOLID_ARROW_TOP_REVERSE",90:"SOLID_ARROW_BOTTOM_REVERSE",91:"STICK_ARROW_TOP_REVERSE",92:"STICK_ARROW_BOTTOM_REVERSE",93:"SOLID_ARROW_TOP_REVERSE_DOTTED",94:"SOLID_ARROW_BOTTOM_REVERSE_DOTTED",95:"STICK_ARROW_TOP_REVERSE_DOTTED",96:"STICK_ARROW_BOTTOM_REVERSE_DOTTED",97:"BIDIRECTIONAL_SOLID_ARROW",98:"DOTTED_ARROW",99:"BIDIRECTIONAL_DOTTED_ARROW",100:"SOLID_CROSS",101:"DOTTED_CROSS",102:"SOLID_POINT",103:"DOTTED_POINT",104:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[8,1],[11,0],[11,2],[12,2],[12,1],[12,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[46,1],[46,4],[43,1],[43,4],[41,1],[41,4],[13,5],[13,3],[13,5],[13,3],[13,3],[13,5],[13,3],[13,5],[13,3],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[65,2],[65,1],[60,3],[60,1],[57,1],[57,1],[18,5],[18,5],[18,5],[18,5],[18,6],[18,4],[55,2],[74,3],[23,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[58,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 3:return yy.apply($$[$0]),$$[$0];case 4:case 10:case 8:case 9:case 14:this.$=[];break;case 5:case 11:$$[$0-1].push($$[$0]),this.$=$$[$0-1];break;case 6:case 7:case 12:case 13:case 67:this.$=$$[$0];break;case 16:$$[$0].type="createParticipant",this.$=$$[$0];break;case 17:$$[$0-1].unshift({type:"boxStart",boxData:yy.parseBoxData($$[$0-2])}),$$[$0-1].push({type:"boxEnd",boxText:$$[$0-2]}),this.$=$$[$0-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number($$[$0-2]),sequenceIndexStep:Number($$[$0-1]),sequenceVisible:!0,signalType:yy.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number($$[$0-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:yy.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:yy.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:yy.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:yy.LINETYPE.ACTIVE_START,actor:$$[$0-1].actor};break;case 24:this.$={type:"activeEnd",signalType:yy.LINETYPE.ACTIVE_END,actor:$$[$0-1].actor};break;case 30:yy.setDiagramTitle($$[$0].substring(6)),this.$=$$[$0].substring(6);break;case 31:yy.setDiagramTitle($$[$0].substring(7)),this.$=$$[$0].substring(7);break;case 32:this.$=$$[$0].trim(),yy.setAccTitle(this.$);break;case 33:case 34:this.$=$$[$0].trim(),yy.setAccDescription(this.$);break;case 35:$$[$0-1].unshift({type:"loopStart",loopText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.LOOP_START}),$$[$0-1].push({type:"loopEnd",loopText:$$[$0-2],signalType:yy.LINETYPE.LOOP_END}),this.$=$$[$0-1];break;case 36:$$[$0-1].unshift({type:"rectStart",color:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.RECT_START}),$$[$0-1].push({type:"rectEnd",color:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.RECT_END}),this.$=$$[$0-1];break;case 37:$$[$0-1].unshift({type:"optStart",optText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.OPT_START}),$$[$0-1].push({type:"optEnd",optText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.OPT_END}),this.$=$$[$0-1];break;case 38:$$[$0-1].unshift({type:"altStart",altText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.ALT_START}),$$[$0-1].push({type:"altEnd",signalType:yy.LINETYPE.ALT_END}),this.$=$$[$0-1];break;case 39:$$[$0-1].unshift({type:"parStart",parText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.PAR_START}),$$[$0-1].push({type:"parEnd",signalType:yy.LINETYPE.PAR_END}),this.$=$$[$0-1];break;case 40:$$[$0-1].unshift({type:"parStart",parText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.PAR_OVER_START}),$$[$0-1].push({type:"parEnd",signalType:yy.LINETYPE.PAR_END}),this.$=$$[$0-1];break;case 41:$$[$0-1].unshift({type:"criticalStart",criticalText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.CRITICAL_START}),$$[$0-1].push({type:"criticalEnd",signalType:yy.LINETYPE.CRITICAL_END}),this.$=$$[$0-1];break;case 42:$$[$0-1].unshift({type:"breakStart",breakText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.BREAK_START}),$$[$0-1].push({type:"breakEnd",optText:yy.parseMessage($$[$0-2]),signalType:yy.LINETYPE.BREAK_END}),this.$=$$[$0-1];break;case 44:this.$=$$[$0-3].concat([{type:"option",optionText:yy.parseMessage($$[$0-1]),signalType:yy.LINETYPE.CRITICAL_OPTION},$$[$0]]);break;case 46:this.$=$$[$0-3].concat([{type:"and",parText:yy.parseMessage($$[$0-1]),signalType:yy.LINETYPE.PAR_AND},$$[$0]]);break;case 48:this.$=$$[$0-3].concat([{type:"else",altText:yy.parseMessage($$[$0-1]),signalType:yy.LINETYPE.ALT_ELSE},$$[$0]]);break;case 49:case 54:$$[$0-3].draw="participant",$$[$0-3].type="addParticipant",$$[$0-3].description=yy.parseMessage($$[$0-1]),this.$=$$[$0-3];break;case 50:case 55:$$[$0-1].draw="participant",$$[$0-1].type="addParticipant",this.$=$$[$0-1];break;case 51:case 56:$$[$0-3].draw="actor",$$[$0-3].type="addParticipant",$$[$0-3].description=yy.parseMessage($$[$0-1]),this.$=$$[$0-3];break;case 52:case 57:$$[$0-1].draw="actor",$$[$0-1].type="addParticipant",this.$=$$[$0-1];break;case 53:$$[$0-1].type="destroyParticipant",this.$=$$[$0-1];break;case 58:this.$=[$$[$0-1],{type:"addNote",placement:$$[$0-2],actor:$$[$0-1].actor,text:$$[$0]}];break;case 59:$$[$0-2]=[].concat($$[$0-1],$$[$0-1]).slice(0,2),$$[$0-2][0]=$$[$0-2][0].actor,$$[$0-2][1]=$$[$0-2][1].actor,this.$=[$$[$0-1],{type:"addNote",placement:yy.PLACEMENT.OVER,actor:$$[$0-2].slice(0,2),text:$$[$0]}];break;case 60:this.$=[$$[$0-1],{type:"addLinks",actor:$$[$0-1].actor,text:$$[$0]}];break;case 61:this.$=[$$[$0-1],{type:"addALink",actor:$$[$0-1].actor,text:$$[$0]}];break;case 62:this.$=[$$[$0-1],{type:"addProperties",actor:$$[$0-1].actor,text:$$[$0]}];break;case 63:this.$=[$$[$0-1],{type:"addDetails",actor:$$[$0-1].actor,text:$$[$0]}];break;case 66:this.$=[$$[$0-2],$$[$0]];break;case 68:this.$=yy.PLACEMENT.LEFTOF;break;case 69:this.$=yy.PLACEMENT.RIGHTOF;break;case 70:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0],activate:!0},{type:"activeStart",signalType:yy.LINETYPE.ACTIVE_START,actor:$$[$0-1].actor}];break;case 71:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0]},{type:"activeEnd",signalType:yy.LINETYPE.ACTIVE_END,actor:$$[$0-4].actor}];break;case 72:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0],activate:!0,centralConnection:yy.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:yy.LINETYPE.CENTRAL_CONNECTION,actor:$$[$0-1].actor}];break;case 73:this.$=[$$[$0-4],$$[$0-1],{type:"addMessage",from:$$[$0-4].actor,to:$$[$0-1].actor,signalType:$$[$0-2],msg:$$[$0],activate:!1,centralConnection:yy.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:yy.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:$$[$0-4].actor}];break;case 74:this.$=[$$[$0-5],$$[$0-1],{type:"addMessage",from:$$[$0-5].actor,to:$$[$0-1].actor,signalType:$$[$0-3],msg:$$[$0],activate:!0,centralConnection:yy.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:yy.LINETYPE.CENTRAL_CONNECTION,actor:$$[$0-1].actor},{type:"centralConnectionReverse",signalType:yy.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:$$[$0-5].actor}];break;case 75:this.$=[$$[$0-3],$$[$0-1],{type:"addMessage",from:$$[$0-3].actor,to:$$[$0-1].actor,signalType:$$[$0-2],msg:$$[$0]}];break;case 76:this.$={type:"addParticipant",actor:$$[$0-1],config:$$[$0]};break;case 77:this.$=$$[$0-1].trim();break;case 78:this.$={type:"addParticipant",actor:$$[$0]};break;case 79:this.$=yy.LINETYPE.SOLID_OPEN;break;case 80:this.$=yy.LINETYPE.DOTTED_OPEN;break;case 81:this.$=yy.LINETYPE.SOLID;break;case 82:this.$=yy.LINETYPE.SOLID_TOP;break;case 83:this.$=yy.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=yy.LINETYPE.STICK_TOP;break;case 85:this.$=yy.LINETYPE.STICK_BOTTOM;break;case 86:this.$=yy.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=yy.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=yy.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=yy.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=yy.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=yy.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=yy.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=yy.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=yy.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=yy.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=yy.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=yy.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=yy.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=yy.LINETYPE.DOTTED;break;case 100:this.$=yy.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=yy.LINETYPE.SOLID_CROSS;break;case 102:this.$=yy.LINETYPE.DOTTED_CROSS;break;case 103:this.$=yy.LINETYPE.SOLID_POINT;break;case 104:this.$=yy.LINETYPE.DOTTED_POINT;break;case 105:this.$=yy.parseMessage($$[$0].trim().substring(1))}},"anonymous"),table:[{3:1,4:$V0,5:$V1,6:$V2},{1:[3]},{3:5,4:$V0,5:$V1,6:$V2},{3:6,4:$V0,5:$V1,6:$V2},o([1,4,5,10,14,15,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],$V3,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},o($Vy,[2,5]),{9:48,13:13,14:$V7,15:$V8,18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},o($Vy,[2,7]),o($Vy,[2,8]),o($Vy,[2,9]),o($Vy,[2,15]),{13:49,51:$Vp,53:$Vq,54:$Vr},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:$Vx},{23:56,73:$Vx},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},o($Vy,[2,30]),o($Vy,[2,31]),{33:[1,62]},{35:[1,63]},o($Vy,[2,34]),{16:[1,64]},{16:[1,65]},{16:[1,66]},{16:[1,67]},{16:[1,68]},{16:[1,69]},{16:[1,70]},{16:[1,71]},{23:72,55:73,73:$Vz},{23:75,55:76,73:$Vz},{23:77,73:$Vx},{69:78,72:[1,79],78:$VA,79:$VB,80:$VC,81:$VD,82:$VE,83:$VF,84:$VG,85:$VH,86:$VI,87:$VJ,88:$VK,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,96:$VS,97:$VT,98:$VU,99:$VV,100:$VW,101:$VX,102:$VY,103:$VZ},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:$Vx},{23:111,73:$Vx},{23:112,73:$Vx},{23:113,73:$Vx},o([5,66,72,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],$V_),o($Vy,[2,6]),o($Vy,[2,16]),o($V$,[2,10],{11:114}),o($Vy,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},o($Vy,[2,22]),{5:[1,118]},{5:[1,119]},o($Vy,[2,25]),o($Vy,[2,26]),o($Vy,[2,27]),o($Vy,[2,28]),o($Vy,[2,29]),o($Vy,[2,32]),o($Vy,[2,33]),o($V01,$V3,{7:120}),o($V01,$V3,{7:121}),o($V01,$V3,{7:122}),o($V11,$V3,{41:123,7:124}),o($V21,$V3,{43:125,7:126}),o($V21,$V3,{7:126,43:127}),o($V31,$V3,{46:128,7:129}),o($V01,$V3,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},o($V41,$V_,{74:135,75:[1,136]}),{5:[1,138],52:[1,137]},{5:[1,140],52:[1,139]},{5:[1,141]},{23:145,70:[1,142],71:[1,143],72:[1,144],73:$Vx},{69:146,78:$VA,79:$VB,80:$VC,81:$VD,82:$VE,83:$VF,84:$VG,85:$VH,86:$VI,87:$VJ,88:$VK,89:$VL,90:$VM,91:$VN,92:$VO,93:$VP,94:$VQ,95:$VR,96:$VS,97:$VT,98:$VU,99:$VV,100:$VW,101:$VX,102:$VY,103:$VZ},o($V51,[2,79]),o($V51,[2,80]),o($V51,[2,81]),o($V51,[2,82]),o($V51,[2,83]),o($V51,[2,84]),o($V51,[2,85]),o($V51,[2,86]),o($V51,[2,87]),o($V51,[2,88]),o($V51,[2,89]),o($V51,[2,90]),o($V51,[2,91]),o($V51,[2,92]),o($V51,[2,93]),o($V51,[2,94]),o($V51,[2,95]),o($V51,[2,96]),o($V51,[2,97]),o($V51,[2,98]),o($V51,[2,99]),o($V51,[2,100]),o($V51,[2,101]),o($V51,[2,102]),o($V51,[2,103]),o($V51,[2,104]),{23:147,73:$Vx},{23:149,60:148,73:$Vx},{73:[2,68]},{73:[2,69]},{58:150,104:$V61},{58:152,104:$V61},{58:153,104:$V61},{58:154,104:$V61},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:$Vp,53:$Vq,54:$Vr},{5:[1,160]},o($Vy,[2,20]),o($Vy,[2,21]),o($Vy,[2,23]),o($Vy,[2,24]),{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,161],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,162],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,163],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{17:[1,164]},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[2,47],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,50:[1,165],51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{17:[1,166]},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[2,45],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,49:[1,167],51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{17:[1,168]},{17:[1,169]},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[2,43],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,48:[1,170],51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{4:$V4,5:$V5,8:8,9:10,10:$V6,13:13,14:$V7,15:$V8,17:[1,171],18:16,19:$V9,22:$Va,23:41,24:$Vb,25:20,26:21,27:22,28:23,29:24,30:$Vc,31:$Vd,32:$Ve,34:$Vf,36:$Vg,37:$Vh,38:$Vi,39:$Vj,40:$Vk,42:$Vl,44:$Vm,45:$Vn,47:$Vo,51:$Vp,53:$Vq,54:$Vr,56:$Vs,61:$Vt,62:$Vu,63:$Vv,64:$Vw,73:$Vx},{16:[1,172]},o($Vy,[2,50]),{16:[1,173]},o($Vy,[2,55]),o($V41,[2,76]),{76:[1,174]},{16:[1,175]},o($Vy,[2,52]),{16:[1,176]},o($Vy,[2,57]),o($Vy,[2,53]),{23:177,73:$Vx},{23:178,73:$Vx},{23:179,73:$Vx},{58:180,104:$V61},{23:181,72:[1,182],73:$Vx},{58:183,104:$V61},{58:184,104:$V61},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},o($Vy,[2,17]),o($V$,[2,11]),{13:186,51:$Vp,53:$Vq,54:$Vr},o($V$,[2,13]),o($V$,[2,14]),o($Vy,[2,19]),o($Vy,[2,35]),o($Vy,[2,36]),o($Vy,[2,37]),o($Vy,[2,38]),{16:[1,187]},o($Vy,[2,39]),{16:[1,188]},o($Vy,[2,40]),o($Vy,[2,41]),{16:[1,189]},o($Vy,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:$V61},{58:196,104:$V61},{58:197,104:$V61},{5:[2,75]},{58:198,104:$V61},{23:199,73:$Vx},{5:[2,58]},{5:[2,59]},{23:200,73:$Vx},o($V$,[2,12]),o($V11,$V3,{7:124,41:201}),o($V21,$V3,{7:126,43:202}),o($V31,$V3,{7:129,46:203}),o($Vy,[2,49]),o($Vy,[2,54]),o($V41,[2,77]),o($Vy,[2,51]),o($Vy,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:$V61},{104:[2,66]},{17:[2,48]},{17:[2,46]},{17:[2,44]},{5:[2,74]}],defaultActions:{5:[2,1],6:[2,2],108:[2,68],109:[2,69],150:[2,60],151:[2,105],152:[2,61],153:[2,62],154:[2,63],180:[2,75],183:[2,58],184:[2,59],195:[2,70],196:[2,71],197:[2,72],198:[2,73],200:[2,66],201:[2,48],202:[2,46],203:[2,44],204:[2,74]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.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),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 59:case 92:return 5;case 1:case 2:case 3:case 4:case 5:break;case 6:return 20;case 7:return this.begin("CONFIG"),75;case 8:return 76;case 9:return this.popState(),this.begin("ALIAS"),77;case 10:return this.popState(),this.popState(),77;case 11:case 60:return yy_.yytext=yy_.yytext.trim(),73;case 12:return yy_.yytext=yy_.yytext.trim(),this.begin("ALIAS"),73;case 13:return yy_.yytext=yy_.yytext.trim(),this.popState(),73;case 14:return this.popState(),10;case 15:return yy_.yytext=yy_.yytext.trim(),this.popState(),10;case 16:return this.begin("LINE"),15;case 17:return this.begin("ID"),51;case 18:return this.begin("ID"),53;case 19:return 14;case 20:return this.begin("ID"),54;case 21:return this.popState(),this.popState(),this.begin("LINE"),52;case 22:return this.popState(),this.popState(),5;case 23:return this.begin("LINE"),37;case 24:return this.begin("LINE"),38;case 25:return this.begin("LINE"),39;case 26:return this.begin("LINE"),40;case 27:return this.begin("LINE"),50;case 28:return this.begin("LINE"),42;case 29:return this.begin("LINE"),44;case 30:return this.begin("LINE"),49;case 31:return this.begin("LINE"),45;case 32:return this.begin("LINE"),48;case 33:return this.begin("LINE"),47;case 34:return this.popState(),16;case 35:return 17;case 36:return 67;case 37:return 68;case 38:return 61;case 39:return 62;case 40:return 63;case 41:return 64;case 42:return 59;case 43:return 56;case 44:return this.begin("ID"),22;case 45:return this.begin("ID"),24;case 46:return 30;case 47:return 31;case 48:return this.begin("acc_title"),32;case 49:return this.popState(),"acc_title_value";case 50:return this.begin("acc_descr"),34;case 51:return this.popState(),"acc_descr_value";case 52:this.begin("acc_descr_multiline");break;case 53:this.popState();break;case 54:return"acc_descr_multiline_value";case 55:return 6;case 56:return 19;case 57:return 21;case 58:return 66;case 61:return 80;case 62:return 97;case 63:return 98;case 64:return 99;case 65:return 78;case 66:return 79;case 67:return 100;case 68:return 101;case 69:return 102;case 70:return 103;case 71:return 85;case 72:return 86;case 73:return 87;case 74:return 88;case 75:return 93;case 76:return 94;case 77:return 95;case 78:return 96;case 79:return 81;case 80:return 82;case 81:return 83;case 82:return 84;case 83:return 89;case 84:return 90;case 85:return 91;case 86:return 92;case 87:case 88:return 104;case 89:return 70;case 90:return 71;case 91:return 72;case 93:return 10}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\}(?=\s+as\s))/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^<>:\n,;@\s]+(?=\s+as\s))/i,/^(?:[^<>:\n,;@]+(?=\s*[\n;#]|$))/i,/^(?:[^<>:\n,;@]*<[^\n]*)/i,/^(?:[^\n]+)/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\/\\\+\()\+<\->\->:\n,;]+((?!(-x|--x|-\)|--\)|-\|\\|-\\|-\/|-\/\/|-\|\/|\/\|-|\\\|-|\/\/-|\\\\-|\/\|-|--\|\\|--|\(\)))[\-]*[^\+<\->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?:--\|\\)/i,/^(?:--\|\/)/i,/^(?:--\\\\)/i,/^(?:--\/\/)/i,/^(?:\/\|--)/i,/^(?:\\\|--)/i,/^(?:\/\/--)/i,/^(?:\\\\--)/i,/^(?:-\|\\)/i,/^(?:-\|\/)/i,/^(?:-\\\\)/i,/^(?:-\/\/)/i,/^(?:\/\|-)/i,/^(?:\\\|-)/i,/^(?:\/\/-)/i,/^(?:\\\\-)/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\(\))/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[53,54],inclusive:!1},acc_descr:{rules:[51],inclusive:!1},acc_title:{rules:[49],inclusive:!1},ID:{rules:[2,3,7,11,12,13,14,15],inclusive:!1},ALIAS:{rules:[2,3,21,22],inclusive:!1},LINE:{rules:[2,3,34],inclusive:!1},CONFIG:{rules:[8,9,10],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,16,17,18,19,20,23,24,25,26,27,28,29,30,31,32,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var sequenceDiagram_default=parser,LINETYPE={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34,SOLID_TOP:41,SOLID_BOTTOM:42,STICK_TOP:43,STICK_BOTTOM:44,SOLID_ARROW_TOP_REVERSE:45,SOLID_ARROW_BOTTOM_REVERSE:46,STICK_ARROW_TOP_REVERSE:47,STICK_ARROW_BOTTOM_REVERSE:48,SOLID_TOP_DOTTED:51,SOLID_BOTTOM_DOTTED:52,STICK_TOP_DOTTED:53,STICK_BOTTOM_DOTTED:54,SOLID_ARROW_TOP_REVERSE_DOTTED:55,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:56,STICK_ARROW_TOP_REVERSE_DOTTED:57,STICK_ARROW_BOTTOM_REVERSE_DOTTED:58,CENTRAL_CONNECTION:59,CENTRAL_CONNECTION_REVERSE:60,CENTRAL_CONNECTION_DUAL:61},ARROWTYPE={FILLED:0,OPEN:1},PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},PARTICIPANT_TYPE_ACTOR="actor",PARTICIPANT_TYPE_CONTROL="control",PARTICIPANT_TYPE_DATABASE="database",PARTICIPANT_TYPE_ENTITY="entity",SequenceDB=(__name(_a=class{constructor(){this.state=new ImperativeState(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),this.setAccTitle=setAccTitle,this.setAccDescription=setAccDescription,this.setDiagramTitle=setDiagramTitle,this.getAccTitle=getAccTitle,this.getAccDescription=getAccDescription,this.getDiagramTitle=getDiagramTitle,this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(getConfig2().wrap),this.LINETYPE=LINETYPE,this.ARROWTYPE=ARROWTYPE,this.PLACEMENT=PLACEMENT}addBox(data){this.state.records.boxes.push({name:data.text,wrap:data.wrap??this.autoWrap(),fill:data.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(id,name,description,type,metadata){let doc,assignedBox=this.state.records.currentBox;if(void 0!==metadata){let yamlData;yamlData=metadata.includes("\n")?metadata+"\n":"{\n"+metadata+"\n}",doc=load(yamlData,{schema:JSON_SCHEMA})}type=(null==doc?void 0:doc.type)??type,!(null==doc?void 0:doc.alias)||description&&description.text!==name||(description={text:doc.alias,wrap:null==description?void 0:description.wrap,type:type});const old=this.state.records.actors.get(id);if(old){if(this.state.records.currentBox&&old.box&&this.state.records.currentBox!==old.box)throw new Error(`A same participant should only be defined in one Box: ${old.name} can't be in '${old.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(assignedBox=old.box?old.box:this.state.records.currentBox,old.box=assignedBox,old&&name===old.name&&null==description)return}if(null==(null==description?void 0:description.text)&&(description={text:name,type:type}),null!=type&&null!=description.text||(description={text:name,type:type}),this.state.records.actors.set(id,{box:assignedBox,name:name,description:description.text,wrap:description.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:type??"participant"}),this.state.records.prevActor){const prevActorInRecords=this.state.records.actors.get(this.state.records.prevActor);prevActorInRecords&&(prevActorInRecords.nextActor=id)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(id),this.state.records.prevActor=id}activationCount(part){let i,count=0;if(!part)return 0;for(i=0;i<this.state.records.messages.length;i++)this.state.records.messages[i].type===this.LINETYPE.ACTIVE_START&&this.state.records.messages[i].from===part&&count++,this.state.records.messages[i].type===this.LINETYPE.ACTIVE_END&&this.state.records.messages[i].from===part&&count--;return count}addMessage(idFrom,idTo,message,answer){this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:idFrom,to:idTo,message:message.text,wrap:message.wrap??this.autoWrap(),answer:answer})}addSignal(idFrom,idTo,message,messageType,activate=!1,centralConnection){if(messageType===this.LINETYPE.ACTIVE_END){if(this.activationCount(idFrom??"")<1){const error=new Error("Trying to inactivate an inactive participant ("+idFrom+")");throw error.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},error}}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:idFrom,to:idTo,message:(null==message?void 0:message.text)??"",wrap:(null==message?void 0:message.wrap)??this.autoWrap(),type:messageType,activate:activate,centralConnection:centralConnection??0}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(b=>b.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(id){return this.state.records.actors.get(id)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(wrapSetting){this.state.records.wrapEnabled=wrapSetting}extractWrap(text){if(void 0===text)return{};text=text.trim();const wrap=null!==/^:?wrap:/.exec(text)||null===/^:?nowrap:/.exec(text)&&void 0;return{cleanedText:(void 0===wrap?text:text.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:wrap}}autoWrap(){var _a2;return void 0!==this.state.records.wrapEnabled?this.state.records.wrapEnabled:(null==(_a2=getConfig2().sequence)?void 0:_a2.wrap)??!1}clear(){this.state.reset(),clear()}parseMessage(str){const trimmedStr=str.trim(),{wrap:wrap,cleanedText:cleanedText}=this.extractWrap(trimmedStr),message={text:cleanedText,wrap:wrap};return log.debug(`parseMessage: ${JSON.stringify(message)}`),message}parseBoxData(str){const match=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(str);let color=(null==match?void 0:match[1])?match[1].trim():"transparent",title=(null==match?void 0:match[2])?match[2].trim():void 0;if(null==window?void 0:window.CSS)window.CSS.supports("color",color)||(color="transparent",title=str.trim());else{const style=(new Option).style;style.color=color,style.color!==color&&(color="transparent",title=str.trim())}const{wrap:wrap,cleanedText:cleanedText}=this.extractWrap(title);return{text:cleanedText?sanitizeText(cleanedText,getConfig2()):void 0,color:color,wrap:wrap}}addNote(actor,placement,message){const note={actor:actor,placement:placement,message:message.text,wrap:message.wrap??this.autoWrap()},actors=[].concat(actor,actor);this.state.records.notes.push(note),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:actors[0],to:actors[1],message:message.text,wrap:message.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:placement})}addLinks(actorId,text){const actor=this.getActor(actorId);try{let sanitizedText=sanitizeText(text.text,getConfig2());sanitizedText=sanitizedText.replace(/=/g,"="),sanitizedText=sanitizedText.replace(/&/g,"&");const links=JSON.parse(sanitizedText);this.insertLinks(actor,links)}catch(e){log.error("error while parsing actor link text",e)}}addALink(actorId,text){const actor=this.getActor(actorId);try{const links={};let sanitizedText=sanitizeText(text.text,getConfig2());const sep=sanitizedText.indexOf("@");sanitizedText=sanitizedText.replace(/=/g,"="),sanitizedText=sanitizedText.replace(/&/g,"&");const label=sanitizedText.slice(0,sep-1).trim(),link=sanitizedText.slice(sep+1).trim();links[label]=link,this.insertLinks(actor,links)}catch(e){log.error("error while parsing actor link text",e)}}insertLinks(actor,links){if(null==actor.links)actor.links=links;else for(const key in links)actor.links[key]=links[key]}addProperties(actorId,text){const actor=this.getActor(actorId);try{const sanitizedText=sanitizeText(text.text,getConfig2()),properties=JSON.parse(sanitizedText);this.insertProperties(actor,properties)}catch(e){log.error("error while parsing actor properties text",e)}}insertProperties(actor,properties){if(null==actor.properties)actor.properties=properties;else for(const key in properties)actor.properties[key]=properties[key]}boxEnd(){this.state.records.currentBox=void 0}addDetails(actorId,text){const actor=this.getActor(actorId),elem=document.getElementById(text.text);try{const text2=elem.innerHTML,details=JSON.parse(text2);details.properties&&this.insertProperties(actor,details.properties),details.links&&this.insertLinks(actor,details.links)}catch(e){log.error("error while parsing actor details text",e)}}getActorProperty(actor,key){if(void 0!==(null==actor?void 0:actor.properties))return actor.properties[key]}apply(param){if(Array.isArray(param))param.forEach(item=>{this.apply(item)});else switch(param.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:param.sequenceIndex,step:param.sequenceIndexStep,visible:param.sequenceVisible},wrap:!1,type:param.signalType});break;case"addParticipant":this.addActor(param.actor,param.actor,param.description,param.draw,param.config);break;case"createParticipant":if(this.state.records.actors.has(param.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=param.actor,this.addActor(param.actor,param.actor,param.description,param.draw,param.config),this.state.records.createdActors.set(param.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=param.actor,this.state.records.destroyedActors.set(param.actor,this.state.records.messages.length);break;case"activeStart":case"centralConnection":case"centralConnectionReverse":case"activeEnd":this.addSignal(param.actor,void 0,void 0,param.signalType);break;case"addNote":this.addNote(param.actor,param.placement,param.text);break;case"addLinks":this.addLinks(param.actor,param.text);break;case"addALink":this.addALink(param.actor,param.text);break;case"addProperties":this.addProperties(param.actor,param.text);break;case"addDetails":this.addDetails(param.actor,param.text);break;case"addMessage":if(this.state.records.lastCreated){if(param.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(param.to!==this.state.records.lastDestroyed&¶m.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(param.from,param.to,param.msg,param.signalType,param.activate,param.centralConnection);break;case"boxStart":this.addBox(param.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,param.loopText,param.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":this.addSignal(void 0,void 0,void 0,param.signalType);break;case"rectStart":this.addSignal(void 0,void 0,param.color,param.signalType);break;case"optStart":this.addSignal(void 0,void 0,param.optText,param.signalType);break;case"altStart":case"else":this.addSignal(void 0,void 0,param.altText,param.signalType);break;case"setAccTitle":setAccTitle(param.text);break;case"parStart":case"and":this.addSignal(void 0,void 0,param.parText,param.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,param.criticalText,param.signalType);break;case"option":this.addSignal(void 0,void 0,param.optionText,param.signalType);break;case"breakStart":this.addSignal(void 0,void 0,param.breakText,param.signalType)}}getConfig(){return getConfig2().sequence}},"SequenceDB"),_a),styles_default=__name(options=>{const dropShadow=options.dropShadow??"none",{look:look}=getConfig2();return`.actor {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n stroke-width: ${options.strokeWidth??1};\n }\n\n rect.actor.outer-path[data-look="neo"] {\n filter: ${dropShadow};\n }\n\n rect.note[data-look="neo"] {\n stroke:${options.noteBorderColor};\n fill:${options.noteBkgColor};\n filter: ${dropShadow};\n }\n\n text.actor > tspan {\n fill: ${options.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${options.actorLineColor};\n }\n\n .innerArc {\n stroke-width: 1.5;\n stroke-dasharray: none;\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${options.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${options.signalColor};\n }\n\n [id$="-arrowhead"] path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .sequenceNumber {\n fill: ${options.sequenceNumberColor};\n }\n\n [id$="-sequencenumber"] {\n fill: ${options.signalColor};\n }\n\n [id$="-crosshead"] path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .messageText {\n fill: ${options.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBkgColor};\n filter: ${"neo"===look?dropShadow:"none"};\n }\n\n .labelText, .labelText > tspan {\n fill: ${options.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${options.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${options.noteTextColor};\n stroke: none;\n ${options.noteFontWeight?`font-weight: ${options.noteFontWeight};`:""}\n }\n\n .activation0 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation1 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation2 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${options.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man circle, line {\n fill: ${options.actorBkg};\n stroke-width: 2px;\n }\n\n g rect.rect {\n filter: ${dropShadow};\n stroke: ${options.nodeBorder};\n }\n`},"getStyles"),COLOR_THEMES=new Set(["redux-color","redux-dark-color"]),drawRect2=__name(function(elem,rectData){const rectElement=drawRect(elem,rectData);return"neo"===getConfig().look&&rectElement.attr("data-look","neo"),rectElement},"drawRect"),drawPopup=__name(function(elem,actor,minMenuWidth,textAttrs,forceMenus){if(void 0===actor.links||null===actor.links||0===Object.keys(actor.links).length)return{height:0,width:0};const links=actor.links,actorCnt2=actor.actorCnt,rectData=actor.rectData;var displayValue="none";forceMenus&&(displayValue="block !important");const g=elem.append("g");g.attr("id","actor"+actorCnt2+"_popup"),g.attr("class","actorPopupMenu"),g.attr("display",displayValue);var actorClass="";void 0!==rectData.class&&(actorClass=" "+rectData.class);let menuWidth=rectData.width>minMenuWidth?rectData.width:minMenuWidth;const rectElem=g.append("rect");if(rectElem.attr("class","actorPopupMenuPanel"+actorClass),rectElem.attr("x",rectData.x),rectElem.attr("y",rectData.height),rectElem.attr("fill",rectData.fill),rectElem.attr("stroke",rectData.stroke),rectElem.attr("width",menuWidth),rectElem.attr("height",rectData.height),rectElem.attr("rx",rectData.rx),rectElem.attr("ry",rectData.ry),null!=links){var linkY=20;for(let key in links){var linkElem=g.append("a"),sanitizedLink=distExports.sanitizeUrl(links[key]);linkElem.attr("xlink:href",sanitizedLink),linkElem.attr("target","_blank"),_drawMenuItemTextCandidateFunc(textAttrs)(key,linkElem,rectData.x+10,rectData.height+linkY,menuWidth,20,{class:"actor"},textAttrs),linkY+=30}}return rectElem.attr("height",linkY),{height:rectData.height+linkY,width:menuWidth}},"drawPopup"),popupMenuToggle=__name(function(popId){return"var pu = document.getElementById('"+popId+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),drawKatex=__name(async function(elem,textData,msgModel=null){let textElem=elem.append("foreignObject");const linesSanitized=await renderKatexSanitized(textData.text,getConfig()),dim=textElem.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(linesSanitized).node().getBoundingClientRect();if(textElem.attr("height",Math.round(dim.height)).attr("width",Math.round(dim.width)),"noteText"===textData.class){const rectElem=elem.node().firstChild;rectElem.setAttribute("height",dim.height+2*textData.textMargin);const rectDim=rectElem.getBBox();textElem.attr("x",Math.round(rectDim.x+rectDim.width/2-dim.width/2)).attr("y",Math.round(rectDim.y+rectDim.height/2-dim.height/2))}else if(msgModel){let{startx:startx,stopx:stopx,starty:starty}=msgModel;if(startx>stopx){const temp=startx;startx=stopx,stopx=temp}textElem.attr("x",Math.round(startx+Math.abs(startx-stopx)/2-dim.width/2)),"loopText"===textData.class?textElem.attr("y",Math.round(starty)):textElem.attr("y",Math.round(starty-dim.height))}return[textElem]},"drawKatex"),drawText=__name(function(elem,textData){let prevTextHeight=0,textHeight=0;const lines=textData.text.split(common_default.lineBreakRegex),[_textFontSize,_textFontSizePx]=parseFontSize(textData.fontSize);let textElems=[],dy=0,yfunc=__name(()=>textData.y,"yfunc");if(void 0!==textData.valign&&void 0!==textData.textMargin&&textData.textMargin>0)switch(textData.valign){case"top":case"start":yfunc=__name(()=>Math.round(textData.y+textData.textMargin),"yfunc");break;case"middle":case"center":yfunc=__name(()=>Math.round(textData.y+(prevTextHeight+textHeight+textData.textMargin)/2),"yfunc");break;case"bottom":case"end":yfunc=__name(()=>Math.round(textData.y+(prevTextHeight+textHeight+2*textData.textMargin)-textData.textMargin),"yfunc")}if(void 0!==textData.anchor&&void 0!==textData.textMargin&&void 0!==textData.width)switch(textData.anchor){case"left":case"start":textData.x=Math.round(textData.x+textData.textMargin),textData.anchor="start",textData.dominantBaseline="middle",textData.alignmentBaseline="middle";break;case"middle":case"center":textData.x=Math.round(textData.x+textData.width/2),textData.anchor="middle",textData.dominantBaseline="middle",textData.alignmentBaseline="middle";break;case"right":case"end":textData.x=Math.round(textData.x+textData.width-textData.textMargin),textData.anchor="end",textData.dominantBaseline="middle",textData.alignmentBaseline="middle"}for(let[i,line]of lines.entries()){void 0!==textData.textMargin&&0===textData.textMargin&&void 0!==_textFontSize&&(dy=i*_textFontSize);const textElem=elem.append("text");textElem.attr("x",textData.x),textElem.attr("y",yfunc()),void 0!==textData.anchor&&textElem.attr("text-anchor",textData.anchor).attr("dominant-baseline",textData.dominantBaseline).attr("alignment-baseline",textData.alignmentBaseline),void 0!==textData.fontFamily&&textElem.style("font-family",textData.fontFamily),void 0!==_textFontSizePx&&textElem.style("font-size",_textFontSizePx),void 0!==textData.fontWeight&&textElem.style("font-weight",textData.fontWeight),void 0!==textData.fill&&textElem.attr("fill",textData.fill),void 0!==textData.class&&textElem.attr("class",textData.class),void 0!==textData.dy?textElem.attr("dy",textData.dy):0!==dy&&textElem.attr("dy",dy);const text=line||ZERO_WIDTH_SPACE;if(textData.tspan){const span=textElem.append("tspan");span.attr("x",textData.x),void 0!==textData.fill&&span.attr("fill",textData.fill),span.text(text)}else textElem.text(text);void 0!==textData.valign&&void 0!==textData.textMargin&&textData.textMargin>0&&(textHeight+=(textElem._groups||textElem)[0][0].getBBox().height,prevTextHeight=textHeight),textElems.push(textElem)}return textElems},"drawText"),drawLabel=__name(function(elem,txtObject){function genPoints(x,y,width,height,cut){return x+","+y+" "+(x+width)+","+y+" "+(x+width)+","+(y+height-cut)+" "+(x+width-1.2*cut)+","+(y+height)+" "+x+","+(y+height)}__name(genPoints,"genPoints");const polygon=elem.append("polygon");return polygon.attr("points",genPoints(txtObject.x,txtObject.y,txtObject.width,txtObject.height,7)),polygon.attr("class","labelBox"),txtObject.y=txtObject.y+txtObject.height/2,drawText(elem,txtObject),polygon},"drawLabel"),actorCnt=-1,fixLifeLineHeights=__name((diagram2,actors,actorKeys,conf2)=>{diagram2.select&&actorKeys.forEach(actorKey=>{const actor=actors.get(actorKey),actorDOM=diagram2.select("#actor"+actor.actorCnt);!conf2.mirrorActors&&actor.stopy?actorDOM.attr("y2",actor.stopy+actor.height/2):conf2.mirrorActors&&actorDOM.attr("y2",actor.stopy)})},"fixLifeLineHeights"),drawActorTypeParticipant=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2,_b;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,boxplusLineGroup=elem.append("g").lower();var g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();var cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.class=cssclass,rect.rx=3,rect.ry=3,rect.name=actor.name,"neo"===look&&(rect.rx=6,rect.ry=6);const rectElem=drawRect2(g,rect),actorCount=actorIndexMap.get(actor.name)??0;if(COLOR_THEMES.has(theme)&&(rectElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),rectElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])),"neo"===look&&rectElem.attr("filter","url(#drop-shadow)"),actor.rectData=rect,null==(_b=actor.properties)?void 0:_b.icon){const iconSrc=actor.properties.icon.trim();"@"===iconSrc.charAt(0)?drawEmbeddedImage(g,rect.x+rect.width-20,rect.y+10,iconSrc.substr(1)):drawImage(g,rect.x+rect.width-20,rect.y+10,iconSrc)}isFooter||(g.attr("data-et","participant"),g.attr("data-type","participant"),g.attr("data-id",actor.name)),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x,rect.y,rect.width,rect.height,{class:"actor actor-box"},conf2);let height=actor.height;if(rectElem.node){const bounds2=rectElem.node().getBBox();actor.height=bounds2.height,height=bounds2.height}return height},"drawActorTypeParticipant"),drawActorTypeCollections=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2,_b;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,boxplusLineGroup=elem.append("g").lower();var g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();var cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.class=cssclass,rect.name=actor.name;const shadowRect={...rect,x:rect.x+-6,y:rect.y+6,class:"actor"},rectElem=drawRect2(g,rect),stackedRect=drawRect2(g,shadowRect);actor.rectData=rect,"neo"===look&&g.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;if(COLOR_THEMES.has(theme)&&(rectElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),rectElem.style("fill",bkgColorArray[actorCount%borderColorArray.length]),stackedRect.style("stroke",borderColorArray[actorCount%borderColorArray.length]),stackedRect.style("fill",bkgColorArray[actorCount%borderColorArray.length])),null==(_b=actor.properties)?void 0:_b.icon){const iconSrc=actor.properties.icon.trim();"@"===iconSrc.charAt(0)?drawEmbeddedImage(g,rect.x+rect.width-20,rect.y+10,iconSrc.substr(1)):drawImage(g,rect.x+rect.width-20,rect.y+10,iconSrc)}_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x-6,rect.y+6,rect.width,rect.height,{class:"actor actor-box"},conf2);let height=actor.height;if(rectElem.node){const bounds2=rectElem.node().getBBox();actor.height=bounds2.height,height=bounds2.height}return isFooter||(g.attr("data-et","participant"),g.attr("data-type","collections"),g.attr("data-id",actor.name)),height},"drawActorTypeCollections"),drawActorTypeQueue=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2,_b;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,boxplusLineGroup=elem.append("g").lower();let g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();let cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",g.attr("class",cssclass),rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.name=actor.name;const ry=rect.height/2,rx=ry/(2.5+rect.height/50),cylinderGroup=g.append("g"),cylinderArc=g.append("g"),cylinderPath=`M ${rect.x},${rect.y+ry}\n a ${rx},${ry} 0 0 0 0,${rect.height}\n h ${rect.width-2*rx}\n a ${rx},${ry} 0 0 0 0,-${rect.height}\n Z\n `;cylinderGroup.append("path").attr("d",cylinderPath),cylinderArc.append("path").attr("d",`M ${rect.x},${rect.y+ry}\n a ${rx},${ry} 0 0 0 0,${rect.height}`),cylinderGroup.attr("transform",`translate(${rx}, ${-rect.height/2})`),cylinderArc.attr("transform",`translate(${rect.width-rx}, ${-rect.height/2})`),actor.rectData=rect,"neo"===look&&cylinderGroup.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;if(COLOR_THEMES.has(theme)&&(cylinderGroup.style("stroke",borderColorArray[actorCount%borderColorArray.length]),cylinderGroup.style("fill",bkgColorArray[actorCount%borderColorArray.length]),cylinderArc.style("stroke",borderColorArray[actorCount%borderColorArray.length]),cylinderArc.style("fill",bkgColorArray[actorCount%borderColorArray.length])),null==(_b=actor.properties)?void 0:_b.icon){const iconSrc=actor.properties.icon.trim(),iconX=rect.x+rect.width-20,iconY=rect.y+10;"@"===iconSrc.charAt(0)?drawEmbeddedImage(g,iconX,iconY,iconSrc.substr(1)):drawImage(g,iconX,iconY,iconSrc)}_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x,rect.y,rect.width,rect.height,{class:"actor actor-box"},conf2);let height=actor.height;const lastPath=cylinderGroup.select("path:last-child");if(lastPath.node()){const bounds2=lastPath.node().getBBox();actor.height=bounds2.height,height=bounds2.height}return isFooter||(g.attr("data-et","participant"),g.attr("data-type","queue"),g.attr("data-id",actor.name)),height},"drawActorTypeQueue"),drawActorTypeControl=__name(function(elem,actor,conf2,isFooter,diagramId,actorIndexMap){var _a2;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+75,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder,actorBkg:actorBkg}=themeVariables,line=elem.append("g").lower();isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt);const actElem=elem.append("g");let cssClass="actor-man";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name);const rect=getNoteRect();rect.x=actor.x,rect.y=actorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height,rect.class="actor";const cx=actor.x+actor.width/2,cy=actorY+32;actElem.append("defs").append("marker").attr("id",diagramId+"-filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").attr("stroke-width",1.2).append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),actElem.append("circle").attr("cx",cx).attr("cy",cy).attr("r",22).attr("filter",""+("neo"===look?"url(#drop-shadow)":"")),actElem.append("line").attr("marker-end","url(#"+diagramId+"-filled-head-control)").attr("transform",`translate(${cx}, ${cy-22})`);const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)?(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])):(actElem.style("stroke",actorBorder),actElem.style("fill",actorBkg));const bounds2=actElem.node().getBBox();return actor.height=bounds2.height+2*((null==(_a2=null==conf2?void 0:conf2.sequence)?void 0:_a2.labelBoxHeight)??0),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,rect.y+22+(isFooter?5:12),rect.width,rect.height,{class:"actor actor-man"},conf2),isFooter||(actElem.attr("data-et","participant"),actElem.attr("data-type","control"),actElem.attr("data-id",actor.name)),actor.height},"drawActorTypeControl"),drawActorTypeEntity=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+75,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray}=themeVariables,line=elem.append("g").lower(),actElem=elem.append("g");let cssClass="actor";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name);const rect=getNoteRect();rect.x=actor.x,rect.y=actorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height,rect.class="actor";const cx=actor.x+actor.width/2,cy=actorY+(isFooter?10:25),r=22;actElem.append("circle").attr("cx",cx).attr("cy",cy).attr("r",r).attr("width",actor.width).attr("height",actor.height),actElem.append("line").attr("x1",cx-r).attr("x2",cx+r).attr("y1",cy+r).attr("y2",cy+r).attr("stroke-width",2),"neo"===look&&actElem.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)&&(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length]));const bounds2=actElem.node().getBBox();return actor.height=bounds2.height+((null==(_a2=null==conf2?void 0:conf2.sequence)?void 0:_a2.labelBoxHeight)??0),isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,rect.y+(isFooter?15:30),rect.width,rect.height,{class:"actor actor-man"},conf2),isFooter?actElem.attr("transform","translate(0, 22)"):(actElem.attr("transform","translate(0, 6)"),actElem.attr("data-et","participant"),actElem.attr("data-type","entity"),actElem.attr("data-id",actor.name)),actor.height},"drawActorTypeEntity"),drawActorTypeDatabase=__name(function(elem,actor,conf2,isFooter,actorIndexMap){var _a2;const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+actor.height+2*conf2.boxTextMargin,{theme:theme,themeVariables:themeVariables,look:look}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder}=themeVariables,boxplusLineGroup=elem.append("g").lower();let g=boxplusLineGroup;isFooter||(actorCnt++,Object.keys(actor.links||{}).length&&!conf2.forceMenus&&g.attr("onclick",popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),g=boxplusLineGroup.append("g"),actor.actorCnt=actorCnt,null!=actor.links&&g.attr("id","root-"+actorCnt),"neo"===look&&g.attr("data-look","neo"));const rect=getNoteRect();let cssclass="actor";(null==(_a2=actor.properties)?void 0:_a2.class)?cssclass=actor.properties.class:rect.fill="#eaeaea",cssclass+=isFooter?" actor-bottom":" actor-top",rect.x=actor.x,rect.y=actorY,rect.width=actor.width,rect.height=actor.height,rect.class=cssclass,rect.name=actor.name,rect.x=actor.x,rect.y=actorY;const w=rect.width/3,h=rect.width/3,rx=w/2,ry=rx/(2.5+w/50),cylinderGroup=g.append("g");cylinderGroup.attr("class",cssclass);const d=`\n M ${rect.x},${rect.y+ry}\n a ${rx},${ry} 0 0 0 ${w},0\n a ${rx},${ry} 0 0 0 -${w},0\n l 0,${h-2*ry}\n a ${rx},${ry} 0 0 0 ${w},0\n l 0,-${h-2*ry}\n`;cylinderGroup.append("path").attr("d",d),"neo"===look&&cylinderGroup.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)?(cylinderGroup.style("stroke",borderColorArray[actorCount%borderColorArray.length]),cylinderGroup.style("fill",bkgColorArray[actorCount%borderColorArray.length])):cylinderGroup.style("stroke",actorBorder),cylinderGroup.attr("transform",`translate(${w}, ${ry})`),actor.rectData=rect,_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,g,rect.x,rect.y+35,rect.width,rect.height,{class:"actor actor-box"},conf2);const lastPath=cylinderGroup.select("path:last-child");if(lastPath.node()){const bounds2=lastPath.node().getBBox();actor.height=bounds2.height+(conf2.sequence.labelBoxHeight??0)}return isFooter||(g.attr("data-et","participant"),g.attr("data-type","database"),g.attr("data-id",actor.name)),actor.height},"drawActorTypeDatabase"),drawActorTypeBoundary=__name(function(elem,actor,conf2,isFooter,actorIndexMap){const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+80,line=elem.append("g").lower(),{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder}=themeVariables;isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt);const actElem=elem.append("g");let cssClass="actor-man";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name);const rect=getNoteRect();rect.x=actor.x,rect.y=actorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height,rect.class="actor",actElem.append("line").attr("id","actor-man-torso"+actorCnt).attr("x1",actor.x+actor.width/2-55).attr("y1",actorY+12).attr("x2",actor.x+actor.width/2-15).attr("y2",actorY+12),actElem.append("line").attr("id","actor-man-arms"+actorCnt).attr("x1",actor.x+actor.width/2-55).attr("y1",actorY+2).attr("x2",actor.x+actor.width/2-55).attr("y2",actorY+22),actElem.append("circle").attr("cx",actor.x+actor.width/2).attr("cy",actorY+12).attr("r",22),"neo"===look&&actElem.attr("filter","url(#drop-shadow)");const actorCount=actorIndexMap.get(actor.name)??0;COLOR_THEMES.has(theme)?(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])):actElem.style("stroke",actorBorder);const bounds2=actElem.node().getBBox();return actor.height=bounds2.height+(conf2.sequence.labelBoxHeight??0),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,rect.y+15,rect.width,rect.height,{class:"actor actor-man"},conf2),actElem.attr("transform","translate(0,21)"),isFooter||(actElem.attr("data-et","participant"),actElem.attr("data-type","boundary"),actElem.attr("data-id",actor.name)),actor.height},"drawActorTypeBoundary"),drawActorTypeActor=__name(function(elem,actor,conf2,isFooter,actorIndexMap){const actorY=isFooter?actor.stopy:actor.starty,center=actor.x+actor.width/2,centerY=actorY+80,{look:look,theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,actorBorder:actorBorder}=themeVariables,line=elem.append("g").lower();isFooter||(actorCnt++,line.append("line").attr("id","actor"+actorCnt).attr("x1",center).attr("y1",centerY).attr("x2",center).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",actor.name).attr("data-et","life-line").attr("data-id",actor.name),actor.actorCnt=actorCnt);const actElem=elem.append("g");let cssClass="actor-man";cssClass+=isFooter?" actor-bottom":" actor-top",actElem.attr("class",cssClass),actElem.attr("name",actor.name),isFooter||actElem.attr("data-et","participant").attr("data-type","actor").attr("data-id",actor.name);const scale="neo"===look?.5:1,adjustedActorY="neo"===look?actorY+30*(1-scale):actorY;actElem.append("line").attr("id","actor-man-torso"+actorCnt).attr("x1",center).attr("y1",adjustedActorY+25*scale).attr("x2",center).attr("y2",adjustedActorY+45*scale),actElem.append("line").attr("id","actor-man-arms"+actorCnt).attr("x1",center-18*scale).attr("y1",adjustedActorY+33*scale).attr("x2",center+18*scale).attr("y2",adjustedActorY+33*scale),actElem.append("line").attr("x1",center-18*scale).attr("y1",adjustedActorY+60*scale).attr("x2",center).attr("y2",adjustedActorY+45*scale),actElem.append("line").attr("x1",center).attr("y1",adjustedActorY+45*scale).attr("x2",center+16*scale).attr("y2",adjustedActorY+60*scale);const circle=actElem.append("circle");circle.attr("cx",actor.x+actor.width/2),circle.attr("cy",adjustedActorY+10*scale),circle.attr("r",15*scale),circle.attr("width",actor.width*scale),circle.attr("height",actor.height*scale);const bounds2=actElem.node().getBBox();actor.height=bounds2.height;const rect=getNoteRect();rect.x=actor.x,rect.y=adjustedActorY,rect.fill="#eaeaea",rect.width=actor.width,rect.height=actor.height/scale,rect.class="actor",rect.rx=3,rect.ry=3;const actorCount=actorIndexMap.get(actor.name)??0;return COLOR_THEMES.has(theme)?(actElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),actElem.style("fill",bkgColorArray[actorCount%borderColorArray.length])):actElem.style("stroke",actorBorder),_drawTextCandidateFunc(conf2,hasKatex(actor.description))(actor.description,actElem,rect.x,adjustedActorY+35*scale-("neo"===look?10:0),rect.width,rect.height,{class:"actor actor-man"},conf2),actor.height},"drawActorTypeActor"),drawActor=__name(async function(elem,actor,conf2,isFooter,diagramId,diagObj,actorIndexMap){const resolvedActorIndexMap=actorIndexMap??new Map([...diagObj.db.getActors().values()].map((participant,index)=>[participant.name,index]));switch(actor.type){case"actor":return await drawActorTypeActor(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"participant":return await drawActorTypeParticipant(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"boundary":return await drawActorTypeBoundary(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"control":return await drawActorTypeControl(elem,actor,conf2,isFooter,diagramId,resolvedActorIndexMap);case"entity":return await drawActorTypeEntity(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"database":return await drawActorTypeDatabase(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"collections":return await drawActorTypeCollections(elem,actor,conf2,isFooter,resolvedActorIndexMap);case"queue":return await drawActorTypeQueue(elem,actor,conf2,isFooter,resolvedActorIndexMap)}},"drawActor"),drawBox=__name(function(elem,box,conf2){const g=elem.append("g");drawBackgroundRect2(g,box),box.name&&_drawTextCandidateFunc(conf2)(box.name,g,box.x,box.y+conf2.boxTextMargin+(box.textMaxHeight||0)/2,box.width,0,{class:"text"},conf2),g.lower()},"drawBox"),anchorElement=__name(function(elem){return elem.append("g")},"anchorElement"),drawActivation=__name(function(_elem,bounds2,verticalPos,conf2,actorActivations2,diagObj,actorIndexMap){const{theme:theme,themeVariables:themeVariables}=conf2,{bkgColorArray:bkgColorArray,borderColorArray:borderColorArray,mainBkg:mainBkg}=themeVariables,rect=getNoteRect(),g=bounds2.anchored,actor=bounds2.actor;rect.x=bounds2.startx,rect.y=bounds2.starty,rect.class="activation"+actorActivations2%3,rect.width=bounds2.stopx-bounds2.startx,rect.height=verticalPos-bounds2.starty;const rectElem=drawRect2(g,rect),actorCount=(actorIndexMap??new Map([...diagObj.db.getActors().values()].map((participant,index)=>[participant.name,index]))).get(actor)??0;COLOR_THEMES.has(theme)&&(rectElem.style("stroke",borderColorArray[actorCount%borderColorArray.length]),rectElem.style("fill",bkgColorArray[actorCount%borderColorArray.length]??mainBkg))},"drawActivation"),drawLoop=__name(async function(elem,loopModel,labelText,conf2,msg){const{boxMargin:boxMargin,boxTextMargin:boxTextMargin,labelBoxHeight:labelBoxHeight,labelBoxWidth:labelBoxWidth,messageFontFamily:fontFamily,messageFontSize:fontSize,messageFontWeight:fontWeight}=conf2,g=elem.append("g").attr("data-et","control-structure").attr("data-id","i"+msg.id),drawLoopLine=__name(function(startx,starty,stopx,stopy){return g.append("line").attr("x1",startx).attr("y1",starty).attr("x2",stopx).attr("y2",stopy).attr("class","loopLine")},"drawLoopLine");drawLoopLine(loopModel.startx,loopModel.starty,loopModel.stopx,loopModel.starty),drawLoopLine(loopModel.stopx,loopModel.starty,loopModel.stopx,loopModel.stopy),drawLoopLine(loopModel.startx,loopModel.stopy,loopModel.stopx,loopModel.stopy),drawLoopLine(loopModel.startx,loopModel.starty,loopModel.startx,loopModel.stopy),void 0!==loopModel.sections&&loopModel.sections.forEach(function(item){drawLoopLine(loopModel.startx,item.y,loopModel.stopx,item.y).style("stroke-dasharray","3, 3")});let txt=getTextObj();txt.text=labelText,txt.x=loopModel.startx,txt.y=loopModel.starty,txt.fontFamily=fontFamily,txt.fontSize=fontSize,txt.fontWeight=fontWeight,txt.anchor="middle",txt.valign="middle",txt.tspan=!1,txt.width=Math.max(labelBoxWidth??0,50),txt.height=labelBoxHeight+("neo"===conf2.look?15:0)||20,txt.textMargin=boxTextMargin,txt.class="labelText",drawLabel(g,txt),txt=getTextObj2(),txt.text=loopModel.title,txt.x=loopModel.startx+labelBoxWidth/2+(loopModel.stopx-loopModel.startx)/2,txt.y=loopModel.starty+boxMargin+boxTextMargin,txt.anchor="middle",txt.valign="middle",txt.textMargin=boxTextMargin,txt.class="loopText",txt.fontFamily=fontFamily,txt.fontSize=fontSize,txt.fontWeight=fontWeight,txt.wrap=!0;let textElem=hasKatex(txt.text)?await drawKatex(g,txt,loopModel):drawText(g,txt);if(void 0!==loopModel.sectionTitles)for(const[idx,item]of Object.entries(loopModel.sectionTitles))if(item.message){txt.text=item.message,txt.x=loopModel.startx+(loopModel.stopx-loopModel.startx)/2,txt.y=loopModel.sections[idx].y+boxMargin+boxTextMargin,txt.class="loopText",txt.anchor="middle",txt.valign="middle",txt.tspan=!1,txt.fontFamily=fontFamily,txt.fontSize=fontSize,txt.fontWeight=fontWeight,txt.wrap=loopModel.wrap,hasKatex(txt.text)?(loopModel.starty=loopModel.sections[idx].y,await drawKatex(g,txt,loopModel)):drawText(g,txt);let sectionHeight=Math.round(textElem.map(te=>(te._groups||te)[0][0].getBBox().height).reduce((acc,curr)=>acc+curr));loopModel.sections[idx].height+=sectionHeight-(boxMargin+boxTextMargin)}return loopModel.height=Math.round(loopModel.stopy-loopModel.starty),g},"drawLoop"),drawBackgroundRect2=__name(function(elem,bounds2){drawBackgroundRect(elem,bounds2)},"drawBackgroundRect"),insertDatabaseIcon=__name(function(elem,id){elem.append("defs").append("symbol").attr("id",id+"-database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),insertComputerIcon=__name(function(elem,id){elem.append("defs").append("symbol").attr("id",id+"-computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),insertClockIcon=__name(function(elem,id){elem.append("defs").append("symbol").attr("id",id+"-clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),insertArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),insertArrowFilledHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),insertSequenceNumber=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),insertArrowCrossHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),insertDropShadow=__name(function(elem,conf2){const{theme:theme}=conf2;elem.append("defs").append("filter").attr("id","drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",""+("redux"===theme||"redux-color"===theme?"#000000":"#FFFFFF"))},"insertDropShadow"),getTextObj2=__name(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),getNoteRect2=__name(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),_drawTextCandidateFunc=function(){function byText(content,g,x,y,width,height,textAttrs){_setTextAttrs(g.append("text").attr("x",x+width/2).attr("y",y+height/2+5).style("text-anchor","middle").text(content),textAttrs)}function byTspan(content,g,x,y,width,height,textAttrs,conf2){const{actorFontSize:actorFontSize,actorFontFamily:actorFontFamily,actorFontWeight:actorFontWeight}=conf2,[_actorFontSize,_actorFontSizePx]=parseFontSize(actorFontSize),lines=content.split(common_default.lineBreakRegex);for(let i=0;i<lines.length;i++){const dy=i*_actorFontSize-_actorFontSize*(lines.length-1)/2,text=g.append("text").attr("x",x+width/2).attr("y",y).style("text-anchor","middle").style("font-size",_actorFontSizePx).style("font-weight",actorFontWeight).style("font-family",actorFontFamily);text.append("tspan").attr("x",x+width/2).attr("dy",dy).text(lines[i]),text.attr("y",y+height/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),_setTextAttrs(text,textAttrs)}}function byFo(content,g,x,y,width,height,textAttrs,conf2){const s=g.append("switch"),text=s.append("foreignObject").attr("x",x).attr("y",y).attr("width",width).attr("height",height).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");text.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(content),byTspan(content,s,x,y,width,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}async function byKatex(content,g,x,y,width,height,textAttrs,conf2){const dim=await calculateMathMLDimensions(content,getConfig()),s=g.append("switch"),text=s.append("foreignObject").attr("x",x+width/2-dim.width/2).attr("y",y+height/2-dim.height/2).attr("width",dim.width).attr("height",dim.height).append("xhtml:div").style("height","100%").style("width","100%");text.append("div").style("text-align","center").style("vertical-align","middle").html(await renderKatexSanitized(content,getConfig())),byTspan(content,s,x,y,width,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}function _setTextAttrs(toText,fromTextAttrsDict){for(const key in fromTextAttrsDict)fromTextAttrsDict.hasOwnProperty(key)&&toText.attr(key,fromTextAttrsDict[key])}return __name(byText,"byText"),__name(byTspan,"byTspan"),__name(byFo,"byFo"),__name(byKatex,"byKatex"),__name(_setTextAttrs,"_setTextAttrs"),function(conf2,hasKatex2=!1){return hasKatex2?byKatex:"fo"===conf2.textPlacement?byFo:"old"===conf2.textPlacement?byText:byTspan}}(),_drawMenuItemTextCandidateFunc=function(){function byText(content,g,x,y,width,height,textAttrs){_setTextAttrs(g.append("text").attr("x",x).attr("y",y).style("text-anchor","start").text(content),textAttrs)}function byTspan(content,g,x,y,width,height,textAttrs,conf2){const{actorFontSize:actorFontSize,actorFontFamily:actorFontFamily,actorFontWeight:actorFontWeight}=conf2,lines=content.split(common_default.lineBreakRegex);for(let i=0;i<lines.length;i++){const dy=i*actorFontSize-actorFontSize*(lines.length-1)/2,text=g.append("text").attr("x",x).attr("y",y).style("text-anchor","start").style("font-size",actorFontSize).style("font-weight",actorFontWeight).style("font-family",actorFontFamily);text.append("tspan").attr("x",x).attr("dy",dy).text(lines[i]),text.attr("y",y+height/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),_setTextAttrs(text,textAttrs)}}function byFo(content,g,x,y,width,height,textAttrs,conf2){const s=g.append("switch"),text=s.append("foreignObject").attr("x",x).attr("y",y).attr("width",width).attr("height",height).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");text.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(content),byTspan(content,s,x,y,0,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}function _setTextAttrs(toText,fromTextAttrsDict){for(const key in fromTextAttrsDict)fromTextAttrsDict.hasOwnProperty(key)&&toText.attr(key,fromTextAttrsDict[key])}return __name(byText,"byText"),__name(byTspan,"byTspan"),__name(byFo,"byFo"),__name(_setTextAttrs,"_setTextAttrs"),function(conf2){return"fo"===conf2.textPlacement?byFo:"old"===conf2.textPlacement?byText:byTspan}}(),insertSolidTopArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-solidTopArrowHead").attr("refX",7.9).attr("refY",7.25).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 8 L 0 8 z")},"insertSolidTopArrowHead"),insertSolidBottomArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-solidBottomArrowHead").attr("refX",7.9).attr("refY",.75).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 0 L 0 8 z")},"insertSolidBottomArrowHead"),insertStickTopArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-stickTopArrowHead").attr("refX",7.5).attr("refY",7).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 7 7").attr("stroke","black").attr("stroke-width",1.5).attr("fill","none")},"insertStickTopArrowHead"),insertStickBottomArrowHead=__name(function(elem,id){elem.append("defs").append("marker").attr("id",id+"-stickBottomArrowHead").attr("refX",7.5).attr("refY",0).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M 0 7 L 7 0").attr("stroke","black").attr("stroke-width",1.5).attr("fill","none")},"insertStickBottomArrowHead"),svgDraw_default={drawRect:drawRect2,drawText:drawText,drawLabel:drawLabel,drawActor:drawActor,drawBox:drawBox,drawPopup:drawPopup,anchorElement:anchorElement,drawActivation:drawActivation,drawLoop:drawLoop,drawBackgroundRect:drawBackgroundRect2,insertArrowHead:insertArrowHead,insertArrowFilledHead:insertArrowFilledHead,insertSequenceNumber:insertSequenceNumber,insertArrowCrossHead:insertArrowCrossHead,insertDatabaseIcon:insertDatabaseIcon,insertComputerIcon:insertComputerIcon,insertClockIcon:insertClockIcon,getTextObj:getTextObj2,getNoteRect:getNoteRect2,fixLifeLineHeights:fixLifeLineHeights,sanitizeUrl:distExports.sanitizeUrl,insertDropShadow:insertDropShadow,insertSolidTopArrowHead:insertSolidTopArrowHead,insertSolidBottomArrowHead:insertSolidBottomArrowHead,insertStickTopArrowHead:insertStickTopArrowHead,insertStickBottomArrowHead:insertStickBottomArrowHead},conf={},bounds={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:__name(function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map(actor=>actor.height||0))+(0===this.loops.length?0:this.loops.map(it=>it.height||0).reduce((acc,h)=>acc+h))+(0===this.messages.length?0:this.messages.map(it=>it.height||0).reduce((acc,h)=>acc+h))+(0===this.notes.length?0:this.notes.map(it=>it.height||0).reduce((acc,h)=>acc+h))},"getHeight"),clear:__name(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:__name(function(boxModel){this.boxes.push(boxModel)},"addBox"),addActor:__name(function(actorModel){this.actors.push(actorModel)},"addActor"),addLoop:__name(function(loopModel){this.loops.push(loopModel)},"addLoop"),addMessage:__name(function(msgModel){this.messages.push(msgModel)},"addMessage"),addNote:__name(function(noteModel){this.notes.push(noteModel)},"addNote"),lastActor:__name(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:__name(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:__name(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:__name(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:__name(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,setConf(getConfig2())},"init"),updateVal:__name(function(obj,key,val,fun){void 0===obj[key]?obj[key]=val:obj[key]=fun(val,obj[key])},"updateVal"),updateBounds:__name(function(startx,starty,stopx,stopy){const _self=this;let cnt=0;function updateFn(type){return __name(function(item){cnt++;const n=_self.sequenceItems.length-cnt+1;_self.updateVal(item,"starty",starty-n*conf.boxMargin,Math.min),_self.updateVal(item,"stopy",stopy+n*conf.boxMargin,Math.max),_self.updateVal(bounds.data,"startx",startx-n*conf.boxMargin,Math.min),_self.updateVal(bounds.data,"stopx",stopx+n*conf.boxMargin,Math.max),"activation"!==type&&(_self.updateVal(item,"startx",startx-n*conf.boxMargin,Math.min),_self.updateVal(item,"stopx",stopx+n*conf.boxMargin,Math.max),_self.updateVal(bounds.data,"starty",starty-n*conf.boxMargin,Math.min),_self.updateVal(bounds.data,"stopy",stopy+n*conf.boxMargin,Math.max))},"updateItemBounds")}__name(updateFn,"updateFn"),this.sequenceItems.forEach(updateFn()),this.activations.forEach(updateFn("activation"))},"updateBounds"),insert:__name(function(startx,starty,stopx,stopy){const _startx=common_default.getMin(startx,stopx),_stopx=common_default.getMax(startx,stopx),_starty=common_default.getMin(starty,stopy),_stopy=common_default.getMax(starty,stopy);this.updateVal(bounds.data,"startx",_startx,Math.min),this.updateVal(bounds.data,"starty",_starty,Math.min),this.updateVal(bounds.data,"stopx",_stopx,Math.max),this.updateVal(bounds.data,"stopy",_stopy,Math.max),this.updateBounds(_startx,_starty,_stopx,_stopy)},"insert"),newActivation:__name(function(message,diagram2,actors){const actorRect=actors.get(message.from),stackedSize=actorActivations(message.from).length||0,x=actorRect.x+actorRect.width/2+(stackedSize-1)*conf.activationWidth/2;this.activations.push({startx:x,starty:this.verticalPos+2,stopx:x+conf.activationWidth,stopy:void 0,actor:message.from,anchored:svgDraw_default.anchorElement(diagram2)})},"newActivation"),endActivation:__name(function(message){const lastActorActivationIdx=this.activations.map(function(activation){return activation.actor}).lastIndexOf(message.from);return this.activations.splice(lastActorActivationIdx,1)[0]},"endActivation"),createLoop:__name(function(title={message:void 0,wrap:!1,width:void 0},fill){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:title.message,wrap:title.wrap,width:title.width,height:0,fill:fill}},"createLoop"),newLoop:__name(function(title={message:void 0,wrap:!1,width:void 0},fill){this.sequenceItems.push(this.createLoop(title,fill))},"newLoop"),endLoop:__name(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:__name(function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},"isLoopOverlap"),addSectionToLoop:__name(function(message){const loop=this.sequenceItems.pop();loop.sections=loop.sections||[],loop.sectionTitles=loop.sectionTitles||[],loop.sections.push({y:bounds.getVerticalPos(),height:0}),loop.sectionTitles.push(message),this.sequenceItems.push(loop)},"addSectionToLoop"),saveVerticalPos:__name(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:__name(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:__name(function(bump){this.verticalPos=this.verticalPos+bump,this.data.stopy=common_default.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:__name(function(){return this.verticalPos},"getVerticalPos"),getBounds:__name(function(){return{bounds:this.data,models:this.models}},"getBounds")},drawNote=__name(async function(elem,noteModel,id){bounds.bumpVerticalPos(conf.boxMargin),noteModel.height=conf.boxMargin,noteModel.starty=bounds.getVerticalPos();const rect=getNoteRect();rect.x=noteModel.startx,rect.y=noteModel.starty,rect.width=noteModel.width||conf.width,rect.class="note";const g=elem.append("g");g.attr("data-et","note"),g.attr("data-id","i"+id);const rectElem=svgDraw_default.drawRect(g,rect),textObj=getTextObj();textObj.x=noteModel.startx,textObj.y=noteModel.starty,textObj.width=rect.width,textObj.dy="1em",textObj.text=noteModel.message,textObj.class="noteText",textObj.fontFamily=conf.noteFontFamily,textObj.fontSize=conf.noteFontSize,textObj.fontWeight=conf.noteFontWeight,textObj.anchor=conf.noteAlign,textObj.textMargin=conf.noteMargin,textObj.valign="center";const textElem=hasKatex(textObj.text)?await drawKatex(g,textObj):drawText(g,textObj),textHeight=Math.round(textElem.map(te=>(te._groups||te)[0][0].getBBox().height).reduce((acc,curr)=>acc+curr));rectElem.attr("height",textHeight+2*conf.noteMargin),noteModel.height+=textHeight+2*conf.noteMargin,bounds.bumpVerticalPos(textHeight+2*conf.noteMargin),noteModel.stopy=noteModel.starty+textHeight+2*conf.noteMargin,noteModel.stopx=noteModel.startx+rect.width,bounds.insert(noteModel.startx,noteModel.starty,noteModel.stopx,noteModel.stopy),bounds.models.addNote(noteModel)},"drawNote"),drawCentralConnection=__name(function(elem,msg,msgModel,diagObj,startx,stopx,lineStartY){const actors=diagObj.db.getActors(),fromActor=actors.get(msg.from),toActor=actors.get(msg.to),isAutoNumberOn=msgModel.sequenceVisible;let fromCenter=fromActor.x+fromActor.width/2,toCenter=toActor.x+toActor.width/2;const isLeftToRight=fromCenter<=toCenter,isReverse=isReverseArrowType(msg,diagObj),g=elem.append("g"),getCircleOffset=__name((isLeftToRight2,isReverse2)=>{const baseOffset=isLeftToRight2?16.5:-16.5;return isReverse2?-baseOffset:baseOffset},"getCircleOffset"),drawCircle=__name(cx=>{g.append("circle").attr("cx",cx).attr("cy",lineStartY).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:CENTRAL_CONNECTION,CENTRAL_CONNECTION_REVERSE:CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL:CENTRAL_CONNECTION_DUAL}=diagObj.db.LINETYPE;if(isAutoNumberOn)switch(msg.centralConnection){case CENTRAL_CONNECTION:isReverse&&(toCenter+=getCircleOffset(isLeftToRight,!0));break;case CENTRAL_CONNECTION_REVERSE:isReverse||(fromCenter+=getCircleOffset(isLeftToRight,!1));break;case CENTRAL_CONNECTION_DUAL:isReverse?toCenter+=getCircleOffset(isLeftToRight,!0):fromCenter+=getCircleOffset(isLeftToRight,!1)}switch(msg.centralConnection){case CENTRAL_CONNECTION:drawCircle(toCenter);break;case CENTRAL_CONNECTION_REVERSE:drawCircle(fromCenter);break;case CENTRAL_CONNECTION_DUAL:drawCircle(fromCenter),drawCircle(toCenter)}},"drawCentralConnection"),messageFont=__name(cnf=>({fontFamily:cnf.messageFontFamily,fontSize:cnf.messageFontSize,fontWeight:cnf.messageFontWeight}),"messageFont"),noteFont=__name(cnf=>({fontFamily:cnf.noteFontFamily,fontSize:cnf.noteFontSize,fontWeight:cnf.noteFontWeight}),"noteFont"),actorFont=__name(cnf=>({fontFamily:cnf.actorFontFamily,fontSize:cnf.actorFontSize,fontWeight:cnf.actorFontWeight}),"actorFont");async function boundMessage(_diagram,msgModel){bounds.bumpVerticalPos(10);const{startx:startx,stopx:stopx,message:message}=msgModel,lines=common_default.splitBreaks(message).length,isKatexMsg=hasKatex(message),textDims=isKatexMsg?await calculateMathMLDimensions(message,getConfig2()):utils_default.calculateTextDimensions(message,messageFont(conf));if(!isKatexMsg){const lineHeight=textDims.height/lines;msgModel.height+=lineHeight,bounds.bumpVerticalPos(lineHeight)}let lineStartY,totalOffset=textDims.height-10;const textWidth=textDims.width;if(startx===stopx){lineStartY=bounds.getVerticalPos()+totalOffset,conf.rightAngles||(totalOffset+=conf.boxMargin,lineStartY=bounds.getVerticalPos()+totalOffset),totalOffset+=30;const dx=common_default.getMax(textWidth/2,conf.width/2);bounds.insert(startx-dx,bounds.getVerticalPos()-10+totalOffset,stopx+dx,bounds.getVerticalPos()+30+totalOffset)}else totalOffset+=conf.boxMargin,lineStartY=bounds.getVerticalPos()+totalOffset,bounds.insert(startx,lineStartY-10,stopx,lineStartY);return bounds.bumpVerticalPos(totalOffset),msgModel.height+=totalOffset,msgModel.stopy=msgModel.starty+msgModel.height,bounds.insert(msgModel.fromBounds,msgModel.starty,msgModel.toBounds,msgModel.stopy),lineStartY}__name(boundMessage,"boundMessage");var drawMessage=__name(async function(diagram2,msgModel,lineStartY,diagObj,msg,diagramId){const{startx:startx,stopx:stopx,starty:starty,message:message,type:type,sequenceIndex:sequenceIndex,sequenceVisible:sequenceVisible}=msgModel,textDims=utils_default.calculateTextDimensions(message,messageFont(conf)),textObj=getTextObj();textObj.x=startx,textObj.y=starty+10,textObj.width=stopx-startx,textObj.class="messageText",textObj.dy="1em",textObj.text=message,textObj.fontFamily=conf.messageFontFamily,textObj.fontSize=conf.messageFontSize,textObj.fontWeight=conf.messageFontWeight,textObj.anchor=conf.messageAlign,textObj.valign="center",textObj.textMargin=conf.wrapPadding,textObj.tspan=!1,hasKatex(textObj.text)?await drawKatex(diagram2,textObj,{startx:startx,stopx:stopx,starty:lineStartY}):drawText(diagram2,textObj);const textWidth=textDims.width;let line;if(startx===stopx){const isAutoNumberOn=sequenceVisible||conf.showSequenceNumbers,isReverse=isReverseArrowType(msg,diagObj),isBidirectional=isBidirectionalArrowType(msg,diagObj),lineStartX=startx+(isAutoNumberOn&&(isReverse||isBidirectional)?10:0);line=conf.rightAngles?diagram2.append("path").attr("d",`M ${lineStartX},${lineStartY} H ${startx+common_default.getMax(conf.width/2,textWidth/2)} V ${lineStartY+25} H ${startx}`):diagram2.append("path").attr("d","M "+lineStartX+","+lineStartY+" C "+(lineStartX+60)+","+(lineStartY-10)+" "+(startx+60)+","+(lineStartY+30)+" "+startx+","+(lineStartY+20)),hasCentralConnection(msg,diagObj)&&drawCentralConnection(diagram2,msg,msgModel,diagObj,startx,stopx,lineStartY)}else line=diagram2.append("line"),line.attr("x1",startx),line.attr("y1",lineStartY),line.attr("x2",stopx),line.attr("y2",lineStartY),hasCentralConnection(msg,diagObj)&&drawCentralConnection(diagram2,msg,msgModel,diagObj,startx,stopx,lineStartY);type===diagObj.db.LINETYPE.DOTTED||type===diagObj.db.LINETYPE.DOTTED_CROSS||type===diagObj.db.LINETYPE.DOTTED_POINT||type===diagObj.db.LINETYPE.DOTTED_OPEN||type===diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED||type===diagObj.db.LINETYPE.SOLID_TOP_DOTTED||type===diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED||type===diagObj.db.LINETYPE.STICK_TOP_DOTTED||type===diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED||type===diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(line.style("stroke-dasharray","3, 3"),line.attr("class","messageLine1")):line.attr("class","messageLine0"),line.attr("data-et","message"),line.attr("data-id","i"+msgModel.id),line.attr("data-from",msgModel.from),line.attr("data-to",msgModel.to);let url="";if(conf.arrowMarkerAbsolute&&(url=getUrl(!0)),line.attr("stroke-width",2),line.attr("stroke","none"),line.style("fill","none"),type!==diagObj.db.LINETYPE.SOLID_TOP&&type!==diagObj.db.LINETYPE.SOLID_TOP_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-solidTopArrowHead)"),type!==diagObj.db.LINETYPE.SOLID_BOTTOM&&type!==diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-solidBottomArrowHead)"),type!==diagObj.db.LINETYPE.STICK_TOP&&type!==diagObj.db.LINETYPE.STICK_TOP_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-stickTopArrowHead)"),type!==diagObj.db.LINETYPE.STICK_BOTTOM&&type!==diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-stickBottomArrowHead)"),type!==diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE&&type!==diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-solidBottomArrowHead)"),type!==diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE&&type!==diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-solidTopArrowHead)"),type!==diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE&&type!==diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-stickBottomArrowHead)"),type!==diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE&&type!==diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED||line.attr("marker-start","url("+url+"#"+diagramId+"-stickTopArrowHead)"),type!==diagObj.db.LINETYPE.SOLID&&type!==diagObj.db.LINETYPE.DOTTED||line.attr("marker-end","url("+url+"#"+diagramId+"-arrowhead)"),type!==diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID&&type!==diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED||(line.attr("marker-start","url("+url+"#"+diagramId+"-arrowhead)"),line.attr("marker-end","url("+url+"#"+diagramId+"-arrowhead)")),type!==diagObj.db.LINETYPE.SOLID_POINT&&type!==diagObj.db.LINETYPE.DOTTED_POINT||line.attr("marker-end","url("+url+"#"+diagramId+"-filled-head)"),type!==diagObj.db.LINETYPE.SOLID_CROSS&&type!==diagObj.db.LINETYPE.DOTTED_CROSS||line.attr("marker-end","url("+url+"#"+diagramId+"-crosshead)"),sequenceVisible||conf.showSequenceNumbers){const isBidirectional=type===diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID||type===diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED,isReverseArrowType2=type===diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||type===diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||type===diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE||type===diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||type===diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||type===diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,SEQUENCE_NUMBER_RADIUS=6,hasCentralConn=hasCentralConnection(msg,diagObj);let lineStartX=startx,lineStopX=stopx;isBidirectional?(startx<stopx?lineStartX=startx+2*SEQUENCE_NUMBER_RADIUS:(lineStartX=startx-SEQUENCE_NUMBER_RADIUS+(hasCentralConn?-5:0),lineStartX+=(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_DUAL||(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),line.attr("x1",lineStartX)):isReverseArrowType2?(stopx>startx?lineStopX=stopx-2*SEQUENCE_NUMBER_RADIUS:(lineStopX=stopx-SEQUENCE_NUMBER_RADIUS,lineStartX+=(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_DUAL||(null==msg?void 0:msg.centralConnection)===diagObj.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),lineStopX+=hasCentralConn?15:0,line.attr("x2",lineStopX),line.attr("x1",lineStartX)):line.attr("x1",startx+SEQUENCE_NUMBER_RADIUS);let autonumberX=0;const isLeftToRight=startx<=stopx;autonumberX=startx===stopx?msgModel.fromBounds+1:isReverseArrowType2?isLeftToRight?msgModel.toBounds-1:msgModel.fromBounds+1:isLeftToRight?msgModel.fromBounds+1:msgModel.toBounds-1,diagram2.append("line").attr("x1",autonumberX).attr("y1",lineStartY).attr("x2",autonumberX).attr("y2",lineStartY).attr("stroke-width",0).attr("marker-start","url("+url+"#"+diagramId+"-sequencenumber)"),diagram2.append("text").attr("x",autonumberX).attr("y",lineStartY+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(sequenceIndex)}},"drawMessage"),addActorRenderingData=__name(function(diagram2,actors,createdActors,actorKeys,verticalPos,messages,isFooter){let prevBox,prevWidth=0,prevMargin=0,maxHeight=0;for(const actorKey of actorKeys){const actor=actors.get(actorKey),box=actor.box;prevBox&&prevBox!=box&&(isFooter||bounds.models.addBox(prevBox),prevMargin+=conf.boxMargin+prevBox.margin),box&&box!=prevBox&&(isFooter||(box.x=prevWidth+prevMargin,box.y=verticalPos),prevMargin+=box.margin),actor.width=common_default.getMax(actor.width||conf.width,conf.width),actor.height=common_default.getMax(actor.height||conf.height,conf.height),actor.margin=actor.margin||conf.actorMargin,maxHeight=common_default.getMax(maxHeight,actor.height),createdActors.get(actor.name)&&(prevMargin+=actor.width/2),actor.x=prevWidth+prevMargin,actor.starty=bounds.getVerticalPos(),bounds.insert(actor.x,verticalPos,actor.x+actor.width,actor.height),prevWidth+=actor.width+prevMargin,actor.box&&(actor.box.width=prevWidth+box.margin-actor.box.x),prevMargin=actor.margin,prevBox=actor.box,bounds.models.addActor(actor)}prevBox&&!isFooter&&bounds.models.addBox(prevBox),bounds.bumpVerticalPos(maxHeight)},"addActorRenderingData"),drawActors=__name(async function(diagram2,actors,actorKeys,isFooter,diagramId,diagObj,actorIndexMap){if(isFooter){let maxHeight=0;bounds.bumpVerticalPos(2*conf.boxMargin);for(const actorKey of actorKeys){const actor=actors.get(actorKey);actor.stopy||(actor.stopy=bounds.getVerticalPos());const height=await svgDraw_default.drawActor(diagram2,actor,conf,!0,diagramId,diagObj,actorIndexMap);maxHeight=common_default.getMax(maxHeight,height)}bounds.bumpVerticalPos(maxHeight+conf.boxMargin)}else for(const actorKey of actorKeys){const actor=actors.get(actorKey);await svgDraw_default.drawActor(diagram2,actor,conf,!1,diagramId,diagObj,actorIndexMap)}},"drawActors"),drawActorsPopup=__name(function(diagram2,actors,actorKeys,doc){let maxHeight=0,maxWidth=0;for(const actorKey of actorKeys){const actor=actors.get(actorKey),minMenuWidth=getRequiredPopupWidth(actor),menuDimensions=svgDraw_default.drawPopup(diagram2,actor,minMenuWidth,conf,conf.forceMenus,doc);menuDimensions.height>maxHeight&&(maxHeight=menuDimensions.height),menuDimensions.width+actor.x>maxWidth&&(maxWidth=menuDimensions.width+actor.x)}return{maxHeight:maxHeight,maxWidth:maxWidth}},"drawActorsPopup"),setConf=__name(function(cnf){assignWithDepth_default(conf,cnf),cnf.fontFamily&&(conf.actorFontFamily=conf.noteFontFamily=conf.messageFontFamily=cnf.fontFamily),cnf.fontSize&&(conf.actorFontSize=conf.noteFontSize=conf.messageFontSize=cnf.fontSize),cnf.fontWeight&&(conf.actorFontWeight=conf.noteFontWeight=conf.messageFontWeight=cnf.fontWeight)},"setConf"),actorActivations=__name(function(actor){return bounds.activations.filter(function(activation){return activation.actor===actor})},"actorActivations"),activationBounds=__name(function(actor,actors){const actorObj=actors.get(actor),activations=actorActivations(actor);return[activations.reduce(function(acc,activation){return common_default.getMin(acc,activation.startx)},actorObj.x+actorObj.width/2-1),activations.reduce(function(acc,activation){return common_default.getMax(acc,activation.stopx)},actorObj.x+actorObj.width/2+1)]},"activationBounds");function adjustLoopHeightForWrap(loopWidths,msg,preMargin,postMargin,addLoopFn){bounds.bumpVerticalPos(preMargin);let heightAdjust=postMargin;if(msg.id&&msg.message&&loopWidths[msg.id]){const loopWidth=loopWidths[msg.id].width,textConf=messageFont(conf);msg.message=utils_default.wrapLabel(`[${msg.message}]`,loopWidth-2*conf.wrapPadding,textConf),msg.width=loopWidth,msg.wrap=!0;const textDims=utils_default.calculateTextDimensions(msg.message,textConf),totalOffset=common_default.getMax(textDims.height,conf.labelBoxHeight);heightAdjust=postMargin+totalOffset,log.debug(`${totalOffset} - ${msg.message}`)}addLoopFn(msg),bounds.bumpVerticalPos(heightAdjust)}function adjustCreatedDestroyedData(msg,msgModel,lineStartY,index,actors,createdActors,destroyedActors){function receiverAdjustment(actor,adjustment){actor.x<actors.get(msg.from).x?(bounds.insert(msgModel.stopx-adjustment,msgModel.starty,msgModel.startx,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.stopx=msgModel.stopx+adjustment):(bounds.insert(msgModel.startx,msgModel.starty,msgModel.stopx+adjustment,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.stopx=msgModel.stopx-adjustment)}function senderAdjustment(actor,adjustment){actor.x<actors.get(msg.to).x?(bounds.insert(msgModel.startx-adjustment,msgModel.starty,msgModel.stopx,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.startx=msgModel.startx+adjustment):(bounds.insert(msgModel.stopx,msgModel.starty,msgModel.startx+adjustment,msgModel.stopy+actor.height/2+conf.noteMargin),msgModel.startx=msgModel.startx-adjustment)}__name(receiverAdjustment,"receiverAdjustment"),__name(senderAdjustment,"senderAdjustment");const actorArray=[PARTICIPANT_TYPE_ACTOR,PARTICIPANT_TYPE_CONTROL,PARTICIPANT_TYPE_ENTITY,PARTICIPANT_TYPE_DATABASE];if(createdActors.get(msg.to)==index){const actor=actors.get(msg.to);receiverAdjustment(actor,actorArray.includes(actor.type)?21:actor.width/2+3),actor.starty=lineStartY-actor.height/2,bounds.bumpVerticalPos(actor.height/2)}else if(destroyedActors.get(msg.from)==index){const actor=actors.get(msg.from);if(conf.mirrorActors){senderAdjustment(actor,actorArray.includes(actor.type)?18:actor.width/2)}actor.stopy=lineStartY-actor.height/2,bounds.bumpVerticalPos(actor.height/2)}else if(destroyedActors.get(msg.to)==index){const actor=actors.get(msg.to);if(conf.mirrorActors){receiverAdjustment(actor,actorArray.includes(actor.type)?21:actor.width/2+3)}actor.stopy=lineStartY-actor.height/2,bounds.bumpVerticalPos(actor.height/2)}}__name(adjustLoopHeightForWrap,"adjustLoopHeightForWrap"),__name(adjustCreatedDestroyedData,"adjustCreatedDestroyedData");var draw=__name(async function(_text,id,_version,diagObj){const{securityLevel:securityLevel,sequence:sequence,look:look}=getConfig2();let sandboxElement;conf=sequence,"sandbox"===securityLevel&&(sandboxElement=select("#i"+id));const root=select("sandbox"===securityLevel?sandboxElement.nodes()[0].contentDocument.body:"body"),doc="sandbox"===securityLevel?sandboxElement.nodes()[0].contentDocument:document;bounds.init(),log.debug(diagObj.db);const diagram2="sandbox"===securityLevel?root.select(`[id="${id}"]`):select(`[id="${id}"]`),actors=diagObj.db.getActors(),createdActors=diagObj.db.getCreatedActors(),destroyedActors=diagObj.db.getDestroyedActors(),boxes=diagObj.db.getBoxes();let actorKeys=diagObj.db.getActorKeys();const messages=diagObj.db.getMessages(),title=diagObj.db.getDiagramTitle(),hasBoxes=diagObj.db.hasAtLeastOneBox(),hasBoxTitles=diagObj.db.hasAtLeastOneBoxWithTitle(),maxMessageWidthPerActor=await getMaxMessageWidthPerActor(actors,messages,diagObj);if(conf.height=await calculateActorMargins(actors,maxMessageWidthPerActor,boxes),svgDraw_default.insertComputerIcon(diagram2,id),svgDraw_default.insertDatabaseIcon(diagram2,id),svgDraw_default.insertClockIcon(diagram2,id),hasBoxes&&(bounds.bumpVerticalPos(conf.boxMargin),hasBoxTitles&&bounds.bumpVerticalPos(boxes[0].textMaxHeight)),!0===conf.hideUnusedParticipants){const newActors=new Set;messages.forEach(message=>{newActors.add(message.from),newActors.add(message.to)}),actorKeys=actorKeys.filter(actorKey=>newActors.has(actorKey))}const actorIndexMap=new Map(actorKeys.map((actorKey,index2)=>{var _a2;return[(null==(_a2=actors.get(actorKey))?void 0:_a2.name)??actorKey,index2]}));addActorRenderingData(diagram2,actors,createdActors,actorKeys,0,messages,!1);const loopWidths=await calculateLoopBounds(messages,actors,maxMessageWidthPerActor,diagObj);function activeEnd(msg,verticalPos){const activationData=bounds.endActivation(msg);activationData.starty+18>verticalPos&&(activationData.starty=verticalPos-6,verticalPos+=12),svgDraw_default.drawActivation(diagram2,activationData,verticalPos,conf,actorActivations(msg.from).length,diagObj,actorIndexMap),bounds.insert(activationData.startx,verticalPos-10,activationData.stopx,verticalPos)}svgDraw_default.insertArrowHead(diagram2,id),svgDraw_default.insertArrowCrossHead(diagram2,id),svgDraw_default.insertArrowFilledHead(diagram2,id),svgDraw_default.insertSequenceNumber(diagram2,id),svgDraw_default.insertSolidTopArrowHead(diagram2,id),svgDraw_default.insertSolidBottomArrowHead(diagram2,id),svgDraw_default.insertStickTopArrowHead(diagram2,id),svgDraw_default.insertStickBottomArrowHead(diagram2,id),"neo"===look&&svgDraw_default.insertDropShadow(diagram2,conf),__name(activeEnd,"activeEnd");let sequenceIndex=1,sequenceIndexStep=1;const messagesToDraw=[],backgrounds=[];let index=0;for(const msg of messages){let loopModel,noteModel,msgModel;switch(msg.type){case diagObj.db.LINETYPE.NOTE:bounds.resetVerticalPos(),noteModel=msg.noteModel,await drawNote(diagram2,noteModel,msg.id);break;case diagObj.db.LINETYPE.ACTIVE_START:case diagObj.db.LINETYPE.CENTRAL_CONNECTION:case diagObj.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:bounds.newActivation(msg,diagram2,actors);break;case diagObj.db.LINETYPE.ACTIVE_END:activeEnd(msg,bounds.getVerticalPos());break;case diagObj.db.LINETYPE.LOOP_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.LOOP_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"loop",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.RECT_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin,message=>bounds.newLoop(void 0,message.message));break;case diagObj.db.LINETYPE.RECT_END:loopModel=bounds.endLoop(),backgrounds.push(loopModel),bounds.models.addLoop(loopModel),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos());break;case diagObj.db.LINETYPE.OPT_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.OPT_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"opt",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.ALT_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.ALT_ELSE:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin+conf.boxTextMargin,conf.boxMargin,message=>bounds.addSectionToLoop(message));break;case diagObj.db.LINETYPE.ALT_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"alt",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.PAR_START:case diagObj.db.LINETYPE.PAR_OVER_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message)),bounds.saveVerticalPos();break;case diagObj.db.LINETYPE.PAR_AND:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin+conf.boxTextMargin,conf.boxMargin,message=>bounds.addSectionToLoop(message));break;case diagObj.db.LINETYPE.PAR_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"par",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.AUTONUMBER:sequenceIndex=msg.message.start||sequenceIndex,sequenceIndexStep=msg.message.step||sequenceIndexStep,msg.message.visible?diagObj.db.enableSequenceNumbers():diagObj.db.disableSequenceNumbers();break;case diagObj.db.LINETYPE.CRITICAL_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.CRITICAL_OPTION:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin+conf.boxTextMargin,conf.boxMargin,message=>bounds.addSectionToLoop(message));break;case diagObj.db.LINETYPE.CRITICAL_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"critical",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;case diagObj.db.LINETYPE.BREAK_START:adjustLoopHeightForWrap(loopWidths,msg,conf.boxMargin,conf.boxMargin+conf.boxTextMargin,message=>bounds.newLoop(message));break;case diagObj.db.LINETYPE.BREAK_END:loopModel=bounds.endLoop(),await svgDraw_default.drawLoop(diagram2,loopModel,"break",conf,msg),bounds.bumpVerticalPos(loopModel.stopy-bounds.getVerticalPos()),bounds.models.addLoop(loopModel);break;default:try{msgModel=msg.msgModel,msgModel.starty=bounds.getVerticalPos(),msgModel.sequenceIndex=sequenceIndex,msgModel.sequenceVisible=diagObj.db.showSequenceNumbers(),msgModel.id=msg.id,msgModel.from=msg.from,msgModel.to=msg.to;const lineStartY=await boundMessage(0,msgModel);adjustCreatedDestroyedData(msg,msgModel,lineStartY,index,actors,createdActors,destroyedActors),messagesToDraw.push({messageModel:msgModel,lineStartY:lineStartY,msg:msg}),bounds.models.addMessage(msgModel)}catch(e){log.error("error while drawing message",e)}}[diagObj.db.LINETYPE.SOLID_OPEN,diagObj.db.LINETYPE.DOTTED_OPEN,diagObj.db.LINETYPE.SOLID,diagObj.db.LINETYPE.SOLID_TOP,diagObj.db.LINETYPE.SOLID_BOTTOM,diagObj.db.LINETYPE.STICK_TOP,diagObj.db.LINETYPE.STICK_BOTTOM,diagObj.db.LINETYPE.SOLID_TOP_DOTTED,diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED,diagObj.db.LINETYPE.STICK_TOP_DOTTED,diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.DOTTED,diagObj.db.LINETYPE.SOLID_CROSS,diagObj.db.LINETYPE.DOTTED_CROSS,diagObj.db.LINETYPE.SOLID_POINT,diagObj.db.LINETYPE.DOTTED_POINT,diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(msg.type)&&(sequenceIndex+=sequenceIndexStep),index++}log.debug("createdActors",createdActors),log.debug("destroyedActors",destroyedActors),await drawActors(diagram2,actors,actorKeys,!1,id,diagObj,actorIndexMap);for(const e of messagesToDraw)await drawMessage(diagram2,e.messageModel,e.lineStartY,diagObj,e.msg,id);conf.mirrorActors&&await drawActors(diagram2,actors,actorKeys,!0,id,diagObj,actorIndexMap),backgrounds.forEach(e=>svgDraw_default.drawBackgroundRect(diagram2,e)),fixLifeLineHeights(diagram2,actors,actorKeys,conf);for(const box2 of bounds.models.boxes){box2.height=bounds.getVerticalPos()-box2.y,bounds.insert(box2.x,box2.y,box2.x+box2.width,box2.height);const boxPadding=2*conf.boxMargin;box2.startx=box2.x-boxPadding,box2.starty=box2.y-.25*boxPadding,box2.stopx=box2.startx+box2.width+2*boxPadding,box2.stopy=box2.starty+box2.height+.75*boxPadding,box2.stroke="rgb(0,0,0, 0.5)",svgDraw_default.drawBox(diagram2,box2,conf)}hasBoxes&&bounds.bumpVerticalPos(conf.boxMargin);const requiredBoxSize=drawActorsPopup(diagram2,actors,actorKeys,doc),{bounds:box}=bounds.getBounds();void 0===box.startx&&(box.startx=0),void 0===box.starty&&(box.starty=0),void 0===box.stopx&&(box.stopx=0),void 0===box.stopy&&(box.stopy=0);let boxHeight=box.stopy-box.starty;boxHeight<requiredBoxSize.maxHeight&&(boxHeight=requiredBoxSize.maxHeight);let height=boxHeight+2*conf.diagramMarginY;conf.mirrorActors&&(height=height-conf.boxMargin+conf.bottomMarginAdj);let boxWidth=box.stopx-box.startx;boxWidth<requiredBoxSize.maxWidth&&(boxWidth=requiredBoxSize.maxWidth);const width=boxWidth+2*conf.diagramMarginX;title&&diagram2.append("text").text(title).attr("x",(box.stopx-box.startx)/2-2*conf.diagramMarginX).attr("y",-25),configureSvgSize(diagram2,height,width,conf.useMaxWidth);const extraVertForTitle=title?40:0,extraHeightForNeoActors=actors.size&&"neo"===look?30:0;diagram2.attr("viewBox",box.startx-conf.diagramMarginX+" -"+(conf.diagramMarginY+extraVertForTitle)+" "+width+" "+(height+extraVertForTitle+extraHeightForNeoActors)),log.debug("models:",bounds.models)},"draw");async function getMaxMessageWidthPerActor(actors,messages,diagObj){const maxMessageWidthPerActor={};for(const msg of messages)if(actors.get(msg.to)&&actors.get(msg.from)){const actor=actors.get(msg.to);if(msg.placement===diagObj.db.PLACEMENT.LEFTOF&&!actor.prevActor)continue;if(msg.placement===diagObj.db.PLACEMENT.RIGHTOF&&!actor.nextActor)continue;const isNote=void 0!==msg.placement,isMessage=!isNote,textFont=isNote?noteFont(conf):messageFont(conf),wrappedMessage=msg.wrap?utils_default.wrapLabel(msg.message,conf.width-2*conf.wrapPadding,textFont):msg.message,messageWidth=(hasKatex(wrappedMessage)?await calculateMathMLDimensions(msg.message,getConfig2()):utils_default.calculateTextDimensions(wrappedMessage,textFont)).width+2*conf.wrapPadding;isMessage&&msg.from===actor.nextActor?maxMessageWidthPerActor[msg.to]=common_default.getMax(maxMessageWidthPerActor[msg.to]||0,messageWidth):isMessage&&msg.from===actor.prevActor?maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth):isMessage&&msg.from===msg.to?(maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth/2),maxMessageWidthPerActor[msg.to]=common_default.getMax(maxMessageWidthPerActor[msg.to]||0,messageWidth/2)):msg.placement===diagObj.db.PLACEMENT.RIGHTOF?maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth):msg.placement===diagObj.db.PLACEMENT.LEFTOF?maxMessageWidthPerActor[actor.prevActor]=common_default.getMax(maxMessageWidthPerActor[actor.prevActor]||0,messageWidth):msg.placement===diagObj.db.PLACEMENT.OVER&&(actor.prevActor&&(maxMessageWidthPerActor[actor.prevActor]=common_default.getMax(maxMessageWidthPerActor[actor.prevActor]||0,messageWidth/2)),actor.nextActor&&(maxMessageWidthPerActor[msg.from]=common_default.getMax(maxMessageWidthPerActor[msg.from]||0,messageWidth/2)))}return log.debug("maxMessageWidthPerActor:",maxMessageWidthPerActor),maxMessageWidthPerActor}__name(getMaxMessageWidthPerActor,"getMaxMessageWidthPerActor");var getRequiredPopupWidth=__name(function(actor){let requiredPopupWidth=0;const textFont=actorFont(conf);for(const key in actor.links){const labelWidth=utils_default.calculateTextDimensions(key,textFont).width+2*conf.wrapPadding+2*conf.boxMargin;requiredPopupWidth<labelWidth&&(requiredPopupWidth=labelWidth)}return requiredPopupWidth},"getRequiredPopupWidth");async function calculateActorMargins(actors,actorToMessageWidth,boxes){let maxHeight=0;for(const prop of actors.keys()){const actor=actors.get(prop);actor.wrap&&(actor.description=utils_default.wrapLabel(actor.description,conf.width-2*conf.wrapPadding,actorFont(conf)));const actDims=hasKatex(actor.description)?await calculateMathMLDimensions(actor.description,getConfig2()):utils_default.calculateTextDimensions(actor.description,actorFont(conf));actor.width=actor.wrap?conf.width:common_default.getMax(conf.width,actDims.width+2*conf.wrapPadding),actor.height=actor.wrap?common_default.getMax(actDims.height,conf.height):conf.height,maxHeight=common_default.getMax(maxHeight,actor.height)}for(const actorKey in actorToMessageWidth){const actor=actors.get(actorKey);if(!actor)continue;const nextActor=actors.get(actor.nextActor);if(!nextActor){const actorWidth2=actorToMessageWidth[actorKey]+conf.actorMargin-actor.width/2;actor.margin=common_default.getMax(actorWidth2,conf.actorMargin);continue}const actorWidth=actorToMessageWidth[actorKey]+conf.actorMargin-actor.width/2-nextActor.width/2;actor.margin=common_default.getMax(actorWidth,conf.actorMargin)}let maxBoxHeight=0;return boxes.forEach(box=>{const textFont=messageFont(conf);let totalWidth=box.actorKeys.reduce((total,aKey)=>total+(actors.get(aKey).width+(actors.get(aKey).margin||0)),0);totalWidth+=8*conf.boxMargin,totalWidth-=2*conf.boxTextMargin,box.wrap&&(box.name=utils_default.wrapLabel(box.name,totalWidth-2*conf.wrapPadding,textFont));const boxMsgDimensions=utils_default.calculateTextDimensions(box.name,textFont);maxBoxHeight=common_default.getMax(boxMsgDimensions.height,maxBoxHeight);const minWidth=common_default.getMax(totalWidth,boxMsgDimensions.width+2*conf.wrapPadding);if(box.margin=conf.boxTextMargin,totalWidth<minWidth){const missing=(minWidth-totalWidth)/2;box.margin+=missing}}),boxes.forEach(box=>box.textMaxHeight=maxBoxHeight),common_default.getMax(maxHeight,conf.height)}__name(calculateActorMargins,"calculateActorMargins");var buildNoteModel=__name(async function(msg,actors,diagObj){const fromActor=actors.get(msg.from),toActor=actors.get(msg.to),startx=fromActor.x,stopx=toActor.x,shouldWrap=msg.wrap&&msg.message;let textDimensions=hasKatex(msg.message)?await calculateMathMLDimensions(msg.message,getConfig2()):utils_default.calculateTextDimensions(shouldWrap?utils_default.wrapLabel(msg.message,conf.width,noteFont(conf)):msg.message,noteFont(conf));const noteModel={width:shouldWrap?conf.width:common_default.getMax(conf.width,textDimensions.width+2*conf.noteMargin),height:0,startx:fromActor.x,stopx:0,starty:0,stopy:0,message:msg.message};return msg.placement===diagObj.db.PLACEMENT.RIGHTOF?(noteModel.width=shouldWrap?common_default.getMax(conf.width,textDimensions.width):common_default.getMax(fromActor.width/2+toActor.width/2,textDimensions.width+2*conf.noteMargin),noteModel.startx=startx+(fromActor.width+conf.actorMargin)/2):msg.placement===diagObj.db.PLACEMENT.LEFTOF?(noteModel.width=shouldWrap?common_default.getMax(conf.width,textDimensions.width+2*conf.noteMargin):common_default.getMax(fromActor.width/2+toActor.width/2,textDimensions.width+2*conf.noteMargin),noteModel.startx=startx-noteModel.width+(fromActor.width-conf.actorMargin)/2):msg.to===msg.from?(textDimensions=utils_default.calculateTextDimensions(shouldWrap?utils_default.wrapLabel(msg.message,common_default.getMax(conf.width,fromActor.width),noteFont(conf)):msg.message,noteFont(conf)),noteModel.width=shouldWrap?common_default.getMax(conf.width,fromActor.width):common_default.getMax(fromActor.width,conf.width,textDimensions.width+2*conf.noteMargin),noteModel.startx=startx+(fromActor.width-noteModel.width)/2):(noteModel.width=Math.abs(startx+fromActor.width/2-(stopx+toActor.width/2))+conf.actorMargin,noteModel.startx=startx<stopx?startx+fromActor.width/2-conf.actorMargin/2:stopx+toActor.width/2-conf.actorMargin/2),shouldWrap&&(noteModel.message=utils_default.wrapLabel(msg.message,noteModel.width-2*conf.wrapPadding,noteFont(conf))),log.debug(`NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`),noteModel},"buildNoteModel"),hasCentralConnection=__name(function(msg,diagObj){const{CENTRAL_CONNECTION:CENTRAL_CONNECTION,CENTRAL_CONNECTION_REVERSE:CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL:CENTRAL_CONNECTION_DUAL}=diagObj.db.LINETYPE;return[CENTRAL_CONNECTION,CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL].includes(msg.centralConnection)},"hasCentralConnection"),calculateCentralConnectionOffset=__name(function(msg,diagObj,isArrowToRight){const{CENTRAL_CONNECTION_REVERSE:CENTRAL_CONNECTION_REVERSE,CENTRAL_CONNECTION_DUAL:CENTRAL_CONNECTION_DUAL,BIDIRECTIONAL_SOLID:BIDIRECTIONAL_SOLID,BIDIRECTIONAL_DOTTED:BIDIRECTIONAL_DOTTED}=diagObj.db.LINETYPE;let offset=0;return msg.centralConnection!==CENTRAL_CONNECTION_REVERSE&&msg.centralConnection!==CENTRAL_CONNECTION_DUAL||(offset+=4),msg.centralConnection!==CENTRAL_CONNECTION_REVERSE&&msg.centralConnection!==CENTRAL_CONNECTION_DUAL||msg.type!==BIDIRECTIONAL_SOLID&&msg.type!==BIDIRECTIONAL_DOTTED||(offset+=isArrowToRight?0:-6),offset},"calculateCentralConnectionOffset"),isReverseArrowType=__name(function(msg,diagObj){const{SOLID_ARROW_TOP_REVERSE:SOLID_ARROW_TOP_REVERSE,SOLID_ARROW_TOP_REVERSE_DOTTED:SOLID_ARROW_TOP_REVERSE_DOTTED,SOLID_ARROW_BOTTOM_REVERSE:SOLID_ARROW_BOTTOM_REVERSE,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:SOLID_ARROW_BOTTOM_REVERSE_DOTTED,STICK_ARROW_TOP_REVERSE:STICK_ARROW_TOP_REVERSE,STICK_ARROW_TOP_REVERSE_DOTTED:STICK_ARROW_TOP_REVERSE_DOTTED,STICK_ARROW_BOTTOM_REVERSE:STICK_ARROW_BOTTOM_REVERSE,STICK_ARROW_BOTTOM_REVERSE_DOTTED:STICK_ARROW_BOTTOM_REVERSE_DOTTED}=diagObj.db.LINETYPE;return[SOLID_ARROW_TOP_REVERSE,SOLID_ARROW_TOP_REVERSE_DOTTED,SOLID_ARROW_BOTTOM_REVERSE,SOLID_ARROW_BOTTOM_REVERSE_DOTTED,STICK_ARROW_TOP_REVERSE,STICK_ARROW_TOP_REVERSE_DOTTED,STICK_ARROW_BOTTOM_REVERSE,STICK_ARROW_BOTTOM_REVERSE_DOTTED].includes(msg.type)},"isReverseArrowType"),isBidirectionalArrowType=__name(function(msg,diagObj){const{BIDIRECTIONAL_SOLID:BIDIRECTIONAL_SOLID,BIDIRECTIONAL_DOTTED:BIDIRECTIONAL_DOTTED}=diagObj.db.LINETYPE;return[BIDIRECTIONAL_SOLID,BIDIRECTIONAL_DOTTED].includes(msg.type)},"isBidirectionalArrowType"),buildMessageModel=__name(function(msg,actors,diagObj){const{look:look}=getConfig2();if(![diagObj.db.LINETYPE.SOLID_OPEN,diagObj.db.LINETYPE.DOTTED_OPEN,diagObj.db.LINETYPE.SOLID,diagObj.db.LINETYPE.SOLID_TOP,diagObj.db.LINETYPE.SOLID_BOTTOM,diagObj.db.LINETYPE.STICK_TOP,diagObj.db.LINETYPE.STICK_BOTTOM,diagObj.db.LINETYPE.SOLID_TOP_DOTTED,diagObj.db.LINETYPE.SOLID_BOTTOM_DOTTED,diagObj.db.LINETYPE.STICK_TOP_DOTTED,diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.DOTTED,diagObj.db.LINETYPE.SOLID_CROSS,diagObj.db.LINETYPE.DOTTED_CROSS,diagObj.db.LINETYPE.SOLID_POINT,diagObj.db.LINETYPE.DOTTED_POINT,diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(msg.type))return{};const[fromLeft,fromRight]=activationBounds(msg.from,actors),[toLeft,toRight]=activationBounds(msg.to,actors),isArrowToRight=fromLeft<=toLeft;let startx=isArrowToRight?fromRight:fromLeft,stopx=isArrowToRight?toLeft:toRight;if("neo"===look){const offset=3;msg.type!==diagObj.db.LINETYPE.SOLID_OPEN&&(stopx+=isArrowToRight?-offset:offset),msg.type!==diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID&&msg.type!==diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED||(startx+=isArrowToRight?offset:-offset)}startx+=calculateCentralConnectionOffset(msg,diagObj,isArrowToRight);const isArrowToActivation=Math.abs(toLeft-toRight)>2,adjustValue=__name(value=>isArrowToRight?-value:value,"adjustValue");msg.from===msg.to?stopx=startx:(msg.activate&&!isArrowToActivation&&(stopx+=adjustValue(conf.activationWidth/2-1)),[diagObj.db.LINETYPE.SOLID_OPEN,diagObj.db.LINETYPE.DOTTED_OPEN,diagObj.db.LINETYPE.STICK_TOP,diagObj.db.LINETYPE.STICK_BOTTOM,diagObj.db.LINETYPE.STICK_TOP_DOTTED,diagObj.db.LINETYPE.STICK_BOTTOM_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,diagObj.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(msg.type)||(stopx+=adjustValue(3)),[diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,diagObj.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,diagObj.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(msg.type)&&(startx-=adjustValue(3)));const allBounds=[fromLeft,fromRight,toLeft,toRight],boundedWidth=Math.abs(startx-stopx);msg.wrap&&msg.message&&(msg.message=utils_default.wrapLabel(msg.message,common_default.getMax(boundedWidth+2*conf.wrapPadding,conf.width),messageFont(conf)));const msgDims=utils_default.calculateTextDimensions(msg.message,messageFont(conf));return{width:common_default.getMax(msg.wrap?0:msgDims.width+2*conf.wrapPadding,boundedWidth+2*conf.wrapPadding,conf.width),height:0,startx:startx,stopx:stopx,starty:0,stopy:0,message:msg.message,type:msg.type,wrap:msg.wrap,fromBounds:Math.min.apply(null,allBounds),toBounds:Math.max.apply(null,allBounds)}},"buildMessageModel"),calculateLoopBounds=__name(async function(messages,actors,_maxWidthPerActor,diagObj){const loops={},stack=[];let current,noteModel,msgModel;for(const msg of messages){switch(msg.type){case diagObj.db.LINETYPE.LOOP_START:case diagObj.db.LINETYPE.ALT_START:case diagObj.db.LINETYPE.OPT_START:case diagObj.db.LINETYPE.PAR_START:case diagObj.db.LINETYPE.PAR_OVER_START:case diagObj.db.LINETYPE.CRITICAL_START:case diagObj.db.LINETYPE.BREAK_START:stack.push({id:msg.id,msg:msg.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case diagObj.db.LINETYPE.ALT_ELSE:case diagObj.db.LINETYPE.PAR_AND:case diagObj.db.LINETYPE.CRITICAL_OPTION:msg.message&&(current=stack.pop(),loops[current.id]=current,loops[msg.id]=current,stack.push(current));break;case diagObj.db.LINETYPE.LOOP_END:case diagObj.db.LINETYPE.ALT_END:case diagObj.db.LINETYPE.OPT_END:case diagObj.db.LINETYPE.PAR_END:case diagObj.db.LINETYPE.CRITICAL_END:case diagObj.db.LINETYPE.BREAK_END:current=stack.pop(),loops[current.id]=current;break;case diagObj.db.LINETYPE.ACTIVE_START:{const actorRect=actors.get(msg.from?msg.from:msg.to.actor),stackedSize=actorActivations(msg.from?msg.from:msg.to.actor).length,x=actorRect.x+actorRect.width/2+(stackedSize-1)*conf.activationWidth/2,toAdd={startx:x,stopx:x+conf.activationWidth,actor:msg.from,enabled:!0};bounds.activations.push(toAdd)}break;case diagObj.db.LINETYPE.ACTIVE_END:{const lastActorActivationIdx=bounds.activations.map(a=>a.actor).lastIndexOf(msg.from);bounds.activations.splice(lastActorActivationIdx,1).splice(0,1)}}void 0!==msg.placement?(noteModel=await buildNoteModel(msg,actors,diagObj),msg.noteModel=noteModel,stack.forEach(stk=>{current=stk,current.from=common_default.getMin(current.from,noteModel.startx),current.to=common_default.getMax(current.to,noteModel.startx+noteModel.width),current.width=common_default.getMax(current.width,Math.abs(current.from-current.to))-conf.labelBoxWidth})):(msgModel=buildMessageModel(msg,actors,diagObj),msg.msgModel=msgModel,msgModel.startx&&msgModel.stopx&&stack.length>0&&stack.forEach(stk=>{if(current=stk,msgModel.startx===msgModel.stopx){const from=actors.get(msg.from),to=actors.get(msg.to);current.from=common_default.getMin(from.x-msgModel.width/2,from.x-from.width/2,current.from),current.to=common_default.getMax(to.x+msgModel.width/2,to.x+from.width/2,current.to),current.width=common_default.getMax(current.width,Math.abs(current.to-current.from))-conf.labelBoxWidth}else current.from=common_default.getMin(msgModel.startx,current.from),current.to=common_default.getMax(msgModel.stopx,current.to),current.width=common_default.getMax(current.width,msgModel.width)-conf.labelBoxWidth}))}return bounds.activations=[],log.debug("Loop type widths:",loops),loops},"calculateLoopBounds"),sequenceRenderer_default={bounds:bounds,drawActors:drawActors,drawActorsPopup:drawActorsPopup,setConf:setConf,draw:draw},diagram={parser:sequenceDiagram_default,get db(){return new SequenceDB},renderer:sequenceRenderer_default,styles:styles_default,init:__name(cnf=>{cnf.sequence||(cnf.sequence={}),cnf.wrap&&(cnf.sequence.wrap=cnf.wrap,setConfig2({sequence:{wrap:cnf.wrap}}))},"init")};export{diagram};
|