isorite 0.9.1 → 0.11.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.
- package/dist/core.js +175 -14
- package/dist/main.js +1217 -52
- package/notes/algorithms/the-quadtree/subdivision.svg +15 -0
- package/notes/algorithms/the-quadtree.md +2 -0
- package/package.json +2 -1
- package/plugin/server.ts +1 -1
- package/web/_app/immutable/assets/{0.CTbO0owi.css → 0.DcsDj0O1.css} +1 -1
- package/web/_app/immutable/assets/5.DbDKXCoO.css +1 -0
- package/web/_app/immutable/assets/NoteEditor.S3q5lmKq.css +1 -0
- package/web/_app/immutable/assets/drawn.CHbcoujQ.css +1 -0
- package/web/_app/immutable/chunks/{8wVGBFSs.js → -2Meesge.js} +3 -3
- package/web/_app/immutable/chunks/{BL3mLym4.js → 9z49435t.js} +1 -1
- package/web/_app/immutable/chunks/{DMAYXnpq.js → BA8Hpxhg.js} +1 -1
- package/web/_app/immutable/chunks/{CKSRTWxH.js → BAclEN0O.js} +1 -1
- package/web/_app/immutable/chunks/{DECNRCf2.js → BLmF1B2i.js} +1 -1
- package/web/_app/immutable/chunks/{CiVjR8gq.js → BTclWEfx.js} +1 -1
- package/web/_app/immutable/chunks/{Cp_JbuGh.js → BWVMfAMh.js} +1 -1
- package/web/_app/immutable/chunks/{D4fLEcOQ.js → BXAOBcPb.js} +1 -1
- package/web/_app/immutable/chunks/BYSDTLqw.js +1 -0
- package/web/_app/immutable/chunks/{DDuWClBR.js → BgT6ZdzK.js} +1 -1
- package/web/_app/immutable/chunks/{CO2Y5y64.js → Bq2GBAJ0.js} +1 -1
- package/web/_app/immutable/chunks/BqrMZ9MX.js +1 -0
- package/web/_app/immutable/chunks/{BN6xhG8e.js → Bt7VOT5H.js} +1 -1
- package/web/_app/immutable/chunks/{BGbXxNFa.js → BuUzVkG2.js} +1 -1
- package/web/_app/immutable/chunks/{Brxvm_b1.js → By4S_gy5.js} +1 -1
- package/web/_app/immutable/chunks/{CRIvE37b.js → BymwHy7o.js} +1 -1
- package/web/_app/immutable/chunks/{BrqJKzQU.js → CD6xPodA.js} +1 -1
- package/web/_app/immutable/chunks/{BXF2XoRC.js → CMeq8te_.js} +1 -1
- package/web/_app/immutable/chunks/CODXTnUW.js +523 -0
- package/web/_app/immutable/chunks/{CEufJyoj.js → CQd9D8Nc.js} +1 -1
- package/web/_app/immutable/chunks/{BrGmYbJT.js → CT_Ry4q8.js} +1 -1
- package/web/_app/immutable/chunks/{CQadubS9.js → C_amgxV1.js} +1 -1
- package/web/_app/immutable/chunks/{GRrQoDGJ.js → CfL6O_ia.js} +1 -1
- package/web/_app/immutable/chunks/{spNKdrPy.js → CjtKPNlv.js} +1 -1
- package/web/_app/immutable/chunks/{DxLkKbK2.js → Cl5zRP_n.js} +1 -1
- package/web/_app/immutable/chunks/{CETSRtnV.js → CyFLqlvP.js} +1 -1
- package/web/_app/immutable/chunks/{Bq5hCPe1.js → Czz9qOh8.js} +1 -1
- package/web/_app/immutable/chunks/{BguXRgvc.js → D3-rqfsM.js} +1 -1
- package/web/_app/immutable/chunks/{bcQIrid8.js → D5XlJBy8.js} +1 -1
- package/web/_app/immutable/chunks/{TuFg0KqZ.js → D5vocsTl.js} +1 -1
- package/web/_app/immutable/chunks/{CTscJvp6.js → D95RKsvN.js} +1 -1
- package/web/_app/immutable/chunks/{BzI3yqBQ.js → DBC2xjOo.js} +1 -1
- package/web/_app/immutable/chunks/DDVefAkE.js +7 -0
- package/web/_app/immutable/chunks/{BsLNwr5A.js → DF89zyH-.js} +1 -1
- package/web/_app/immutable/chunks/DGmSCGD3.js +1 -0
- package/web/_app/immutable/chunks/{DacMdKjW.js → DNjLZcwq.js} +1 -1
- package/web/_app/immutable/chunks/{C-dfcq9W.js → DRX-TQzj.js} +1 -1
- package/web/_app/immutable/chunks/{BunrC_8P.js → DX4bJJO0.js} +1 -1
- package/web/_app/immutable/chunks/{EQVRMnZU.js → DXK7PB4g.js} +1 -1
- package/web/_app/immutable/chunks/{mbLqADPr.js → DXTK-eyo.js} +1 -1
- package/web/_app/immutable/chunks/{DII7jNnq.js → DaulBP5z.js} +1 -1
- package/web/_app/immutable/chunks/{wCTXGvXm.js → DbNETcPs.js} +1 -1
- package/web/_app/immutable/chunks/Db_gdTNI.js +1 -0
- package/web/_app/immutable/chunks/{CX-xckzu.js → DfCZPwp1.js} +1 -1
- package/web/_app/immutable/chunks/{DKNOMI4Y.js → Dh1lBxfx.js} +1 -1
- package/web/_app/immutable/chunks/DktGnzDy.js +151 -0
- package/web/_app/immutable/chunks/{BgczuZKA.js → DkxkvOjx.js} +1 -1
- package/web/_app/immutable/chunks/{0M1khDs2.js → DlXrOzlh.js} +1 -1
- package/web/_app/immutable/chunks/{B85D_PlV.js → Dpa4Syyy.js} +1 -1
- package/web/_app/immutable/chunks/DshHzxgH.js +1 -0
- package/web/_app/immutable/chunks/DuLysVkb.js +1 -0
- package/web/_app/immutable/chunks/{CdY1YAit.js → EMo1IeTW.js} +1 -1
- package/web/_app/immutable/chunks/F7HCRtmu.js +1 -0
- package/web/_app/immutable/chunks/Iqr2CudW.js +3 -0
- package/web/_app/immutable/chunks/{CoyQYage.js → RFxekmX-.js} +1 -1
- package/web/_app/immutable/chunks/{vk5Wkr31.js → RlApGeew.js} +1 -1
- package/web/_app/immutable/chunks/{CLVUDRRk.js → Xm0YTnxV.js} +1 -1
- package/web/_app/immutable/chunks/{CZ8wTb_M.js → gPtCGHiy.js} +1 -1
- package/web/_app/immutable/chunks/{B3aPQAYq.js → mLFVM17H.js} +1 -1
- package/web/_app/immutable/chunks/{D4SKbj9K.js → oWM_kgYq.js} +1 -1
- package/web/_app/immutable/chunks/{wj7G6pU5.js → rghE0CVz.js} +1 -1
- package/web/_app/immutable/chunks/{B9YLdnR_.js → tUSDgbpy.js} +1 -1
- package/web/_app/immutable/chunks/{DTdlqvEb.js → vfDvz3qP.js} +1 -1
- package/web/_app/immutable/chunks/{BRKS-CCX.js → whhiiiga.js} +1 -1
- package/web/_app/immutable/chunks/wxBqjpRy.js +1 -0
- package/web/_app/immutable/entry/app.wp4GfiBT.js +2 -0
- package/web/_app/immutable/entry/start.PPXyd7_0.js +1 -0
- package/web/_app/immutable/nodes/0.JerS9yOA.js +26 -0
- package/web/_app/immutable/nodes/1.C-RxYNx3.js +1 -0
- package/web/_app/immutable/nodes/2.Bbkruoyi.js +1 -0
- package/web/_app/immutable/nodes/3.BkpGKa9k.js +1 -0
- package/web/_app/immutable/nodes/4.Bj25nsxG.js +2 -0
- package/web/_app/immutable/nodes/5.D9sfzyBX.js +9 -0
- package/web/_app/immutable/nodes/6.Di1re0aR.js +1 -0
- package/web/_app/immutable/nodes/7.MWEn-qPC.js +1 -0
- package/web/_app/version.json +1 -1
- package/web/index.html +18 -17
- package/web/kit/chart.js +55 -0
- package/web/kit/isorite.css +32 -0
- package/web/kit/kit.css +80 -0
- package/web/kit/kit.js +543 -0
- package/web/kit/licenses/d3.txt +13 -0
- package/web/kit/licenses/interval-tree-1d.txt +22 -0
- package/web/kit/licenses/isoformat.txt +13 -0
- package/web/kit/licenses/katex.txt +21 -0
- package/web/kit/licenses/observablehq-plot.txt +13 -0
- package/web/kit/licenses/three.txt +21 -0
- package/web/kit/math.css +1 -0
- package/web/kit/math.js +257 -0
- package/web/kit/model.js +4236 -0
- package/web/kit/plain.css +16 -0
- package/web/_app/immutable/assets/5.TsqJFEFF.css +0 -1
- package/web/_app/immutable/assets/NoteEditor.8wWtZK_A.css +0 -1
- package/web/_app/immutable/chunks/CBWiKnLz.js +0 -1
- package/web/_app/immutable/chunks/CHbKgHy3.js +0 -1
- package/web/_app/immutable/chunks/CJ1dhP0p.js +0 -1
- package/web/_app/immutable/chunks/CLkY0zVi.js +0 -1
- package/web/_app/immutable/chunks/D-aFnd2T.js +0 -1
- package/web/_app/immutable/chunks/DRQEUdad.js +0 -1
- package/web/_app/immutable/chunks/DZYaqCwi.js +0 -1
- package/web/_app/immutable/chunks/D_19S_Iu.js +0 -1
- package/web/_app/immutable/chunks/DcgxJ8bF.js +0 -673
- package/web/_app/immutable/chunks/Ddgejj-u.js +0 -1
- package/web/_app/immutable/chunks/nMarIA7J.js +0 -3
- package/web/_app/immutable/chunks/vUsuwDSf.js +0 -6
- package/web/_app/immutable/entry/app.CswuY3sh.js +0 -2
- package/web/_app/immutable/entry/start.D8ZvSyBD.js +0 -1
- package/web/_app/immutable/nodes/0.DBoa3NAQ.js +0 -26
- package/web/_app/immutable/nodes/1.DrwFerb8.js +0 -1
- package/web/_app/immutable/nodes/2.DPmbppXV.js +0 -1
- package/web/_app/immutable/nodes/3.BW7AbIrS.js +0 -1
- package/web/_app/immutable/nodes/4.B5HAyMKs.js +0 -2
- package/web/_app/immutable/nodes/5.BvScSoCM.js +0 -5
- package/web/_app/immutable/nodes/6.Bna6qY2G.js +0 -1
- package/web/_app/immutable/nodes/7.BxQaF3lD.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./
|
|
2
|
-
import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DshHzxgH.js","./gPtCGHiy.js","./DfCZPwp1.js","./DciMwFJ1.js","./BLmF1B2i.js","./RFxekmX-.js","./Dh1lBxfx.js","./Bt7VOT5H.js","./D6QVYUu9.js","./tUSDgbpy.js","./RlApGeew.js","./CggtIYAM.js","./D95RKsvN.js","./DX4bJJO0.js","./DBC2xjOo.js","./BZmnMkFw.js","./D5XlJBy8.js","./CjtKPNlv.js","./rghE0CVz.js","./BAclEN0O.js","./Czz9qOh8.js","./BymwHy7o.js","./Xm0YTnxV.js","./By4S_gy5.js","./BTclWEfx.js","./CgA1WoRv.js","./Cl5zRP_n.js","./9z49435t.js","./Dpa4Syyy.js","./CT_Ry4q8.js","./DkxkvOjx.js","./BuUzVkG2.js","./BWVMfAMh.js","./Ce_hS451.js","./CD6xPodA.js","./D3-rqfsM.js","./C_amgxV1.js","./DF89zyH-.js","./vfDvz3qP.js","./DXK7PB4g.js","./D5vocsTl.js","./DbNETcPs.js","./whhiiiga.js","./BA8Hpxhg.js","./DRX-TQzj.js","./CQd9D8Nc.js","./DlXrOzlh.js","./EMo1IeTW.js","./oWM_kgYq.js","./BXAOBcPb.js","./Bq2GBAJ0.js","./CyFLqlvP.js","./DXTK-eyo.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{vt as e}from"./Iqr2CudW.js";import{t}from"./CRzLMJPS.js";function n(e){return e<128?e===32||e>=9&&e<=13:e===160||e===5760||e>=8192&&e<=8202||e===8232||e===8233||e===8239||e===8287||e===12288||e===65279}function r(e){return e===32||e===9}function i(e){return e===10||e===13||e===8232||e===8233}function a(e){return e>=48&&e<=57}function o(e){return e>=65&&e<=90||e>=97&&e<=122}function s(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function c(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95}var l=class extends Error{code;type;mermaidType;line;column;snippet;constructor(e,t=`syntax`,n={}){super(e),this.name=`PeleError`,this.code=t,this.type=n.type??null,this.mermaidType=n.mermaidType??null,this.line=n.line??0,this.column=n.column??0,this.snippet=n.snippet??``}};function u(e,t,n){return Array.from(e.matchAll(t),e=>[e.index,e.index+e[0].length,n])}function d(e,t){let n=0;for(let[r,i,a]of e){let e=r-n;if(t<e)break;if(t<e+a)return r+Math.min(t-e,i-r-1);n+=i-r-a}return t+n}function f(e,t){for(let n=e.length-1;n>=0;n--)t=d(e[n],t);return t}var p;function m(e,t){let n=p;p=e;try{return t()}finally{p=n}}function h(e,t){return p!==void 0&&e===p.parsed?p.find(t):[e,t]}function g(e,t){[e,t]=h(e,t);let n=1,r=0;for(let i=e.indexOf(`
|
|
3
3
|
`);i!==-1&&i<t;i=e.indexOf(`
|
|
4
4
|
`,i+1))n++,r=i+1;let i=e.indexOf(`
|
|
5
5
|
`,t);i===-1&&(i=e.length);let a=t-r+1,o=e.slice(r,i);return{line:n,column:a,snippet:o+`
|
|
@@ -42,4 +42,4 @@ ${r}`,`syntax`,{type:e,...a})}var v=`amp:38,lt:60,gt:62,quot:34,apos:39,nbsp:160
|
|
|
42
42
|
`,e+1))o++;n=n.slice(s.length),t?.push([[0,s.length,0]])}return n=Ge(n,i,t),{text:ze(n),title:a,config:i,withComments:n,lineOffset:o}}var qe=/#\w+;/g,Je=/^\+?\d+$/,Ye=RegExp(`[\\n\\r\u2028\u2029]`,`g`);function Xe(e){if(e===void 0)return;let t=[];return e.push(t),t}function Ze(e,t,r){let i=Xe(r),a=e.indexOf(t);if(a===-1)return e;let o=``,s=0;for(;a!==-1;){Ye.lastIndex=a;let r=Ye.test(e)?Ye.lastIndex-1:e.length,c=!1,l=-1;for(let i=a+t.length;i<r;i++){let t=e.charCodeAt(i);if(t===58)c=!0;else if(t===35){if(c){l=i;break}}else n(t)&&(c=!1)}if(l!==-1){let t=e.lastIndexOf(`;`,r-1);t>l&&(i?.push([t,t+1,0]),o+=e.slice(s,t),s=t+1)}a=r>=e.length?-1:e.indexOf(t,r+1)}return s===0?e:o+e.slice(s)}function Qe(e,t){if(!e.includes(`#`))return e;e=Ze(Ze(e,`style`,t),`classDef`,t);let n=Xe(t);return e.replace(qe,(e,t)=>{let r=e.substring(1,e.length-1),i=(Je.test(r)?`fl°°`:`fl°`)+r+`¶ß`;return n?.push([t,t+e.length,i.length]),i})}function Z(e){return e.ownerDocument?.defaultView??globalThis}function $e(e,t){let n=e.clientWidth-(parseFloat(t.paddingLeft)||0)-(parseFloat(t.paddingRight)||0);return n>0?n:0}function et(e,t,n,r,i){let a=t.width/n,o=t.height/n,s=(e,t,n)=>t>=n?Math.min(Math.max(e,n-t),0):Math.min(Math.max(e,0),n-t);return{x:s(r,a,e.width),y:s(i,o,e.height),width:a,height:o}}var Q=1.25,tt=48,nt=`--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_b:var(--pele-border,#8a8a8a);position:absolute;top:var(--pele-zoom-top,8px);right:var(--pele-zoom-right,8px);bottom:var(--pele-zoom-bottom,auto);left:var(--pele-zoom-left,auto);display:flex;flex-direction:column;gap:2px;padding:2px;width:auto;max-width:none;border:1px solid var(--_b);border-radius:var(--pele-radius,4px);background:var(--_bg);color:var(--_fg);line-height:0`,rt=`appearance:none;display:grid;place-items:center;width:24px;height:24px;margin:0;padding:0;border:0;border-radius:calc(var(--pele-radius,4px) - 1px);background:transparent;color:inherit;font:inherit;cursor:var(--pele-zoom-cursor,pointer)`,it={zoomIn:`M5 12h14M12 5v14`,zoomOut:`M5 12h14`,reset:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5`},at={zoomIn:`Zoom in`,zoomOut:`Zoom out`,reset:`Reset zoom`};function ot(e,t={}){return st(e,t,!0)}function st(e,t,n){let r=null,i={width:0,height:0},a={width:0,height:0},o={width:0,height:0},s=!1,c=``,l={width:``,height:``,maxWidth:``,margin:``,display:``},u=0,d=0,f=0,p=0,m=()=>Z(e),h=()=>i.width>0&&a.width>0?a.width/i.width:1,g=()=>Math.max(h(),t.maxScale??3),_=()=>r!==null&&i.width>0&&(t.always===!0||h()<.999),v=()=>{if(!r||u!==0)return;let t=r.getBoundingClientRect();a={width:t.width,height:t.height},o={width:Math.max(a.width,e.clientWidth),height:Math.max(a.height,e.clientHeight)},s=o.width>a.width+1||o.height>a.height+1,s||(o=a);let n=m().getComputedStyle(e);c=[`Top`,`Right`,`Bottom`,`Left`].map(e=>`${-(parseFloat(n.getPropertyValue(`padding-${e.toLowerCase()}`))||0)}px`).join(` `)},y,b={},x=!1,S=()=>{if(t.controls===!1)return;let n=_();if(!y){if(!n)return;let r=e.ownerDocument;y=r.createElement(`div`),y.className=`pele pele-zoom`,y.setAttribute(`style`,nt);let i={zoomIn:()=>T((u||h())*Q*Q),zoomOut:()=>T((u||h())/(Q*Q)),reset:()=>w()};for(let e of[`zoomIn`,`zoomOut`,`reset`]){let n=r.createElement(`button`),a=t.labels?.[e]??at[e];n.type=`button`,n.className=`pele-zoom-${e===`zoomIn`?`in`:e===`zoomOut`?`out`:`reset`}`,n.setAttribute(`style`,rt),n.setAttribute(`aria-label`,a),n.title=a,n.innerHTML=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="${it[e]}"/></svg>`,n.addEventListener(`click`,i[e]),b[e]=n,y.append(n)}}n&&!x&&m().getComputedStyle(e).position===`static`&&(e.style.position=`relative`,x=!0),n&&y.parentNode!==e&&e.append(y),y.hidden=!n,y.style.display=n?`flex`:`none`;let r=(e,t)=>{e&&(e.disabled=t,e.style.opacity=t?`0.35`:``,e.style.cursor=t?`default`:`var(--pele-zoom-cursor,pointer)`)};r(b.zoomIn,(u||h())>=g()*.999),r(b.zoomOut,u===0),b.reset&&(b.reset.style.display=u===0?`none`:`grid`)},C=e=>y!==void 0&&e.target instanceof m().Node&&y.contains(e.target),w=()=>{r&&(u=0,r.setAttribute(`viewBox`,`0 0 ${i.width} ${i.height}`),r.style.width=l.width,r.style.height=l.height,r.style.maxWidth=l.maxWidth,r.style.margin=l.margin,r.style.display=l.display,r.style.cursor=``,r.style.userSelect=``,v(),r.style.touchAction=_()?`pan-y`:``,_()?r.setAttribute(`tabindex`,`0`):r.removeAttribute(`tabindex`),B(_()),S())},T=(e,t,n)=>{if(!r||(u===0&&v(),!_()))return;let i=u||h(),a=Math.min(Math.max(e,h()),g());if(a<=h()*1.001){w();return}let l=r.getBoundingClientRect(),p=t??l.left+l.width/2,m=n??l.top+l.height/2,y=(u?d:0)+(p-l.left)/i,b=(u?f:0)+(m-l.top)/i;u=a;let x=l;s&&(r.style.maxWidth=`none`,r.style.margin=c,r.style.display=`block`,r.style.width=`${o.width}px`,r.style.height=`${o.height}px`,x=r.getBoundingClientRect()),E(y-(p-x.left)/u,b-(m-x.top)/u),r.style.cursor=`grab`,r.style.userSelect=`none`,r.style.touchAction=`none`,S()},E=(e,t)=>{if(!r)return;let n=et(i,o,u,e,t);d=n.x,f=n.y,r.setAttribute(`viewBox`,`${d} ${f} ${n.width} ${n.height}`)},D=(e,t)=>{u!==0&&E(d-e/u,f-t/u)},O=()=>{j();let t=e.clientWidth+e.clientHeight;t!==p&&(p=t,w())},k,A,j=()=>{if(!n)return;let t=m();t!==A&&(k?.disconnect(),A=t,k=t.ResizeObserver?new t.ResizeObserver(O):void 0,k?.observe(e))},M=()=>{j();let t=e.firstElementChild;r=t&&t.localName===`svg`?t:null,u=0,r?(i={width:Number(r.getAttribute(`width`))||0,height:Number(r.getAttribute(`height`))||0},l={width:r.style.width,height:r.style.height,maxWidth:r.style.maxWidth,margin:r.style.margin,display:r.style.display},w()):(y?.remove(),B(!1))},N=new Map,P=!1,F=0,I=0,L=()=>{let[e,t]=[...N.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),x:(e.x+t.x)/2,y:(e.y+t.y)/2}},R=t=>{!_()||C(t)||t.pointerType===`mouse`&&t.button!==0||(N.set(t.pointerId,{x:t.clientX,y:t.clientY}),F=0,N.size===2&&(I=L().distance),(N.size===2||u!==0)&&(e.setPointerCapture?.(t.pointerId),r&&(r.style.cursor=`grabbing`)))},ee=e=>{let t=N.get(e.pointerId);if(t){if(N.size===2){let t=L();N.set(e.pointerId,{x:e.clientX,y:e.clientY});let n=L();I>0&&n.distance>0&&T((u||h())*(n.distance/t.distance),n.x,n.y),D(n.x-t.x,n.y-t.y),P=!0;return}N.set(e.pointerId,{x:e.clientX,y:e.clientY}),u!==0&&(F+=Math.abs(e.clientX-t.x)+Math.abs(e.clientY-t.y),F>4&&(P=!0),D(e.clientX-t.x,e.clientY-t.y))}},te=e=>{N.delete(e.pointerId)&&(I=0,N.size===0&&r&&u!==0&&(r.style.cursor=`grab`))},ne=e=>{P&&(P=!1,e.preventDefault(),e.stopPropagation())},re=e=>{if(!(e.ctrlKey||e.metaKey)||!_())return;e.preventDefault(),u===0&&v();let t=Math.min(Math.max(-e.deltaY,-24),24);T((u||h())*2**(t*.02),e.clientX,e.clientY)},ie=e=>{!_()||C(e)||(e.preventDefault(),u===0?T(Math.max(1,h()*2),e.clientX,e.clientY):w())},ae=e=>{if(!_()||C(e)||e.ctrlKey||e.metaKey||e.altKey)return;let t=e.key;if(t===`+`||t===`=`)T((u||h())*Q);else if(t===`-`)T((u||h())/Q);else{if(u===0)return;if(t===`0`||t===`Escape`)w();else if(t===`ArrowLeft`)D(tt,0);else if(t===`ArrowRight`)D(-tt,0);else if(t===`ArrowUp`)D(0,tt);else if(t===`ArrowDown`)D(0,-tt);else return}e.preventDefault()},oe=e=>{if(!r||e.target!==r)return;let t=!0;try{t=r.matches(`:focus-visible`)}catch{}r.style.outline=t?``:`none`},z=0,se=e=>{_()&&(e.preventDefault(),u===0&&v(),z=u||h())},ce=e=>{if(z===0)return;e.preventDefault();let{scale:t,clientX:n,clientY:r}=e;T(z*t,n,r)},le=()=>{z=0},ue=[[`pointerdown`,R],[`pointermove`,ee],[`pointerup`,te],[`pointercancel`,te],[`click`,ne,{capture:!0}],[`dblclick`,ie],[`keydown`,ae],[`focusin`,oe]];for(let[t,n,r]of ue)e.addEventListener(t,n,r);let de=[[`wheel`,re,{passive:!1}],[`gesturestart`,se,{passive:!1}],[`gesturechange`,ce,{passive:!1}],[`gestureend`,le,{passive:!1}]],fe=!1;function B(t){if(t!==fe){fe=t;for(let[n,r,i]of de)t?e.addEventListener(n,r,i):e.removeEventListener(n,r,i);t||(z=0)}}return p=e.clientWidth+e.clientHeight,M(),{get scale(){return u||h()},get fit(){return h()},zoomBy(e){T((u||h())*e)},zoomTo(e){T(e)},reset:w,refresh:M,resized:O,destroy(){w(),r&&(r.style.touchAction=``,r.removeAttribute(`tabindex`)),y?.remove(),x&&(e.style.position=``),k?.disconnect(),B(!1);for(let[t,n,r]of ue)e.removeEventListener(t,n,r)}}}function ct(e,t){let n=t?Z(t).getComputedStyle(t):e;return{family:n.getPropertyValue(`--pele-font`).trim()||e.fontFamily||void 0,mono:n.getPropertyValue(`--pele-font-mono`).trim()||void 0}}function lt(e){return[...new Set([e.ownerDocument?.fonts,globalThis.document?.fonts])].filter(e=>e!==void 0)}var ut=new WeakMap;function dt(e){let t=ut.get(e);return t||(t=e.ready.then(()=>{ut.delete(e),he()}),ut.set(e,t)),t}var ft=new WeakMap;function pt(e,t){Promise.all(e.map(dt)).then(()=>{let e=t.deref();e&&ft.get(e)?.()})}var mt=new WeakMap,ht=0,gt=Math.random().toString(36).slice(2,7),_t=`position:relative;height:1.3em;margin-top:-1.3em;line-height:1.3;font-size:0.8em;color:var(--pele-error,#e45756);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;`,vt=`margin:0;font-size:0.8em;font-family:var(--pele-font-mono,monospace);color:var(--pele-error,#e45756);white-space:pre-wrap;`;function yt(e){return e instanceof Error?e.message:String(e)}function bt(e){let t=e.split(`
|
|
43
43
|
`).filter(e=>e.trim()!==``);return t.length>1?`${t[0]} ${t[t.length-1]}`:t[0]??``}function xt(e,t,n,r={}){mt.get(t)?.destroy();let i=n,a=r,o,s,c=!1,l,u,d,f=`pele-${gt}-${++ht}`,p={},m,h=-1,g=!1,_=!1,v=!1,y=(n,r)=>{let{onRender:i,onError:s,sanitize:c,...l}=a,d={...l,idPrefix:l.idPrefix??f,fontFamily:l.fontFamily??p.family,fontFamilyMono:l.fontFamilyMono??p.mono,maxWidth:void 0};r&&(u=e.render(o,d),m=void 0);let g=a.maxWidth??$e(t,n);return h=g,g>0&&g<u.width&&(m??=e.render(o,{...d,maxWidth:1}).svg!==u.svg,m)?e.render(o,{...d,maxWidth:g}):u},b=e=>{a.sanitize?t.replaceChildren(a.sanitize(e)):t.innerHTML=e},x,S=()=>{let e=d?t.firstElementChild:null;if(e?.style&&(e.style.opacity=l===void 0?``:`0.4`),l===void 0){x?.remove(),x=void 0;return}let n=t.ownerDocument;if(!n)return;x??=n.createElement(`div`),x.className=`pele pele-error`;let r=yt(l);e?(x.textContent=bt(r),x.title=r,x.setAttribute(`style`,_t),x.parentNode!==t&&t.append(x)):(x.textContent=r,x.removeAttribute(`title`),x.setAttribute(`style`,vt),t.replaceChildren(x))},C=e=>{l=e,S(),a.onError?.(e)},w=()=>{if(_||v)return;let e=lt(t).filter(e=>e.status===`loading`);e.length!==0&&(_=!0,pt(e,new WeakRef(R)))},T=()=>{_=!1,g=!0,M()},E=(e,n=!e)=>{let r=Z(t).getComputedStyle(t),i=t.firstElementChild??null,f={fonts:p,natural:u,adapts:m,drawnFor:h,stale:g},_;try{if(e&&(p=ct(r,i),g=t.isConnected===!1),_=y(r,e),n&&_.svg===d?.svg){e&&(s=o),c&&l!==void 0&&(l=void 0,S());return}b(_.svg)}catch(e){throw{fonts:p,natural:u,adapts:m,drawnFor:h,stale:g}=f,e}if(e&&(s=o),e&&!i&&t.firstElementChild){let e=ct(r,t.firstElementChild);if(e.family!==p.family||e.mono!==p.mono){let t={fonts:p,natural:u,adapts:m,drawnFor:h};p=e;try{let e=y(r,!0);b(e.svg),_=e}catch{({fonts:p,natural:u,adapts:m,drawnFor:h}=t)}}}d=_,c&&(l=void 0),S(),D?.refresh(),w(),a.onRender?.(_)},D,O=!1,k=()=>{let e=a.zoom??`auto`;e!==O&&(D?.destroy(),O=e,D=e===!1?void 0:st(t,typeof e==`object`?e:{always:e===!0},!1))},A=()=>t.isConnected===!1||!(t.clientWidth>0),j=()=>t.isConnected!==!1&&!(t.clientWidth>0),M=()=>{if(v||(L(),!o||A()))return;let e=Z(t).getComputedStyle(t),n=ct(e,t.firstElementChild??null);try{if(g||n.family!==p.family||n.mono!==p.mono)E(!0,!0);else if(m!==!1&&a.maxWidth===void 0){let n=$e(t,e);n!==h&&n!==d?.width&&E(!1)}}catch(e){g=!1,c&&(l=e),o!==s&&(o=s,c=!1),S(),a.onError?.(e)}D?.resized(),w()},N,P,F,I=()=>{F!==void 0&&N?.cancelAnimationFrame(F),F=void 0},L=()=>{let e=Z(t);e!==N&&(P?.disconnect(),I(),N=e,P=e.ResizeObserver?new e.ResizeObserver(()=>{if(F===void 0){if(!e.requestAnimationFrame)return M();F=e.requestAnimationFrame(()=>{F=void 0,M()})}}):void 0,P?.observe(t))},R={get result(){return d},get source(){return i},get error(){return l},get zoom(){return D},update(t,n=a){let r=!c||t!==i||n.limit!==a.limit||n.maxEdges!==a.maxEdges||n.config!==a.config;i=t,a=n;let l=o;if(r)try{l=e.parse(t,n)}catch(e){c=!1,C(e),k();return}let u=d;if(o=l,c=!0,j())g=!0,k();else{try{E(!0)}catch(e){if(d!==u)throw k(),e;o=s,c=!1,C(e)}k()}},refresh:M,destroy(){v=!0,P?.disconnect(),P=void 0,I(),N=void 0,D?.destroy(),ft.delete(R),mt.get(t)===R&&mt.delete(t)}};ft.set(R,T);try{o=e.parse(n,r),c=!0,E(!0)}catch(e){if(d)throw e;o=s,c=!1,C(e)}return k(),L(),mt.set(t,R),R}var St=new Map;function Ct(...e){for(let t of e)St.set(t.type,t)}function wt(e){return St.has(e)}var Tt=5e4,Et=4e6,Dt=5e3;function Ot(e){try{return e()}catch(e){throw e instanceof RangeError?new l(`Diagram is nested too deeply.`,`limit`):e}}function kt(e,t){try{return t()}catch(t){if(t instanceof RangeError)throw new l(`Diagram is nested too deeply.`,`limit`,e);if(t instanceof l){t.type??=e.type,t.mermaidType??=e.mermaidType;let n=D(t.message);n!==t.message&&(t.stack=t.stack?.replace(t.message,()=>n),t.message=n),t.snippet=D(t.snippet)}throw t}}var At=new WeakMap;function jt(e,t=Tt,n=Dt,r){if(e.length>t)throw new l(`Diagram source is longer than the limit of ${t} characters.`,`limit`);let i=Ke(e),a=Ne(i.text);if(a===null)throw new l(`No diagram type detected for the given text.`,`unsupported-diagram`);let o=St.get(a.type);if(o===void 0)throw new l(`Diagram type "${a.type}" is not supported yet.`,`unsupported-diagram`,a);let s=r?{...r,...i.config}:i.config,c=o.keepComments===!0,u=Qe(c?i.withComments:i.text)+`
|
|
44
44
|
`,d=kt(a,()=>m({parsed:u,find:Mt(e,c)},()=>o.parse(u,s,i.title,i.lineOffset,{maxEdges:n})));return{...a,diagram:o,model:d,config:s}}function Mt(e,t){let n,r=``;return i=>{if(n===void 0){n=[];let i=Ke(e,n);Qe(t?i.withComments:ze(i.withComments,n),n),r=Be(e)+`
|
|
45
|
-
`}return[r,f(n,i)]}}function Nt(e,t){if(typeof e==`string`)return jt(e,t.limit,t.maxEdges,t.config);let n=At.get(e);if(n===void 0)throw TypeError(`render() takes diagram text or a model that parse() returned.`);return n}function $(e){return Ne(Ke(e).text)?.type??null}function Pt(e){try{let t=$(e);return t!==null&&St.has(t)}catch{return!1}}function Ft(e,t={}){return Ot(()=>{let n=jt(e,t.limit,t.maxEdges,t.config),r=n.model;return Object.defineProperty(r,"mermaidType",{value:n.mermaidType,enumerable:!0}),At.set(r,n),r})}function It(e,t={}){return Ot(()=>{let{type:n,mermaidType:r,diagram:i,model:a,config:o}=Nt(e,t),s=o[i.section??n],c=typeof s==`object`&&!!s&&!Array.isArray(s)&&s.useMaxWidth===!1,u=t.responsive??!c,d=t.icons,f=d&&(e=>d(O(e))),p=kt({type:n,mermaidType:r},()=>F(i.math?t.math:void 0,()=>j(f,()=>i.render(a,o,{...t,responsive:u,icons:f})))),m=t.outputLimit??Et;if(p.svg.length>m)throw new l(`Diagram output is longer than the limit of ${m} characters.`,`limit`,{type:n,mermaidType:r});for(let e of p.links)e.id=O(e.id);return{type:n,mermaidType:r,...p}})}function Lt(e,t,n={}){return xt({parse:Ft,render:It},e,t,n)}var Rt=e({PeleError:()=>l,detectType:()=>$,enableZoom:()=>ot,forgetTextWidths:()=>he,load:()=>Vt,mount:()=>Lt,mountAsync:()=>Ut,parse:()=>Ft,register:()=>Ct,registered:()=>wt,render:()=>It,renderAsync:()=>Ht,supports:()=>Pt}),zt=new Map([[`flowchart`,()=>t(()=>import(`./
|
|
45
|
+
`}return[r,f(n,i)]}}function Nt(e,t){if(typeof e==`string`)return jt(e,t.limit,t.maxEdges,t.config);let n=At.get(e);if(n===void 0)throw TypeError(`render() takes diagram text or a model that parse() returned.`);return n}function $(e){return Ne(Ke(e).text)?.type??null}function Pt(e){try{let t=$(e);return t!==null&&St.has(t)}catch{return!1}}function Ft(e,t={}){return Ot(()=>{let n=jt(e,t.limit,t.maxEdges,t.config),r=n.model;return Object.defineProperty(r,"mermaidType",{value:n.mermaidType,enumerable:!0}),At.set(r,n),r})}function It(e,t={}){return Ot(()=>{let{type:n,mermaidType:r,diagram:i,model:a,config:o}=Nt(e,t),s=o[i.section??n],c=typeof s==`object`&&!!s&&!Array.isArray(s)&&s.useMaxWidth===!1,u=t.responsive??!c,d=t.icons,f=d&&(e=>d(O(e))),p=kt({type:n,mermaidType:r},()=>F(i.math?t.math:void 0,()=>j(f,()=>i.render(a,o,{...t,responsive:u,icons:f})))),m=t.outputLimit??Et;if(p.svg.length>m)throw new l(`Diagram output is longer than the limit of ${m} characters.`,`limit`,{type:n,mermaidType:r});for(let e of p.links)e.id=O(e.id);return{type:n,mermaidType:r,...p}})}function Lt(e,t,n={}){return xt({parse:Ft,render:It},e,t,n)}var Rt=e({PeleError:()=>l,detectType:()=>$,enableZoom:()=>ot,forgetTextWidths:()=>he,load:()=>Vt,mount:()=>Lt,mountAsync:()=>Ut,parse:()=>Ft,register:()=>Ct,registered:()=>wt,render:()=>It,renderAsync:()=>Ht,supports:()=>Pt}),zt=new Map([[`flowchart`,()=>t(()=>import(`./DshHzxgH.js`).then(e=>e.flowchart),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url)],[`pie`,()=>t(()=>import(`./D95RKsvN.js`).then(e=>e.pie),__vite__mapDeps([12,2,3,13]),import.meta.url)],[`er`,()=>t(()=>import(`./DBC2xjOo.js`).then(e=>e.er),__vite__mapDeps([14,2,3,4,5,7,15,9,10]),import.meta.url)],[`mindmap`,()=>t(()=>import(`./D5XlJBy8.js`).then(e=>e.mindmap),__vite__mapDeps([16,2,3,17,5,6]),import.meta.url)],[`kanban`,()=>t(()=>import(`./rghE0CVz.js`).then(e=>e.kanban),__vite__mapDeps([18,2,3,17,5,7]),import.meta.url)],[`timeline`,()=>t(()=>import(`./BAclEN0O.js`).then(e=>e.timeline),__vite__mapDeps([19,20,2,21,3,4]),import.meta.url)],[`journey`,()=>t(()=>import(`./Xm0YTnxV.js`).then(e=>e.journey),__vite__mapDeps([22,20,2,21,3]),import.meta.url)],[`class`,()=>t(()=>import(`./By4S_gy5.js`).then(e=>e.classDiagram),__vite__mapDeps([23,2,3,4,5,6,7,15,8,9,10]),import.meta.url)],[`quadrantChart`,()=>t(()=>import(`./BTclWEfx.js`).then(e=>e.quadrantChart),__vite__mapDeps([24,2,3,25]),import.meta.url)],[`xychart`,()=>t(()=>import(`./Cl5zRP_n.js`).then(e=>e.xychart),__vite__mapDeps([26,2,3,25]),import.meta.url)],[`state`,()=>t(()=>import(`./9z49435t.js`).then(e=>e.state),__vite__mapDeps([27,2,3,4,5,6,7,10]),import.meta.url)],[`gantt`,()=>t(()=>import(`./Dpa4Syyy.js`).then(e=>e.gantt),__vite__mapDeps([28,2,3,7]),import.meta.url)],[`architecture`,()=>t(()=>import(`./CT_Ry4q8.js`).then(e=>e.architecture),__vite__mapDeps([29,2,3,4,13]),import.meta.url)],[`requirement`,()=>t(()=>import(`./DkxkvOjx.js`).then(e=>e.requirement),__vite__mapDeps([30,2,3,4,5,10]),import.meta.url)],[`sankey`,()=>t(()=>import(`./BuUzVkG2.js`).then(e=>e.sankey),__vite__mapDeps([31,2,3]),import.meta.url)],[`packet`,()=>t(()=>import(`./BWVMfAMh.js`).then(e=>e.packet),__vite__mapDeps([32,2,3,13,33,34]),import.meta.url)],[`radar`,()=>t(()=>import(`./D3-rqfsM.js`).then(e=>e.radar),__vite__mapDeps([35,2,3,13]),import.meta.url)],[`treemap`,()=>t(()=>import(`./C_amgxV1.js`).then(e=>e.treemap),__vite__mapDeps([36,2,3,13,33]),import.meta.url)],[`info`,()=>t(()=>import(`./DF89zyH-.js`).then(e=>e.info),__vite__mapDeps([37,2,13]),import.meta.url)],[`sequence`,()=>t(()=>import(`./vfDvz3qP.js`).then(e=>e.sequence),__vite__mapDeps([38,2,3,4,5,34]),import.meta.url)],[`gitGraph`,()=>t(()=>import(`./DXK7PB4g.js`).then(e=>e.gitGraph),__vite__mapDeps([39,2,21,3,13]),import.meta.url)],[`c4`,()=>t(()=>import(`./D5vocsTl.js`).then(e=>e.c4),__vite__mapDeps([40,2,3,4,6,7,34]),import.meta.url)],[`block`,()=>t(()=>import(`./DbNETcPs.js`).then(e=>e.block),__vite__mapDeps([41,2,3,4,5,6]),import.meta.url)],[`railroad`,()=>t(()=>import(`./whhiiiga.js`).then(e=>e.railroad),__vite__mapDeps([42,2,3,13]),import.meta.url)],[`agentflow`,()=>t(()=>import(`./BA8Hpxhg.js`).then(e=>e.agentflow),__vite__mapDeps([43,2,3,4,6,7,8,9,10,11]),import.meta.url)],[`treeView`,()=>t(()=>import(`./DRX-TQzj.js`).then(e=>e.treeView),__vite__mapDeps([44,2,3,13,34,45]),import.meta.url)],[`cynefin`,()=>t(()=>import(`./DlXrOzlh.js`).then(e=>e.cynefin),__vite__mapDeps([46,2,4,13]),import.meta.url)],[`wardley`,()=>t(()=>import(`./EMo1IeTW.js`).then(e=>e.wardley),__vite__mapDeps([47,2,3,4,13,45]),import.meta.url)],[`eventmodeling`,()=>t(()=>import(`./oWM_kgYq.js`).then(e=>e.eventmodeling),__vite__mapDeps([48,2,3,4,13,34,45]),import.meta.url)],[`usecase`,()=>t(()=>import(`./BXAOBcPb.js`).then(e=>e.usecase),__vite__mapDeps([49,2,3,4,5,9,10]),import.meta.url)],[`venn`,()=>t(()=>import(`./Bq2GBAJ0.js`).then(e=>e.venn),__vite__mapDeps([50,2]),import.meta.url)],[`ishikawa`,()=>t(()=>import(`./CyFLqlvP.js`).then(e=>e.ishikawa),__vite__mapDeps([51,2,3,4,34]),import.meta.url)],[`swimlane`,()=>t(()=>import(`./DXTK-eyo.js`).then(e=>e.swimlane),__vite__mapDeps([52,2,4,1,3,5,6,7,8,9,10,11]),import.meta.url)]]),Bt=new Map;function Vt(e){if(e===null)return Promise.resolve(!1);if(wt(e))return Promise.resolve(!0);let t=Bt.get(e);if(t===void 0){let n=zt.get(e);if(n===void 0)return Promise.resolve(!1);t=n().then(e=>(Ct(e),!0),t=>{throw Bt.delete(e),t}),Bt.set(e,t)}return t}async function Ht(e,t={}){let n=null;try{n=$(e)}catch{}return await Vt(n),It(e,t)}async function Ut(e,t,n={}){let r=null;try{r=$(t)}catch{}return await Vt(r),Lt(e,t,n)}export{l as PeleError,i as _,h as a,o as b,u as c,O as d,$ as detectType,ot as enableZoom,M as f,he as forgetTextWidths,c as g,n as h,f as i,ee as l,Vt as load,R as m,Lt as mount,Ut as mountAsync,je as n,g as o,I as p,Ft as parse,D as r,Ct as register,wt as registered,It as render,Ht as renderAsync,_ as s,Pt as supports,Rt as t,me as u,r as v,s as x,a as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,i as r,o as i,s as a,u as o,x as s}from"./
|
|
1
|
+
import{_ as e,a as t,b as n,i as r,o as i,s as a,u as o,x as s}from"./DfCZPwp1.js";import{a as c,t as l}from"./DciMwFJ1.js";import{a as u,d,i as f,l as p,s as m}from"./BLmF1B2i.js";import{n as h}from"./RFxekmX-.js";import{n as g}from"./Dh1lBxfx.js";import{i as _,t as v}from"./Bt7VOT5H.js";import{i as y,r as b,t as x}from"./RlApGeew.js";import{PeleError as S,d as C,g as w,h as T,o as E,s as D,u as O}from"./-2Meesge.js";function k(e){let t=`TB`;for(let n of e)typeof n!=`string`&&n.stmt===`dir`&&(t=n.value);return t}function A(e,t,n){let r=[],i=[],a=new Map,o=new Map,s=new Map,c=0,l=0,u=e=>{if(!e.id||e.id===`</join></fork>`||e.id===`</choice>`)return;if(e.cssClasses){let t;for(let r of e.cssClasses.split(` `)){let i=n.get(r);if(i){t??=e.cssCompiledStyles.slice();for(let e of i.styles)t.push(e)}}t&&(e.cssCompiledStyles=t)}let t=a.get(e.id);if(t){let n=e.parentId??t.parentId;Object.assign(t,e),n!==void 0&&(t.parentId=n)}else a.set(e.id,e),r.push(e)},d=(e,n,r)=>{let a=n.id;if(a===`root`)return;let d=t.get(a),f=d?.classes?.join(` `)??``,p=d?.styles??[],m=o.get(a);if(!m){let e=`rect`;n.start===!0?e=`stateStart`:n.start===!1&&(e=`stateEnd`),n.type!=="default"&&(e=n.type),m={shape:e,description:a,cssClasses:`${f} statediagram-state`,cssStyles:p,type:void 0,dir:void 0,colorIndex:void 0},o.set(a,m)}if(n.description&&(Array.isArray(m.description)?(m.shape=`rectWithTitle`,m.description=m.description.concat(n.description)):m.description.length>0?(m.shape=`rectWithTitle`,m.description=m.description===a?[n.description].flat():[m.description,n.description].flat()):(m.shape=`rect`,m.description=Array.isArray(n.description)?n.description.slice():n.description)),m.description.length===1&&m.shape===`rectWithTitle`&&(m.shape=m.type===`group`?`roundedWithTitle`:`rect`),!m.type&&n.doc){if(m.type=`group`,m.dir=k(n.doc),m.shape=n.type===`divider`?`divider`:`roundedWithTitle`,m.shape===`divider`&&e?.id!==void 0&&s.has(e.id))m.colorIndex=s.get(e.id);else{let e=l++;m.colorIndex=f.trim()!==``||p.length>0?void 0:e}s.set(a,m.colorIndex),m.cssClasses=`${m.cssClasses} statediagram-cluster ${r?`statediagram-cluster-alt`:``}`}let h=m.description,g={id:a,shape:m.shape,label:Array.isArray(h)?h[0]:h,description:Array.isArray(h)?h.slice(1):[],cssClasses:m.cssClasses,cssCompiledStyles:[],cssStyles:m.cssStyles,type:m.type,isGroup:m.type===`group`,dir:m.dir,colorIndex:m.colorIndex};g.shape===`divider`&&(g.label=``),e&&e.id!==`root`&&(g.parentId=e.id);let _=n.note;if(!_){u(g);return}let v=(e,t,n,r)=>({id:e,shape:t,label:_.text,description:[],cssClasses:n,cssCompiledStyles:[],cssStyles:[],type:r?`group`:`node`,isGroup:r,dir:void 0,position:_.position}),y=v(`${a}----note-${c++}`,`note`,`statediagram-note`,!1);y.parentId=`${a}----parent`,y.noteFor=a,u(v(y.parentId,`noteGroup`,m.cssClasses,!0)),u(y),u(g);let b=_.position===`left of`,x=b?y.id:a,S=b?a:y.id;i.push({id:`${x}-${S}`,start:x,end:S,label:``,classes:`transition note-edge`,pattern:`dashed`})},f=[{item:void 0,doc:e,at:0,alt:!0}];for(;f.length>0;){let e=f[f.length-1];if(e.at>=e.doc.length){f.pop();continue}let t=e.doc[e.at++];typeof t!=`string`&&(t.stmt===`state`?(d(e.item,t,e.alt),t.doc&&f.push({item:t,doc:t.doc,at:0,alt:!e.alt})):t.stmt===`relation`&&(d(e.item,t.state1,e.alt),d(e.item,t.state2,e.alt),i.push({id:`edge${c++}`,start:t.state1.id,end:t.state2.id,label:t.description??``,classes:`transition`})))}for(let e of r)if(e.isGroup&&e.description.length>0)throw new S(`Group nodes can only have label. Remove the additional description for node [${e.id}]`,`semantic`,{type:`state`});return{nodes:r,edges:i}}var j=class{type=`state`;rootDoc=[];states=new Map;relations=[];classes=new Map;links=new Map;graph={nodes:[],edges:[]};title;accTitle;accDescr;dividerCount=0;get direction(){let e=`TB`;for(let t of this.rootDoc)typeof t!=`string`&&t.stmt===`dir`&&(e=t.value);return e}setRootDoc(e){this.rootDoc=e,this.translate(),this.extract(e)}extract(e){this.states=new Map,this.relations=[],this.classes=new Map;let t=Array.isArray(e)?e:e.doc;for(let e of t)if(typeof e!=`string`)switch(e.stmt){case`state`:this.addState(e.id.trim(),e.type,e.doc,e.description,e.note);break;case`relation`:this.addRelation(e.state1,e.state2,e.description);break;case`classDef`:this.addStyleClass(e.id.trim(),e.classes);break;case`style`:{let t=e.styleClass.split(`,`).map(e=>e.replace(/;/g,``).trim());for(let n of this.named(e.id.trim()))n.styles=t.slice();break}case`applyClass`:this.setCssClass(e.id.trim(),e.styleClass);break;case`click`:this.addLink(typeof e.id==`string`?e.id:e.id.id,e.url,e.tooltip)}this.graph=A(t,this.states,this.classes)}translate(){let e=[[`root`,{stmt:`root`,id:`root`,doc:this.rootDoc},!0]];for(;e.length>0;){let[t,n,r]=e.pop();if(typeof n==`string`)continue;if(n.stmt===`relation`){e.push([t,n.state2,!1],[t,n.state1,!0]);continue}if(n.stmt===`state`)n.id===`[*]`?(n.id=t+(r?`_start`:`_end`),n.start=r):n.id=n.id.trim();else if(n.stmt!==`root`)continue;if(!n.doc)continue;let i=[],a=[];for(let e of n.doc)typeof e!=`string`&&e.stmt===`state`&&e.type===`divider`&&!e.doc?(i.push({...e,doc:a}),a=[]):a.push(e);i.length>0&&(a.length>0&&i.push({stmt:`state`,id:this.getDividerId(),type:`divider`,doc:a}),n.doc=i);for(let t=n.doc.length-1;t>=0;t--)e.push([n.id,n.doc[t],!0])}}addState(e,t=`default`,n,r,i,a){let o=e.trim(),s=this.states.get(o);if(s?(s.doc||(s.doc=n),s.type||(s.type=t)):(s={stmt:`state`,id:o,descriptions:[],type:t,doc:n,note:i,classes:[],styles:[],textStyles:[]},this.states.set(o,s)),r)for(let e of Array.isArray(r)?r:[r])this.addDescription(o,e.trim());if(i&&(s.note=i),a)for(let e of a)this.setCssClass(o,e.trim())}getState(e){return this.states.get(e)}addLink(e,t,n){this.links.set(e,{url:t,tooltip:n})}addRelation(e,t,n=``){for(let n of[e,t])this.addState(n.id,n.type,n.doc,n.description,n.note,n.classes);this.relations.push({id1:e.id.trim(),id2:t.id.trim(),relationTitle:n})}addDescription(e,t){this.states.get(e)?.descriptions?.push(t.startsWith(`:`)?t.replace(`:`,``).trim():t)}getDividerId(){return`divider-id-${++this.dividerCount}`}addStyleClass(e,t=``){let n=this.classes.get(e);if(n||(n={id:e,styles:[],textStyles:[]},this.classes.set(e,n)),t)for(let e of t.split(`,`)){let t=e.replace(`;`,``).trim();e.includes(`color`)&&n.textStyles.push(t.replace(`fill`,`bgFill`).replace(`color`,`fill`)),n.styles.push(t)}}setCssClass(e,t){for(let n of this.named(e))n.classes?.push(t)}getDirection(){for(let e of this.rootDoc)if(typeof e!=`string`&&e.stmt===`dir`)return e.value;return`TB`}setDirection(e){for(let t of this.rootDoc)if(typeof t!=`string`&&t.stmt===`dir`){t.value=e;return}this.rootDoc.unshift({stmt:`dir`,value:e})}trimColon(e){return e.startsWith(`:`)?e.slice(1).trim():e.trim()}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
2
2
|
`)}named(e){let t=[];for(let n of e.split(`,`)){let e=this.states.get(n);e||=(this.addState(n),this.states.get(n.trim())),e&&t.push(e)}return t}},M=`$end.INVALID.NL.SD.DESCR.-->.HIDE_EMPTY.scale.WIDTH.COMPOSIT_STATE.STRUCT_START.STRUCT_STOP.STATE_DESCR.AS.ID.FORK.JOIN.CHOICE.CONCURRENT.note.NOTE_TEXT.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.CLICK.STRING.HREF.classDef.CLASSDEF_ID.DEFAULT_CLASSDEF_ID.CLASSDEF_STYLEOPTS.DEFAULT.style.STYLE_IDS.STYLEDEF_STYLEOPTS.class.CLASSENTITY_IDS.STYLECLASS.direction_tb.direction_bt.direction_rl.direction_lr.EDGE_STATE.STYLE_SEPARATOR.left_of.right_of.INVALID`.split(`.`),N=/direction/gi,ee=/<<(?:fork|join|choice)>>|\[\[(?:fork|join|choice)\]\]/gi,te=/[\n\r\u2028\u2029]/g,P=/%%/g,F=/\{/g;function I(e,t){let n=0,r=-2;return i=>{if(r===-2||i<n||r!==-1&&i>r){e.lastIndex=i;let a=e.exec(t);r=a?a.index:-1,n=i}return r}}function L(e){let t=e.length,n=[],r=[],i=[],a=[],o=0,s=0,c,l=I(N,e),u=I(ee,e),d=I(te,e),f=I(P,e),p=I(F,e),m=-1,h=-1,g=[-1,-1,-1,-1],_=[0,0,0,0],v=-1,y=-1,b=[-1,-1,-1,-1,-1,-1],x=(t,a,o)=>{n.push(t),r.push(e.slice(a,o)),i.push(a),s=o},S=(e,t,a,o)=>{n.push(e),r.push(t),i.push(a),s=o},C=e=>{a.push(o),o=e},E=()=>{a.length>0&&(o=a.pop())},D=(t,n)=>{for(let r=0;r<t.length;r++){let i=t.charCodeAt(r),a=e.charCodeAt(n+r);if(a!==i&&!(i>=97&&i<=122&&a===i-32))return!1}return!0},O=n=>{let r=n;for(;r<t&&T(e.charCodeAt(r));)r++;return r},k=n=>{let r=n;for(;r<t&&w(e.charCodeAt(r));)r++;return r},A=n=>{let r=e.indexOf(`
|
|
3
3
|
`,n);return r===-1?t:r},j=e=>{let n=d(e);return n===-1?t:n},M=e=>{if(e<m||e>h){let n=l(e),r=n===-1?t:j(e);m=e,h=r,g[0]=g[1]=g[2]=g[3]=-1;for(let e=n;e!==-1&&e<r;e=l(e+1)){let t=O(e+9);if(t===e+9)continue;let n=D(`tb`,t)?0:D(`bt`,t)?1:D(`rl`,t)?2:D(`lr`,t)?3:-1;n!==-1&&(g[n]=e,_[n]=t+2)}}for(let t=0;t<4;t++)if(g[t]>=e)return t;return-1},L=n=>{if(n<v||n>y){let r=u(n),i=r===-1?t:j(n);v=n,y=i,b.fill(-1);for(let t=r;t!==-1&&t<i;t=u(t+1)){let n=e.charCodeAt(t+2)|32;b[(e.charCodeAt(t)===60?0:3)+(n===102?0:n===106?1:2)]=t}}for(let e=0;e<6;e++)if(b[e]>=n)return e;return-1},R=(e,t)=>{let n=f(e);return n===-1||n+2>t?(x(14,e,t),!0):n===e?(s=t,!1):(x(14,e,n),!0)},z=e=>(n.push(e),r.push(``),i.push(s),{types:n,texts:r,starts:i,error:c});for(;;){if(s>=t){switch(o){case 0:x(2,t,t);break;case 6:x(22,t,t);break;case 7:x(24,t,t);break;case 8:x(25,t,t);break;case 10:x(32,t,t);break;case 12:x(39,t,t);break;case 14:x(36,t,t);break;case 3:x(12,t,t);break;case 18:x(20,t,t);break;case 4:case 19:x(14,t,t)}return z(0)}let n=e.charCodeAt(s);switch(o){case 0:case 1:{let r=o===0,i=n|32;if(r){if(i===99&&D(`click`,s)&&!w(e.charCodeAt(s+5))){x(26,s,s+5);continue}if(i===104&&D(`href`,s)&&!w(e.charCodeAt(s+4))){x(28,s,s+4);continue}if(n===34){let t=e.indexOf(`"`,s+1);if(t!==-1){x(27,s,t+1);continue}}if(i===100&&D(`default`,s)&&!w(e.charCodeAt(s+7))){x(33,s,s+7);continue}let t=M(s);if(t!==-1){x(40+t,s,A(_[t]));continue}if(n===10){let t=s+1;for(;e.charCodeAt(t)===10;)t++;x(2,s,t);continue}if(T(n)){s=O(s);continue}}else if(n!==10&&T(n)){let n=s+1;for(;n<t&&e.charCodeAt(n)!==10&&T(e.charCodeAt(n));)n++;s=n;continue}if(n===35||n===37&&e.charCodeAt(s+1)===37&&e.charCodeAt(s+2)!==123){s=A(s);continue}if(i===115){if(r&&D(`scale`,s)){let e=O(s+5);if(e>s+5){x(7,s,e),C(5);continue}}if(D(`style`,s)){let e=O(s+5);if(e>s+5){x(34,s,e),C(13);continue}}if(D(`state`,s)){let e=O(s+5);if(e>s+5){s=e,C(2);continue}if(r&&D(`diagram`,s+5)){let t=D(`-v2`,s+12)?s+15:s+12;if(e=O(t),e>t){x(3,s,e);continue}}}}else if(i===99){if(D(`class`,s)){let e=D(`def`,s+5),t=e?s+8:s+5,n=O(t);if(n>t){x(e?29:37,s,n),C(e?9:11);continue}}}else if(i===97&&r&&(D(`acctitle`,s)||D(`accdescr`,s))){let t=(e.charCodeAt(s+3)|32)==116,n=O(s+8),r=e.charCodeAt(n);if(r===58){x(t?21:23,s,O(n+1)),C(t?6:7);continue}if(r===123&&!t){s=O(n+1),C(8);continue}}if(r){if(n===123){x(10,s,s+1),C(1);continue}}else{let e=M(s);if(e!==-1){x(40+e,s,A(_[e]));continue}if(n===125){x(11,s,s+1),E();continue}if(n===10){s++;continue}}if(i===110&&D(`note`,s)){let e=O(s+4);if(e>s+4){x(19,s,e),C(15);continue}}if(r&&i===104&&D(`hide empty description`,s)&&!w(e.charCodeAt(s+22))){x(6,s,s+22);continue}if(n===91&&e.charCodeAt(s+1)===42&&e.charCodeAt(s+2)===93){x(44,s,s+3);continue}let a=s;for(;a<t;){let t=e.charCodeAt(a);if(t===58||t===45||t===123||T(t))break;a++}if(a>s){R(s,a);continue}if(n===58){for(a=s+1;a<t;){let n=e.charCodeAt(a);if(n===10||n===59)break;if(n===58){let n=e.charCodeAt(a+1);if(a+1>=t||n===58||n===10||n===59)break;a++}a++}if(a>s+1){S(4,e.slice(s,a).trim(),s,a);continue}if(e.charCodeAt(s+1)===58&&e.charCodeAt(s+2)===58){x(45,s,s+3);continue}}else if(n===45&&e.charCodeAt(s+1)===45){if(e.charCodeAt(s+2)===62){x(5,s,s+3);continue}if(!r){x(18,s,s+2);continue}}if(!r)return z(1);x(48,s,s+1);continue}case 2:{if(n!==10&&T(n)){let n=s+1;for(;n<t&&e.charCodeAt(n)!==10&&T(e.charCodeAt(n));)n++;s=n;continue}if(n===35||n===37&&e.charCodeAt(s+1)===37&&e.charCodeAt(s+2)!==123){s=A(s);continue}let r=L(s);if(r!==-1){let t=b[r],n=r===2||r===5;S(n?17:r%3==0?15:16,e.slice(s,t).trim(),s,t+(n?10:8)),E();continue}if(n===34){s++,C(3);continue}let i=n===10?O(s):s;if(D(`as`,i)){let e=O(i+2);if(e>i+2){x(13,s,e),C(4);continue}}if(n===10){s++,E();continue}if(n===123){x(10,s,s+1),E(),C(1);continue}if(w(n)){let t=k(s),n=O(t);if(n>t&&w(e.charCodeAt(n))){let t=p(n+1);if(t!==-1&&t<j(n))return c=`Error: State name must be a single word. Found: "${e.slice(s,t+1).trim()}"`,z(1)}}let a=s+1;for(;a<t;){let t=e.charCodeAt(a);if(t===123||T(t))break;a++}x(9,s,a);continue}case 3:{if(n===34){s++,E();continue}let r=e.indexOf(`"`,s);x(12,s,r===-1?t:r);continue}case 4:{let n=s;for(;n<t;){let t=e.charCodeAt(n);if(t===10||t===123)break;n++}R(s,n)&&E();continue}case 5:{if(n>=48&&n<=57){let n=s+1;for(;n<t&&e.charCodeAt(n)>=48&&e.charCodeAt(n)<=57;)n++;x(8,s,n);continue}let r=O(s);if(r>s&&D(`width`,r)&&!w(e.charCodeAt(r+5))){s=r+5,E();continue}return z(1)}case 6:x(22,s,A(s)),E();continue;case 7:x(24,s,A(s)),E();continue;case 8:{if(n===125){s++,E();continue}let r=e.indexOf(`}`,s);x(25,s,r===-1?t:r);continue}case 9:{let e=D(`default`,s)&&O(s+7)>s+7,t=e?s+7:k(s),n=O(t);if(t===s||n===t)return z(1);x(e?31:30,s,n),E(),C(10);continue}case 10:x(32,s,A(s)),E();continue;case 11:{let t=k(s);if(t===s)return z(1);for(;e.charCodeAt(t)===44;){let e=O(t+1),n=k(e);if(n===e)break;t=n}x(38,s,t),E(),C(12);continue}case 12:x(39,s,A(s)),E();continue;case 13:{let n=s;for(;n<t&&(w(e.charCodeAt(n))||e.charCodeAt(n)===44);)n++;let r=O(n);if(n===s||r===n)return z(1);x(35,s,r),E(),C(14);continue}case 14:x(36,s,A(s)),E();continue;case 15:if(D(`left of`,s)&&!w(e.charCodeAt(s+7))){x(46,s,s+7),E(),C(16);continue}if(D(`right of`,s)&&!w(e.charCodeAt(s+8))){x(47,s,s+8),E(),C(16);continue}if(n===34){s++,E(),C(18);continue}return z(1);case 16:{let n=O(s),r=n;for(;r<t;){let t=e.charCodeAt(r);if(t===58||t===45||T(t))break;r++}if(r===n)return z(1);R(s,r)&&(E(),C(17));continue}case 17:{let n=O(s);if(e.charCodeAt(n)===58){let r=n+1;for(;r<t;){let t=e.charCodeAt(r);if(t===58||t===10||t===59)break;r++}if(r>n+1){S(20,e.slice(s+2,r).trim(),s,r),E();continue}}let r=e.indexOf(`
|
|
4
4
|
`,s),i=-1;for(;r!==-1&&(i=O(r),!D(`end note`,i)||w(e.charCodeAt(i+8)));)r=e.indexOf(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,d as r,f as i,i as a,o,s,u as c,x as l}from"./
|
|
1
|
+
import{_ as e,a as t,b as n,d as r,f as i,i as a,o,s,u as c,x as l}from"./DfCZPwp1.js";import{a as u,t as d}from"./DciMwFJ1.js";import{a as f,i as p,l as m,s as h,u as g}from"./BLmF1B2i.js";import{a as _,i as v,t as y}from"./Dh1lBxfx.js";import{a as ee,i as b,r as x,t as S}from"./Bt7VOT5H.js";import{t as C}from"./D6QVYUu9.js";import{n as w,r as T}from"./tUSDgbpy.js";import{i as E,n as te,r as D,t as O}from"./RlApGeew.js";import{n as k,t as A}from"./CggtIYAM.js";import{PeleError as j,c as M,d as ne,g as N,h as P,i as F,n as I,o as L,s as R,u as z}from"./-2Meesge.js";var B=new Map([[`task`,`roundedRect`],[`tool`,`subroutine`],[`input`,`lean-right`],[`decision`,`diamond`],[`refdoc`,`lin-doc`],[`action`,`hexagon`],[`round`,`rect`]]),V=new Set(`doc.stadium.terminal.circle.trapezoid.inv_trapezoid.inv-trapezoid.doublecircle.double-circle.typeDeclaration.procs.lean_left.lean-left.in-out.cylinder.ellipse.odd.tag-rect.tagged-rectangle.delay.half-rounded-rectangle.lin-rect.lined-rectangle.win-pane.window-pane.curv-trap.curved-trapezoid`.split(`.`)),re=new Set([`roundedRect`,`subroutine`,`subprocess`,`subproc`,`framed-rectangle`,`lean-right`,`diamond`,`lin-doc`,`lined-document`,`hexagon`,`hex`,`connector`,`collapsedGroup`]),H=`roundedRect`;function U(e){return e&&(B.get(e)??e)}function W(e){return A(e)||e===`constructor`}function ie(e,t){for(let n of e)n.isGroup||((!n.shape||n.shape===`squareRect`||n.shape===`rect`)&&(n.shape=H),V.has(n.shape)?(t.emitError(`SHAPE_REMOVED`,`shape "${n.shape}" was removed in v0.8.1, using "${H}"`,{nodeId:n.id}),n.shape=H):re.has(n.shape)||(t.emitWarning(`SHAPE_UNSUPPORTED`,`shape "${n.shape}" is not supported, using "${H}"`,{nodeId:n.id}),n.shape=H))}var G=new Set([`shape`,`view`,`icon`,`img`,`form`,`pos`,`w`,`h`,`class`,`style`,`labelType`]),ae=new Set([`subroutine`,`subprocess`,`subproc`,`framed-rectangle`,`tool`]);function oe(e){return ae.has(e.type)}function K(e){return e===`markdown`||e===`string`||e===`text`?e:`markdown`}function q(e){return e.startsWith(`"`)&&e.endsWith(`"`)?e.substring(1,e.length-1):e}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function se(e){let t=e=>Array.isArray(e)?[]:J(e)?{}:e,n=t(e),r=[[e,n]];for(;r.length>0;){let[e,n]=r.pop();if(Array.isArray(e))for(let i of e){let e=t(i);n.push(e),typeof i==`object`&&i&&r.push([i,e])}else if(J(e))for(let i of Object.keys(e)){if(i===`__proto__`||i===`constructor`||i===`prototype`)continue;let a=e[i],o=t(a);n[i]=o,typeof a==`object`&&a&&r.push([a,o])}}return n}function Y(e,t){return Object.assign(e??{},t)}var ce=/:\s*[>|][\d+-]*\s*$/,le=/,([\t ]*)$/;function X(e){let t=!1,n=!1,r=0,i,a=[];for(let o of e.split(`
|
|
2
2
|
`)){if(i!==void 0){let e=o.length-o.trimStart().length;if(o.trim()===``||e>i){a.push(o);continue}i=void 0}let e=-1;for(let i=0;i<o.length;i++){let a=o[i];if(n)a===`\\`?i++:a===`"`&&(n=!1);else if(t)a===`'`&&(t=!1);else if(a===`"`)n=!0;else if(a===`'`)t=!0;else if(a===`#`&&(i===0||o[i-1]===` `||o[i-1]===` `)){e=i;break}else a===`[`||a===`{`?r++:(a===`]`||a===`}`)&&(r=Math.max(0,r-1))}if(t||n||r>0){a.push(o);continue}let s=e>=0?o.slice(0,e):o,c=e>=0?o.slice(e):``;ce.test(s)?(i=o.length-o.trimStart().length,a.push(o)):a.push(s.replace(le,`$1`)+c)}return a.join(`
|
|
3
3
|
`)}function ue(e,t){if(e===`arrow_point`&&t===`normal`)return`sequence`;if(e===`arrow_cross`&&t===`normal`)return`failure`;if(e===`arrow_open`&&t===`dotted`)return`reference`}function de(e){let t=e.trim(),n=t.slice(0,-1),r=`arrow_open`;switch(t.slice(-1)){case`x`:r=`arrow_cross`;break;case`>`:r=`arrow_point`;break;case`-`:case`.`:n=t}let i=`normal`,a=n.length-1,o=0;for(let e=0;e<n.length;e++)n[e]===`.`&&o++;return o>0&&(i=`dotted`,a=o),{type:r,stroke:i,length:a}}function fe(e){if(!e)return;let t={},n=!1;for(let r of Object.keys(e))G.has(r)||(t[r]=e[r],n=!0);return n?t:void 0}var pe=class{type=`agentflow`;direction;nodes=new Map;edges=[];subgraphs=[];connectors=new Map;classes=new Map;tooltips=new Map;defaultEdgeStyle;defaultInterpolate;mappings=[];diagnostics=[];title;accTitle;accDescr;lineOffset;subgraphLookup=new Map;globalNodes=new Set;members=new Set;edgeById=new Map;pairCount=new Map;subCount=0;bareMappings=new Set;firstMapping=new Map;reported=new Map;options;constructor(e={}){this.options=e,this.lineOffset=e.lineOffset??0}metadata(e,t,n){let r=t.includes(`
|
|
4
4
|
`),i;try{i=I(r?t+`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"./
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"./Czz9qOh8.js";import{_ as i,d as a,f as o,i as s,o as c,x as l}from"./DfCZPwp1.js";import{n as u,t as d}from"./BymwHy7o.js";import{t as f}from"./DciMwFJ1.js";import{s as p}from"./BLmF1B2i.js";import{PeleError as m,g as h,h as g,s as _,u as ee}from"./-2Meesge.js";var v=class{type=`timeline`;title;accTitle;accDescr;direction=`LR`;sections=[];periods=[];currentSection=``;getCommonDb(){return this}setDiagramTitle(e){this.title=e}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
2
2
|
`)}setDirection(e){this.direction=e}addSection(e){this.currentSection=e,this.sections.push(e)}addTask(e,t,n){this.periods.push({text:e,events:n?[n]:[],section:this.currentSection,sectionIndex:this.sections.length-1})}addEvent(e){let t=this.periods[this.periods.length-1];if(!t)throw new m(`An event needs a time period before it.`,`semantic`,{type:`timeline`});t.events.push(e)}},y=[`$end`,`EOF`,`INVALID`,`NEWLINE`,`timeline`,`timeline_lr`,`timeline_td`,`title`,`acc_title`,`acc_title_value`,`acc_descr`,`acc_descr_value`,`acc_descr_multiline_value`,`section`,`period`,`event`];function b(i){let a=i.length,o=[],s=[],c=[],l={types:o,texts:s,starts:c},u=0,d=(e,t)=>{o.push(e),s.push(i.slice(u,t)),c.push(u),u=t};for(;u=t(i,u),!(u>=a);){let t=i.charCodeAt(u),o=u+1;if(t===10){for(;i.charCodeAt(o)===10;)o++;d(3,o)}else{if(r(i,u,`timeline`)){for(o=u+8;i.charCodeAt(o)===32||i.charCodeAt(o)===9;)o++;let e=r(i,o,`lr`);if(o>u+8&&(e||r(i,o,`td`))&&!h(i.charCodeAt(o+2))){d(e?5:6,o+2);continue}if(!h(i.charCodeAt(u+8))){d(4,u+8);continue}}if(r(i,u,`title`)){for(o=u+5;i.charCodeAt(o)!==10&&g(i.charCodeAt(o));)o++;if(o===a||i.charCodeAt(o)===10){u=o;continue}let e=i.charCodeAt(u+5);if(e!==13&&g(e)){d(7,n(i,u+6));continue}}if(o=e(i,u,l,8),o!==u)u=o;else{if(r(i,u,`section`)&&g(i.charCodeAt(u+7))){for(o=u+8;o<a&&i.charCodeAt(o)!==58&&i.charCodeAt(o)!==10;)o++;if(o>u+8){d(13,o);continue}}if(t!==58){o=u+1;for(let e=i.charCodeAt(o);o<a&&e!==35&&e!==58&&e!==10;e=i.charCodeAt(++o));d(14,o)}else{if(g(i.charCodeAt(u+1))){for(o=u+2;o<a;o++){let e=i.charCodeAt(o);if(e===10||e===58&&g(i.charCodeAt(o+1)))break}if(o>u+2){d(15,o);continue}}d(2,u+1)}}}}return(c.length===0||c[c.length-1]<a)&&d(1,a),d(0,a),l}var x=`'EOF', 'SPACE', 'NEWLINE', 'title', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'section', 'period', 'event'`;function S(e,t){let{types:n,texts:r,starts:i}=b(e),a=(t,r)=>{let a=n[t]===0?`1`:y[n[t]];throw _(`timeline`,e,i[t],`Expecting ${r}, got '${a}'`)},o=n[0];o!==4&&o!==5&&o!==6&&a(0,`'timeline', 'timeline_lr', 'timeline_td'`),o!==4&&t.setDirection(o===5?`LR`:`TD`);for(let e=1;;e++){let i=r[e];switch(n[e]){case 3:break;case 7:t.getCommonDb().setDiagramTitle(i.substring(6));break;case 8:t.getCommonDb().setAccTitle(r[++e].trim());break;case 10:t.getCommonDb().setAccDescription(r[++e].trim());break;case 12:t.getCommonDb().setAccDescription(i.trim());break;case 13:t.addSection(i.substring(8));break;case 14:t.addTask(i,0,``);break;case 15:t.addEvent(i.substring(2));break;case 1:return;default:a(e,x)}}}var C=12,te=8,ne=152,re=216,ie=264,w=20,T=20,E=14,D=8,O=8,k=12,A=` fill="var(--_bg)"`,ae=` fill="none" stroke="var(--_b)"`;function j(e,t,n,r,i){return`<rect x="${l(e)}" y="${l(t)}" width="${l(n)}" height="${l(r)}"${a(i)}/>`}function M(e,t,n){return e.direction===`TD`?N(e,t,n,!0):f(n,r=>N(e,t,n,r))}function N(e,t,n,r){let a=n.fontSize??16,f=Math.round(a*.875),m=n.measurer??ee(n.fontFamily,n.fontFamilyMono),h=n.padding??8,g=t.timeline?.disableMulticolor!==!0,_=e.periods,v=e.sections.length>0,y=e.sections.map((e,t)=>({section:t,periods:[]})),b={section:-1,periods:[]};_.forEach((e,t)=>(y[e.sectionIndex]??b).periods.push(t)),b.periods.length>0&&y.unshift(b);let x=r&&n.maxWidth!==void 0&&n.maxWidth>0?n.maxWidth-2*h:1/0,S=T+E*2+4*C,M=Math.min(ne,Math.max(80,Math.round((x-S)*.38))),N=Math.min(ie,Math.max(110,x-S-M)),P=M,F=()=>r?N:P,I=_.map(e=>u(e.text,m,a,P)),L=_.map(e=>e.events.map(e=>u(e,m,f,F()))),R=0;for(let e of I)R=Math.max(R,e.width);if(!r)for(let e of L)for(let t of e)R=Math.max(R,t.width);let oe=R>P;if(r)for(let e of L)for(let t of e)oe||=t.width>N;oe&&(P=Math.min(Math.max(Math.ceil(R),M),x===1/0?re:M),I=_.map(e=>d(e.text,m,a,P)),L=_.map(e=>e.events.map(e=>d(e,m,f,F()))));let se=Math.round(a*1.5),z=P+2*C,B=F()+2*C,V=e=>Math.max(e.height,se)+2*te,H=e=>Math.max(e.height,Math.round(f*1.5))+2*te,ce=(e,t)=>e.section>=0?o(e.section):v?`var(--_m)`:o(g?t:0),le=!1;for(let e of L)e.length>0&&(le=!0);let U=0;for(let e of y)U+=Math.max(e.periods.length,1);let W=z+w,G=_.length>0,K=r?z+(le?T+E*2+B:G?T+k:0):U>0?U*W-w+(G?k+8:0):0,q=d(e.title,m,a,Math.max(K,320),1),ue=q.height>0?q.height+16:0,de=Math.max(K,q.width),J=h+(de-K)/2,Y=h+ue,fe=(t,n)=>d(e.sections[t.section],m,a,n-2*C,1),X=(e,t,n,r,i,a)=>j(n,r,i,a,` fill="${o(e.section)}"`)+c(t,n+i/2,r+a/2,` font-weight="var(--_hw)"`+A),pe=(e,t,n,r,i)=>j(n,r,z,i,` fill="${t}"`)+c(I[e],n+z/2,r+i/2,A),me=(e,t,n,r,i)=>`<g class="pele-node pele-event">`+j(n,r,B,i,` fill="${t}" fill-opacity="0.16"`)+c(e,n+B/2,r+i/2,` font-size="${f}"`)+`</g>`,he=(e,t,n)=>`<circle class="pele-dot" cx="${l(e)}" cy="${l(t)}" r="4" fill="${n}" stroke="var(--_bg)" stroke-width="2"/>`,ge=t=>t.section>=0?`<g class="pele-cluster pele-section" data-id="${s(e.sections[t.section].trim())}">`:``,_e=e=>`<g class="pele-node pele-period" data-id="${s(_[e].text.trim())}">`,Z=``,Q;if(r){let e=J+z+T,t=e+E,n=t+E,r=Y;for(let i of y){if(Z+=ge(i),i.section>=0){let e=fe(i,K),t=V(e);Z+=X(i,e,J,r,K,t),r+=t+O+4}for(let a of i.periods){let o=ce(i,a),s=V(I[a]),c=L[a].length>0?H(L[a][0]):s,u=r+Math.max(s,c)/2,d=`M${l(J+z)},${l(u)}H${l(e)}`,f=``,p=u-c/2,m=u;for(let e of L[a]){let r=H(e);m=p+r/2,d+=`M${l(t)},${l(m)}H${l(n)}`,f+=me(e,o,n,p,r),p+=r+D}f&&(d+=`M${l(e)},${l(u)}H${l(t)}V${l(m)}`),Z+=_e(a)+pe(a,o,J,u-s/2,s)+`<path class="pele-edge" d="${d}"${ae}/>`+he(e,u,o)+f+`</g>`,r=Math.max(u+s/2,p-D)+w}i.periods.length===0&&(r+=w-O-4),i.section>=0&&(Z+=`</g>`)}if(y.length>0&&(r-=w),G){let t=r+k+8;Z=`<path class="pele-axis" d="M${l(e)},${l(Y)}V${l(t-8+1)}" fill="none" stroke="var(--_l)"/>`+p(`arrow_point`,e,t,0,1,`var(--_l)`)+Z,r=t}Q=r+h}else{let e=0,t=y.map(t=>{if(t.section<0)return;let n=fe(t,Math.max(t.periods.length,1)*W-w);return e=Math.max(e,V(n)),n}),n=0;for(let e of I)n=Math.max(n,V(e));let r=Y+(v?e+O:0),i=r+n+(n>0?T:0),a=i+T,o=G?i+k:Y+e,s=0;if(y.forEach((c,u)=>{let d=Math.max(c.periods.length,1),f=J+s*W;Z+=ge(c);let p=t[u];p&&(Z+=X(c,p,f,Y,d*W-w,e)),c.periods.forEach((e,t)=>{let s=ce(c,e),u=f+t*W,d=u+z/2,p=`M${l(d)},${l(r+n)}V${l(L[e].length>0?a:i)}`,m=``,h=a;for(let t of L[e]){let e=H(t);h>a&&(p+=`M${l(d)},${l(h-D)}V${l(h)}`),m+=me(t,s,u,h,e),h+=e+D}o=Math.max(o,h-D),Z+=_e(e)+pe(e,s,u,r,n)+`<path class="pele-edge" d="${p}"${ae}/>`+he(d,i,s)+m+`</g>`}),c.section>=0&&(Z+=`</g>`),s+=d}),G){let e=J+K;Z=`<path class="pele-axis" d="M${l(J)},${l(i)}H${l(e-8+1)}" fill="none" stroke="var(--_l)"/>`+p(`arrow_point`,e,i,1,0,`var(--_l)`)+Z}Q=o+h}let $=Math.ceil(de+2*h),ve=Math.ceil(Math.max(Q,h*2)),ye=c(q,$/2,h+q.height/2,` class="pele-title" font-weight="var(--_tw)"`)+Z;return{svg:i(`timeline`,$,ve,a,n,e,ye),width:$,height:ve,links:[]}}var P={type:`timeline`,parse(e,t,n){let r=new v;return r.title=n,S(e,r),r},render:M};export{P as timeline};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,o as t,x as n}from"./CX-xckzu.js";function r(e,t,n=0){return{w:e,h:t,kind:n,pin:0,hint:NaN,key:NaN,span:0,x:0,y:0,rank:0}}function i(e,t,n=1,r=0,i=0){return{tail:e,head:t,minlen:n,labelW:r,labelH:i,tailDx:0,headDx:0,tailFixed:!1,headFixed:!1,reversed:!1,points:[],labelX:0,labelY:0}}var a=24,o=2e4,s=16,c=8,l=.125,u=3,d=18,f=10,p=14,m=2,h=28,g=12,_=12,v=8,y=4,b=.5,x=.5,S=12,C=40,w=400,T=16,E=new Float64Array(2*T+2),D=new Float64Array(2*T+2);function O(e){return e===1||e===2}function k(e,t,n,r){for(let i=t+1;i<n;i++){let n=e[i],a=r[n],o=i-1;for(;o>=t&&(r[e[o]]>a||r[e[o]]===a&&e[o]>n);)e[o+1]=e[o],o--;e[o+1]=n}}function A(e,t,n,r,i,a){let o=(e,t)=>n[e]<n[t]||n[e]===n[t]&&(i?r[e]>r[t]:r[e]<r[t]);for(let n=0;n<t;n+=8)for(let r=n+1,i=Math.min(t,n+8);r<i;r++){let t=e[r],i=r-1;for(;i>=n&&o(t,e[i]);)e[i+1]=e[i],i--;e[i+1]=t}let s=e,c=a;for(let e=8;e<t;e*=2){for(let n=0;n<t;n+=2*e){let r=Math.min(t,n+e),i=Math.min(t,n+2*e),a=n,l=r,u=n;for(;a<r&&l<i;)c[u++]=o(s[l],s[a])?s[l++]:s[a++];for(;a<r;)c[u++]=s[a++];for(;l<i;)c[u++]=s[l++]}let n=s;s=c,c=n}if(s!==e)for(let n=0;n<t;n++)e[n]=s[n]}function j(e,t,n){let r=e.length;if(r===0)return{width:0,height:0};let i=t.length;if(r===1&&i===0&&e[0].kind===0){let t=e[0];return t.rank=0,t.x=t.w/2,t.y=t.h/2,{width:t.w,height:t.h}}let a=1;if(i>0){let e=new Set;for(let n of t){let t=Math.min(n.tail,n.head),i=Math.max(n.tail,n.head),o=t*r+i;if(n.labelW>0||e.has(o)){a=2;break}e.add(o)}}M(e,t),N(e,t,a);let s=new Int32Array(i),c=0;for(let n=0;n<i;n++){let r=t[n];s[n]=Math.abs(e[r.head].rank-e[r.tail].rank),s[n]>1&&(c+=s[n]-1)}let _=new Uint8Array(i);if(c>o){let e=[];for(let t=0;t<i;t++)s[t]>1&&e.push(t);e.sort((e,t)=>s[t]-s[e]||e-t);for(let t of e){if(c<=o)break;_[t]=1,c-=s[t]-1}}let v=r+c,y=new Float64Array(v),b=new Float64Array(v),x=new Uint8Array(v),S=new Int32Array(v),C=0;for(let t=0;t<r;t++){let n=e[t];y[t]=n.w,b[t]=n.h,x[t]=n.kind,S[t]=n.rank,n.rank>C&&(C=n.rank)}let w=0;for(let e=0;e<i;e++)_[e]||(w+=s[e]);let T=new Int32Array(w),E=new Int32Array(w),D=new Float64Array(w),O=new Float64Array(w),k=new Int32Array(i).fill(-1),A=new Uint8Array(C+1),j=new Int32Array(i).fill(-1),P=!1;for(let t=0;t<r;t++)e[t].span>0&&e[t].kind===0&&(P=!0);let I=P?new Uint8Array(w):void 0,R=P?new Uint8Array(w):void 0,B=new Int32Array(i).fill(-1),ce=new Int32Array(i).fill(-1),V=new Float64Array(v).fill(NaN);for(let t=0;t<r;t++)V[t]=e[t].key;let H=!1;{let e=r,n=0;for(let r=0;r<i;r++){if(_[r])continue;let i=t[r],o=i.reversed?i.head:i.tail,s=i.reversed?i.tail:i.head,c=i.reversed?i.headDx:i.tailDx,l=i.reversed?i.tailDx:i.headDx;(c!==0||l!==0)&&(H=!0);let u=S[o],d=S[s],f=-1;i.labelW>0&&(f=u+(d-u>>1),a===2&&d-u>=4?(f&1)==1&&(f+=i.reversed?1:-1):a===2&&!(f&1)&&(f+=i.reversed?1:-1));let p=o;d-u>1&&(k[r]=e),B[r]=n,I&&!(i.reversed?i.headFixed:i.tailFixed)&&(I[n]=i.reversed?2:1);for(let t=u+1;t<d;t++){let a=e++;S[a]=t,V[a]=V[o]+(V[s]-V[o])*(t-u)/(d-u),t===f?(y[a]=i.labelW,b[a]=i.labelH,x[a]=2,j[r]=a,A[t]|=i.reversed?2:1):x[a]=1,T[n]=p,E[n]=a,D[n]=p===o?c:0,n++,p=a}T[n]=p,E[n]=s,D[n]=p===o?c:0,O[n]=l,R&&!(i.reversed?i.tailFixed:i.headFixed)&&(R[n]=i.reversed?1:2),ce[r]=n,n++}}let le;if(n.groups){let{of:e,parent:a}=n.groups;le=new Int32Array(v);for(let t=0;t<r;t++)le[t]=e[t];let o=e=>{let t=0;for(;e>=0;e=a[e])t++;return t},c=(e,t)=>{let n=o(e),r=o(t);for(;n>r;n--)e=a[e];for(;r>n;r--)t=a[t];for(;e!==t;)e=a[e],t=a[t];return e};for(let n=0;n<i;n++){if(k[n]<0)continue;let r=t[n],i=c(e[r.tail],e[r.head]);for(let e=k[n],t=e+s[n]-1;e<t;e++)le[e]=i}}let U=new Int32Array(v+1),W=new Int32Array(v+1);for(let e=0;e<w;e++)U[T[e]+1]++,W[E[e]+1]++;for(let e=0;e<v;e++)U[e+1]+=U[e],W[e+1]+=W[e];let ue=new Int32Array(w),de=new Int32Array(w);{let e=U.slice(0,v),t=W.slice(0,v);for(let n=0;n<w;n++)ue[e[T[n]]++]=n,de[t[E[n]]++]=n}let G=new Int32Array(C+2);for(let e=0;e<v;e++)G[S[e]+1]++;for(let e=0;e<=C;e++)G[e+1]+=G[e];let K=new Int32Array(v),fe=new Int32Array(v);{let e=new Int32Array(v),t=G.slice(0,C+1);for(let n=0;n<v;n++)e[t[S[n]]++]=n;for(let e=0;e<=C;e++)t[e]=G[e];let n=new Uint8Array(v),r=[];for(let i=0;i<v;i++)if(!n[e[i]])for(r.push(e[i]);r.length>0;){let e=r.pop();if(!n[e]){n[e]=1,K[t[S[e]]++]=e;for(let t=U[e+1]-1;t>=U[e];t--){let e=E[ue[t]];n[e]||r.push(e)}}}}let pe=(e,t)=>{let n=G[e],r=G[e+1];if(r-n<2)return!1;for(let e=n;e<r;e++)if(Number.isNaN(t(K[e])))return!1;let i=Array.from(K.subarray(n,r)),a=new Map;return i.forEach((e,t)=>a.set(e,t)),i.sort((e,n)=>t(e)-t(n)||a.get(e)-a.get(n)),K.set(i,n),!0};for(let e=0;e<=C;e++)pe(e,e=>V[e]);let me=!1;for(let t=0;t<r;t++)e[t].pin!==0&&(me=!0);if(me)for(let t=0;t<=C;t++){let n=Array.from(K.subarray(G[t],G[t+1])),i=new Map;n.forEach((e,t)=>i.set(e,t));let a=t=>t<r?e[t].pin:0;n.sort((e,t)=>a(e)-a(t)||i.get(e)-i.get(t)),K.set(n,G[t])}let he=new Uint8Array(C+1),ge=t=>t<r&&(e[t].kind===3||e[t].kind===4)?e[t].hint:NaN;for(let e of[0,C])pe(e,ge)&&(he[e]=1);let _e=()=>{for(let e=0;e<=C;e++){let t=G[e];for(let n=t,r=G[e+1];n<r;n++)fe[K[n]]=n-t}};_e();let q={n:v,real:r,maxRank:C,W:y,KIND:x,RANK:S,EF:T,ET:E,EFD:D,ETD:O,succStart:U,succE:ue,predStart:W,predE:de,layerStart:G,order:K,pos:fe,offsets:H,fixed:he,GRP:le,groupParent:n.groups?.parent},ve=0,ye=0;if(w>0&&C>0&&([ve,ye]=oe(q,e),_e()),n.orderOnly){let a=se(q,n);for(let t=0;t<r;t++)e[t].x=a[t];for(let e=0;e<i;e++){let n=t[e],r=n.reversed?n.head:n.tail,i=n.reversed?n.tail:n.head,o=[S[r],a[r]];if(!_[e]&&k[e]>=0)for(let t=k[e],n=t+s[e]-1;t<n;t++)o.push(S[t],a[t]);o.push(S[i],a[i]),n.points=o}return{width:0,height:0,crossings:ve,declared:ye}}I&&R&&F(q,e,I,R);let J=se(q,n),Y=re(q);if(I&&R){let r=L(q,I,R);ee(q,e,J,r,n,Y),te(q,e,J,I,R,r,Y),ne(q,J,Y,n);for(let e=0;e<i;e++){if(_[e])continue;let n=t[e],r=D[B[e]],i=O[ce[e]];n.tailDx=n.reversed?i:r,n.headDx=n.reversed?r:i}}let be=new Uint8Array(v);Y&&!n.tracks&&ie(q,J,Y,k,s,n.apart?0:n.edgeSep,be),n.tracks||ae(q,J,k,s,n.edgeSep,be);let xe=new Int32Array(i+1),X=n.tracks||I&&!n.straight?{from:[],to:[],rank:[],lower:[],track:[],levels:[],wide:[]}:void 0,Se=new Int32Array(C+1);if(X){for(let e=0;e<i;e++){if(xe[e]=X.from.length,_[e])continue;let t=k[e],r=!1;for(let i=t,a=t<0?t:t+s[e]-1;i<a;i++){let e=Y!==void 0&&Y[S[i]]===1;!n.tracks&&e!==(be[i]===1)&&(r=!0)}if(r)continue;let i=J[T[B[e]]]+D[B[e]],a=S[T[B[e]]];for(let n=t,r=t<0?t:t+s[e]-1;n<r;n++)Y&&Y[S[n]]||(X.from.push(i),X.to.push(J[n]),X.rank.push(a),X.lower.push(n),i=J[n],a=S[n]);X.from.push(i),X.to.push(J[E[ce[e]]]+O[ce[e]]),X.rank.push(a),X.lower.push(-1)}xe[i]=X.from.length}let Ce=(e,t)=>{let n=!1;for(let r=G[e];r<G[e+1];r++){let e=x[K[r]];if(e===t)n=!0;else if(e!==1)return!1}return n},we=Ce(0,3)?a:0,Te=Ce(C,4)?a:0,Ee=new Float64Array(C+1);for(let e=0;e<w;e++){let t=Math.abs(J[T[e]]+D[e]-J[E[e]]-O[e]);t>Ee[S[T[e]]]&&(Ee[S[T[e]]]=t)}let Z=new Float64Array(C+1),Q=new Float64Array(C+1),De=e=>(e<we||e>=C-Te?n.portSep:n.rankSep)/a,Oe=new Float64Array(C+1);for(let e=0;e<C;e++)Oe[e]=X?De(e):Math.max(De(e),Math.min(u*n.rankSep/a,Ee[e]*l));let ke=new Uint8Array(C+1).fill(1);for(let e=0;e<r;e++)ke[S[e]]=0;for(let e=1;e<C;e++){if(n.tracks||!ke[e]||A[e]!==1&&A[e]!==2)continue;let t=Math.min((n.headRoom??0)/2,Oe[A[e]===1?e-1:e]/2);Oe[e-1]+=A[e]===1?-t:t,Oe[e]+=A[e]===1?t:-t}let Ae=e=>x[e]===1&&ke[S[e]]&&!n.tracks?(Q[S[e]]-Z[S[e]])/4:0,je=n.tracks?d:h,Me=n.tracks?f:g,Ne=n.tracks?p:g,Pe=new Int32Array(C+1);if(X){let e=new Float64Array(C+1);for(let t=0;t<C;t++){if(Y&&Y[t])continue;let n=t+1;for(e[t]=Oe[t];n<C&&Y&&Y[n];)e[t]+=Oe[n++];Pe[t]=n}for(let t=0;t<X.from.length;t++)X.wide.push(+(Math.abs(X.from[t]-X.to[t])>m*e[X.rank[t]]));let t=new Float64Array(C+1);z(X,Se,!n.tracks,e,t);for(let r=0;r<C;r++)Se[r]>0?Oe[r]+=Math.max(0,2*je+(Se[r]-1)*Me-e[r]):t[r]>0&&(Oe[r]+=Math.max(0,Math.min(u*n.rankSep,t[r])-e[r]))}let Fe=0;for(let e=0;e<=C;e++){let t=0;for(let n=G[e];n<G[e+1];n++)b[K[n]]>t&&(t=b[K[n]]);Z[e]=Fe,Q[e]=Fe+t,Fe+=t+Oe[e]}let Ie=Fe,Le=(e,t=X.track[e])=>{let r=X.rank[e],i=Q[r],a=Z[Pe[r]],o=n.tracks?Se[r]:X.levels[e],s=o>1?Math.min(Ne,(a-i-2*je)/(o-1)):0;return(i+a)/2+(t-(o-1)/2)*s},$=1/0,Re=-1/0;for(let e=0;e<v;e++){let t=y[e]/2;J[e]-t<$&&($=J[e]-t),J[e]+t>Re&&(Re=J[e]+t)}let ze=new Uint8Array(C+1),Be=new Uint8Array(C+1);for(let e=0;e<r;e++)x[e]!==0||!I||(W[e+1]>W[e]&&(ze[S[e]]=1),U[e+1]>U[e]&&(Be[S[e]]=1));for(let t=0;t<r;t++){let n=e[t],r=n.rank;n.x=J[t]-$,n.y=x[t]===0&&Be[r]&&!ze[r]?Q[r]-n.h/2:x[t]===0&&ze[r]&&!Be[r]?Z[r]+n.h/2:(Z[r]+Q[r])/2}for(let r=0;r<i;r++){let i=t[r],a=e[i.reversed?i.head:i.tail],o=e[i.reversed?i.tail:i.head],c=[a.x+(i.reversed?i.headDx:i.tailDx),a.y+a.h/2],l=k[r];if(X&&xe[r+1]>xe[r])for(let e=xe[r];e<xe[r+1];e++){if(X.track[e]>=0&&(n.tracks||X.wide[e]===1)){let t=Le(e);c.push(X.from[e]-$,t,X.to[e]-$,t)}else X.track[e]>0&&c.push(X.from[e]-$,Le(e,X.track[e]-1));let t=X.lower[e];t<0||(c.push(J[t]-$,Z[S[t]]+Ae(t)),Q[S[t]]>Z[S[t]]&&c.push(J[t]-$,Q[S[t]]-Ae(t)))}else if(l>=0)for(let e=l,t=l+s[r]-1;e<t;e++){if(be[e])continue;let t=J[e]-$,n=Z[S[e]],r=Q[S[e]];c.push(t,n+Ae(e)),r>n&&c.push(t,r-Ae(e))}if(c.push(o.x+(i.reversed?i.tailDx:i.headDx),o.y-o.h/2),i.reversed)for(let e=0,t=c.length-2;e<t;e+=2,t-=2){let n=c[e],r=c[e+1];c[e]=c[t],c[e+1]=c[t+1],c[t]=n,c[t+1]=r}i.points=c;let u=j[r];u>=0?(i.labelX=J[u]-$,i.labelY=(Z[S[u]]+Q[S[u]])/2):i.labelW>0&&(i.labelX=(c[0]+c[c.length-2])/2,i.labelY=(c[1]+c[c.length-1])/2)}return{width:Re-$,height:Ie}}function M(e,t){let n=e.length,r=t.length,i=new Int32Array(n+1);for(let n=0;n<r;n++){let r=t[n];r.reversed=e[r.head].kind===3||e[r.tail].kind===4,r.reversed||i[r.tail+1]++}for(let e=0;e<n;e++)i[e+1]+=i[e];let a=new Int32Array(i[n]);{let e=i.slice(0,n);for(let n=0;n<r;n++)t[n].reversed||(a[e[t[n].tail]++]=n)}let o=new Uint8Array(n),s=i.slice(0,n),c=[];for(let e=0;e<n;e++)if(o[e]===0)for(c.push(e),o[e]=1;c.length>0;){let e=c[c.length-1];if(s[e]<i[e+1]){let n=t[a[s[e]++]],r=n.head;o[r]===1?n.reversed=!0:o[r]===0&&(o[r]=1,c.push(r))}else o[e]=2,c.pop()}}function N(e,t,n){let r=e.length,i=t.length,a=new Int32Array(i),o=new Int32Array(i),s=new Int32Array(i),c=new Int32Array(r+1),l=new Int32Array(r+1);for(let e=0;e<i;e++){let r=t[e],i=r.reversed?r.head:r.tail,u=r.reversed?r.tail:r.head;a[e]=i,o[e]=u,s[e]=Math.max(1,r.minlen)*n,c[i+1]++,l[u+1]++}for(let e=0;e<r;e++)c[e+1]+=c[e],l[e+1]+=l[e];let u=new Int32Array(i),d=new Int32Array(i);{let e=c.slice(0,r),t=l.slice(0,r);for(let n=0;n<i;n++)u[e[a[n]]++]=n,d[t[o[n]]++]=n}let f=new Int32Array(r),p=new Int32Array(r);for(let e=0;e<r;e++)p[e]=l[e+1]-l[e];let m=new Int32Array(r),h=0;for(let e=0;e<r;e++)p[e]===0&&(m[h++]=e);for(let e=0;e<h;e++){let t=m[e];for(let e=c[t];e<c[t+1];e++){let n=u[e],r=o[n];f[t]+s[n]>f[r]&&(f[r]=f[t]+s[n]),--p[r]===0&&(m[h++]=r)}}for(let e=0;e<8;e++){let e=!1;for(let t=h-1;t>=0;t--){let n=m[t],r=l[n+1]-l[n],i=c[n+1]-c[n];if(r===0&&i===0)continue;let p=-1/0,h=1/0;for(let e=l[n];e<l[n+1];e++){let t=d[e];p=Math.max(p,f[a[t]]+s[t])}for(let e=c[n];e<c[n+1];e++){let t=u[e];h=Math.min(h,f[o[t]]-s[t])}let g=f[n];i>r&&h!==1/0?g=h:r>i&&p!==-1/0&&(g=p),g!==f[n]&&(f[n]=g,e=!0)}if(!e)break}let g=1/0,_=-1/0,v=!1;for(let t=0;t<r;t++){let n=e[t].kind;n===3&&(v=!0),n!==3&&n!==4&&(f[t]<g&&(g=f[t]),f[t]>_&&(_=f[t]))}g===1/0&&(g=0,_=0);for(let t=0;t<r;t++)e[t].kind===3?f[t]=g-n:e[t].kind===4&&(f[t]=_+n);v&&(g-=n);for(let t=0;t<r;t++)e[t].rank=f[t]-g}function P(e,t,n,r,i,a,o){let l=n===0?e.predStart:e.succStart,u=n===0?e.predE:e.succE,d=n===0?e.EF:e.ET,f=e.pos;for(let e=l[t];e<l[t+1];e++)i[u[e]]!==0&&a.push(u[e]);if(a.length<2)return 0;a.sort((e,t)=>f[d[e]]-f[d[t]]||e-t);let p=e=>{let t=0;o[0]=0;for(let n=1;n<a.length;n++){let r=i[a[n]]===i[a[n-1]];o[n]=e(r&&i[a[n]]===1,r),t+=o[n]}return t},m=p(()=>1);if(r/m<c&&(m=p(e=>e?.5:1)),r/m<c&&(m=p((e,t)=>+!t)),m===0)return 0;let h=Math.min(s,r/m);for(let e=1;e<a.length;e++)o[e]*=h;return m*h}function F(e,t,n,r){let{real:i,W:a,EFD:o,ETD:s}=e;for(let c=0;c<i;c++){let i=Math.min(t[c].span,a[c]);if(!(i<=0||t[c].kind!==0))for(let t=0;t<2;t++){let a=[],l=[],u=P(e,c,t,i,t===0?r:n,a,l);if(u===0)continue;let d=t===0?s:o,f=-u/2;for(let e=0;e<a.length;e++)f+=l[e],d[a[e]]=f}}}function I(e,t,n,r){if(!t)return n;let{KIND:i,RANK:a,EF:o,ET:s,succStart:c,succE:l,predStart:u,predE:d}=e;for(let e=0;e<1e5;e++){let e=r===0?o[n]:s[n];if(i[e]!==1||!t[a[e]])break;n=r===0?d[u[e]]:l[c[e]]}return n}function L(e,t,n){let r=[new Int32Array(e.n),new Int32Array(e.n)];for(let i=0;i<e.EF.length;i++)n[i]!==0&&r[0][e.ET[i]]++,t[i]!==0&&r[1][e.EF[i]]++;return r}function R(e,t){return Math.max(.25,Math.min(.5,4*Math.abs(t)/(Math.abs(e)||1)))}function ee(e,t,n,r,i,a){let o=i.edgeSep,{n:s,real:c,maxRank:l,KIND:u,RANK:d,W:f,EF:p,ET:m,EFD:h,ETD:g,succStart:_,succE:v,predStart:y,predE:b,layerStart:x,order:S,pos:C}=e,w=e=>u[e]===2||u[e]===1&&(a===void 0||a[d[e]]!==1),T=(e,i)=>{let a=i===0?p[e]:m[e];return[i===0?n[a]+h[e]:n[a]+g[e],a<c&&t[a].kind===0?r[1-i][a]:0]},E=e=>{let t=x[d[e]],r=t+C[e],a=t=>f[t]/2+f[e]/2+(u[t]===0?i.nodeSep/2+o/2:u[t]===u[e]?o:o/2);return[r>t?n[S[r-1]]+a(S[r-1]):-1/0,r+1<x[d[e]+1]?n[S[r+1]]-a(S[r+1]):1/0]},D=(e,t,n,r,i)=>{let a=(t[1]===n[1]?Math.abs(t[0]-e)<=Math.abs(n[0]-e):t[1]<n[1])?[t[0],n[0]]:[n[0],t[0]];return a.find(e=>e>=r&&e<=i)??Math.max(r,Math.min(i,a[0]))},k=new Uint8Array(s),A=[];for(let t=1;t<l;t++)for(let r=x[t];r<x[t+1];r++){if(!w(S[r])||k[S[r]])continue;let t=S[r];for(;O(u[p[b[y[t]]]]);)t=p[b[y[t]]];let i=t,o=-1/0,s=1/0;A.length=0;for(let e=t;O(u[e]);e=m[v[_[e]]]){if(i=e,!w(e))continue;k[e]=1,A.push(e);let[t,n]=E(e);t>o&&(o=t),n<s&&(s=n)}if(o<=s){let e=D(n[A[0]],T(b[y[t]],0),T(v[_[i]],1),o,s);for(let t of A)n[t]=e}else for(let t of A){let[r,i]=E(t);r>i||(n[t]=D(n[t],T(I(e,a,b[y[t]],0),0),T(I(e,a,v[_[t]],1),1),r,i))}}}function te(e,t,n,r,i,a,o){let{real:c,W:l,EF:u,ET:d,EFD:f,ETD:p,succStart:m,succE:h,predStart:g,predE:_,pos:v}=e,y=(s,m,h,g,_)=>{if(a[m][h]<2)return 0;s=I(e,o,s,m);let v=m===0?u[s]:d[s],y=m===0?n[v]+f[s]:n[v]+p[s];if(_&&Math.abs(y-n[h])<=g/2+x)return Math.max(-g/2,Math.min(g/2,y-n[h]));let b=y,S=0;v<c&&t[v].kind===0&&(m===0?r:i)[s]!==0&&a[1-m][v]>=2&&(S=Math.max(0,Math.min(t[v].span,l[v])),S>0&&(b=n[v]));let w=Math.max(n[h]-g/2,b-S/2),T=Math.min(n[h]+g/2,b+S/2);if(w>T+x){let e=Math.max(0,g/2-C);return Math.max(-e,Math.min(e,y-n[h]))}let E=(n[h]*S+b*g)/(S+g);return Math.max(w,Math.min(T,E))-n[h]},b=[];for(let n=0;n<c;n++){let a=Math.min(t[n].span,l[n]);if(!(a<=0||t[n].kind!==0))for(let t=0;t<2;t++){let o=t===0?u:d,s=t===0?g:m,c=t===0?_:h,l=[],f=[];if(P(e,n,t,a,t===0?i:r,l,f),l.length===0)continue;l.length===1&&(f[0]=0);let p=[];for(let e=s[n];e<s[n+1];e++)p.push(c[e]);p.sort((e,t)=>v[o[e]]-v[o[t]]||e-t),b.push({v:n,side:t,span:a,ids:l,room:f,all:p})}}for(let e=0,t=!0;t&&e<6;e++){t=!1;for(let{v:n,side:a,span:o,ids:c,room:l,all:u}of b){let d=a===0?i:r,m=a===0?p:f,h=0,g=-o/2;for(let r=0;r<=u.length;r++){let i=r<u.length&&d[u[r]]===0;if(r<u.length&&!i)continue;let f=0;for(let e=r-1;e>=0&&d[u[e]]!==0;e--)f++;let p=i?m[u[r]]-s:o/2;if(f>0){let r=[],i=[],s=0;for(let t=0;t<f;t++){t>0&&(s+=l[h+t]),r.push(y(c[h+t],a,n,o,e>0)-s),i.push(1);let u=t>0&&l[h+t]===0;for(;r.length>1&&(u||r[r.length-2]/i[i.length-2]>r[r.length-1]/i[i.length-1]);){u=!1;let e=r.pop(),t=i.pop();r[r.length-1]+=e,i[i.length-1]+=t}}let u=s,d=0;s=0;for(let e=0;e<r.length;e++){let n=p-u<g?(g+p-u)/2:Math.max(g,Math.min(p-u,r[e]/i[e]));for(let r=0;r<i[e];r++,d++)d>0&&(s+=l[h+d]),Math.abs(m[c[h+d]]-n-s)>.01&&(t=!0),m[c[h+d]]=n+s}h+=f}i&&(g=m[u[r]]+s)}}}}function ne(e,t,n,r){let{n:i,KIND:a,RANK:o,EF:s,ET:c,EFD:l,ETD:u,layerStart:d,order:f,pos:p}=e,m=e=>n!==void 0&&a[e]===1&&n[o[e]]===1,h=[],g=[],_=[],v=[];for(let t=0;t<s.length;t++){if(m(s[t]))continue;let r=I(e,n,t,1);h.push(s[t]),g.push(c[r]),_.push(l[t]),v.push(u[r])}let y=e=>t[g[e]]+v[e]-t[h[e]]-_[e],b=new Int32Array(i),x=[];for(let e=0;e<i;e++)b[e]=e,x.push([e]);let C=(e,t)=>{let n=b[e],r=b[t];if(n!==r){x[n].length<x[r].length&&([n,r]=[r,n]);for(let e of x[r])b[e]=n,x[n].push(e);x[r]=[]}},w=[];for(let e=0;e<h.length;e++){let t=Math.abs(y(e));t<.01?C(h[e],g[e]):t<=S&&w.push(e)}if(w.length===0)return;w.sort((e,t)=>Math.abs(y(e))-Math.abs(y(t))||e-t);let T=t=>B(e,r,t),E=(e,n)=>{for(let r of x[e]){let i=d[o[r]],a=d[o[r]+1],s=i+p[r];if(s>i&&b[f[s-1]]!==e&&t[r]+n-t[f[s-1]]<T(r)+T(f[s-1])-.01||s+1<a&&b[f[s+1]]!==e&&t[f[s+1]]-t[r]-n<T(r)+T(f[s+1])-.01)return!1}return!0};for(let e of w){let n=y(e);if(Math.abs(n)<.01){C(h[e],g[e]);continue}if(Math.abs(n)>S||b[h[e]]===b[g[e]])continue;let r=b[h[e]],i=b[g[e]],a=x[r].length<=x[i].length?r:i;for(let o of[a,a===r?i:r]){let i=o===r?n:-n;if(E(o,i)){for(let e of x[o])t[e]+=i;C(h[e],g[e]);break}}}}function re(e){let{maxRank:t,KIND:n,layerStart:r,order:i}=e,a=new Uint8Array(t+1),o=!1;for(let e=1;e<t;e++){let t=r[e+1]>r[e];for(let a=r[e];t&&a<r[e+1];a++)n[i[a]]!==1&&(t=!1);t&&(a[e]=1,o=!0)}return o?a:void 0}function z(e,t,n,r,i){let{from:a,to:o,rank:s,track:c,levels:l,wide:u}=e,d=a.length,f=new Map;for(let e=0;e<d;e++){if(c.push(-1),l.push(0),Math.abs(a[e]-o[e])<x)continue;let t=f.get(s[e]);t?t.push(e):f.set(s[e],[e])}if(f.size===0)return;let p=new Float64Array(d),m=new Float64Array(d);for(let e=0;e<d;e++)p[e]=Math.min(a[e],o[e]),m[e]=Math.max(a[e],o[e]);let h=(e,t)=>+(e>=p[t]-x&&e<=m[t]+x),g=(e,t)=>Math.abs(a[e]-a[t])<x||Math.abs(o[e]-o[t])<x,S=(e,t)=>p[e]<m[t]-x&&p[t]<m[e]-x,C=(e,t)=>S(e,t)&&!g(e,t),O=(e,t)=>S(e,t)||h(o[e],t)+h(a[t],e)+h(o[t],e)+h(a[e],t)>0,k=(e,t)=>h(o[e],t)+h(a[t],e),A=e=>{let t=e.map((e,t)=>t).sort((t,n)=>p[e[t]]-p[e[n]]),n=[];for(let r=0;r<t.length;r++){let i=t[r],a=m[e[i]]+4*x;for(let o=r+1;o<t.length&&p[e[t[o]]]<=a;o++){let e=t[o];n.push(Math.min(i,e),Math.max(i,e))}}return n},j=e=>{e.sort((e,t)=>m[t]-p[t]-(m[e]-p[e])||p[e]-p[t]||e-t);let t=e.length,r=[],i=e.map((e,t)=>t),a=e=>{for(;i[e]!==e;)e=i[e]=i[i[e]];return e},o=t<=w,s=o?A(e):[],u=o?e.map(()=>[]):[];for(let t=0;t<s.length;t+=2){let n=s[t],r=s[t+1];C(e[n],e[r])&&(u[n].push(r),u[r].push(n))}let d=e.map((e,t)=>t);if(o){let n=new Int32Array(t),o=[];for(let e=0;e<t;e++)r.push([]),o.push([]);for(let t=0;t<s.length;t+=2){let c=s[t],l=s[t+1],u=e[c],d=e[l];if(!O(u,d))continue;i[a(c)]=a(l);let f=k(u,d),p=k(d,u);if(f===p)continue;let m=f<p?c:l,h=f<p?l:c;r[h].push(m),o[m].push(h),n[h]++}let c=new Uint8Array(t);d=[];for(let e=0;e<t;e++){let e=-1;for(let r=0;r<t&&!(!c[r]&&((e<0||n[r]<n[e])&&(e=r),n[r]===0));r++);c[e]=1,d.push(e);for(let t of o[e])n[t]--}}let f=new Set,h=[],g=0;for(let t of d){let n=e[t],i=0;for(let n of r[t]??[])c[e[n]]>=i&&(i=c[e[n]]+1);if(o){f.clear();for(let n of u[t])f.add(c[e[n]]);for(;f.has(i);)i++}else{for(;h[i]?.some(e=>C(n,e));)i++;(h[i]??=[]).push(n)}c[n]=i,i>=g&&(g=i+1)}let _=new Int32Array(t).fill(g),v=new Int32Array(t).fill(-1);for(let n=0;n<t;n++){let t=a(n);_[t]=Math.min(_[t],c[e[n]]),v[t]=Math.max(v[t],c[e[n]])}for(let r=0;r<t;r++){let t=a(r);l[e[r]]=v[t]-_[t]+1,n&&(c[e[r]]-=_[t])}return g},M=(e,t,n)=>{let r=R(o[e]-a[e],t);for(let i=0;i<=T;i++){let s=i/T,c=1-s;n[2*i]=a[e]+(o[e]-a[e])*s*s*(3-2*s),n[2*i+1]=t*(3*r*s*c*c+3*(1-r)*s*s*c+s*s*s)}},N=(e,t,n)=>{let r=n*n*1.000000001;for(let i=0;i<=T;i++){let a=e[2*i],o=e[2*i+1];for(let e=0;e<T;e++){let i=t[2*e+2]-t[2*e],s=t[2*e+3]-t[2*e+1],c=Math.max(0,Math.min(1,((a-t[2*e])*i+(o-t[2*e+1])*s)/(i*i+s*s||1))),l=a-t[2*e]-c*i,u=o-t[2*e+1]-c*s;if(l*l+u*u<r&&Math.hypot(l,u)<n)return!0}}return!1},P=(e,t,n,r)=>{let i=Math.max(n/2,n-2*_);return M(e,i,E),M(t,i,D),N(E,D,r)||N(D,E,r)};for(let[e,s]of f){if(!n){t[e]=j(s);continue}if(s.length>w)continue;let d=s.filter(e=>u[e]===1);j(d);let f=new Set(d.filter(e=>l[e]>1)),h=A(s);for(let t=0;t<h.length;t+=2){let n=s[h[t]],i=s[h[t+1]];f.has(n)&&f.has(i)||!C(n,i)||a[n]<o[n]!=a[i]<o[i]||P(n,i,r[e],u[n]===1||u[i]===1?v:y)&&f.add(n).add(i)}for(let e of d)c[e]=-1,l[e]=0;if(f.size===0)continue;let _=0,x=0,T=new Set;for(let e=0;e<h.length;e+=2){let t=s[h[e]],n=s[h[e+1]];if(f.has(t)&&f.has(n)){if(!S(t,n))continue;a[t]<o[t]==a[n]<o[n]?g(t,n)||x++:_++}else(f.has(t)||f.has(n))&&O(t,n)&&T.add(t).add(n)}if(_>x){for(let t of s)(m[t]-p[t])*b>i[e]&&(i[e]=(m[t]-p[t])*b);continue}let E=s.filter(e=>f.has(e)||u[e]!==1&&T.has(e));j(E);let D=0;for(let e of E)l[e]>D&&(D=l[e]);t[e]=D}}function ie(e,t,n,r,i,a,o){let{maxRank:s,EF:c,ET:l,EFD:u,ETD:d,succStart:f,succE:p,predStart:m,predE:h,layerStart:g,order:_}=e,v=new Float64Array(t.length),y=new Float64Array(t.length),b=new Float64Array(t.length);for(let a=0;a<r.length;a++){let o=r[a];if(o<0)continue;let s=o+i[a]-1,g=e.RANK[o];for(let e=o;e<s;e++){if(!n[g+e-o])continue;let r=e;for(;r+1<s&&n[g+r+1-o];)r++;let i=h[m[e]],a=p[f[r]],_=t[c[i]]+u[i],x=t[l[a]]+d[a],S=r-e+2;for(let t=e;t<=r;t++)v[t]=_+(x-_)*(t-e+1)/S,y[t]=_,b[t]=x;e=r}}let x=[];for(let r=1;r<s;r++){if(!n[r])continue;let i=g[r],s=g[r+1],c=Array.from(_.subarray(i,s)).sort((e,t)=>y[e]-y[t]||b[e]-b[t]||e-t);for(let n=0;n<c.length;){x.length=0;let r=n;for(;r<c.length&&Math.abs(y[c[r]]-y[c[n]])<1&&Math.abs(b[c[r]]-b[c[n]])<1;r++)x.push(c[r]);x.sort((t,n)=>e.pos[t]-e.pos[n]);for(let e=0;e<x.length;e++){let n=x[e];t[n]=v[n]+(e-(x.length-1)/2)*a,(x.length===1||a===0)&&(o[n]=1)}n=r}}}function ae(e,t,n,r,i,a){let{maxRank:o,W:s,KIND:c,RANK:l,EF:u,ET:d,EFD:f,ETD:p,succStart:m,succE:h,predStart:g,predE:_,layerStart:v,order:y}=e,b=new Uint8Array(o+1),x=!1;for(let e=1;e<o;e++){let t=!1,n=!1;for(let r=v[e];r<v[e+1];r++){let e=c[y[r]];e===2?t=!0:e!==1&&(n=!0)}t&&!n&&(b[e]=1,x=!0)}if(x)for(let e=0;e<n.length;e++){let o=n[e];if(!(o<0))for(let n=o,x=o+r[e]-1;n<x;n++){if(c[n]!==1||!b[l[n]])continue;let e=n,r=n;for(;e>o&&a[e-1];)e--;for(;r+1<x&&a[r+1];)r++;let S=_[g[e]],C=h[m[r]],w=t[u[S]]+f[S],T=t[d[C]]+p[C],E=Math.min(w,T)-i,D=Math.max(w,T)+i,O=!0,k=l[n];for(let e=v[k];O&&e<v[k+1];e++){let n=y[e];c[n]===2&&t[n]+s[n]/2>E&&t[n]-s[n]/2<D&&(O=!1)}if(!O)continue;a[n]=1;let A=r-e+2;for(let n=e;n<=r;n++)t[n]=w+(T-w)*(n-e+1)/A}}}function oe(e,t){let{n,real:r,maxRank:i,W:o,EF:s,ET:c,EFD:l,ETD:u,succStart:d,succE:f,predStart:p,predE:m,layerStart:h,order:g,pos:_,offsets:v,fixed:y,GRP:b,groupParent:x}=e,S=0;for(let e=0;e<=i;e++)S=Math.max(S,h[e+1]-h[e]);if(S<2)return[0,0];let C=v?new Int32Array(s.length):void 0,w=new Int32Array(C?s.length:0),T=new Int32Array(C?n:0),E=C?f.slice():f,D=new Uint8Array(C?n:0);if(C){let e=m.slice(),t=(e,t,n,r)=>{for(let i=t+1;i<n;i++)if(r[e[i]]!==r[e[t]])return e.subarray(t,n).sort((e,t)=>r[e]-r[t]),!0;return!1};for(let r=0;r<n;r++){if(T[r]=1,t(e,p[r],p[r+1],u))for(let t=p[r]+1;t<p[r+1];t++)u[e[t]]!==u[e[t-1]]&&T[r]++,w[e[t]]=T[r]-1;t(E,d[r],d[r+1],l)&&(D[r]=1)}}let O=1;for(;O<(C?S+s.length:S);)O<<=1;let k=new Int32Array(2*O),j=new Int32Array(s.length),M=()=>{let e=0;for(let t=0;t<i;t++){let n=h[t+2]-h[t+1];if(C){let e=0;for(let n=h[t+1];n<h[t+2];n++){let t=g[n];for(let n=p[t];n<p[t+1];n++)C[m[n]]=e+w[m[n]];e+=T[t]}n=e}if(n<2)continue;let r=0;for(let e=h[t];e<h[t+1];e++){let t=g[e],n=d[t],i=d[t+1],a=r;for(let e=n;e<i;e++)j[r++]=C?C[E[e]]:_[c[f[e]]];let o=r-a;if(!(o<2)){if(C&&D[t])for(let e=a+1;e<r;e++){let t=j[e],r=l[E[n+e-a]],i=e-1;for(;i>=a&&l[E[n+i-a]]===r&&j[i]>t;)j[i+1]=j[i],i--;j[i+1]=t}else if(o<=12)for(let e=a+1;e<r;e++){let t=j[e],n=e-1;for(;n>=a&&j[n]>t;)j[n+1]=j[n],n--;j[n+1]=t}else j.subarray(a,r).sort()}}if(r<2)continue;let i=1;for(;i<n;)i<<=1;k.fill(0,0,2*i);for(let t=0;t<r;t++){let n=j[t]+i;for(k[n]++;n>1;)!(n&1)&&(e+=k[n+1]),n>>=1,k[n]++}}return e},N=M(),P=new Float64Array(n),F=new Int32Array(S),I=new Int32Array(S),L=x?x.length:0,R=new Int32Array(L);for(let e=0;e<L;e++)for(let t=e;t>=0;t=x[t])R[e]++;let ee=new Float64Array(L),te=new Int32Array(L),ne=new Int32Array(L),re=(e,t)=>{let r=h[e],i=h[e+1];for(let e=r;e<i;e++)for(let t=b[g[e]];t>=0;t=x[t])ee[t]=0,te[t]=0;for(let e=r;e<i;e++){let n=g[e];for(let r=b[n];r>=0;r=x[r])te[r]===0&&(ne[r]=e),ee[r]+=t[n],te[r]++}let a=e=>e>=n?ee[e-n]/te[e-n]:t[e],o=e=>e>=n?ne[e-n]:r+_[e],s=Array.from(g.subarray(r,i)).sort((e,t)=>{let r=e,i=t,s=b[e],c=b[t],l=s<0?0:R[s],u=c<0?0:R[c];for(;l>u;l--)r=n+s,s=x[s];for(;u>l;u--)i=n+c,c=x[c];for(;s!==c;)r=n+s,s=x[s],i=n+c,c=x[c];return a(r)-a(i)||o(r)-o(i)});g.set(s,r);for(let e=r;e<i;e++)_[g[e]]=e-r};if(b){let e=new Float64Array(n);for(let t=0;t<=i;t++){for(let n=h[t];n<h[t+1];n++)e[g[n]]=n-h[t];re(t,e)}}let z=b?M():N;if(z===0)return[0,N];let ie=g.slice(),ae=Math.min(z,N),oe=(e,n)=>{let a=e?p:d,x=e?m:f,S=e?s:c,C=e?l:u;for(let s=1;s<=i;s++){let c=e?s:i-s;if(y[c])continue;let l=h[c],u=h[c+1],d=0;for(let n=l;n<u;n++){let i=g[n],s=i<r?t[i].pin:0;if(s!==0){P[i]=s*1e9,F[d++]=i;continue}let f=a[i],p=a[i+1];if(f===p){if(b){let t=e?h[c]-h[c-1]:h[c+2]-h[c+1];P[i]=(n-l)*t/(u-l);continue}P[i]=-1;continue}let m=0;for(let e=f;e<p;e++){let t=S[x[e]];m+=_[t],v&&o[t]>0&&(m+=C[x[e]]/o[t])}P[i]=m/(p-f),F[d++]=i}if(b){re(c,P);continue}if(d<2)continue;A(F,d,P,_,n,I);let f=0;for(let e=l;e<u;e++)P[g[e]]!==-1&&(g[e]=F[f++]);for(let e=l;e<u;e++)_[g[e]]=e-l}},B=()=>{let e=0;for(let t=0;t<=i;t++)for(let n=h[t];n<h[t+1];n++)if(!(g[n]>=r))for(let r=n+1;r<h[t+1];r++)g[r]<g[n]&&e++;return e},se=()=>{for(let e=0;e<=i;e++)for(let t=h[e];t<h[e+1];t++)_[g[t]]=t-h[e]},ce=e=>e<r?t[e].pin:0,V=(e,t)=>{let n=t?s[e]:c[e];return v&&o[n]>0?_[n]+(t?l[e]:u[e])/o[n]:_[n]},H=(e,t)=>{let n=0;for(let r=p[e];r<p[e+1];r++){let e=V(m[r],!0);for(let r=p[t];r<p[t+1];r++)e>V(m[r],!0)&&n++}for(let r=d[e];r<d[e+1];r++){let e=V(f[r],!1);for(let r=d[t];r<d[t+1];r++)e>V(f[r],!1)&&n++}return n},le=()=>{for(let e=0;e<8;e++){let e=!1;for(let t=0;t<=i;t++){if(y[t])continue;let n=h[t];for(let r=n;r+1<h[t+1];r++){let t=g[r],i=g[r+1];ce(t)!==ce(i)||b&&b[t]!==b[i]||H(i,t)>=H(t,i)||(g[r]=i,g[r+1]=t,_[i]=r-n,_[t]=r+1-n,e=!0)}}if(!e)break}},U=g.slice(),W=n<=600,ue=ie,de=1/0;for(let e=0;e<(W?2:1);e++){e>0&&(g.set(U),se());let t=ae,n=U.slice();for(let r=0,i=0;i<4&&r<a;r++,i++){oe((r+e)%2==0,r%4>=2);let a=M();if(a<t&&(t=a,n.set(g),i=0,a===0))break}if(g.set(n),W&&t>0){se(),le();let e=M();e<t&&(t=e,n.set(g))}let r=W?B():0;(e===0||t<z||t===z&&r<de)&&(z=t,ue=n,de=r)}if(g.set(ue),se(),ie.set(ue),b&&(z=M()),!W)return[z,N];for(let e=0;e<r;e++)if(t[e].pin!==0)return[z,N];if(de===0||y[0]||y[i])return[z,N];for(let e=0;e<=i;e++)g.subarray(h[e],h[e+1]).reverse();return se(),(M()>z||B()>=de)&&g.set(ie),[z,N]}function B(e,t,n){return e.W[n]/2+(e.KIND[n]===0?t.nodeSep:t.edgeSep)/2}function se(e,t){let{n,maxRank:r,W:i,KIND:a,EF:o,ET:s,EFD:c,ETD:l,succStart:u,succE:d,predStart:f,predE:p,layerStart:m,order:h,pos:g}=e,_=o.length,v=new Float64Array(n);for(let r=0;r<n;r++)v[r]=B(e,t,r);let y=new Int32Array(_);for(let e=0;e<_;e++)y[e]=g[s[e]];for(let e=0;e<n;e++)u[e+1]-u[e]>1&&k(d,u[e],u[e+1],y);for(let e=0;e<_;e++)y[e]=g[o[e]];for(let e=0;e<n;e++)f[e+1]-f[e]>1&&k(p,f[e],f[e+1],y);let b=new Uint8Array(_);for(let e=1;e<=r;e++){let t=m[e]-m[e-1],n=m[e],r=m[e+1],i=0,s=n;for(let e=n;e<r;e++){let n=h[e],c=-1;if(O(a[n])){let e=o[p[f[n]]];O(a[e])&&(c=e)}let l=c>=0?g[c]:t;if(c>=0||e===r-1){for(let t=s;t<=e;t++){let e=h[t],n=O(a[e]);for(let t=f[e];t<f[e+1];t++){let e=p[t],r=g[o[e]];(r<i||l<r)&&!(n&&O(a[o[e]]))&&(b[e]=1)}}s=e+1,i=l}}}let x=[],S=new Int32Array(n),C=new Int32Array(n),w=new Float64Array(n),T=new Int32Array(n),E=new Int32Array(n),D=new Float64Array(n),A=new Int32Array(n),j=new Int32Array(n+1),M=new Int32Array(n),N=new Int32Array(n),P=new Int32Array(n),F=new Float64Array(n);for(let e=0;e<4;e++){let t=e<2,i=(e&1)==1,a=t?f:u,_=t?p:d,y=t?o:s,O=t?l:c,k=t?c:l;for(let e=0;e<n;e++)S[e]=e,C[e]=e,w[e]=0,A[e]=0,j[e+1]=0,F[e]=0;for(let e=0;e<=r;e++){let n=t?e:r-e,o=m[n],s=m[n+1],c=t?n-1:n+1,l=c>=0&&c<=r?m[c+1]-m[c]-1:0,u=-1;for(let e=i?s-1:o;i?e>=o:e<s;i?e--:e++){let t=h[e],n=a[t],r=a[t+1]-n;if(r===0)continue;let o=n+(r-1>>1),s=n+(r>>1);for(let e=0;e<2&&(e!==1||o!==s);e++){let n=_[e===0===i?s:o],r=y[n],a=i?l-g[r]:g[r];C[t]===t&&u<a&&b[n]===0&&(C[r]=t,C[t]=S[t]=S[r],w[t]=w[r]+k[n]-O[n],u=a)}}}let I=0;for(let e=0;e<=r;e++){let t=m[e],n=m[e+1];for(let e=t+1;e<n;e++){let t=i?h[e]:h[e-1],n=i?h[e-1]:h[e],r=v[t]+v[n];T[I]=S[t],E[I]=S[n],D[I]=i?r-w[t]+w[n]:r+w[t]-w[n],A[S[n]]++,j[S[t]+1]++,I++}}for(let e=0;e<n;e++)j[e+1]+=j[e];for(let e=0;e<n;e++)N[e]=j[e];for(let e=0;e<I;e++)M[N[T[e]]++]=e;let L=0;for(let e=0;e<n;e++)S[e]===e&&A[e]===0&&(P[L++]=e);for(let e=0;e<L;e++){let t=P[e];for(let e=j[t];e<j[t+1];e++){let n=M[e],r=E[n];F[t]+D[n]>F[r]&&(F[r]=F[t]+D[n]),--A[r]===0&&(P[L++]=r)}}for(let e=L-1;e>=0;e--){let t=P[e],n=1/0;for(let e=j[t];e<j[t+1];e++){let t=M[e],r=F[E[t]]-D[t];r<n&&(n=r)}n!==1/0&&n>F[t]&&(F[t]=n)}let R=new Float64Array(n);for(let e=0;e<n;e++)R[e]=(i?-F[S[e]]:F[S[e]])+w[e];x.push(R)}let I=0,L=1/0,R=[],ee=[];for(let e=0;e<4;e++){let t=1/0,r=-1/0,a=x[e];for(let e=0;e<n;e++){let n=i[e]/2;a[e]-n<t&&(t=a[e]-n),a[e]+n>r&&(r=a[e]+n)}R.push(t),ee.push(r),r-t<L&&(L=r-t,I=e)}for(let e=0;e<4;e++){let t=e&1?ee[I]-ee[e]:R[I]-R[e];if(t!==0){let r=x[e];for(let e=0;e<n;e++)r[e]+=t}}let te=new Float64Array(n);for(let e=0;e<n;e++){let t=x[0][e],n=x[1][e],r=x[2][e],i=x[3][e],a;t>n&&(a=t,t=n,n=a),r>i&&(a=r,r=i,i=a),t>r&&(a=t,t=r,r=a),n>i&&(a=n,n=i,i=a),n>r&&(a=n,n=r,r=a),te[e]=(n+r)/2}return te}var ce=12,V=.62,H=6;function le(){let e=new Map;return{add(t,n,r){let i=W(r);n>=0&&i>0&&i+H>(e.get(t*4+n)??0)&&e.set(t*4+n,i+H)},of:(t,n)=>n>=0?e.get(t*4+n)??0:0}}function U(e,t,r,i,a=r>0?r+H:0,o=i>0?i+H:0){let s=t===`linear`,c=t===`step`||t===`stepBefore`||t===`stepAfter`,l=[],u=[],d=[],f=(e,t,n,r)=>Math.abs(e-n)<.01&&Math.abs(t-r)<.01;for(let n=0;n<e.length;n+=3){let r=e[n],i=e[n+1],a=e[n+2],o=l.length-1;if(c&&o>=0&&Math.abs(r-l[o])>=.01&&Math.abs(i-u[o])>=.01){let e=l[o],n=u[o],s=t===`stepBefore`?n:t===`stepAfter`?i:(n+i)/2,c=t===`stepBefore`?e:t===`stepAfter`?r:(e+r)/2,p=a===0?[e,s,r,s]:[c,n,c,i];for(let t=0;t<4;t+=2)f(p[t],p[t+1],e,n)||f(p[t],p[t+1],r,i)||(l.push(p[t]),u.push(p[t+1]),d.push(a))}l.push(r),u.push(i),d.push(a)}let p=l.length-1,m=e=>Math.abs(l[e]-l[e-1])<.01||Math.abs(u[e]-u[e-1])<.01,h=e=>s||m(e),g=(e,t,n)=>{if(!h(Math.max(e,t)))return n===0?[0,Math.sign(u[t]-u[e])||1]:[Math.sign(l[t]-l[e])||1,0];let r=l[t]-l[e],i=u[t]-u[e],a=Math.hypot(r,i)||1;return[r/a,i/a]},[_,v]=g(0,1,d[1]),[y,b]=g(p-1,p,d[p]),x=l[0],S=u[0],C=l[p],w=u[p];l[0]+=_*r,u[0]+=v*r,l[p]-=y*i,u[p]-=b*i;let T=e=>Math.abs(l[e]-l[e-1])+Math.abs(u[e]-u[e-1]),E=e=>!s&&e>0&&e<p&&m(e)&&m(e+1)&&T(e)>=.01&&T(e+1)>=.01&&Math.abs(l[e]-l[e-1])<.01!=Math.abs(l[e+1]-l[e])<.01,D=(e,t,n)=>Math.abs(l[e]-l[e-1])*Math.abs(t)+Math.abs(u[e]-u[e-1])*Math.abs(n),O=(e,t,n)=>{let r=Math.min(Math.max(0,e-H-t),n/4);return r+Math.min(e-t-r,(n-r)/4)},k=o>i&&(!h(p)||E(p-1))?O(o,i,D(p,y,b)):0,A=a>r&&(!h(1)||E(1))?O(a,r,D(1,_,v)):0;k>=1&&(l.splice(p,0,l[p]-y*k),u.splice(p,0,u[p]-b*k),d.splice(p,0,d[p]),p++),A>=1&&(l.splice(1,0,l[0]+_*A),u.splice(1,0,u[0]+v*A),d.splice(1,0,d[1]),p++);let j=`M${n(l[0])},${n(u[0])}`,M=l[0],N=u[0],P=(e,t)=>{f(e,t,M,N)||(j+=`L${n(e)},${n(t)}`,M=e,N=t)};for(let e=1;e<=p;e++){let t=l[e],r=u[e];if(!h(e)){let i=d[e]===0,a=i?r-N:t-M,o=Math.abs(a)*R(i?t-M:r-N,a),s=i?0:Math.sign(a)*o,c=i?Math.sign(a)*o:0;j+=`C${n(M+s)},${n(N+c)} ${n(t-s)},${n(r-c)} ${n(t)},${n(r)}`,M=t,N=r;continue}if(!E(e)){if(e<p&&m(e)&&m(e+1)&&(t-l[e-1])*(l[e+1]-t)+(r-u[e-1])*(u[e+1]-r)>0)continue;P(t,r);continue}let i=E(e-1)?T(e)/2:T(e),a=E(e+1)?T(e+1)/2:T(e+1);c&&(i=a=Math.min(ce,i,a));let[o,s]=g(e-1,e,d[e]),[f,_]=g(e,e+1,d[e+1]);P(t-o*i,r-s*i),M=t+f*a,N=r+_*a,j+=c?`Q${n(t)},${n(r)} ${n(M)},${n(N)}`:`C${n(t-o*i*(1-V))},${n(r-s*i*(1-V))} ${n(t+f*a*(1-V))},${n(r+_*a*(1-V))} ${n(M)},${n(N)}`}return{d:j,sx:x,sy:S,sdx:-_,sdy:-v,ex:C,ey:w,edx:y,edy:b}}function W(e){return e===`arrow_point`?7:e===`arrow_circle`?8:e===`arrow_cross`?4:0}function ue(e,t,r,i,a,o){let s=-a,c=i;if(e===`arrow_point`){let e=t-i*8,l=r-a*8,u=3.36;return`<path class="pele-marker" d="M${n(t)},${n(r)}L${n(e+s*u)},${n(l+c*u)}L${n(e-s*u)},${n(l-c*u)}Z" fill="${o}" stroke="none"/>`}if(e===`arrow_circle`)return`<circle class="pele-marker" cx="${n(t-i*4)}" cy="${n(r-a*4)}" r="3.5" fill="${o}" stroke="none"/>`;if(e===`arrow_cross`){let e=t-i*4,o=r-a*4,l=3.5,u=(i+s)*l,d=(a+c)*l,f=(i-s)*l,p=(a-c)*l;return`<path class="pele-marker" d="M${n(e-u)},${n(o-d)}L${n(e+u)},${n(o+d)}M${n(e-f)},${n(o-p)}L${n(e+f)},${n(o+p)}"/>`}return``}function de(r,i,a,o,s,c){let l=i.width+8,u=i.height;return`<g class="pele-edge-label" data-id="${e(r)}"><rect x="${n(a-l/2)}" y="${n(o-u/2)}" width="${n(l)}" height="${n(u)}" rx="3" fill="var(--_bg)"/>`+t(i,a,o,s,c)+`</g>`}function G(e,t,r,i,a,o,s,c){let l=(a?t:r)/2,u=Math.min(l-4,8+i*6),d=o+i*8,f=Math.hypot(d,u)||1,p=(i,o)=>a?`${n(e.x+o)},${n(e.y+r/2+i)}`:`${n(e.x+t/2+i)},${n(e.y+o)}`,m=d/f*s,h=u/f*s;return a?(c.labelX=e.x,c.labelY=e.y+r/2+d+4+c.labelH/2):(c.labelX=e.x+t/2+d+4+c.labelW/2,c.labelY=e.y),{d:`M${p(0,-u)}C${p(d,-u*2)} ${p(d,u*2)} ${p(m,u+h)}`,sx:a?e.x-u:e.x+t/2,sy:a?e.y+r/2:e.y-u,sdx:a?0:-1,sdy:a?-1:0,ex:a?e.x+u:e.x+t/2,ey:a?e.y+r/2:e.y+u,edx:a?-u/f:-d/f,edy:a?-d/f:-u/f}}export{W as a,j as c,le as d,M as f,de as i,U as l,N as n,r as o,R as r,ue as s,i as t,G as u};
|
|
1
|
+
import{i as e,o as t,x as n}from"./DfCZPwp1.js";function r(e,t,n=0){return{w:e,h:t,kind:n,pin:0,hint:NaN,key:NaN,span:0,x:0,y:0,rank:0}}function i(e,t,n=1,r=0,i=0){return{tail:e,head:t,minlen:n,labelW:r,labelH:i,tailDx:0,headDx:0,tailFixed:!1,headFixed:!1,reversed:!1,points:[],labelX:0,labelY:0}}var a=24,o=2e4,s=16,c=8,l=.125,u=3,d=18,f=10,p=14,m=2,h=28,g=12,_=12,v=8,y=4,b=.5,x=.5,S=12,C=40,w=400,T=16,E=new Float64Array(2*T+2),D=new Float64Array(2*T+2);function O(e){return e===1||e===2}function k(e,t,n,r){for(let i=t+1;i<n;i++){let n=e[i],a=r[n],o=i-1;for(;o>=t&&(r[e[o]]>a||r[e[o]]===a&&e[o]>n);)e[o+1]=e[o],o--;e[o+1]=n}}function A(e,t,n,r,i,a){let o=(e,t)=>n[e]<n[t]||n[e]===n[t]&&(i?r[e]>r[t]:r[e]<r[t]);for(let n=0;n<t;n+=8)for(let r=n+1,i=Math.min(t,n+8);r<i;r++){let t=e[r],i=r-1;for(;i>=n&&o(t,e[i]);)e[i+1]=e[i],i--;e[i+1]=t}let s=e,c=a;for(let e=8;e<t;e*=2){for(let n=0;n<t;n+=2*e){let r=Math.min(t,n+e),i=Math.min(t,n+2*e),a=n,l=r,u=n;for(;a<r&&l<i;)c[u++]=o(s[l],s[a])?s[l++]:s[a++];for(;a<r;)c[u++]=s[a++];for(;l<i;)c[u++]=s[l++]}let n=s;s=c,c=n}if(s!==e)for(let n=0;n<t;n++)e[n]=s[n]}function j(e,t,n){let r=e.length;if(r===0)return{width:0,height:0};let i=t.length;if(r===1&&i===0&&e[0].kind===0){let t=e[0];return t.rank=0,t.x=t.w/2,t.y=t.h/2,{width:t.w,height:t.h}}let a=1;if(i>0){let e=new Set;for(let n of t){let t=Math.min(n.tail,n.head),i=Math.max(n.tail,n.head),o=t*r+i;if(n.labelW>0||e.has(o)){a=2;break}e.add(o)}}M(e,t),N(e,t,a);let s=new Int32Array(i),c=0;for(let n=0;n<i;n++){let r=t[n];s[n]=Math.abs(e[r.head].rank-e[r.tail].rank),s[n]>1&&(c+=s[n]-1)}let _=new Uint8Array(i);if(c>o){let e=[];for(let t=0;t<i;t++)s[t]>1&&e.push(t);e.sort((e,t)=>s[t]-s[e]||e-t);for(let t of e){if(c<=o)break;_[t]=1,c-=s[t]-1}}let v=r+c,y=new Float64Array(v),b=new Float64Array(v),x=new Uint8Array(v),S=new Int32Array(v),C=0;for(let t=0;t<r;t++){let n=e[t];y[t]=n.w,b[t]=n.h,x[t]=n.kind,S[t]=n.rank,n.rank>C&&(C=n.rank)}let w=0;for(let e=0;e<i;e++)_[e]||(w+=s[e]);let T=new Int32Array(w),E=new Int32Array(w),D=new Float64Array(w),O=new Float64Array(w),k=new Int32Array(i).fill(-1),A=new Uint8Array(C+1),j=new Int32Array(i).fill(-1),P=!1;for(let t=0;t<r;t++)e[t].span>0&&e[t].kind===0&&(P=!0);let I=P?new Uint8Array(w):void 0,R=P?new Uint8Array(w):void 0,B=new Int32Array(i).fill(-1),ce=new Int32Array(i).fill(-1),V=new Float64Array(v).fill(NaN);for(let t=0;t<r;t++)V[t]=e[t].key;let H=!1;{let e=r,n=0;for(let r=0;r<i;r++){if(_[r])continue;let i=t[r],o=i.reversed?i.head:i.tail,s=i.reversed?i.tail:i.head,c=i.reversed?i.headDx:i.tailDx,l=i.reversed?i.tailDx:i.headDx;(c!==0||l!==0)&&(H=!0);let u=S[o],d=S[s],f=-1;i.labelW>0&&(f=u+(d-u>>1),a===2&&d-u>=4?(f&1)==1&&(f+=i.reversed?1:-1):a===2&&!(f&1)&&(f+=i.reversed?1:-1));let p=o;d-u>1&&(k[r]=e),B[r]=n,I&&!(i.reversed?i.headFixed:i.tailFixed)&&(I[n]=i.reversed?2:1);for(let t=u+1;t<d;t++){let a=e++;S[a]=t,V[a]=V[o]+(V[s]-V[o])*(t-u)/(d-u),t===f?(y[a]=i.labelW,b[a]=i.labelH,x[a]=2,j[r]=a,A[t]|=i.reversed?2:1):x[a]=1,T[n]=p,E[n]=a,D[n]=p===o?c:0,n++,p=a}T[n]=p,E[n]=s,D[n]=p===o?c:0,O[n]=l,R&&!(i.reversed?i.tailFixed:i.headFixed)&&(R[n]=i.reversed?1:2),ce[r]=n,n++}}let le;if(n.groups){let{of:e,parent:a}=n.groups;le=new Int32Array(v);for(let t=0;t<r;t++)le[t]=e[t];let o=e=>{let t=0;for(;e>=0;e=a[e])t++;return t},c=(e,t)=>{let n=o(e),r=o(t);for(;n>r;n--)e=a[e];for(;r>n;r--)t=a[t];for(;e!==t;)e=a[e],t=a[t];return e};for(let n=0;n<i;n++){if(k[n]<0)continue;let r=t[n],i=c(e[r.tail],e[r.head]);for(let e=k[n],t=e+s[n]-1;e<t;e++)le[e]=i}}let U=new Int32Array(v+1),W=new Int32Array(v+1);for(let e=0;e<w;e++)U[T[e]+1]++,W[E[e]+1]++;for(let e=0;e<v;e++)U[e+1]+=U[e],W[e+1]+=W[e];let ue=new Int32Array(w),de=new Int32Array(w);{let e=U.slice(0,v),t=W.slice(0,v);for(let n=0;n<w;n++)ue[e[T[n]]++]=n,de[t[E[n]]++]=n}let G=new Int32Array(C+2);for(let e=0;e<v;e++)G[S[e]+1]++;for(let e=0;e<=C;e++)G[e+1]+=G[e];let K=new Int32Array(v),fe=new Int32Array(v);{let e=new Int32Array(v),t=G.slice(0,C+1);for(let n=0;n<v;n++)e[t[S[n]]++]=n;for(let e=0;e<=C;e++)t[e]=G[e];let n=new Uint8Array(v),r=[];for(let i=0;i<v;i++)if(!n[e[i]])for(r.push(e[i]);r.length>0;){let e=r.pop();if(!n[e]){n[e]=1,K[t[S[e]]++]=e;for(let t=U[e+1]-1;t>=U[e];t--){let e=E[ue[t]];n[e]||r.push(e)}}}}let pe=(e,t)=>{let n=G[e],r=G[e+1];if(r-n<2)return!1;for(let e=n;e<r;e++)if(Number.isNaN(t(K[e])))return!1;let i=Array.from(K.subarray(n,r)),a=new Map;return i.forEach((e,t)=>a.set(e,t)),i.sort((e,n)=>t(e)-t(n)||a.get(e)-a.get(n)),K.set(i,n),!0};for(let e=0;e<=C;e++)pe(e,e=>V[e]);let me=!1;for(let t=0;t<r;t++)e[t].pin!==0&&(me=!0);if(me)for(let t=0;t<=C;t++){let n=Array.from(K.subarray(G[t],G[t+1])),i=new Map;n.forEach((e,t)=>i.set(e,t));let a=t=>t<r?e[t].pin:0;n.sort((e,t)=>a(e)-a(t)||i.get(e)-i.get(t)),K.set(n,G[t])}let he=new Uint8Array(C+1),ge=t=>t<r&&(e[t].kind===3||e[t].kind===4)?e[t].hint:NaN;for(let e of[0,C])pe(e,ge)&&(he[e]=1);let _e=()=>{for(let e=0;e<=C;e++){let t=G[e];for(let n=t,r=G[e+1];n<r;n++)fe[K[n]]=n-t}};_e();let q={n:v,real:r,maxRank:C,W:y,KIND:x,RANK:S,EF:T,ET:E,EFD:D,ETD:O,succStart:U,succE:ue,predStart:W,predE:de,layerStart:G,order:K,pos:fe,offsets:H,fixed:he,GRP:le,groupParent:n.groups?.parent},ve=0,ye=0;if(w>0&&C>0&&([ve,ye]=oe(q,e),_e()),n.orderOnly){let a=se(q,n);for(let t=0;t<r;t++)e[t].x=a[t];for(let e=0;e<i;e++){let n=t[e],r=n.reversed?n.head:n.tail,i=n.reversed?n.tail:n.head,o=[S[r],a[r]];if(!_[e]&&k[e]>=0)for(let t=k[e],n=t+s[e]-1;t<n;t++)o.push(S[t],a[t]);o.push(S[i],a[i]),n.points=o}return{width:0,height:0,crossings:ve,declared:ye}}I&&R&&F(q,e,I,R);let J=se(q,n),Y=re(q);if(I&&R){let r=L(q,I,R);ee(q,e,J,r,n,Y),te(q,e,J,I,R,r,Y),ne(q,J,Y,n);for(let e=0;e<i;e++){if(_[e])continue;let n=t[e],r=D[B[e]],i=O[ce[e]];n.tailDx=n.reversed?i:r,n.headDx=n.reversed?r:i}}let be=new Uint8Array(v);Y&&!n.tracks&&ie(q,J,Y,k,s,n.apart?0:n.edgeSep,be),n.tracks||ae(q,J,k,s,n.edgeSep,be);let xe=new Int32Array(i+1),X=n.tracks||I&&!n.straight?{from:[],to:[],rank:[],lower:[],track:[],levels:[],wide:[]}:void 0,Se=new Int32Array(C+1);if(X){for(let e=0;e<i;e++){if(xe[e]=X.from.length,_[e])continue;let t=k[e],r=!1;for(let i=t,a=t<0?t:t+s[e]-1;i<a;i++){let e=Y!==void 0&&Y[S[i]]===1;!n.tracks&&e!==(be[i]===1)&&(r=!0)}if(r)continue;let i=J[T[B[e]]]+D[B[e]],a=S[T[B[e]]];for(let n=t,r=t<0?t:t+s[e]-1;n<r;n++)Y&&Y[S[n]]||(X.from.push(i),X.to.push(J[n]),X.rank.push(a),X.lower.push(n),i=J[n],a=S[n]);X.from.push(i),X.to.push(J[E[ce[e]]]+O[ce[e]]),X.rank.push(a),X.lower.push(-1)}xe[i]=X.from.length}let Ce=(e,t)=>{let n=!1;for(let r=G[e];r<G[e+1];r++){let e=x[K[r]];if(e===t)n=!0;else if(e!==1)return!1}return n},we=Ce(0,3)?a:0,Te=Ce(C,4)?a:0,Ee=new Float64Array(C+1);for(let e=0;e<w;e++){let t=Math.abs(J[T[e]]+D[e]-J[E[e]]-O[e]);t>Ee[S[T[e]]]&&(Ee[S[T[e]]]=t)}let Z=new Float64Array(C+1),Q=new Float64Array(C+1),De=e=>(e<we||e>=C-Te?n.portSep:n.rankSep)/a,Oe=new Float64Array(C+1);for(let e=0;e<C;e++)Oe[e]=X?De(e):Math.max(De(e),Math.min(u*n.rankSep/a,Ee[e]*l));let ke=new Uint8Array(C+1).fill(1);for(let e=0;e<r;e++)ke[S[e]]=0;for(let e=1;e<C;e++){if(n.tracks||!ke[e]||A[e]!==1&&A[e]!==2)continue;let t=Math.min((n.headRoom??0)/2,Oe[A[e]===1?e-1:e]/2);Oe[e-1]+=A[e]===1?-t:t,Oe[e]+=A[e]===1?t:-t}let Ae=e=>x[e]===1&&ke[S[e]]&&!n.tracks?(Q[S[e]]-Z[S[e]])/4:0,je=n.tracks?d:h,Me=n.tracks?f:g,Ne=n.tracks?p:g,Pe=new Int32Array(C+1);if(X){let e=new Float64Array(C+1);for(let t=0;t<C;t++){if(Y&&Y[t])continue;let n=t+1;for(e[t]=Oe[t];n<C&&Y&&Y[n];)e[t]+=Oe[n++];Pe[t]=n}for(let t=0;t<X.from.length;t++)X.wide.push(+(Math.abs(X.from[t]-X.to[t])>m*e[X.rank[t]]));let t=new Float64Array(C+1);z(X,Se,!n.tracks,e,t);for(let r=0;r<C;r++)Se[r]>0?Oe[r]+=Math.max(0,2*je+(Se[r]-1)*Me-e[r]):t[r]>0&&(Oe[r]+=Math.max(0,Math.min(u*n.rankSep,t[r])-e[r]))}let Fe=0;for(let e=0;e<=C;e++){let t=0;for(let n=G[e];n<G[e+1];n++)b[K[n]]>t&&(t=b[K[n]]);Z[e]=Fe,Q[e]=Fe+t,Fe+=t+Oe[e]}let Ie=Fe,Le=(e,t=X.track[e])=>{let r=X.rank[e],i=Q[r],a=Z[Pe[r]],o=n.tracks?Se[r]:X.levels[e],s=o>1?Math.min(Ne,(a-i-2*je)/(o-1)):0;return(i+a)/2+(t-(o-1)/2)*s},$=1/0,Re=-1/0;for(let e=0;e<v;e++){let t=y[e]/2;J[e]-t<$&&($=J[e]-t),J[e]+t>Re&&(Re=J[e]+t)}let ze=new Uint8Array(C+1),Be=new Uint8Array(C+1);for(let e=0;e<r;e++)x[e]!==0||!I||(W[e+1]>W[e]&&(ze[S[e]]=1),U[e+1]>U[e]&&(Be[S[e]]=1));for(let t=0;t<r;t++){let n=e[t],r=n.rank;n.x=J[t]-$,n.y=x[t]===0&&Be[r]&&!ze[r]?Q[r]-n.h/2:x[t]===0&&ze[r]&&!Be[r]?Z[r]+n.h/2:(Z[r]+Q[r])/2}for(let r=0;r<i;r++){let i=t[r],a=e[i.reversed?i.head:i.tail],o=e[i.reversed?i.tail:i.head],c=[a.x+(i.reversed?i.headDx:i.tailDx),a.y+a.h/2],l=k[r];if(X&&xe[r+1]>xe[r])for(let e=xe[r];e<xe[r+1];e++){if(X.track[e]>=0&&(n.tracks||X.wide[e]===1)){let t=Le(e);c.push(X.from[e]-$,t,X.to[e]-$,t)}else X.track[e]>0&&c.push(X.from[e]-$,Le(e,X.track[e]-1));let t=X.lower[e];t<0||(c.push(J[t]-$,Z[S[t]]+Ae(t)),Q[S[t]]>Z[S[t]]&&c.push(J[t]-$,Q[S[t]]-Ae(t)))}else if(l>=0)for(let e=l,t=l+s[r]-1;e<t;e++){if(be[e])continue;let t=J[e]-$,n=Z[S[e]],r=Q[S[e]];c.push(t,n+Ae(e)),r>n&&c.push(t,r-Ae(e))}if(c.push(o.x+(i.reversed?i.tailDx:i.headDx),o.y-o.h/2),i.reversed)for(let e=0,t=c.length-2;e<t;e+=2,t-=2){let n=c[e],r=c[e+1];c[e]=c[t],c[e+1]=c[t+1],c[t]=n,c[t+1]=r}i.points=c;let u=j[r];u>=0?(i.labelX=J[u]-$,i.labelY=(Z[S[u]]+Q[S[u]])/2):i.labelW>0&&(i.labelX=(c[0]+c[c.length-2])/2,i.labelY=(c[1]+c[c.length-1])/2)}return{width:Re-$,height:Ie}}function M(e,t){let n=e.length,r=t.length,i=new Int32Array(n+1);for(let n=0;n<r;n++){let r=t[n];r.reversed=e[r.head].kind===3||e[r.tail].kind===4,r.reversed||i[r.tail+1]++}for(let e=0;e<n;e++)i[e+1]+=i[e];let a=new Int32Array(i[n]);{let e=i.slice(0,n);for(let n=0;n<r;n++)t[n].reversed||(a[e[t[n].tail]++]=n)}let o=new Uint8Array(n),s=i.slice(0,n),c=[];for(let e=0;e<n;e++)if(o[e]===0)for(c.push(e),o[e]=1;c.length>0;){let e=c[c.length-1];if(s[e]<i[e+1]){let n=t[a[s[e]++]],r=n.head;o[r]===1?n.reversed=!0:o[r]===0&&(o[r]=1,c.push(r))}else o[e]=2,c.pop()}}function N(e,t,n){let r=e.length,i=t.length,a=new Int32Array(i),o=new Int32Array(i),s=new Int32Array(i),c=new Int32Array(r+1),l=new Int32Array(r+1);for(let e=0;e<i;e++){let r=t[e],i=r.reversed?r.head:r.tail,u=r.reversed?r.tail:r.head;a[e]=i,o[e]=u,s[e]=Math.max(1,r.minlen)*n,c[i+1]++,l[u+1]++}for(let e=0;e<r;e++)c[e+1]+=c[e],l[e+1]+=l[e];let u=new Int32Array(i),d=new Int32Array(i);{let e=c.slice(0,r),t=l.slice(0,r);for(let n=0;n<i;n++)u[e[a[n]]++]=n,d[t[o[n]]++]=n}let f=new Int32Array(r),p=new Int32Array(r);for(let e=0;e<r;e++)p[e]=l[e+1]-l[e];let m=new Int32Array(r),h=0;for(let e=0;e<r;e++)p[e]===0&&(m[h++]=e);for(let e=0;e<h;e++){let t=m[e];for(let e=c[t];e<c[t+1];e++){let n=u[e],r=o[n];f[t]+s[n]>f[r]&&(f[r]=f[t]+s[n]),--p[r]===0&&(m[h++]=r)}}for(let e=0;e<8;e++){let e=!1;for(let t=h-1;t>=0;t--){let n=m[t],r=l[n+1]-l[n],i=c[n+1]-c[n];if(r===0&&i===0)continue;let p=-1/0,h=1/0;for(let e=l[n];e<l[n+1];e++){let t=d[e];p=Math.max(p,f[a[t]]+s[t])}for(let e=c[n];e<c[n+1];e++){let t=u[e];h=Math.min(h,f[o[t]]-s[t])}let g=f[n];i>r&&h!==1/0?g=h:r>i&&p!==-1/0&&(g=p),g!==f[n]&&(f[n]=g,e=!0)}if(!e)break}let g=1/0,_=-1/0,v=!1;for(let t=0;t<r;t++){let n=e[t].kind;n===3&&(v=!0),n!==3&&n!==4&&(f[t]<g&&(g=f[t]),f[t]>_&&(_=f[t]))}g===1/0&&(g=0,_=0);for(let t=0;t<r;t++)e[t].kind===3?f[t]=g-n:e[t].kind===4&&(f[t]=_+n);v&&(g-=n);for(let t=0;t<r;t++)e[t].rank=f[t]-g}function P(e,t,n,r,i,a,o){let l=n===0?e.predStart:e.succStart,u=n===0?e.predE:e.succE,d=n===0?e.EF:e.ET,f=e.pos;for(let e=l[t];e<l[t+1];e++)i[u[e]]!==0&&a.push(u[e]);if(a.length<2)return 0;a.sort((e,t)=>f[d[e]]-f[d[t]]||e-t);let p=e=>{let t=0;o[0]=0;for(let n=1;n<a.length;n++){let r=i[a[n]]===i[a[n-1]];o[n]=e(r&&i[a[n]]===1,r),t+=o[n]}return t},m=p(()=>1);if(r/m<c&&(m=p(e=>e?.5:1)),r/m<c&&(m=p((e,t)=>+!t)),m===0)return 0;let h=Math.min(s,r/m);for(let e=1;e<a.length;e++)o[e]*=h;return m*h}function F(e,t,n,r){let{real:i,W:a,EFD:o,ETD:s}=e;for(let c=0;c<i;c++){let i=Math.min(t[c].span,a[c]);if(!(i<=0||t[c].kind!==0))for(let t=0;t<2;t++){let a=[],l=[],u=P(e,c,t,i,t===0?r:n,a,l);if(u===0)continue;let d=t===0?s:o,f=-u/2;for(let e=0;e<a.length;e++)f+=l[e],d[a[e]]=f}}}function I(e,t,n,r){if(!t)return n;let{KIND:i,RANK:a,EF:o,ET:s,succStart:c,succE:l,predStart:u,predE:d}=e;for(let e=0;e<1e5;e++){let e=r===0?o[n]:s[n];if(i[e]!==1||!t[a[e]])break;n=r===0?d[u[e]]:l[c[e]]}return n}function L(e,t,n){let r=[new Int32Array(e.n),new Int32Array(e.n)];for(let i=0;i<e.EF.length;i++)n[i]!==0&&r[0][e.ET[i]]++,t[i]!==0&&r[1][e.EF[i]]++;return r}function R(e,t){return Math.max(.25,Math.min(.5,4*Math.abs(t)/(Math.abs(e)||1)))}function ee(e,t,n,r,i,a){let o=i.edgeSep,{n:s,real:c,maxRank:l,KIND:u,RANK:d,W:f,EF:p,ET:m,EFD:h,ETD:g,succStart:_,succE:v,predStart:y,predE:b,layerStart:x,order:S,pos:C}=e,w=e=>u[e]===2||u[e]===1&&(a===void 0||a[d[e]]!==1),T=(e,i)=>{let a=i===0?p[e]:m[e];return[i===0?n[a]+h[e]:n[a]+g[e],a<c&&t[a].kind===0?r[1-i][a]:0]},E=e=>{let t=x[d[e]],r=t+C[e],a=t=>f[t]/2+f[e]/2+(u[t]===0?i.nodeSep/2+o/2:u[t]===u[e]?o:o/2);return[r>t?n[S[r-1]]+a(S[r-1]):-1/0,r+1<x[d[e]+1]?n[S[r+1]]-a(S[r+1]):1/0]},D=(e,t,n,r,i)=>{let a=(t[1]===n[1]?Math.abs(t[0]-e)<=Math.abs(n[0]-e):t[1]<n[1])?[t[0],n[0]]:[n[0],t[0]];return a.find(e=>e>=r&&e<=i)??Math.max(r,Math.min(i,a[0]))},k=new Uint8Array(s),A=[];for(let t=1;t<l;t++)for(let r=x[t];r<x[t+1];r++){if(!w(S[r])||k[S[r]])continue;let t=S[r];for(;O(u[p[b[y[t]]]]);)t=p[b[y[t]]];let i=t,o=-1/0,s=1/0;A.length=0;for(let e=t;O(u[e]);e=m[v[_[e]]]){if(i=e,!w(e))continue;k[e]=1,A.push(e);let[t,n]=E(e);t>o&&(o=t),n<s&&(s=n)}if(o<=s){let e=D(n[A[0]],T(b[y[t]],0),T(v[_[i]],1),o,s);for(let t of A)n[t]=e}else for(let t of A){let[r,i]=E(t);r>i||(n[t]=D(n[t],T(I(e,a,b[y[t]],0),0),T(I(e,a,v[_[t]],1),1),r,i))}}}function te(e,t,n,r,i,a,o){let{real:c,W:l,EF:u,ET:d,EFD:f,ETD:p,succStart:m,succE:h,predStart:g,predE:_,pos:v}=e,y=(s,m,h,g,_)=>{if(a[m][h]<2)return 0;s=I(e,o,s,m);let v=m===0?u[s]:d[s],y=m===0?n[v]+f[s]:n[v]+p[s];if(_&&Math.abs(y-n[h])<=g/2+x)return Math.max(-g/2,Math.min(g/2,y-n[h]));let b=y,S=0;v<c&&t[v].kind===0&&(m===0?r:i)[s]!==0&&a[1-m][v]>=2&&(S=Math.max(0,Math.min(t[v].span,l[v])),S>0&&(b=n[v]));let w=Math.max(n[h]-g/2,b-S/2),T=Math.min(n[h]+g/2,b+S/2);if(w>T+x){let e=Math.max(0,g/2-C);return Math.max(-e,Math.min(e,y-n[h]))}let E=(n[h]*S+b*g)/(S+g);return Math.max(w,Math.min(T,E))-n[h]},b=[];for(let n=0;n<c;n++){let a=Math.min(t[n].span,l[n]);if(!(a<=0||t[n].kind!==0))for(let t=0;t<2;t++){let o=t===0?u:d,s=t===0?g:m,c=t===0?_:h,l=[],f=[];if(P(e,n,t,a,t===0?i:r,l,f),l.length===0)continue;l.length===1&&(f[0]=0);let p=[];for(let e=s[n];e<s[n+1];e++)p.push(c[e]);p.sort((e,t)=>v[o[e]]-v[o[t]]||e-t),b.push({v:n,side:t,span:a,ids:l,room:f,all:p})}}for(let e=0,t=!0;t&&e<6;e++){t=!1;for(let{v:n,side:a,span:o,ids:c,room:l,all:u}of b){let d=a===0?i:r,m=a===0?p:f,h=0,g=-o/2;for(let r=0;r<=u.length;r++){let i=r<u.length&&d[u[r]]===0;if(r<u.length&&!i)continue;let f=0;for(let e=r-1;e>=0&&d[u[e]]!==0;e--)f++;let p=i?m[u[r]]-s:o/2;if(f>0){let r=[],i=[],s=0;for(let t=0;t<f;t++){t>0&&(s+=l[h+t]),r.push(y(c[h+t],a,n,o,e>0)-s),i.push(1);let u=t>0&&l[h+t]===0;for(;r.length>1&&(u||r[r.length-2]/i[i.length-2]>r[r.length-1]/i[i.length-1]);){u=!1;let e=r.pop(),t=i.pop();r[r.length-1]+=e,i[i.length-1]+=t}}let u=s,d=0;s=0;for(let e=0;e<r.length;e++){let n=p-u<g?(g+p-u)/2:Math.max(g,Math.min(p-u,r[e]/i[e]));for(let r=0;r<i[e];r++,d++)d>0&&(s+=l[h+d]),Math.abs(m[c[h+d]]-n-s)>.01&&(t=!0),m[c[h+d]]=n+s}h+=f}i&&(g=m[u[r]]+s)}}}}function ne(e,t,n,r){let{n:i,KIND:a,RANK:o,EF:s,ET:c,EFD:l,ETD:u,layerStart:d,order:f,pos:p}=e,m=e=>n!==void 0&&a[e]===1&&n[o[e]]===1,h=[],g=[],_=[],v=[];for(let t=0;t<s.length;t++){if(m(s[t]))continue;let r=I(e,n,t,1);h.push(s[t]),g.push(c[r]),_.push(l[t]),v.push(u[r])}let y=e=>t[g[e]]+v[e]-t[h[e]]-_[e],b=new Int32Array(i),x=[];for(let e=0;e<i;e++)b[e]=e,x.push([e]);let C=(e,t)=>{let n=b[e],r=b[t];if(n!==r){x[n].length<x[r].length&&([n,r]=[r,n]);for(let e of x[r])b[e]=n,x[n].push(e);x[r]=[]}},w=[];for(let e=0;e<h.length;e++){let t=Math.abs(y(e));t<.01?C(h[e],g[e]):t<=S&&w.push(e)}if(w.length===0)return;w.sort((e,t)=>Math.abs(y(e))-Math.abs(y(t))||e-t);let T=t=>B(e,r,t),E=(e,n)=>{for(let r of x[e]){let i=d[o[r]],a=d[o[r]+1],s=i+p[r];if(s>i&&b[f[s-1]]!==e&&t[r]+n-t[f[s-1]]<T(r)+T(f[s-1])-.01||s+1<a&&b[f[s+1]]!==e&&t[f[s+1]]-t[r]-n<T(r)+T(f[s+1])-.01)return!1}return!0};for(let e of w){let n=y(e);if(Math.abs(n)<.01){C(h[e],g[e]);continue}if(Math.abs(n)>S||b[h[e]]===b[g[e]])continue;let r=b[h[e]],i=b[g[e]],a=x[r].length<=x[i].length?r:i;for(let o of[a,a===r?i:r]){let i=o===r?n:-n;if(E(o,i)){for(let e of x[o])t[e]+=i;C(h[e],g[e]);break}}}}function re(e){let{maxRank:t,KIND:n,layerStart:r,order:i}=e,a=new Uint8Array(t+1),o=!1;for(let e=1;e<t;e++){let t=r[e+1]>r[e];for(let a=r[e];t&&a<r[e+1];a++)n[i[a]]!==1&&(t=!1);t&&(a[e]=1,o=!0)}return o?a:void 0}function z(e,t,n,r,i){let{from:a,to:o,rank:s,track:c,levels:l,wide:u}=e,d=a.length,f=new Map;for(let e=0;e<d;e++){if(c.push(-1),l.push(0),Math.abs(a[e]-o[e])<x)continue;let t=f.get(s[e]);t?t.push(e):f.set(s[e],[e])}if(f.size===0)return;let p=new Float64Array(d),m=new Float64Array(d);for(let e=0;e<d;e++)p[e]=Math.min(a[e],o[e]),m[e]=Math.max(a[e],o[e]);let h=(e,t)=>+(e>=p[t]-x&&e<=m[t]+x),g=(e,t)=>Math.abs(a[e]-a[t])<x||Math.abs(o[e]-o[t])<x,S=(e,t)=>p[e]<m[t]-x&&p[t]<m[e]-x,C=(e,t)=>S(e,t)&&!g(e,t),O=(e,t)=>S(e,t)||h(o[e],t)+h(a[t],e)+h(o[t],e)+h(a[e],t)>0,k=(e,t)=>h(o[e],t)+h(a[t],e),A=e=>{let t=e.map((e,t)=>t).sort((t,n)=>p[e[t]]-p[e[n]]),n=[];for(let r=0;r<t.length;r++){let i=t[r],a=m[e[i]]+4*x;for(let o=r+1;o<t.length&&p[e[t[o]]]<=a;o++){let e=t[o];n.push(Math.min(i,e),Math.max(i,e))}}return n},j=e=>{e.sort((e,t)=>m[t]-p[t]-(m[e]-p[e])||p[e]-p[t]||e-t);let t=e.length,r=[],i=e.map((e,t)=>t),a=e=>{for(;i[e]!==e;)e=i[e]=i[i[e]];return e},o=t<=w,s=o?A(e):[],u=o?e.map(()=>[]):[];for(let t=0;t<s.length;t+=2){let n=s[t],r=s[t+1];C(e[n],e[r])&&(u[n].push(r),u[r].push(n))}let d=e.map((e,t)=>t);if(o){let n=new Int32Array(t),o=[];for(let e=0;e<t;e++)r.push([]),o.push([]);for(let t=0;t<s.length;t+=2){let c=s[t],l=s[t+1],u=e[c],d=e[l];if(!O(u,d))continue;i[a(c)]=a(l);let f=k(u,d),p=k(d,u);if(f===p)continue;let m=f<p?c:l,h=f<p?l:c;r[h].push(m),o[m].push(h),n[h]++}let c=new Uint8Array(t);d=[];for(let e=0;e<t;e++){let e=-1;for(let r=0;r<t&&!(!c[r]&&((e<0||n[r]<n[e])&&(e=r),n[r]===0));r++);c[e]=1,d.push(e);for(let t of o[e])n[t]--}}let f=new Set,h=[],g=0;for(let t of d){let n=e[t],i=0;for(let n of r[t]??[])c[e[n]]>=i&&(i=c[e[n]]+1);if(o){f.clear();for(let n of u[t])f.add(c[e[n]]);for(;f.has(i);)i++}else{for(;h[i]?.some(e=>C(n,e));)i++;(h[i]??=[]).push(n)}c[n]=i,i>=g&&(g=i+1)}let _=new Int32Array(t).fill(g),v=new Int32Array(t).fill(-1);for(let n=0;n<t;n++){let t=a(n);_[t]=Math.min(_[t],c[e[n]]),v[t]=Math.max(v[t],c[e[n]])}for(let r=0;r<t;r++){let t=a(r);l[e[r]]=v[t]-_[t]+1,n&&(c[e[r]]-=_[t])}return g},M=(e,t,n)=>{let r=R(o[e]-a[e],t);for(let i=0;i<=T;i++){let s=i/T,c=1-s;n[2*i]=a[e]+(o[e]-a[e])*s*s*(3-2*s),n[2*i+1]=t*(3*r*s*c*c+3*(1-r)*s*s*c+s*s*s)}},N=(e,t,n)=>{let r=n*n*1.000000001;for(let i=0;i<=T;i++){let a=e[2*i],o=e[2*i+1];for(let e=0;e<T;e++){let i=t[2*e+2]-t[2*e],s=t[2*e+3]-t[2*e+1],c=Math.max(0,Math.min(1,((a-t[2*e])*i+(o-t[2*e+1])*s)/(i*i+s*s||1))),l=a-t[2*e]-c*i,u=o-t[2*e+1]-c*s;if(l*l+u*u<r&&Math.hypot(l,u)<n)return!0}}return!1},P=(e,t,n,r)=>{let i=Math.max(n/2,n-2*_);return M(e,i,E),M(t,i,D),N(E,D,r)||N(D,E,r)};for(let[e,s]of f){if(!n){t[e]=j(s);continue}if(s.length>w)continue;let d=s.filter(e=>u[e]===1);j(d);let f=new Set(d.filter(e=>l[e]>1)),h=A(s);for(let t=0;t<h.length;t+=2){let n=s[h[t]],i=s[h[t+1]];f.has(n)&&f.has(i)||!C(n,i)||a[n]<o[n]!=a[i]<o[i]||P(n,i,r[e],u[n]===1||u[i]===1?v:y)&&f.add(n).add(i)}for(let e of d)c[e]=-1,l[e]=0;if(f.size===0)continue;let _=0,x=0,T=new Set;for(let e=0;e<h.length;e+=2){let t=s[h[e]],n=s[h[e+1]];if(f.has(t)&&f.has(n)){if(!S(t,n))continue;a[t]<o[t]==a[n]<o[n]?g(t,n)||x++:_++}else(f.has(t)||f.has(n))&&O(t,n)&&T.add(t).add(n)}if(_>x){for(let t of s)(m[t]-p[t])*b>i[e]&&(i[e]=(m[t]-p[t])*b);continue}let E=s.filter(e=>f.has(e)||u[e]!==1&&T.has(e));j(E);let D=0;for(let e of E)l[e]>D&&(D=l[e]);t[e]=D}}function ie(e,t,n,r,i,a,o){let{maxRank:s,EF:c,ET:l,EFD:u,ETD:d,succStart:f,succE:p,predStart:m,predE:h,layerStart:g,order:_}=e,v=new Float64Array(t.length),y=new Float64Array(t.length),b=new Float64Array(t.length);for(let a=0;a<r.length;a++){let o=r[a];if(o<0)continue;let s=o+i[a]-1,g=e.RANK[o];for(let e=o;e<s;e++){if(!n[g+e-o])continue;let r=e;for(;r+1<s&&n[g+r+1-o];)r++;let i=h[m[e]],a=p[f[r]],_=t[c[i]]+u[i],x=t[l[a]]+d[a],S=r-e+2;for(let t=e;t<=r;t++)v[t]=_+(x-_)*(t-e+1)/S,y[t]=_,b[t]=x;e=r}}let x=[];for(let r=1;r<s;r++){if(!n[r])continue;let i=g[r],s=g[r+1],c=Array.from(_.subarray(i,s)).sort((e,t)=>y[e]-y[t]||b[e]-b[t]||e-t);for(let n=0;n<c.length;){x.length=0;let r=n;for(;r<c.length&&Math.abs(y[c[r]]-y[c[n]])<1&&Math.abs(b[c[r]]-b[c[n]])<1;r++)x.push(c[r]);x.sort((t,n)=>e.pos[t]-e.pos[n]);for(let e=0;e<x.length;e++){let n=x[e];t[n]=v[n]+(e-(x.length-1)/2)*a,(x.length===1||a===0)&&(o[n]=1)}n=r}}}function ae(e,t,n,r,i,a){let{maxRank:o,W:s,KIND:c,RANK:l,EF:u,ET:d,EFD:f,ETD:p,succStart:m,succE:h,predStart:g,predE:_,layerStart:v,order:y}=e,b=new Uint8Array(o+1),x=!1;for(let e=1;e<o;e++){let t=!1,n=!1;for(let r=v[e];r<v[e+1];r++){let e=c[y[r]];e===2?t=!0:e!==1&&(n=!0)}t&&!n&&(b[e]=1,x=!0)}if(x)for(let e=0;e<n.length;e++){let o=n[e];if(!(o<0))for(let n=o,x=o+r[e]-1;n<x;n++){if(c[n]!==1||!b[l[n]])continue;let e=n,r=n;for(;e>o&&a[e-1];)e--;for(;r+1<x&&a[r+1];)r++;let S=_[g[e]],C=h[m[r]],w=t[u[S]]+f[S],T=t[d[C]]+p[C],E=Math.min(w,T)-i,D=Math.max(w,T)+i,O=!0,k=l[n];for(let e=v[k];O&&e<v[k+1];e++){let n=y[e];c[n]===2&&t[n]+s[n]/2>E&&t[n]-s[n]/2<D&&(O=!1)}if(!O)continue;a[n]=1;let A=r-e+2;for(let n=e;n<=r;n++)t[n]=w+(T-w)*(n-e+1)/A}}}function oe(e,t){let{n,real:r,maxRank:i,W:o,EF:s,ET:c,EFD:l,ETD:u,succStart:d,succE:f,predStart:p,predE:m,layerStart:h,order:g,pos:_,offsets:v,fixed:y,GRP:b,groupParent:x}=e,S=0;for(let e=0;e<=i;e++)S=Math.max(S,h[e+1]-h[e]);if(S<2)return[0,0];let C=v?new Int32Array(s.length):void 0,w=new Int32Array(C?s.length:0),T=new Int32Array(C?n:0),E=C?f.slice():f,D=new Uint8Array(C?n:0);if(C){let e=m.slice(),t=(e,t,n,r)=>{for(let i=t+1;i<n;i++)if(r[e[i]]!==r[e[t]])return e.subarray(t,n).sort((e,t)=>r[e]-r[t]),!0;return!1};for(let r=0;r<n;r++){if(T[r]=1,t(e,p[r],p[r+1],u))for(let t=p[r]+1;t<p[r+1];t++)u[e[t]]!==u[e[t-1]]&&T[r]++,w[e[t]]=T[r]-1;t(E,d[r],d[r+1],l)&&(D[r]=1)}}let O=1;for(;O<(C?S+s.length:S);)O<<=1;let k=new Int32Array(2*O),j=new Int32Array(s.length),M=()=>{let e=0;for(let t=0;t<i;t++){let n=h[t+2]-h[t+1];if(C){let e=0;for(let n=h[t+1];n<h[t+2];n++){let t=g[n];for(let n=p[t];n<p[t+1];n++)C[m[n]]=e+w[m[n]];e+=T[t]}n=e}if(n<2)continue;let r=0;for(let e=h[t];e<h[t+1];e++){let t=g[e],n=d[t],i=d[t+1],a=r;for(let e=n;e<i;e++)j[r++]=C?C[E[e]]:_[c[f[e]]];let o=r-a;if(!(o<2)){if(C&&D[t])for(let e=a+1;e<r;e++){let t=j[e],r=l[E[n+e-a]],i=e-1;for(;i>=a&&l[E[n+i-a]]===r&&j[i]>t;)j[i+1]=j[i],i--;j[i+1]=t}else if(o<=12)for(let e=a+1;e<r;e++){let t=j[e],n=e-1;for(;n>=a&&j[n]>t;)j[n+1]=j[n],n--;j[n+1]=t}else j.subarray(a,r).sort()}}if(r<2)continue;let i=1;for(;i<n;)i<<=1;k.fill(0,0,2*i);for(let t=0;t<r;t++){let n=j[t]+i;for(k[n]++;n>1;)!(n&1)&&(e+=k[n+1]),n>>=1,k[n]++}}return e},N=M(),P=new Float64Array(n),F=new Int32Array(S),I=new Int32Array(S),L=x?x.length:0,R=new Int32Array(L);for(let e=0;e<L;e++)for(let t=e;t>=0;t=x[t])R[e]++;let ee=new Float64Array(L),te=new Int32Array(L),ne=new Int32Array(L),re=(e,t)=>{let r=h[e],i=h[e+1];for(let e=r;e<i;e++)for(let t=b[g[e]];t>=0;t=x[t])ee[t]=0,te[t]=0;for(let e=r;e<i;e++){let n=g[e];for(let r=b[n];r>=0;r=x[r])te[r]===0&&(ne[r]=e),ee[r]+=t[n],te[r]++}let a=e=>e>=n?ee[e-n]/te[e-n]:t[e],o=e=>e>=n?ne[e-n]:r+_[e],s=Array.from(g.subarray(r,i)).sort((e,t)=>{let r=e,i=t,s=b[e],c=b[t],l=s<0?0:R[s],u=c<0?0:R[c];for(;l>u;l--)r=n+s,s=x[s];for(;u>l;u--)i=n+c,c=x[c];for(;s!==c;)r=n+s,s=x[s],i=n+c,c=x[c];return a(r)-a(i)||o(r)-o(i)});g.set(s,r);for(let e=r;e<i;e++)_[g[e]]=e-r};if(b){let e=new Float64Array(n);for(let t=0;t<=i;t++){for(let n=h[t];n<h[t+1];n++)e[g[n]]=n-h[t];re(t,e)}}let z=b?M():N;if(z===0)return[0,N];let ie=g.slice(),ae=Math.min(z,N),oe=(e,n)=>{let a=e?p:d,x=e?m:f,S=e?s:c,C=e?l:u;for(let s=1;s<=i;s++){let c=e?s:i-s;if(y[c])continue;let l=h[c],u=h[c+1],d=0;for(let n=l;n<u;n++){let i=g[n],s=i<r?t[i].pin:0;if(s!==0){P[i]=s*1e9,F[d++]=i;continue}let f=a[i],p=a[i+1];if(f===p){if(b){let t=e?h[c]-h[c-1]:h[c+2]-h[c+1];P[i]=(n-l)*t/(u-l);continue}P[i]=-1;continue}let m=0;for(let e=f;e<p;e++){let t=S[x[e]];m+=_[t],v&&o[t]>0&&(m+=C[x[e]]/o[t])}P[i]=m/(p-f),F[d++]=i}if(b){re(c,P);continue}if(d<2)continue;A(F,d,P,_,n,I);let f=0;for(let e=l;e<u;e++)P[g[e]]!==-1&&(g[e]=F[f++]);for(let e=l;e<u;e++)_[g[e]]=e-l}},B=()=>{let e=0;for(let t=0;t<=i;t++)for(let n=h[t];n<h[t+1];n++)if(!(g[n]>=r))for(let r=n+1;r<h[t+1];r++)g[r]<g[n]&&e++;return e},se=()=>{for(let e=0;e<=i;e++)for(let t=h[e];t<h[e+1];t++)_[g[t]]=t-h[e]},ce=e=>e<r?t[e].pin:0,V=(e,t)=>{let n=t?s[e]:c[e];return v&&o[n]>0?_[n]+(t?l[e]:u[e])/o[n]:_[n]},H=(e,t)=>{let n=0;for(let r=p[e];r<p[e+1];r++){let e=V(m[r],!0);for(let r=p[t];r<p[t+1];r++)e>V(m[r],!0)&&n++}for(let r=d[e];r<d[e+1];r++){let e=V(f[r],!1);for(let r=d[t];r<d[t+1];r++)e>V(f[r],!1)&&n++}return n},le=()=>{for(let e=0;e<8;e++){let e=!1;for(let t=0;t<=i;t++){if(y[t])continue;let n=h[t];for(let r=n;r+1<h[t+1];r++){let t=g[r],i=g[r+1];ce(t)!==ce(i)||b&&b[t]!==b[i]||H(i,t)>=H(t,i)||(g[r]=i,g[r+1]=t,_[i]=r-n,_[t]=r+1-n,e=!0)}}if(!e)break}},U=g.slice(),W=n<=600,ue=ie,de=1/0;for(let e=0;e<(W?2:1);e++){e>0&&(g.set(U),se());let t=ae,n=U.slice();for(let r=0,i=0;i<4&&r<a;r++,i++){oe((r+e)%2==0,r%4>=2);let a=M();if(a<t&&(t=a,n.set(g),i=0,a===0))break}if(g.set(n),W&&t>0){se(),le();let e=M();e<t&&(t=e,n.set(g))}let r=W?B():0;(e===0||t<z||t===z&&r<de)&&(z=t,ue=n,de=r)}if(g.set(ue),se(),ie.set(ue),b&&(z=M()),!W)return[z,N];for(let e=0;e<r;e++)if(t[e].pin!==0)return[z,N];if(de===0||y[0]||y[i])return[z,N];for(let e=0;e<=i;e++)g.subarray(h[e],h[e+1]).reverse();return se(),(M()>z||B()>=de)&&g.set(ie),[z,N]}function B(e,t,n){return e.W[n]/2+(e.KIND[n]===0?t.nodeSep:t.edgeSep)/2}function se(e,t){let{n,maxRank:r,W:i,KIND:a,EF:o,ET:s,EFD:c,ETD:l,succStart:u,succE:d,predStart:f,predE:p,layerStart:m,order:h,pos:g}=e,_=o.length,v=new Float64Array(n);for(let r=0;r<n;r++)v[r]=B(e,t,r);let y=new Int32Array(_);for(let e=0;e<_;e++)y[e]=g[s[e]];for(let e=0;e<n;e++)u[e+1]-u[e]>1&&k(d,u[e],u[e+1],y);for(let e=0;e<_;e++)y[e]=g[o[e]];for(let e=0;e<n;e++)f[e+1]-f[e]>1&&k(p,f[e],f[e+1],y);let b=new Uint8Array(_);for(let e=1;e<=r;e++){let t=m[e]-m[e-1],n=m[e],r=m[e+1],i=0,s=n;for(let e=n;e<r;e++){let n=h[e],c=-1;if(O(a[n])){let e=o[p[f[n]]];O(a[e])&&(c=e)}let l=c>=0?g[c]:t;if(c>=0||e===r-1){for(let t=s;t<=e;t++){let e=h[t],n=O(a[e]);for(let t=f[e];t<f[e+1];t++){let e=p[t],r=g[o[e]];(r<i||l<r)&&!(n&&O(a[o[e]]))&&(b[e]=1)}}s=e+1,i=l}}}let x=[],S=new Int32Array(n),C=new Int32Array(n),w=new Float64Array(n),T=new Int32Array(n),E=new Int32Array(n),D=new Float64Array(n),A=new Int32Array(n),j=new Int32Array(n+1),M=new Int32Array(n),N=new Int32Array(n),P=new Int32Array(n),F=new Float64Array(n);for(let e=0;e<4;e++){let t=e<2,i=(e&1)==1,a=t?f:u,_=t?p:d,y=t?o:s,O=t?l:c,k=t?c:l;for(let e=0;e<n;e++)S[e]=e,C[e]=e,w[e]=0,A[e]=0,j[e+1]=0,F[e]=0;for(let e=0;e<=r;e++){let n=t?e:r-e,o=m[n],s=m[n+1],c=t?n-1:n+1,l=c>=0&&c<=r?m[c+1]-m[c]-1:0,u=-1;for(let e=i?s-1:o;i?e>=o:e<s;i?e--:e++){let t=h[e],n=a[t],r=a[t+1]-n;if(r===0)continue;let o=n+(r-1>>1),s=n+(r>>1);for(let e=0;e<2&&(e!==1||o!==s);e++){let n=_[e===0===i?s:o],r=y[n],a=i?l-g[r]:g[r];C[t]===t&&u<a&&b[n]===0&&(C[r]=t,C[t]=S[t]=S[r],w[t]=w[r]+k[n]-O[n],u=a)}}}let I=0;for(let e=0;e<=r;e++){let t=m[e],n=m[e+1];for(let e=t+1;e<n;e++){let t=i?h[e]:h[e-1],n=i?h[e-1]:h[e],r=v[t]+v[n];T[I]=S[t],E[I]=S[n],D[I]=i?r-w[t]+w[n]:r+w[t]-w[n],A[S[n]]++,j[S[t]+1]++,I++}}for(let e=0;e<n;e++)j[e+1]+=j[e];for(let e=0;e<n;e++)N[e]=j[e];for(let e=0;e<I;e++)M[N[T[e]]++]=e;let L=0;for(let e=0;e<n;e++)S[e]===e&&A[e]===0&&(P[L++]=e);for(let e=0;e<L;e++){let t=P[e];for(let e=j[t];e<j[t+1];e++){let n=M[e],r=E[n];F[t]+D[n]>F[r]&&(F[r]=F[t]+D[n]),--A[r]===0&&(P[L++]=r)}}for(let e=L-1;e>=0;e--){let t=P[e],n=1/0;for(let e=j[t];e<j[t+1];e++){let t=M[e],r=F[E[t]]-D[t];r<n&&(n=r)}n!==1/0&&n>F[t]&&(F[t]=n)}let R=new Float64Array(n);for(let e=0;e<n;e++)R[e]=(i?-F[S[e]]:F[S[e]])+w[e];x.push(R)}let I=0,L=1/0,R=[],ee=[];for(let e=0;e<4;e++){let t=1/0,r=-1/0,a=x[e];for(let e=0;e<n;e++){let n=i[e]/2;a[e]-n<t&&(t=a[e]-n),a[e]+n>r&&(r=a[e]+n)}R.push(t),ee.push(r),r-t<L&&(L=r-t,I=e)}for(let e=0;e<4;e++){let t=e&1?ee[I]-ee[e]:R[I]-R[e];if(t!==0){let r=x[e];for(let e=0;e<n;e++)r[e]+=t}}let te=new Float64Array(n);for(let e=0;e<n;e++){let t=x[0][e],n=x[1][e],r=x[2][e],i=x[3][e],a;t>n&&(a=t,t=n,n=a),r>i&&(a=r,r=i,i=a),t>r&&(a=t,t=r,r=a),n>i&&(a=n,n=i,i=a),n>r&&(a=n,n=r,r=a),te[e]=(n+r)/2}return te}var ce=12,V=.62,H=6;function le(){let e=new Map;return{add(t,n,r){let i=W(r);n>=0&&i>0&&i+H>(e.get(t*4+n)??0)&&e.set(t*4+n,i+H)},of:(t,n)=>n>=0?e.get(t*4+n)??0:0}}function U(e,t,r,i,a=r>0?r+H:0,o=i>0?i+H:0){let s=t===`linear`,c=t===`step`||t===`stepBefore`||t===`stepAfter`,l=[],u=[],d=[],f=(e,t,n,r)=>Math.abs(e-n)<.01&&Math.abs(t-r)<.01;for(let n=0;n<e.length;n+=3){let r=e[n],i=e[n+1],a=e[n+2],o=l.length-1;if(c&&o>=0&&Math.abs(r-l[o])>=.01&&Math.abs(i-u[o])>=.01){let e=l[o],n=u[o],s=t===`stepBefore`?n:t===`stepAfter`?i:(n+i)/2,c=t===`stepBefore`?e:t===`stepAfter`?r:(e+r)/2,p=a===0?[e,s,r,s]:[c,n,c,i];for(let t=0;t<4;t+=2)f(p[t],p[t+1],e,n)||f(p[t],p[t+1],r,i)||(l.push(p[t]),u.push(p[t+1]),d.push(a))}l.push(r),u.push(i),d.push(a)}let p=l.length-1,m=e=>Math.abs(l[e]-l[e-1])<.01||Math.abs(u[e]-u[e-1])<.01,h=e=>s||m(e),g=(e,t,n)=>{if(!h(Math.max(e,t)))return n===0?[0,Math.sign(u[t]-u[e])||1]:[Math.sign(l[t]-l[e])||1,0];let r=l[t]-l[e],i=u[t]-u[e],a=Math.hypot(r,i)||1;return[r/a,i/a]},[_,v]=g(0,1,d[1]),[y,b]=g(p-1,p,d[p]),x=l[0],S=u[0],C=l[p],w=u[p];l[0]+=_*r,u[0]+=v*r,l[p]-=y*i,u[p]-=b*i;let T=e=>Math.abs(l[e]-l[e-1])+Math.abs(u[e]-u[e-1]),E=e=>!s&&e>0&&e<p&&m(e)&&m(e+1)&&T(e)>=.01&&T(e+1)>=.01&&Math.abs(l[e]-l[e-1])<.01!=Math.abs(l[e+1]-l[e])<.01,D=(e,t,n)=>Math.abs(l[e]-l[e-1])*Math.abs(t)+Math.abs(u[e]-u[e-1])*Math.abs(n),O=(e,t,n)=>{let r=Math.min(Math.max(0,e-H-t),n/4);return r+Math.min(e-t-r,(n-r)/4)},k=o>i&&(!h(p)||E(p-1))?O(o,i,D(p,y,b)):0,A=a>r&&(!h(1)||E(1))?O(a,r,D(1,_,v)):0;k>=1&&(l.splice(p,0,l[p]-y*k),u.splice(p,0,u[p]-b*k),d.splice(p,0,d[p]),p++),A>=1&&(l.splice(1,0,l[0]+_*A),u.splice(1,0,u[0]+v*A),d.splice(1,0,d[1]),p++);let j=`M${n(l[0])},${n(u[0])}`,M=l[0],N=u[0],P=(e,t)=>{f(e,t,M,N)||(j+=`L${n(e)},${n(t)}`,M=e,N=t)};for(let e=1;e<=p;e++){let t=l[e],r=u[e];if(!h(e)){let i=d[e]===0,a=i?r-N:t-M,o=Math.abs(a)*R(i?t-M:r-N,a),s=i?0:Math.sign(a)*o,c=i?Math.sign(a)*o:0;j+=`C${n(M+s)},${n(N+c)} ${n(t-s)},${n(r-c)} ${n(t)},${n(r)}`,M=t,N=r;continue}if(!E(e)){if(e<p&&m(e)&&m(e+1)&&(t-l[e-1])*(l[e+1]-t)+(r-u[e-1])*(u[e+1]-r)>0)continue;P(t,r);continue}let i=E(e-1)?T(e)/2:T(e),a=E(e+1)?T(e+1)/2:T(e+1);c&&(i=a=Math.min(ce,i,a));let[o,s]=g(e-1,e,d[e]),[f,_]=g(e,e+1,d[e+1]);P(t-o*i,r-s*i),M=t+f*a,N=r+_*a,j+=c?`Q${n(t)},${n(r)} ${n(M)},${n(N)}`:`C${n(t-o*i*(1-V))},${n(r-s*i*(1-V))} ${n(t+f*a*(1-V))},${n(r+_*a*(1-V))} ${n(M)},${n(N)}`}return{d:j,sx:x,sy:S,sdx:-_,sdy:-v,ex:C,ey:w,edx:y,edy:b}}function W(e){return e===`arrow_point`?7:e===`arrow_circle`?8:e===`arrow_cross`?4:0}function ue(e,t,r,i,a,o){let s=-a,c=i;if(e===`arrow_point`){let e=t-i*8,l=r-a*8,u=3.36;return`<path class="pele-marker" d="M${n(t)},${n(r)}L${n(e+s*u)},${n(l+c*u)}L${n(e-s*u)},${n(l-c*u)}Z" fill="${o}" stroke="none"/>`}if(e===`arrow_circle`)return`<circle class="pele-marker" cx="${n(t-i*4)}" cy="${n(r-a*4)}" r="3.5" fill="${o}" stroke="none"/>`;if(e===`arrow_cross`){let e=t-i*4,o=r-a*4,l=3.5,u=(i+s)*l,d=(a+c)*l,f=(i-s)*l,p=(a-c)*l;return`<path class="pele-marker" d="M${n(e-u)},${n(o-d)}L${n(e+u)},${n(o+d)}M${n(e-f)},${n(o-p)}L${n(e+f)},${n(o+p)}"/>`}return``}function de(r,i,a,o,s,c){let l=i.width+8,u=i.height;return`<g class="pele-edge-label" data-id="${e(r)}"><rect x="${n(a-l/2)}" y="${n(o-u/2)}" width="${n(l)}" height="${n(u)}" rx="3" fill="var(--_bg)"/>`+t(i,a,o,s,c)+`</g>`}function G(e,t,r,i,a,o,s,c){let l=(a?t:r)/2,u=Math.min(l-4,8+i*6),d=o+i*8,f=Math.hypot(d,u)||1,p=(i,o)=>a?`${n(e.x+o)},${n(e.y+r/2+i)}`:`${n(e.x+t/2+i)},${n(e.y+o)}`,m=d/f*s,h=u/f*s;return a?(c.labelX=e.x,c.labelY=e.y+r/2+d+4+c.labelH/2):(c.labelX=e.x+t/2+d+4+c.labelW/2,c.labelY=e.y),{d:`M${p(0,-u)}C${p(d,-u*2)} ${p(d,u*2)} ${p(m,u+h)}`,sx:a?e.x-u:e.x+t/2,sy:a?e.y+r/2:e.y-u,sdx:a?0:-1,sdy:a?-1:0,ex:a?e.x+u:e.x+t/2,ey:a?e.y+r/2:e.y+u,edx:a?-u/f:-d/f,edy:a?-d/f:-u/f}}export{W as a,j as c,le as d,M as f,de as i,U as l,N as n,r as o,R as r,ue as s,i as t,G as u};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{_ as e,b as t,f as n,i as r,o as i,r as a,s as o,u as s,x as c}from"./
|
|
1
|
+
import{_ as e,b as t,f as n,i as r,o as i,r as a,s as o,u as s,x as c}from"./DfCZPwp1.js";import{i as l}from"./DciMwFJ1.js";import{t as u}from"./CgA1WoRv.js";import{PeleError as d,_ as f,b as p,g as m,h,s as g,u as _,y as v}from"./-2Meesge.js";var y=/^\d+$/,b=/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/,x=/^\d+px$/;function S(e,t,n){return new d(`value for ${e} ${t} is invalid, please use a valid ${n}`,`semantic`,{type:`quadrantChart`})}function C(e){let t=e.trim(),n=t.indexOf(`:`);if(n===-1)return[t,`undefined`];let r=t.slice(n+1).trimStart(),i=r.indexOf(`:`);return[t.slice(0,n).trimEnd(),i===-1?r:r.slice(0,i).trimEnd()]}function w(e){let t={};for(let n of e){let[e,r]=C(n);if(e===`radius`){if(!y.test(r))throw S(e,r,`number`);t.radius=parseInt(r)}else if(e===`color`){if(!b.test(r))throw S(e,r,`hex code`);t.color=r}else if(e===`stroke-color`){if(!b.test(r))throw S(e,r,`hex code`);t.strokeColor=r}else if(e===`stroke-width`){if(!x.test(r))throw S(e,r,`number of pixels (eg. 10px)`);t.strokeWidth=r}else throw new d(`style named ${e} is not supported.`,`semantic`,{type:`quadrantChart`})}return t}function T(e){return{text:e.text.trim(),type:e.type}}var E=class{type=`quadrantChart`;title;accTitle;accDescr;quadrants=[void 0,void 0,void 0,void 0];xAxisLeft;xAxisRight;yAxisBottom;yAxisTop;points=[];classes=new Map;setQuadrant1Text(e){this.quadrants[0]=T(e)}setQuadrant2Text(e){this.quadrants[1]=T(e)}setQuadrant3Text(e){this.quadrants[2]=T(e)}setQuadrant4Text(e){this.quadrants[3]=T(e)}setXAxisLeftText(e){this.xAxisLeft=T(e)}setXAxisRightText(e){this.xAxisRight=T(e)}setYAxisBottomText(e){this.yAxisBottom=T(e)}setYAxisTopText(e){this.yAxisTop=T(e)}addPoint(e,t,n,r,i){this.points.push({x:Number(n),y:Number(r),text:T(e),className:t,...w(i)})}addClass(e,t){this.classes.set(e,w(t))}setDiagramTitle(e){this.title=e}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
2
2
|
`)}},D=`$end.INVALID.NEWLINE.title.title_value.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.X-AXIS.Y-AXIS.AXIS-TEXT-DELIMITER.QUADRANT_1.QUADRANT_2.QUADRANT_3.QUADRANT_4.CLASSDEF.MD_STR.STR.class_name.point_start.point_x.point_y.QUADRANT.ALPHA.UNICODE_TEXT.COLON.PLUS.COMMA.EQUALS.MULT.BRKT.UNDERSCORE.DOT.AMP.MINUS.NUM.SPACE.SEMI.PUNCTUATION.EOF`.split(`.`),O=[41,4,6,8,9,19],k=new Uint8Array(128);for(let[e,t]of[[`:`,27],[`+`,28],[`,`,29],[`=`,30],[`*`,31],[`#`,32],[`_`,33],[`.`,34],[`&`,35],[`-`,36],[` \v\f`,38],[`;`,39],["!$%'`?\\/",40]])for(let n=0;n<e.length;n++)k[e.charCodeAt(n)]=t;function A(e){let t=e.length,n=[],r=[],i=[],a=[],o=0,s=0,c=0,l=0,d=0,g=0,_=0,y=0,b=0,x=0,S=(t,a,o)=>{n.push(t),r.push(e.slice(a,o)),i.push(a),s=o},C=e=>{a.push(o),o=e},w=()=>{a.length>0&&(o=a.pop())},T=n=>{let r=e.indexOf(`
|
|
3
3
|
`,n);return r===-1?t:r},E=t=>{for(;e.charCodeAt(t)===32;)t++;return t},D=n=>{for(;n<t&&h(e.charCodeAt(n));)n++;return n},A=n=>{let r=e.charCodeAt(n);if(r===49)return n+1;if(r!==48)return-1;let i=n+1;if(i<t&&!f(e.charCodeAt(i))&&v(e.charCodeAt(i+1)))for(i+=2;v(e.charCodeAt(i));)i++;return i};t:for(;s<t;){let n=e.charCodeAt(s),r=e.charCodeAt(s+1);switch(o){case 0:break;case 1:case 2:case 3:S(O[o],s,T(s)),w();continue;case 4:if(n===125)s++,w();else{let n=e.indexOf(`}`,s);S(9,s,n===-1?t:n)}continue;case 5:if(n===34)s++,w();else{let n=e.indexOf(`"`,s);S(19,s,n===-1?t:n)}continue;case 6:if(n===96&&r===34){s+=2,w();continue}if(n!==96&&n!==34){let n=s+1;for(let r=e.charCodeAt(n);n<t&&r!==96&&r!==34;r=e.charCodeAt(++n));S(18,s,n);continue}break t;case 7:if(m(n)){let t=s+1;for(;m(e.charCodeAt(t));)t++;S(20,s,t),w();continue}break t;case 8:{let t=A(s);if(t!==-1){S(22,s,t),C(9);continue}let n=D(s);if(e.charCodeAt(n)===93){s=E(n+1),w();continue}break t}case 9:{let t=D(s);if(e.charCodeAt(t)===44){s=D(t+1),o=10;continue}break t}case 10:{let e=A(s);if(e!==-1){S(23,s,e),w();continue}break t}}if(n===37&&r===37){s=T(s+2);continue}if(n===10||n===13){let t=s+1;for(let n=e.charCodeAt(t);n===10||n===13;n=e.charCodeAt(++t));S(2,s,t);continue}let i=n|32;if(i===116&&u(e,s,`title`)&&!m(e.charCodeAt(s+5))){S(3,s,s+5),C(1);continue}if(i===97&&u(e,s,`acc`)){let t=u(e,s+3,`descr`);if(t||u(e,s+3,`title`)){let n=D(s+8),r=e.charCodeAt(n);if(r===58){S(t?7:5,s,D(n+1)),C(t?3:2);continue}if(r===123&&t){s=D(n+1),C(4);continue}}}let a=s;n===32&&((s<c||s>=l)&&(c=s,l=E(s)),a=l);let f=e.charCodeAt(a),j=f|32,M=0,N=0;if(j===120&&u(e,a,`x-axis`))M=10,N=a+6;else if(j===121&&u(e,a,`y-axis`))M=11,N=a+6;else if(f===45){if(a<d||a>=g)for(d=a,g=a;e.charCodeAt(g)===45;)g++;g-a>=2&&e.charCodeAt(g)===62&&(M=12,N=g+1)}else if(j===113&&u(e,a,`quadrant`)){let t=e.charCodeAt(a+9);e.charCodeAt(a+8)===45&&t>=49&&t<=52?(M=13+t-49,N=a+10):u(e,a+8,`chart`)&&(M=24,N=a+13)}if(M!==0)S(M,s,E(N));else if(i===99&&u(e,s,`classdef`)&&!m(e.charCodeAt(s+8)))S(17,s,s+8);else if(n===34)r===96?(s+=2,C(6)):(s++,C(5));else if(n===58&&r===58&&e.charCodeAt(s+2)===58)s+=3,C(7);else{if(n===58||h(n)){let t=s;if(n!==58&&((s<_||s>=y)&&(_=s,y=D(s)),t=y),e.charCodeAt(t)===58&&((t+1<b||t+1>=x)&&(b=t+1,x=D(t+1)),e.charCodeAt(x)===91)){S(21,s,D(x+1)),C(8);continue}}if(p(n)){let t=s+1;for(;p(e.charCodeAt(t));)t++;S(25,s,t)}else if(n>=128){let t=s+1;for(;e.charCodeAt(t)>=128;)t++;S(26,s,t)}else if(v(n)){let t=s+1;for(;v(e.charCodeAt(t));)t++;S(37,s,t)}else if(k[n]!==0)S(k[n],s,s+1);else break}}return s<t?(n.push(1),r.push(``),i.push(s),{types:n,texts:r,starts:i}):(o<O.length&&(n.push(O[o]),r.push(``),i.push(t)),n.push(0),r.push(``),i.push(t),{types:n,texts:r,starts:i})}function j(...e){let t=new Uint8Array(42);for(let n of e)t[n]=1;return t}var M=j(40,35,37,25,29,28,30,31,34,32,33,26),N=j(25,37,36,29,27,35,32,31,26),P=j(25,37,27,38,32,36),F=j(2,39,41),I=[`setQuadrant1Text`,`setQuadrant2Text`,`setQuadrant3Text`,`setQuadrant4Text`],L=`'STR', 'MD_STR', 'ALPHA', 'NUM', 'UNICODE_TEXT', 'PUNCTUATION'`;function R(e,t){let{types:n,texts:r,starts:i}=A(e),a=0,o=t=>{let r=n[a];throw r===1?g(`quadrantChart`,e,i[a],``,!0):g(`quadrantChart`,e,i[a],`Expecting ${t}, got '${D[r]}'`)},s=e=>(n[a]!==e&&o(`'${D[e]}'`),r[a++]),c=e=>e===19||e===18||M[e]===1,l=()=>{let e=n[a];c(e)||o(L);let t=r[a++];for(;M[n[a]]===1||n[a]===38||n[a]===36;)t+=r[a++];return{text:t,type:e===18?`markdown`:`text`}},u=()=>{let e=[];for(;;){P[n[a]]===0&&o(`'ALPHA', 'NUM', 'COLON', 'SPACE', 'BRKT', 'MINUS'`);let t=r[a++];for(;P[n[a]]===1;)t+=r[a++];if(e.push(t.trim()),n[a]!==29)return e;a++}};for(;F[n[a]]===1||n[a]===38;)a++;for(s(24);n[a]!==0;){for(;n[a]===38;)a++;let e=n[a];switch(e){case 17:{a++,s(38),N[n[a]]===0&&o(`'ALPHA', 'NUM', 'UNICODE_TEXT'`);let e=r[a++];for(;N[n[a]]===1;)e+=r[a++];s(38),t.addClass(e,u());break}case 10:case 11:{a++;let r=l(),i;n[a]===12&&(a++,c(n[a])?i=l():r.text+=` ⟶ `),e===10?(t.setXAxisLeftText(r),i&&t.setXAxisRightText(i)):(t.setYAxisBottomText(r),i&&t.setYAxisTopText(i));break}case 13:case 14:case 15:case 16:a++,t[I[e-13]](l());break;case 3:a++,t.setDiagramTitle(s(4).trim());break;case 5:a++,t.setAccTitle(s(6).trim());break;case 7:a++,t.setAccDescription(s(8).trim());break;case 9:t.setAccDescription(r[a++].trim());break;default:if(c(e)){let e=l(),i=n[a]===20?r[a++]:``;s(21);let o=s(22),c=s(23);t.addPoint(e,i,o,c,P[n[a]]===1?u():[])}}F[n[a]]===0&&o(`'NEWLINE', 'SEMI', 'EOF'`),a++}}var ee=4,te=300;function z(e,t){return e.quadrantChart?.[t]}function B(e,t,n,r){let i=z(e,t);return typeof i==`number`&&i>=0?Math.min(i,r):n}function ne(e){return e.startsWith(`#`)?e:`#`+e}function V(u,d,f){let p=f.fontSize??16,m=Math.round(p*.875),h=Math.round(p*.75),g=f.measurer??_(f.fontFamily,f.fontFamilyMono),v=Math.round(Math.max(100,B(d,`chartWidth`,500,4e3))),y=Math.round(l(f,v,280)),b=Math.round(Math.max(100,B(d,`chartHeight`,500,4e3))*y/v),x=B(d,`quadrantPadding`,f.padding??8,200),S=B(d,`xAxisLabelPadding`,5,200),C=B(d,`yAxisLabelPadding`,5,200),w=u.points.length>0,T=(e,t,n)=>s(e?.text,e?.type===`markdown`,g,t,Math.max(n,40)),E=s(u.title,!1,g,p,Math.max(y-2*x,40),1),D=B(d,`titlePadding`,10,200),O=E.height>0?E.height+D:0,k=!!(u.xAxisLeft?.text||u.xAxisRight?.text),A=!!(u.yAxisBottom?.text||u.yAxisTop?.text),j=w||z(d,`xAxisPosition`)===`bottom`,M=z(d,`yAxisPosition`)===`right`,N=y-2*x,P=T(u.xAxisLeft,m,u.xAxisRight?N/2-16:N),F=T(u.xAxisRight,m,N/2-16),I=Math.max(P.height,F.height),L=k?I+S:0,R=b-2*x-O-L,V=T(u.yAxisBottom,m,u.yAxisTop?R/2-16:R),H=T(u.yAxisTop,m,R/2-16),U=Math.max(V.height,H.height),re=A?U+C:0,W=x+(M?0:re),G=x+O+(j?0:L),K=Math.max(0,N-re),q=Math.max(0,R),J=Math.max(0,(K-ee)/2),Y=Math.max(0,(q-ee)/2),X=[W+J,G,W+K-J,G+q,W,G+Y,W+K,G+q-Y],ie=(e,t,n,r,i)=>{for(let a=e;a<X.length;a+=4)if(t<X[a+2]&&r>X[a]&&n<X[a+3]&&i>X[a+1])return!1;return!0},ae=B(d,`quadrantTextTopPadding`,5,200),oe=``;for(let e=0;e<4;e++){let t=e===0||e===3?W+K-J:W,n=e<2?G:G+q-Y,r=T(u.quadrants[e],p,J-16),o=t+J/2,s=w?n+ae+r.height/2:n+Y/2;X.push(o-r.width/2,s-r.height/2,o+r.width/2,s+r.height/2),oe+=`<g class="pele-quadrant" data-id="${e+1}"><rect x="${c(t)}" y="${c(n)}" width="${c(J)}" height="${c(Y)}"${a}/>`+i(r,o,s,` class="pele-label" fill="var(--_fg)" stroke="none"`)+`</g>`}let Z=``;if(k){let e=j?G+q+S+I/2:G-S-I/2;Z+=i(P,F.height>0?W+K/4:W+P.width/2,e,``)+i(F,W+K*3/4,e,``)}if(A){let e=M?W+K+C+U/2:W-C-U/2,t=(t,n)=>t.height>0?`<g transform="translate(${c(e)},${c(n)}) rotate(-90)">${i(t,0,0,``)}</g>`:``;Z+=t(V,H.height>0?G+q*3/4:G+q-V.width/2)+t(H,G+q/4)}let se=B(d,`pointRadius`,5,200),ce=B(d,`pointTextPadding`,5,200),le=n(0),Q=[],ue=[];for(let e of u.points){if(!(e.x>=0&&e.x<=1&&e.y>=0&&e.y<=1))continue;let n=u.classes.get(e.className),i=Math.min(e.radius??n?.radius??se,2e3),a=e.color??n?.color,s=e.strokeColor??n?.strokeColor,l=e.strokeWidth??n?.strokeWidth,d=[];a&&d.push(`fill:`+ne(a)),l&&(s&&d.push(`stroke:`+ne(s)),d.push(`stroke-width:`+l));let f=W+e.x*K,p=G+(1-e.y)*q;Q.push({cx:f,cy:p,reach:i+(l?Math.min(parseInt(l),400)/2:0),text:T(e.text,h,200)}),ue.push(`<circle class="pele-point${t(e.className)}" data-id="${r(e.text.text)}" cx="${c(f)}" cy="${c(p)}" r="${c(i)}"${l&&!s?` stroke="${le}"`:``}${o(d).shape}/>`)}let $=Q.length<=te;if($)for(let{cx:e,cy:t,reach:n}of Q)X.push(e-n,t-n,e+n,t+n);let de=``;for(let{cx:e,cy:t,reach:n,text:r}of Q){let a=r.width/2,o=r.size*.6+(r.height-r.lineHeight)/2,s=n+ce,c=Math.min(s,Math.max(0,(J-r.width)/2)),l=8+4*(e<W+K/2?t<G+q/2?1:2:t<G+q/2?0:3),u=Math.max(t+s,X[l+3]+ce)+o,d=[e,t+s+o,e,t-s-o,e+s+a,t,e-s-a,t,e,u],f=e,p=d[1],m=!1;for(let e=0;e<20;e+=2){let t=e%10,n=t===8?c:0,i=(t<4||t===8)&&r.width<K?Math.min(Math.max(d[t],W+a+n),W+K-a-n):d[t],s=d[t+1];if(i-a<W||i+a>W+K||s-o<G||s+o>G+q)continue;let l=!$||ie(e<10?0:8,i-a,s-o,i+a,s+o);if((!m||l)&&(f=i,p=s,m=!0),l)break}$&&X.push(f-a,p-o,f+a,p+o),de+=i(r,f,p,` class="pele-label"`)}let fe=i(E,y/2,D/2+E.height/2,` class="pele-title" font-weight="var(--_tw)"`)+`<g class="pele-quadrants" fill="var(--_s)" stroke="var(--_b)">${oe}</g>`+(Z?`<g class="pele-axis-labels" font-size="${m}" fill="var(--_m)">${Z}</g>`:``)+(Q.length>0?`<g class="pele-points" fill="${le}">${ue.reverse().join(``)}</g><g class="pele-point-labels" font-size="${h}">${de}</g>`:``);return{svg:e(`quadrantChart`,y,b,p,f,u,fe),width:y,height:b,links:[]}}var H={type:`quadrantChart`,parse(e,t,n){let r=new E;return r.title=n,R(e,r),r},render:V};export{H as quadrantChart};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as e,a as t,o as n,u as r,x as i}from"./
|
|
1
|
+
import{_ as e,a as t,o as n,u as r,x as i}from"./DfCZPwp1.js";import{r as a,t as o}from"./DciMwFJ1.js";import{a as s,c,d as l,f as u,g as d,h as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S}from"./DX4bJJO0.js";import{t as C}from"./Ce_hS451.js";import{t as w}from"./CD6xPodA.js";import{PeleError as T,d as E,u as D}from"./-2Meesge.js";var O=1e4;function k(e,t,n,r,i){let a=e.packet?.[t];return typeof a==`number`&&a>=r?Math.min(a,i):n}function A(e){return new T(e,`semantic`,{type:`packet`})}function j(e,t,n){let r=Math.floor(k(t,`bitsPerRow`,32,1,4096)),i=[],a=-1,o=[],s=1;for(let t of e.blocks){let{start:e,end:n,bits:c}=t;if(e!==void 0&&n!==void 0&&n<e)throw A(`Packet block ${e} - ${n} is invalid. End must be greater than start.`);if(e??=a+1,e!==a+1)throw A(`Packet block ${e} - ${n??e} is not contiguous. It should start from ${a+1}.`);if(c===0)throw A(`Packet block ${e} is invalid. Cannot have a zero bit field.`);for(n??=e+(c??1)-1,c??=n-e+1,a=n;o.length<=r+1&&i.length<O;){let a=s*r-1;if(n<=a){o.push({start:e,end:n,bits:c,label:t.label}),n===a&&(i.push(o),o=[],s++);break}o.push({start:e,end:a,bits:a-e,label:t.label}),i.push(o),o=[],s++,e=a+1,c=n-e}}return o.length>0&&i.push(o),{type:`packet`,title:e.title||n,accTitle:e.accTitle?e.accTitle.replace(/^\s+/g,``):void 0,accDescr:e.accDescr?e.accDescr.replace(/\n\s+/g,`
|
|
2
2
|
`):void 0,bitsPerRow:r,rows:i}}var M=[{name:`packet-beta`,pattern:`packet-beta`},p(`packet`),{name:`-`,pattern:`-`,longer:[y]},{name:`+`,pattern:`+`},{name:`:`,pattern:`:`},s,x,v,{name:`INT`,pattern:/0|[1-9][0-9]*(?!\.)/y},h,m,S,y,_,b];function N(e){let t=new f(g(e,M,`packet`),M,`packet`),n={$type:`Packet`,blocks:[]},r=()=>{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:n.accDescr=c(t.take()),r();break;case 6:n.accTitle=d(t.take()),r();break;case 7:n.title=l(t.take()),r();break;case 8:case 3:{let e={$type:`PacketBlock`,label:``};t.accept(3)?e.bits=Number(t.expect(8)):(e.start=Number(t.take()),t.accept(2)&&(e.end=Number(t.expect(8)))),t.expect(4),e.label=u(t.expect(9)),n.blocks.push(e),r();break}default:t.fail(`a field, a title, or a line break`)}return n}function P(e,t,n){return o(n,r=>F(e,t,n,r))}function F(o,s,c,l){let u=c.fontSize??16,d=Math.round(u*.875),f=Math.round(u*.625),p=c.measurer??D(c.fontFamily,c.fontFamilyMono),m=c.padding??8,h=s.packet??{},g=k(s,`rowHeight`,32,1,400),_=k(s,`bitWidth`,32,1,400),v=k(s,`paddingX`,5,0,400),y=k(s,`paddingY`,5,0,400),b=h.showBits!==!1,x=h.bitOrder===`descending`,S=o.bitsPerRow,T=o.rows;if(l){let e=Math.max(1,Math.floor(((c.maxWidth??320)-2*m)/Math.min(_,18)));S=Math.min(S,Math.max(8,2**Math.floor(Math.log2(e))));let t=o.rows[o.rows.length-1],n=t?.[t.length-1]?.end??0;Math.ceil((n+1)/S)>1e4&&(S=o.bitsPerRow),_=Math.min(_,Math.max(18,((c.maxWidth??320)-2*m)/S));let r=e=>e.bits===e.end-e.start,i=[];for(let e of o.rows)for(let t of e){let e=i[i.length-1];e&&r(e)&&r(t)&&e.label===t.label&&t.start===e.end+1&&t.start%o.bitsPerRow===0?(e.end=t.end,e.bits=e.end-e.start):i.push({...t})}T=[];for(let e of i)for(let t=e.start;t<=e.end;){let n=Math.min(e.end,(Math.floor(t/S)+1)*S-1),r=Math.floor(t/S);(T[r]??(T[r]=[])).push({...e,start:t,end:n}),t=n+1}}let O=new Map;if(l)for(let e of T)for(let t of e){let e=Math.max(1,(t.end-t.start+1)*_-Math.min(v,_-1)-6),n=w(E(t.label).trim(),p,d,e);O.set(t,n)}let A=b?f+4:0,j=T.map(e=>{let t=g;if(l)for(let n of e)t=Math.max(t,O.get(n).height+10);return t}),M=[],N=0;for(let e of j)M.push(N),N+=A+e+y;T.length&&(N-=y);let P=Math.min(v,_-1),F=T.length>0?S*_-P:0,I=r(o.title,!1,p,u,l?a(c):4e3,1),L=I.height>0?I.height+(N>0?12:0):0,R=new Map,z=(e,t)=>{let n=R.get(e);return n||R.set(e,n=new Map),n.has(t)||n.set(t,C(E(e).trim(),t,d,Math.round(u*.5),p)),n.get(t)},B=m+Math.max(0,(I.width-F)/2),V=``,H=``;T.forEach((e,r)=>{let a=m+M[r]+A,o=j[r];for(let r of e){let e=r.end-r.start+1,s=r.start%S,c=B+(x?S-s-e:s)*_,u=e*_-P,f=l?void 0:z(r.label,u-6);if(V+=`<g class="pele-node" data-id="${r.start}-${r.end}"><rect x="${i(c)}" y="${i(a)}" width="${i(u)}" height="${i(o)}" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/>`+(l?n(O.get(r),c+u/2,a+o/2,``):f&&f.size<=o?`<text x="${i(c+u/2)}" y="${i(a+o/2+f.size*.35)}"${f.size===d?``:` font-size="${i(f.size)}"`}>${t(f.text)}</text>`:``)+`</g>`,!b)continue;let p=x?r.end:r.start,m=x?r.start:r.end;H+=e===1?`<text x="${i(c+u/2)}" y="${i(a-4)}" text-anchor="middle">${p}</text>`:`<text x="${i(c)}" y="${i(a-4)}">${p}</text><text x="${i(c+u)}" y="${i(a-4)}" text-anchor="end">${m}</text>`}});let U=Math.ceil(Math.max(F,I.width)+2*m),W=Math.ceil(N+L+2*m),G=(V?`<g class="pele-packet-fields" font-size="${d}" text-anchor="middle">${V}</g>`:``)+(H?`<g class="pele-packet-bits" font-size="${f}" fill="var(--_m)">${H}</g>`:``)+n(I,U/2,W-m-I.height/2,` class="pele-title" font-weight="var(--_tw)"`);return{svg:e(`packet`,U,W,u,c,o,G),width:U,height:W,links:[]}}var I={type:`packet`,parse:(e,t,n)=>j(N(e),t,n),render:P};export{I as packet};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,d as r,i,o as a,p as o,s,u as c,x as l,y as u}from"./CX-xckzu.js";import{a as d,t as f}from"./DciMwFJ1.js";import{a as p,i as m,l as h,s as g}from"./DECNRCf2.js";import{t as _}from"./CoyQYage.js";import{r as v}from"./B9YLdnR_.js";import{i as y,n as b,r as x,t as ee}from"./vk5Wkr31.js";import{PeleError as S,a as C,b as w,r as T,u as te,v as E,x as D,y as O}from"./8wVGBFSs.js";var k=`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(` `),A=1,j=2,M=new Uint8Array(128);for(let e=48;e<=57;e++)M[e]=A;for(let e=65;e<=90;e++)M[e]=M[e+32]=A;M[95]=A;for(let e of`!#$&*+/=?^|~`)M[e.charCodeAt(0)]=j;var ne=[0,12,5,14,3,9,2,2,2,2,2,4,3,4,8,5,5,7,6,4,5];function N(e){return e<128&&(M[e]&A)!==0}function P(e,t,n){for(let r=0;r<n.length;r++)if((e.charCodeAt(t+r)|32)!==n.charCodeAt(r))return!1;return!0}function re(e,t,n){switch(n){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:P(e,t,`extend`)?18:0;case 69:return P(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 P(e,t,`include`)?17:0;case 116:return e.startsWith(`true`,t)?19:0;case 117:return+!!e.startsWith(`usecase-beta`,t);default:return 0}}function F(e,t){[e,t]=C(e,t);let n=1,r=0;for(let i=0;i<t;i++){let a=e.charCodeAt(i);a!==10&&a!==13||(a===13&&i+1<t&&e.charCodeAt(i+1)===10&&i++,n++,r=i+1)}return[n,t-r+1]}function ie(e,t,n){let[r,i]=F(e,t);return`line ${r}, column ${i} [${C(e,t)[1]},${C(e,n)[1]})`}function ae(e,t,n){for(let r=t+1;r<e.length;r++){let t=e.charCodeAt(r);if(t===n)return r+1;if(t===10||t===13)return-1}return-1}function oe(e,t){let n=e.charCodeAt(t);return n!==34&&n!==39||n===34&&e.charCodeAt(t+1)===96||ae(e,t,n)!==-1}function se(e,t,n){let[r,i]=F(e,t),[a,o]=[C(e,t)[1],C(e,t+n)[1]];return new S(`Error lexing usecase diagram: unexpected character: ->${e.charAt(t)}<- at offset: ${a}, skipped ${o-a} characters. at line ${r}, column ${i} [${a},${o})`,`syntax`,{type:`usecase`,line:r,column:i})}function ce(e){let t=[],n=[],r=[],i=e.length,a=0,o=!0,s=!1;for(;a<i;){let c=e.charCodeAt(a);if(c===32||c===9){a++;continue}let l,u=a+1,d=!1;if(c<128&&(M[c]&A)!==0){if(l=0,c===97&&o&&e.startsWith(`acc`,a)){let t=e.startsWith(`Descr`,a+3);if(t||e.startsWith(`Title`,a+3)){let n=a+8;for(;E(e.charCodeAt(n));)n++;let r=e.charCodeAt(n);if(r===58)for(l=t?42:41,u=n+1;u<i&&e.charCodeAt(u)!==10&&e.charCodeAt(u)!==13;)u++;else if(r===123&&t&&!s){let t=e.indexOf(`}`,n+1);t===-1?s=!0:(l=40,u=t+1)}}}else if(c===106&&e.startsWith(`json`,a)&&E(e.charCodeAt(a+4))){let s=a+5;for(;E(e.charCodeAt(s));)s++;let c=s;for(;N(e.charCodeAt(s));)s++;if(s>c){for(;E(e.charCodeAt(s));)s++;if(e.charCodeAt(s)===64){for(s++;E(e.charCodeAt(s));)s++;if(e.charCodeAt(s)===123){t.push(43),n.push(a),r.push(s),a=s;let c=0,l=!1,u=!1,d=s;for(;d<i;d++){let t=e.charCodeAt(d);if(l)u?u=!1:t===92?u=!0:t===34&&(l=!1);else if(t===34)l=!0;else if(t===123)c++;else if(t===125&&--c===0)break}t.push(d<i?44:45),n.push(s),a=d<i?d+1:i,r.push(a),o=!1;continue}}}}if(l===0){for(;u<i&&N(e.charCodeAt(u));)u++;let t=re(e,a,c);if(t!==0)t===1||u-a===ne[t]?(l=t,u=a+ne[t]):l=21;else if((c===111||c===120)&&e.charCodeAt(a+1)===45&&e.charCodeAt(a+2)===45)l=c===111?56:58,u=a+3;else if(O(c)){let t=a+1;for(;O(e.charCodeAt(t));)t++;if(e.charCodeAt(t)===46&&O(e.charCodeAt(t+1))){for(l=22,u=t+2;O(e.charCodeAt(u));)u++;for(;w(e.charCodeAt(u));)u++}else l=21}else for(l=21;e.charCodeAt(u)===45&&N(e.charCodeAt(u+1));)for(l=27,u+=2;N(e.charCodeAt(u));)u++}}else if(c===10)l=39,d=!0;else if(c===13)l=39,d=!0,e.charCodeAt(u)===10&&u++;else if(c===34||c===39){if(c===34&&e.charCodeAt(a+1)===96){let t=e.indexOf('`"',a+2);l=t===-1?37:36,u=t===-1?i:t+2}else if(l=35,u=ae(e,a,c),u===-1){let t=a+1;for(;t<i&&!oe(e,t);)t++;throw se(e,a,t-a)}}else if(c===37){if(o&&e.charCodeAt(u)===37)for(l=38;u<i&&e.charCodeAt(u)!==10&&e.charCodeAt(u)!==13;)u++;else l=31}else if(c===45){if(e.charCodeAt(u)!==45)l=29;else{for(;e.charCodeAt(u)===45;)u++;let t=e.charCodeAt(u),n=u-a===2;n&&t===124&&e.charCodeAt(u+1)===62?(l=46,u+=2):t===62?(l=53,u++):n&&(t===111||t===120)?(l=t===111?55:57,u++):l=59}}else if(c===46){let t=e.charCodeAt(u);if(t===46&&e.charCodeAt(u+1)===62)l=47,u+=2;else if(O(t)){for(l=22;O(e.charCodeAt(u));)u++;for(;w(e.charCodeAt(u));)u++}else l=30}else if(c===60){if(e.charCodeAt(u)===60){if(t.push(48),n.push(a),r.push(a+2),o=!1,a+=2,a>=i)break;if(e.charCodeAt(a)===62&&e.charCodeAt(a+1)===62)l=49,u=a+2;else{let o=a,s=!1;for(;o<i;o++){let t=e.charCodeAt(o);if(t===10||t===13)break;if(t===62&&e.charCodeAt(o+1)===62){s=!0;break}}if(s&&e.slice(a,o).trim()!==``)t.push(50),n.push(a),r.push(o),l=49,a=o,u=o+2;else{for(;o<i&&e.charCodeAt(o)!==10&&e.charCodeAt(o)!==13;)o++;if(o===a){for(;o<i&&(e.charCodeAt(o)===10||e.charCodeAt(o)===13);)o++;throw se(e,a,o-a)}l=51,u=o}}}else if(e.charCodeAt(u)===45&&e.charCodeAt(u+1)===45)for(l=54,u+=2;e.charCodeAt(u)===45;)u++;else l=33}else if(c===58)e.charCodeAt(u)===58&&e.charCodeAt(u+1)===58?(l=52,u+=2):l=25;else if(c===64)e.charCodeAt(u)===123?(l=60,u++):l=23;else if(c===123)l=61;else if(c===125)l=62;else if(c===91)l=63;else if(c===93)l=64;else if(c===40)l=65;else if(c===41)l=66;else if(c===44)l=24;else if(c===35){for(;D(e.charCodeAt(u));)u++;l=u>a+1?26:32}else if(c===92)e.charCodeAt(u)===44?(l=28,u++):l=33;else if(c<127&&c>32)l=(M[c]&j)===0?33:32;else for(l=34;u<i;){let t=e.charCodeAt(u);if(t>=32&&t<127||t===9||t===10||t===13)break;u++}t.push(l),n.push(a),r.push(u),a=u,o=d}for(let e=0;e<3;e++)t.push(0),n.push(i),r.push(i);return{types:t,starts:n,ends:r}}function le(){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 ue(){return{elements:[],boundaries:[],jsons:[],relationships:[],notes:[],metadata:[],classes:[],styles:[],classDefs:[],direction:void 0,accTitle:``,accDescription:``}}function I(e,t){if(t.length===0)return;let n=new Set(e);for(let r of t)n.has(r)||(n.add(r),e.push(r))}function de(e){let t=new Set([`actor`,`usecase`,`boundary`,`edge`]);for(let{key:n,value:r}of e)if(n===`icon`)t.clear(),t.add(`actor`);else if(n===`animate`||n===`animation`)t.clear(),t.add(`edge`);else if(n===`type`)t.clear(),r===`rect`||r===`package`?t.add(`boundary`):(r===`normal`||r===`hollow`||r===`awesome`)&&t.add(`actor`);else if(n===`business`)t.delete(`boundary`),t.delete(`edge`);else return;return t.size===1?[...t][0]:void 0}function fe(e,t,n,r,i){let a=le(),{actors:o,useCases:s,systemBoundaries:c}=a,l=new Map,u=new Map,d=new Map,f=new Map,p=new Map,m=t=>ie(e,t[0],t[1]),h=(t,n)=>{let[r,i]=F(e,n[0]);return new S(t,`semantic`,{type:`usecase`,line:r,column:i})},g=(e,t)=>{throw h(`${e} at ${m(t)}`,t)},_=(e,t,n,r,i)=>{let a=e=>e===void 0?``:` (label "${e}")`;throw h(`${e} at ${m(t)}${a(r)}; previous declaration at ${m(n)}${a(i)}`,t)},v=(e,t,n)=>g(`Metadata property '${n.key}' is invalid for ${t} '${e}'`,n.keySpan),y=(e,t)=>{let n=p.get(e);(n===void 0||t<n)&&p.set(e,t)},b=e=>[...e].sort((e,t)=>(p.get(e.id)??0)-(p.get(t.id)??0)),x=(e,t)=>{l.set(e.id,{kind:t,span:e.span,generated:e.generated,label:e.label.text})},ee=(e,t)=>{let n=l.get(e.id);if(!n)return;let r=e.generated?e.label.text:void 0,i=n.generated?n.label:void 0;n.kind!==t&&_(`ID '${e.id}' is declared as both ${n.kind} and ${t}`,e.span,n.span,r,i),(n.generated||e.generated)&&_(`Generated ID '${e.id}' collides with another declaration`,e.span,n.span,r,i)},C=(e,t,n)=>{let r=l.get(e);r&&_(`ID '${e}' is declared more than once (${r.kind} and ${t})`,n,r.span,void 0,r.generated?r.label:void 0),l.set(e,{kind:t,span:n,generated:!1})},w=(e,t,n)=>{let{key:r,value:i}=t,a=a=>{!n&&a!==void 0&&a!==i&&_(`Actor '${e.id}' has conflicting ${r} metadata`,t.keySpan,e.span)};r===`type`&&(i===`normal`||i===`hollow`||i===`awesome`)?(a(e.actorType),e.actorType=i):r===`icon`&&typeof i==`string`?(a(e.icon),e.icon=i):r===`business`&&typeof i==`boolean`?(a(e.business),e.business=i):v(e.id,`actor`,t)},T=(e,t,n)=>{for(let r of t??[])e.kind===`actor`?w(e,r,n):r.key===`business`&&typeof r.value==`boolean`?(!n&&e.business!==void 0&&e.business!==r.value&&_(`Use case '${e.id}' has conflicting business metadata`,r.keySpan,e.span),e.business=r.value):v(e.id,`usecase`,r)},te=e=>{let t;if(e.kind===`actor`){s.delete(e.id);let n={id:e.id,label:e.label.text,labelType:e.label.type,business:e.business??!1,classes:[...e.classes],type:e.icon?`icon`:e.actorType??`normal`,styles:o.get(e.id)?.styles??[]};e.icon&&(n.icon=e.icon),o.set(e.id,n),t=n}else o.delete(e.id),t={id:e.id,label:e.label.text,labelType:e.label.type,business:e.business??!1,classes:[...e.classes],shape:e.shape??`ellipse`,styles:s.get(e.id)?.styles??[]},s.set(e.id,t);e.stereotype&&(t.stereotype=e.stereotype),e.parent?.id&&(t.parentId=e.parent.id)},E=e=>{ee(e,e.kind);let t=e.parent?.id?e.parent:void 0,n=u.get(e.id);if(n)(n.label.text!==e.label.text||n.label.type!==e.label.type)&&_(`ID '${e.id}' has conflicting labels`,e.span,n.span),e.shape&&n.shape&&e.shape!==n.shape&&_(`Use case '${e.id}' has conflicting shapes`,e.span,n.span),t&&n.parent?.id&&t.id!==n.parent.id&&_(`Element '${e.id}' belongs to more than one system boundary`,t.span,n.parent.span),e.stereotype&&n.stereotype&&e.stereotype!==n.stereotype&&_(`Element '${e.id}' has conflicting stereotypes`,e.span,n.stereotypeSpan??n.span),n.shape??=e.shape,n.parent??=e.parent,n.stereotype??=e.stereotype,n.stereotypeSpan??=e.stereotype?e.span:void 0,I(n.classes,e.classes),T(n,e.metadata,!1);else{let n={kind:e.kind,id:e.id,label:e.label,span:e.span,generated:e.generated,classes:[...e.classes],parent:t,shape:e.shape,stereotype:e.stereotype,stereotypeSpan:e.stereotype?e.span:void 0};T(n,e.metadata,!1),u.set(e.id,n),x(e,e.kind)}},D=e=>{ee(e,`boundary`);let t=d.get(e.id);t?((t.label.text!==e.label.text||t.label.type!==e.label.type)&&_(`Boundary '${e.id}' has conflicting titles`,e.span,t.span),I(t.classes,e.classes)):(d.set(e.id,{...e,classes:[...e.classes],members:[]}),x(e,`boundary`))},O=e=>{e.classed&&!e.declares&&g(`Relationship endpoint '${e.id}' uses ::: without declaring the node`,e.span);let t=l.get(e.id);return t?t.kind:(u.set(e.id,{...e,kind:`usecase`,shape:`ellipse`,classes:[]}),x(e,`usecase`),y(e.id,e.span[0]),`usecase`)},k=(e,t)=>{let n=l.get(e)?.kind;return(n===`actor`?o.get(e):n===`usecase`?s.get(e):n===`boundary`?c.get(e):n===`json`?a.jsonNodes.get(e):f.get(e))??g(`Class/style target '${e}' is unresolved or anonymous`,t)},A=[];for(let{source:e,target:n}of t.relationships)y(e.id,e.span[0]),y(n.id,n.span[0]);for(let e of t.elements)y(e.id,e.span[0]),A.push({offset:e.span[0],run:()=>E(e)});for(let e of t.boundaries)y(e.id,e.span[0]),A.push({offset:e.span[0],run:()=>D(e)});for(let e of t.jsons)y(e.id,e.span[0]),A.push({offset:e.span[0],run:()=>C(e.id,`json`,e.span)});for(let{id:e,idSpan:n}of t.relationships)e&&n&&A.push({offset:n[0],run:()=>C(e,`edge`,n)});A.sort((e,t)=>e.offset-t.offset);for(let e of A)e.run();for(let e of b(u.values()))te(e);for(let e of b(d.values()))c.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,type:`rect`,members:[],classes:[],styles:[]});for(let e of b(t.jsons))a.jsonNodes.set(e.id,{id:e.id,value:e.value,propertyOrder:e.propertyOrder,classes:[...e.classes],styles:[]});let j=0;for(let e of t.relationships){let{source:t,target:n,type:r}=e,i=O(t),o=O(n),s=e=>e===`actor`||e===`usecase`||e===`json`;s(i)||_(`Relationship source '${t.id}' cannot be ${i}`,t.span,l.get(t.id).span),s(o)||_(`Relationship target '${n.id}' cannot be ${o}`,n.span,l.get(n.id).span),(r===`include`||r===`extend`)&&(i!==`usecase`||o!==`usecase`)&&g(`${r} relationship requires use-case endpoints`,e.span),r===`generalization`&&(i===`json`||i!==o)&&g(`Generalization requires actor-to-actor or use-case-to-use-case endpoints`,e.span),r===`association`&&(i===`json`||o===`json`)&&e.arrowType>2&&g(`JSON relationship '${t.id}' to '${n.id}' permits only point, reversed-point, or markerless solid association`,e.span);let c=e.id??`edge-${j++}`,u={id:c,explicitId:!!e.id,source:t.id,target:n.id,type:r,arrowType:e.arrowType,minlen:e.minlen,classes:[],styles:[],animate:!1};e.label&&(u.label=e.label.text,u.labelType=e.label.type),a.relationships.push(u),f.set(c,u)}let M=new Map(o),ne=new Map(s);o.clear(),s.clear();for(let e of b(u.values())){let t=M.get(e.id),n=ne.get(e.id);t?o.set(e.id,t):n?s.set(e.id,n):te(e)}for(let{target:e,span:n,properties:r,statement:i}of t.metadata){let t=l.get(e);if(!t){let t=de(r);return g(`Metadata target '${e}' is unresolved${t?` (metadata implies ${t})`:``}`,n)}let a=t.kind;a===`actor`||a===`usecase`?T(u.get(e),r,!0):a===`edge`&&(i.kind=`edgeMetadata`,i.edges=[{id:e,span:i.span,idSpan:n,metadata:i.metadata}],delete i.nodes);let o=d.get(e),s=f.get(e);for(let t of a===`actor`||a===`usecase`?[]:r){let{key:n,value:r}=t;a===`boundary`&&o&&n===`type`&&(r===`rect`||r===`package`)?o.type=r:a===`edge`&&s&&n===`animate`&&typeof r==`boolean`?s.animate=r:a===`edge`&&s&&n===`animation`&&(r===`fast`||r===`slow`)?(s.animation=r,s.animate=!0):v(e,a,t)}}for(let e of a.relationships)e.animation&&(e.animate=!0);for(let e of u.values())e.kind===`actor`?(e.icon&&e.actorType&&e.actorType!==`normal`&&g(`Actor '${e.id}' cannot combine icon with type '${e.actorType}'`,e.span),e.business&&(e.icon||e.actorType===`awesome`)&&g(`Business actor '${e.id}' must use normal or hollow geometry`,e.span)):e.shape===`rect`&&e.business&&g(`Rectangular use case '${e.id}' cannot be a business use case`,e.span),te(e);for(let e of[...t.elements].sort((e,t)=>e.span[0]-t.span[0])){if(!e.parent?.id)continue;let t=d.get(e.parent.id).members;t.includes(e.id)||t.push(e.id)}for(let e of d.values()){let t=c.get(e.id);t.type=e.type??`rect`,t.members=e.members,t.classes=[...e.classes]}let N=0;for(let e of t.notes){let t=l.get(e.target);if(!t)return g(`Note target '${e.target}' is unresolved`,e.span);t.kind!==`actor`&&t.kind!==`usecase`&&_(`Note target '${e.target}' must be an actor or use case, not ${t.kind}`,e.span,t.span);let n=`note-${N++}`;a.notes.set(n,{id:n,target:e.target,label:e.label.text,labelType:e.label.type})}for(let e of t.classDefs)for(let t of e.ids)a.classDefs.set(t,{id:t,styles:[...e.styles]});for(let e of t.classes)for(let t of e.targets)I(k(t.id,t.span).classes,e.classes);for(let e of t.styles)k(e.target,e.span).styles.push(...e.styles);return a.direction=t.direction??a.direction,a.title=i,a.accTitle=t.accTitle,a.accDescription=t.accDescription,a.accDescr=t.accDescription.replace(/\n\s+/g,`
|
|
1
|
+
import{_ as e,a as t,b as n,d as r,i,o as a,p as o,s,u as c,x as l,y as u}from"./DfCZPwp1.js";import{a as d,t as f}from"./DciMwFJ1.js";import{a as p,i as m,l as h,s as g}from"./BLmF1B2i.js";import{t as _}from"./RFxekmX-.js";import{r as v}from"./tUSDgbpy.js";import{i as y,n as b,r as x,t as ee}from"./RlApGeew.js";import{PeleError as S,a as C,b as w,r as T,u as te,v as E,x as D,y as O}from"./-2Meesge.js";var k=`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(` `),A=1,j=2,M=new Uint8Array(128);for(let e=48;e<=57;e++)M[e]=A;for(let e=65;e<=90;e++)M[e]=M[e+32]=A;M[95]=A;for(let e of`!#$&*+/=?^|~`)M[e.charCodeAt(0)]=j;var ne=[0,12,5,14,3,9,2,2,2,2,2,4,3,4,8,5,5,7,6,4,5];function N(e){return e<128&&(M[e]&A)!==0}function P(e,t,n){for(let r=0;r<n.length;r++)if((e.charCodeAt(t+r)|32)!==n.charCodeAt(r))return!1;return!0}function re(e,t,n){switch(n){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:P(e,t,`extend`)?18:0;case 69:return P(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 P(e,t,`include`)?17:0;case 116:return e.startsWith(`true`,t)?19:0;case 117:return+!!e.startsWith(`usecase-beta`,t);default:return 0}}function F(e,t){[e,t]=C(e,t);let n=1,r=0;for(let i=0;i<t;i++){let a=e.charCodeAt(i);a!==10&&a!==13||(a===13&&i+1<t&&e.charCodeAt(i+1)===10&&i++,n++,r=i+1)}return[n,t-r+1]}function ie(e,t,n){let[r,i]=F(e,t);return`line ${r}, column ${i} [${C(e,t)[1]},${C(e,n)[1]})`}function ae(e,t,n){for(let r=t+1;r<e.length;r++){let t=e.charCodeAt(r);if(t===n)return r+1;if(t===10||t===13)return-1}return-1}function oe(e,t){let n=e.charCodeAt(t);return n!==34&&n!==39||n===34&&e.charCodeAt(t+1)===96||ae(e,t,n)!==-1}function se(e,t,n){let[r,i]=F(e,t),[a,o]=[C(e,t)[1],C(e,t+n)[1]];return new S(`Error lexing usecase diagram: unexpected character: ->${e.charAt(t)}<- at offset: ${a}, skipped ${o-a} characters. at line ${r}, column ${i} [${a},${o})`,`syntax`,{type:`usecase`,line:r,column:i})}function ce(e){let t=[],n=[],r=[],i=e.length,a=0,o=!0,s=!1;for(;a<i;){let c=e.charCodeAt(a);if(c===32||c===9){a++;continue}let l,u=a+1,d=!1;if(c<128&&(M[c]&A)!==0){if(l=0,c===97&&o&&e.startsWith(`acc`,a)){let t=e.startsWith(`Descr`,a+3);if(t||e.startsWith(`Title`,a+3)){let n=a+8;for(;E(e.charCodeAt(n));)n++;let r=e.charCodeAt(n);if(r===58)for(l=t?42:41,u=n+1;u<i&&e.charCodeAt(u)!==10&&e.charCodeAt(u)!==13;)u++;else if(r===123&&t&&!s){let t=e.indexOf(`}`,n+1);t===-1?s=!0:(l=40,u=t+1)}}}else if(c===106&&e.startsWith(`json`,a)&&E(e.charCodeAt(a+4))){let s=a+5;for(;E(e.charCodeAt(s));)s++;let c=s;for(;N(e.charCodeAt(s));)s++;if(s>c){for(;E(e.charCodeAt(s));)s++;if(e.charCodeAt(s)===64){for(s++;E(e.charCodeAt(s));)s++;if(e.charCodeAt(s)===123){t.push(43),n.push(a),r.push(s),a=s;let c=0,l=!1,u=!1,d=s;for(;d<i;d++){let t=e.charCodeAt(d);if(l)u?u=!1:t===92?u=!0:t===34&&(l=!1);else if(t===34)l=!0;else if(t===123)c++;else if(t===125&&--c===0)break}t.push(d<i?44:45),n.push(s),a=d<i?d+1:i,r.push(a),o=!1;continue}}}}if(l===0){for(;u<i&&N(e.charCodeAt(u));)u++;let t=re(e,a,c);if(t!==0)t===1||u-a===ne[t]?(l=t,u=a+ne[t]):l=21;else if((c===111||c===120)&&e.charCodeAt(a+1)===45&&e.charCodeAt(a+2)===45)l=c===111?56:58,u=a+3;else if(O(c)){let t=a+1;for(;O(e.charCodeAt(t));)t++;if(e.charCodeAt(t)===46&&O(e.charCodeAt(t+1))){for(l=22,u=t+2;O(e.charCodeAt(u));)u++;for(;w(e.charCodeAt(u));)u++}else l=21}else for(l=21;e.charCodeAt(u)===45&&N(e.charCodeAt(u+1));)for(l=27,u+=2;N(e.charCodeAt(u));)u++}}else if(c===10)l=39,d=!0;else if(c===13)l=39,d=!0,e.charCodeAt(u)===10&&u++;else if(c===34||c===39){if(c===34&&e.charCodeAt(a+1)===96){let t=e.indexOf('`"',a+2);l=t===-1?37:36,u=t===-1?i:t+2}else if(l=35,u=ae(e,a,c),u===-1){let t=a+1;for(;t<i&&!oe(e,t);)t++;throw se(e,a,t-a)}}else if(c===37){if(o&&e.charCodeAt(u)===37)for(l=38;u<i&&e.charCodeAt(u)!==10&&e.charCodeAt(u)!==13;)u++;else l=31}else if(c===45){if(e.charCodeAt(u)!==45)l=29;else{for(;e.charCodeAt(u)===45;)u++;let t=e.charCodeAt(u),n=u-a===2;n&&t===124&&e.charCodeAt(u+1)===62?(l=46,u+=2):t===62?(l=53,u++):n&&(t===111||t===120)?(l=t===111?55:57,u++):l=59}}else if(c===46){let t=e.charCodeAt(u);if(t===46&&e.charCodeAt(u+1)===62)l=47,u+=2;else if(O(t)){for(l=22;O(e.charCodeAt(u));)u++;for(;w(e.charCodeAt(u));)u++}else l=30}else if(c===60){if(e.charCodeAt(u)===60){if(t.push(48),n.push(a),r.push(a+2),o=!1,a+=2,a>=i)break;if(e.charCodeAt(a)===62&&e.charCodeAt(a+1)===62)l=49,u=a+2;else{let o=a,s=!1;for(;o<i;o++){let t=e.charCodeAt(o);if(t===10||t===13)break;if(t===62&&e.charCodeAt(o+1)===62){s=!0;break}}if(s&&e.slice(a,o).trim()!==``)t.push(50),n.push(a),r.push(o),l=49,a=o,u=o+2;else{for(;o<i&&e.charCodeAt(o)!==10&&e.charCodeAt(o)!==13;)o++;if(o===a){for(;o<i&&(e.charCodeAt(o)===10||e.charCodeAt(o)===13);)o++;throw se(e,a,o-a)}l=51,u=o}}}else if(e.charCodeAt(u)===45&&e.charCodeAt(u+1)===45)for(l=54,u+=2;e.charCodeAt(u)===45;)u++;else l=33}else if(c===58)e.charCodeAt(u)===58&&e.charCodeAt(u+1)===58?(l=52,u+=2):l=25;else if(c===64)e.charCodeAt(u)===123?(l=60,u++):l=23;else if(c===123)l=61;else if(c===125)l=62;else if(c===91)l=63;else if(c===93)l=64;else if(c===40)l=65;else if(c===41)l=66;else if(c===44)l=24;else if(c===35){for(;D(e.charCodeAt(u));)u++;l=u>a+1?26:32}else if(c===92)e.charCodeAt(u)===44?(l=28,u++):l=33;else if(c<127&&c>32)l=(M[c]&j)===0?33:32;else for(l=34;u<i;){let t=e.charCodeAt(u);if(t>=32&&t<127||t===9||t===10||t===13)break;u++}t.push(l),n.push(a),r.push(u),a=u,o=d}for(let e=0;e<3;e++)t.push(0),n.push(i),r.push(i);return{types:t,starts:n,ends:r}}function le(){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 ue(){return{elements:[],boundaries:[],jsons:[],relationships:[],notes:[],metadata:[],classes:[],styles:[],classDefs:[],direction:void 0,accTitle:``,accDescription:``}}function I(e,t){if(t.length===0)return;let n=new Set(e);for(let r of t)n.has(r)||(n.add(r),e.push(r))}function de(e){let t=new Set([`actor`,`usecase`,`boundary`,`edge`]);for(let{key:n,value:r}of e)if(n===`icon`)t.clear(),t.add(`actor`);else if(n===`animate`||n===`animation`)t.clear(),t.add(`edge`);else if(n===`type`)t.clear(),r===`rect`||r===`package`?t.add(`boundary`):(r===`normal`||r===`hollow`||r===`awesome`)&&t.add(`actor`);else if(n===`business`)t.delete(`boundary`),t.delete(`edge`);else return;return t.size===1?[...t][0]:void 0}function fe(e,t,n,r,i){let a=le(),{actors:o,useCases:s,systemBoundaries:c}=a,l=new Map,u=new Map,d=new Map,f=new Map,p=new Map,m=t=>ie(e,t[0],t[1]),h=(t,n)=>{let[r,i]=F(e,n[0]);return new S(t,`semantic`,{type:`usecase`,line:r,column:i})},g=(e,t)=>{throw h(`${e} at ${m(t)}`,t)},_=(e,t,n,r,i)=>{let a=e=>e===void 0?``:` (label "${e}")`;throw h(`${e} at ${m(t)}${a(r)}; previous declaration at ${m(n)}${a(i)}`,t)},v=(e,t,n)=>g(`Metadata property '${n.key}' is invalid for ${t} '${e}'`,n.keySpan),y=(e,t)=>{let n=p.get(e);(n===void 0||t<n)&&p.set(e,t)},b=e=>[...e].sort((e,t)=>(p.get(e.id)??0)-(p.get(t.id)??0)),x=(e,t)=>{l.set(e.id,{kind:t,span:e.span,generated:e.generated,label:e.label.text})},ee=(e,t)=>{let n=l.get(e.id);if(!n)return;let r=e.generated?e.label.text:void 0,i=n.generated?n.label:void 0;n.kind!==t&&_(`ID '${e.id}' is declared as both ${n.kind} and ${t}`,e.span,n.span,r,i),(n.generated||e.generated)&&_(`Generated ID '${e.id}' collides with another declaration`,e.span,n.span,r,i)},C=(e,t,n)=>{let r=l.get(e);r&&_(`ID '${e}' is declared more than once (${r.kind} and ${t})`,n,r.span,void 0,r.generated?r.label:void 0),l.set(e,{kind:t,span:n,generated:!1})},w=(e,t,n)=>{let{key:r,value:i}=t,a=a=>{!n&&a!==void 0&&a!==i&&_(`Actor '${e.id}' has conflicting ${r} metadata`,t.keySpan,e.span)};r===`type`&&(i===`normal`||i===`hollow`||i===`awesome`)?(a(e.actorType),e.actorType=i):r===`icon`&&typeof i==`string`?(a(e.icon),e.icon=i):r===`business`&&typeof i==`boolean`?(a(e.business),e.business=i):v(e.id,`actor`,t)},T=(e,t,n)=>{for(let r of t??[])e.kind===`actor`?w(e,r,n):r.key===`business`&&typeof r.value==`boolean`?(!n&&e.business!==void 0&&e.business!==r.value&&_(`Use case '${e.id}' has conflicting business metadata`,r.keySpan,e.span),e.business=r.value):v(e.id,`usecase`,r)},te=e=>{let t;if(e.kind===`actor`){s.delete(e.id);let n={id:e.id,label:e.label.text,labelType:e.label.type,business:e.business??!1,classes:[...e.classes],type:e.icon?`icon`:e.actorType??`normal`,styles:o.get(e.id)?.styles??[]};e.icon&&(n.icon=e.icon),o.set(e.id,n),t=n}else o.delete(e.id),t={id:e.id,label:e.label.text,labelType:e.label.type,business:e.business??!1,classes:[...e.classes],shape:e.shape??`ellipse`,styles:s.get(e.id)?.styles??[]},s.set(e.id,t);e.stereotype&&(t.stereotype=e.stereotype),e.parent?.id&&(t.parentId=e.parent.id)},E=e=>{ee(e,e.kind);let t=e.parent?.id?e.parent:void 0,n=u.get(e.id);if(n)(n.label.text!==e.label.text||n.label.type!==e.label.type)&&_(`ID '${e.id}' has conflicting labels`,e.span,n.span),e.shape&&n.shape&&e.shape!==n.shape&&_(`Use case '${e.id}' has conflicting shapes`,e.span,n.span),t&&n.parent?.id&&t.id!==n.parent.id&&_(`Element '${e.id}' belongs to more than one system boundary`,t.span,n.parent.span),e.stereotype&&n.stereotype&&e.stereotype!==n.stereotype&&_(`Element '${e.id}' has conflicting stereotypes`,e.span,n.stereotypeSpan??n.span),n.shape??=e.shape,n.parent??=e.parent,n.stereotype??=e.stereotype,n.stereotypeSpan??=e.stereotype?e.span:void 0,I(n.classes,e.classes),T(n,e.metadata,!1);else{let n={kind:e.kind,id:e.id,label:e.label,span:e.span,generated:e.generated,classes:[...e.classes],parent:t,shape:e.shape,stereotype:e.stereotype,stereotypeSpan:e.stereotype?e.span:void 0};T(n,e.metadata,!1),u.set(e.id,n),x(e,e.kind)}},D=e=>{ee(e,`boundary`);let t=d.get(e.id);t?((t.label.text!==e.label.text||t.label.type!==e.label.type)&&_(`Boundary '${e.id}' has conflicting titles`,e.span,t.span),I(t.classes,e.classes)):(d.set(e.id,{...e,classes:[...e.classes],members:[]}),x(e,`boundary`))},O=e=>{e.classed&&!e.declares&&g(`Relationship endpoint '${e.id}' uses ::: without declaring the node`,e.span);let t=l.get(e.id);return t?t.kind:(u.set(e.id,{...e,kind:`usecase`,shape:`ellipse`,classes:[]}),x(e,`usecase`),y(e.id,e.span[0]),`usecase`)},k=(e,t)=>{let n=l.get(e)?.kind;return(n===`actor`?o.get(e):n===`usecase`?s.get(e):n===`boundary`?c.get(e):n===`json`?a.jsonNodes.get(e):f.get(e))??g(`Class/style target '${e}' is unresolved or anonymous`,t)},A=[];for(let{source:e,target:n}of t.relationships)y(e.id,e.span[0]),y(n.id,n.span[0]);for(let e of t.elements)y(e.id,e.span[0]),A.push({offset:e.span[0],run:()=>E(e)});for(let e of t.boundaries)y(e.id,e.span[0]),A.push({offset:e.span[0],run:()=>D(e)});for(let e of t.jsons)y(e.id,e.span[0]),A.push({offset:e.span[0],run:()=>C(e.id,`json`,e.span)});for(let{id:e,idSpan:n}of t.relationships)e&&n&&A.push({offset:n[0],run:()=>C(e,`edge`,n)});A.sort((e,t)=>e.offset-t.offset);for(let e of A)e.run();for(let e of b(u.values()))te(e);for(let e of b(d.values()))c.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,type:`rect`,members:[],classes:[],styles:[]});for(let e of b(t.jsons))a.jsonNodes.set(e.id,{id:e.id,value:e.value,propertyOrder:e.propertyOrder,classes:[...e.classes],styles:[]});let j=0;for(let e of t.relationships){let{source:t,target:n,type:r}=e,i=O(t),o=O(n),s=e=>e===`actor`||e===`usecase`||e===`json`;s(i)||_(`Relationship source '${t.id}' cannot be ${i}`,t.span,l.get(t.id).span),s(o)||_(`Relationship target '${n.id}' cannot be ${o}`,n.span,l.get(n.id).span),(r===`include`||r===`extend`)&&(i!==`usecase`||o!==`usecase`)&&g(`${r} relationship requires use-case endpoints`,e.span),r===`generalization`&&(i===`json`||i!==o)&&g(`Generalization requires actor-to-actor or use-case-to-use-case endpoints`,e.span),r===`association`&&(i===`json`||o===`json`)&&e.arrowType>2&&g(`JSON relationship '${t.id}' to '${n.id}' permits only point, reversed-point, or markerless solid association`,e.span);let c=e.id??`edge-${j++}`,u={id:c,explicitId:!!e.id,source:t.id,target:n.id,type:r,arrowType:e.arrowType,minlen:e.minlen,classes:[],styles:[],animate:!1};e.label&&(u.label=e.label.text,u.labelType=e.label.type),a.relationships.push(u),f.set(c,u)}let M=new Map(o),ne=new Map(s);o.clear(),s.clear();for(let e of b(u.values())){let t=M.get(e.id),n=ne.get(e.id);t?o.set(e.id,t):n?s.set(e.id,n):te(e)}for(let{target:e,span:n,properties:r,statement:i}of t.metadata){let t=l.get(e);if(!t){let t=de(r);return g(`Metadata target '${e}' is unresolved${t?` (metadata implies ${t})`:``}`,n)}let a=t.kind;a===`actor`||a===`usecase`?T(u.get(e),r,!0):a===`edge`&&(i.kind=`edgeMetadata`,i.edges=[{id:e,span:i.span,idSpan:n,metadata:i.metadata}],delete i.nodes);let o=d.get(e),s=f.get(e);for(let t of a===`actor`||a===`usecase`?[]:r){let{key:n,value:r}=t;a===`boundary`&&o&&n===`type`&&(r===`rect`||r===`package`)?o.type=r:a===`edge`&&s&&n===`animate`&&typeof r==`boolean`?s.animate=r:a===`edge`&&s&&n===`animation`&&(r===`fast`||r===`slow`)?(s.animation=r,s.animate=!0):v(e,a,t)}}for(let e of a.relationships)e.animation&&(e.animate=!0);for(let e of u.values())e.kind===`actor`?(e.icon&&e.actorType&&e.actorType!==`normal`&&g(`Actor '${e.id}' cannot combine icon with type '${e.actorType}'`,e.span),e.business&&(e.icon||e.actorType===`awesome`)&&g(`Business actor '${e.id}' must use normal or hollow geometry`,e.span)):e.shape===`rect`&&e.business&&g(`Rectangular use case '${e.id}' cannot be a business use case`,e.span),te(e);for(let e of[...t.elements].sort((e,t)=>e.span[0]-t.span[0])){if(!e.parent?.id)continue;let t=d.get(e.parent.id).members;t.includes(e.id)||t.push(e.id)}for(let e of d.values()){let t=c.get(e.id);t.type=e.type??`rect`,t.members=e.members,t.classes=[...e.classes]}let N=0;for(let e of t.notes){let t=l.get(e.target);if(!t)return g(`Note target '${e.target}' is unresolved`,e.span);t.kind!==`actor`&&t.kind!==`usecase`&&_(`Note target '${e.target}' must be an actor or use case, not ${t.kind}`,e.span,t.span);let n=`note-${N++}`;a.notes.set(n,{id:n,target:e.target,label:e.label.text,labelType:e.label.type})}for(let e of t.classDefs)for(let t of e.ids)a.classDefs.set(t,{id:t,styles:[...e.styles]});for(let e of t.classes)for(let t of e.targets)I(k(t.id,t.span).classes,e.classes);for(let e of t.styles)k(e.target,e.span).styles.push(...e.styles);return a.direction=t.direction??a.direction,a.title=i,a.accTitle=t.accTitle,a.accDescription=t.accDescription,a.accDescr=t.accDescription.replace(/\n\s+/g,`
|
|
2
2
|
`),a.source=e,a.headerSpan=n,a.statements=r,a}var L=class extends Error{constructor(e){super(`Invalid JSON token`),this.offset=e}offset};function pe(e){let t=new Map,n=[],r=[],i=e.length,a=0,o=``,s=0,c=()=>{for(;a<i;){let t=e.charCodeAt(a);if(t!==32&&t!==9&&t!==10&&t!==13)return;a++}},l=t=>{a++;let n=``;for(;a<i;){let r=a,i=e[a++];if(i===`"`)return n;if(i.charCodeAt(0)<32)throw new L(r);if(i!==`\\`){t&&(n+=i);continue}let o=a,s=e[a++],c;if(s===`"`||s===`\\`||s===`/`)c=s;else if(s===`b`)c=`\b`;else if(s===`f`)c=`\f`;else if(s===`n`)c=`
|
|
3
3
|
`;else if(s===`r`)c=`\r`;else if(s===`t`)c=` `;else if(s===`u`){let t=e.slice(a,a+4);if(!/^[\dA-Fa-f]{4}$/.test(t))throw new L(a);c=String.fromCharCode(parseInt(t,16)),a+=4}else throw new L(o);t&&(n+=c)}throw new L(a)},u=t=>{for(let n=0;n<t.length;n++)if(e[a+n]!==t[n])throw new L(a+n);a+=t.length},d=()=>{if(e.charCodeAt(a)===45&&a++,e.charCodeAt(a)===48)a++;else if(O(e.charCodeAt(a)))for(;O(e.charCodeAt(a));)a++;else throw new L(a);if(e.charCodeAt(a)===46){if(a++,!O(e.charCodeAt(a)))throw new L(a);for(;O(e.charCodeAt(a));)a++}if((e.charCodeAt(a)|32)==101){if(a++,(e.charCodeAt(a)===43||e.charCodeAt(a)===45)&&a++,!O(e.charCodeAt(a)))throw new L(a);for(;O(e.charCodeAt(a));)a++}};for(c();;)if(s===0){c();let i=e.charCodeAt(a);if(s=2,i===123){a++;let i=[];t.set(o,i),n.push(o),c(),e.charCodeAt(a)===125?a++:(r.push({object:!0,pointer:o,keys:i,ranges:new Map,key:``,from:0,index:0}),s=1)}else if(i===91)a++,c(),e.charCodeAt(a)===93?a++:(r.push({object:!1,pointer:o,keys:[],ranges:new Map,key:``,from:0,index:0}),o+=`/0`,s=0);else if(i===34)l(!1);else if(i===116)u(`true`);else if(i===102)u(`false`);else if(i===110)u(`null`);else if(i===45||O(i))d();else throw new L(a)}else if(s===1){let i=r[r.length-1];if(e.charCodeAt(a)!==34)throw new L(a);let u=l(!0),d=i.ranges.get(u);if(d===void 0)i.keys.push(u);else for(let e=d[0];e<d[1];e++)t.delete(n[e]);if(i.key=u,i.from=n.length,c(),e.charCodeAt(a)!==58)throw new L(a);a++,o=`${i.pointer}/${u.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}`,s=0}else{let t=r[r.length-1];if(t===void 0)break;t.object?t.ranges.set(t.key,[t.from,n.length]):t.index++,c();let i=e.charCodeAt(a);if(i===(t.object?125:93))a++,r.pop();else{if(i!==44)throw new L(a);a++,c(),o=`${t.pointer}/${t.index}`,s=+!!t.object}}if(c(),a!==i)throw new L(a);return t}function me(e,t,n,r){let i=Math.min(Math.max(t,0),e.length);for(let t=0;t<i;t++){let i=e.charCodeAt(t);i===13?(n++,r=1):i===10?(t===0||e.charCodeAt(t-1)!==13)&&(n++,r=1):r++}return[n,r]}function he(e,t,n,r){let i=/\bposition (\d+)\b/.exec(e);if(i)return me(t,parseInt(i[1],10),n,r);let a=/\bline (\d+) column (\d+)\b/.exec(e);if(a){let e=parseInt(a[1],10),t=parseInt(a[2],10);return[n+e-1,e===1?r+t-1:t]}if(/unexpected end|end of json input/i.test(e))return me(t,t.length,n,r)}function ge(e,t,n){return new S(`${e} (line ${t}, column ${n})`,`syntax`,{type:`usecase`,line:t,column:n})}function _e(e,t){let n;try{n=JSON.parse(e)}catch(n){let r=n instanceof Error?n.message:String(n),i=T(e);if(i!==e)try{JSON.parse(i)}catch(e){e instanceof Error&&(r=e.message)}let[a,o]=t(),s=he(r,i,a,o);if(!s){let e=0;try{pe(i)}catch(t){t instanceof L&&(e=t.offset)}s=me(i,e,a,o)}throw ge(`Invalid JSON: ${r}`,s[0],s[1])}if(typeof n!=`object`||!n||Array.isArray(n)){let[e,n]=t();throw ge(`JSON value must have an object root`,e,n)}return{value:n,propertyOrder:pe(e)}}var ve=1,ye=2,be=4,xe=8,Se=16,Ce=32,we=64,Te=`DEPENDENCY_ARROW|GENERALIZATION|FORWARD_SOLID|BACKWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|BACKWARD_CIRCLE|FORWARD_CROSS|BACKWARD_CROSS`,Ee=`IDENTIFIER|PLAIN_STRING|MARKDOWN_STRING`,De=`PLAIN_STRING|MARKDOWN_STRING|LABEL_TEXT`,Oe=`ACC_TITLE_LINE|ACC_DESCR_LINE|ACC_DESCR_BLOCK|DIRECTION|ACTOR|SYSTEM_BOUNDARY|NOTE|JSON_DECLARATION_START|CLASS_DEF|CLASS|STYLE`,ke=`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`,R=new Uint8Array(67);function z(e,t){for(let n of e.split(`|`))if(n===`WORD`)for(let e=1;e<=21;e++)R[e]|=t;else R[k.indexOf(n)]|=t}z(`NEWLINE|COMMENT|${Oe}|${Ee}`,ve),z(`IDENTIFIER|${Te}`,ye),z(ke,be),z(`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Te}|NEWLINE|EOF`,xe),z(`NEWLINE|COMMENT|ACTOR|${Ee}`,Se),z(`FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS`,Ce),z(`NEWLINE|IDENTIFIER|PLAIN_STRING|RBRACE`,we);var Ae=new Set([`allowmixing`,`newpage`,`package`,`rectangle`,`skinparam`]),B=``,V=[],H=[],U=[],W=0,je=0,G,Me,Ne=[],Pe=0,Fe=0;function K(e){return B.slice(H[e],U[e])}function q(e){return[H[e],U[e]]}function Ie(e){let[t,n]=F(B,H[W]);throw new S(`Error parsing usecase diagram: ${e} at ${ie(B,H[W],U[W])}`,`syntax`,{type:`usecase`,line:t,column:n})}function Le(e){Ie(`Expecting token of type --> ${e} <-- but found --> '${K(W)}' <--`)}function J(e){return V[W]!==e&&Le(k[e]),W++}function Y(e){Ie(`Expecting: one of these possible Token sequences:
|
|
4
4
|
${e.split(`|`).map((e,t)=>` ${t+1}. [${e}]`).join(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,et as t,tt as n,z as r}from"./Iqr2CudW.js";var i=new class{#e=n(e(typeof document>`u`?``:document.documentElement.dataset.ground??``));get chosen(){return r(this.#e)}set chosen(e){t(this.#e,e,!0)}choose(e){this.chosen=e,e?document.documentElement.dataset.ground=e:delete document.documentElement.dataset.ground;try{e?localStorage.setItem(`isorite.ground`,e):localStorage.removeItem(`isorite.ground`)}catch{}}},a=[[``,`the system's`],[`lapis`,`lapis`],[`quartz`,`quartz`]],o=new class{#e=n(e(typeof document>`u`?``:document.documentElement.dataset.code??``));get chosen(){return r(this.#e)}set chosen(e){t(this.#e,e,!0)}choose(e){this.chosen=e,e?document.documentElement.dataset.code=e:delete document.documentElement.dataset.code;try{e?localStorage.setItem(`isorite.code`,e):localStorage.removeItem(`isorite.code`)}catch{}}},s=[[``,`in colour`],[`ink`,`in ink`]];export{i,a as n,o as r,s as t};
|