@hardikg/mdview 0.9.1 → 0.10.0

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.
Files changed (120) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +2 -2
  3. package/bin/mdview.mjs +60 -26
  4. package/dist/client/assets/2DXBBFLN-BxPqHNSN.js +5 -0
  5. package/dist/client/assets/46IJ22JX-u_jvQJNg.js +2 -0
  6. package/dist/client/assets/4TTDE5I4-BgbNAVNj.js +3 -0
  7. package/dist/client/assets/4UF3HTLV-DNbPxlOE.js +2 -0
  8. package/dist/client/assets/5THPTBWS-D57irc_4.js +1 -0
  9. package/dist/client/assets/7WLXJQOR-CHhKreq0.js +1 -0
  10. package/dist/client/assets/AAXQQPKT-CsAJqrOC.js +5 -0
  11. package/dist/client/assets/AKE5O7KZ-MSuBOjCG.js +2 -0
  12. package/dist/client/assets/BNMLP6AG-Ca3zyKQY.js +3 -0
  13. package/dist/client/assets/DKTLEL5E-B7ILCVTH.js +1 -0
  14. package/dist/client/assets/DR6PKOQU-Bw7cHvYp.js +2 -0
  15. package/dist/client/assets/E4RJ7UJB-CYB5C4K7.js +2 -0
  16. package/dist/client/assets/ELSXBIJH-DG0MW5dC.js +1 -0
  17. package/dist/client/assets/ERTIBQVS-BMWumWfk.js +2 -0
  18. package/dist/client/assets/F653G4FO-FI8M9Mc0.js +12 -0
  19. package/dist/client/assets/FKCDD66M-BPFkyrwI.js +1 -0
  20. package/dist/client/assets/FP7KDXVC-BLEBNkCO.js +2 -0
  21. package/dist/client/assets/FT5I3RHX-j5YoMicq.js +6 -0
  22. package/dist/client/assets/FTXIJQGB-nrHdCfp7.js +1 -0
  23. package/dist/client/assets/G3MDBVQH-EkdejvdW.js +1 -0
  24. package/dist/client/assets/GY35JXOZ-3ovTGxgz.js +2 -0
  25. package/dist/client/assets/H5EEJPP2-CNVQBEB3.js +1 -0
  26. package/dist/client/assets/HWDLEDTA-C_JcdBMO.js +1 -0
  27. package/dist/client/assets/JZWSX6AR-OwVPptYv.js +1 -0
  28. package/dist/client/assets/KQOEJWJY-DKTXya68.js +2 -0
  29. package/dist/client/assets/KS3BB3KE-QkpqVdmA.js +1 -0
  30. package/dist/client/assets/KXJRRZHI-BQRjeGWj.js +2 -0
  31. package/dist/client/assets/MFVI5XKI-DrRaRE9X.js +1 -0
  32. package/dist/client/assets/MWY2J62P-AbEgJnzK.js +12 -0
  33. package/dist/client/assets/MXGNCBL2-DG3CZR8g.js +2 -0
  34. package/dist/client/assets/N6DAJLIZ-BsZQKTyT.js +3 -0
  35. package/dist/client/assets/NU5M23IW-CvtpIovv.js +2 -0
  36. package/dist/client/assets/NV4XNBIS-nS8wAx3h.js +8 -0
  37. package/dist/client/assets/OGLU4SIR-DoTUWhkz.js +2 -0
  38. package/dist/client/assets/OUNS5N76-BwVLonT4.js +8 -0
  39. package/dist/client/assets/PU4ISKXV-BYX7eA_r.js +2 -0
  40. package/dist/client/assets/PUZGS23X-n6IKOr7S.js +1 -0
  41. package/dist/client/assets/Q3IYVLG5-hWt1rVyh.js +4 -0
  42. package/dist/client/assets/QYHQDLKZ-CjGeJM7R.js +4 -0
  43. package/dist/client/assets/RVARI57O-CXmrUIiS.js +1 -0
  44. package/dist/client/assets/RZSVICHU-BiwjruZZ.js +4 -0
  45. package/dist/client/assets/UEXXS2NB-Dkz_tz-N.js +2 -0
  46. package/dist/client/assets/UHTQJXKL-lvl-7QeT.js +5 -0
  47. package/dist/client/assets/URA2L2QI-B8pYKxOk.js +1 -0
  48. package/dist/client/assets/UXCHDUKG-BGy3ZRLM.js +2 -0
  49. package/dist/client/assets/VKNV3BUX-DZnoX4IV.js +5 -0
  50. package/dist/client/assets/VMV7XPHP-6QkisQwm.js +4 -0
  51. package/dist/client/assets/WEVWDWVA-nohBBhTA.js +2 -0
  52. package/dist/client/assets/XRRJ35LF-BE7gSN1k.js +2 -0
  53. package/dist/client/assets/YFKBLVVN-CVTPpei6.js +6 -0
  54. package/dist/client/assets/YHRE5QGZ-Bs7dUKjj.js +4 -0
  55. package/dist/client/assets/ZF3OVT4B-6LaC6iLs.js +3 -0
  56. package/dist/client/assets/index-392ivruk.js +2 -0
  57. package/dist/client/assets/{index-BP_8buXC.css → index-CGQuEJ_w.css} +1 -1
  58. package/dist/client/assets/lazy-CKqR1774.js +43 -0
  59. package/dist/client/index.html +2 -2
  60. package/package.json +4 -3
  61. package/dist/client/assets/abnfDiagram-VCTEODGH-BJQEGN-7.js +0 -1
  62. package/dist/client/assets/arc-C6Oi4WlG.js +0 -1
  63. package/dist/client/assets/architectureDiagram-5GKGNRK7-CvFdvi3K.js +0 -36
  64. package/dist/client/assets/blockDiagram-NRAW4CY4-D8P8a3XW.js +0 -129
  65. package/dist/client/assets/c4Diagram-UCG6FXSJ-WcmmjfHX.js +0 -38
  66. package/dist/client/assets/channel-UA4WTF8Q.js +0 -1
  67. package/dist/client/assets/chunk-2Q5K7J3B-LeZsbe9d.js +0 -1
  68. package/dist/client/assets/chunk-5VM5RSS4-COq9euGx.js +0 -15
  69. package/dist/client/assets/chunk-F27PBJKO-BxcjnaqW.js +0 -1
  70. package/dist/client/assets/chunk-G27WJ6UU-CscpPXiS.js +0 -231
  71. package/dist/client/assets/chunk-JWPE2WC7-DD0M0JL-.js +0 -1
  72. package/dist/client/assets/chunk-LCL6LL3I-DXhJ59Qq.js +0 -206
  73. package/dist/client/assets/chunk-POPQ4Y6H-Bj3eKHA8.js +0 -1
  74. package/dist/client/assets/chunk-SVP7TREG-CDQ9vZv1.js +0 -88
  75. package/dist/client/assets/chunk-XXDRQBXY-91VBn0TQ.js +0 -1
  76. package/dist/client/assets/classDiagram-DTDB5LWJ-Ch3MnxRH.js +0 -1
  77. package/dist/client/assets/classDiagram-v2-JRS7N3AN-Ch3MnxRH.js +0 -1
  78. package/dist/client/assets/cose-bilkent-JH36ORCC-BaQN6N6K.js +0 -1
  79. package/dist/client/assets/cynefin-OW5HDTMX-DFpC3uqz.js +0 -178
  80. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-CSeSIxw6.js +0 -62
  81. package/dist/client/assets/cytoscape.esm-BjAbmLdb.js +0 -331
  82. package/dist/client/assets/dagre-3AP2YEHR-BBkMnw1s.js +0 -4
  83. package/dist/client/assets/defaultLocale-DX6XiGOO.js +0 -1
  84. package/dist/client/assets/diagram-S7CK7UJ4-BRdjuShi.js +0 -30
  85. package/dist/client/assets/diagram-UQ7AKVKN-D-RaNNET.js +0 -41
  86. package/dist/client/assets/diagram-VSXAHHWV-eL5_j9pa.js +0 -3
  87. package/dist/client/assets/diagram-VX7I27RA-nlUjCwlX.js +0 -24
  88. package/dist/client/assets/diagram-Z3DM3KII-DvhXGz8M.js +0 -24
  89. package/dist/client/assets/ebnfDiagram-PWID7BFC-LgynLQ4Z.js +0 -1
  90. package/dist/client/assets/erDiagram-SSCWMZ5O-Bc2j9FRV.js +0 -99
  91. package/dist/client/assets/flowDiagram-A5DVABFB-ClpDS0y_.js +0 -168
  92. package/dist/client/assets/ganttDiagram-EL5Y4UJY-_RmNHCQH.js +0 -292
  93. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-F1UGJQ4d.js +0 -106
  94. package/dist/client/assets/index-DqIihcNP.js +0 -2
  95. package/dist/client/assets/infoDiagram-RXCK75RN-BR20W1yx.js +0 -2
  96. package/dist/client/assets/init-Gi6I4Gst.js +0 -1
  97. package/dist/client/assets/ishikawaDiagram-5VMMS53U-D6bgpoOj.js +0 -70
  98. package/dist/client/assets/journeyDiagram-EYS64GPL-CBjB_0Bx.js +0 -139
  99. package/dist/client/assets/kanban-definition-3QL26DDD-Bz0HhYZd.js +0 -89
  100. package/dist/client/assets/layout-BmTy4KT7.js +0 -1
  101. package/dist/client/assets/linear-Cgk2Kw-d.js +0 -1
  102. package/dist/client/assets/mermaid.core-Dq2piIpp.js +0 -312
  103. package/dist/client/assets/mindmap-definition-FBJOCRG2-BSbZ3zKk.js +0 -96
  104. package/dist/client/assets/ordinal-Cboi1Yqb.js +0 -1
  105. package/dist/client/assets/pegDiagram-XKGWAZYB-BLsHBZ_O.js +0 -1
  106. package/dist/client/assets/pieDiagram-E7YTZNPT-BTtaojGC.js +0 -39
  107. package/dist/client/assets/quadrantDiagram-AXDQQJYC-W-VPz1gZ.js +0 -7
  108. package/dist/client/assets/railroadDiagram-O6MQD6OU-CstXUJhE.js +0 -1
  109. package/dist/client/assets/requirementDiagram-EFPCY7ZU-DPpI_Lvd.js +0 -84
  110. package/dist/client/assets/sankeyDiagram-P5KCCOFB-B3HiW1sY.js +0 -40
  111. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-CfpZAY9b.js +0 -162
  112. package/dist/client/assets/sizeCapture-X5ZJPWSS-Dsdx6W_J.js +0 -1
  113. package/dist/client/assets/stateDiagram-HBIQ2CUA-DPm-o7Ee.js +0 -1
  114. package/dist/client/assets/stateDiagram-v2-4QOOHH4V-DDqXMzve.js +0 -1
  115. package/dist/client/assets/swimlanes-XN3QIQJK-BPdZeRls.js +0 -1
  116. package/dist/client/assets/swimlanesDiagram-VK2B7HYN-BHORPcrU.js +0 -8
  117. package/dist/client/assets/timeline-definition-24CTP7MA-1bs3iV0k.js +0 -120
  118. package/dist/client/assets/vennDiagram-4TSXK5OY-vYOlmqTL.js +0 -34
  119. package/dist/client/assets/wardleyDiagram-VM6X3IG4-DTPUMRNL.js +0 -78
  120. package/dist/client/assets/xychartDiagram-S5SC5T6Z-M5kqQyt7.js +0 -7
@@ -0,0 +1,12 @@
1
+ var Zt=Object.defineProperty;var Gt=(e,a,i)=>a in e?Zt(e,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[a]=i;var H=(e,a,i)=>Gt(e,typeof a!="symbol"?a+"":a,i);import{q as Jt,x as Bt,L as Ot,e as me,i as Qt,t as Ke,H as Xt}from"./lazy-CKqR1774.js";import{k as ea}from"./KQOEJWJY-DKTXya68.js";import{p as ta,h as aa}from"./DKTLEL5E-B7ILCVTH.js";import{a as Ze,D as Mt}from"./HWDLEDTA-C_JcdBMO.js";import{x as n,g as St,a as fe,y as ce,f as de,$ as ra,_ as ia,h as sa,b as la}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";var na="aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkgrey darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkslategrey darkturquoise darkviolet deeppink deepskyblue dimgray dimgrey dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow grey honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightslategrey lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple rebeccapurple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray slategrey snow springgreen steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow yellowgreen transparent currentcolor inherit initial unset revert accentcolor accentcolortext activetext buttonborder buttonface buttontext canvas canvastext field fieldtext graytext highlight highlighttext linktext mark marktext selecteditem selecteditemtext visitedtext activeborder activecaption appworkspace background buttonhighlight buttonshadow captiontext inactiveborder inactivecaption inactivecaptiontext infobackground infotext menu menutext scrollbar threeddarkshadow threedface threedhighlight threedlightshadow threedshadow window windowframe windowtext",Et,oa=/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?(%|deg|grad|rad|turn)?$/i;function Vt(e){if(e.toLowerCase()==="none")return 4;let a=oa.exec(e);return a?a[1]===void 0?1:a[1]==="%"?2:3:0}function ca(e,a){let i=Vt(e);return i===1||i===2||a&&i===4}function da(e){let a=e.startsWith("hsl"),i=e.indexOf("("),l=e.slice(0,i);if(l!=="rgb"&&l!=="rgba"&&l!=="hsl"&&l!=="hsla"||e.length>120||e.indexOf(")")!==e.length-1)return!1;let h=e.slice(i+1,-1).trim(),o,b,r=h.includes(",");if(r)o=h.split(",").map(u=>u.trim()),o.length===4&&(b=o.pop());else{let u=h.split("/");if(u.length>2)return!1;o=u[0].trim().split(/\s+/),u.length===2&&(b=u[1].trim())}if(o.length!==3||b!==void 0&&!ca(b,!r))return!1;let T=o.map(Vt);if(r)return a?(T[0]===1||T[0]===3)&&T[1]===2&&T[2]===2:(T[0]===1||T[0]===2)&&T[1]===T[0]&&T[2]===T[0];for(let u=0;u<3;u++){let M=T[u];if(!(M===1||M===4||(a&&u===0?M===3:M===2)))return!1}return!0}function ha(e){return e.includes("(")?da(e):(Et??(Et=new Set(na.split(" "))),Et.has(e.toLowerCase()))}var pa=/^:?wrap:/,ua=/^:?nowrap:/,fa=/^:?(?:no)?wrap:/,ga=/^(?:rgba?|hsla?)\s*\(/,Ct=/[\r\u2028\u2029]/,xa=/^\w*/;function Ee(e){throw new Bt(e,"semantic",{type:"sequence"})}function Dt(e){let a=e.trim(),i=pa.test(a)?!0:ua.test(a)?!1:void 0;return{text:(i===void 0?a:a.replace(fa,"")).trim(),wrap:i}}function $a(e){let a=ga.exec(e);if(a){let l=e.lastIndexOf(")");if(l>=a[0].length)return Ct.test(e.slice(a[0].length))?void 0:[e.slice(0,l+1),e.slice(l+1)]}if(Ct.test(e))return;let i=xa.exec(e)[0];return[i,e.slice(i.length)]}function Rt(e){return typeof e=="string"?[...e].map((a,i)=>[String(i),a]):e!==null&&typeof e=="object"?Object.entries(e):[]}var ma=class{constructor(e={}){H(this,"type","sequence");H(this,"actors",new Map);H(this,"createdActors",new Map);H(this,"destroyedActors",new Map);H(this,"boxes",[]);H(this,"messages",[]);H(this,"notes",[]);H(this,"title");H(this,"accTitle");H(this,"accDescr");H(this,"prevActor");H(this,"currentBox");H(this,"lastCreated");H(this,"lastDestroyed");H(this,"wrapEnabled");H(this,"sequenceWrap");H(this,"active",new Map);this.wrapEnabled=e.wrap,this.sequenceWrap=e.sequenceWrap??!1}autoWrap(){return this.wrapEnabled??this.sequenceWrap}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,"")}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
2
+ `)}setDiagramTitle(e){this.title=e}parseMessage(e){return Dt(e)}parseBoxData(e){let a=$a(e),i=a!=null&&a[0]?a[0].trim():"transparent",l=a!=null&&a[1]?a[1].trim():void 0;if(ha(i)||(i="transparent",l=e.trim()),l===void 0)return{text:void 0,color:i,wrap:void 0};let{text:h,wrap:o}=Dt(l);return{text:h||void 0,color:i,wrap:o}}addBox(e){this.currentBox={name:e.text,wrap:e.wrap??this.autoWrap(),fill:e.color,actorKeys:[]},this.boxes.push(this.currentBox)}addActor(e,a,i,l,h){let o=this.currentBox,b;if(h!==void 0){let M;try{M=Jt(h.includes(`
3
+ `)?h+`
4
+ `:`{
5
+ `+h+`
6
+ }`)}catch(q){throw new Bt(`Config of participant "${e}" is not valid YAML. ${q.message}`,"syntax",{type:"sequence"})}M!==null&&typeof M=="object"&&!Array.isArray(M)&&(b=M)}let r=b&&Object.prototype.hasOwnProperty.call(b,"type")?b.type:void 0,T=b&&Object.prototype.hasOwnProperty.call(b,"alias")?b.alias:void 0;r!=null&&(l=String(r)),T&&(!i||i.text===a)&&(i={text:String(T),wrap:i==null?void 0:i.wrap,type:l});let u=this.actors.get(e);if(!(u&&(this.currentBox&&u.box&&this.currentBox!==u.box&&Ee(`A same participant should only be defined in one Box: ${u.name} can't be in '${u.box.name}' and in '${this.currentBox.name}' at the same time.`),o=u.box?u.box:this.currentBox,u.box=o,a===u.name&&i==null))){if(((i==null?void 0:i.text)==null||l==null)&&(i={text:a,type:l}),this.actors.set(e,{box:o,name:a,description:i.text,wrap:i.wrap??this.autoWrap(),prevActor:this.prevActor,links:new Map,properties:new Map,type:l??"participant"}),this.prevActor){let M=this.actors.get(this.prevActor);M&&(M.nextActor=e)}this.currentBox&&this.currentBox.actorKeys.push(e),this.prevActor=e}}addMessage(e,a,i,l){this.messages.push({id:String(this.messages.length),from:e,to:a,message:i.text,wrap:i.wrap??this.autoWrap(),answer:l})}addSignal(e,a,i,l,h=!1,o){if(l===18){let b=e?this.active.get(e)??0:0;b<1&&Ee(`Trying to inactivate an inactive participant (${e})`),this.active.set(e,b-1)}else l===17&&e&&this.active.set(e,(this.active.get(e)??0)+1);return this.messages.push({id:String(this.messages.length),from:e,to:a,message:(i==null?void 0:i.text)??"",wrap:(i==null?void 0:i.wrap)??this.autoWrap(),type:l,activate:h,centralConnection:o??0}),!0}addNote(e,a,i){let l=i.wrap??this.autoWrap(),h={actor:e,placement:a,message:i.text,wrap:l},o=typeof e=="string"?[e,e]:e;this.notes.push(h),this.messages.push({id:String(this.messages.length),from:o[0],to:o[1],message:i.text,wrap:l,type:2,placement:a})}addLinks(e,a){let i=this.actors.get(e);if(i)try{let l=JSON.parse(a.text);for(let[h,o]of Rt(l))i.links.set(h,o)}catch{return}}addALink(e,a){let i=this.actors.get(e);if(!i)return;let l=a.text.indexOf("@");i.links.set(a.text.slice(0,l-1).trim(),a.text.slice(l+1).trim())}addProperties(e,a){let i=this.actors.get(e);if(i)try{let l=JSON.parse(a.text);for(let[h,o]of Rt(l))i.properties.set(h,o)}catch{return}}addDetails(e,a){let i=this.actors.get(e);i&&(i.details=a.text)}apply(e){let a=[],i=[],l=e;for(;;){l!==void 0&&(Array.isArray(l)?(a.push(l),i.push(0)):typeof l!="string"&&this.applyOne(l));let h=a.length-1;if(h<0)return;let o=a[h];i[h]<o.length?l=o[i[h]++]:(a.pop(),i.pop(),l=void 0)}}applyOne(e){let a=e.actor;switch(e.type){case"sequenceIndex":this.messages.push({id:String(this.messages.length),from:void 0,to:void 0,message:{start:e.sequenceIndex,step:e.sequenceIndexStep,visible:e.sequenceVisible===!0},wrap:!1,type:e.signalType});break;case"addParticipant":this.addActor(a,a,e.description,e.draw,e.config);break;case"createParticipant":this.actors.has(a)&&Ee("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.lastCreated=a,this.addActor(a,a,e.description,e.draw,e.config),this.createdActors.set(a,this.messages.length);break;case"destroyParticipant":this.lastDestroyed=a,this.destroyedActors.set(a,this.messages.length);break;case"activeStart":case"activeEnd":case"centralConnection":case"centralConnectionReverse":this.addSignal(a,void 0,void 0,e.signalType);break;case"addNote":this.addNote(e.actor,e.placement,e.text);break;case"addLinks":this.addLinks(a,e.text);break;case"addALink":this.addALink(a,e.text);break;case"addProperties":this.addProperties(a,e.text);break;case"addDetails":this.addDetails(a,e.text);break;case"addMessage":this.lastCreated?(e.to!==this.lastCreated&&Ee(`The created participant ${this.lastCreated} does not have an associated creating message after its declaration. Please check the sequence diagram.`),this.lastCreated=void 0):this.lastDestroyed&&(e.to!==this.lastDestroyed&&e.from!==this.lastDestroyed&&Ee(`The destroyed participant ${this.lastDestroyed} does not have an associated destroying message after its declaration. Please check the sequence diagram.`),this.lastDestroyed=void 0),this.addSignal(e.from,e.to,e.msg,e.signalType,e.activate,e.centralConnection);break;case"boxStart":this.addBox(e.boxData);break;case"boxEnd":this.currentBox=void 0;break;case"loopStart":this.addSignal(void 0,void 0,e.loopText,e.signalType);break;case"rectStart":this.addSignal(void 0,void 0,e.color,e.signalType);break;case"optStart":this.addSignal(void 0,void 0,e.optText,e.signalType);break;case"altStart":case"else":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"parStart":case"and":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,e.criticalText,e.signalType);break;case"option":this.addSignal(void 0,void 0,e.optionText,e.signalType);break;case"breakStart":this.addSignal(void 0,void 0,e.breakText,e.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break}}},It=["$end","INVALID","INVALID","NEWLINE","SD","create","box","restOfLine","end","autonumber","NUM","off","activate","deactivate","title","legacy_title","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","loop","rect","opt","alt","par","par_over","critical","break","option","and","else","participant","AS","participant_actor","destroy","note","over","links","link","properties","details",",","left_of","right_of","+","-","()","ACTOR","CONFIG_START","CONFIG_CONTENT","CONFIG_END","TXT","SOLID_OPEN_ARROW","DOTTED_OPEN_ARROW","SOLID_ARROW","BIDIRECTIONAL_SOLID_ARROW","DOTTED_ARROW","BIDIRECTIONAL_DOTTED_ARROW","SOLID_CROSS","DOTTED_CROSS","SOLID_POINT","DOTTED_POINT","SOLID_ARROW_TOP","SOLID_ARROW_BOTTOM","STICK_ARROW_TOP","STICK_ARROW_BOTTOM","SOLID_ARROW_TOP_DOTTED","SOLID_ARROW_BOTTOM_DOTTED","STICK_ARROW_TOP_DOTTED","STICK_ARROW_BOTTOM_DOTTED","SOLID_ARROW_TOP_REVERSE","SOLID_ARROW_BOTTOM_REVERSE","STICK_ARROW_TOP_REVERSE","STICK_ARROW_BOTTOM_REVERSE","SOLID_ARROW_TOP_REVERSE_DOTTED","SOLID_ARROW_BOTTOM_REVERSE_DOTTED","STICK_ARROW_TOP_REVERSE_DOTTED","STICK_ARROW_BOTTOM_REVERSE_DOTTED"],Ht=new Uint8Array(128);for(let e=0;e<128;e++){let a=String.fromCharCode(e),i=e===32||e>=9&&e<=13,l=0;`/\\+()<->:
7
+ ,;`.includes(a)||(l|=1),`+<->:
8
+ ,;`.includes(a)||(l|=2),`<>:
9
+ ,;@`.includes(a)||(l|=8|(i?0:4)),`#
10
+ ;`.includes(a)||(l|=16),!`/\\+()<>:
11
+ ,;-`.includes(a)&&!i&&(l|=32),Ht[e]=l}function ya(e){let a=e.length,i=[],l=[],h=[],o=[],b=0,r=0,T=-1,u=(s,x,y)=>{i.push(s),l.push(e.slice(x,y)),h.push(x),r=y},M=(s,x,y,_)=>{i.push(s),l.push(_),h.push(x),r=y},q=s=>{o.push(b),b=s},z=()=>{o.length>0&&(b=o.pop())},P=s=>(T<s&&(T=e.indexOf(`
12
+ `,s),T===-1&&(T=a)),T),Q=(s,x)=>{let y=e.charCodeAt(s);return y<128?(Ht[y]&x)!==0:x===4||x===32?!me(y):!0},X=(s,x)=>{for(let y=0;y<x.length;y++){let _=x.charCodeAt(y),C=e.charCodeAt(s+y);if(_>=97&&_<=122?(C|32)!==_:C!==_)return!1}return!0},ee=s=>X(r,s)&&!Qt(e.charCodeAt(r+s.length)),Z=s=>{for(;s<a&&me(e.charCodeAt(s));)s++;return s},L=()=>{let s=r;for(;s<a;){let x=e.charCodeAt(s);if(x===10||!me(x))break;s++}return s===r?!1:(r=s,!0)},m=s=>{for(;s<a&&Q(s,16);)s++;return s},w=(s,x,y)=>{u(s,r,r+x),q(y)},p=(s,x,y=-1)=>ee(s)?(u(x,r,r+s.length),y>=0&&q(y),!0):!1,R=(s,x)=>{if(!X(r,s))return!1;let y=r+s.length,_=e.charCodeAt(y);if(_!==32&&_!==9)return!1;for(;_===32||_===9;)_=e.charCodeAt(++y);return y>=a||!Q(y,32)?!1:(u(x,r,r+s.length),!0)},B=s=>{let x=e.charCodeAt(s),y=e.charCodeAt(s+1);if(x===45){if(y===120||y===88||y===41||y===92||y===47||y===45)return!0;let _=e.charCodeAt(s+2);return y===124&&(_===92||_===47)}return x===47||x===92?(y===124||y===x)&&e.charCodeAt(s+2)===45:x===40&&y===41},G=()=>{let s=r+1;for(;s<a&&Q(s,1);)s++;for(;s<a&&!B(s);){let x=s;for(;e.charCodeAt(x)===45;)x++;if(x>=a||!Q(x,2))break;for(x++;x<a&&Q(x,2);)x++;s=x}M(48,r,s,e.slice(r,s).trim())},E=()=>{let s=r;for(;Ke(e.charCodeAt(s));)s++;let x=s>r;if(e.charCodeAt(s)===46&&Ke(e.charCodeAt(s+1))){let _=Ke(e.charCodeAt(s+2))?s+3:s+2,C=e.charCodeAt(_);if(C===32||C===10)return u(10,r,_),!0}let y=e.charCodeAt(s);return x&&(y===32||y===10)?(u(10,r,s),!0):!1},N=()=>{let s=e.charCodeAt(r+1),x=e.charCodeAt(r+2);if(s===62)u(x===62?55:53,r,r+(x===62?3:2));else if(s===120||s===88)u(59,r,r+2);else if(s===41)u(61,r,r+2);else if(s===124&&x===92)u(63,r,r+3);else if(s===124&&x===47)u(64,r,r+3);else if(s===92&&x===92)u(65,r,r+3);else if(s===47&&x===47)u(66,r,r+3);else if(s===45){let y=e.charCodeAt(r+3);x===62?u(y===62?57:54,r,r+(y===62?4:3)):x===120||x===88?u(60,r,r+3):x===41?u(62,r,r+3):x===124&&y===92?u(67,r,r+4):x===124&&y===47?u(68,r,r+4):x===92&&y===92?u(69,r,r+4):x===47&&y===47?u(70,r,r+4):u(46,r,r+1)}else u(46,r,r+1)},oe=s=>{let x=e.charCodeAt(r+1);if(x!==124&&x!==s||e.charCodeAt(r+2)!==45)return!1;let y=e.charCodeAt(r+3)===45,_=s===47,C;return x===124?y?C=_?75:76:C=_?71:72:y?C=_?77:78:C=_?73:74,u(C,r,r+(y?4:3)),!0},ie=()=>{if(!X(r,"title"))return!1;let s=r+5,x=e.charCodeAt(s)===58;return x&&s++,!me(e.charCodeAt(s))||s+1>=a||!Q(s+1,16)?!1:(u(x?15:14,r,m(s+1)),!0)},ve=()=>{let s=X(r,"accdescr");if(!s&&!X(r,"acctitle"))return!1;let x=Z(r+8),y=e.charCodeAt(x);return y===58?(u(s?18:16,r,Z(x+1)),q(s?6:5),!0):s&&y===123?(r=Z(x+1),q(7),!0):!1},ge=s=>{switch(s|32){case 97:return p("actor",34,1)||p("alt",24,3)||p("and",30,3)||p("activate",12,1)||ve()||p("autonumber",9);case 98:return p("box",6,3)||p("break",28,3);case 99:return p("create",5)||p("critical",27,3);case 100:return p("destroy",35,1)||R("details",41)||p("deactivate",13,1);case 101:return p("else",31,3)||p("end",8);case 108:return p("loop",21,3)||p("left of",43)||R("links",38)||R("link",39);case 110:return p("note",36);case 111:return p("opt",23,3)||p("option",29,3)||p("over",37)||p("off",11);case 112:return p("participant",32,1)||p("par",25,3)||p("par_over",26,3)||R("properties",40);case 114:return p("rect",22,3)||p("right of",44);case 115:return p("sequencediagram",4);case 116:return ie();default:return!1}},A=()=>{let s=e.charCodeAt(r);if(s===10){let x=r+1;for(;e.charCodeAt(x)===10;)x++;u(3,r,x);return}if(me(s)){r=Z(r+1);return}if(s===35||s===37&&e.charCodeAt(r+1)!==123){r=P(r);return}if(s!==125&&e.charCodeAt(r+1)===37&&e.charCodeAt(r+2)===37){r=P(r);return}if(!((Ke(s)||s===46)&&E())&&!(s<128&&(s|32)>=97&&(s|32)<=122&&ge(s)))if(s===44)u(42,r,r+1);else if(s===59)u(3,r,r+1);else if(Q(r,1))G();else if(s===45)N();else if(s===60&&e.startsWith("<<->>",r))u(56,r,r+5);else if(s===60&&e.startsWith("<<-->>",r))u(58,r,r+6);else{if((s===47||s===92)&&oe(s))return;s===58?u(52,r,m(r+1)):s===43?u(45,r,r+1):s===40&&e.charCodeAt(r+1)===41?u(47,r,r+2):u(2,r,r+1)}},xe=()=>{if(L())return!0;let s=e.charCodeAt(r);if(s===35)return r=P(r),!0;if(s===64&&e.charCodeAt(r+1)===123)return w(49,2,4),!0;let x=r;for(;x<a&&Q(x,4);)x++;if(x>r){let _=Z(x);if(e.charCodeAt(_)===64&&e.charCodeAt(_+1)===123)return u(48,r,x),!0;if(_>x&&X(_,"as")&&me(e.charCodeAt(_+2)))return u(48,r,x),q(2),!0}let y=x;for(;y<a&&Q(y,8);)y++;if(y>r){let _=e.charCodeAt(y),C=y;if(y<a&&_!==10&&_!==59)for(C--;C>r&&e.charCodeAt(C)!==35;)C--;if(C>r)return M(48,r,C,e.slice(r,C).trim()),z(),!0}if(e.charCodeAt(y)===60)return u(2,r,P(r)),z(),!0;if(s!==10){let _=P(r);return M(2,r,_,e.slice(r,_).trim()),z(),!0}return!1},se=()=>{switch(b){case 0:return A(),!0;case 1:return xe();case 2:return L()?!0:e.charCodeAt(r)===35?(r=P(r),!0):(z(),z(),ee("as")?w(33,2,3):u(3,r,r),!0);case 3:return L()?!0:e.charCodeAt(r)===35?(r=P(r),!0):(u(7,r,m(r)),z(),!0);case 4:if(e.charCodeAt(r)!==125){let s=e.indexOf("}",r);return s===-1&&(s=a),u(50,r,s),!0}else{let s=Z(r+1),x=s>r+1&&X(s,"as")&&me(e.charCodeAt(s+2));return u(51,r,r+1),z(),x?q(2):z(),!0}case 5:case 6:return u(b===5?17:19,r,P(r)),z(),!0;default:if(e.charCodeAt(r)===125)r++,z();else{let s=e.indexOf("}",r);s===-1&&(s=a),u(20,r,s)}return!0}};for(;r<a;)if(!se())return i.push(1),l.push(""),h.push(r),{types:i,texts:l,starts:h};return b===0||b===2?u(3,a,a):b===3?u(7,a,a):b===5?u(17,a,a):b===6?u(19,a,a):b===7&&u(20,a,a),i.push(0),l.push(""),h.push(a),{types:i,texts:l,starts:h}}var I=new Int8Array(79).fill(-1);I[53]=5;I[54]=6;I[55]=0;I[57]=1;I[56]=33;I[58]=34;I[59]=3;I[60]=4;I[61]=24;I[62]=25;I[63]=41;I[64]=42;I[65]=43;I[66]=44;I[67]=51;I[68]=52;I[69]=53;I[70]=54;I[71]=45;I[72]=46;I[73]=47;I[74]=48;I[75]=55;I[76]=56;I[77]=57;I[78]=58;var ne=new Int8Array(79).fill(-1);ne[21]=2;ne[22]=3;ne[23]=4;ne[28]=5;ne[24]=6;ne[25]=7;ne[26]=7;ne[27]=8;ne[6]=1;var ba="'SOLID_OPEN_ARROW', 'DOTTED_OPEN_ARROW', 'SOLID_ARROW', 'DOTTED_ARROW', 'SOLID_CROSS', 'DOTTED_CROSS', 'SOLID_POINT', 'DOTTED_POINT'";function wa(e,a){let{types:i,texts:l,starts:h}=ya(e),o=0,b=m=>{let w=i[o];throw w===1?Ot("sequence",e,h[o],"",!0):Ot("sequence",e,h[o],`Expecting ${m}, got '${It[w]}'`)},r=m=>(i[o]!==m&&b(`'${It[m]}'`),l[o++]),T=()=>{let m=i[o];return m!==48&&m!==39&&b("'ACTOR'"),{type:"addParticipant",actor:l[o++]}},u=()=>a.parseMessage(r(52).trim().substring(1)),M=()=>{let m=i[o++];if(m===35){let p=T();return r(3),p.type="destroyParticipant",p}let w=T();if(i[o]===49&&i[o-1]===48){o++;let p=r(50);r(51),w.config=p.trim()}if(w.draw=m===32?"participant":"actor",i[o]===33){o++;let p=r(7);r(3),w.description=a.parseMessage(p)}else i[o]===3?o++:b("'AS', 'NEWLINE'");return w},q=m=>{let w=!1;i[o]===47&&(w=!0,o++);let p=I[i[o]];p<0&&b(ba),o++;let R=i[o];(R===47||!w&&(R===45||R===46))&&o++;let B=T(),G=u(),E={type:"addMessage",from:m.actor,to:B.actor,signalType:p,msg:G},N=[m,B,E];if(w){let oe=R===47;E.activate=oe,E.centralConnection=oe?61:60,oe&&N.push({type:"centralConnection",signalType:59,actor:B.actor}),N.push({type:"centralConnectionReverse",signalType:60,actor:m.actor})}else R===45?(E.activate=!0,N.push({type:"activeStart",signalType:17,actor:B.actor})):R===46?N.push({type:"activeEnd",signalType:18,actor:m.actor}):R===47&&(E.activate=!0,E.centralConnection=59,N.push({type:"centralConnection",signalType:59,actor:B.actor}));return N},z=m=>{o++;let w=T();return[w,{type:m,actor:w.actor,text:u()}]},P=()=>{o++;let m=i[o];if(m===37){o++;let R=T(),B=R,G=[R.actor,R.actor];if(i[o]===42){o++;let E=T();B=[R,E],G=[R.actor,E.actor]}return[B,{type:"addNote",placement:2,actor:G,text:u()}]}m!==43&&m!==44&&b("'over', 'left_of', 'right_of'"),o++;let w=T();return[w,{type:"addNote",placement:m===43?0:1,actor:w.actor,text:u()}]},Q=()=>{o++;let m={type:"sequenceIndex",sequenceVisible:!0,signalType:26};return i[o]===10?(m.sequenceIndex=Number(l[o++]),m.sequenceIndexStep=i[o]===10?Number(l[o++]):1):i[o]===11&&(o++,m.sequenceVisible=!1),i[o]!==3&&b("'NEWLINE', 'NUM', 'off'"),o++,m},X=(m,w,p,R)=>{let B=m.list,G=m.sections;if(G)for(let E=G.length-2;E>=0;E-=2){let N={type:w,signalType:R};N[p]=a.parseMessage(G[E+1]),B=G[E].concat([N,B])}return B},ee=m=>{let w=m.text,p=m.list;switch(m.kind){case 1:p[0]={type:"boxStart",boxData:a.parseBoxData(w)},p.push({type:"boxEnd",boxText:w});break;case 2:p[0]={type:"loopStart",loopText:a.parseMessage(w),signalType:10},p.push({type:"loopEnd",loopText:w,signalType:11});break;case 3:p[0]={type:"rectStart",color:a.parseMessage(w),signalType:22},p.push({type:"rectEnd",color:a.parseMessage(w),signalType:23});break;case 4:p[0]={type:"optStart",optText:a.parseMessage(w),signalType:15},p.push({type:"optEnd",optText:a.parseMessage(w),signalType:16});break;case 5:p[0]={type:"breakStart",breakText:a.parseMessage(w),signalType:30},p.push({type:"breakEnd",optText:a.parseMessage(w),signalType:31});break;case 6:p=X(m,"else","altText",13),p[0]={type:"altStart",altText:a.parseMessage(w),signalType:12},p.push({type:"altEnd",signalType:14});break;case 7:p=X(m,"and","parText",20),p[0]={type:"parStart",parText:a.parseMessage(w),signalType:m.startType},p.push({type:"parEnd",signalType:21});break;default:p=X(m,"option","optionText",28),p[0]={type:"criticalStart",criticalText:a.parseMessage(w),signalType:27},p.push({type:"criticalEnd",signalType:29})}return p};for(;i[o]===3;)o++;r(4);let Z=[],L={kind:0,text:"",startType:0,list:[],sections:void 0};for(;;){let m=i[o],w=L.list;if(L.kind===1){if(m===32||m===34||m===35)w.push(M());else if(m===3)w.push([]),o++;else if(m===8){o++;let p=ee(L);L=Z.pop(),L.list.push(p)}else b("'end', 'NEWLINE', 'participant', 'participant_actor', 'destroy'");continue}switch(m){case 3:case 2:w.push([]),o++;break;case 32:case 34:case 35:w.push(M());break;case 5:{o++;let p=i[o];p!==32&&p!==34&&p!==35&&b("'participant', 'participant_actor', 'destroy'");let R=M();R.type="createParticipant",w.push(R);break}case 48:w.push(q(T())),r(3);break;case 39:{let p=i[o+1];w.push(p===48||p===39?z("addALink"):q(T())),r(3);break}case 38:w.push(z("addLinks")),r(3);break;case 40:w.push(z("addProperties")),r(3);break;case 41:w.push(z("addDetails")),r(3);break;case 36:w.push(P()),r(3);break;case 9:w.push(Q());break;case 12:case 13:{o++;let p=T();r(3),w.push(m===12?{type:"activeStart",signalType:17,actor:p.actor}:{type:"activeEnd",signalType:18,actor:p.actor});break}case 14:case 15:{let p=l[o++].substring(m===14?6:7);a.setDiagramTitle(p),w.push(p);break}case 16:{o++;let p=r(17).trim();a.setAccTitle(p),w.push(p);break}case 18:{o++;let p=r(19).trim();a.setAccDescription(p),w.push(p);break}case 20:{let p=l[o++].trim();a.setAccDescription(p),w.push(p);break}case 21:case 22:case 23:case 28:case 24:case 25:case 26:case 27:case 6:{o++;let p=r(7);Z.push(L),L={kind:ne[m],text:p,startType:m===26?32:19,list:[[]],sections:void 0};break}case 31:case 30:case 29:{L.kind!==(m===31?6:m===30?7:8)&&b("'end'"),o++;let p=r(7);(L.sections??(L.sections=[])).push(w,p),L.list=[];break}case 8:{L.kind===0&&b("'NEWLINE', 'EOF'"),o++;let p=ee(L);L=Z.pop(),L.list.push(p);break}case 0:L.kind!==0&&b("'end'"),a.apply(w);return;default:b("'NEWLINE', 'ACTOR', 'participant', 'note', 'end'")}}}var va=16,ka=10,jt=34,Kt=4,we=5,be=6,he=' fill="var(--_s)" stroke="var(--_b)"',Oe=' fill="none" stroke="var(--_b)"',Ta=new Set(["participant","actor","boundary","control","entity","database","collections","queue"]),Aa=new Set(["actor","boundary","control","entity","database"]);function _a(e){return Ta.has(e)?e:"participant"}function gt(e){return Aa.has(e)}function Oa(e,a,i,l,h=va){if(gt(e))return{w:Math.max(40,a.width+8),h:jt+(a.height>0?Kt+a.height:0)};let o=e==="collections"?we:e==="queue"?2*be:0;return{w:Math.max(i,a.width+2*h)+o,h:Math.max(l,a.height+2*ka)+(e==="collections"?we:0)}}function Ma(e,a,i){let l=n(a),h=o=>n(i+o);switch(e){case"actor":return`<circle cx="${l}" cy="${h(7)}" r="6"${he}/><path d="M${l},${h(13)}V${h(24)}M${n(a-10)},${h(17)}H${n(a+10)}M${n(a-8)},${h(34)}L${l},${h(24)}L${n(a+8)},${h(34)}"${Oe}/>`;case"boundary":return`<path d="M${n(a-19)},${h(6)}V${h(28)}M${n(a-19)},${h(17)}H${n(a-8)}"${Oe}/><circle cx="${n(a+3)}" cy="${h(17)}" r="11"${he}/>`;case"control":return`<circle cx="${l}" cy="${h(21)}" r="11"${he}/><path d="M${n(a+5)},${h(5)}L${n(a-1)},${h(10)}L${n(a+5)},${h(15)}"${Oe}/>`;case"entity":return`<circle cx="${l}" cy="${h(15)}" r="11"${he}/><path d="M${n(a-11)},${h(30)}H${n(a+11)}"${Oe}/>`;default:{let o=n(a-14),b=n(a+14);return`<path d="M${o},${h(7)}V${h(27)}A14,5 0 0 0 ${b},${h(27)}V${h(7)}A14,5 0 0 0 ${o},${h(7)}Z"${he}/><path d="M${o},${h(7)}A14,5 0 0 0 ${b},${h(7)}"${Oe}/>`}}}function Sa(e,a,i,l,h,o){let{w:b,h:r}=l,T=' class="pele-label"';if(gt(e))return Ma(e,a,i)+de(h,a,i+jt+Kt+h.height/2,T,o);let u=a-b/2;if(e==="collections"){let M=b-we,q=r-we,z=`<rect x="${n(u+we)}" y="${n(i)}" width="${n(M)}" height="${n(q)}" rx="${fe}"${he}/>`,P=`<rect x="${n(u)}" y="${n(i+we)}" width="${n(M)}" height="${n(q)}" rx="${fe}"${he}/>`;return z+P+de(h,u+M/2,i+we+q/2,T,o)}if(e==="queue"){let M=n(u+be),q=n(u+b-be),z=n(i+r),P=n(r/2);return`<path d="M${M},${n(i)}H${q}A${be},${P} 0 0 1 ${q},${z}H${M}A${be},${P} 0 0 1 ${M},${n(i)}Z"${he}/><path d="M${q},${n(i)}A${be},${P} 0 0 0 ${q},${z}"${Oe}/>`+de(h,a-be/2,i+r/2,T,o)}return`<rect x="${n(u)}" y="${n(i)}" width="${n(b)}" height="${n(r)}" rx="${fe}"${he}/>`+de(h,a,i+r/2,T,o)}var xt=[];function j(e,a,i,l=1,h=!1){xt[e]={dotted:a,head:i,atStart:l!==1,atEnd:l!==0,bottom:h}}j(0,!1,1);j(1,!0,1);j(3,!1,2);j(4,!0,2);j(5,!1,0);j(6,!0,0);j(24,!1,3);j(25,!0,3);j(33,!1,1,2);j(34,!0,1,2);for(let e of[!1,!0]){let a=e?10:0;j(41+a,e,4),j(42+a,e,4,1,!0),j(43+a,e,5),j(44+a,e,5,1,!0),j(45+a,e,4,0),j(46+a,e,4,0,!0),j(47+a,e,5,0),j(48+a,e,5,0,!0)}var Ea=new Map([[10,"loop"],[12,"alt"],[15,"opt"],[19,"par"],[32,"par"],[27,"critical"],[30,"break"],[22,"rect"]]),Ca=12,ut=28,Lt=22,re=10,Wt=4,Da=14,Ae=10,Ra=16,Ia=20,La=10,Fe=20,Nt=240,Ye=16,_e=4,qt=' stroke-dasharray="4 4"';function ft(e){return e!==void 0&&xt[e]!==void 0}function Wa(e,a){let i=new Array(e.length),l=new Array(e.length),h=1,o=1,b=!1;for(let r=0;r<e.length;r++){let T=e[r];if(i[r]=NaN,l[r]=!1,T.type===26){let u=T.message;h=u.start||h,o=u.step||o,b=u.visible}else ft(T.type)&&(i[r]=h,l[r]=b||a,h=Math.round((h+o)*100)/100)}return{index:i,shown:l,visible:b}}var zt={lines:[],widths:[],width:0,height:0,size:0,lineHeight:0};function ye(e,a,i){let l=e[a];return typeof l=="number"&&l>=0&&l<=2e3?l:i}function Pt(e,a,i,l,h){let o=n(e-i*Ze);return h?`<path class="pele-marker" d="M${n(e)},${n(a)}L${o},${n(a+l*5)}"/>`:`<path class="pele-marker" d="M${n(e)},${n(a)}L${o},${n(a+l*4.5)}V${n(a)}Z" fill="var(--_l)" stroke="none"/>`}function Ue(e,a,i,l,h){switch(e){case 1:return Mt("arrow_point",a,i,l,0,"var(--_l)");case 2:return Mt("arrow_cross",a,i,l,0,"var(--_l)");case 3:return`<path class="pele-marker" d="M${n(a-l*Ze)},${n(i-4.5)}L${n(a)},${n(i)}L${n(a-l*Ze)},${n(i+4.5)}" stroke-linejoin="round"/>`;case 4:return Pt(a,i,l,h,!1);case 5:return Pt(a,i,l,h,!0);default:return""}}function Na(e){return e===1?Ze-1:e===2?4:0}function qa(e,a,i){return ta(i,l=>za(e,a,i,l))}function za(e,a,i,l){var Tt;let h=a.sequence??{},o=i.fontSize??16,b=Math.round(o*.875),r=Math.round(o*.75),T=i.measurer??Xt(i.fontFamily),u=i.icons,M=i.padding??8,q=h.mirrorActors!==!1,z=h.rightAngles===!0,P=Math.min(ye(h,"actorMargin",40),l?8:1/0),Q=Math.min(ye(h,"width",64),l?48:1/0),X=ye(h,"height",Math.round(o*1.5)+20),ee=Math.min(ye(h,"width",160),l?Math.max(32,((i.maxWidth??320)-2*M)/Math.max(1,e.actors.size)-P-24):1/0),Z=Math.max(4,14+ye(h,"messageMargin",35)-35),L=Math.min(ye(h,"noteMargin",10),l?6:1/0),m=Math.min(ye(h,"boxMargin",10),l?6:1/0),w=h.messageAlign==="left"?-1:h.messageAlign==="right"?1:0,p=l?6:Ca,R=l?8:Ra,B=l?12:Ia,G=l?6:La,E=e.messages,N=E.length,oe=Wa(E,h.showSequenceNumbers===!0),ie=(t,c,f,$=ee,g=0)=>{let d=ia(t,!1,T,c,l||f?$:1/0,g);return l?ea(d,T,Math.max(120,$)):d},ve;if(h.hideUnusedParticipants===!0){ve=new Set;for(let t of E)ve.add(t.from).add(t.to)}let ge=new Int32Array(N+1);ge[N]=-1;for(let t=N-1;t>=0;t--)ge[t]=ft(E[t].type)?t:ge[t+1];let A=[],xe=new Map;for(let[t,c]of e.actors){if(ve&&!ve.has(t))continue;let f=_a(c.type),$=ie(c.description,o,c.wrap),g=e.createdActors.get(t),d=e.destroyedActors.get(t),v=g===void 0?-1:ge[Math.min(g,N)];v>=0&&E[v].to!==t&&(v=-1);let k=d===void 0?-1:ge[Math.min(d,N)];k>=0&&E[k].to!==t&&E[k].from!==t&&(k=-1),xe.set(t,A.length),A.push({id:t,actor:c,kind:f,label:$,size:Oa(f,$,Q,X,l?8:void 0),x:0,createAt:v,destroyAt:k,top:0,lifeStart:0,lifeEnd:-1,activations:[]})}let se=A.length-1,s=new Map,x=(t,c,f)=>{if(t<0||c>se)return;let $=t*A.length+c;(s.get($)??0)<f&&s.set($,f)},y=t=>oe.shown[t]?Math.max(Ye,T.width(String(oe.index[t]),r,0)+8):0,_=new Array(N);for(let t=0;t<N;t++){let c=E[t],f=c.from===void 0?void 0:xe.get(c.from),$=c.to===void 0?void 0:xe.get(c.to);if(!(f===void 0||$===void 0||typeof c.message!="string")){if(c.type===2){let g=ie(c.message,b,c.wrap),d=g.width+2*L;c.placement===0?x(f-1,f,d+2*Ae+re):c.placement===1?x(f,f+1,d+2*Ae+re):f===$?(x(f-1,f,d/2+Ae),x(f,f+1,d/2+Ae)):x(Math.min(f,$),Math.max(f,$),d-2*R),_[t]={kind:2,a:f,b:$,label:g,x:0,w:d}}else if(ft(c.type)){let g=ie(c.message,b,c.wrap),d=y(t);if(f===$)x(f,f+1,ut+8+g.width+16+re+d),_[t]={kind:1,a:f,b:$,label:g,x:0,w:0};else{let v=A[$].createAt===t?A[$].size.w/2:0,k=c.centralConnection?4*_e:0;x(Math.min(f,$),Math.max(f,$),(l?Math.min(g.width,Math.max(16,ee-16)):g.width)+2*p+re+d+v+k),_[t]={kind:0,a:f,b:$,label:g,x:0,w:0}}}}}let C=[];for(let t=0;t<=se;t++){let c=A[t].actor.box,f=C[C.length-1];c&&f&&f.box===c&&f.last===t-1?f.last=t:c&&C.push({box:c,first:t,last:t,title:ie(c.name,b,c.wrap),grow:0})}let ke=new Array(Math.max(se,0));for(let t=0;t<se;t++){let c=A[t],f=A[t+1],$=c.actor.box!==f.actor.box?(c.actor.box?m:0)+(f.actor.box?m:0):0;ke[t]=Math.max(c.size.w/2+f.size.w/2+P+$,s.get(t*A.length+t+1)??0)}let Ge=[];for(let[t,c]of s){let f=Math.floor(t/A.length),$=t%A.length;$-f>1&&Ge.push([f,$,c])}Ge.sort((t,c)=>t[1]-t[0]-(c[1]-c[0])||t[0]-c[0]);for(let[t,c,f]of Ge){let $=0;for(let d=t;d<c;d++)$+=ke[d];if($>=f)continue;let g=(f-$)/(c-t);for(let d=t;d<c;d++)ke[d]+=g}let $t=()=>{for(let t=1;t<=se;t++)A[t].x=A[t-1].x+ke[t-1]};$t();for(let t of C){let c=A[t.last].x+A[t.last].size.w/2-(A[t.first].x-A[t.first].size.w/2);t.grow=Math.max(0,(t.title.width-c)/2),t.grow!==0&&(t.first>0&&(ke[t.first-1]+=t.grow),t.last<se&&(ke[t.last]+=t.grow))}$t();let Te=1/0,Me=-1/0,le=(t,c)=>{t<Te&&(Te=t),c>Me&&(Me=c)};for(let t of A)le(t.x-t.size.w/2,t.x+t.size.w/2);for(let t of C)le(A[t.first].x-A[t.first].size.w/2-m-t.grow,A[t.last].x+A[t.last].size.w/2+m+t.grow);let Je=new Array(N),pe=[],Ft=()=>se<0?[0,120]:[A[0].x-B,A[se].x+B];for(let t=0;t<N;t++){let c=E[t],f=c.type,$=f===void 0?void 0:Ea.get(f),g=_[t];if($!==void 0){let d={kind:$,x0:1/0,x1:-1/0,top:0,title:zt,tabW:0,fill:$==="rect"&&typeof c.message=="string"?c.message:"",dividers:[t],dividerY:[],dividerLabels:[]};Je[t]=d,pe.push(d)}else if(f===13||f===20||f===28)(Tt=pe[pe.length-1])==null||Tt.dividers.push(t);else if(f===11||f===14||f===16||f===21||f===29||f===31||f===23){let d=pe.pop();if(!d)continue;if(Je[t]=d,d.x0>d.x1&&([d.x0,d.x1]=Ft()),d.kind!=="rect"){d.tabW=T.width(d.kind,r,1)+14;for(let k=0;k<d.dividers.length;k++){let O=E[d.dividers[k]].message,W=k===0?d.tabW+8:0,F=d.x1-d.x0-16-W,K=O?ie(`[${O}]`,b,!0,Math.max(F,l?Math.min(Nt,ee):Nt)):zt;K.width>F&&(d.x1+=K.width-F),k===0?d.title=K:d.dividerLabels.push(K)}}le(d.x0,d.x1);let v=pe[pe.length-1];v&&(v.x0=Math.min(v.x0,d.x0-G),v.x1=Math.max(v.x1,d.x1+G))}else if(g){let d=A[g.a],v=A[g.b],k,O;if(g.kind===2){if(c.placement===0)g.x=d.x-Ae-g.w;else if(c.placement===1)g.x=d.x+Ae;else if(g.a===g.b)g.x=d.x-g.w/2;else{let F=Math.min(d.x,v.x)-R,K=Math.max(d.x,v.x)+R;(l||c.wrap)&&(g.label=ie(c.message,b,!0,Math.max(ee,K-F-2*L))),g.w=Math.max(K-F,g.label.width+2*L),g.x=(F+K-g.w)/2}k=g.x,O=g.x+g.w}else g.kind===1?(k=d.x,O=d.x+re+ut+8+g.label.width+y(t)):(k=Math.min(d.x,v.x),O=Math.max(d.x,v.x),(l||c.wrap)&&(g.label=ie(c.message,b,!0,Math.max(ee,O-k-2*p-re))),v.createAt===t&&(v.x>d.x?O+=v.size.w/2:k-=v.size.w/2));le(k,O);let W=pe[pe.length-1];W&&(W.x0=Math.min(W.x0,k-B),W.x1=Math.max(W.x1,O+B))}}let Ce=0;for(let t of C)Ce=Math.max(Ce,t.title.height);let Yt=C.length>0?m+(Ce>0?Ce+4:0):0,Qe=0;for(let t of A)t.createAt<0&&(Qe=Math.max(Qe,t.size.h));let Xe=Yt+Qe;for(let t of A)t.top=Xe-t.size.h,t.lifeStart=Xe;let De=A.map(t=>t.x),Ut=(t,c)=>{let f=0,$=De.length;for(;f<$;){let g=f+$>>1;De[g]<=t?f=g+1:$=g}return f<De.length&&De[f]<c},et=(t,c,f,$)=>{if(t.width===0)return"";let g=c-t.width/2;return(Ut(g,g+t.width)?`<rect x="${n(g-3)}" y="${n(f-t.height/2+2)}" width="${n(t.width+6)}" height="${n(t.height-4)}" rx="3" fill="var(--_bg)" stroke="none"/>`:"")+de(t,c,f,$,u)},tt=(t,c=0)=>t.activations.length+c>0?t.x-re/2:t.x,Se=(t,c=0)=>{let f=t.activations.length+c;return f>0?t.x+re/2+(f-1)*Wt:t.x},at=[],rt=[],it="",st="",Re="",lt="",Ie="",nt="",mt=(t,c)=>{let f=t.activations.pop(),$=Math.max(c,f+Da),g=t.x-re/2+t.activations.length*Wt;return le(g,g+re),rt.push(`<rect class="pele-activation" data-id="${ce(t.id)}" x="${n(g)}" y="${n(f)}" width="${re}" height="${n($-f)}" rx="2"/>`),$},yt=(t,c)=>{let f=t.x,$=c+16;return t.lifeEnd=$,nt+=`<path class="pele-destroy" data-id="${ce(t.id)}" d="M${n(f-6)},${n($-6)}L${n(f+6)},${n($+6)}M${n(f+6)},${n($-6)}L${n(f-6)},${n($+6)}"/>`,$+6},bt=(t,c,f)=>{let $=t.actor.properties.get("class");return`<g class="pele-node pele-actor pele-actor-${t.kind}${f?" pele-actor-footer":""}${typeof $=="string"?sa($):""}" data-id="${ce(t.id)}">`+Sa(t.kind,t.x,c,t.size,t.label,u)+"</g>"},ot=(t,c,f,$)=>`<g class="pele-sequence-number"><rect x="${n(c-$/2)}" y="${n(f-Ye/2)}" width="${n($)}" height="${Ye}" rx="${Ye/2}" fill="var(--_l)" stroke="none"/><text x="${n(c)}" y="${n(f+r*.35)}" text-anchor="middle" font-size="${r}" fill="var(--_bg)" stroke="none">${la(String(oe.index[t]))}</text></g>`,D=Xe+6,Le=[];for(let t=0;t<N;t++){let c=E[t],f=c.type,$=_[t],g=Je[t];if(f===17){let d=c.from===void 0?void 0:xe.get(c.from);d!==void 0&&A[d].activations.push(D)}else if(f===18){let d=c.from===void 0?void 0:xe.get(c.from);d!==void 0&&A[d].activations.length>0&&(D=Math.max(D,mt(A[d],D)))}else if(g&&g.dividers[0]===t)Le.push(g),g.kind==="rect"?(g.top=D+8,D=g.top):(g.top=D+12,D=g.top+Math.max(Fe,g.title.height+2));else if(g){Le.pop();let d=D+12,v=n(g.x0),k=n(g.x1-g.x0);if(g.kind==="rect"){let O=g.fill?St([`fill:${g.fill}`]).shape:"";at.push(`<rect class="pele-rect" x="${v}" y="${n(g.top)}" width="${k}" height="${n(d-g.top)}" rx="${fe}"${O?"":' fill-opacity="0.5"'}${O}/>`)}else{let O=`<rect x="${v}" y="${n(g.top)}" width="${k}" height="${n(d-g.top)}" rx="${fe}" fill="none"/>`;for(let W=0;W<g.dividerY.length;W++){let F=g.dividerY[W],K=g.dividerLabels[W];O+=`<path d="M${v},${n(F)}H${n(g.x1)}"${qt}/>`+et(K,g.x0+8+K.width/2,F+2+K.height/2,' class="pele-frame-label" fill="var(--_m)" stroke="none"')}O+=`<rect x="${v}" y="${n(g.top)}" width="${n(g.tabW)}" height="${Fe}" rx="${fe}" fill="var(--_s)"/><text class="pele-frame-kind" x="${n(g.x0+g.tabW/2)}" y="${n(g.top+Fe/2+r*.35)}" text-anchor="middle" font-size="${r}" font-weight="var(--_hw)" fill="var(--_m)" stroke="none">${g.kind}</text>`+et(g.title,g.x0+g.tabW+8+g.title.width/2,g.top+Math.max(Fe,g.title.height)/2,' class="pele-frame-label" fill="var(--_m)" stroke="none"'),it+=`<g class="pele-frame pele-frame-${g.kind}">${O}</g>`}D=d}else if(f===13||f===20||f===28){let d=Le[Le.length-1];if(d){let v=d.dividerLabels[d.dividerY.length];d.dividerY.push(D+12),D+=12+(v.height>0?v.height:0)}}else if($&&$.kind===2){let d=A[$.a],v=$.label.height+2*Math.max(4,L-4),k=D+10,O=$.x;c.placement===1?O+=Se(d)-d.x:c.placement===0&&(O+=tt(d)-d.x),le(O,O+$.w),lt+=`<g class="pele-note" data-id="i${ce(c.id)}"><rect x="${n(O)}" y="${n(k)}" width="${n($.w)}" height="${n(v)}" rx="${fe}"/>`+de($.label,O+$.w/2,k+v/2,' class="pele-label" stroke="none" fill="var(--_fg)"',u)+"</g>",D=k+v}else if($){let d=xt[f],v=A[$.a],k=A[$.b],O=$.label,W=y(t),F=0;for(let S=t+1;S<N;S++){let V=E[S].type;if(V===17)E[S].from===c.to&&F++;else if(V!==18&&V!==59&&V!==60)break}let K=d.bottom?1:-1,At=d.dotted?qt:"",qe=c.centralConnection,ze=qe===59||qe===61,Pe=qe===60||qe===61,Be=(S,V)=>`<circle class="pele-central" cx="${n(S)}" cy="${n(V)}" r="${_e}" fill="var(--_l)" stroke="none"/>`,Ve=d.atStart&&!d.atEnd,He=Na(d.head),te="",Y;if($.kind===1){let S=D+Z+Math.max(0,(O.height-Lt)/2),V=S+Lt,J=Pe?v.x+_e:Se(v),U=ze?v.x+_e:Se(v,F),ue=Math.max(J,U)+ut+W/2;Pe&&(te+=Be(v.x,S)),ze&&(te+=Be(v.x,V)),W>0&&(te+=ot(t,Ve?U:J,Ve?V:S,W),Ve?U+=W/2:J+=W/2);let ht=(d.atStart?Ue(d.head,J,S,-1,K):"")+(d.atEnd?Ue(d.head,U,V,-1,-K):""),je=n(J+(d.atStart?He:0)),ae=n(U+(d.atEnd?He:0));te=`<path d="${z?`M${je},${n(S)}H${n(ue)}V${n(V)}H${ae}`:`M${je},${n(S)}H${n(ue-6)}A6,6 0 0 1 ${n(ue)},${n(S+6)}V${n(V-6)}A6,6 0 0 1 ${n(ue-6)},${n(V)}H${ae}`}"${At}/>`+ht+te,le(v.x,ue+8+O.width),O.width>0&&(Re+=`<g class="pele-edge-label" data-id="i${ce(c.id)}">${de(O,ue+8+O.width/2,(S+V)/2,"",u)}</g>`),Y=V}else{let S=k.x>v.x?1:-1,V=k.createAt===t;Y=D+Z+Math.max(O.height>0?O.height+2:6,V?k.size.h/2-Z+6:0);let J=S>0?Se(v):tt(v),U=S>0?tt(k,F):Se(k,F);if(V&&(k.top=Y-k.size.h/2,k.lifeStart=k.top+k.size.h,U=k.x-S*(gt(k.kind)?18:k.size.w/2+1)),Pe&&(te+=Be(v.x,Y),J=v.x+S*_e),ze&&(te+=Be(k.x,Y),U=k.x-S*_e),W>0)if(Ve){let ae=ze?U-S*(W/2+2):U;te+=ot(t,ae,Y,W),U=ae-S*W/2}else{let ae=Pe?J+S*(W/2+2):J;te+=ot(t,ae,Y,W),J=ae+S*W/2}let ue=(d.atStart?Ue(d.head,J,Y,-S,K*S):"")+(d.atEnd?Ue(d.head,U,Y,S,K*S):""),ht=J+(d.atStart?S*He:0),je=U-(d.atEnd?S*He:0);if(te=`<path d="M${n(ht)},${n(Y)}H${n(je)}"${At}/>`+ue+te,O.width>0){let ae=Math.min(J,U),_t=Math.max(J,U),pt=w<0?ae+p+O.width/2:w>0?_t-p-O.width/2:(ae+_t)/2;le(pt-O.width/2,pt+O.width/2),Re+=`<g class="pele-edge-label" data-id="i${ce(c.id)}">${et(O,pt,Y-4-O.height/2,"")}</g>`}V&&(D=Y+k.size.h/2-6)}st+=`<g class="pele-edge pele-message" data-id="i${ce(c.id)}">${te}</g>`,D=Math.max(D,Y),v.destroyAt===t&&(D=Math.max(D,yt(v,Y))),k.destroyAt===t&&k!==v&&(D=Math.max(D,yt(k,Y)))}}D+=20;for(let t of A)for(;t.activations.length>0;)mt(t,D);let We=D;if(q){let t=0;for(let c of A)c.lifeEnd>=0||(t=Math.max(t,c.size.h),Ie+=bt(c,D,!0));We=D+t}let ct="";for(let t of A){Ie+=bt(t,t.top,!1);let c=t.lifeEnd>=0?t.lifeEnd:D;c>t.lifeStart&&(ct+=`<path class="pele-lifeline" data-id="${ce(t.id)}" d="M${n(t.x)},${n(t.lifeStart)}V${n(c)}"/>`)}let dt="";for(let t of C){let c=A[t.first].x-A[t.first].size.w/2-m-t.grow,f=A[t.last].x+A[t.last].size.w/2+m+t.grow,$=t.box.fill==="transparent"?"":St([`fill:${t.box.fill}`]).shape;dt+=`<g class="pele-cluster pele-box"${t.box.name?` data-id="${ce(t.box.name)}"`:""}><rect x="${n(c)}" y="0" width="${n(f-c)}" height="${n(We+m)}" rx="${fe}" fill="var(--_a)" stroke="var(--_b)"${$?"":' fill-opacity="0.5"'}${$}/>`+de(t.title,(c+f)/2,m/2+2+t.title.height/2,' class="pele-cluster-label" fill="var(--_m)"',u)+"</g>"}C.length>0&&(We+=m);let Ne=0,wt="",$e=ie(e.title,o,!1,l?aa(i):ee,1);if(Te>Me&&le(0,Math.max($e.width,40)),$e.width>0){let t=(Te+Me)/2;le(t-$e.width/2,t+$e.width/2),Ne=-$e.height-12,wt=de($e,t,Ne+$e.height/2,' class="pele-title" font-weight="var(--_tw)"',u)}let vt=Math.ceil(Me-Te+2*M),kt=Math.ceil(We-Ne+2*M);return{svg:ra("sequence",vt,kt,o,i,e,`<g transform="translate(${n(M-Te)},${n(M-Ne)})">`+wt+(dt?`<g class="pele-boxes" font-size="${b}">${dt}</g>`:"")+(at.length>0?`<g class="pele-rects" fill="var(--_a)">${at.reverse().join("")}</g>`:"")+(ct?`<g class="pele-lifelines" fill="none" stroke="var(--_b)">${ct}</g>`:"")+(rt.length>0?`<g class="pele-activations" fill="var(--_s)" stroke="var(--_b)">${rt.reverse().join("")}</g>`:"")+(it?`<g class="pele-frames" font-size="${b}" stroke="var(--_b)">${it}</g>`:"")+(st?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${st}</g>`:"")+(nt?`<g class="pele-destroys" fill="none" stroke="var(--_l)" stroke-width="1.5" stroke-linecap="round">${nt}</g>`:"")+(Re?`<g class="pele-edge-labels" font-size="${b}">${Re}</g>`:"")+(lt?`<g class="pele-notes" font-size="${b}" fill="var(--_a)" stroke="var(--_b)">${lt}</g>`:"")+(Ie?`<g class="pele-nodes">${Ie}</g>`:"")+"</g>"),width:vt,height:kt,links:[]}}var Ya={type:"sequence",parse(e,a,i){let l=a.sequence??{},h=new ma({wrap:typeof a.wrap=="boolean"?a.wrap:void 0,sequenceWrap:l.wrap===!0});return i&&h.setDiagramTitle(i),wa(e,h),h},render:qa};export{Ya as sequence};
@@ -0,0 +1,2 @@
1
+ var St=Object.defineProperty;var Tt=(t,l,a)=>l in t?St(t,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[l]=a;var S=(t,l,a)=>Tt(t,typeof l!="symbol"?l+"":l,a);import{g as zt,s as ht,A as Ct}from"./WEVWDWVA-nohBBhTA.js";import{s as Lt,T as z}from"./UEXXS2NB-Dkz_tz-N.js";import{i as It,e as Mt,L as Ft,H as yt}from"./lazy-CKqR1774.js";import{c as Ht}from"./DKTLEL5E-B7ILCVTH.js";import{x as s,m as ft,y as tt,a as gt,f as C,$ as _t}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";function dt(t){let l=new Set;for(let a of t)for(let h of a.people)l.add(h);return[...l].sort()}var Wt=class{constructor(){S(this,"type","journey");S(this,"title");S(this,"accTitle");S(this,"accDescr");S(this,"sections",[]);S(this,"tasks",[]);S(this,"currentSection","")}setDiagramTitle(t){this.title=t}setAccTitle(t){this.accTitle=t.replace(/^\s+/g,"")}setAccDescription(t){this.accDescr=t.replace(/\n\s+/g,`
2
+ `)}addSection(t){this.currentSection=t,this.sections.push(t)}addTask(t,l){let a=l.substring(1).split(":"),h=a.length===1?[]:a[1].split(",").map(n=>n.trim());this.tasks.push({task:t,score:Number(a[0]),people:h,section:this.currentSection})}getActors(){return dt(this.tasks)}},Ot=["$end","EOF","INVALID","NEWLINE","journey","title","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","section","taskName","taskData",":"];function et(t,l,a){let h=t.length,n=l;for(;n<h;n++){let r=t.charCodeAt(n);if(r===35||r===10||r===59||a&&r===58)break}return n}function Jt(t){let l=t.length,a=[],h=[],n=[],r={types:a,texts:h,starts:n},e=0,c=(m,i)=>{a.push(m),h.push(t.slice(e,i)),n.push(e),e=i};for(;e=zt(t,e),!(e>=l);){let m=t.charCodeAt(e),i=e+1;if(m===10){for(;t.charCodeAt(i)===10;)i++;c(3,i);continue}if(ht(t,e,"journey")&&!It(t.charCodeAt(e+7))){c(4,e+7);continue}if(ht(t,e,"title")&&Mt(t.charCodeAt(e+5))&&(i=et(t,e+6,!1),i>e+6)){c(5,i);continue}if(i=Ct(t,e,r,6),i!==e){e=i;continue}if(ht(t,e,"section")&&Mt(t.charCodeAt(e+7))&&(i=et(t,e+8,!0),i>e+8)){c(11,i);continue}m===58?(i=et(t,e+1,!1),c(i>e+1?13:14,i>e+1?i:e+1)):m===59?c(2,e+1):c(12,et(t,e+1,!0))}return(n.length===0||n[n.length-1]<l)&&c(1,l),c(0,l),r}var Pt="'EOF', 'SPACE', 'NEWLINE', 'title', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'section', 'taskName'";function Vt(t,l){let{types:a,texts:h,starts:n}=Jt(t),r=(e,c)=>{let m=a[e]===0?"1":Ot[a[e]];throw Ft("journey",t,n[e],`Expecting ${c}, got '${m}'`)};a[0]!==4&&r(0,"'journey'");for(let e=1;;e++){let c=h[e];switch(a[e]){case 3:break;case 5:l.setDiagramTitle(c.substring(6));break;case 6:l.setAccTitle(h[++e].trim());break;case 8:l.setAccDescription(h[++e].trim());break;case 10:l.setAccDescription(c.trim());break;case 11:l.addSection(c.substring(8));break;case 12:a[++e]!==13&&r(e,"'taskData'"),l.addTask(c,h[e]);break;case 1:return;default:r(e,Pt)}}}var lt=10,T=8,Bt=124,Gt=200,at=12,kt=6,ot=24,nt=26,V=11,b=5,Ut=13,Rt=20,Yt='<circle cx="-3.6" cy="-2.8" r="1.3"/><circle cx="3.6" cy="-2.8" r="1.3"/>',qt={happy:"M-5,2A6,6 0 0 0 5,2",neutral:"M-4.5,4.5H4.5",sad:"M-5,6.5A6,6 0 0 1 5,6.5"};function bt(t,l,a){return`<g class="pele-face pele-face-${a}" transform="translate(${s(t)},${s(l)})"><circle r="${V}" fill="var(--_bg)" stroke="var(--_l)"/><g fill="var(--_l)">${Yt}</g><path d="${qt[a]}" fill="none" stroke="var(--_l)" stroke-linecap="round"/></g>`}function Kt(t,l,a){return Ht(a,h=>Qt(t,l,a,h))}function Qt(t,l,a,h){let n=a.fontSize??16,r=Math.round(n*.875),e=Math.round(n*.75),c=a.measurer??yt(a.fontFamily),m=a.padding??8;if(h)return Xt(t,a);let i=t.tasks,g=i.length,L=dt(i).filter(o=>o!==""),x=new Map;L.forEach((o,$)=>x.set(o,$));let k=Bt,j=i.map(o=>Lt(o.task,c,r,k)),I=0;for(let o of j)I=Math.max(I,o.width);I>k&&(k=Math.min(Math.ceil(I),Gt),j=i.map(o=>z(o.task,c,r,k)));let W=k+2*lt,u=W+at,w=g>0?g*u-at:0,v=Math.round(r*1.5),B=Math.max(w,240),E=[],N=0,_=0,y=0;for(let o of L){let $=z(o,c,r,B-2*b-6),A=2*b+6+$.width;y>0&&y+A>B&&(y=0,_+=4);let R=y>0?E[E.length-1].y:_,Y=Math.max($.height,v);E.push({name:o,label:$,x:y,y:R,h:Y}),y+=A,N=Math.max(N,y),_=Math.max(_,R+Y),y+=Rt}let F=g>0?ot+w:0,f=z(t.title,c,n,Math.max(F,320),1),G=f.height>0?f.height+16:0,st=Math.max(F,f.width,g>0?ot+N:0),O=m+(st-F)/2+ot,q=m+G,ut=[],J=0;for(let o=0;o<g;){let $=o+1;for(;$<g&&i[$].section===i[o].section;)$++;let A;i[o].section!==""&&(A=z(i[o].section,c,r,($-o)*u-at-2*lt,1),J=Math.max(J,Math.max(A.height,v)+2*kt)),ut.push({start:o,count:$-o,label:A}),o=$}let K=v;for(let o of j)K=Math.max(K,o.height);let wt=L.length>0?2*b+6:0,Q=K+wt+2*T,U=q+(J>0?J+kt:0),rt=U+Q+V+16,vt=rt+4*nt,At=O+w,P="",X=q;if(g>0){let o="",$="";for(let d=5;d>=1;d--){let M=rt+(5-d)*nt;o+=`M${s(O-6)},${s(M)}H${s(At)}`,$+=`<text x="${s(O-12)}" y="${s(M+e*.35)}">${d}</text>`}P+=`<path class="pele-grid" d="${o}" fill="none" stroke="var(--_a)"/><g class="pele-scale" font-size="${e}" text-anchor="end" fill="var(--_m)">${$}</g>`;let A="",R="",Y="",$t=[];i.forEach((d,M)=>{let D=O+M*u,p=D+W/2,H=d.score,Et=Number.isNaN(H)?3:Math.min(5,Math.max(1,H)),it=rt+(5-Et)*nt;A+=`${M===0?"M":"L"}${s(p)},${s(it)}`,R+=`M${s(p)},${s(U+Q)}V${s(it-V)}`,Y+=bt(p,it,H>3?"happy":H<3?"sad":"neutral");let xt="",ct=d.people.filter(Z=>Z!==""),Nt=Math.min(Ut,(W-2*lt-2*b)/Math.max(ct.length-1,1));ct.forEach((Z,Dt)=>{xt+=`<circle class="pele-actor" cx="${s(p+(Dt-(ct.length-1)/2)*Nt)}" cy="${s(U+Q-T-b)}" r="${b}" fill="${ft(x.get(Z)??0)}" stroke="var(--_s)"><title>${tt(Z)}</title></circle>`}),$t.push(`<g class="pele-node pele-task" data-id="${tt(d.task.trim())}"><rect x="${s(D)}" y="${s(U)}" width="${s(W)}" height="${s(Q)}" rx="${gt}" fill="var(--_s)" stroke="var(--_b)"/>`+C(j[M],p,U+T+K/2,` font-size="${r}"`)+xt+"</g>")}),P+=`<path class="pele-stems" d="${R}" fill="none" stroke="var(--_b)" stroke-dasharray="2 3"/>`+(g>1?`<path class="pele-edge" d="${A}" fill="none" stroke="var(--_l)" stroke-linejoin="round"/>`:"")+Y;for(let d of ut){let M=$t.slice(d.start,d.start+d.count).join("");if(!d.label){P+=M;continue}let D=O+d.start*u,p=d.count*u-at;P+=`<g class="pele-cluster pele-section" data-id="${tt(i[d.start].section.trim())}"><rect x="${s(D)}" y="${s(q)}" width="${s(p)}" height="${s(J)}" rx="${gt}" fill="var(--_a)"/>`+C(d.label,D+p/2,q+J/2,` font-size="${r}" font-weight="var(--_hw)"`)+M+"</g>"}if(X=vt+V,E.length>0){let d=O+(w-N)/2,M=X+16,D="";for(let p of E){let H=M+p.y+p.h/2;D+=`<g class="pele-legend-item" data-id="${tt(p.name)}"><circle cx="${s(d+p.x+b)}" cy="${s(H)}" r="${b}" fill="${ft(x.get(p.name)??0)}"/>`+C(p.label,d+p.x+2*b+6+p.label.width/2,H,"")+"</g>"}P+=`<g class="pele-legend" font-size="${r}">${D}</g>`,X=M+_}}let mt=Math.ceil(st+2*m),pt=Math.ceil(Math.max(X,m)+m),jt=C(f,m+st/2,m+f.height/2,' class="pele-title" font-weight="var(--_tw)"')+P;return{svg:_t("journey",mt,pt,n,a,t,jt),width:mt,height:pt,links:[]}}function Xt(t,l){let a=l.fontSize??16,h=Math.round(a*.875),n=l.measurer??yt(l.fontFamily),r=l.padding??8,e=Math.max(140,(l.maxWidth??320)-2*r),c=z(t.title,n,a,e,1),m=dt(t.tasks).filter(u=>u!==""),i=new Map(m.map((u,w)=>[u,w])),g=r+(c.height?c.height+16:0),L,x="",k=c.width;t.tasks.forEach((u,w)=>{if(u.section!==L){L=u.section;let f=z(L,n,a,e-16,1);f.height&&(x+=C(f,r+8+f.width/2,g+f.height/2,' class="pele-cluster-label" font-weight="var(--_hw)"'),k=Math.max(k,f.width+16),g+=f.height+8)}let v=z(u.task,n,h,e-72),B=u.people.filter(f=>f!=="").map(f=>({name:f,label:z(f,n,h,e-44)})),E=Math.max(v.height,42),N=2*T+E;for(let f of B)N+=Math.max(16,f.label.height)+4;let _=Math.max(e,v.width+72);x+=`<g class="pele-node pele-journey-step" data-id="${w}"><rect x="${s(r)}" y="${s(g)}" width="${s(_)}" height="${s(N)}" rx="${gt}" fill="var(--_s)" stroke="var(--_b)"/>`,x+=C(v,r+lt+v.width/2,g+T+v.height/2,' class="pele-label"');let y=r+_-28;x+=bt(y,g+T+V,u.score>3?"happy":u.score<3?"sad":"neutral"),Number.isNaN(u.score)||(x+=`<text class="pele-journey-score" x="${s(y)}" y="${s(g+T+2*V+h)}" font-size="${h}" text-anchor="middle">${s(Math.min(5,Math.max(1,u.score)))}</text>`);let F=g+T+E+4;for(let f of B){let G=Math.max(16,f.label.height);x+=`<circle class="pele-actor" cx="${s(r+16)}" cy="${s(F+G/2)}" r="${b}" fill="${ft(i.get(f.name))}"/>`+C(f.label,r+28+f.label.width/2,F+G/2,` class="pele-journey-actor" font-size="${h}"`),F+=G+4}x+="</g>",g+=N,w+1<t.tasks.length&&(x+=`<path class="pele-edge" d="M${s(r+_/2)},${s(g)}v16" fill="none" stroke="var(--_l)"/>`),g+=16,k=Math.max(k,_)});let j=Math.ceil(k+2*r),I=Math.ceil(Math.max(r+c.height,g-(t.tasks.length?16:0))+r),W=C(c,j/2,r+c.height/2,' class="pele-title" font-weight="var(--_tw)"')+x;return{svg:_t("journey",j,I,a,l,t,W),width:j,height:I,links:[]}}var ie={type:"journey",parse(t,l,a){let h=new Wt;return h.title=a,Vt(t,h),h},render:Kt};export{ie as journey};
@@ -0,0 +1,3 @@
1
+ import{i as x,L as _}from"./lazy-CKqR1774.js";import{y as P,x as T}from"./RZSVICHU-BiwjruZZ.js";var g=["1","INVALID","SPACELINE","NL","EOF","","SPACELIST","ICON","CLASS","NODE_DSTART","NODE_ID","NODE_DESCR","NODE_DEND","SHAPE_DATA"];function R(s,o){return s===5?o?"KANBAN":"MINDMAP":g[s]}var S={DEFAULT:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6};function M(s,o){switch(s){case"[":return S.RECT;case"(":return o===")"?S.ROUNDED_RECT:S.CLOUD;case"((":return S.CIRCLE;case")":return S.CLOUD;case"))":return S.BANG;case"{{":return S.HEXAGON;default:return S.DEFAULT}}var k=/\s+/y,h=/.+/y,m=/[^([\n){}]+/y,b=/[^([\n){}@]+/y,v=/[^)\](}]+/y,U=/[^`"]+/y,w=/[^}^"]+/y,B=/\n\s*/g;function p(s,o,a){for(let N=0;N<a.length;N++)if((s.charCodeAt(o+N)|32)!==a.charCodeAt(N))return!1;return!0}function F(s,o){let a=s.length,N=[],l=[],D=[],O=o?"kanban":"mindmap",L=o?b:m,e=0,t=0,d=-1,c=(r,i,f)=>{N.push(r),l.push(i),D.push(t),t=f},n=(r,i,f)=>{c(r,s.slice(t,i),i),e=f},A=(r,i)=>(r.lastIndex=i,r.test(s)?r.lastIndex:-1),u=r=>{let i=s.indexOf(r,t);return i===-1?a:i};for(;t<a;){let r=s.charCodeAt(t),i=s.charCodeAt(t+1),f;if(e===0){let C=r<=32||r>=160?Math.max(A(k,t),t):t;if(o&&r===64&&i===123)c(13,"",t+2),e=6;else if(s.charCodeAt(C)===37&&s.charCodeAt(C+1)===37)n(2,A(h,C),0);else if(C>t)d<t&&(d=u(`
2
+ `)),d>=C?n(6,C,0):(f=s.lastIndexOf(`
3
+ `,C-1))>t?n(2,f+1,0):n(3,t+1,0);else if(p(s,t,O)&&!x(s.charCodeAt(t+O.length)))n(5,t+O.length,0);else if(r===58&&i===58&&s.charCodeAt(t+2)===58)t+=3,e=1;else if(r===58&&i===58&&p(s,t+2,"icon")&&s.charCodeAt(t+6)===40)t+=7,e=2;else if(r===45&&i===41||r===40&&(i===45||i===40)||(r===41||r===123)&&i===r)n(9,t+2,3);else if(r===41||r===40||r===91)n(9,t+1,3);else if((f=A(L,t))!==-1)n(10,f,0);else break}else if(e===3)r===34?(e=i===96?5:4,t+=i===96?2:1):r===41||r===40?n(12,i===r||r===40&&i===45?t+2:t+1,0):r===93?n(12,t+1,0):r===125&&i===125||r===45&&i===41?n(12,t+2,0):n(11,A(r===125?h:v,t),3);else if(e===4)r===34?(t++,e=3):n(11,u('"'),4);else if(e===5)if(r===96&&i===34)t+=2,e=3;else if((f=A(U,t))!==-1)n(11,f,5);else break;else if(e===1)if((f=A(h,t))!==-1)n(8,f,0);else if(r===10)t++,e=0;else break;else if(e===2)r===41?(t++,e=0):n(7,u(")"),2);else if(e===6)if(r===34)n(13,t+1,7);else if(r===125)t++,e=0;else if((f=A(w,t))!==-1)n(13,f,6);else break;else r===34?n(13,t+1,6):(f=u('"'),c(13,s.slice(t,f).replace(B,"<br/>"),f))}return t<a?c(1,"",t):(e===0&&c(4,"",a),c(0,"",a)),{types:N,texts:l,starts:D}}var E="'SPACELINE', 'NL', 'EOF'",$=new Uint8Array(14);for(let s of[2,6,7,8,9,10])$[s]=1;function I(s){return s===2||s===3||s===4}function X(s,o,a){let N=a?"kanban":"mindmap",{types:l,texts:D,starts:O}=F(s,a),L=a?", 'SHAPE_DATA'":"",e=0,t=n=>{let A=l[e];throw A===1?_(N,s,O[e],"",!0):_(N,s,O[e],`Expecting ${n}, got '${R(A,a)}'`)},d=`'${R(5,a)}'`;if(l[e]===2){for(e++;l[e]===2||l[e]===3;)e++;l[e]!==5&&t(`'SPACELINE', 'NL', ${d}`)}else l[e]!==5&&t(`'SPACELINE', ${d}`);e++;let c="'SPACELINE', 'NL', 'SPACELIST', 'ICON', 'CLASS', 'NODE_DSTART', 'NODE_ID'";for(l[e]===3&&(e++,c="'SPACELINE', 'SPACELIST', 'ICON', 'CLASS', 'NODE_DSTART', 'NODE_ID'");;){let n=l[e],A=0,u=n===6;if(u&&(A=D[e++].length,n=l[e]),n===10||n===9){let r,i,f=0;if(n===10&&(r=D[e++]),l[e]===9){let C=D[e++];l[e]!==11&&t("'NODE_DESCR'"),i=D[e++],l[e]!==12&&t("'NODE_DEND'");let y=D[e++];!I(l[e])&&l[e]!==13&&t(E+L),f=o.getType(C,y)}else!I(l[e])&&l[e]!==13&&t(E+", 'NODE_DSTART'"+L),i=r;if(l[e]===13){let C=D[e++];for(;l[e]===13;)C+=D[e++];I(l[e])||t(E+L),o.addNode(A,r??i,i,f,C)}else o.addNode(A,r??i,i,f)}else if(n===7||n===8){let r=D[e++];I(l[e])||t(E),o.decorateNode(n===7?{icon:r}:{class:r})}else u?I(n)||t(E+", 'ICON', 'CLASS', 'NODE_DSTART', 'NODE_ID'"):n===2?I(l[++e])||t(E):t(c);for(e++;l[e]===3||l[e]===4;)e++;if(l[e]===0)return;$[l[e]]===0&&t(E+", 'SPACELIST', 'ICON', 'CLASS', 'NODE_DSTART', 'NODE_ID'")}}function j(s,o,a,N,l){return`<svg class="pele-icon" data-icon="${P(s)}" x="${T(o)}" y="${T(a)}" width="${T(N)}" height="${T(N)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(l==null?void 0:l(s))??""}</svg>`}export{M as W,j as X,X as Y};
@@ -0,0 +1,2 @@
1
+ import{s as et}from"./5THPTBWS-D57irc_4.js";import{H as at}from"./KQOEJWJY-DKTXya68.js";import{c as rt,h as it}from"./DKTLEL5E-B7ILCVTH.js";import{x as lt,D as st,G as A,M as ot,$ as nt,v as ct,w as ht,V as ft,W as dt,O as pt,P as mt,j as bt,Y as $t,z as kt,U as xt,H as gt}from"./VMV7XPHP-6QkisQwm.js";import{_ as ut,a as Mt,x as k,f as L,b as wt,$ as vt}from"./RZSVICHU-BiwjruZZ.js";import{x as yt,H as Pt,$ as S}from"./lazy-CKqR1774.js";import"./index-392ivruk.js";var zt=1e4;function R(e,t,a,i,l){var h;let m=(h=e.packet)==null?void 0:h[t];return typeof m=="number"&&m>=i?Math.min(m,l):a}function N(e){return new yt(e,"semantic",{type:"packet"})}function Ht(e,t,a){let i=Math.floor(R(t,"bitsPerRow",32,1,4096)),l=[],m=-1,h=[],y=1;for(let x of e.blocks){let{start:s,end:b,bits:f}=x;if(s!==void 0&&b!==void 0&&b<s)throw N(`Packet block ${s} - ${b} is invalid. End must be greater than start.`);if(s??(s=m+1),s!==m+1)throw N(`Packet block ${s} - ${b??s} is not contiguous. It should start from ${m+1}.`);if(f===0)throw N(`Packet block ${s} is invalid. Cannot have a zero bit field.`);for(b??(b=s+(f??1)-1),f??(f=b-s+1),m=b;h.length<=i+1&&l.length<zt;){let w=y*i-1;if(b<=w){h.push({start:s,end:b,bits:f,label:x.label}),b===w&&(l.push(h),h=[],y++);break}h.push({start:s,end:w,bits:w-s,label:x.label}),l.push(h),h=[],y++,s=w+1,f=b-s}}return h.length>0&&l.push(h),{type:"packet",title:e.title||a,accTitle:e.accTitle?e.accTitle.replace(/^\s+/g,""):void 0,accDescr:e.accDescr?e.accDescr.replace(/\n\s+/g,`
2
+ `):void 0,bitsPerRow:i,rows:l}}var q=[{name:"packet-beta",pattern:"packet-beta"},gt("packet"),{name:"-",pattern:"-",longer:[A]},{name:"+",pattern:"+"},{name:":",pattern:":"},ot,nt,ct,{name:"INT",pattern:/0|[1-9][0-9]*(?!\.)/y},ht,ft,dt,A,pt,mt];function Rt(e){let t=new lt(st(e,q,"packet"),q,"packet"),a={$type:"Packet",blocks:[]},i=()=>{if(t.kind!==-1)for(t.kind!==10&&t.fail("a line break or the end of input");t.kind===10;)t.i++};for(;t.kind===10;)t.i++;for(t.accept(0)||t.expect(1);t.kind!==-1;)switch(t.kind){case 10:t.i++;break;case 5:a.accDescr=xt(t.take()),i();break;case 6:a.accTitle=kt(t.take()),i();break;case 7:a.title=$t(t.take()),i();break;case 8:case 3:{let l={$type:"PacketBlock",label:""};t.accept(3)?l.bits=Number(t.expect(8)):(l.start=Number(t.take()),t.accept(2)&&(l.end=Number(t.expect(8)))),t.expect(4),l.label=bt(t.expect(9)),a.blocks.push(l),i();break}default:t.fail("a field, a title, or a line break")}return a}function Tt(e,t,a){return rt(a,i=>_t(e,t,a,i))}function _t(e,t,a,i){var V;let l=a.fontSize??16,m=Math.round(l*.875),h=Math.round(l*.625),y=a.measurer??Pt(a.fontFamily),x=a.padding??8,s=t.packet??{},b=R(t,"rowHeight",32,1,400),f=R(t,"bitWidth",32,1,400),w=R(t,"paddingX",5,0,400),C=R(t,"paddingY",5,0,400),I=s.showBits!==!1,_=s.bitOrder==="descending",g=e.bitsPerRow,v=e.rows;if(i){let $=Math.max(1,Math.floor(((a.maxWidth??320)-2*x)/Math.min(f,18)));g=Math.min(g,Math.max(8,2**Math.floor(Math.log2($))));let r=e.rows[e.rows.length-1],o=((V=r==null?void 0:r[r.length-1])==null?void 0:V.end)??0;Math.ceil((o+1)/g)>1e4&&(g=e.bitsPerRow),f=Math.min(f,Math.max(18,((a.maxWidth??320)-2*x)/g));let u=p=>p.bits===p.end-p.start,c=[];for(let p of e.rows)for(let d of p){let n=c[c.length-1];n&&u(n)&&u(d)&&n.label===d.label&&d.start===n.end+1&&d.start%e.bitsPerRow===0?(n.end=d.end,n.bits=n.end-n.start):c.push({...d})}v=[];for(let p of c)for(let d=p.start;d<=p.end;){let n=Math.min(p.end,(Math.floor(d/g)+1)*g-1),M=Math.floor(d/g);(v[M]??(v[M]=[])).push({...p,start:d,end:n}),d=n+1}}let D=new Map;if(i)for(let $ of v)for(let r of $){let o=Math.max(1,(r.end-r.start+1)*f-Math.min(w,f-1)-6),u=at(S(r.label).trim(),y,m,o);D.set(r,u)}let O=I?h+4:0,Y=v.map($=>{let r=b;if(i)for(let o of $)r=Math.max(r,D.get(o).height+10);return r}),j=[],H=0;for(let $ of Y)j.push(H),H+=O+$+C;v.length&&(H-=C);let F=Math.min(w,f-1),G=v.length>0?g*f-F:0,P=ut(e.title,!1,y,l,i?it(a):4e3,1),J=P.height>0?P.height+(H>0?12:0):0,U=new Map,K=($,r)=>{let o=U.get($);return o||U.set($,o=new Map),o.has(r)||o.set(r,et(S($).trim(),r,m,Math.round(l*.5),y)),o.get(r)},Q=x+Math.max(0,(P.width-G)/2),W="",T="";v.forEach(($,r)=>{let o=x+j[r]+O,u=Y[r];for(let c of $){let p=c.end-c.start+1,d=c.start%g,n=Q+(_?g-d-p:d)*f,M=p*f-F,z=i?void 0:K(c.label,M-6);if(W+=`<g class="pele-node" data-id="${c.start}-${c.end}"><rect x="${k(n)}" y="${k(o)}" width="${k(M)}" height="${k(u)}" rx="${Mt}" fill="var(--_s)" stroke="var(--_b)"/>`+(i?L(D.get(c),n+M/2,o+u/2,""):z&&z.size<=u?`<text x="${k(n+M/2)}" y="${k(o+u/2+z.size*.35)}"${z.size===m?"":` font-size="${k(z.size)}"`}>${wt(z.text)}</text>`:"")+"</g>",!I)continue;let X=_?c.end:c.start,tt=_?c.start:c.end;p===1?T+=`<text x="${k(n+M/2)}" y="${k(o-4)}" text-anchor="middle">${X}</text>`:T+=`<text x="${k(n)}" y="${k(o-4)}">${X}</text><text x="${k(n+M)}" y="${k(o-4)}" text-anchor="end">${tt}</text>`}});let B=Math.ceil(Math.max(G,P.width)+2*x),E=Math.ceil(H+J+2*x),Z=(W?`<g class="pele-packet-fields" font-size="${m}" text-anchor="middle">${W}</g>`:"")+(T?`<g class="pele-packet-bits" font-size="${h}" fill="var(--_m)">${T}</g>`:"")+L(P,B/2,E-x-P.height/2,' class="pele-title" font-weight="var(--_tw)"');return{svg:vt("packet",B,E,l,a,e,Z),width:B,height:E,links:[]}}var Ot={type:"packet",parse:(e,t,a)=>Ht(Rt(e),t,a),render:Tt};export{Ot as packet};
@@ -0,0 +1,8 @@
1
+ var je=Object.defineProperty;var Ye=(r,a,o)=>a in r?je(r,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[a]=o;var U=(r,a,o)=>Ye(r,typeof a!="symbol"?a+"":a,o);import{a as qe,i as ze}from"./FTXIJQGB-nrHdCfp7.js";import{q as Qe,x as le,e as K,L as _e,i as $e,H as Ze,$ as Je}from"./lazy-CKqR1774.js";import{h as et}from"./7WLXJQOR-CHhKreq0.js";import{x as tt,h as rt,y as st,C as at}from"./ELSXBIJH-DG0MW5dC.js";import{b as Le,d as Ie,m as it,p as lt}from"./FKCDD66M-BPFkyrwI.js";import{A as Ke,H as nt,M as ot,L as dt,O as ct,N as ut}from"./JZWSX6AR-OwVPptYv.js";import{j as ft,P as ht,O as pt,E as gt,R as de,B as Ne}from"./URA2L2QI-B8pYKxOk.js";import{m as bt,c as yt,p as kt,h as De}from"./DKTLEL5E-B7ILCVTH.js";import{L as wt,w as ce,F as mt,D as Re,S as vt,v as Tt}from"./HWDLEDTA-C_JcdBMO.js";import{g as Me,_ as ue,h as Oe,y as fe,a as St,x as W,f as ye,b as he,$ as Et}from"./RZSVICHU-BiwjruZZ.js";function ke(r){return r==="markdown"||r==="string"||r==="text"?r:"markdown"}function Ge(r){return r.startsWith('"')&&r.endsWith('"')?r.substring(1,r.length-1):r}function xt(r,a){let o=0;for(let i=0;i<a.length;i++)a[i]===r&&o++;return o}function At(r){let a=r.trim(),o="arrow_open";switch(a[0]){case"<":o="arrow_point",a=a.slice(1);break;case"x":o="arrow_cross",a=a.slice(1);break;case"o":o="arrow_circle",a=a.slice(1);break}let i="normal";return a.includes("=")&&(i="thick"),a.includes(".")&&(i="dotted"),{type:o,stroke:i}}function Ct(r){let a=r.trim(),o=a.slice(0,-1),i="arrow_open";switch(a.slice(-1)){case"x":i="arrow_cross",a.startsWith("x")&&(i="double_"+i,o=o.slice(1));break;case">":i="arrow_point",a.startsWith("<")&&(i="double_"+i,o=o.slice(1));break;case"o":i="arrow_circle",a.startsWith("o")&&(i="double_"+i,o=o.slice(1));break}let f="normal",m=o.length-1;o.startsWith("=")&&(f="thick"),o.startsWith("~")&&(f="invisible");let s=xt(".",o);return s&&(f="dotted",m=s),{type:i,stroke:f,length:m}}var _t=class{constructor(r={}){U(this,"type","flowchart");U(this,"direction");U(this,"nodes",new Map);U(this,"edges",[]);U(this,"subgraphs",[]);U(this,"classes",new Map);U(this,"tooltips",new Map);U(this,"defaultEdgeStyle");U(this,"defaultInterpolate");U(this,"title");U(this,"accTitle");U(this,"accDescr");U(this,"subgraphLookup",new Map);U(this,"members",new Set);U(this,"edgeById",new Map);U(this,"pairCount",new Map);U(this,"subCount",0);U(this,"options");this.options=r}addVertex(r,a,o,i,f,m,s={},e){var D,C;if(!r||r.trim().length===0)return;let p;if(e!==void 0){let _=e.includes(`
2
+ `)?e+`
3
+ `:`{
4
+ `+e+`
5
+ }`,V;try{V=Qe(_)}catch(u){throw new le(`Metadata of "${r}" is not valid YAML. ${u.message}`,"syntax",{type:"flowchart"})}p=V!==null&&typeof V=="object"&&!Array.isArray(V)?V:void 0}let v=this.subgraphLookup.get(r);if(v&&p){v.metadata={...v.metadata,...p};return}let I=this.edgeById.get(r);if(I){(p==null?void 0:p.animate)!==void 0&&(I.animate=p.animate),(p==null?void 0:p.animation)!==void 0&&(I.animation=p.animation),(p==null?void 0:p.curve)!==void 0&&(I.interpolate=p.curve);return}let k=this.nodes.get(r);if(k===void 0&&(a===void 0&&o===void 0&&i!==void 0&&i!==null&&((C=(D=this.options).warn)==null||C.call(D,`Style applied to unknown node "${r}". This may indicate a typo. The node will be created automatically.`)),k={id:r,labelType:"text",styles:[],classes:[]},this.nodes.set(r,k)),a!==void 0?(k.labelType=a.type,k.text=Ge(a.text.trim())):k.text===void 0&&(k.text=r),o!==void 0&&(k.type=o),i!=null)for(let _ of i)k.styles.push(_);if(f!=null)for(let _ of f)k.classes.push(_);if(m!==void 0&&(k.dir=m),k.props===void 0?k.props=s:s!==void 0&&Object.assign(k.props,s),p===void 0)return;if(p.shape){let _=String(p.shape);if(_!==_.toLowerCase()||_.includes("_"))throw new le(`No such shape: ${_}. Shape names should be lowercase.`,"semantic",{type:"flowchart"});if(!qe(_))throw new le(`No such shape: ${_}.`,"semantic",{type:"flowchart"});k.type=_}let M=typeof p.label=="string"?p.label:void 0;p.label&&(k.text=String(p.label),k.labelType=ke(p.labelType)),p.icon&&(k.icon=String(p.icon),!(M!=null&&M.trim())&&k.text===r&&(k.text="")),p.form&&(k.form=String(p.form)),p.pos&&(k.pos=String(p.pos)),p.img&&(k.img=String(p.img),!(M!=null&&M.trim())&&k.text===r&&(k.text="")),p.constraint&&(k.constraint=String(p.constraint)),p.w&&(k.assetWidth=Number(p.w)),p.h&&(k.assetHeight=Number(p.h))}addSingleLink(r,a,o,i){let f={start:r,end:a,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.defaultInterpolate},m=o==null?void 0:o.text;if(m!==void 0&&(f.text=Ge(m.text.trim()),f.labelType=ke(m.type)),o!==void 0&&(f.type=o.type,f.stroke=o.stroke,f.length=o.length>10?10:o.length),i&&!this.edgeById.has(i))f.id=i,f.isUserDefinedId=!0;else{let p=this.pairCount.get(r+"\0"+a)??0;f.id=`L_${r}_${a}_${p===0?0:p+1}`}let s=this.options.maxEdges;if(s!==void 0&&this.edges.length>=s)throw new le(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${s}.`,"limit",{type:"flowchart"});this.edges.push(f);let e=r+"\0"+a;this.pairCount.set(e,(this.pairCount.get(e)??0)+1),this.edgeById.has(f.id)||this.edgeById.set(f.id,f)}addLink(r,a,o){let i=typeof(o==null?void 0:o.id)=="string"?o.id.replace("@",""):void 0,f=r[r.length-1],m=a[0];for(let s of r)for(let e of a)this.addSingleLink(s,e,o,s===f&&e===m?i:void 0)}updateLinkInterpolate(r,a){for(let o of r)o==="default"?this.defaultInterpolate=a:this.edgeAt(o).interpolate=a}updateLink(r,a){for(let o of r){if(o==="default"){this.defaultEdgeStyle=a;continue}let i=this.edgeAt(o);i.style=a,a.length>0&&!a.some(f=>f==null?void 0:f.startsWith("fill"))&&a.push("fill:none")}}edgeAt(r){let a=this.edges[Number(r)];if(a===void 0)throw new le(`The index ${r} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`,"semantic",{type:"flowchart"});return a}addClass(r,a){let o=a.join().replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");for(let i of r.split(",")){let f=this.classes.get(i);f===void 0&&(f={id:i,styles:[],textStyles:[]},this.classes.set(i,f));for(let m of o)m.includes("color")&&f.textStyles.push(m.replace("fill","bgFill")),f.styles.push(m)}}setDirection(r){let a=r.trim();a.includes("<")&&(a="RL"),a.includes("^")&&(a="BT"),a.includes(">")&&(a="LR"),a.includes("v")&&(a="TB"),a==="TD"&&(a="TB"),this.direction=a}setClass(r,a){var o,i,f;for(let m of r.split(","))(o=this.nodes.get(m))==null||o.classes.push(a),(i=this.edgeById.get(m))==null||i.classes.push(a),(f=this.subgraphLookup.get(m))==null||f.classes.push(a)}setTooltip(r,a){if(a!==void 0)for(let o of r.split(","))this.tooltips.set(o,a)}setLink(r,a,o){let i=a.trim();for(let f of r.split(",")){let m=this.nodes.get(f);m!==void 0&&(m.link=i?Ke(i):void 0,m.linkTarget=o)}this.setClass(r,"clickable")}setClickEvent(r,a,o){this.setClass(r,"clickable")}setAccTitle(r){this.accTitle=r.replace(/^\s+/g,"")}setAccDescription(r){this.accDescr=r.replace(/\n\s+/g,`
6
+ `)}addSubGraph(r,a,o){let i=r==null?void 0:r.text.trim(),f=(o==null?void 0:o.text)??"";r!==void 0&&r===o&&/\s/.test(f)&&(i=void 0);let m=new Set,s=[],e;for(let k of a)if(typeof k=="string")k.trim()!==""&&!m.has(k)&&(m.add(k),s.push(k));else if(Array.isArray(k))for(let M of k)M.trim()!==""&&!m.has(M)&&(m.add(M),s.push(M));else e=k.value;e??(e=this.options.inheritDir?this.direction??this.options.direction:void 0),i??(i="subGraph"+this.subCount),f=f||"",this.subCount++;let p={id:i,nodes:s,title:f.trim(),classes:[],dir:e,labelType:ke(o==null?void 0:o.type)},v=this.members;p.nodes=s.filter(k=>!v.has(k)&&k!==i);for(let k of p.nodes)v.add(k);let I=this.subgraphLookup.get(i);if(I)for(let k of p.nodes)I.nodes.push(k);else this.subgraphs.push(p);return this.subgraphLookup.set(i,I??p),i}exists(r,a){for(let o of r)if(o.nodes.includes(a))return!0;return!1}makeUniq(r,a){let o=new Set;for(let i of a)for(let f of i.nodes)o.add(f);return{nodes:r.nodes.filter(i=>!o.has(i))}}destructLink(r,a){let o=Ct(r);if(!a)return o;let i=At(a);if(i.stroke!==o.stroke)return{type:"INVALID",stroke:"INVALID"};if(i.type==="arrow_open")i.type=o.type;else{if(i.type!==o.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return i.type==="double_arrow"&&(i.type="double_arrow_point"),i.length=o.length,i}subgraph(r){return this.subgraphLookup.get(r)}},Ve=["$end","INVALID","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","SHAPE_DATA","CALLBACKNAME","CALLBACKARGS","MD_STR","STR","STYLE","DEFAULT","LINKSTYLE","INTERPOLATE","CLASSDEF","CLASS","HREF","CLICK","GRAPH","subgraph","end","LINK_TARGET","NODIR","DIR","direction_tb","direction_bt","direction_rl","direction_lr","direction_td","LINK_ID","NUM","BRKT","STYLE_SEPARATOR","COLON","AMP","SEMI","COMMA","MULT","LINK","START_LINK","EDGE_TEXT","-)","TEXT","(-","STADIUMEND","STADIUMSTART","SUBROUTINEEND","SUBROUTINESTART","VERTEX_WITH_PROPS_START","TAGEND","CYLINDEREND","CYLINDERSTART","DOUBLECIRCLEEND","DOUBLECIRCLESTART","TRAPEND","INVTRAPEND","TRAPSTART","INVTRAPSTART","TAGSTART","UP","SEP","DOWN","NODE_STRING","MINUS","UNICODE_TEXT","PIPE","PE","PS","SQE","SQS","DIAMOND_STOP","DIAMOND_START","NEWLINE","SPACE","EOF"],Xe=new Uint8Array(128);for(let r of"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"#$%&'*+.`?\\_/")Xe[r.charCodeAt(0)]=1;var $t=/accTitle\s*:\s*/y,Lt=/accDescr\s*:\s*/y,It=/accDescr\s*\{\s*/y,Nt=/call\s+/y,Dt=/click\s+/y,Rt=/(?:\r?\n)*\s*\n/y,Mt=/\s*(?:LR|RL|TB|BT|TD|BR)\b/y,Ot=/\s*[<>^]/y,Gt=/\s*v\b/y,Vt=[/.*direction\s+TB[^\n]*/y,/.*direction\s+BT[^\n]*/y,/.*direction\s+RL[^\n]*/y,/.*direction\s+LR[^\n]*/y,/.*direction\s+TD[^\n]*/y],we=/[\n\r\u2028\u2029]/g,Pe=/\s*[xo<]?--+[-xo>]\s*/y,Pt=/\s*[xo<]?--\s*/y,We=/\s*[xo<]?==+[=xo>]\s*/y,Wt=/\s*[xo<]?==\s*/y,me=/\s*[xo<]?-?\.+-[xo>]?\s*/y,Bt=/\s*[xo<]?-\.\s*/y,Be=/\s*~~~+\s*/y,Ut=/(?:\r?\n)+/y,Ft=/[^\S\n\r]+/y,Ht=/\(\s*\)/y,Kt=/\n\s*/g;function Xt(r){let a=r.length,o=[],i=[],f=[],m=[],s=0,e=0,p=!0,v=r.indexOf("direction"),I=r.indexOf("@"),k=-1,M=0,D=0,C=-1,_=-1,V=-1,u=(t,d,l)=>{o.push(t),i.push(r.slice(d,l)),f.push(d),e=l},w=t=>{m.push(s),s=t},L=()=>{m.length>0&&(s=m.pop())},$=(t,d)=>(t.lastIndex=d,t.test(r)?t.lastIndex:-1),c=t=>r.startsWith(t,e)&&!$e(r.charCodeAt(e+t.length)),b=t=>{let d=t;if(t>=_&&t<=V)d=V;else if(K(r.charCodeAt(t))){for(;d<a&&K(r.charCodeAt(d));)d++;_=t,V=d}let l=r.charCodeAt(d);return l===120||l===111||l===60?r.charCodeAt(d+1):l},E=t=>{let d=t;if(t>=_&&t<=V)d=V;else if(K(r.charCodeAt(t))){for(;d<a&&K(r.charCodeAt(d));)d++;_=t,V=d}return r.charCodeAt(d)===126},T=()=>{r.charCodeAt(e+1)===96?(w(2),e+=2):(w(1),e++)},R=()=>{if(!E(e))return!1;let t=$(Be,e);return t<0?!1:(u(40,e,t),!0)},O=t=>{let d=r.charCodeAt(e+1);return t===40?(d===45?(w(8),u(45,e,e+2)):d===91?(w(7),u(47,e,e+2)):d===40&&r.charCodeAt(e+2)===40?(w(7),u(55,e,e+3)):(w(7),u(69,e,e+1)),!0):t===91?(d===91?(w(7),u(49,e,e+2)):d===40?(w(7),u(53,e,e+2)):d===47?(w(9),u(58,e,e+2)):d===92?(w(9),u(59,e,e+2)):(w(7),u(71,e,e+1)),!0):t===124?(w(7),u(67,e,e+1),!0):t===123?(w(7),u(73,e,e+1),!0):!1},Q=t=>{p&&(p=!1,w(6)),u(20,e,e+t)},j=()=>{let t=e;for(;t<a;){let d=r.charCodeAt(t);if(d<128&&Xe[d]===1)t++;else if(d===45&&t+1<a){let l=r.charCodeAt(t+1);if(l===62||l===45||l===46)break;t++}else break}return t===e?!1:(u(64,e,t),!0)},te=t=>{let d=b(e),l;if(d===45){if((l=$(Pe,e))>=0)return u(40,e,l),!0;if((l=$(Pt,e))>=0)return w(10),u(41,e,l),!0;if((l=$(me,e))>=0)return u(40,e,l),!0;if((l=$(Bt,e))>=0)return w(12),u(41,e,l),!0}else if(d===61){if((l=$(We,e))>=0)return u(40,e,l),!0;if((l=$(Wt,e))>=0)return w(11),u(41,e,l),!0}else if(d===46&&(l=$(me,e))>=0)return u(40,e,l),!0;return t!==45&&t!==61&&t!==46&&R()},ie=t=>{let d;switch(t){case 97:if(r.startsWith("acc",e)){if((d=$($t,e))>=0)return w(3),u(2,e,d),!0;if((d=$(Lt,e))>=0)return w(4),u(4,e,d),!0;if((d=$(It,e))>=0)return w(5),e=d,!0}break;case 64:if(r.charCodeAt(e+1)===123)return w(16),o.push(7),i.push(""),f.push(e),e+=2,!0;break;case 99:if((d=$(Nt,e))>=0)return w(14),e=d,!0;if(c("classDef"))return u(16,e,e+8),!0;if(c("class"))return u(17,e,e+5),!0;if((d=$(Dt,e))>=0)return w(13),e=d,!0;break;case 34:return T(),!0;case 115:if(c("style"))return u(12,e,e+5),!0;if(c("swimlane-beta"))return Q(13),!0;if(c("subgraph"))return u(21,e,e+8),!0;break;case 100:if(c("default"))return u(13,e,e+7),!0;break;case 108:if(c("linkStyle"))return u(14,e,e+9),!0;break;case 105:if(c("interpolate"))return u(15,e,e+11),!0;break;case 104:if(r.startsWith("href",e)&&K(r.charCodeAt(e+4)))return u(18,e,e+5),!0;break;case 102:if(c("flowchart-elk"))return Q(13),!0;if(c("flowchart"))return Q(9),!0;break;case 103:if(c("graph"))return Q(5),!0;break;case 101:if(c("end")){for(d=e+3;d<a&&K(r.charCodeAt(d));)d++;return u(22,e,d),!0}break;case 95:if(c("_self"))return u(23,e,e+5),!0;if(c("_blank"))return u(23,e,e+6),!0;if(c("_parent"))return u(23,e,e+7),!0;if(c("_top"))return u(23,e,e+4),!0;break}if(v!==-1&&e>=M&&(v<e&&(v=r.indexOf("direction",e)),v!==-1&&(k<e&&(we.lastIndex=e,k=we.test(r)?we.lastIndex-1:a),v<k))){for(let l=0;l<5;l++)if((d=$(Vt[l],e))>=0)return u(26+l,e,d),!0;M=k}if(I!==-1&&t!==34&&!K(t)){if(e>=D){I<e&&(I=r.indexOf("@",e));let l=e;for(;l<a;){let g=r.charCodeAt(l);if(g===34||K(g))break;l++}if(D=l,C=-1,I!==-1&&I<l)for(let g=Math.min(l,a-1)-1;g>=I;g--){if(r.charCodeAt(g)!==64)continue;let x=r.charCodeAt(g+1);if(x!==123&&x!==34){C=g;break}}}if(C>e)return u(31,e,C+1),!0}if(t>=48&&t<=57){let l=e+1;for(;l<a;){let g=r.charCodeAt(l);if(g<48||g>57)break;l++}return u(32,e,l),!0}switch(t){case 35:return u(33,e,e+1),!0;case 58:return r.charCodeAt(e+1)===58&&r.charCodeAt(e+2)===58?u(34,e,e+3):u(35,e,e+1),!0;case 38:return u(36,e,e+1),!0;case 59:return u(37,e,e+1),!0;case 44:return u(38,e,e+1),!0;case 42:return u(39,e,e+1),!0;case 120:case 111:return te(t)||j();case 60:return te(t)||u(60,e,e+1),!0;case 45:return te(t)||j()||u(65,e,e+1),!0;case 61:return te(t);case 46:return te(t)||j();case 126:return R();case 40:return O(t);case 91:return r.charCodeAt(e+1)===124?(u(50,e,e+2),!0):O(t);case 124:case 123:return O(t);case 62:return w(7),u(51,e,e+1),!0;case 94:return u(61,e,e+1),!0;case 92:return r.charCodeAt(e+1)===124?(u(62,e,e+2),!0):j();case 118:return $e(r.charCodeAt(e+1))?j():(u(63,e,e+1),!0)}return K(t)?te(t)?!0:(d=$(Ut,e))>=0?(u(74,e,d),!0):(d=$(Ft,e))>=0?(u(75,e,d),!0):!1:t<128?j():et(t)?(u(66,e,e+1),!0):!1},n=(t,d,l,g)=>{if(t===34)return T(),!0;let x=b(e);if(x===l||x===g){let q=$(d,e);if(q>=0)return L(),u(40,e,q),!0}if(t===l&&(l!==45||r.charCodeAt(e+1)===45))return!1;let J=e+1;for(;J<a;){let q=r.charCodeAt(J);if(q===34)break;if(q===l){if(l!==45||r.charCodeAt(J+1)===45)break}else if(q===120||q===111||q===60||q===g||K(q)){let se=b(J);if((se===l||se===g)&&$(d,J)>=0)break}J++}return u(42,e,J),!0};e:for(;;){if(e>=a){let l=-1;switch(s){case 0:l=76;break;case 3:l=3;break;case 4:l=5;break;case 5:l=6;break;case 13:l=19;break;case 14:l=8;break;case 15:l=9;break}l!==-1&&u(l,a,a);break}let t=r.charCodeAt(e),d=!0;switch(s){case 0:d=ie(t);break;case 1:if(t===34)r.charCodeAt(e+1)===96?(w(2),e+=2):(L(),e++);else{let l=r.indexOf('"',e);u(11,e,l===-1?a:l)}break;case 2:if(t===96)r.charCodeAt(e+1)===34?(L(),e+=2):d=!1;else if(t===34)T();else{let l=e+1;for(;l<a;){let g=r.charCodeAt(l);if(g===96||g===34)break;l++}u(10,e,l)}break;case 3:case 4:{let l=r.indexOf(`
7
+ `,e);l===-1&&(l=a);let g=s===3?3:5;L(),u(g,e,l);break}case 5:if(t===125)L(),e++;else{let l=r.indexOf("}",e);l===-1&&(l=a),u(6,e,l)}break;case 6:{let l;t===34?T():(l=$(Rt,e))>=0?(L(),u(24,e,l)):(l=$(Mt,e))>=0||(l=$(Ot,e))>=0||(l=$(Gt,e))>=0?(L(),u(25,e,l)):d=R()||O(t);break}case 7:{let l=r.charCodeAt(e+1);switch(t){case 34:T();break;case 40:case 91:case 123:O(t);break;case 93:L(),l===41?u(46,e,e+2):l===93?u(48,e,e+2):u(70,e,e+1);break;case 41:L(),l===93?u(52,e,e+2):l===41&&r.charCodeAt(e+2)===41?u(54,e,e+3):u(68,e,e+1);break;case 124:L(),u(67,e,e+1);break;case 125:L(),u(72,e,e+1);break;default:{if((t===126||K(t))&&R())break;let g=e+1;for(;g<a;){let x=r.charCodeAt(g);if(x===91||x===93||x===40||x===41||x===123||x===125||x===124||x===34)break;g++}u(44,e,g)}}break}case 8:{let l=r.charCodeAt(e+1);if(t===34)T();else{if((t===126||K(t))&&R())break;if((t===45||t===47||t===41)&&l===41)L(),u(43,e,e+2);else if(t===40||t===91||t===123)O(t);else if(t===41||t===93||t===125)d=!1;else{let g=e+1;for(;g<a;){let x=r.charCodeAt(g);if(x===34||x===40||x===41||x===91||x===93||x===123||x===125||(x===45||x===47)&&r.charCodeAt(g+1)===41||(x===126||K(x))&&E(g)&&$(Be,g)>=0)break;g++}u(44,e,g)}}break}case 9:{let l=r.charCodeAt(e+1);if(t===34){T();break}if((t===126||K(t))&&R())break;switch(t){case 40:l===45||l===91||l===40&&r.charCodeAt(e+2)===40?O(t):l===93?(L(),u(56,e,e+2)):O(t);break;case 91:case 123:O(t);break;case 92:l===93?(L(),u(56,e,e+2)):u(44,e,e+1);break;case 47:l===93?(L(),u(57,e,e+2)):u(44,e,e+1);break;case 93:case 41:l===93?(L(),u(56,e,e+2)):d=!1;break;case 125:d=!1;break;default:{if((t===63||t===61)&&l===93){L(),u(56,e,e+2);break}let g=e+1;for(;g<a;){let x=r.charCodeAt(g);if(x===92||x===91||x===93||x===40||x===41||x===123||x===125||x===47)break;g++}u(44,e,g)}}break}case 10:d=n(t,Pe,45,-1);break;case 11:d=n(t,We,61,-1);break;case 12:d=n(t,me,46,45);break;case 13:if(t===34)T();else if(K(t))L(),e++;else{let l=e+1;for(;l<a&&!K(r.charCodeAt(l));)l++;u(19,e,l)}break;case 14:if(t===40){let l=$(Ht,e);L(),l>=0?e=l:(w(15),e++)}else{let l=r.indexOf("(",e);l===-1&&(l=a),u(8,e,l)}break;case 15:if(t===41)L(),e++;else{let l=r.indexOf(")",e);l===-1&&(l=a),u(9,e,l)}break;case 16:if(t===34)w(17),u(7,e,e+1);else if(t===125)L(),e++;else if(t===94)d=!1;else{let l=e+1;for(;l<a;){let g=r.charCodeAt(l);if(g===125||g===94||g===34)break;l++}u(7,e,l)}break;case 17:if(t===34)L(),u(7,e,e+1);else{let l=r.indexOf('"',e);l===-1&&(l=a),o.push(7),i.push(r.slice(e,l).replace(Kt,"<br/>")),f.push(e),e=l}break}if(!d)return o.push(1),i.push(""),f.push(e),{types:o,texts:i,starts:f};continue e}return o.push(0),i.push(""),f.push(a),{types:o,texts:i,starts:f}}var pe=new Uint8Array(77);for(let r of[32,64,63,65,13,38,35,36,33,39,66])pe[r]=1;var Ee=new Uint8Array(77);for(let r of[32,66,64,25,63,65,38,35,36,33,39])Ee[r]=1;var xe=new Uint8Array(77);for(let r of[32,64,75,65,36,66,35,39,33,12,14,16,17,19,20,25,21,22,63,61,41])xe[r]=1;var Ae=new Uint8Array(77);for(let r of[32,64,35,75,33,12])Ae[r]=1;var Ue="'UNICODE_TEXT', 'TEXT', 'TAGSTART'",ne=[],jt=/}\s*\n/g;function Yt(r,a){let o=r.includes("}")?r.replace(jt,`}
8
+ `):r,{types:i,texts:f,starts:m}=Xt(o),s=0,e,p=n=>{let t=i[s];throw t===1?_e("flowchart",o,m[s],"",!0):_e("flowchart",o,m[s],`Expecting ${n}, got '${Ve[t]}'`)},v=(n,t="")=>(i[s]!==n&&p(`'${Ve[n]}'${t?", "+t:""}`),f[s++]),I=()=>{let n=i[s];n!==74&&n!==37&&n!==76&&p("'SEMI', 'NEWLINE', 'EOF'"),s++},k=()=>{pe[i[s]]===0&&p("'NODE_STRING'");let n=f[s++];for(;pe[i[s]]===1;)n+=f[s++];return n},M=()=>{Ee[i[s]]===0&&p("'NODE_STRING'");let n=f[s++];for(;Ee[i[s]]===1;)n+=f[s++];return n},D=()=>{let n=i[s],t;if(n===11)t="string";else if(n===10)t="markdown";else if(n===44||n===60||n===51||n===66)t="text";else return p(`${Ue}, 'TAGEND', 'STR', 'MD_STR'`);let d=f[s++];for(;;){let l=i[s];if(l!==44&&l!==60&&l!==51&&l!==66)break;d+=f[s++]}return{text:d,type:t}},C=n=>{v(n,Ue)},_=()=>{let n=i[s],t;if(n===11)t="string";else if(n===10)t="markdown";else if(n===42||n===66)t="text";else return p("'EDGE_TEXT', 'STR', 'MD_STR'");let d=f[s++];for(;i[s]===42||i[s]===66;)d+=f[s++];return{text:d,type:t}},V=()=>{let n=i[s],t;if(n===11)t="text";else if(n===10)t="markdown";else if(xe[n]===1)t="text";else return p("'NODE_STRING', 'STR', 'MD_STR'");let d=f[s++];for(;xe[i[s]]===1;)d+=f[s++];return{text:d,type:t}},u=()=>{let n=f[s++];for(;i[s]===7;)n+=f[s++];return n},w=()=>{let n=k(),t;switch(i[s]){case 71:s++,t=D(),C(70),a.addVertex(n,t,"square");break;case 55:s++,t=D(),C(54),a.addVertex(n,t,"doublecircle");break;case 69:s++,i[s]===69?(s++,t=D(),C(68),v(68),a.addVertex(n,t,"circle")):(t=D(),C(68),a.addVertex(n,t,"round"));break;case 45:s++,t=D(),C(43),a.addVertex(n,t,"ellipse");break;case 47:s++,t=D(),C(46),a.addVertex(n,t,"stadium");break;case 49:s++,t=D(),C(48),a.addVertex(n,t,"subroutine");break;case 50:{s++;let d=v(64);v(35);let l=v(64);v(67),t=D(),C(70),a.addVertex(n,t,"rect",void 0,void 0,void 0,{[d]:l});break}case 53:s++,t=D(),C(52),a.addVertex(n,t,"cylinder");break;case 73:s++,i[s]===73?(s++,t=D(),C(72),v(72),a.addVertex(n,t,"hexagon")):(t=D(),C(72),a.addVertex(n,t,"diamond"));break;case 51:s++,t=D(),C(70),a.addVertex(n,t,"odd");break;case 58:s++,t=D(),i[s]===57?(s++,a.addVertex(n,t,"lean_right")):(C(56),a.addVertex(n,t,"trapezoid"));break;case 59:s++,t=D(),i[s]===56?(s++,a.addVertex(n,t,"lean_left")):(C(57),a.addVertex(n,t,"inv_trapezoid"));break;default:a.addVertex(n)}return n},L=()=>{let n=w();return i[s]===34&&(s++,a.setClass(n,k())),n},$=()=>{let n=[L()];for(e=void 0;;){let t=i[s]===7?u():void 0;if(i[s]!==75)return e=t,n;do s++;while(i[s]===75);if(i[s]!==36)return t!==void 0&&p("'AMP'"),n;s++,i[s]!==75&&p("'SPACE'");do s++;while(i[s]===75);let d=L();t!==void 0&&a.addVertex(n[n.length-1],void 0,void 0,void 0,void 0,void 0,void 0,t),n.push(d)}},c=()=>{let n;if(i[s]===31&&(n=f[s++]),i[s]===40){let t=a.destructLink(f[s++]);return n!==void 0&&(t.id=n),i[s]===67&&(s++,t.text=D(),C(67),i[s]===75&&s++),t}if(i[s]===41){let t=f[s++],d=_(),l=v(40,"'EDGE_TEXT'"),g=a.destructLink(l,t);return g.text=d,n!==void 0&&(g.id=n),g}return p("'LINK', 'START_LINK'")},b=()=>{let n=$();e!==void 0&&a.addVertex(n[n.length-1],void 0,void 0,void 0,void 0,void 0,void 0,e);let t=n;for(;;){let d=i[s];if(d!==40&&d!==41&&d!==31)return t;let l=c(),g=$();e!==void 0&&a.addVertex(g[g.length-1],void 0,void 0,void 0,void 0,void 0,void 0,e),a.addLink(n,g,l),t=g.concat(t),n=g}},E=()=>{Ae[i[s]]===0&&p("'NODE_STRING', 'NUM', 'COLON', 'BRKT'");let n=f[s++];for(;Ae[i[s]]===1;)n+=f[s++];return n},T=()=>{let n=[E()];for(;i[s]===38;)s++,n.push(E());return n},R=()=>{s++,v(75);let n;if(i[s]===13)n=[f[s++]];else for(n=[v(32,"'DEFAULT'")];i[s]===38;)s++,n.push(v(32));if(v(75),i[s]!==15){a.updateLink(n,T());return}s++,v(75);let t=M();if(i[s]===75){s++;let d=T();a.updateLinkInterpolate(n,t),a.updateLink(n,d)}else a.updateLinkInterpolate(n,t)},O=(n,t)=>{if(i[s]!==75){a.setLink(n,t);return}if(s++,i[s]===23){a.setLink(n,t,f[s++]);return}let d=v(11,"'LINK_TARGET'");i[s]===75?(s++,a.setLink(n,t,v(23))):a.setLink(n,t),a.setTooltip(n,d)},Q=()=>{let n=f[s++];switch(i[s]){case 8:{let t=f[s++],d=i[s]===9,l=d?f[s++]:void 0,g;i[s]===75&&(s++,g=v(11)),d?a.setClickEvent(n,t,l):a.setClickEvent(n,t),g!==void 0&&a.setTooltip(n,g);return}case 18:s++,O(n,v(11));return;case 11:O(n,f[s++]);return;default:{let t=M();if(i[s]===75){s++;let d=v(11);a.setClickEvent(n,t),a.setTooltip(n,d)}else a.setClickEvent(n,t)}}},j=()=>{s++;let n=i[s];if(n===74||n===37||n===76)return s++,{id:void 0,title:void 0,list:[],collect:!1};v(75,"'SEMI', 'NEWLINE', 'EOF'");let t=V(),d=t;return i[s]===71&&(s++,d=D(),C(70)),n=i[s],n!==74&&n!==37&&n!==76&&p("'SEMI', 'NEWLINE', 'EOF', 'SQS'"),s++,{id:t,title:d,list:[],collect:!1}},te=()=>{let n=i[s];switch(n){case 12:{s++,v(75);let t=k();return v(75),a.addVertex(t,void 0,void 0,T()),I(),ne}case 14:return R(),I(),ne;case 16:{s++,v(75);let t=k();return v(75),a.addClass(t,T()),I(),ne}case 17:{s++,v(75);let t=k();return v(75),a.setClass(t,k()),I(),ne}case 19:return Q(),I(),ne;case 26:case 27:case 28:case 29:case 30:return s++,{stmt:"dir",value:qt[n-26]};case 2:{s++;let t=v(3).trim();return a.setAccTitle(t),t}case 4:{s++;let t=v(5).trim();return a.setAccDescription(t),t}case 6:{let t=f[s++].trim();return a.setAccDescription(t),t}default:{pe[n]===0&&p(Fe);let t=b();return I(),t}}},ie=()=>{let n=[],t=[],d=!1;for(;;){let l=i[s];if(l===0)break;if(l===22){let g=n.pop();if(g===void 0)break;s++;let x=a.addSubGraph(g.id,t,g.title);t=g.list,d=g.collect,d&&t.push(x)}else if(l===37||l===74||l===75||l===76)d&&t.push(f[s]),s++;else if(l===21){let g=j();g.list=t,g.collect=d,n.push(g),t=[],d=!0}else{let g=te();d&&(!Array.isArray(g)||g.length>0)&&t.push(g)}}n.length>0&&p("'end'")};for(;i[s]===75||i[s]===74;)s++;if(v(20,"'SPACE', 'NEWLINE'"),i[s]===24)s++,a.setDirection("TB");else{let n=v(25,"'NODIR'"),t=i[s];if(t===75){do s++;while(i[s]===75);t=i[s],t!==74&&p("'NEWLINE', 'SPACE'")}else t!==37&&t!==74&&p("'SEMI', 'NEWLINE', 'SPACE'");s++,a.setDirection(n)}ie(),i[s]!==0&&p(Fe)}var qt=["TB","BT","RL","LR","TD"],Fe="'SEMI', 'NEWLINE', 'SPACE', 'EOF', 'subgraph', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'STYLE', 'LINKSTYLE', 'CLASSDEF', 'CLASS', 'CLICK', 'NODE_STRING'";function zt(r){if(r.img)return"imageSquare";if(r.icon)return r.form==="circle"?"iconCircle":r.form==="square"?"iconSquare":r.form==="rounded"?"iconRounded":"icon";switch(r.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";default:return r.type}}function Qt(r){switch(r){case"arrow_point":case"arrow_circle":case"arrow_cross":return["none",r];case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":{let a=r.replace("double_","");return[a,a]}}return["none","arrow_point"]}function Zt(r,a){var L,$;let o=[],i=[],f=r.subgraphs,m=c=>{let b=[];for(let E of c){let T=r.classes.get(E);T!=null&&T.styles&&(b=[...b,...T.styles].map(R=>R.trim())),T!=null&&T.textStyles&&(b=[...b,...T.textStyles].map(R=>R.trim()))}return b},s=new Map;for(let c of f)for(let b of c.nodes)r.subgraph(b)&&s.set(b,c.id);let e=new Map,p=new Map;for(let c of f){let b=s.get(c.id);if(b===void 0)continue;let E=p.get(b);E?E.push(c.id):p.set(b,[c.id])}let v=0;for(let c of f){if(s.has(c.id))continue;let b=[c.id];for(;b.length>0;){let E=b.pop();if(e.has(E))continue;e.set(E,v++);let T=p.get(E);if(T)for(let R=T.length-1;R>=0;R--)b.push(T[R])}}let I=c=>{var b,E;return((E=(b=r.subgraph(c))==null?void 0:b.metadata)==null?void 0:E.view)==="collapsed"},k=!1;for(let c of f)((L=c.metadata)==null?void 0:L.view)==="collapsed"&&(k=!0);let M=new Map,D=c=>{let b=[],E=new Set,T=c;for(;T!==void 0&&!M.has(T)&&!E.has(T);)E.add(T),b.push(T),T=s.get(T);let R=T!==void 0?M.get(T):void 0;for(let O=b.length-1;O>=0;O--)R===void 0&&I(b[O])&&(R=b[O]),M.set(b[O],R);return R},C=new Set,_=new Map;for(let c of k?f:[]){let b=D(c.id);if(b!==void 0){c.id!==b&&(C.add(c.id),_.set(c.id,b));for(let E of c.nodes)E!==b&&(C.add(E),_.set(E,b))}}let V=new Map,u=new Set;for(let c=f.length-1;c>=0;c--){let b=f[c];if(!C.has(b.id)){b.nodes.length>0&&u.add(b.id);for(let E of b.nodes)V.set(E,b.id)}}let w=new Map;for(let c=f.length-1;c>=0;c--){let b=f[c];if(C.has(b.id))continue;let E=(($=b.metadata)==null?void 0:$.view)==="collapsed",T={id:b.id,label:b.title,labelType:b.labelType,parentId:V.get(b.id),cssStyles:[],cssCompiledStyles:m(b.classes),cssClasses:b.classes.join(" "),shape:E?"collapsedGroup":"rect",dir:b.dir,isGroup:!E,colorIndex:e.get(b.id)};E||(T.metadata=b.metadata),o.push(T),w.set(b.id,T)}for(let c of r.nodes.values()){if(C.has(c.id))continue;let b=w.get(c.id);if(b){b.cssStyles=c.styles,b.cssCompiledStyles=m(c.classes),b.cssClasses=c.classes.join(" ");continue}let E=u.has(c.id),T={id:c.id,label:c.text,labelType:c.labelType,parentId:V.get(c.id),cssStyles:c.styles,cssCompiledStyles:m(["default","node",...c.classes]),cssClasses:"default "+c.classes.join(" "),dir:c.dir,link:c.link,linkTarget:c.linkTarget,tooltip:r.tooltips.get(c.id),icon:c.icon,pos:c.pos,img:c.img,assetWidth:c.assetWidth,assetHeight:c.assetHeight,constraint:c.constraint,isGroup:E,shape:E?"rect":zt(c)};o.push(T),w.set(c.id,T)}return r.edges.forEach((c,b)=>{let E=_.get(c.start)??c.start,T=_.get(c.end)??c.end;if(E===T&&(_.has(c.start)||_.has(c.end)))return;let[R,O]=Qt(c.type),Q=[...r.defaultEdgeStyle??[]];c.style&&Q.push(...c.style);let j=c.stroke==="invisible"||c.type==="arrow_open";i.push({id:c.id||`L_${E}_${T}_${b}`,isUserDefinedId:c.isUserDefinedId,start:E,end:T,type:c.type??"normal",label:c.text,labelType:c.labelType,thickness:c.stroke,pattern:c.stroke,minlen:c.length,classes:c.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:j?"none":R,arrowTypeEnd:j?"none":O,cssCompiledStyles:m(c.classes),style:Q,animate:c.animate,animation:c.animation,curve:c.interpolate||r.defaultInterpolate||a})}),{nodes:o,edges:i}}var Jt=40,er=16,tr=48,He=20,ve=26,Te=' fill="var(--_s)" stroke="var(--_b)"',rr=' stroke="var(--_b)"';function Se(r,a,o){let i=r[a];return typeof i=="number"&&i>0?Math.min(i,2e3):o}function oe(r,a){return r!==void 0&&r>0&&r<=4e3?r:a}function sr(r,a,o,i){let f=m=>kt(o,s=>ar(r,a,o,i,m,s));return bt(r.direction)?yt(o,f):f(!1)}function ar(r,a,o,i,f,m){let s=m?12:He,e=i?a[i.type]:void 0,p=typeof e=="object"&&e!==null&&!Array.isArray(e)?e:a.flowchart??{},v=Zt(r,typeof p.curve=="string"?p.curve:void 0);i==null||i.prepare(v);let I=o.fontSize??16,k=Math.round(I*.875),M=o.measurer??Ze(o.fontFamily),D=Math.min(Se(p,"wrappingWidth",200),i&&m?100:1/0),C=o.padding??8,_=o.icons,V=new Map,u=[],w=[];v.nodes.forEach((y,h)=>V.set(y.id,h));for(let y of v.nodes){let h=Me(y.cssStyles.length>0?y.cssCompiledStyles.concat(y.cssStyles):y.cssCompiledStyles),A=(h.bold?1:0)|(h.italic?2:0),S=y.labelType==="markdown",H=h.fontSize??I,Z,P;if(y.isGroup){let G=ue(y.label,S,M,H,i&&m?Math.max(80,De(o)/2):4e3,A);Z={node:y,style:h,label:G,shape:"group",w:0,h:0,dy:0,loops:0},P=Ie(0,0),P.isGroup=!0,P.dir=y.dir?Le(y.dir):void 0,P.padX=s,P.padTop=G.height>0?G.height+16:He,P.padBottom=s,P.minW=G.width+2*s-12}else{let G=ze(y.shape),ae=y.img||y.icon||ft(G)?y.label:void 0,F=ue(ae,S,M,H,D,A),ee,B,X=0;if(y.img||y.icon){let N=y.img?80:48,Y=oe(y.assetWidth,N),z=oe(y.assetHeight,N);ee=Math.max(Y,F.width+8),B=z+(F.height>0?F.height+6:0),X=y.pos==="t"?-z/2:z/2,F.height===0&&(X=0)}else{let N=ht(G,F.width,F.height);ee=N.w,B=N.h,X=N.dy}Z={node:y,style:h,label:F,shape:G,w:ee,h:B,dy:X,loops:0},P=Ie(ee,B)}P.seq=u.length,u.push(Z),w.push(P)}v.nodes.forEach((y,h)=>{w[h].parent=y.parentId!==void 0?V.get(y.parentId)??-1:-1});let L=f?"TB":Le(r.direction),$=y=>{let h;for(let A=w[y].parent,S=0;A>=0&&h===void 0&&S<1e4;A=w[A].parent,S++)h=w[A].dir;return h??(h=L),h==="LR"||h==="RL"};u.forEach((y,h)=>{y.node.isGroup?w[h].span=1/0:!y.node.img&&!y.node.icon&&(w[h].span=pt(y.shape,y.w,y.h,$(h)))});let c=[],b=[],E=[];for(let y of v.edges){let h=V.get(y.start),A=V.get(y.end);if(h===void 0||A===void 0)continue;let S=ue(y.label,y.labelType==="markdown",M,k,D);h===A&&(u[h].loops++,$(h)?w[h].h+=2*(ve+(S.height>0?S.height+8:0)):w[h].w+=2*(ve+(S.width>0?S.width+12:0))),E.push(y),b.push(S),c.push({src:h,dst:A,minlen:y.minlen??1,labelW:S.width>0?S.width+12:0,labelH:S.height>0?S.height+4:0,route:[],labelX:0,labelY:0})}let T={nodeSep:Se(p,"nodeSpacing",Jt)*(m?.5:1),edgeSep:er,rankSep:Se(p,"rankSpacing",tr)*(m?.75:1),portSep:20,tracks:typeof p.curve=="string"&&/^step/.test(p.curve),straight:p.curve==="linear",headRoom:ce("arrow_point")},R=i?i.layout(w,c,L,T,m):it(w,c,L,T),O=ue(r.title,!1,M,I,m?De(o):4e3,1),Q=O.height>0?O.height+12:0,j=Math.max(R.width,O.width),te=C+(j-R.width)/2,ie=C+Q;lt(w,c,te,ie);let n=Math.ceil(j+2*C),t=Math.ceil(R.height+Q+2*C),d=[],l=new Map,g=!1;for(let y of w)y.isGroup&&(g=!0);if(g)for(let y of c)tt(l,y.route);let x="",J="",q="";for(let y=0;y<u.length;y++){let h=u[y],A=w[y],S=h.node,H=A.x,Z=A.y,P=Oe(S.cssClasses.replace(/^default\s?/,"")),G=fe(S.id);if(A.isGroup&&(i!=null&&i.drawGroup)&&A.parent<0){x+=i.drawGroup(A,h.label,h.style,P,G,L,_);continue}if(A.isGroup){let N=rt(A,h.label.width,l,s),Y=Z-A.h/2+8+h.label.height/2,z=` class="pele-cluster-label" fill="var(--_m)"${h.style.text}`,re=st(A,h.label.width,N,l);re&&(J+=at(h.label,N,Y,z,G,w,y,_)),x+=`<g class="pele-cluster${P}" data-id="${G}"><rect x="${W(H-A.w/2)}" y="${W(Z-A.h/2)}" width="${W(A.w)}" height="${W(A.h)}" rx="${St}" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"${h.style.shape}/>`+(re?"":ye(h.label,N,Y,z,_))+"</g>";continue}let ae=h.w,F=h.h,ee;if(S.img){let N=oe(S.assetWidth,80),Y=oe(S.assetHeight,80),z=h.label.height>0?S.pos==="t"?F/2-Y:-F/2:-Y/2,re=nt(Ke(S.img),o);ee=re===void 0?"":`<image href="${he(re)}" x="${W(-N/2)}" y="${W(z)}" width="${W(N)}" height="${W(Y)}" preserveAspectRatio="${S.constraint==="on"?"xMidYMid meet":"none"}"/>`}else if(S.icon){let N=oe(S.assetHeight,48),Y=h.label.height>0?S.pos==="t"?F/2-N:-F/2:-N/2,z=S.shape==="icon"?"":S.shape==="iconCircle"?`<circle cy="${W(Y+N/2)}" r="${W(N/2)}"${Te}${h.style.shape}/>`:`<rect x="${W(-N/2)}" y="${W(Y)}" width="${W(N)}" height="${W(N)}" rx="${S.shape==="iconRounded"?8:0}"${Te}${h.style.shape}/>`,re=N*.6;ee=z+`<svg class="pele-icon" data-icon="${fe(S.icon)}" x="${W(-re/2)}" y="${W(Y+(N-re)/2)}" width="${W(re)}" height="${W(re)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(_==null?void 0:_(S.icon))??""}</svg>`}else ee=gt(h.shape,ae,F,Te+h.style.shape,rr+h.style.line);let B=ye(h.label,0,h.dy,` class="pele-label"${h.style.text}`,_);if(/ internal-link(?: |$)/.test(P+" ")&&S.label&&o.links!==!1){let N=Je(S.label),Y=ot(dt(N),o)!==void 0,z=he(N);B=`<a class="internal-link"${Y?` href="${z}"${ct(o)}`:""} data-href="${z}">${B}</a>`,d.push({id:S.id,href:N,internal:!0})}let X=ee+B;S.tooltip&&(X=`<title>${fe(S.tooltip)}</title>`+X),S.link&&(X=ut(X,S.link,S.id,d,o,S.linkTarget?` target="${he(S.linkTarget)}"`:"")),q+=`<g class="pele-node pele-shape-${h.shape}${P}" data-id="${G}" transform="translate(${W(H)},${W(Z)})">${X}</g>`}let se=Tt();for(let y=0;y<c.length;y++){let h=c[y];h.src===h.dst||E[y].thickness==="invisible"||h.route.length<6||(se.add(h.src,de(h.route,0,w[h.src]),E[y].arrowTypeStart),se.add(h.dst,de(h.route,h.route.length-3,w[h.dst]),E[y].arrowTypeEnd))}let ge="",be="",Ce=new Map;for(let y=0;y<c.length;y++){let h=c[y],A=E[y],S=b[y],H=A.style.length>0||A.cssCompiledStyles.length>0?Me(A.cssCompiledStyles.concat(A.style)):void 0;if(A.thickness!=="invisible"){let Z=A.arrowTypeStart,P=A.arrowTypeEnd,G;if(h.src===h.dst){let B=u[h.src],X=Ce.get(h.src)??0;Ce.set(h.src,X+1),G=wt(w[h.src],B.w,B.h,X,$(h.src),ve,ce(P),h)}else{let B=h.route.slice(),X=se.of(h.src,de(B,0,w[h.src])),N=se.of(h.dst,de(B,B.length-3,w[h.dst]));Ne(B,0,u[h.src],w[h.src]),Ne(B,B.length-3,u[h.dst],w[h.dst]),G=mt(B,A.curve,ce(Z),ce(P),X,N)}let ae=H!=null&&H.stroke&&A.thickness!=="invisible"?he(H.stroke):"var(--_l)",F="";A.thickness==="thick"?F+=' stroke-width="2.5"':A.thickness==="dotted"&&(F+=' stroke-dasharray="3 4"');let ee=Oe(A.classes.replace(/edge-thickness-normal|edge-pattern-solid|flowchart-link/g,""));ge+=`<g class="pele-edge${ee}" data-id="${fe(A.id)}"${(H==null?void 0:H.line)??""}><path d="${G.d}"${F}/>`+Re(Z,G.sx,G.sy,G.sdx,G.sdy,ae)+Re(P,G.ex,G.ey,G.edx,G.edy,ae)+"</g>"}if(S.width>0){let Z=h.labelX,P=h.labelY;be+=vt(A.id,S,Z,P,(H==null?void 0:H.text)??"",_)}}return{svg:Et((i==null?void 0:i.type)??"flowchart",n,t,I,o,r,ye(O,n/2,C+O.height/2,' class="pele-title" font-weight="var(--_tw)"')+(x?`<g class="pele-clusters">${x}</g>`:"")+(ge?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${ge}</g>`:"")+(J?`<g class="pele-cluster-titles">${J}</g>`:"")+(be?`<g class="pele-edge-labels" font-size="${k}">${be}</g>`:"")+`<g class="pele-nodes">${q}</g>`),width:n,height:t,links:d}}var ir={type:"flowchart",parse(r,a,o,i,f){let m=a.flowchart??{},s=new _t({inheritDir:m.inheritDir===!0,maxEdges:f.maxEdges});return o&&(s.title=o),Yt(r,s),s},render:sr};const yr=Object.freeze(Object.defineProperty({__proto__:null,flowchart:ir},Symbol.toStringTag,{value:"Module"}));export{ir as G,yr as N,sr as y};
@@ -0,0 +1,2 @@
1
+ import{s as ye}from"./UEXXS2NB-Dkz_tz-N.js";import{c as Pe}from"./DKTLEL5E-B7ILCVTH.js";import{x as De,D as Fe,M as Ne,$ as Oe,v as Ve,w as qe,V as Ye,W as ze,G as Ke,O as je,P as Ue,Y as Je,z as Qe,U as Xe,H as Ze,j as xe}from"./VMV7XPHP-6QkisQwm.js";import{m as se,y as ke,a as We,x as o,f as te,_ as et,$ as tt}from"./RZSVICHU-BiwjruZZ.js";import{H as at,x as rt}from"./lazy-CKqR1774.js";import"./index-392ivruk.js";var v={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4};function B(a){throw new rt(a,"semantic",{type:"gitGraph"})}function ve(a){return a==="REVERSE"?v.REVERSE:a==="HIGHLIGHT"?v.HIGHLIGHT:v.NORMAL}function it(a,e){a.dir&&e.setDirection(a.dir);for(let c of a.statements)nt(c,e)}function nt(a,e){var c;switch(a.$type){case"Commit":e.commit({id:a.id,msg:a.message??"",type:a.type!==void 0?ve(a.type):v.NORMAL,tags:a.tags??void 0});break;case"Branch":e.branch({name:a.name,order:a.order??0});break;case"Merge":e.merge({branch:a.branch,id:a.id??"",type:a.type!==void 0?ve(a.type):void 0,tags:a.tags??void 0});break;case"Checkout":e.checkout(a.branch);break;case"CherryPicking":e.cherryPick({id:a.id,targetId:"",tags:((c=a.tags)==null?void 0:c.length)===0?void 0:a.tags,parent:a.parent});break}}function lt(a,e,c){let p=e.gitGraph,R=typeof(p==null?void 0:p.mainBranchName)=="string"?p.mainBranchName:"main",G=typeof(p==null?void 0:p.mainBranchOrder)=="number"?p.mainBranchOrder:0,x=new Map,h=new Map([[R,null]]),Q=new Map([[R,G]]),ie=[],T=null,C=R,y="LR",D=0,j=()=>{for(let i=D+1;;i+=2654435761){let f=`${D}-${(Math.imul(i,2654435761)>>>0).toString(16).padStart(8,"0").slice(0,7)}`;if(!x.has(f))return f}},F=i=>{T=i,x.set(i.id,i),h.set(C,i.id)},X=i=>{h.has(i)||B(`Trying to checkout branch which is not yet created. (Help try using "branch ${i}")`),C=i;let f=h.get(i);T=f?x.get(f)??null:null};it(a,{setDirection(i){y=i},commit({msg:i,id:f,type:A,tags:_}){let k={id:f||j(),message:i,seq:D++,type:A??v.NORMAL,tags:_?[..._]:[],parents:T===null?[]:[T.id],branch:C};x.has(k.id)&&ie.push(`Commit ID ${k.id} already exists`),F(k)},branch({name:i,order:f}){h.has(i)&&B(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${i}")`),h.set(i,T!==null?T.id:null),Q.set(i,f),X(i)},merge({branch:i,id:f,type:A,tags:_}){let k=h.get(C),S=h.get(i),N=k?x.get(k):void 0,U=S?x.get(S):void 0;N&&U&&N.branch===i&&B(`Cannot merge branch '${i}' into itself.`),C===i&&B('Incorrect usage of "merge". Cannot merge a branch to itself'),N===void 0&&B(`Incorrect usage of "merge". Current branch (${C})has no commits`),h.has(i)||B(`Incorrect usage of "merge". Branch to be merged (${i}) does not exist`),U===void 0&&B(`Incorrect usage of "merge". Branch to be merged (${i}) has no commits`),N===U&&B('Incorrect usage of "merge". Both branches have same head'),f&&x.has(f)&&B(`Incorrect usage of "merge". Commit with id:${f} already exists, use different custom id`),F({id:f||j(),message:`merged branch ${i} into ${C}`,seq:D++,parents:T===null?[]:[T.id,S||""],branch:C,type:v.MERGE,customType:A,customId:!!f,tags:_?[..._]:[]})},cherryPick({id:i,targetId:f,tags:A,parent:_}){let k=i?x.get(i):void 0;if(k===void 0&&B('Incorrect usage of "cherryPick". Source commit id should exist and provided'),_&&!k.parents.includes(_)&&B("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit."),k.type===v.MERGE&&!_&&B("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified."),f&&x.has(f))return;k.branch===C&&B('Incorrect usage of "cherryPick". Source commit is already on current branch');let S=h.get(C);(!S||!x.has(S))&&B(`Incorrect usage of "cherry-pick". Current branch (${C})has no commits`),F({id:j(),message:`cherry-picked ${k.message} into ${C}`,seq:D++,parents:T===null?[]:[T.id,k.id],branch:C,type:v.CHERRY_PICK,tags:A?A.filter(Boolean):[`cherry-pick:${k.id}${k.type===v.MERGE?`|parent:${_}`:""}`]})},checkout:X});let ne=[...Q].map(([i,f],A)=>({name:i,order:f??parseFloat(`0.${A}`)})).sort((i,f)=>i.order-f.order).map(i=>i.name);return{type:"gitGraph",title:a.title||c,accTitle:a.accTitle?a.accTitle.replace(/^\s+/g,""):void 0,accDescr:a.accDescr?a.accDescr.replace(/\n\s+/g,`
2
+ `):void 0,direction:y,commits:x,branches:h,lanes:ne,currentBranch:C,head:T,warnings:ie}}var Te={name:"REFERENCE",pattern:/\w([-\./\w]*[-\w])?/y},_e=[Te];function P(a){return{name:a,pattern:a,longer:_e}}var Ge=[P("cherry-pick"),{name:"gitGraph:",pattern:"gitGraph:"},P("HIGHLIGHT"),{...Ze("gitGraph"),longer:_e},P("checkout"),P("REVERSE"),{name:"parent:",pattern:"parent:"},P("commit"),P("NORMAL"),P("branch"),{name:"order:",pattern:"order:"},P("switch"),{name:"type:",pattern:"type:"},P("merge"),{name:"msg:",pattern:"msg:"},{name:"tag:",pattern:"tag:"},{name:"id:",pattern:"id:"},P("LR"),P("TB"),P("BT"),{name:":",pattern:":"},{...Ne,opener:/[\t ]*accDescr\s*{/y},Oe,Ve,{name:"INT",pattern:/0|[1-9][0-9]*(?!\.)/y},qe,Ye,ze,Ke,je,Ue,Te];function st(a){let e=new De(Fe(a,Ge,"gitGraph"),Ge,"gitGraph"),c={$type:"GitGraph",statements:[]},p=()=>{if(e.kind!==-1)for(e.kind!==26&&e.fail("a line break or the end of input");e.kind===26;)e.i++},R=()=>e.kind===31?e.take():e.kind===25?xe(e.take()):e.fail("a branch name"),G=()=>xe(e.expect(25)),x=()=>(e.kind!==8&&e.kind!==5&&e.kind!==2&&e.fail("NORMAL, REVERSE, or HIGHLIGHT"),e.take());for(;e.kind===26;)e.i++;if(!e.accept(1)){e.expect(3);let h=e.kinds[e.i+1];(e.kind===17||e.kind===18||e.kind===19)&&h===20?(c.$type="Direction",c.dir=e.take(),e.i++):e.accept(20)}for(;e.kind!==-1;)switch(e.kind){case 26:e.i++;break;case 21:c.accDescr=Xe(e.take()),p();break;case 22:c.accTitle=Qe(e.take()),p();break;case 23:c.title=Je(e.take()),p();break;case 7:{e.i++;let h={$type:"Commit",tags:[]};for(;;)if(e.accept(16))h.id=G();else if(e.accept(15))h.tags.push(G());else if(e.accept(12))h.type=x();else if(e.accept(14)||e.kinds[e.i]===25)h.message=G();else break;p(),c.statements.push(h);break}case 9:{e.i++;let h={$type:"Branch",name:R()};e.accept(10)&&(h.order=parseInt(e.expect(24))),p(),c.statements.push(h);break}case 13:{e.i++;let h={$type:"Merge",branch:R(),tags:[]};for(;;)if(e.accept(16))h.id=G();else if(e.accept(15))h.tags.push(G());else if(e.accept(12))h.type=x();else break;p(),c.statements.push(h);break}case 4:case 11:{e.i++;let h={$type:"Checkout",branch:R()};p(),c.statements.push(h);break}case 0:{e.i++;let h={$type:"CherryPicking",tags:[]};for(;;)if(e.accept(16))h.id=G();else if(e.accept(15))h.tags.push(G());else if(e.accept(6))h.parent=G();else break;p(),c.statements.push(h);break}default:e.fail("a statement, a title, or a line break")}return c}var w=7,ct=44,ot=44,ce=36,oe=8,ae=20,re=7,Ie=6,be=Math.SQRT1_2,Ce=["normal","reverse","highlight","merge","cherry-pick"];function he(a,e,c){var R;let p=(R=a.gitGraph)==null?void 0:R[e];return typeof p=="boolean"?p:c}function Le(a){return re+4+a.width+6}function ht(a,e,c,p){let R=`cx="${o(e)}" cy="${o(c)}"`;if(a===v.HIGHLIGHT)return`<rect x="${o(e-w-1)}" y="${o(c-w-1)}" width="${2*w+2}" height="${2*w+2}" rx="2" fill="${p}"/>`;if(a===v.MERGE)return`<circle ${R} r="${w-1}" fill="var(--_bg)" stroke="${p}" stroke-width="2"/><circle ${R} r="2.5" fill="${p}"/>`;let G=`<circle ${R} r="${w}" fill="${p}"/>`;return a===v.REVERSE?G+`<path d="M${o(e-3)},${o(c-3)}l6,6M${o(e-3)},${o(c+3)}l6,-6" fill="none" stroke="var(--_bg)" stroke-width="1.5" stroke-linecap="round"/>`:a===v.CHERRY_PICK?G+`<path d="M${o(e-2.6)},${o(c+1)}L${o(e+.8)},${o(c-4.2)}L${o(e+2.6)},${o(c+1)}" fill="none" stroke="var(--_bg)" stroke-linejoin="round"/><circle cx="${o(e-2.6)}" cy="${o(c+2.2)}" r="1.8" fill="var(--_bg)"/><circle cx="${o(e+2.6)}" cy="${o(c+2.2)}" r="1.8" fill="var(--_bg)"/>`:G}function mt(a,e,c){return a.direction!=="LR"?He(a,e,c,a.direction):Pe(c,p=>He(a,e,c,p?"TB":"LR"))}function He(a,e,c,p){let R=c.fontSize??16,G=Math.round(R*.75),x=c.measurer??at(c.fontFamily),h=c.padding??8,Q=he(e,"showBranches",!0),ie=he(e,"showCommitLabel",!0),T=he(e,"rotateCommitLabel",!0),C=he(e,"parallelCommits",!1),y=p!=="LR",D=p==="BT",j=new Map;a.lanes.forEach((t,r)=>j.set(t,r));let F=a.lanes.length,X=Math.round(R*.875),ne=a.lanes.map(t=>ye(Q?t:"",x,X,4e3)),i=[],f=new Map;for(let t of[...a.commits.values()].sort((r,n)=>r.seq-n.seq)){let r=ie&&t.type!==v.CHERRY_PICK&&(t.type!==v.MERGE||t.customId===!0),n=[];for(let s of t.tags){let m=ye(s,x,G,4e3);m.lines.length>0&&n.push(m)}let l={commit:t,index:i.length,lane:j.get(t.branch)??0,m:0,label:r?ye(t.id,x,G,4e3):void 0,tags:n};i.push(l),f.set(t.id,l)}let A=new Float64Array(i.length),_=new Float64Array(i.length),k=new Float64Array(F).fill(w),S=new Float64Array(F).fill(w);i.forEach((t,r)=>{let{label:n,tags:l}=t,s=0,m=0;for(let d of l){let I=Le(d);y?(s=Math.max(s,d.height),m+=I+4):(s=Math.max(s,I),m+=d.height+3)}let b=0,g=0;n!==void 0&&n.lines.length>0&&(T?g=3+be*(n.width+n.height):(b=y?n.height:n.width,g=6+(y?n.width:n.height))),A[r]=Math.max(w,s/2,b/2),_[r]=s/2;let L=w+(l.length>0?Ie+m:0),K=w+g,u=t.lane;k[u]=Math.max(k[u],y?K:L),S[u]=Math.max(S[u],y?L:K)});let N=new Float64Array(i.length);y||i.forEach((t,r)=>{if(_[r]!==0)for(let n of t.commit.parents){let l=f.get(n);l!==void 0&&l.lane<t.lane&&(N[r]=_[r]+4)}});let U=(t,r)=>Math.max(ct,A[t]+A[r]+oe,N[r]>0?A[t]+ce+N[r]:0);i.forEach((t,r)=>{if(!C){t.m=r===0?0:i[r-1].m+U(r-1,r);return}let n=0;for(let l of t.commit.parents){let s=f.get(l);s===void 0||s.index>=r||(n=Math.max(n,s.m+U(s.index,r)))}t.m=n});let V=0;for(let t of i)V=Math.max(V,t.m);let q=new Float64Array(F);for(let t=0;t<F;t++){let r=ne[t],n=r.lines.length===0?0:y?r.width/2+8:r.height/2+2;k[t]=Math.max(k[t],n),S[t]=Math.max(S[t],n),t>0&&(q[t]=q[t-1]+Math.max(ot,S[t-1]+k[t]+oe))}let Y=(t,r)=>y?r:t,z=(t,r)=>y?D?-t:t:r,E=(t,r)=>`${o(Y(t,r))},${o(z(t,r))}`,J=1/0,le=1/0,Z=-1/0,me=-1/0,O=(t,r,n,l)=>{t<J&&(J=t),r<le&&(le=r),n>Z&&(Z=n),l>me&&(me=l)},W="";if(Q)for(let t=0;t<F;t++){let r=ne[t],n=se(t),l=q[t],s=r.width+16,m=r.height+4,b=r.lines.length===0?-20:-20-(y?m:s),g=Y(b+(y?m:s)/2,l),L=z(b+(y?m:s)/2,l);O(Y(-20,l),z(-20,l),Y(-20,l),z(-20,l)),O(Y(V+ae,l),z(V+ae,l),Y(V+ae,l),z(V+ae,l)),W+=`<g class="pele-branch" data-id="${ke(a.lanes[t])}"><path class="pele-lane" d="M${E(-20,l)}L${E(V+ae,l)}" stroke="${n}" stroke-dasharray="2 4"/>`,r.lines.length>0&&(O(g-s/2,L-m/2,g+s/2,L+m/2),W+=`<rect x="${o(g-s/2)}" y="${o(L-m/2)}" width="${o(s)}" height="${o(m)}" rx="${We}" fill="${n}"/>`+te(r,g,L,' class="pele-label" fill="var(--_bg)"')),W+="</g>"}let ge=Array.from({length:F},()=>[]);for(let t of i)ge[t.lane].push(t.m);if(C)for(let t of ge)t.sort((r,n)=>r-n);let Me=(t,r,n)=>{let l=ge[t],s=0,m=l.length;for(;s<m;){let b=s+m>>1;l[b]<=r?s=b+1:m=b}return s<l.length&&l[s]<n},pe="",de="";for(let t of i){let{commit:r}=t,n=q[t.lane],l=t.m;for(let s=0;s<r.parents.length;s++){let m=f.get(r.parents[s]);if(m===void 0||m===t)continue;let b=q[m.lane],g=m.m;if(m.lane===t.lane){de+=`<path class="pele-edge" d="M${E(g,b)}L${E(l,n)}" stroke="${se(t.lane)}"/>`;continue}let L=s>0&&r.type===v.MERGE,K=s>0&&!L,u=`M${E(g,b)}`;if(l<=g){let d=(g+l)/2;u+=`C${E(d,b)} ${E(d,n)} ${E(l,n)}`}else if(!L&&!Me(t.lane,g,l)){let d=Math.min(ce,l-g);u+=`C${E(g+d/2,b)} ${E(g+d/2,n)} ${E(g+d,n)}L${E(l,n)}`}else{let d=m.lane<t.lane&&l-N[t.index]>g?l-N[t.index]:l,I=Math.min(ce,d-g),$=b;(!L||Me(m.lane,g,l))&&($=b>n?n+S[t.lane]+oe/2:n-k[t.lane]-oe/2,I=Math.min(ce,(d-g)/2),u+=`C${E(g+I/2,b)} ${E(g+I/2,$)} ${E(g+I,$)}`),u+=`L${E(d-I,$)}C${E(d-I/2,$)} ${E(d-I/2,n)} ${E(d,n)}`,d<l&&(u+=`L${E(l,n)}`)}pe+=`<path class="pele-edge${L?" pele-edge-merge":K?" pele-edge-cherry-pick":""}" d="${u}" stroke="${se(L?m.lane:t.lane)}"${K?' stroke-dasharray="4 3"':""}/>`}}let fe="";for(let t of i){let{commit:r,label:n,tags:l}=t,s=Y(t.m,q[t.lane]),m=z(t.m,q[t.lane]),b=r.customType??r.type;O(s-w-1,m-w-1,s+w+1,m+w+1);let g=r.type<v.MERGE&&r.message!==""?`<title>${ke(r.message)}</title>`:"";if(g+=ht(b,s,m,se(t.lane)),n!==void 0&&n.lines.length>0){let u=n.width,d=n.height,I=($,M)=>`<rect x="${o($-u/2-2)}" y="${o(M-d/2+2)}" width="${o(u+4)}" height="${o(d-4)}" rx="3" fill="var(--_bg)"/>`;if(T){let $=be*d/2,M=y?s-w-3-$:s+3,H=y?m:m+w+3+$,ue=be*u+$;O(M-ue,D?H-ue:H-$,M+$,D?H+$:H+ue),g+=`<g class="pele-commit-label" transform="rotate(${D?45:-45} ${o(M)} ${o(H)})">`+I(M-u/2,H)+te(n,M-u/2,H,"")+"</g>"}else{let $=y?s-w-6-u/2:s,M=y?m:m+w+6+d/2;O($-u/2,M-d/2,$+u/2,M+d/2),g+=`<g class="pele-commit-label">${I($,M)}${te(n,$,M,"")}</g>`}}let L=w+Ie;for(let u=y?0:l.length-1;u>=0&&u<l.length;u+=y?1:-1){let d=l[u],I=Le(d),$=d.height,M=y?s+L:s-I/2,H=y?m:m-L-$/2;L+=y?I+4:$+3,O(M,H-$/2,M+I,H+$/2),g+=`<g class="pele-tag"><path d="M${o(M)},${o(H)}L${o(M+re)},${o(H-$/2)}H${o(M+I)}V${o(H+$/2)}H${o(M+re)}Z" fill="var(--_s)" stroke="var(--_b)" stroke-linejoin="round"/><circle cx="${o(M+re)}" cy="${o(H)}" r="1.5" fill="var(--_b)"/>`+te(d,M+re+4+d.width/2,H,' fill="var(--_fg)"')+"</g>"}let K=r.type===v.MERGE&&b!==v.MERGE?" pele-commit-merge":"";fe+=`<g class="pele-commit pele-commit-${Ce[b]??Ce[0]}${K}" data-id="${ke(r.id)}">${g}</g>`}J>Z&&O(0,0,0,0);let ee=et(a.title,!1,x,R,4e3,1),Ee=ee.height>0?ee.height+16:0,we=Math.max(Z-J,ee.width),$e=Math.ceil(we+2*h),Re=Math.ceil(me-le+Ee+2*h),Be=h-J+(we-(Z-J))/2,Ae=h+Ee-le,Se=te(ee,$e/2,h+ee.height/2,' class="pele-title" font-weight="var(--_tw)"')+`<g transform="translate(${o(Be)},${o(Ae)})">`+(W?`<g class="pele-branches" fill="none" font-size="${X}">${W}</g>`:"")+(pe||de?`<g class="pele-edges" fill="none" stroke-width="2" stroke-linecap="round">${pe}${de}</g>`:"")+(fe?`<g class="pele-commits" font-size="${G}" fill="var(--_m)">${fe}</g>`:"")+"</g>";return{svg:tt("gitGraph",$e,Re,R,c,a,Se),width:$e,height:Re,links:[]}}var yt={type:"gitGraph",parse:(a,e,c)=>lt(st(a),e,c),render:mt};export{yt as gitGraph};
@@ -0,0 +1,8 @@
1
+ var ys=Object.defineProperty;var bs=(e,t,a)=>t in e?ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var Ct=(e,t,a)=>bs(e,typeof t!="symbol"?t+"":t,a);import{x as $s}from"./ELSXBIJH-DG0MW5dC.js";import{b as gs,d as mt,m as As,p as Cs}from"./FKCDD66M-BPFkyrwI.js";import{H as ms,r as $e,t as z,u as St,a as Ss,x as Ke}from"./lazy-CKqR1774.js";import{m as Es,c as Ts}from"./DKTLEL5E-B7ILCVTH.js";import{F as ws,S as Rs,D as xs,w as Is}from"./HWDLEDTA-C_JcdBMO.js";import{g as Et,_ as Pt,h as Tt,y as at,x as g,f as q,a as je,b as _s,$ as Os}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";var Gt="EOF USECASE ACTOR SYSTEM_BOUNDARY END DIRECTION TD TB BT LR RL NOTE FOR JSON CLASS_DEF CLASS STYLE INCLUDE EXTEND TRUE FALSE IDENTIFIER NUMBER AT COMMA COLON HASH_COLOR CSS_IDENTIFIER CSS_ESCAPED_COMMA DASH DOT PERCENT CSS_PUNCTUATION LABEL_PUNCTUATION LABEL_SYMBOL PLAIN_STRING MARKDOWN_STRING UNCLOSED_MARKDOWN_STRING COMMENT NEWLINE ACC_DESCR_BLOCK ACC_TITLE_LINE ACC_DESCR_LINE JSON_DECLARATION_START JSON_OBJECT_LITERAL UNCLOSED_JSON_OBJECT_LITERAL GENERALIZATION DEPENDENCY_ARROW STEREOTYPE_START STEREOTYPE_END STEREOTYPE_TEXT UNCLOSED_STEREOTYPE_TEXT CLASS_SEPARATOR FORWARD_SOLID BACKWARD_SOLID FORWARD_CIRCLE BACKWARD_CIRCLE FORWARD_CROSS BACKWARD_CROSS MARKERLESS_SOLID METADATA_START LBRACE RBRACE LBRACKET RBRACKET LPAREN RPAREN".split(" "),we=1,Ht=2,le=new Uint8Array(128);for(let e=48;e<=57;e++)le[e]=we;for(let e=65;e<=90;e++)le[e]=le[e+32]=we;le[95]=we;for(let e of"!#$&*+/=?^|~")le[e.charCodeAt(0)]=Ht;var wt=[0,12,5,14,3,9,2,2,2,2,2,4,3,4,8,5,5,7,6,4,5];function Le(e){return e<128&&(le[e]&we)!==0}function ze(e,t,a){for(let r=0;r<a.length;r++)if((e.charCodeAt(t+r)|32)!==a.charCodeAt(r))return!1;return!0}function ks(e,t,a){switch(a){case 97:return e.startsWith("actor",t)?2:0;case 115:return e.startsWith("systemBoundary",t)?3:e.startsWith("style",t)?16:0;case 101:return e.startsWith("end",t)?4:ze(e,t,"extend")?18:0;case 69:return ze(e,t,"extend")?18:0;case 100:return e.startsWith("direction",t)?5:0;case 84:return e.startsWith("TD",t)?6:e.startsWith("TB",t)?7:0;case 66:return e.startsWith("BT",t)?8:0;case 76:return e.startsWith("LR",t)?9:0;case 82:return e.startsWith("RL",t)?10:0;case 110:return e.startsWith("note",t)?11:0;case 102:return e.startsWith("for",t)?12:e.startsWith("false",t)?20:0;case 106:return e.startsWith("json",t)?13:0;case 99:return e.startsWith("classDef",t)?14:e.startsWith("class",t)?15:0;case 105:case 73:return ze(e,t,"include")?17:0;case 116:return e.startsWith("true",t)?19:0;case 117:return e.startsWith("usecase-beta",t)?1:0;default:return 0}}function Re(e,t){let a=1,r=0;for(let n=0;n<t;n++){let l=e.charCodeAt(n);l!==10&&l!==13||(l===13&&n+1<t&&e.charCodeAt(n+1)===10&&n++,a++,r=n+1)}return[a,t-r+1]}function Ns(e,t,a){let[r,n]=Re(e,t);return`line ${r}, column ${n} [${t},${a})`}function Kt(e,t,a){for(let r=t+1;r<e.length;r++){let n=e.charCodeAt(r);if(n===a)return r+1;if(n===10||n===13)return-1}return-1}function vs(e,t){let a=e.charCodeAt(t);return a!==34&&a!==39?!0:a===34&&e.charCodeAt(t+1)===96||Kt(e,t,a)!==-1}function Rt(e,t,a){let[r,n]=Re(e,t);return new Ke(`Error lexing usecase diagram: unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${a} characters. at line ${r}, column ${n} [${t},${t+a})`,"syntax",{type:"usecase",line:r,column:n})}function Ls(e){let t=[],a=[],r=[],n=e.length,l=0,u=!0,y=!1;for(;l<n;){let h=e.charCodeAt(l);if(h===32||h===9){l++;continue}let f,d=l+1,w=!1;if(h<128&&(le[h]&we)!==0){if(f=0,h===97&&u&&e.startsWith("acc",l)){let i=e.startsWith("Descr",l+3);if(i||e.startsWith("Title",l+3)){let A=l+8;for(;$e(e.charCodeAt(A));)A++;let k=e.charCodeAt(A);if(k===58)for(f=i?42:41,d=A+1;d<n&&e.charCodeAt(d)!==10&&e.charCodeAt(d)!==13;)d++;else if(k===123&&i&&!y){let _=e.indexOf("}",A+1);_===-1?y=!0:(f=40,d=_+1)}}}else if(h===106&&e.startsWith("json",l)&&$e(e.charCodeAt(l+4))){let i=l+5;for(;$e(e.charCodeAt(i));)i++;let A=i;for(;Le(e.charCodeAt(i));)i++;if(i>A){for(;$e(e.charCodeAt(i));)i++;if(e.charCodeAt(i)===64){for(i++;$e(e.charCodeAt(i));)i++;if(e.charCodeAt(i)===123){t.push(43),a.push(l),r.push(i),l=i;let k=0,_=!1,v=!1,R=i;for(;R<n;R++){let W=e.charCodeAt(R);if(_)v?v=!1:W===92?v=!0:W===34&&(_=!1);else if(W===34)_=!0;else if(W===123)k++;else if(W===125&&--k===0)break}t.push(R<n?44:45),a.push(i),l=R<n?R+1:n,r.push(l),u=!1;continue}}}}if(f===0){for(;d<n&&Le(e.charCodeAt(d));)d++;let i=ks(e,l,h);if(i!==0)i===1||d-l===wt[i]?(f=i,d=l+wt[i]):f=21;else if((h===111||h===120)&&e.charCodeAt(l+1)===45&&e.charCodeAt(l+2)===45)f=h===111?56:58,d=l+3;else if(z(h)){let A=l+1;for(;z(e.charCodeAt(A));)A++;if(e.charCodeAt(A)===46&&z(e.charCodeAt(A+1))){for(f=22,d=A+2;z(e.charCodeAt(d));)d++;for(;St(e.charCodeAt(d));)d++}else f=21}else for(f=21;e.charCodeAt(d)===45&&Le(e.charCodeAt(d+1));)for(f=27,d+=2;Le(e.charCodeAt(d));)d++}}else if(h===10)f=39,w=!0;else if(h===13)f=39,w=!0,e.charCodeAt(d)===10&&d++;else if(h===34||h===39){if(h===34&&e.charCodeAt(l+1)===96){let i=e.indexOf('`"',l+2);f=i===-1?37:36,d=i===-1?n:i+2}else if(f=35,d=Kt(e,l,h),d===-1){let i=l+1;for(;i<n&&!vs(e,i);)i++;throw Rt(e,l,i-l)}}else if(h===37)if(u&&e.charCodeAt(d)===37)for(f=38;d<n&&e.charCodeAt(d)!==10&&e.charCodeAt(d)!==13;)d++;else f=31;else if(h===45)if(e.charCodeAt(d)!==45)f=29;else{for(;e.charCodeAt(d)===45;)d++;let i=e.charCodeAt(d),A=d-l===2;A&&i===124&&e.charCodeAt(d+1)===62?(f=46,d+=2):i===62?(f=53,d++):A&&(i===111||i===120)?(f=i===111?55:57,d++):f=59}else if(h===46){let i=e.charCodeAt(d);if(i===46&&e.charCodeAt(d+1)===62)f=47,d+=2;else if(z(i)){for(f=22;z(e.charCodeAt(d));)d++;for(;St(e.charCodeAt(d));)d++}else f=30}else if(h===60)if(e.charCodeAt(d)===60){if(t.push(48),a.push(l),r.push(l+2),u=!1,l+=2,l>=n)break;if(e.charCodeAt(l)===62&&e.charCodeAt(l+1)===62)f=49,d=l+2;else{let i=l,A=!1;for(;i<n;i++){let k=e.charCodeAt(i);if(k===10||k===13)break;if(k===62&&e.charCodeAt(i+1)===62){A=!0;break}}if(A&&e.slice(l,i).trim()!=="")t.push(50),a.push(l),r.push(i),f=49,l=i,d=i+2;else{for(;i<n&&e.charCodeAt(i)!==10&&e.charCodeAt(i)!==13;)i++;if(i===l){for(;i<n&&(e.charCodeAt(i)===10||e.charCodeAt(i)===13);)i++;throw Rt(e,l,i-l)}f=51,d=i}}}else if(e.charCodeAt(d)===45&&e.charCodeAt(d+1)===45)for(f=54,d+=2;e.charCodeAt(d)===45;)d++;else f=33;else if(h===58)e.charCodeAt(d)===58&&e.charCodeAt(d+1)===58?(f=52,d+=2):f=25;else if(h===64)e.charCodeAt(d)===123?(f=60,d++):f=23;else if(h===123)f=61;else if(h===125)f=62;else if(h===91)f=63;else if(h===93)f=64;else if(h===40)f=65;else if(h===41)f=66;else if(h===44)f=24;else if(h===35){for(;Ss(e.charCodeAt(d));)d++;f=d>l+1?26:32}else if(h===92)e.charCodeAt(d)===44?(f=28,d++):f=33;else if(h<127&&h>32)f=(le[h]&Ht)!==0?32:33;else for(f=34;d<n;){let i=e.charCodeAt(d);if(i>=32&&i<127||i===9||i===10||i===13)break;d++}t.push(f),a.push(l),r.push(d),l=d,u=w}for(let h=0;h<3;h++)t.push(0),a.push(n),r.push(n);return{types:t,starts:a,ends:r}}function Ds(){return{type:"usecase",actors:new Map,useCases:new Map,systemBoundaries:new Map,relationships:[],notes:new Map,jsonNodes:new Map,classDefs:new Map,direction:"LR",title:void 0,accTitle:"",accDescr:"",accDescription:"",source:"",headerSpan:[0,0],statements:[]}}function Ms(){return{elements:[],boundaries:[],jsons:[],relationships:[],notes:[],metadata:[],classes:[],styles:[],classDefs:[],direction:void 0,accTitle:"",accDescription:""}}function Ve(e,t){if(t.length===0)return;let a=new Set(e);for(let r of t)a.has(r)||(a.add(r),e.push(r))}function Ws(e){let t=new Set(["actor","usecase","boundary","edge"]);for(let{key:a,value:r}of e)if(a==="icon")t.clear(),t.add("actor");else if(a==="animate"||a==="animation")t.clear(),t.add("edge");else if(a==="type")t.clear(),r==="rect"||r==="package"?t.add("boundary"):(r==="normal"||r==="hollow"||r==="awesome")&&t.add("actor");else if(a==="business")t.delete("boundary"),t.delete("edge");else return;return t.size===1?[...t][0]:void 0}function Bs(e,t,a,r,n){var D;let l=Ds(),{actors:u,useCases:y,systemBoundaries:h}=l,f=new Map,d=new Map,w=new Map,i=new Map,A=new Map,k=s=>Ns(e,s[0],s[1]),_=(s,c)=>{let[o,b]=Re(e,c[0]);return new Ke(s,"semantic",{type:"usecase",line:o,column:b})},v=(s,c)=>{throw _(`${s} at ${k(c)}`,c)},R=(s,c,o,b,m)=>{let E=N=>N===void 0?"":` (label "${N}")`;throw _(`${s} at ${k(c)}${E(b)}; previous declaration at ${k(o)}${E(m)}`,c)},W=(s,c,o)=>v(`Metadata property '${o.key}' is invalid for ${c} '${s}'`,o.keySpan),Y=(s,c)=>{let o=A.get(s);(o===void 0||c<o)&&A.set(s,c)},te=s=>[...s].sort((c,o)=>(A.get(c.id)??0)-(A.get(o.id)??0)),pe=(s,c)=>{f.set(s.id,{kind:c,span:s.span,generated:s.generated,label:s.label.text})},he=(s,c)=>{let o=f.get(s.id);if(!o)return;let b=s.generated?s.label.text:void 0,m=o.generated?o.label:void 0;o.kind!==c&&R(`ID '${s.id}' is declared as both ${o.kind} and ${c}`,s.span,o.span,b,m),(o.generated||s.generated)&&R(`Generated ID '${s.id}' collides with another declaration`,s.span,o.span,b,m)},xe=(s,c,o)=>{let b=f.get(s);b&&R(`ID '${s}' is declared more than once (${b.kind} and ${c})`,o,b.span,void 0,b.generated?b.label:void 0),f.set(s,{kind:c,span:o,generated:!1})},Xe=(s,c,o)=>{let{key:b,value:m}=c,E=N=>{!o&&N!==void 0&&N!==m&&R(`Actor '${s.id}' has conflicting ${b} metadata`,c.keySpan,s.span)};b==="type"&&(m==="normal"||m==="hollow"||m==="awesome")?(E(s.actorType),s.actorType=m):b==="icon"&&typeof m=="string"?(E(s.icon),s.icon=m):b==="business"&&typeof m=="boolean"?(E(s.business),s.business=m):W(s.id,"actor",c)},ne=(s,c,o)=>{for(let b of c??[])s.kind==="actor"?Xe(s,b,o):b.key==="business"&&typeof b.value=="boolean"?(!o&&s.business!==void 0&&s.business!==b.value&&R(`Use case '${s.id}' has conflicting business metadata`,b.keySpan,s.span),s.business=b.value):W(s.id,"usecase",b)},de=s=>{var o,b,m;let c;if(s.kind==="actor"){y.delete(s.id);let E={id:s.id,label:s.label.text,labelType:s.label.type,business:s.business??!1,classes:[...s.classes],type:s.icon?"icon":s.actorType??"normal",styles:((o=u.get(s.id))==null?void 0:o.styles)??[]};s.icon&&(E.icon=s.icon),u.set(s.id,E),c=E}else u.delete(s.id),c={id:s.id,label:s.label.text,labelType:s.label.type,business:s.business??!1,classes:[...s.classes],shape:s.shape??"ellipse",styles:((b=y.get(s.id))==null?void 0:b.styles)??[]},y.set(s.id,c);s.stereotype&&(c.stereotype=s.stereotype),(m=s.parent)!=null&&m.id&&(c.parentId=s.parent.id)},Ie=s=>{var b,m;he(s,s.kind);let c=(b=s.parent)!=null&&b.id?s.parent:void 0,o=d.get(s.id);if(!o){let E={kind:s.kind,id:s.id,label:s.label,span:s.span,generated:s.generated,classes:[...s.classes],parent:c,shape:s.shape,stereotype:s.stereotype,stereotypeSpan:s.stereotype?s.span:void 0};ne(E,s.metadata,!1),d.set(s.id,E),pe(s,s.kind);return}(o.label.text!==s.label.text||o.label.type!==s.label.type)&&R(`ID '${s.id}' has conflicting labels`,s.span,o.span),s.shape&&o.shape&&s.shape!==o.shape&&R(`Use case '${s.id}' has conflicting shapes`,s.span,o.span),c&&((m=o.parent)!=null&&m.id)&&c.id!==o.parent.id&&R(`Element '${s.id}' belongs to more than one system boundary`,c.span,o.parent.span),s.stereotype&&o.stereotype&&s.stereotype!==o.stereotype&&R(`Element '${s.id}' has conflicting stereotypes`,s.span,o.stereotypeSpan??o.span),o.shape??(o.shape=s.shape),o.parent??(o.parent=s.parent),o.stereotype??(o.stereotype=s.stereotype),o.stereotypeSpan??(o.stereotypeSpan=s.stereotype?s.span:void 0),Ve(o.classes,s.classes),ne(o,s.metadata,!1)},ye=s=>{he(s,"boundary");let c=w.get(s.id);if(c){(c.label.text!==s.label.text||c.label.type!==s.label.type)&&R(`Boundary '${s.id}' has conflicting titles`,s.span,c.span),Ve(c.classes,s.classes);return}w.set(s.id,{...s,classes:[...s.classes],members:[]}),pe(s,"boundary")},be=s=>{s.classed&&!s.declares&&v(`Relationship endpoint '${s.id}' uses ::: without declaring the node`,s.span);let c=f.get(s.id);return c?c.kind:(d.set(s.id,{...s,kind:"usecase",shape:"ellipse",classes:[]}),pe(s,"usecase"),Y(s.id,s.span[0]),"usecase")},ce=(s,c)=>{var b;let o=(b=f.get(s))==null?void 0:b.kind;return(o==="actor"?u.get(s):o==="usecase"?y.get(s):o==="boundary"?h.get(s):o==="json"?l.jsonNodes.get(s):i.get(s))??v(`Class/style target '${s}' is unresolved or anonymous`,c)},se=[];for(let{source:s,target:c}of t.relationships)Y(s.id,s.span[0]),Y(c.id,c.span[0]);for(let s of t.elements)Y(s.id,s.span[0]),se.push({offset:s.span[0],run:()=>Ie(s)});for(let s of t.boundaries)Y(s.id,s.span[0]),se.push({offset:s.span[0],run:()=>ye(s)});for(let s of t.jsons)Y(s.id,s.span[0]),se.push({offset:s.span[0],run:()=>xe(s.id,"json",s.span)});for(let{id:s,idSpan:c}of t.relationships)s&&c&&se.push({offset:c[0],run:()=>xe(s,"edge",c)});se.sort((s,c)=>s.offset-c.offset);for(let s of se)s.run();for(let s of te(d.values()))de(s);for(let s of te(w.values()))h.set(s.id,{id:s.id,label:s.label.text,labelType:s.label.type,type:"rect",members:[],classes:[],styles:[]});for(let s of te(t.jsons))l.jsonNodes.set(s.id,{id:s.id,value:s.value,propertyOrder:s.propertyOrder,classes:[...s.classes],styles:[]});let _e=0;for(let s of t.relationships){let{source:c,target:o,type:b}=s,m=be(c),E=be(o),N=O=>O==="actor"||O==="usecase"||O==="json";N(m)||R(`Relationship source '${c.id}' cannot be ${m}`,c.span,f.get(c.id).span),N(E)||R(`Relationship target '${o.id}' cannot be ${E}`,o.span,f.get(o.id).span),(b==="include"||b==="extend")&&(m!=="usecase"||E!=="usecase")&&v(`${b} relationship requires use-case endpoints`,s.span),b==="generalization"&&(m==="json"||m!==E)&&v("Generalization requires actor-to-actor or use-case-to-use-case endpoints",s.span),b==="association"&&(m==="json"||E==="json")&&s.arrowType>2&&v(`JSON relationship '${c.id}' to '${o.id}' permits only point, reversed-point, or markerless solid association`,s.span);let L=s.id??`edge-${_e++}`,x={id:L,explicitId:!!s.id,source:c.id,target:o.id,type:b,arrowType:s.arrowType,minlen:s.minlen,classes:[],styles:[],animate:!1};s.label&&(x.label=s.label.text,x.labelType=s.label.type),l.relationships.push(x),i.set(L,x)}let S=new Map(u),$=new Map(y);u.clear(),y.clear();for(let s of te(d.values())){let c=S.get(s.id),o=$.get(s.id);c?u.set(s.id,c):o?y.set(s.id,o):de(s)}for(let{target:s,span:c,properties:o,statement:b}of t.metadata){let m=f.get(s);if(!m){let x=Ws(o);return v(`Metadata target '${s}' is unresolved${x?` (metadata implies ${x})`:""}`,c)}let E=m.kind;E==="actor"||E==="usecase"?ne(d.get(s),o,!0):E==="edge"&&(b.kind="edgeMetadata",b.edges=[{id:s,span:b.span,idSpan:c,metadata:b.metadata}],delete b.nodes);let N=w.get(s),L=i.get(s);for(let x of E==="actor"||E==="usecase"?[]:o){let{key:O,value:I}=x;E==="boundary"&&N&&O==="type"&&(I==="rect"||I==="package")?N.type=I:E==="edge"&&L&&O==="animate"&&typeof I=="boolean"?L.animate=I:E==="edge"&&L&&O==="animation"&&(I==="fast"||I==="slow")?(L.animation=I,L.animate=!0):W(s,E,x)}}for(let s of l.relationships)s.animation&&(s.animate=!0);for(let s of d.values())s.kind==="actor"?(s.icon&&s.actorType&&s.actorType!=="normal"&&v(`Actor '${s.id}' cannot combine icon with type '${s.actorType}'`,s.span),s.business&&(s.icon||s.actorType==="awesome")&&v(`Business actor '${s.id}' must use normal or hollow geometry`,s.span)):s.shape==="rect"&&s.business&&v(`Rectangular use case '${s.id}' cannot be a business use case`,s.span),de(s);for(let s of[...t.elements].sort((c,o)=>c.span[0]-o.span[0])){if(!((D=s.parent)!=null&&D.id))continue;let c=w.get(s.parent.id).members;c.includes(s.id)||c.push(s.id)}for(let s of w.values()){let c=h.get(s.id);c.type=s.type??"rect",c.members=s.members,c.classes=[...s.classes]}let T=0;for(let s of t.notes){let c=f.get(s.target);if(!c)return v(`Note target '${s.target}' is unresolved`,s.span);c.kind!=="actor"&&c.kind!=="usecase"&&R(`Note target '${s.target}' must be an actor or use case, not ${c.kind}`,s.span,c.span);let o=`note-${T++}`;l.notes.set(o,{id:o,target:s.target,label:s.label.text,labelType:s.label.type})}for(let s of t.classDefs)for(let c of s.ids)l.classDefs.set(c,{id:c,styles:[...s.styles]});for(let s of t.classes)for(let c of s.targets)Ve(ce(c.id,c.span).classes,s.classes);for(let s of t.styles)ce(s.target,s.span).styles.push(...s.styles);return l.direction=t.direction??l.direction,l.title=n,l.accTitle=t.accTitle,l.accDescription=t.accDescription,l.accDescr=t.accDescription.replace(/\n\s+/g,`
2
+ `),l.source=e,l.headerSpan=a,l.statements=r,l}var K=class extends Error{constructor(t){super("Invalid JSON token");Ct(this,"offset");this.offset=t}};function xt(e){let t=new Map,a=[],r=[],n=e.length,l=0,u="",y=0,h=()=>{for(;l<n;){let i=e.charCodeAt(l);if(i!==32&&i!==9&&i!==10&&i!==13)return;l++}},f=i=>{l++;let A="";for(;l<n;){let k=l,_=e[l++];if(_==='"')return A;if(_.charCodeAt(0)<32)throw new K(k);if(_!=="\\"){i&&(A+=_);continue}let v=l,R=e[l++],W;if(R==='"'||R==="\\"||R==="/")W=R;else if(R==="b")W="\b";else if(R==="f")W="\f";else if(R==="n")W=`
3
+ `;else if(R==="r")W="\r";else if(R==="t")W=" ";else if(R==="u"){let Y=e.slice(l,l+4);if(!/^[\dA-Fa-f]{4}$/.test(Y))throw new K(l);W=String.fromCharCode(parseInt(Y,16)),l+=4}else throw new K(v);i&&(A+=W)}throw new K(l)},d=i=>{for(let A=0;A<i.length;A++)if(e[l+A]!==i[A])throw new K(l+A);l+=i.length},w=()=>{if(e.charCodeAt(l)===45&&l++,e.charCodeAt(l)===48)l++;else if(z(e.charCodeAt(l)))for(;z(e.charCodeAt(l));)l++;else throw new K(l);if(e.charCodeAt(l)===46){if(l++,!z(e.charCodeAt(l)))throw new K(l);for(;z(e.charCodeAt(l));)l++}if((e.charCodeAt(l)|32)===101){if(l++,(e.charCodeAt(l)===43||e.charCodeAt(l)===45)&&l++,!z(e.charCodeAt(l)))throw new K(l);for(;z(e.charCodeAt(l));)l++}};for(h();;)if(y===0){h();let i=e.charCodeAt(l);if(y=2,i===123){l++;let A=[];t.set(u,A),a.push(u),h(),e.charCodeAt(l)===125?l++:(r.push({object:!0,pointer:u,keys:A,ranges:new Map,key:"",from:0,index:0}),y=1)}else if(i===91)l++,h(),e.charCodeAt(l)===93?l++:(r.push({object:!1,pointer:u,keys:[],ranges:new Map,key:"",from:0,index:0}),u+="/0",y=0);else if(i===34)f(!1);else if(i===116)d("true");else if(i===102)d("false");else if(i===110)d("null");else if(i===45||z(i))w();else throw new K(l)}else if(y===1){let i=r[r.length-1];if(e.charCodeAt(l)!==34)throw new K(l);let A=f(!0),k=i.ranges.get(A);if(k===void 0)i.keys.push(A);else for(let _=k[0];_<k[1];_++)t.delete(a[_]);if(i.key=A,i.from=a.length,h(),e.charCodeAt(l)!==58)throw new K(l);l++,u=`${i.pointer}/${A.replaceAll("~","~0").replaceAll("/","~1")}`,y=0}else{let i=r[r.length-1];if(i===void 0)break;i.object?i.ranges.set(i.key,[i.from,a.length]):i.index++,h();let A=e.charCodeAt(l);if(A===(i.object?125:93))l++,r.pop();else{if(A!==44)throw new K(l);l++,h(),u=`${i.pointer}/${i.index}`,y=i.object?1:0}}if(h(),l!==n)throw new K(l);return t}function lt(e,t,a,r){let n=Math.min(Math.max(t,0),e.length);for(let l=0;l<n;l++){let u=e.charCodeAt(l);u===13?(a++,r=1):u===10?(l===0||e.charCodeAt(l-1)!==13)&&(a++,r=1):r++}return[a,r]}function js(e,t,a,r){let n=/\bposition (\d+)\b/.exec(e);if(n)return lt(t,parseInt(n[1],10),a,r);let l=/\bline (\d+) column (\d+)\b/.exec(e);if(l){let u=parseInt(l[1],10),y=parseInt(l[2],10);return[a+u-1,u===1?r+y-1:y]}if(/unexpected end|end of json input/i.test(e))return lt(t,t.length,a,r)}function It(e,t,a){return new Ke(`${e} (line ${t}, column ${a})`,"syntax",{type:"usecase",line:t,column:a})}function Fs(e,t){let a;try{a=JSON.parse(e)}catch(r){let n=r instanceof Error?r.message:String(r),[l,u]=t(),y=js(n,e,l,u);if(!y){let h=0;try{xt(e)}catch(f){f instanceof K&&(h=f.offset)}y=lt(e,h,l,u)}throw It(`Invalid JSON: ${n}`,y[0],y[1])}if(typeof a!="object"||a===null||Array.isArray(a)){let[r,n]=t();throw It("JSON value must have an object root",r,n)}return{value:a,propertyOrder:xt(e)}}var Ut=1,ot=2,nt=4,Yt=8,Jt=16,Xt=32,zt=64,Ue="DEPENDENCY_ARROW|GENERALIZATION|FORWARD_SOLID|BACKWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|BACKWARD_CIRCLE|FORWARD_CROSS|BACKWARD_CROSS",Ye="IDENTIFIER|PLAIN_STRING|MARKDOWN_STRING",Ps="PLAIN_STRING|MARKDOWN_STRING|LABEL_TEXT",Vt="ACC_TITLE_LINE|ACC_DESCR_LINE|ACC_DESCR_BLOCK|DIRECTION|ACTOR|SYSTEM_BOUNDARY|NOTE|JSON_DECLARATION_START|CLASS_DEF|CLASS|STYLE",Zt="WORD|PLAIN_STRING|NUMBER|HASH_COLOR|CSS_IDENTIFIER|CSS_ESCAPED_COMMA|DASH|DOT|PERCENT|CSS_PUNCTUATION|COLON|LPAREN|RPAREN|LBRACKET|RBRACKET|LBRACE|RBRACE|AT|MARKERLESS_SOLID",ee=new Uint8Array(67);function oe(e,t){for(let a of e.split("|"))if(a==="WORD")for(let r=1;r<=21;r++)ee[r]|=t;else ee[Gt.indexOf(a)]|=t}oe(`NEWLINE|COMMENT|${Vt}|${Ye}`,Ut);oe(`IDENTIFIER|${Ue}`,ot);oe(Zt,nt);oe(`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Ue}|NEWLINE|EOF`,Yt);oe(`NEWLINE|COMMENT|ACTOR|${Ye}`,Jt);oe("FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS",Xt);oe("NEWLINE|IDENTIFIER|PLAIN_STRING|RBRACE",zt);var Gs=new Set(["allowmixing","newpage","package","rectangle","skinparam"]),U="",C=[],P=[],H=[],p=0,qt=0,F,Ge,Fe=[],Qt=0,es=0;function B(e){return U.slice(P[e],H[e])}function V(e){return[P[e],H[e]]}function Je(e){let[t,a]=Re(U,P[p]);throw new Ke(`Error parsing usecase diagram: ${e} at line ${t}, column ${a} [${P[p]},${H[p]})`,"syntax",{type:"usecase",line:t,column:a})}function ts(e){Je(`Expecting token of type --> ${e} <-- but found --> '${B(p)}' <--`)}function j(e){return C[p]!==e&&ts(Gt[e]),p++}function Z(e){let t=e.split("|").map((a,r)=>` ${r+1}. [${a}]`);Je(`Expecting: one of these possible Token sequences:
4
+ ${t.join(`
5
+ `)}
6
+ but found: '${B(p)}'`)}function _t(){let e=Ye.split("|"),t=e.flatMap(n=>["NEWLINE","IDENTIFIER","PLAIN_STRING","RBRACE"].map(l=>`${n}, METADATA_START, ${l}`)),a=`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Ue}|NEWLINE|EOF`.split("|"),r=e.flatMap((n,l)=>(l===0?["LPAREN","LBRACKET",...a]:a).map(u=>`${n}, ${u}`));return[Vt,...t,...r,...t].join("|")}function Ot(e){return e>=1&&e<=21}function kt(e){return e>=1&&e<=34}function ie(){qt=H[p-1],C[p]===39?p++:C[p]!==0&&Z("NEWLINE|EOF")}function Te(e){let t=C[e]===36?2:C[e]===35?1:0;return[P[e]+t,H[e]-t]}function rt(e){let t=Te(e);return{text:U.slice(t[0],t[1]),type:C[e]===36?"markdown":"text",span:t}}function ss(e){return e.replace(/\W/g,"_")}function me(){let e=C[p];if(e===35||e===36)return rt(p++);kt(e)||Z(Ps);let t=p;for(;kt(C[p]);)p++;let a=[P[t],H[p-1]];return{text:U.slice(a[0],a[1]),type:"text",span:a}}function re(e){return e===21||e===35}function Nt(){let e=p;re(C[p])||Z("IDENTIFIER|PLAIN_STRING"),p++,j(25);let t=p,a=C[p];!re(a)&&a!==19&&a!==20&&Z("IDENTIFIER|PLAIN_STRING|TRUE|FALSE"),p++;let r=Te(e),n=Te(t);return{key:U.slice(r[0],r[1]),value:a===19?!0:a===20?!1:U.slice(n[0],n[1]),span:[P[e],H[t]],keySpan:r,valueSpan:n}}function Hs(){let e=C[p],t=C[p+1],a=C[p+2];return e===24?re(t)||t===39&&(a===39||re(a)):e!==39?!1:t===24||re(t)||t===39&&(a===39||a===24||re(a))}function pt(){j(60);let e=[];for(;C[p]===39;)p++;if(re(C[p])){for(e.push(Nt());Hs();){if(C[p]===24)p++;else{for(;C[p]===39;)p++;C[p]===24&&p++}for(;C[p]===39;)p++;e.push(Nt())}for(C[p]===24&&p++;C[p]===39;)p++}return j(62),e}function dt(e){return e.map(({key:t,span:a,keySpan:r,valueSpan:n})=>({key:t,span:a,keySpan:r,valueSpan:n}))}function ct(e,t){do{p++;let a=j(21);e.push(B(a)),t.push(V(a))}while(C[p]===24)}function as(e){let t=p,a=C[p],r={id:"",label:void 0,span:Te(t),generated:a!==21,classes:[],classSpans:[],explicit:!1,nodeSpan:[0,0]};if(a===21){p++,r.id=B(t);let n=C[p];n===65||e&&n===63?(p++,r.label=me(),j(n===65?66:64),r.shape=n===65?"ellipse":"rect"):r.label=rt(t)}else a===35||a===36?(p++,r.label=rt(t),r.id=ss(r.label.text)):Z(Ye);return r}function He(e){let t=p,a=as(!e);if(e&&(a.shape=void 0),C[p]===60&&(a.metadata=pt()),C[p]===48){p++;let r=j(50);j(49),a.stereotype=B(r).trim(),a.stereotypeSpan=V(r)}return C[p]===52&&ct(a.classes,a.classSpans),a.explicit=!!(a.shape||a.metadata||a.stereotype),a.nodeSpan=[P[t],H[p-1]],a}function ut(e,t){return{id:e.id,kind:t,label:e.label,span:e.span,generated:e.generated,parent:Ge,shape:e.shape,metadata:e.metadata,stereotype:e.stereotype,classes:e.classes}}function vt(e,t){return{id:e.id,label:e.label,span:e.span,generated:e.generated,declares:t,classed:e.classes.length>0}}function ft(e,t){let a={id:e.id,span:e.nodeSpan,idSpan:e.span,labelSpan:e.label.span};return t&&(a.defines=!0),e.stereotypeSpan&&(a.stereotypeSpan=e.stereotypeSpan),e.metadata&&(a.metadata=dt(e.metadata)),e.classSpans.length>0&&(a.classSpans=e.classSpans),a}function Ze(e){if(C[p]<1||C[p]>36)return!1;for(let t=p+1;;t++){let a=C[t];if(a===59||(ee[a]&e)!==0)return!0;if(a<1||a>36)return!1}}function ge(e){let t=H[e]-P[e]-(C[e]===59?0:1);return Math.max(1,t-1)}function ls(){let e=p,t={type:"association",arrowType:0,minlen:1,target:void 0,span:[0,0]};C[p]===21&&C[p+1]===23&&(t.explicitId=B(p),t.explicitIdSpan=V(p),p+=2);let a=p,r=C[p++];if(r===47)j(25),C[p]!==17&&C[p]!==18&&Z("INCLUDE|EXTEND"),t.type=C[p]===17?"include":"extend",t.label={text:t.type,type:"text",span:V(p)},p++;else if(r===46)t.type="generalization";else if(r===53)t.minlen=ge(a);else if(r===54)t.arrowType=1,H[a]-P[a]===3&&Ze(0)?(t.label=me(),t.minlen=ge(j(59))):t.minlen=ge(a);else if(r===59)if(t.arrowType=2,H[a]-P[a]===2&&Ze(Xt)){t.label=me();let n=C[p];n===53?t.arrowType=0:n===55?t.arrowType=3:n===57?t.arrowType=4:n!==59&&Z("FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS"),(t.arrowType===0||t.arrowType===2)&&(t.minlen=ge(p)),p++}else t.minlen=ge(a);else r===55?t.arrowType=3:r===57?t.arrowType=4:r===56||r===58?(t.arrowType=r===56?5:6,Ze(0)&&(t.label=me(),j(59))):(p--,Z(Ue));return t.target=He(!1),t.span=[P[e],H[p-1]],t}function Q(e){return{kind:e,span:[0,0]}}function ns(e,t,a,r){let n=a.target;n.explicit&&F.elements.push(ut(n,"usecase")),F.relationships.push({source:vt(e,t),target:vt(n,n.explicit),span:a.span,id:a.explicitId,idSpan:a.explicitIdSpan,type:a.type,arrowType:a.arrowType,label:a.label,minlen:a.minlen}),r.push(ft(n,n.explicit));let l=Q("edge");return l.nodes=r,l.edges=[{id:a.explicitId??`edge-${Qt++}`,span:l.span}],a.explicitIdSpan&&(l.edges[0].idSpan=a.explicitIdSpan),a.label&&(l.edges[0].labelSpan=a.label.span),l}function rs(e){let t=Q("node");return t.nodes=e,t}function is(e){p++;let t=[He(!0)],a;if(C[p]===24)do p++,t.push(He(!0));while(C[p]===24);else e&&(ee[C[p]]&ot)!==0&&(a=ls());ie();for(let n of t)F.elements.push(ut(n,"actor"));let r=t.map(n=>ft(n,!0));return a?ns(t[0],!0,a,r):rs(r)}function os(e){let t=He(!1),a=e&&(ee[C[p]]&ot)!==0?ls():void 0;ie(),a||(t.explicit=!0,t.shape??(t.shape="ellipse")),t.explicit&&F.elements.push(ut(t,"usecase"));let r=[ft(t,t.explicit)];return a?ns(t,t.explicit,a,r):rs(r)}function Ks(){p++;let e=as(!0),t={id:e.id,label:e.label,span:e.span,generated:e.generated,classes:e.classes},a=C[p]===60?pt():void 0;C[p]===52&&ct(e.classes,e.classSpans),ie(),F.boundaries.push(t),Ge=t;let r=[];for(;(ee[C[p]]&Jt)!==0;)r.push(ps(!1));Ge=void 0;let n=j(4);ie();let l=Q("group");return l.group=t.id,l.idSpan=t.span,l.titleSpan=t.label.span,l.endSpan=V(n),l.classSpans=e.classSpans,r.length>0&&(l.children=r),a&&(l.metadata=dt(a),F.metadata.push({target:t.id,span:t.span,properties:a,statement:l})),l}function Lt(){let e=p,t=C[p];for(Ot(t)||t===27?p++:t===59?(p++,Ot(C[p])||ts("WORD"),p++):Z("WORD|CSS_IDENTIFIER|MARKERLESS_SOLID"),j(25),(ee[C[p]]&nt)===0&&Je(`Expecting: expecting at least one iteration which starts with one of these possible Token sequences::
7
+ <[${Zt.replaceAll("|","] ,[")}]>
8
+ but found: '${B(p)}'`);(ee[C[p]]&nt)!==0;)p++;return U.slice(P[e],H[p-1]).replaceAll("\\,",",")}function Dt(){let e=[Lt()];for(;C[p]===24;)p++,e.push(Lt());return e}function qe(){let e=[j(21)];for(;C[p]===24;)p++,e.push(j(21));return e}function De(e){let t=Te(e);return{id:B(e),span:t,idSpan:t}}function Us(){let e=p,t=C[p],a;if(t===41||t===42||t===40){p++;let r=B(e);t===40?F.accDescription=r.slice(r.indexOf("{")+1,r.lastIndexOf("}")).trim():t===42?F.accDescription=r.slice(r.indexOf(":")+1).trim():F.accTitle=r.slice(r.indexOf(":")+1).trim(),a=Q(t===41?"accTitle":"accDescr")}else if(t===5){p++;let r=C[p];(r<6||r>10)&&Z("TD|TB|BT|LR|RL"),F.direction=r===6?"TB":B(p),p++,a=Q("direction")}else{if(t===2)return is(!0);if(t===3)return Ks();if(t===11){p++,j(12);let r=j(21),n=me();F.notes.push({target:B(r),span:V(r),label:n}),a=Q("note"),a.ref=`note-${es++}`,a.refSpan=n.span,a.nodes=[De(r)]}else if(t===43){p++;let r=j(44),n=[],l=[];C[p]===52&&ct(n,l);let u=P[e]+4;for(;U.charCodeAt(u)===32||U.charCodeAt(u)===9;)u++;let y=u;for(;/\w/.test(U.charAt(y));)y++;let h={id:U.slice(u,y),value:{},propertyOrder:new Map,span:[u,y],classes:n};F.jsons.push(h),Fe.push([h,r]),a=Q("json"),a.nodes=[{id:h.id,span:h.span,idSpan:h.span,defines:!0,classSpans:l}],a.classSpans=l}else if(t===14){p++;let r=qe();F.classDefs.push({ids:r.map(B),styles:Dt()}),a=Q("classDef"),a.ref=B(r[0]),a.refSpan=V(r[0])}else if(t===15){p++;let r=qe(),n=qe();F.classes.push({targets:r.map(l=>({id:B(l),span:V(l)})),classes:n.map(B)}),a=Q("classAssign"),a.ref=B(n[0]),a.refSpan=V(n[0]),a.nodes=r.map(De)}else if(t===16){p++;let r=j(21);F.styles.push({target:B(r),span:V(r),styles:Dt()}),a=Q("style"),a.nodes=[De(r)]}else{let r=C[p+1];if(r===60){(ee[C[p+2]]&zt)===0&&Z(_t()),p++;let n=De(e);t!==21&&(n.id=ss(U.slice(n.span[0],n.span[1])));let l=pt();a=Q("metadata"),a.nodes=[n],a.metadata=dt(l),F.metadata.push({target:n.id,span:n.span,properties:l,statement:a})}else return(!((ee[r]&Yt)!==0||t===21&&(r===65||r===63))||t===21&&Gs.has(B(e).toLowerCase()))&&Z(_t()),os(!0)}}return ie(),a}function ps(e){let t=p,a=C[p];if(a===39)return p++,{kind:"blank",span:V(t)};if(a===38)return p++,ie(),{kind:"comment",span:V(t)};let r=e?Us():a===2?is(!1):os(!1);if(r.span=[P[t],qt],r.edges)for(let n of r.edges)n.span=r.span;return r}function Ys(e,t){U=e,{types:C,starts:P,ends:H}=Ls(e),p=0,F=Ms(),Ge=void 0,Fe=[],Qt=0,es=0;try{let a=j(1);ie();let r=[];for(;(ee[C[p]]&Ut)!==0;)r.push(ps(!0));C[p]!==0&&Je(`Redundant input, expecting EOF but found: ${B(p)}`);for(let[n,l]of Fe){let u=Fs(B(l),()=>Re(e,P[l]));n.value=u.value,n.propertyOrder=u.propertyOrder}return Bs(e,F,V(a),r,t)}finally{U="",C=P=H=Fe=[]}}var Js={normal:"usecaseActor",hollow:"usecaseActorHollow",awesome:"usecaseActorAwesome",icon:"usecaseActorIcon"},Qe=[["none","arrow_point"],["arrow_point","none"],["none","none"],["none","arrow_circle"],["none","arrow_cross"],["arrow_circle","none"],["arrow_cross","none"]];function Mt(e){return typeof e=="string"?e:e===null?"null":String(e)}function Xs(e){let t=[],a=[[e.value,"",""]],r=[];for(;a.length>0;){let[n,l,u]=a.pop();if(r.length=0,Array.isArray(n))n.length===0?t.push({key:l,accessibleKey:l,value:"[]"}):n.every(y=>y===null||typeof y!="object")?n.forEach((y,h)=>t.push({key:h===0?l:"",accessibleKey:l,value:Mt(y)})):n.forEach((y,h)=>r.push([y,`${l}[${h}]`,`${u}/${h}`]));else if(n!==null&&typeof n=="object"){let y=n,h=e.propertyOrder.get(u)??Object.keys(y);h.length===0&&t.push({key:l,accessibleKey:l,value:"{}"});for(let f of h)r.push([Object.prototype.hasOwnProperty.call(y,f)?y[f]:void 0,l?`${l}.${f}`:f,`${u}/${f.replaceAll("~","~0").replaceAll("/","~1")}`])}else t.push({key:l,accessibleKey:l,value:Mt(n)});for(let y=r.length-1;y>=0;y--)a.push(r[y])}return t}function Ae(...e){return e.filter(Boolean).join(" ")}function zs(e){return e.type==="generalization"?["none","extension"]:e.type!=="association"?Qe[0]:Qe[e.arrowType]??Qe[2]}function Vs(e){let t=[],a=[],r=n=>{let l=new Map;for(let u of["default",...n]){let y=e.classDefs.get(u);if(y)for(let h of y.styles){let f=h.trim(),d=f.indexOf(":"),w=(d===-1?f:f.slice(0,d)).trim();w&&l.set(w,f)}}return[...l.values()]};for(let n of e.actors.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:Js[n.type],isGroup:!1,padding:10,cssClasses:Ae("default","usecase-actor",`usecase-actor-${n.type}`,n.business&&"usecase-business",...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),actorType:n.type,business:n.business,icon:n.icon||void 0,stereotype:n.stereotype||void 0,parentId:n.parentId||void 0});for(let n of e.useCases.values()){let l=n.shape==="ellipse";t.push({id:n.id,label:n.label,labelType:n.labelType,shape:l?n.business?"usecaseBusiness":"usecaseEllipse":"rect",isGroup:!1,padding:l?20:10,cssClasses:Ae("default","usecase-element",`usecase-${n.shape}`,n.business&&"usecase-business",...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),business:n.business,stereotype:n.stereotype||void 0,parentId:n.parentId||void 0})}for(let n of e.notes.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:"note",isGroup:!1,padding:10,cssClasses:"default usecase-note",cssStyles:[],cssCompiledStyles:r([]),noteTarget:n.target});for(let n of e.jsonNodes.values())t.push({id:n.id,label:n.id,labelType:"text",shape:"usecaseJsonTable",isGroup:!1,padding:10,cssClasses:Ae("default","usecase-json-table",...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),jsonRows:Xs(n)});for(let n of e.systemBoundaries.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:"usecaseSystemBoundary",isGroup:!0,padding:20,cssClasses:Ae("default","system-boundary",`system-boundary-${n.type}`,...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),boundaryType:n.type});for(let n of e.relationships){let l=n.type==="include"||n.type==="extend",[u,y]=zs(n),h=n.animate||n.animation!==void 0,f={id:n.id,start:n.source,end:n.target,relationshipType:n.type,pattern:l?"dotted":"solid",arrowTypeStart:u,arrowTypeEnd:y,classes:Ae("default","relationship",`relationship-${n.type}`,...n.classes,h&&`edge-animation-${n.animation??"fast"}`),style:[...n.styles],cssCompiledStyles:r(n.classes),animate:n.animate,animation:n.animation,minlen:n.minlen,explicitId:n.explicitId,internal:!1};l?(f.label=n.type,f.labelType="text"):n.type==="association"&&(n.label&&(f.label=n.label),n.labelType&&(f.labelType=n.labelType)),a.push(f)}for(let n of e.notes.values())a.push({id:`${n.id}-edge`,start:n.id,end:n.target,relationshipType:"note",pattern:"dotted",arrowTypeStart:"none",arrowTypeEnd:"none",classes:"default relationship relationship-note",style:[],cssCompiledStyles:r([]),animate:!1,minlen:1,explicitId:!1,internal:!0});return{nodes:t,edges:a}}var Zs=32,qs=16,Qs=72,Me=20,et=26,ht=40,Se=60,Wt=6,tt=6,Ce=10,st=8,We=9,Pe=12,ea=14,Ee=' fill="var(--_s)" stroke="var(--_b)"';function Bt(e,t,a){var n;let r=(n=e.usecase)==null?void 0:n[t];return typeof r=="number"&&r>0?Math.min(r,2e3):a}function ta(e){return e.replace(/[&<>\\]/g,t=>`&#${t.charCodeAt(0)};`)}function ae(e,t,a,r,n,l=0){return Pt(e&&!t?ta(e):e,t,a,r,n,l)}function it(e,t,a,r){let n=a===1||a===2?1:-1,l=a===1||a===3,u=(l?e.w:e.h)/2,y=0;if(e.kind===0)l?(u=ht/2+3,y=(Se-e.h)/2):u+=2;else if(e.kind===1){let h=(l?e.h:e.w)/2;u*=Math.sqrt(Math.max(1-(r/h)**2,0))}return l?[t.x+n*u,t.y+y+r]:[t.x+r,t.y+n*u]}function ds(e,t){let a=t===1||t===3;if(e.kind===0)return a?Se*.5:ht*.6;let r=a?e.h:e.w;return e.kind===1?r*.6:r-16}function sa(e,t,a){let r=new Map,n=(l,u,y,h)=>{let f=t[l];if(f.isGroup)return;let d=u[y]-f.x,w=u[y+1]-f.y,i;if(Math.abs(Math.abs(w)-f.h/2)<.5)i=w<0?0:2;else if(Math.abs(Math.abs(d)-f.w/2)<.5)i=d<0?3:1;else return;let A=l*4+i,k={route:u,at:y,toward:u[h+(i&1?1:0)]},_=r.get(A);_?_.push(k):r.set(A,[k])};for(let l of e){let u=l.route.length-3;l.src===l.dst||u<3||(n(l.src,l.route,0,3),n(l.dst,l.route,u,u-3))}for(let[l,u]of r){let y=l>>2,h=l&3,f=a[y],d=u.length>1?Math.min(ea,ds(f,h)/(u.length-1)):0;u.sort((w,i)=>w.toward-i.toward);for(let w=0;w<u.length;w++){let[i,A]=it(f,t[y],h,(w-(u.length-1)/2)*d);u[w].route[u[w].at]=i,u[w].route[u[w].at+1]=A}}}function aa(e,t,a,r,n){let l=e-a*Pe,u=t-r*Pe,y=Pe*.5;return`<path class="pele-marker" d="M${g(e)},${g(t)}L${g(l-r*y)},${g(u+a*y)}L${g(l+r*y)},${g(u-a*y)}Z" fill="var(--_bg)" stroke="${n}" stroke-linejoin="round"/>`}function Be(e){return e==="extension"?Pe:Is(e)}function jt(e,t,a,r,n,l){return e==="extension"?aa(t,a,r,n,l):xs(e,t,a,r,n,l)}function la(e,t){let a=e.node,r=e.style.shape,n=` fill="none" stroke="var(--_b)"${e.style.line}`,l=-21,u=9,y;return a.actorType==="hollow"?(u=8,y=`<circle cy="-21" r="8" fill="var(--_bg)" stroke="var(--_b)"${r}/><path d="M-20,-9H20V0H5.5L20,15.5L12,25.5L0,12L-12,25.5L-20,15.5L-5.5,0H-20Z" fill="var(--_bg)" stroke="var(--_b)" stroke-linejoin="round"${r}/>`):a.actorType==="awesome"?y=`<path d="M0,-30A11,11 0 1 1 0,-8A11,11 0 1 1 0,-30ZM-20,25C-20,9 -12,-3 0,-3C12,-3 20,9 20,25C20,28 18,30 15,30H-15C-18,30 -20,28 -20,25Z" fill="var(--_b)"${r}/>`:a.actorType==="icon"?(l=-14,u=12,y=`<rect x="-22" y="-26" width="44" height="44" rx="${je}"${Ee}${r}/><svg class="pele-icon" data-icon="${at(a.icon??"")}" x="-14" y="-18" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(t==null?void 0:t(a.icon??""))??""}</svg>`):y=`<circle cy="-21" r="9"${Ee}${r}/><path d="M0,-12V10M-14,-3H14M0,10L-12,30M0,10L12,30"${n}/>`,a.business&&(y+=`<path class="pele-business" d="M${g(.12*u)},${g(l+.99*u)}L${g(.92*u)},${g(l-.39*u)}"${n}/>`),y}function na(e,t,a){return Es(e.direction)?Ts(a,r=>Ft(e,t,a,r)):Ft(e,t,a,!1)}function Ft(e,t,a,r){let n=Vs(e),l=a.fontSize??16,u=Math.round(l*.875),y=Math.round(l*.8125),h=a.measurer??ms(a.fontFamily),f=a.padding??8,d=a.icons,w=r?"TB":gs(e.direction),i=w==="LR"||w==="RL",A=new Map,k=[],_=[];n.nodes.forEach((S,$)=>A.set(S.id,$));for(let S of n.nodes){let $=Et(S.cssStyles.length>0?S.cssCompiledStyles.concat(S.cssStyles):S.cssCompiledStyles),T=($.bold?1:0)|($.italic?2:0),D=$.fontSize??l,s=S.labelType==="markdown",c=ae(S.stereotype&&`«${S.stereotype}»`,!1,h,y,200,T),o={node:S,kind:2,style:$,label:c,stereotype:c,w:0,h:0,rows:[],keyW:0,headH:0,loops:0},b;if(S.isGroup){o.kind=4,o.label=ae(S.label,s,h,D,4e3,T);let m=o.label.height;b=mt(0,0),b.isGroup=!0,b.padX=Me,b.padBottom=Me,b.padTop=S.boundaryType==="package"?m+2*tt+16:m>0?m+16:Me,b.minW=o.label.width+2*Me}else{if(S.jsonRows){o.kind=3,o.label=ae(S.label,!1,h,D,4e3,T|1);let m=0;for(let E of S.jsonRows){let N=ae(E.key,!1,h,u,4e3,T),L=ae(E.value,!1,h,u,260,T);o.rows.push([N,L]),o.keyW=Math.max(o.keyW,N.width),m=Math.max(m,L.width),o.h+=Math.max(L.height,Math.round(u*1.5))+st}o.keyW>0&&(o.keyW+=2*Ce),o.headH=Math.max(o.label.height,Math.round(D*1.5))+st,o.w=Math.max(o.label.width+2*Ce,o.rows.length>0?o.keyW+m+2*Ce:0,72),o.h+=o.headH}else if(S.actorType)o.kind=0,o.label=ae(S.label,s,h,D,140,T),o.w=Math.max(ht,o.label.width,c.width),o.h=Se+Wt+c.height+o.label.height;else{o.label=ae(S.label,s,h,S.shape==="note"?u:D,180,T);let m=Math.max(o.label.width,c.width),E=o.label.height+c.height;S.shape==="usecaseEllipse"||S.shape==="usecaseBusiness"?(o.kind=1,o.w=Math.max(m+2*S.padding+(S.business?16:4),88),o.h=Math.max(E+28,48)):S.shape==="note"?(o.w=m+2*S.padding+6,o.h=E+18):(o.w=Math.max(m+2*S.padding+12,80),o.h=Math.max(E+24,44))}b=mt(o.w,o.h)}b.seq=k.length,k.push(o),_.push(b)}n.nodes.forEach((S,$)=>{_[$].parent=S.parentId!==void 0?A.get(S.parentId)??-1:-1});let v=[],R=[],W=[];for(let S of n.edges){let $=A.get(S.start),T=A.get(S.end);if($===void 0||T===void 0)continue;let D=S.relationshipType==="include"||S.relationshipType==="extend",s=ae(D?`«${S.label}»`:S.label,S.labelType==="markdown",h,u,200);$===T&&(k[$].loops++,i?_[$].h+=2*(et+(s.height>0?s.height+8:0)):_[$].w+=2*(et+(s.width>0?s.width+12:0))),W.push(S),R.push(s),v.push({src:$,dst:T,minlen:S.minlen,labelW:s.width>0?s.width+12:0,labelH:s.height>0?s.height+4:0,route:[],labelX:0,labelY:0})}let Y=As(_,v,w,{nodeSep:Bt(t,"nodeSpacing",Zs),edgeSep:qs,rankSep:Bt(t,"rankSpacing",Qs),portSep:20}),te=Pt(e.title,!1,h,l,4e3,1),pe=te.height>0?te.height+12:0,he=Math.max(Y.width,te.width),xe=f+(he-Y.width)/2,Xe=f+pe;Cs(_,v,xe,Xe);let ne=Math.ceil(he+2*f),de=Math.ceil(Y.height+pe+2*f),Ie=new Map;for(let S of v)$s(Ie,S.route);sa(v,_,k);let ye="",be="";for(let S=0;S<k.length;S++){let $=k[S],T=_[S],D=$.node,s=Tt(D.cssClasses.replace(/^default\s?/,"")),c=at(D.id),o=$.style.text,b=$.style.shape,m=$.w,E=$.h;if($.kind===4){let x=T.x-T.w/2,O=T.y-T.h/2,I=` fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"${b}`,M=` class="pele-cluster-label" fill="var(--_m)"${o}`,G;if(D.boundaryType==="package"){let J=Math.min($.label.width+2*tt+8,T.w),X=$.label.height+2*tt;G=`<rect class="pele-boundary-tab" x="${g(x)}" y="${g(O)}" width="${g(J)}" height="${g(X)}"${I}/><rect x="${g(x)}" y="${g(O+X)}" width="${g(T.w)}" height="${g(T.h-X)}"${I}/>`+q($.label,x+J/2,O+X/2,M,d)}else G=`<rect x="${g(x)}" y="${g(O)}" width="${g(T.w)}" height="${g(T.h)}" rx="${je}"${I}/>`+q($.label,ra(T,$.label.width,Ie),O+8+$.label.height/2,M,d);ye+=`<g class="pele-cluster pele-boundary${s}" data-id="${c}">${G}</g>`;continue}let N,L;if($.kind===0){L="pele-actor";let x=-E/2,O=x+Se+Wt+$.stereotype.height/2;N=`<g class="pele-actor-figure" transform="translate(0,${g(x+Se/2)})">${la($,d)}</g>`+q($.stereotype,0,O,` class="pele-stereotype" font-size="${y}" fill="var(--_m)"`,d)+q($.label,0,E/2-$.label.height/2,` class="pele-label"${o}`,d)}else if($.kind===3){L="pele-json";let x=-m/2,O=-E/2+$.headH,I="",M=`M${g(x)},${g(O)}H${g(x+m)}`;$.keyW>0&&(M+=`M${g(x+$.keyW)},${g(O)}V${g(E/2)}`);for(let[G,J]of $.rows){let X=Math.max(J.height,Math.round(u*1.5))+st;I+=q(G,x+Ce+G.width/2,O+X/2,' class="pele-json-key" fill="var(--_m)"',d)+ia(J,x+$.keyW+Ce,O+X/2,` class="pele-json-value"${o}`,d),O+=X}N=`<rect x="${g(x)}" y="${g(-E/2)}" width="${g(m)}" height="${g(E)}" rx="${je}"${Ee}${b}/><path class="pele-json-lines" d="${M}" fill="none" stroke="var(--_b)"${$.style.line}/>`+q($.label,0,-E/2+$.headH/2,` class="pele-label" font-weight="var(--_hw)"${o}`,d)+`<g font-size="${u}">${I}</g>`}else{let x=$.stereotype.height/2,O;if($.kind===1){if(L="pele-usecase",O=`<ellipse rx="${g(m/2)}" ry="${g(E/2)}"${Ee}${b}/>`,D.business){let I=m/2-15,M=m/2-5,G=J=>E/2*Math.sqrt(1-(J/(m/2))**2);O+=`<path class="pele-business" d="M${g(I)},${g(G(I))}L${g(M)},${g(-G(M))}" fill="none" stroke="var(--_b)"${$.style.line}/>`}}else if(D.shape==="note"){L="pele-note";let I=m/2,M=E/2;O=`<path d="M${g(-I)},${g(-M)}H${g(I-We)}L${g(I)},${g(We-M)}V${g(M)}H${g(-I)}Z" fill="var(--_a)" stroke="var(--_b)" stroke-linejoin="round"${b}/><path d="M${g(I-We)},${g(-M)}V${g(We-M)}H${g(I)}" fill="none" stroke="var(--_b)" stroke-linejoin="round"${$.style.line}/>`}else L="pele-usecase",O=`<rect x="${g(-m/2)}" y="${g(-E/2)}" width="${g(m)}" height="${g(E)}" rx="${je}"${Ee}${b}/>`;N=O+q($.stereotype,0,-$.label.height/2,` class="pele-stereotype" font-size="${y}" fill="var(--_m)"`,d)+q($.label,0,x,` class="pele-label"${D.shape==="note"?` font-size="${u}"`:""}${o}`,d)}be+=`<g class="pele-node ${L}${s}" data-id="${c}" transform="translate(${g(T.x)},${g(T.y)})">${N}</g>`}let ce="",se="",_e=new Map;for(let S=0;S<v.length;S++){let $=v[S],T=W[S],D=R[S],s=T.style.length>0||T.cssCompiledStyles.length>0?Et(T.cssCompiledStyles.concat(T.style)):void 0,c=T.arrowTypeStart,o=T.arrowTypeEnd,b;if($.src===$.dst){let N=_[$.src],L=k[$.src],x=_e.get($.src)??0;_e.set($.src,x+1);let O=i?2:1,I=Math.min(ds(L,O)/2,8+x*6),M=et+x*8,[G,J]=it(L,N,O,-I),[X,Oe]=it(L,N,O,I),ke=Math.hypot(M,I)||1,ue=i?I/ke:M/ke,fe=i?M/ke:I/ke,Ne=Be(c),yt=Be(o),bt=($t,gt,At,ve)=>i?`${g($t+At*I*(ve?1:0))},${g(gt+ve)}`:`${g($t+ve)},${g(gt+At*I*(ve?1:0))}`,cs=i?G-ue*Ne:G+ue*Ne,us=i?J+fe*Ne:J-fe*Ne,fs=X+ue*yt,hs=Oe+fe*yt;b={d:`M${g(cs)},${g(us)}C${bt(G,J,-1,M)} ${bt(X,Oe,1,M)} ${g(fs)},${g(hs)}`,sx:G,sy:J,sdx:i?ue:-ue,sdy:i?-fe:fe,ex:X,ey:Oe,edx:-ue,edy:-fe},i?($.labelX=N.x,$.labelY=Math.max(J,Oe)+M*.75+6+D.height/2):($.labelX=Math.max(G,X)+M*.75+8+D.width/2,$.labelY=N.y)}else{if($.route.length<6)continue;b=ws($.route,void 0,Be(c),Be(o))}let m=s!=null&&s.stroke?_s(s.stroke):"var(--_l)",E=T.internal?"2 3":T.pattern==="dotted"?"5 4":T.animate?"9 5":"";if(ce+=`<g class="pele-edge pele-${T.relationshipType}${Tt(T.classes.replace(/^default relationship relationship-\S+\s?/,""))}" data-id="${at(T.id)}"${(s==null?void 0:s.line)??""}><path d="${b.d}"${E?` stroke-dasharray="${E}"`:""}/>`+jt(c,b.sx,b.sy,b.sdx,b.sdy,m)+jt(o,b.ex,b.ey,b.edx,b.edy,m)+"</g>",D.width>0){let N=$.labelX,L=$.labelY,x=T.relationshipType==="include"||T.relationshipType==="extend";se+=Rs(T.id,D,N,L,(x?' fill="var(--_m)"':"")+((s==null?void 0:s.text)??""),d)}}return{svg:Os("usecase",ne,de,l,a,e,q(te,ne/2,f+te.height/2,' class="pele-title" font-weight="var(--_tw)"')+(ye?`<g class="pele-clusters">${ye}</g>`:"")+(ce?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${ce}</g>`:"")+(se?`<g class="pele-edge-labels" font-size="${u}">${se}</g>`:"")+`<g class="pele-nodes">${be}</g>`),width:ne,height:de,links:[]}}function ra(e,t,a){let r=a.get(Math.round(e.y-e.h/2));if(t===0||r===void 0)return e.x;let n=e.x-e.w/2+6,l=e.x+e.w/2-6,u=r.filter(i=>i>n&&i<l).sort((i,A)=>i-A);u.push(l);let y=t/2+6,h=e.x,f=1/0,d=0,w=n;for(let i of u){if(i-w>=2*y){let A=Math.min(Math.max(e.x,w+y),i-y);Math.abs(A-e.x)<f&&(f=Math.abs(A-e.x),h=A)}else f===1/0&&i-w>d&&(d=i-w,h=(w+i)/2);w=i}return h}function ia(e,t,a,r,n){if(e.lines.length<2)return q(e,t+e.width/2,a,r,n);let l="";for(let u=0;u<e.lines.length;u++){let y={...e,lines:[e.lines[u]],widths:[e.widths[u]],height:e.lineHeight};l+=q(y,t+e.widths[u]/2,a-e.height/2+(u+.5)*e.lineHeight,r,n)}return l}var ba={type:"usecase",parse:(e,t,a)=>Ys(e,a),render:na};export{ba as usecase};
@@ -0,0 +1,2 @@
1
+ var $e=Object.defineProperty;var ve=(r,e,a)=>e in r?$e(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;var It=(r,e,a)=>ve(r,typeof e!="symbol"?e+"":e,a);import{p as be,h as oe}from"./DKTLEL5E-B7ILCVTH.js";import{x as Ae,D as Ie,G as te,M as ke,$ as Te,v as De,w as Fe,V as Re,W as _e,O as ze,P as Ce,j as je,Y as He,z as Ee,U as Se}from"./VMV7XPHP-6QkisQwm.js";import{D as he,S as Ge,w as Oe}from"./HWDLEDTA-C_JcdBMO.js";import{_ as Jt,y as Kt,f as Qt,a as se,x as C,$ as Pe}from"./RZSVICHU-BiwjruZZ.js";import{x as Le,H as We}from"./lazy-CKqR1774.js";import"./index-392ivruk.js";function kt(r){throw new Le(r,"semantic",{type:"architecture"})}var Je=class{constructor(){It(this,"type","architecture");It(this,"title");It(this,"accTitle");It(this,"accDescr");It(this,"nodes",new Map);It(this,"groups",new Map);It(this,"edges",[]);It(this,"layoutHints",[]);It(this,"registered",new Map)}register(r,e,a){this.registered.has(e)&&kt(`The ${r} id [${e}] is already in use by another ${this.registered.get(e)}`),a!==void 0&&(e===a&&kt(`The ${r} [${e}] cannot be placed within itself`),this.registered.has(a)||kt(`The ${r} [${e}]'s parent does not exist. Please make sure the parent is created before this ${r}`),this.registered.get(a)==="node"&&kt(`The ${r} [${e}]'s parent is not a group`)),this.registered.set(e,r==="group"?"group":"node")}addService({id:r,icon:e,iconText:a,title:h,in:n}){this.register("service",r,n),this.nodes.set(r,{id:r,type:"service",icon:e,iconText:a,title:h,in:n})}addJunction({id:r,in:e}){this.register("junction",r,e),this.nodes.set(r,{id:r,type:"junction",in:e})}addGroup({id:r,icon:e,title:a,in:h}){this.register("group",r,h),this.groups.set(r,{id:r,icon:e,title:a,in:h})}addEdge({lhsId:r,rhsId:e,lhsDir:a,rhsDir:h,lhsInto:n,rhsInto:l,lhsGroup:c,rhsGroup:M,title:s}){let v=[["left",r,c],["right",e,M]];for(let[x,u]of v)this.registered.has(u)||kt(`The ${x}-hand id [${u}] does not yet exist. Please create the service/group before declaring an edge to it.`);for(let[x,u]of v)this.nodes.has(u)||kt(`The ${x}-hand id [${u}] is a group. Add {group} to a service inside it instead.`);let b=this.nodes.get(r).in;if(b!==void 0&&b===this.nodes.get(e).in)for(let[x,u,_]of v)_&&kt(`The ${x}-hand id [${u}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);this.edges.push({lhsId:r,lhsDir:a,lhsInto:n,lhsGroup:c,rhsId:e,rhsDir:h,rhsInto:l,rhsGroup:M,title:s})}addLayoutHint(r){r.members.length<2&&kt(`An align directive requires at least two members; got ${r.members.length}`);let e=new Set;for(let a of r.members)this.registered.get(a)!=="node"&&kt(`align ${r.direction} references [${a}], which is not a service or junction`),e.has(a)&&kt(`align ${r.direction} lists [${a}] more than once`),e.add(a);this.layoutHints.push(r)}};function Ne(r,e){r.accDescr&&(e.accDescr=r.accDescr.replace(/\n\s+/g,`
2
+ `)),r.accTitle&&(e.accTitle=r.accTitle.replace(/^\s+/g,"")),r.title&&(e.title=r.title);for(let a of r.groups)e.addGroup(a);for(let a of r.services)e.addService(a);for(let a of r.junctions)e.addJunction(a);for(let a of r.edges)e.addEdge(a);for(let a of r.alignments)e.addLayoutHint({direction:a.direction,members:[...a.members]})}var xe={name:"ID",pattern:/[\w]([-\w]*\w)?/y};function jt(r){return{name:r,pattern:r,longer:[xe]}}var ce=[jt("architecture-beta"),jt("junction"),jt("service"),jt("column"),jt("group"),jt("align"),jt("row"),{name:"--",pattern:"--",longer:[te]},jt("in"),{name:":",pattern:":"},{name:"-",pattern:"-",longer:[te]},{name:"ARROW_DIRECTION",pattern:/L|R|T|B/y},{name:"ARROW_GROUP",pattern:/\{group\}/y},{name:"ARROW_INTO",pattern:/<|>/y},ke,Te,De,Fe,xe,Re,_e,te,ze,Ce,{name:"ARCH_ICON",pattern:/\([\w-:]+\)/y},{name:"ARCH_TITLE",pattern:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[^\[\]\r\n]+)\]/y}];function ee(r){let e=r.slice(1,-1).trim();return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\'/g,"'")),e.trim()}function Ue(r){let e=new Ae(Ie(r,ce,"architecture"),ce,"architecture"),a={$type:"Architecture",groups:[],services:[],junctions:[],edges:[],alignments:[]},h=l=>e.kinds[e.i]===l,n=()=>{if(e.kind!==-1)for(e.kind!==19&&e.fail("a line break or the end of input");e.kind===19;)e.i++};for(;e.kind===19;)e.i++;for(e.expect(0);e.kind!==-1;){switch(e.kind){case 19:e.i++;continue;case 14:a.accDescr=Se(e.take());break;case 15:a.accTitle=Ee(e.take());break;case 16:a.title=He(e.take());break;case 4:{e.i++;let l={$type:"Group",id:e.expect(18)};h(24)&&(l.icon=e.take().slice(1,-1)),h(25)&&(l.title=ee(e.take())),e.accept(8)&&(l.in=e.expect(18)),a.groups.push(l);break}case 2:{e.i++;let l={$type:"Service",id:e.expect(18)};h(17)?l.iconText=je(e.take()):h(24)&&(l.icon=e.take().slice(1,-1)),h(25)&&(l.title=ee(e.take())),e.accept(8)&&(l.in=e.expect(18)),a.services.push(l);break}case 1:{e.i++;let l={$type:"Junction",id:e.expect(18)};e.accept(8)&&(l.in=e.expect(18)),a.junctions.push(l);break}case 18:{let l=e.take(),c=e.accept(12);e.expect(9);let M=e.expect(11),s=e.accept(13),v;e.accept(7)||(h(10)||e.fail("'--' or '-'"),e.i++,v=ee(e.expect(25)),e.expect(10));let b=e.accept(13),x=e.expect(11);e.expect(9);let u=e.expect(18),_=e.accept(12);a.edges.push({$type:"Edge",lhsId:l,lhsGroup:c,lhsDir:M,lhsInto:s,title:v,rhsInto:b,rhsDir:x,rhsId:u,rhsGroup:_});break}case 5:{e.i++,!h(6)&&!h(3)&&e.fail("'row' or 'column'");let l=e.take(),c=[e.expect(18),e.expect(18)];for(;h(18);)c.push(e.take());a.alignments.push({$type:"Alignment",direction:l,members:c});break}default:e.fail("a group, a service, a junction, an edge, an alignment, a title, or a line break")}n()}return a}var qe=new Map([["database","M4 6a8 3 0 1 0 16 0a8 3 0 1 0-16 0M4 6v12a8 3 0 0 0 16 0V6M4 12a8 3 0 0 0 16 0"],["server","M3 4h18v7H3zM3 13h18v7H3zM7 7.5h.01M7 16.5h.01M11 7.5h6M11 16.5h6"],["disk","M5 3h14v18H5zM12 6.5a4 4 0 1 0 0 8a4 4 0 1 0 0-8M12 10.5h.01M8 18h3"],["internet","M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0M3 12h18M12 3a13 13 0 0 0 0 18M12 3a13 13 0 0 1 0 18"],["cloud","M7 18a4 4 0 0 1-.5-7.97A6 6 0 0 1 18 9.5a4.25 4.25 0 0 1-.5 8.5z"]]);function Be(r){let e=qe.get(r);return e===void 0?"":`<path d="${e}" stroke="var(--_fg)" stroke-width="1.5"/>`}var Nt=[-1,1,0,0],Vt=[0,0,-1,1];function Yt(r){return r==="L"?0:r==="R"?1:r==="T"?2:3}var de=64,Zt=2**25,pe=2**26;function Qe(r,e,a,h){let n=r.length,l=e.length,c=l,M=new Map,s=new Map,v=new Int32Array(n+l).fill(c),b=new Int32Array(l+1),x=[];for(let i=0;i<=l;i++)x.push([]);e.forEach((i,o)=>{s.set(i.id,o);let d=i.in===void 0?void 0:s.get(i.in);d!==void 0&&d!==o?(v[n+o]=d,b[o]=b[d]+1):b[o]=1}),r.forEach((i,o)=>{M.set(i.id,o);let d=i.in===void 0?void 0:s.get(i.in);d!==void 0&&(v[o]=d),x[v[o]].push(o)});for(let i=0;i<l;i++)x[v[n+i]].push(n+i);let u=[],_=[],T=[],k=[],F=[],j=[],q=new Array(n+l),ut=new Array(n+l),xt=(i,o,d,g,w)=>{if(i===o)return;let z=i,H=o,G=v[i],A=v[o];for(;G!==A;)b[G]>=b[A]?(z=n+G,G=v[z]):(H=n+A,A=v[H]);let Y=u.length;u.push(i),_.push(o),T.push(d),k.push(g),F.push(z),j.push(H),(w[z]??(w[z]=[])).push(Y),(w[H]??(w[H]=[])).push(Y)};for(let i of h){let o=i.direction==="row";for(let d=1;d<i.members.length;d++){let g=M.get(i.members[d-1]),w=M.get(i.members[d]);g!==void 0&&w!==void 0&&xt(g,w,o?1:3,o?0:2,q)}}for(let i of[!1,!0])for(let o of a){if(o.lhsDir===o.rhsDir!==i)continue;let d=M.get(o.lhsId),g=M.get(o.rhsId);d!==void 0&&g!==void 0&&xt(d,g,Yt(o.lhsDir),Yt(o.rhsDir),ut)}let L=new Int32Array(n+l),S=new Int32Array(n+l),V=new Int32Array(n+l).fill(1),U=new Int32Array(n+l).fill(1),wt=new Uint8Array(n+l),E=[],ft=new Map,rt=[],mt=new Map,Tt=0,gt=0,Mt=0,it=(i,o)=>{gt=0,Mt=0;for(let d=i;d!==o;d=n+v[d])gt+=L[d],Mt+=S[d]},ot=(i,o,d)=>{if(L[i]=o,S[i]=d,wt[i]=1,E.push(i),V[i]*U[i]>de){rt.push(i);return}for(let g=d;g<d+U[i];g++)for(let w=o;w<o+V[i];w++)ft.set((w+Zt)*pe+g+Zt,i)},Ht=(i,o,d,g,w)=>L[i]<o+g&&o<L[i]+V[i]&&S[i]<d+w&&d<S[i]+U[i],Ut=(i,o,d,g)=>{if(d*g>de){for(let w=Tt;w<E.length;w++)if(Ht(E[w],i,o,d,g))return E[w];return-1}for(let w=o;w<o+g;w++)for(let z=i;z<i+d;z++){let H=ft.get((z+Zt)*pe+w+Zt);if(H!==void 0)return H}for(let w of rt)if(Ht(w,i,o,d,g))return w;return-1},Dt=(i,o,d,g,w,z)=>{let H=`${i},${o},${d},${g},${w},${z}`,G=mt.get(H)??0;for(;;){let A=Ut(i+G*w,o+G*z,d,g);if(A<0)break;G=w>0?L[A]+V[A]-i:w<0?i+d-L[A]:z>0?S[A]+U[A]-o:o+g-S[A]}return mt.set(H,G),G},Gt=(i,o)=>{let d=F[o]===i,g=d?j[o]:F[o];if(wt[g])return;let w=d?T[o]:k[o],z=d?k[o]:T[o];it(d?u[o]:_[o],i);let H=gt,G=Mt;it(d?_[o]:u[o],g);let A=Nt[w],Y=Vt[w],Ct=0,B=0,nt=Nt[w]+Nt[z]===0&&Vt[w]+Vt[z]===0;w===z?(A=Nt[w]===0?1:0,Y=1-A):nt||(Ct=-Nt[z],B=-Vt[z]);let O,J;if(A!==0?(O=A>0?L[i]+V[i]:L[i]-V[g],J=S[i]+G+B-Mt):(J=Y>0?S[i]+U[i]:S[i]-U[g],O=L[i]+H+Ct-gt),nt){let I=ut[g];if(I!==void 0&&I.length>1){let P=[];for(let N of I){let tt=j[N]===g,Et=tt?F[N]:j[N];if(!wt[Et]||(tt?T[N]:k[N])!==w||(tt?k[N]:T[N])!==z)continue;it(tt?u[N]:_[N],Et);let Ot=A!==0?S[Et]+Mt:L[Et]+gt;it(tt?_[N]:u[N],g),P.push(Ot-(A!==0?Mt:gt))}P.length>1&&(P.sort((N,tt)=>N-tt),A!==0?J=P[P.length-1>>1]:O=P[P.length-1>>1])}let W=A===0?1:0,Z=1-W,lt=Dt(O,J,V[g],U[g],W,Z),X=lt===0?0:Dt(O,J,V[g],U[g],-W,-Z),ht=lt<=X?lt:-X;O+=W*ht,J+=Z*ht}else{let I=Dt(O,J,V[g],U[g],A,Y);O+=A*I,J+=Y*I}ot(g,O,J)},$t=i=>{let o=x[i];if(o.length===0)return;E.length=0;let d=[];for(let I of o){if(wt[I])continue;Tt=E.length,d.push(Tt),ft.clear(),rt.length=0,mt.clear(),ot(I,0,0);let W=Tt,Z=Tt,lt=0;for(;;){if(W<E.length){let ht=E[W++],P=q[ht];if(P!==void 0)for(let N of P)Gt(ht,N);continue}if(Z>=E.length)break;let X=ut[E[Z]];if(X===void 0||lt>=X.length){Z++,lt=0;continue}Gt(E[Z],X[lt++])}}d.push(E.length);let g=d.length-1,w=new Array(g),z=new Array(g),H=new Array(g),G=new Array(g),A=0,Y=0;for(let I=0;I<g;I++){let W=1/0,Z=1/0,lt=-1/0,X=-1/0;for(let ht=d[I];ht<d[I+1];ht++){let P=E[ht];W=Math.min(W,L[P]),Z=Math.min(Z,S[P]),lt=Math.max(lt,L[P]+V[P]),X=Math.max(X,S[P]+U[P])}w[I]=W,z[I]=Z,H[I]=lt-W,G[I]=X-Z,A+=H[I]*G[I],Y=Math.max(Y,H[I])}let Ct=Math.max(Y,Math.ceil(Math.sqrt(A*2))),B=0,nt=0,O=0,J=0;for(let I=0;I<g;I++){B>0&&B+H[I]>Ct&&(nt+=O,B=0,O=0);for(let W=d[I];W<d[I+1];W++)L[E[W]]+=B-w[I],S[E[W]]+=nt-z[I];B+=H[I],O=Math.max(O,G[I]),J=Math.max(J,B)}i<l&&(V[n+i]=J,U[n+i]=nt+O)};for(let i=l-1;i>=0;i--)$t(i);$t(c);let at=new Int32Array(l),yt=new Int32Array(l),vt=new Int32Array(l),Ft=new Uint8Array(l);for(let i=0;i<l;i++){let o=v[n+i];vt[i]=o===c?-1:o,at[i]=L[n+i]+(o===c?0:at[o]),yt[i]=S[n+i]+(o===c?0:yt[o]),x[i].length===0&&(Ft[i]=1)}let Rt=new Int32Array(n),_t=new Int32Array(n),zt=new Int32Array(n);for(let i=0;i<n;i++){let o=v[i];zt[i]=o===c?-1:o,Rt[i]=L[i]+(o===c?0:at[o]),_t[i]=S[i]+(o===c?0:yt[o])}return{col:Rt,row:_t,groupCol:at,groupRow:yt,groupCols:V.slice(n),groupRows:U.slice(n),groupParent:vt,groupEmpty:Ft,nodeParent:zt}}var et=12,Ve=6,ue=4,fe=3,Ze=[-1,1,0,0],Ke=[0,0,-1,1];function re(r,e,a,h,n){let l=r.architecture,c=l!==null&&typeof l=="object"&&!Array.isArray(l)?l[e]:void 0;return typeof c=="number"&&Number.isFinite(c)?Math.min(n,Math.max(h,c)):a}function ge(r){let e=new Map;for(let a of r.sort((h,n)=>h-n))e.has(a)||e.set(a,e.size);return e}function ye(r,e,a,h,n){return`<svg class="pele-icon" data-icon="${Kt(r)}" x="${C(e)}" y="${C(a)}" width="${C(h)}" height="${C(h)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${(n==null?void 0:n(r))??Be(r)}</svg>`}function Ye(r,e,a,h){let n=r.lines.length>a;if(!n&&r.width<=e)return r;let l=h.width("…",r.size,0),c=[],M=[],s=0;for(let v=0;v<Math.min(a,r.lines.length);v++){let b=r.lines[v].map(u=>({...u})),x=r.widths[v];if(x>e||n&&v===a-1)for(;;){let u=b[b.length-1];if(u===void 0){b.push({text:"…",style:0,width:l}),x=l;break}let _=x-u.width;if(u.icon===void 0&&_+l<e){let T=0,k=u.text.length;for(;T<k;){let j=T+k+1>>1;_+h.width(u.text.slice(0,j),r.size,u.style)+l<=e?T=j:k=j-1}let F=T>0?u.text.charCodeAt(T-1):0;F>=55296&&F<=56319&&T--,u.text=u.text.slice(0,T).trimEnd()+"…",u.width=h.width(u.text,r.size,u.style),x=_+u.width;break}b.pop(),x=_}c.push(b),M.push(x),s=Math.max(s,x)}return{...r,lines:c,widths:M,width:s,height:c.length*r.lineHeight}}function Xe(r,e){let{x:a,y:h,dx:n,dy:l}=r,{x:c,y:M,dx:s,dy:v}=e,b=a+n*et,x=h+l*et,u=c+s*et,_=M+v*et;if(n*s+l*v===0){let j=n!==0?c:a,q=n!==0?h:M;return(j-a)*n+(q-h)*l>0&&(j-c)*s+(q-M)*v>0?[a,h,j,q,c,M]:n!==0?[a,h,b,x,b,_,u,_,c,M]:[a,h,b,x,u,x,u,_,c,M]}let T=n!==0,k=T?M-h:c-a;if(n===-s&&l===-v){if((c-a)*n+(M-h)*l>0){if(Math.abs(k)<.5)return[a,h,c,M];if(T){let xt=n>0?r.x1:e.x1,L=n>0?e.x0:r.x0,S=xt<L?(xt+L)/2:(a+c)/2;return[a,h,S,h,S,M,c,M]}let j=l>0?r.y1:e.y1,q=l>0?e.y0:r.y0,ut=j<q?(j+q)/2:(h+M)/2;return[a,h,a,ut,c,ut,c,M]}}else if(Math.abs(k)>=1){if(T){let q=n>0?Math.max(a,c)+et:Math.min(a,c)-et;return[a,h,q,h,q,M,c,M]}let j=l>0?Math.max(h,M)+et:Math.min(h,M)-et;return[a,h,a,j,c,j,c,M]}if(T){let j=r.y1+et<=e.y0?(r.y1+e.y0)/2:e.y1+et<=r.y0?(e.y1+r.y0)/2:Math.max(r.y1,e.y1)+et;return[a,h,b,h,b,j,u,j,u,M,c,M]}let F=r.x1+et<=e.x0?(r.x1+e.x0)/2:e.x1+et<=r.x0?(e.x1+r.x0)/2:Math.max(r.x1,e.x1)+et;return[a,h,a,x,F,x,F,_,c,_,c,M]}function tr(r){let e=[r[0],r[1]];for(let a=2;a<r.length;a+=2){let h=r[a],n=r[a+1],l=e.length,c=Math.abs(h-e[l-2])<.01,M=Math.abs(n-e[l-1])<.01;c&&M||(l>=4&&(c&&Math.abs(e[l-4]-e[l-2])<.01||M&&Math.abs(e[l-3]-e[l-1])<.01)?(e[l-2]=h,e[l-1]=n):e.push(h,n))}return e}function er(r,e,a){let h=r.length/2,n=new Array(h),l=new Array(h);for(let s=0;s<h;s++)n[s]=r[s*2],l[s]=r[s*2+1];let c=(s,v,b)=>{let x=Math.hypot(n[v]-n[s],l[v]-l[s]),u=Math.min(b,Math.max(0,x-1));x>0&&u>0&&(n[s]+=(n[v]-n[s])/x*u,l[s]+=(l[v]-l[s])/x*u)};c(0,1,e),c(h-1,h-2,a);let M=`M${C(n[0])},${C(l[0])}`;for(let s=1;s<h-1;s++){let v=Math.hypot(n[s]-n[s-1],l[s]-l[s-1]),b=Math.hypot(n[s+1]-n[s],l[s+1]-l[s]),x=Math.min(Ve,v/2,b/2);if(x<.5){M+=`L${C(n[s])},${C(l[s])}`;continue}let u=n[s]-(n[s]-n[s-1])/v*x,_=l[s]-(l[s]-l[s-1])/v*x,T=n[s]+(n[s+1]-n[s])/b*x,k=l[s]+(l[s+1]-l[s])/b*x;M+=`L${C(u)},${C(_)}Q${C(n[s])},${C(l[s])} ${C(T)},${C(k)}`}return M+`L${C(n[h-1])},${C(l[h-1])}`}function rr(r,e,a){return be(a,h=>ir(r,e,a,h))}function ir(r,e,a,h){let n=re(e,"iconSize",48,8,512),l=re(e,"fontSize",a.fontSize??16,4,128),c=Math.min(re(e,"padding",20,0,256),h?12:1/0),M=Math.round(l*.875),s=a.measurer??We(a.fontFamily),v=a.padding??8,b=a.icons,x=n/2,u=[...r.nodes.values()],_=[...r.groups.values()],T=u.length,k=_.length,F=Qe(u,_,r.edges,r.layoutHints),j=new Map;u.forEach((t,f)=>j.set(t.id,f));let q=new Array(T),ut=new Float64Array(T),xt=new Float64Array(T),L=h?Math.max(n,64):Math.max(n*2.25,96);for(let t=0;t<T;t++){let f=u[t],m=Jt(f.type==="service"?f.title:void 0,!0,s,l,L);q[t]=m,ut[t]=Math.max(n,2*Math.ceil(m.width/2)),xt[t]=n+(m.height>0?ue+m.height:0)}let S=[],V=[];for(let t=0;t<T;t++)S.push(F.col[t]),V.push(F.row[t]);for(let t=0;t<k;t++)F.groupEmpty[t]&&(S.push(F.groupCol[t]),V.push(F.groupRow[t]));let U=ge(S),wt=ge(V),E=U.size,ft=wt.size,rt=new Float64Array(E),mt=new Float64Array(ft),Tt=h?Math.max(24,2*et):Math.max(40,Math.round(n*.75)),gt=new Float64Array(E).fill(Tt),Mt=new Float64Array(ft).fill(Tt),it=new Int32Array(T),ot=new Int32Array(T);for(let t=0;t<T;t++){let f=it[t]=U.get(F.col[t]),m=ot[t]=wt.get(F.row[t]);rt[f]=Math.max(rt[f],ut[t]),mt[m]=Math.max(mt[m],xt[t])}for(let t=0;t<k;t++){if(!F.groupEmpty[t])continue;let f=U.get(F.groupCol[t]),m=wt.get(F.groupRow[t]);rt[f]=Math.max(rt[f],n),mt[m]=Math.max(mt[m],x)}let Ht=r.edges.length,Ut=new Array(Ht),Dt=new Int32Array(Ht*2);for(let t=0;t<Ht;t++){let f=r.edges[t],m=Dt[t*2]=j.get(f.lhsId)??-1,D=Dt[t*2+1]=j.get(f.rhsId)??-1,$=Jt(f.title,!0,s,M,160);if(Ut[t]=$,!($.width===0||m<0||D<0)){if(it[m]!==it[D]){let y=Math.min(it[m],it[D]);gt[y]=Math.max(gt[y],Math.ceil($.width)+28)}else if(rt[it[m]]=Math.max(rt[it[m]],2*Math.ceil($.width/2)+8),ot[m]!==ot[D]){let y=Math.min(ot[m],ot[D]);Mt[y]=Math.max(Mt[y],Math.ceil($.height)+24)}}}let Gt=new Array(k),$t=new Int32Array(k),at=new Int32Array(k),yt=new Int32Array(k),vt=new Int32Array(k),Ft=new Float64Array(k),Rt=new Float64Array(k),_t=new Float64Array(k),zt=new Float64Array(k),i=new Float64Array(k),o=new Float64Array(k),d=new Float64Array(E),g=new Float64Array(E),w=new Float64Array(ft),z=new Float64Array(ft),H=Math.round(l*1.25);for(let t=0;t<k;t++){$t[t]=U.get(F.groupCol[t]),at[t]=U.get(F.groupCol[t]+F.groupCols[t]-1),yt[t]=wt.get(F.groupRow[t]),vt[t]=wt.get(F.groupRow[t]+F.groupRows[t]-1);let f=Jt(_[t].title,!0,s,l,h?Math.max(80,oe(a)/2):320);Gt[t]=f;let m=_[t].icon?H:0;i[t]=f.width+m+(f.width>0&&m>0?6:0),o[t]=Math.max(f.height,m)}for(let t=k-1;t>=0;t--){let f=c+Ft[t],m=c+Rt[t],D=(o[t]>0?Math.max(c,o[t]+12):c)+_t[t],$=c+zt[t];if(i[t]>0){let Q=f+m;for(let p=$t[t];p<=at[t];p++)Q+=rt[p]+(p<at[t]?g[p]+gt[p]+d[p+1]:0);i[t]+20>Q&&(m+=Math.ceil(i[t]+20-Q))}Ft[t]=f,Rt[t]=m,_t[t]=D,zt[t]=$,d[$t[t]]=Math.max(d[$t[t]],f),g[at[t]]=Math.max(g[at[t]],m),w[yt[t]]=Math.max(w[yt[t]],D),z[vt[t]]=Math.max(z[vt[t]],$);let y=F.groupParent[t];y<0||($t[y]===$t[t]&&(Ft[y]=Math.max(Ft[y],f)),at[y]===at[t]&&(Rt[y]=Math.max(Rt[y],m)),yt[y]===yt[t]&&(_t[y]=Math.max(_t[y],D)),vt[y]===vt[t]&&(zt[y]=Math.max(zt[y],$)))}let G=new Float64Array(E),A=new Float64Array(ft),Y=0;for(let t=0;t<E;t++)G[t]=Y+d[t],Y=G[t]+rt[t]+g[t]+(t<E-1?gt[t]:0);let Ct=0;for(let t=0;t<ft;t++)A[t]=Ct+w[t],Ct=A[t]+mt[t]+z[t]+(t<ft-1?Mt[t]:0);let B=0,nt=0,O=Y,J=Ct,I=t=>G[$t[t]]-Ft[t],W=t=>G[at[t]]+rt[at[t]]+Rt[t],Z=t=>A[yt[t]]-_t[t],lt=t=>A[vt[t]]+mt[vt[t]]+zt[t],X=t=>G[it[t]]+rt[it[t]]/2,ht=(t,f,m)=>{let D=Ze[f],$=Ke[f],y=X(t),Q=A[ot[t]],p={x:y,y:Q+x,dx:D,dy:$,x0:y-ut[t]/2,y0:Q,x1:y+ut[t]/2,y1:Q+xt[t],gap:0,wire:!1};u[t].type==="junction"?(p.x0=p.x1=y,p.y0=p.y1=p.y,p.gap=fe):D!==0?p.x=y+D*x:p.y=$<0?Q:Q+xt[t]+(q[t].height>0?2:0);let st=m?F.nodeParent[t]:-1;return st>=0&&(p.x0=I(st),p.x1=W(st),p.y0=Z(st),p.y1=lt(st),p.gap=0,p.wire=u[t].type==="junction",D!==0?p.x=D<0?p.x0:p.x1:p.y=$<0?p.y0:p.y1),p},P="",N="",tt=[],Et=Oe("arrow_point");for(let t=0;t<Ht;t++){let f=r.edges[t],m=Dt[t*2],D=Dt[t*2+1];if(m<0||D<0)continue;let $=ht(m,Yt(f.lhsDir),f.lhsGroup),y=ht(D,Yt(f.rhsDir),f.rhsGroup);$.x===y.x&&$.y===y.y&&$.dx===y.dx&&($.x-=8*Math.abs($.dy),$.y-=8*Math.abs($.dx),y.x+=8*Math.abs($.dy),y.y+=8*Math.abs($.dx));let Q=Xe($,y);$.wire&&Q.unshift(X(m),A[ot[m]]+x),y.wire&&Q.push(X(D),A[ot[D]]+x);let p=tr(Q);if(p.length<4)continue;let st=Kt(`${f.lhsId}-${f.rhsId}`);P+=`<g class="pele-edge" data-id="${st}"><path d="${er(p,f.lhsInto&&!$.wire?Et+$.gap:0,f.rhsInto&&!y.wire?Et+y.gap:0)}"/>`+(f.lhsInto?he("arrow_point",$.x+$.dx*$.gap,$.y+$.dy*$.gap,-$.dx,-$.dy,"var(--_l)"):"")+(f.rhsInto?he("arrow_point",y.x+y.dx*y.gap,y.y+y.dy*y.gap,-y.dx,-y.dy,"var(--_l)"):"")+"</g>";let bt=-1,Lt=-1,Wt=-1,K=-1,ct=Ut[t];for(let R=0;R<p.length;R+=2)B=Math.min(B,p[R]-4),O=Math.max(O,p[R]+4),nt=Math.min(nt,p[R+1]-4),J=Math.max(J,p[R+1]+4);for(let R=0;R+3<p.length;R+=2){let At=Math.abs(p[R+1]-p[R+3])<.01,dt=Math.abs(p[R]-p[R+2])+Math.abs(p[R+1]-p[R+3]);At||tt.push(p[R],Math.min(p[R+1],p[R+3]),Math.max(p[R+1],p[R+3])),dt>Lt&&(bt=R,Lt=dt),At&&dt>K&&(Wt=R,K=dt)}if(ct.width>0){let R=K>=ct.width+8?Wt:bt,At=(p[R]+p[R+2])/2,dt=(p[R+1]+p[R+3])/2,St=ct.width+8,Me=Math.abs(p[R]-p[R+2])<.01;for(let pt of[$,y])At+St/2<=pt.x0||At-St/2>=pt.x1||dt+ct.height/2<=pt.y0||dt-ct.height/2>=pt.y1||(Me?At=At>=(pt.x0+pt.x1)/2?pt.x1+St/2+4:pt.x0-St/2-4:dt=dt>=(pt.y0+pt.y1)/2?pt.y1+ct.height/2+4:pt.y0-ct.height/2-4);B=Math.min(B,At-St/2),O=Math.max(O,At+St/2),nt=Math.min(nt,dt-ct.height/2),J=Math.max(J,dt+ct.height/2),N+=Ge(`${f.lhsId}-${f.rhsId}`,ct,At,dt,"",b)}}let Ot="";for(let t=0;t<k;t++){let f=_[t],m=I(t),D=Z(t),$=W(t)-m,y=Gt[t],Q="";if(i[t]>0){let p=D+o[t]+12,st=[];for(let K=0;K<tt.length;K+=3)tt[K+1]<p&&tt[K+2]>D&&tt[K]>m&&tt[K]<m+$&&st.push(tt[K]);st.sort((K,ct)=>K-ct),st.push(m+$-4);let bt=m+10;for(let K of st){if(K-6-bt>=i[t])break;bt=Math.max(bt,K+6)}bt+i[t]>m+$-4&&(bt=m+10);let Lt=D+6+o[t]/2,Wt=bt;f.icon&&(Q+=ye(f.icon,bt,Lt-H/2,H,b),Wt+=H+6),Q+=Qt(y,Wt+y.width/2,Lt,' class="pele-cluster-label" fill="var(--_m)"',b)}Ot+=`<g class="pele-cluster" data-id="${Kt(f.id)}"><rect x="${C(m)}" y="${C(D)}" width="${C($)}" height="${C(lt(t)-D)}" rx="${se}" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)"/>`+Q+"</g>"}let qt="",Xt=n*.5,ie=Math.max(6,Math.round(l*.75));for(let t=0;t<T;t++){let f=u[t],m=`data-id="${Kt(f.id)}" transform="translate(${C(X(t))},${C(A[ot[t]])})"`;if(f.type==="junction"){qt+=`<g class="pele-node pele-junction" ${m}><circle cy="${C(x)}" r="${fe}" fill="var(--_l)"/></g>`;continue}let D="";if(f.icon)D=ye(f.icon,-Xt/2,(n-Xt)/2,Xt,b);else if(f.iconText){let $=Jt(f.iconText,!1,s,ie,n-8),y=Math.max(1,Math.floor((n-4)/($.lineHeight||1)));D=Qt(Ye($,n-8,y,s),0,x,` class="pele-icon-text" font-size="${ie}"`,b)}qt+=`<g class="pele-node pele-service" ${m}><rect x="${C(-x)}" width="${C(n)}" height="${C(n)}" rx="${se}" fill="var(--_s)" stroke="var(--_b)"/>`+D+Qt(q[t],0,n+ue+q[t].height/2,' class="pele-label"',b)+"</g>"}let Pt=Jt(r.title,!1,s,l,h?oe(a):4e3,1),ae=Pt.height>0?Pt.height+12:0,Bt=Math.ceil(Math.max(O-B,Pt.width)+2*v),le=Math.ceil(J-nt+ae+2*v),we=Math.round((Bt-(O-B))/2-B),me=Math.round(v+ae-nt),ne=(Ot?`<g class="pele-clusters">${Ot}</g>`:"")+(P?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round" stroke-linejoin="round">${P}</g>`:"")+(N?`<g class="pele-edge-labels" font-size="${M}">${N}</g>`:"")+(qt?`<g class="pele-nodes">${qt}</g>`:"");return{svg:Pe("architecture",Bt,le,l,a,r,Qt(Pt,Bt/2,v+Pt.height/2,' class="pele-title" font-weight="var(--_tw)"')+(ne?`<g transform="translate(${we},${me})">${ne}</g>`:"")),width:Bt,height:le,links:[]}}var dr={type:"architecture",parse(r,e,a){let h=new Je;return a&&(h.title=a),Ne(Ue(r),h),h},render:rr};export{dr as architecture};
@@ -0,0 +1 @@
1
+ import{M as u}from"./VMV7XPHP-6QkisQwm.js";var n=/[\t ]*accDescr(?:[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)|\s*({))/y;function c(){let e=!1;return(r,l)=>{n.lastIndex=l;let t=n.exec(r);if(t===null)return-1;let f=n.lastIndex;if(t[1]===void 0)return f;if(e)return-1;let i=r.indexOf("}",f);return e=i===-1,i+1||-1}}function o(e="ACC_DESCR"){return{...u,name:e,scanner:c}}export{o as i};
@@ -0,0 +1,4 @@
1
+ var $e=Object.defineProperty;var Ce=(e,r,i)=>r in e?$e(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i;var M=(e,r,i)=>Ce(e,typeof r!="symbol"?r+"":r,i);import{m as Ae,d as Me,b as _e}from"./FKCDD66M-BPFkyrwI.js";import{x as xe,H as ve,L as pe,i as X,e as ne,o as qe}from"./lazy-CKqR1774.js";import{m as ke,c as Oe}from"./DKTLEL5E-B7ILCVTH.js";import{F as be,S as Fe}from"./HWDLEDTA-C_JcdBMO.js";import{g as De,_ as Q,a as Le,x as I,f as oe,h as Ve,y as Re,$ as Ye,Y as Ue,T as Pe,b as He,q as Qe}from"./RZSVICHU-BiwjruZZ.js";import"./index-392ivruk.js";var K={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},ce={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},J={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},U={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},Ke=1e6,ze=class{constructor(){M(this,"type","requirement");M(this,"direction","TB");M(this,"requirements",new Map);M(this,"elements",new Map);M(this,"relations",[]);M(this,"classes",new Map);M(this,"title");M(this,"accTitle");M(this,"accDescr");M(this,"newId","");M(this,"newText","");M(this,"newRisk","");M(this,"newVerifyMethod","");M(this,"newElementType","");M(this,"newDocRef","");M(this,"styleCopies",0)}copy(e,r){if(this.styleCopies+=r.length,this.styleCopies>Ke)throw new xe("Requirement diagram applies too many style declarations.","limit",{type:"requirement"});for(let i of r)e.push(i)}setDirection(e){this.direction=e}addRequirement(e,r){let i=this.requirements.get(e);return i===void 0&&(i={name:e,type:r,requirementId:this.newId,text:this.newText,risk:this.newRisk,verifyMethod:this.newVerifyMethod,cssStyles:[],classes:["default"]},this.requirements.set(e,i)),this.newId=this.newText=this.newRisk=this.newVerifyMethod="",i}setNewReqId(e){this.newId=e}setNewReqText(e){this.newText=e}setNewReqRisk(e){this.newRisk=e}setNewReqVerifyMethod(e){this.newVerifyMethod=e}addElement(e){let r=this.elements.get(e);return r===void 0&&(r={name:e,type:this.newElementType,docRef:this.newDocRef,cssStyles:[],classes:["default"]},this.elements.set(e,r)),this.newElementType=this.newDocRef="",r}setNewElementType(e){this.newElementType=e}setNewElementDocRef(e){this.newDocRef=e}addRelationship(e,r,i){this.relations.push({type:e,src:r,dst:i})}node(e){return this.requirements.get(e)??this.elements.get(e)}setCssStyle(e,r){for(let i of e){let n=this.node(i);if(!r||!n)return;for(let l of r)this.copy(n.cssStyles,l.includes(",")?l.split(","):[l])}}setClass(e,r){var i;for(let n of e){let l=this.node(n);if(l)for(let s of r){l.classes.push(s);let d=(i=this.classes.get(s))==null?void 0:i.styles;d&&this.copy(l.cssStyles,d)}}}defineClass(e,r){for(let i of e){let n=this.classes.get(i);n===void 0&&(n={id:i,styles:[],textStyles:[]},this.classes.set(i,n));for(let s of r)s.includes("color")&&n.textStyles.push(s.replace("fill","bgFill")),n.styles.push(s);let l=r.flatMap(s=>s.split(","));for(let s of this.requirements.values())s.classes.includes(i)&&this.copy(s.cssStyles,l);for(let s of this.elements.values())s.classes.includes(i)&&this.copy(s.cssStyles,l)}}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,"")}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
2
+ `)}},me=["$end","INVALID","title","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","direction_tb","direction_bt","direction_rl","direction_lr","NEWLINE","EOF","RD","STRUCT_START","STRUCT_STOP","STYLE_SEPARATOR","COLONSEP","ID","TEXT","RISK","VERIFYMTHD","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","LOW_RISK","MED_RISK","HIGH_RISK","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","ELEMENT","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","TYPE","DOCREF","STYLE","CLASSDEF","CLASS","ALPHA","COLON","SEMICOLON","PERCENT","MINUS","BRKT","END_ARROW_L","END_ARROW_R","LINE","qString","unqString","COMMA"],We=new Map([["requirementdiagram",14],["id",19],["text",20],["risk",21],["verifymethod",22],["requirement",23],["functionalrequirement",24],["interfacerequirement",25],["performancerequirement",26],["physicalrequirement",27],["designconstraint",28],["low",29],["medium",30],["high",31],["analysis",32],["demonstration",33],["inspection",34],["test",35],["element",36],["contains",37],["copies",38],["derives",39],["satisfies",40],["verifies",41],["refines",42],["traces",43],["type",44],["docref",45],["style",46],["classdef",47],["class",48]]),Ge=/accTitle\s*:\s*/iy,Be=/accDescr\s*:\s*/iy,je=/accDescr\s*\{\s*/iy,Z=/direction\s+(?:(TB)|(BT)|(RL)|LR)/gi,he=/[\n\r\u2028\u2029]/g,Xe=22,ge=new Uint8Array(128);for(let e of`:,\r
3
+ {<>-=`)ge[e.charCodeAt(0)]=1;function Je(e){let r=e.length,i=[],n=[],l=[],s=[],d=0,t=0,E=[[],[],[],[]],R=[[],[],[],[]],m=[0,0,0,0],y=!1,x=-1;Z.lastIndex=0;for(let a=Z.exec(e);a!==null;a=Z.exec(e)){let p=a[1]!==void 0?0:a[2]!==void 0?1:a[3]!==void 0?2:3;E[p].push(a.index),R[p].push(Z.lastIndex),y=!0}let c=(a,p,u)=>{i.push(a),n.push(e.slice(p,u)),l.push(p),t=u},$=a=>{s.push(d),d=a},v=()=>{s.length>0&&(d=s.pop())},Y=(a,p)=>(a.lastIndex=p,a.test(e)?a.lastIndex:-1),o=a=>{let p=e.indexOf(`
4
+ `,a);return p===-1?r:p},h=()=>{if(x<t){he.lastIndex=t,x=he.test(e)?he.lastIndex-1:r;for(let a=0;a<4;a++){let p=E[a],u=m[a];for(;u<p.length&&p[u]<=x;)u++;m[a]=u}}for(let a=0;a<4;a++){let p=m[a]-1;if(p>=0&&E[a][p]>=t)return c(8+a,t,o(R[a][p])),!0}return!1},S=a=>{let p=a|32;if(p===116&&e.slice(t+1,t+5).toLowerCase()==="itle"&&ne(e.charCodeAt(t+5))){let u=t+6;for(;u<r;){let C=e.charCodeAt(u);if(C===35||C===10||C===59)break;u++}if(u>t+6)return c(2,t,u),!0}if(p===97&&(e.charCodeAt(t+1)|32)===99&&(e.charCodeAt(t+2)|32)===99){let u;if((u=Y(Ge,t))>=0)return $(3),c(3,t,u),!0;if((u=Y(Be,t))>=0)return $(4),c(5,t,u),!0;if((u=Y(je,t))>=0)return $(5),t=u,!0}if(y&&!qe(a)&&h())return!0;if(a===10||a===13&&e.charCodeAt(t+1)===10){let u=t;for(;u<r;){let C=e.charCodeAt(u);if(C===10)u++;else if(C===13&&e.charCodeAt(u+1)===10)u+=2;else break}return c(12,t,u),!0}if(ne(a)){for(t++;t<r&&ne(e.charCodeAt(t));)t++;return!0}if(a===35||a===37)return t=o(t),!0;if(X(a)){let u=t+1;for(;u<r&&X(e.charCodeAt(u));)u++;if(u-t<=Xe){let C=We.get(e.slice(t,u).toLowerCase());if(C!==void 0)return(C===46||C===47||C===48)&&$(2),c(C,t,u),!0}for(;u<r;){let C=e.charCodeAt(u);if(C<128&&ge[C]===1)break;u++}return i.push(59),n.push(e.slice(t,u).trim()),l.push(t),t=u,!0}switch(a){case 123:return c(15,t,t+1),!0;case 125:return c(16,t,t+1),!0;case 58:return e.charCodeAt(t+1)===58&&e.charCodeAt(t+2)===58?c(17,t,t+3):c(18,t,t+1),!0;case 60:return e.charCodeAt(t+1)!==45?!1:(c(55,t,t+2),!0);case 45:return e.charCodeAt(t+1)===62?c(56,t,t+2):c(57,t,t+1),!0;case 34:return $(1),t++,!0;case 44:return c(60,t,t+1),!0}return!1},q=a=>{if(X(a)){let p=t+1;for(;p<r&&X(e.charCodeAt(p));)p++;return c(49,t,p),!0}switch(a){case 58:return c(50,t,t+1),!0;case 59:return c(51,t,t+1),!0;case 37:return c(52,t,t+1),!0;case 45:return c(53,t,t+1),!0;case 35:return c(54,t,t+1),!0;case 32:return t++,!0;case 34:return $(1),t++,!0;case 10:return v(),t++,!0;case 44:return c(60,t,t+1),!0}return!1};for(;t<r;){let a=e.charCodeAt(t),p=!0;switch(d){case 0:p=S(a);break;case 2:p=q(a);break;case 1:if(a===34)v(),t++;else{let u=e.indexOf('"',t);c(58,t,u===-1?r:u)}break;case 3:v(),c(4,t,o(t));break;case 4:v(),c(6,t,o(t));break;case 5:if(a===125)v(),t++;else{let u=e.indexOf("}",t);c(7,t,u===-1?r:u)}break}if(!p)return i.push(1),n.push(""),l.push(t),{types:i,texts:n,starts:l}}let b=d===0?13:d===1?58:d===3?4:d===4?6:d===5?7:-1;return b!==-1&&c(b,r,r),c(0,r,r),{types:i,texts:n,starts:l}}var Ze=[K.REQUIREMENT,K.FUNCTIONAL_REQUIREMENT,K.INTERFACE_REQUIREMENT,K.PERFORMANCE_REQUIREMENT,K.PHYSICAL_REQUIREMENT,K.DESIGN_CONSTRAINT,ce.LOW_RISK,ce.MED_RISK,ce.HIGH_RISK,J.VERIFY_ANALYSIS,J.VERIFY_DEMONSTRATION,J.VERIFY_INSPECTION,J.VERIFY_TEST,"",U.CONTAINS,U.COPIES,U.DERIVES,U.SATISFIES,U.VERIFIES,U.REFINES,U.TRACES];function Ie(e){return e===49||e===50||e===54||e===53||e===51}function et(e,r){let{types:i,texts:n,starts:l}=Je(e),s=0,d=[],t=[],E=(o,h=o,...S)=>{let q=i[s];if(q===1)throw pe("requirement",e,l[s],"",!0);for(let a=h;a>=o;a--)S.unshift(a);let b=S.map(a=>`'${me[a]}'`).join(", ");throw pe("requirement",e,l[s],`Expecting ${b}, got '${me[q]}'`)},R=o=>(i[s]!==o&&E(o),n[s++]),m=(o,h)=>{let S=i[s];return(S<o||S>h)&&E(o,h),s++,Ze[S-23]},y=()=>{let o=i[s];return o!==59&&o!==58&&E(58,59),n[s++]},x=()=>{let o=i[s];if(o===3)s++,r.setAccTitle(R(4).trim());else if(o===5)s++,r.setAccDescription(R(6).trim());else if(o===7)r.setAccDescription(n[s++].trim());else return!1;return!0},c=()=>{let o=[];for(;;){let h=i[s];if(h!==49&&h!==59&&h!==58&&E(58,59,49),o.push(n[s++]),i[s]!==60)return o;s++}},$=()=>{let o=[];for(;;){Ie(i[s])||E(49,51,53,54);let h=n[s++];for(;Ie(i[s]);)h+=n[s++];if(o.push(h),i[s]!==60)return o;s++}},v=()=>{let o;return i[s]===17?(s++,o=c(),R(15)):i[s]===15?s++:E(15,15,17),R(12),o},Y=o=>{for(d.length=0,t.length=0;;){let h=i[s];if(h===16){s++;break}if(h===12){s++;continue}(o?h<19||h>22:h!==44&&h!==45)&&(o&&E(19,22,12,16),E(44,45,12,16)),s++,R(18),t.push(h===21?m(29,31):h===22?m(32,35):y()),d.push(h),R(12)}for(let h=d.length-1;h>=0;h--){let S=t[h];switch(d[h]){case 19:r.setNewReqId(S);break;case 20:r.setNewReqText(S);break;case 21:r.setNewReqRisk(S);break;case 22:r.setNewReqVerifyMethod(S);break;case 44:r.setNewElementType(S);break;default:r.setNewElementDocRef(S)}}};for(;x();)i[s]===12&&s++;for(i[s]!==14&&E(14,14,3,5,7),s++,R(12);;){let o=i[s];if(o===13)return;if(o===12)s++;else{if(x())continue;if(o>=8&&o<=11)s++,r.setDirection(o===8?"TB":o===9?"BT":o===10?"RL":"LR");else if(o>=23&&o<=28){let h=m(23,28),S=y(),q=v();Y(!0),r.addRequirement(S,h),q&&r.setClass([S],q)}else if(o===36){s++;let h=y(),S=v();Y(!1),r.addElement(h),S&&r.setClass([h],S)}else if(o===46){s++;let h=c();r.setCssStyle(h,$())}else if(o===47){s++;let h=c();r.defineClass(h,$())}else if(o===48){s++;let h=c();r.setClass(h,c())}else if(o===59||o===58){let h=n[s++],S=i[s];if(S===17)s++,r.setClass([h],c());else if(S===55||S===57){s++;let q=m(37,43);R(S===57?56:57);let b=y();S===57?r.addRelationship(q,h,b):r.addRelationship(q,b,h)}else E(17,17,55,57)}else E(12,13,3,5,7,8,9,10,11,23,24,25,26,27,28,36,47,48,46,59,58)}}}function tt(e){let r=[];for(let l of e.requirements.values())r.push({id:l.name,requirement:l,element:void 0,cssStyles:l.cssStyles,cssClasses:l.classes.join(" ")});for(let l of e.elements.values())r.push({id:l.name,requirement:void 0,element:l,cssStyles:l.cssStyles,cssClasses:l.classes.join(" ")});let i=l=>e.requirements.has(l)||e.elements.has(l)?l:void 0,n=e.relations.map((l,s)=>({id:`${l.src}-${l.dst}-${s}`,start:i(l.src),end:i(l.dst),type:l.type,contains:l.type===U.CONTAINS}));return{nodes:r,edges:n,direction:e.direction}}var st=40,rt=16,it=56,ee=14,B=10,ue=2,Se=12,lt=120,at=280,nt=240,de=26,Ne=6,ye=9,te=4.5,ot=28,ct=14;function se(e,r,i){if(r===0||e.lines.length===0)return e;let n=0,l=[],s=e.lines.map(d=>{let t=0,E=d.map(R=>{let m=R.style|r,y=R.icon!==void 0?R.width:i.width(R.text,e.size,m);return t+=y,{...R,style:m,width:y}});return l.push(t),t>n&&(n=t),E});return{...e,lines:s,widths:l,width:n}}function Te(e,r,i,n){let l=i+e.lineHeight/2+e.size*.35,s=Ue(e),d="";for(let t of e.lines){let E=!0;for(let R of t)R.icon!==void 0||R.text===""||(d+=`<tspan${E?` x="${I(r)}" y="${I(l)}"`:""}${Pe(R.style&~s)}>${He(R.text)}</tspan>`,E=!1);l+=e.lineHeight}return d===""?"":`<text${Qe(n,s)} text-anchor="start" xml:space="preserve">${d}</text>`}function ht(e,r,i,n){let l=Ne,s=e-i*l,d=r-n*l;return`<circle class="pele-marker" cx="${I(s)}" cy="${I(d)}" r="${l}"/><path class="pele-marker" d="M${I(s-i*l)},${I(d-n*l)}L${I(s+i*l)},${I(d+n*l)}M${I(s+n*l)},${I(d-i*l)}L${I(s-n*l)},${I(d+i*l)}"/>`}function ut(e,r,i,n){let l=e-i*ye,s=r-n*ye;return`<path class="pele-marker" d="M${I(l-n*te)},${I(s+i*te)}L${I(e)},${I(r)}L${I(l+n*te)},${I(s-i*te)}" stroke-linejoin="round"/>`}function dt(e,r,i){let n=new Map;for(let l of r){let s=l.route;if(!(l.src===l.dst||s.length<6))for(let d of[0,s.length-3]){let t=d===0?l.src:l.dst,E=e[t],R=s[d]-E.x,m=s[d+1]-E.y,y=d===0?3:d-3,x;if(Math.abs(Math.abs(m)-E.h/2)<.5)x=m<0?0:2;else if(Math.abs(Math.abs(R)-E.w/2)<.5)x=R<0?3:1;else continue;let c=t*4+x,$={route:s,at:d,toward:s[x%2===0?y:y+1]},v=n.get(c);v?v.push($):n.set(c,[$])}}for(let[l,s]of n){if(s.length<2)continue;let d=l>>2,t=l%2===1,E=(t?i[d].h:i[d].w)-2*ct,R=Math.max(0,Math.min(ot,E/(s.length-1)));s.sort((m,y)=>m.toward-y.toward);for(let m=0;m<s.length;m++){let y=(m-(s.length-1)/2)*R;t?s[m].route[s[m].at+1]=e[d].y+y:s[m].route[s[m].at]=e[d].x+y}}}function ft(e,r,i){return ke(e.direction)?Oe(i,n=>we(e,r,i,n)):we(e,r,i,!1)}function we(e,r,i,n){let l=tt(e),s=i.fontSize??16,d=Math.round(s*.875),t=i.measurer??ve(i.fontFamily),E=i.padding??8,R=new Map,m=[],y=[];for(let T of l.nodes){let f=De(T.cssStyles),A=(f.bold?1:0)|(f.italic?2:0),F=f.fontSize??s,k=f.fontSize??d,w=T.requirement,L=T.element,V=se(Q(`«${w?w.type:"Element"}»`,!1,t,k,4e3),A,t),g=se(Q(T.id,!0,t,F,at),A|1,t),N=w?[["ID",w.requirementId],["Text",w.text],["Risk",w.risk],["Verification",w.verifyMethod]]:[["Type",L.type],["Doc Ref",L.docRef]],_=[],D=0,z=0,O=0;for(let[j,G]of N){if(!G)continue;let le=se(Q(j,!1,t,k,4e3),A,t),ae=se(Q(G,!0,t,k,nt),A,t),Ee=Math.max(le.height,ae.height);_.push({key:le,value:ae,height:Ee}),D=Math.max(D,le.width),z=Math.max(z,ae.width),O+=Ee+ue}_.length>0&&(O+=2*B-ue);let P=2*B+V.height+g.height,H=Math.max(lt,Math.max(V.width,g.width)+2*ee,_.length>0?D+Se+z+2*ee:0);R.has(T.id)||R.set(T.id,m.length);let W=Me(H,P+O);W.seq=m.length,m.push({node:T,style:f,kind:V,name:g,rows:_,keyWidth:D,headHeight:P,w:H,h:P+O}),y.push(W)}let x=n?"TB":_e(l.direction),c=x==="LR"||x==="RL",$=[],v=[],Y=[];for(let T of l.edges){let f=T.start===void 0?void 0:R.get(T.start),A=T.end===void 0?void 0:R.get(T.end);if(f===void 0||A===void 0)continue;let F=Q(`«${T.type}»`,!1,t,d,4e3);f===A&&(c?y[f].h+=2*(de+F.height+8):y[f].w+=2*(de+F.width+12)),Y.push(T),v.push(F),$.push({src:f,dst:A,minlen:1,labelW:F.width+12,labelH:F.height+4,route:[],labelX:0,labelY:0})}let o=Ae(y,$,x,{nodeSep:st,edgeSep:rt,rankSep:it,portSep:20});dt(y,$,m);let h=Q(e.title,!1,t,s,4e3,1),S=h.height>0?h.height+12:0,q=Math.max(o.width,h.width),b=E+(q-o.width)/2,a=E+S,p=Math.ceil(q+2*E),u=Math.ceil(o.height+S+2*E),C="";for(let T=0;T<m.length;T++){let f=m[T],{w:A,h:F,style:k}=f,w=-A/2,L=-F/2,V=`<rect x="${I(w)}" y="${I(L)}" width="${I(A)}" height="${I(F)}" rx="${Le}" fill="var(--_s)" stroke="var(--_b)"${k.shape}/>`+oe(f.kind,0,L+B+f.kind.height/2,` class="pele-stereotype" font-size="${f.kind.size}" fill="var(--_m)"${k.text}`)+oe(f.name,0,L+B+f.kind.height+f.name.height/2,` class="pele-label" font-size="${f.name.size}" font-weight="var(--_hw)"${k.text}`);if(f.rows.length>0){let g=L+f.headHeight;V+=`<path class="pele-divider" d="M${I(w)},${I(g)}H${I(-w)}" stroke="var(--_b)"${k.line}/>`;let N=g+B,_="";for(let D of f.rows)_+=Te(D.key,w+ee,N,` class="pele-field" fill="var(--_m)"${k.text}`)+Te(D.value,w+ee+f.keyWidth+Se,N,` class="pele-value"${k.text}`),N+=D.height+ue;V+=`<g class="pele-fields" font-size="${f.rows[0].key.size}">${_}</g>`}C+=`<g class="pele-node ${f.node.requirement?"pele-requirement":"pele-element"}${Ve(f.node.cssClasses.replace(/^default\s?/,""))}" data-id="${Re(f.node.id)}" transform="translate(${I(y[T].x+b)},${I(y[T].y+a)})">${V}</g>`}let re="",ie="",fe=new Map;for(let T=0;T<$.length;T++){let f=$[T],A=Y[T],F=v[T],k=A.contains?2*Ne:0,w,L=f.labelX+b,V=f.labelY+a;if(f.src===f.dst){let g=m[f.src],N=y[f.src].x+b,_=y[f.src].y+a,D=fe.get(f.src)??0;fe.set(f.src,D+1);let z=(c?g.w:g.h)/2,O=Math.min(z-4,12+D*6),P=de+D*8,H=(j,G)=>c?`${I(N+G)},${I(_+g.h/2+j)}`:`${I(N+g.w/2+j)},${I(_+G)}`,W=P/.75;w={d:`M${H(k,-O)}C${H(W,-O)} ${H(W,O)} ${H(0,O)}`,sx:c?N-O:N+g.w/2,sy:c?_+g.h/2:_-O,sdx:c?0:-1,sdy:c?-1:0,ex:c?N+O:N+g.w/2,ey:c?_+g.h/2:_+O,edx:c?0:-1,edy:c?-1:0},c?(L=N,V=_+g.h/2+P+4+f.labelH/2):(L=N+g.w/2+P+4+f.labelW/2,V=_)}else{let g=f.route.slice();for(let N=0;N<g.length;N+=3)g[N]+=b,g[N+1]+=a;w=be(g,void 0,k,0)}re+=`<g class="pele-edge pele-relationship-${A.contains?"contains":"arrow"}" data-id="${Re(A.id)}"><path d="${w.d}"${A.contains?"":' stroke-dasharray="5 4"'}/>`+(A.contains?ht(w.sx,w.sy,w.sdx,w.sdy):ut(w.ex,w.ey,w.edx,w.edy))+"</g>",ie+=Fe(A.id,F,L,V,"")}return{svg:Ye("requirement",p,u,s,i,e,oe(h,p/2,E+h.height/2,' class="pele-title" font-weight="var(--_tw)"')+(re?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${re}</g>`:"")+(ie?`<g class="pele-edge-labels" font-size="${d}" fill="var(--_m)">${ie}</g>`:"")+`<g class="pele-nodes">${C}</g>`),width:p,height:u,links:[]}}var Tt={type:"requirement",parse(e,r,i){let n=new ze;return i&&(n.title=i),et(e,n),n},render:ft};export{Tt as requirement};