@huynle/hub 0.8.6 → 0.9.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/CHANGELOG.md +139 -0
- package/README.md +69 -12
- package/package.json +5 -1
- package/packages/claude-code/package.json +1 -1
- package/packages/cli/dist/hub-cli.js +278 -35
- package/packages/cli/package.json +1 -1
- package/packages/cli/src/bootstrap/adapters/opencode/README.md +4 -2
- package/packages/cli/src/bootstrap/release/harness-pins.json +22 -0
- package/packages/cli/src/bootstrap/release/harness-pins.pending.json +1 -20
- package/packages/cli/src/cli.ts +23 -10
- package/packages/cli/src/http.ts +1 -0
- package/packages/cli/src/launches.ts +5 -1
- package/packages/cli/src/mcp.ts +28 -8
- package/packages/cli/src/messaging.ts +14 -0
- package/packages/cli/src/team-intake-mcp.ts +26 -2
- package/packages/codex/package.json +1 -1
- package/packages/node/package.json +1 -1
- package/packages/preset/package.json +1 -1
- package/packages/protocol/package.json +1 -1
- package/packages/protocol/schema/app-delivery/v1.schema.json +677 -0
- package/packages/protocol/src/artifacts.ts +43 -0
- package/packages/protocol/src/credentials.ts +38 -0
- package/packages/protocol/src/index.ts +56 -5
- package/packages/protocol/src/launch.ts +7 -2
- package/packages/protocol/src/markdown.ts +753 -0
- package/packages/protocol/src/media-allowlist.ts +240 -0
- package/packages/protocol/src/media.ts +120 -0
- package/packages/protocol/src/preview-bundle.ts +221 -0
- package/packages/protocol/src/voice-recording.ts +8 -0
- package/packages/runtime-openshell/package.json +1 -1
- package/packages/runtime-sdk/package.json +1 -1
- package/packages/sdk/package.json +1 -1
- package/packages/sdk/src/client.ts +17 -3
- package/packages/sdk/src/errors.ts +1 -0
- package/packages/sdk/src/team-intake.ts +8 -0
- package/packages/sdk/src/types.ts +16 -2
- package/packages/spoke-sdk/package.json +1 -1
- package/src/central/agent/delivery.ts +35 -6
- package/src/central/agent/errors.ts +2 -0
- package/src/central/agent/events.ts +11 -2
- package/src/central/agent/launch-engine.ts +65 -4
- package/src/central/agent/launch-routes.ts +8 -0
- package/src/central/agent/launch-spec.ts +18 -1
- package/src/central/agent/launch-store.ts +2 -2
- package/src/central/agent/message-routes.ts +49 -11
- package/src/central/agent/messages.ts +17 -4
- package/src/central/agent/not-after.ts +28 -0
- package/src/central/agent/placement.ts +36 -4
- package/src/central/agent/routes.ts +3 -1
- package/src/central/agent/webhook-routes.ts +21 -9
- package/src/central/agent/webhooks.ts +27 -9
- package/src/central/artifacts/host.ts +3 -1
- package/src/central/artifacts/maintenance.ts +2 -1
- package/src/central/artifacts/preview-bundle.ts +81 -0
- package/src/central/artifacts/previews.ts +94 -0
- package/src/central/artifacts/routes.ts +12 -1
- package/src/central/artifacts/store.ts +198 -8
- package/src/central/config.ts +34 -0
- package/src/central/fetch-budget.ts +59 -0
- package/src/central/fetcher.ts +372 -0
- package/src/central/http.ts +277 -22
- package/src/central/media-remote.ts +248 -0
- package/src/central/media-timeline.ts +317 -0
- package/src/central/media-unfurl.ts +119 -0
- package/src/central/profiles/content.ts +3 -35
- package/src/central/recording/routes.ts +2 -2
- package/src/central/recording/schema.ts +3 -1
- package/src/central/registry.ts +449 -21
- package/src/central/spoke-ws.ts +17 -3
- package/src/central/store.ts +21 -0
- package/src/central/teams/intake-routes.ts +2 -1
- package/src/central/teams/intake.ts +200 -15
- package/src/central/unfurl-parse.ts +313 -0
- package/src/index.ts +68 -8
- package/src/speakable.ts +33 -1
- package/src/spoke/conversation.ts +7 -4
- package/src/spoke/deliver.ts +19 -0
- package/src/spoke/media-bytes.ts +171 -0
- package/src/spoke/media-policy.ts +394 -0
- package/src/spoke/media.ts +189 -0
- package/src/spoke/own-server.ts +30 -0
- package/src/spoke/preview-bundle.ts +538 -0
- package/src/spoke/spoke.ts +387 -17
- package/src/spoke/timeline.ts +59 -5
- package/src/spoke/voice-front.ts +335 -0
- package/web/dist/assets/24BXRY42-Zfr7jm_p.js +2 -0
- package/web/dist/assets/4FHPYW2L-C6Z67098.js +2 -0
- package/web/dist/assets/4LWW3ZNH-CUiYeygH.js +1 -0
- package/web/dist/assets/5THPTBWS-Ce_hS451.js +1 -0
- package/web/dist/assets/5XYWFMKW-CW-BCKiK.js +4 -0
- package/web/dist/assets/64PMEAB3-BjpCDGU9.js +8 -0
- package/web/dist/assets/6BEWHPQE-BpNa96Ze.js +2 -0
- package/web/dist/assets/6PIGVMFT-YXn9Hgnb.js +1 -0
- package/web/dist/assets/75JW6PN6-BFpDBuGN.js +2 -0
- package/web/dist/assets/7WLXJQOR-D6QVYUu9.js +1 -0
- package/web/dist/assets/7XWI72E6-BMuIspEy.js +2 -0
- package/web/dist/assets/A4UD2L5Z-BQzcD9dU.js +8 -0
- package/web/dist/assets/ArtifactPage-4GoBqSpU.js +1 -0
- package/web/dist/assets/ArtifactPane-Dx_0iWwH.js +1 -0
- package/web/dist/assets/ArtifactWorkbench-CuHgARMk.js +6 -0
- package/web/dist/assets/BGW36YJW-CJMhya8S.js +4 -0
- package/web/dist/assets/CGIZI67J-DYDSLME8.js +2 -0
- package/web/dist/assets/DKTLEL5E-DciMwFJ1.js +1 -0
- package/web/dist/assets/DNNCRC2E-BIeKf5t-.js +5 -0
- package/web/dist/assets/Diagram-CZM_R7MG.js +1 -0
- package/web/dist/assets/Diagram-vdpmp3xu.css +1 -0
- package/web/dist/assets/E67EBMDD--AucIw59.js +5 -0
- package/web/dist/assets/EFYWJBJK-CVywe_D5.js +1 -0
- package/web/dist/assets/EXE5EH6O-DR1IHCTr.js +4 -0
- package/web/dist/assets/FTXIJQGB-BZVuiBn1.js +1 -0
- package/web/dist/assets/G3MDBVQH-BZmnMkFw.js +1 -0
- package/web/dist/assets/G6GPDDNC-DEz8F449.js +2 -0
- package/web/dist/assets/G76NGGFM-CrB2V34K.js +1 -0
- package/web/dist/assets/GH6G3TJC-D3RTYEH4.js +2 -0
- package/web/dist/assets/HPNUA7RO-B19NeNOJ.js +1 -0
- package/web/dist/assets/HQRGC5D7-Dmpzq6Rn.js +4 -0
- package/web/dist/assets/IX6Z2TVR-DphRHnek.js +5 -0
- package/web/dist/assets/J77NQRCJ-B7AGcxvw.js +3 -0
- package/web/dist/assets/JAD36DTZ-B9-dbsS0.js +5 -0
- package/web/dist/assets/LF3NJQAX-koL91UZ9.js +2 -0
- package/web/dist/assets/LRZCOFJZ-Cdjasfuf.js +6 -0
- package/web/dist/assets/Library-TwvrwqSk.js +2 -0
- package/web/dist/assets/Lightbox-C8KNKwOA.css +1 -0
- package/web/dist/assets/Lightbox-Du56MXGX.js +1 -0
- package/web/dist/assets/MediaImage-Ds_JUx3a.js +4 -0
- package/web/dist/assets/N5NF2FGY-OuapYTfr.js +2 -0
- package/web/dist/assets/N7OWWQHY-BNLd-Q_U.js +2 -0
- package/web/dist/assets/NT5JY5WP-1lJM-aun.js +1 -0
- package/web/dist/assets/OT7W3RNY-jDL3drzX.js +4 -0
- package/web/dist/assets/P67P66DB-CE-opRb8.js +3 -0
- package/web/dist/assets/PFLLLM7K-DDJFgzW3.js +2 -0
- package/web/dist/assets/PUAMC4MJ-CtBm-WuU.js +12 -0
- package/web/dist/assets/PVFCHRLY-CG5JXv60.js +2 -0
- package/web/dist/assets/ProfilesDestination-rKNDpLjR.js +1 -0
- package/web/dist/assets/QQW2P742-BbcEkpa4.js +1 -0
- package/web/dist/assets/RVARI57O-CgA1WoRv.js +1 -0
- package/web/dist/assets/S63OEDPG-CKlhpvl2.js +3 -0
- package/web/dist/assets/SG5TVYLW-BBtiwXPL.js +2 -0
- package/web/dist/assets/TeamsPage-DtJylLrt.js +1 -0
- package/web/dist/assets/UGRSUGA2-urZ_hx83.js +5 -0
- package/web/dist/assets/V44WA6U7-DYfX3OlM.js +1 -0
- package/web/dist/assets/V67O4WWV-xYxJ00QW.js +1 -0
- package/web/dist/assets/VBUCM3YD-JHGjuJC_.js +1 -0
- package/web/dist/assets/VINGRCPA-DZuJa3SH.js +7 -0
- package/web/dist/assets/WL6DNKX4-BHqripdA.js +2 -0
- package/web/dist/assets/WQ63CJYP-D6G5frDY.js +2 -0
- package/web/dist/assets/Watchtower-Bmgdyfjb.js +2 -0
- package/web/dist/assets/XOYAOB3S-L-KeA1EF.js +13 -0
- package/web/dist/assets/Y5LQLG3M-dr2-erb8.js +2 -0
- package/web/dist/assets/YIK6JTN6--1t-Ud8k.js +2 -0
- package/web/dist/assets/artifacts-DU9uRgs1.js +1 -0
- package/web/dist/assets/index-C3ci5UtY.css +1 -0
- package/web/dist/assets/index-D-xG9nrc.js +36 -0
- package/web/dist/assets/lazy-f3CuUNJZ.js +43 -0
- package/web/dist/assets/live-7q72Lyj2.js +5 -0
- package/web/dist/assets/mermaid.worker-WDVRAh32.js +1 -0
- package/web/dist/assets/pane-layout-0RrLHGDr.js +1 -0
- package/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
- package/web/dist/assets/{renderer2d-CYag1CnR.js → renderer2d-hfZxM6Xl.js} +1 -1
- package/web/dist/assets/{renderer3d-BRB6rgDJ.js → renderer3d-Km9vipTM.js} +1 -1
- package/web/dist/assets/{safe-area-fOy0AOuG.js → safe-area-BAbgBiFk.js} +1 -1
- package/web/dist/assets/{silero-worker-DhlIHyD_.js → silero-worker-e802lB5T.js} +1 -1
- package/web/dist/assets/smart-turn-v3.2-cpu-WpeLRbPA.onnx +0 -0
- package/web/dist/assets/smart-turn-worker-DaVJPdvJ.js +11 -0
- package/web/dist/assets/source-BWlvaODa.js +1 -0
- package/web/dist/assets/toast-Cuu2K0hx.js +1 -0
- package/web/dist/assets/ui-CFB4wQfF.js +3 -0
- package/web/dist/index.html +8 -6
- package/web/src/voice/turn/LICENSE +28 -0
- package/web/dist/assets/ArtifactPage-Dq7VW-bU.js +0 -1
- package/web/dist/assets/ArtifactPane-DKwbMTX9.js +0 -1
- package/web/dist/assets/ArtifactWorkbench-vrgIfncX.js +0 -6
- package/web/dist/assets/Library-D6-Go6Cu.js +0 -2
- package/web/dist/assets/ProfilesDestination-BOML2Dgf.js +0 -1
- package/web/dist/assets/TeamsPage-CNBTE8gB.js +0 -1
- package/web/dist/assets/Watchtower-Dor1Ubjy.js +0 -2
- package/web/dist/assets/hub-CrbItiwP.js +0 -13
- package/web/dist/assets/index-82Ce0IAf.css +0 -1
- package/web/dist/assets/index-D9SP3_0z.js +0 -22
- package/web/dist/assets/live-BNJgy0vg.js +0 -5
- package/web/dist/assets/pane-layout-EdR1kRrG.js +0 -1
- package/web/dist/assets/preload-helper-DqrJTq0t.js +0 -1
- package/web/dist/assets/source-Wbq35qGp.js +0 -1
- package/web/dist/assets/ui-j5FFk90B.js +0 -3
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{d as e,i as t,n,r,t as i}from"./BGW36YJW-CJMhya8S.js";import{a,t as o}from"./DKTLEL5E-DciMwFJ1.js";import{_ as s,c,d as l,l as u,m as d,p as f,s as p,u as m}from"./EFYWJBJK-CVywe_D5.js";import{a as h,i as g,r as _}from"./VBUCM3YD-JHGjuJC_.js";import{n as v}from"./NT5JY5WP-1lJM-aun.js";import{a as y,t as b}from"./QQW2P742-BbcEkpa4.js";import{n as x}from"./6PIGVMFT-YXn9Hgnb.js";import{C as S,D as C,E as w,F as T,d as E,f as D,h as O,l as k,p as A,r as ee,s as te,t as j,u as M}from"./lazy-f3CuUNJZ.js";function N(e){let t=`TB`;for(let n of e)typeof n!=`string`&&n.stmt===`dir`&&(t=n.value);return t}function P(e,t,n){let r=[],i=[],a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Map,s=/* @__PURE__ */ 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=N(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 M(`Group nodes can only have label. Remove the additional description for node [${e.id}]`,`semantic`,{type:`state`});return{nodes:r,edges:i}}var F=class{type=`state`;rootDoc=[];states=/* @__PURE__ */ new Map;relations=[];classes=/* @__PURE__ */ new Map;links=/* @__PURE__ */ 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=/* @__PURE__ */ new Map,this.relations=[],this.classes=/* @__PURE__ */ 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=P(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
|
+
`)}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}},I=/* @__PURE__ */ `$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(`.`),L=/direction/gi,ne=/<<(?:fork|join|choice)>>|\[\[(?:fork|join|choice)\]\]/gi,re=/[\n\r\u2028\u2029]/g,R=/%%/g,z=/\{/g;function B(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 V(e){let t=e.length,n=[],r=[],i=[],a=[],o=0,s=0,c,l=B(L,e),u=B(ne,e),d=B(re,e),f=B(R,e),p=B(z,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},w=()=>{a.length>0&&(o=a.pop())},E=(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},D=n=>{let r=n;for(;r<t&&T(e.charCodeAt(r));)r++;return r},O=n=>{let r=n;for(;r<t&&j(e.charCodeAt(r));)r++;return r},k=n=>{let r=e.indexOf(`
|
|
3
|
+
`,n);return r===-1?t:r},A=e=>{let n=d(e);return n===-1?t:n},ee=e=>{if(e<m||e>h){let n=l(e),r=n===-1?t:A(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=D(e+9);if(t===e+9)continue;let n=E(`tb`,t)?0:E(`bt`,t)?1:E(`rl`,t)?2:E(`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},te=n=>{if(n<v||n>y){let r=u(n),i=r===-1?t:A(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},M=(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)},N=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 N(0)}let n=e.charCodeAt(s);switch(o){case 0:case 1:{let r=o===0,i=n|32;if(r){if(i===99&&E(`click`,s)&&!j(e.charCodeAt(s+5))){x(26,s,s+5);continue}if(i===104&&E(`href`,s)&&!j(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&&E(`default`,s)&&!j(e.charCodeAt(s+7))){x(33,s,s+7);continue}let t=ee(s);if(t!==-1){x(40+t,s,k(_[t]));continue}if(n===10){let t=s+1;for(;e.charCodeAt(t)===10;)t++;x(2,s,t);continue}if(T(n)){s=D(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=k(s);continue}if(i===115){if(r&&E(`scale`,s)){let e=D(s+5);if(e>s+5){x(7,s,e),C(5);continue}}if(E(`style`,s)){let e=D(s+5);if(e>s+5){x(34,s,e),C(13);continue}}if(E(`state`,s)){let e=D(s+5);if(e>s+5){s=e,C(2);continue}if(r&&E(`diagram`,s+5)){let t=E(`-v2`,s+12)?s+15:s+12;if(e=D(t),e>t){x(3,s,e);continue}}}}else if(i===99){if(E(`class`,s)){let e=E(`def`,s+5),t=e?s+8:s+5,n=D(t);if(n>t){x(e?29:37,s,n),C(e?9:11);continue}}}else if(i===97&&r&&(E(`acctitle`,s)||E(`accdescr`,s))){let t=(e.charCodeAt(s+3)|32)==116,n=D(s+8),r=e.charCodeAt(n);if(r===58){x(t?21:23,s,D(n+1)),C(t?6:7);continue}if(r===123&&!t){s=D(n+1),C(8);continue}}if(r){if(n===123){x(10,s,s+1),C(1);continue}}else{let e=ee(s);if(e!==-1){x(40+e,s,k(_[e]));continue}if(n===125){x(11,s,s+1),w();continue}if(n===10){s++;continue}}if(i===110&&E(`note`,s)){let e=D(s+4);if(e>s+4){x(19,s,e),C(15);continue}}if(r&&i===104&&E(`hide empty description`,s)&&!j(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){M(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 N(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=k(s);continue}let r=te(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)),w();continue}if(n===34){s++,C(3);continue}let i=n===10?D(s):s;if(E(`as`,i)){let e=D(i+2);if(e>i+2){x(13,s,e),C(4);continue}}if(n===10){s++,w();continue}if(n===123){x(10,s,s+1),w(),C(1);continue}if(j(n)){let t=O(s),n=D(t);if(n>t&&j(e.charCodeAt(n))){let t=p(n+1);if(t!==-1&&t<A(n))return c=`Error: State name must be a single word. Found: "${e.slice(s,t+1).trim()}"`,N(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++,w();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++}M(s,n)&&w();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=D(s);if(r>s&&E(`width`,r)&&!j(e.charCodeAt(r+5))){s=r+5,w();continue}return N(1)}case 6:x(22,s,k(s)),w();continue;case 7:x(24,s,k(s)),w();continue;case 8:{if(n===125){s++,w();continue}let r=e.indexOf(`}`,s);x(25,s,r===-1?t:r);continue}case 9:{let e=E(`default`,s)&&D(s+7)>s+7,t=e?s+7:O(s),n=D(t);if(t===s||n===t)return N(1);x(e?31:30,s,n),w(),C(10);continue}case 10:x(32,s,k(s)),w();continue;case 11:{let t=O(s);if(t===s)return N(1);for(;e.charCodeAt(t)===44;){let e=D(t+1),n=O(e);if(n===e)break;t=n}x(38,s,t),w(),C(12);continue}case 12:x(39,s,k(s)),w();continue;case 13:{let n=s;for(;n<t&&(j(e.charCodeAt(n))||e.charCodeAt(n)===44);)n++;let r=D(n);if(n===s||r===n)return N(1);x(35,s,r),w(),C(14);continue}case 14:x(36,s,k(s)),w();continue;case 15:if(E(`left of`,s)&&!j(e.charCodeAt(s+7))){x(46,s,s+7),w(),C(16);continue}if(E(`right of`,s)&&!j(e.charCodeAt(s+8))){x(47,s,s+8),w(),C(16);continue}if(n===34){s++,w(),C(18);continue}return N(1);case 16:{let n=D(s),r=n;for(;r<t;){let t=e.charCodeAt(r);if(t===58||t===45||T(t))break;r++}if(r===n)return N(1);M(s,r)&&(w(),C(17));continue}case 17:{let n=D(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),w();continue}}let r=e.indexOf(`
|
|
4
|
+
`,s),i=-1;for(;r!==-1&&(i=D(r),!E(`end note`,i)||j(e.charCodeAt(i+8)));)r=e.indexOf(`
|
|
5
|
+
`,i);if(r===-1)return N(1);S(20,e.slice(s,i).trim(),s,i+8),w();continue}case 18:{let r=D(s);if(E(`as`,r)){x(13,s,D(r+2)),w(),C(19);continue}if(n===34){s++;continue}let i=e.indexOf(`"`,s);x(20,s,i===-1?t:i);continue}case 19:M(s,k(s))&&w();continue}}}var H=[`TB`,`BT`,`RL`,`LR`],U=`'NL', 'ID', 'HIDE_EMPTY', 'scale', 'COMPOSIT_STATE', 'STATE_DESCR', 'FORK', 'JOIN', 'CHOICE', 'CONCURRENT', 'note', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'CLICK', 'classDef', 'style', 'class', 'direction_tb', 'direction_bt', 'direction_rl', 'direction_lr', 'EDGE_STATE'`;function W(e,t){let{types:n,texts:r,starts:i,error:a}=V(e),o=0,s=t=>{let r=n[o];throw r===1?a===void 0?S(`state`,e,i[o],``,!0):new M(a,`syntax`,{type:`state`,...A(e,i[o])}):S(`state`,e,i[o],`Expecting ${t}, got '${I[r]}'`)},c=e=>(n[o]!==e&&s(`'${I[e]}'`),r[o++]),l=()=>{let e=n[o];e!==14&&e!==44&&s(`'ID', 'EDGE_STATE'`);let t=r[o++].trim();return n[o]===45?(o++,{stmt:`state`,id:t,classes:[c(14).trim()],type:`default`,description:``}):{stmt:`state`,id:t,type:`default`,description:``}};for(;n[o]===2;)o++;n[o]!==3&&s(`'NL', 'SD'`),o++;let u=[],d=[],f=e=>{e!==`nl`&&u.push(e)},p=(e,t)=>{o++;let n=[];u.push({stmt:`state`,id:e,type:`default`,description:t,doc:n}),d.push(u),u=n};for(;;){let e=n[o];switch(e){case 2:o++;break;case 14:case 44:{let e=l();if(n[o]===4)e.description=t.trimColon(r[o++]),f(e);else if(n[o]===5){o++;let i=l();n[o]===4?f({stmt:`relation`,state1:e,state2:i,description:t.trimColon(r[o++])}):f({stmt:`relation`,state1:e,state2:i})}else f(e);break}case 6:f(r[o++]);break;case 7:o++,c(8),f(r[o-2]);break;case 9:n[o+1]===10?p(r[o++],``):f(r[o++]);break;case 12:{let e=r[o++];c(13);let t=c(14);if(n[o]===10)p(t,e);else if(t.includes(`:`)){let n=t.split(`:`);f({stmt:`state`,id:n[0],type:`default`,description:[e.trim(),n[1]]})}else f({stmt:`state`,id:t,type:`default`,description:e.trim()});break}case 15:f({stmt:`state`,id:r[o++],type:`fork`});break;case 16:f({stmt:`state`,id:r[o++],type:`join`});break;case 17:f({stmt:`state`,id:r[o++],type:`choice`});break;case 18:o++,f({stmt:`state`,id:t.getDividerId(),type:`divider`});break;case 19:{let e=r[o++];if(n[o]===46||n[o]===47){let e=r[o++].trim();f({stmt:`state`,id:c(14).trim(),note:{position:e,text:c(20).trim()}})}else n[o]!==20&&s(`'NOTE_TEXT', 'left_of', 'right_of'`),o++,c(13),c(14),f(e);break}case 40:case 41:case 42:case 43:{let n=H[e-40];o++,t.setDirection(n),f({stmt:`dir`,value:n});break}case 21:{o++;let e=c(22).trim();t.setAccTitle(e),f(e);break}case 23:{o++;let e=c(24).trim();t.setAccDescription(e),f(e);break}case 25:{let e=r[o++].trim();t.setAccDescription(e),f(e);break}case 26:{o++;let e=l(),t,i=``;n[o]===28?(o++,t=c(27)):(n[o]!==27&&s(`'STRING', 'HREF'`),t=r[o++],i=c(27)),c(2),f({stmt:`click`,id:e,url:t,tooltip:i});break}case 29:o++,f({stmt:`classDef`,id:c(30).trim(),classes:c(32).trim()});break;case 34:o++,f({stmt:`style`,id:c(35).trim(),styleClass:c(36).trim()});break;case 37:o++,f({stmt:`applyClass`,id:c(38).trim(),styleClass:c(39).trim()});break;case 11:d.length===0&&s(`'$end', ${U}`),o++,u=d.pop();break;case 0:return d.length>0&&s(`'STRUCT_STOP', ${U}`),t.setRootDoc(u),u;default:s(d.length>0?`'STRUCT_STOP', ${U}`:`'$end', ${U}`)}}}var ie=40,ae=16,oe=44,G=16,se=10,ce=16,le=10,ue=26,de=8,fe=320,pe=10,me=8,he=` fill="var(--_s)" stroke="var(--_b)"`,ge=` fill="none" stroke="var(--_b)"`,_e=/(?:^| )statediagram-(?:state|cluster-alt|cluster|note)(?= |$)/g,ve=/* @__PURE__ */ new Map([[`rectWithTitle`,1],[`stateStart`,2],[`stateEnd`,3],[`choice`,4],[`fork`,5],[`join`,6],[`note`,7],[`divider`,10]]),ye=[`pele-node pele-state`,`pele-node pele-state`,`pele-node pele-state-start`,`pele-node pele-state-end`,`pele-node pele-state-choice`,`pele-node pele-state-fork`,`pele-node pele-state-join`,`pele-note`,`pele-cluster pele-state-composite`];function be(e){return e===`TB`||e===`BT`}function xe(e,t,n){let r=e.state?.[t];return typeof r==`number`&&r>0?Math.min(r,2e3):n}function Se(e){let t=0,n=e.length;for(;t<n&&e.charCodeAt(t)===34;)t++;for(;n>t&&e.charCodeAt(n-1)===34;)n--;return e.slice(t,n)}function Ce(e,t,n){return e<t?t:e>n?n:e}function we(e,t,n,r,i){return`<rect x="${w(e)}" y="${w(t)}" width="${w(n)}" height="${w(r)}"${i}/>`}function Te(e,t,n,r){let i=h(0,0);return i.isGroup=!0,i.dir=e,i.padX=t,i.padTop=n,i.padBottom=r,i}function K(e,t,n){return a(e.direction)?o(n,r=>q(e,t,n,r)):q(e,t,n,!1)}function q(a,o,S,T){let A=a.graph,j=o.flowchart?.curve,M=S.fontSize??16,N=Math.round(M*.875),P=S.measurer??te(S.fontFamily,S.fontFamilyMono),F=xe(o,`wrappingWidth`,200),I=S.padding??8,L=S.icons,ne=T?`TB`:g(a.direction),re=t(void 0,!1,P,M,0),R=(e,n,r,i=0)=>t(e,!0,P,n,r,i),z=/* @__PURE__ */ new Map,B=[],V=[],H=(e,t,n)=>(B.push({node:e,kind:t,style:void 0,label:re,lines:[],w:0,h:0,titleH:0}),n&&V.push(n),B.length-1);for(let e of A.nodes){if(e.shape===`noteGroup`)continue;let t=e.isGroup?e.shape===`divider`?9:8:ve.get(e.shape)??0;z.set(e.id,H(e,t,void 0))}let U=B.length,W=[];for(let e=0;e<U;e++){let t=B[e].node.parentId,n=t===void 0?void 0:z.get(t);W.push(n!==void 0&&n!==e&&B[n].node.isGroup?n:-1)}{let e=[];for(let t=0;t<U;t++)e.push([]);let t=[],n=new Uint8Array(U);for(let r=0;r<U;r++)W[r]===-1?(n[r]=1,t.push(r)):e[W[r]].push(r);let r=0,i=()=>{for(;r<t.length;r++)for(let i of e[t[r]])n[i]||(n[i]=1,t.push(i))};i();let a=new Int32Array(U).fill(-1);for(let e=0;e<U;e++){if(n[e])continue;let r=e;for(;a[r]!==e;)a[r]=e,r=W[r];W[r]=-1,n[r]=1,t.push(r),i()}}let K=new Int32Array(U).fill(-1);for(let e=0;e<U;e++){let t=B[e].node.noteFor,n=t===void 0?void 0:z.get(t);n!==void 0&&(K[e]=n,W[e]=W[n])}let q=e=>g(B[e].node.dir),J=e=>be(W[e]===-1?ne:q(W[e])),Y=new Int32Array(U),De=new Uint8Array(U),X=Array(U).fill(1/0),Oe=0,ke=new Int32Array(2*U);for(let e of A.edges){let t=z.get(e.start),n=z.get(e.end);if(t!==void 0&&n!==void 0){if(e.pattern===`dashed`){De[B[t].kind===7?n:t]=1;continue}Y[t]=Math.max(Y[t],++ke[2*t]),Y[n]=Math.max(Y[n],++ke[2*n+1]),X[t]===1/0&&(X[t]=Oe++),X[n]===1/0&&(X[n]=Oe++)}}for(let e=0;e<U;e++){let t=B[e],n=t.node,i=r(n.cssStyles.length>0?n.cssCompiledStyles.concat(n.cssStyles):n.cssCompiledStyles),a=+!!i.bold|(i.italic?2:0),o=i.fontSize??M;t.style=i;let s;switch(t.kind){case 8:t.label=R(n.label,o,4e3,a),t.titleH=t.label.height>0?t.label.height+12:0,s=Te(q(e),G,t.titleH+G,G),s.minW=t.label.width+2*G;break;case 9:s=Te(q(e),se,se,se);break;case 2:t.w=t.h=14;break;case 3:t.w=t.h=18;break;case 4:t.w=t.h=30;break;case 5:case 6:{let n=Ce(40*Y[e]+16,72,320);t.w=J(e)?n:me,t.h=J(e)?me:n;break}case 10:break;case 7:t.label=R(n.label,N,Math.max(F,fe)),t.w=t.label.width+24,t.h=t.label.height+16;break;default:{t.label=R(n.label,o,F,a);let e=t.label.width,r=t.label.height+2*le;if(t.kind===1){r+=14;for(let i of n.description){let n=R(i===``?` `:i,N,F,a);t.lines.push(n),n.width>e&&(e=n.width),r+=n.height}}t.w=Math.max(e+2*ce,56),t.h=r}}s??=h(t.w,t.h),(t.kind===0||t.kind===1)&&(s.span=(J(e)?t.w:t.h)-24),V.push(s)}let Z=[],Ae=[],je=[],Me=new Int32Array(U),Ne=new Float64Array(U),Pe=new Float64Array(U),Fe=/* @__PURE__ */ new Map,Ie=(e,t)=>{if(!V[e].isGroup)return!1;for(let n=W[t];n!==-1;n=W[n])if(n===e)return!0;return!1},Le=(e,t)=>(Fe.set(Z.length,e),X.push(t?-1:1/0),H(void 0,10,h(0,0,e)));for(let e of A.edges){let t=z.get(e.start),n=z.get(e.end);if(t===void 0||n===void 0)continue;let r=R(e.label,N,F),i=r.width>0?r.width+12:0;t===n?(Me[t]++,Ne[t]=Math.max(Ne[t],i),Pe[t]+=r.height):Ie(t,n)?t=Le(t,!0):Ie(n,t)&&(n=Le(n,!1)),je.push(e),Ae.push(r),Z.push({src:t,dst:n,minlen:1,labelW:i,labelH:r.height>0?r.height+4:0,route:[],labelX:0,labelY:0})}for(let e=0;e<U;e++){if(K[e]!==-1)continue;let t=V[e],n=0;if(Me[e]>0){let r=ue+(Me[e]-1)*8;n=J(e)?r+Ne[e]:r*.75+4+Pe[e],t.isGroup||(J(e)?(t.w+=2*n,t.h=Math.max(t.h,Pe[e])):(t.h+=2*n,t.w=Math.max(t.w,Ne[e])),n=0)}if(!De[e]&&n===0){t.parent=W[e];continue}let r=J(e)?Te(`LR`,n,0,0):Te(`TB`,0,n,n);r.parent=W[e],X.push(X[e]),V[e].parent=H(void 0,10,r)}for(let e=0;e<U;e++)K[e]!==-1&&(V[e].parent=V[K[e]].parent);{let e=[];for(let t=0;t<V.length;t++)e.push([]);let t=[];for(let n=0;n<V.length;n++){let r=V[n].parent;r>=0?e[r].push(n):t.push(n)}let n=e=>B[e].kind===2?0:1,r=(e,t)=>n(e)-n(t)||(X[e]===X[t]?0:X[e]<X[t]?-1:1)||e-t,i=0,a=t.sort(r).reverse();for(;a.length>0;){let t=a.pop();V[t].seq=i++;let n=e[t].sort(r);for(let e=n.length-1;e>=0;e--)a.push(n[e])}}let Re=_(V,Z,ne,{nodeSep:xe(o,`nodeSpacing`,ie),edgeSep:ae,rankSep:xe(o,`rankSpacing`,oe),portSep:20,tracks:j===`step`||j===`stepBefore`||j===`stepAfter`,straight:j===`linear`,headRoom:p(`arrow_point`)}),ze=Math.ceil(Re.width+2*I),Be=Math.ceil(Re.height+2*I),Ve=[],He=/* @__PURE__ */ new Map;for(let e of Z){let t=e.route;for(let e=3;e<t.length-3;e+=3){let n=Math.round(t[e+1]),r=He.get(n);r?r.push(t[e]):He.set(n,[t[e]])}}let Ue=[];for(let e=0;e<V.length;e++)Ue.push([]);let Q=[];for(let e=0;e<V.length;e++){let t=V[e].parent;t>=0?Ue[t].push(e):Q.push(e)}let We=Q.slice();for(let e=0;e<Q.length;e++)for(let t of Ue[Q[e]])Q.push(t);let Ge=``,Ke=[],qe=``,Je=``,Ye=``,Xe=(e,t,n,r,i)=>{let a=e.filter(e=>B[e].kind===9);if(a.length<2)return;let o=(e,t)=>t?V[e].x-V[e].w/2:V[e].y-V[e].h/2,s=(e,t)=>t?V[e].x+V[e].w/2:V[e].y+V[e].h/2;for(let e of[!0,!1]){let c=a.slice().sort((t,n)=>o(t,e)-o(n,e)||t-n),l=!0;for(let t=1;t<c.length;t++)s(c[t-1],e)>o(c[t],e)+.5&&(l=!1);if(l){for(let a=1;a<c.length;a++){let l=w((s(c[a-1],e)+o(c[a],e))/2+I);qe+=`<path class="pele-divider" d="M${e?`${l},${w(n)}V${w(i)}`:`${w(t)},${l}H${w(r)}`}"/>`}return}}for(let e of a){let t=V[e];qe+=we(t.x-t.w/2+I,t.y-t.h/2+I,t.w,t.h,` class="pele-divider" rx="${pe}"`)}};Xe(We,I/2,I/2,ze-I/2,Be-I/2);for(let e of Q){let t=B[e],r=t.node,o=t.style;if(r===void 0||o===void 0||t.kind>=9)continue;let s=V[e],c=s.x+I,l=s.y+I,u=t.w,d=t.h,f=ee(o),p=` class="pele-label"${f}${o.text}`,m;switch(t.kind){case 8:{let n=c-s.w/2,r=l-s.h/2;k(o.shape)&&Ke.push({box:[n,r,n+s.w,r+s.h],shape:o.shape}),m=we(n,r,s.w,s.h,` rx="${pe}" fill="var(--_a)"${i(o.shape)?``:` fill-opacity="0.5"`} stroke="var(--_b)"${o.shape}`),t.titleH>0&&(m+=`<path d="M${w(n)},${w(r+t.titleH)}H${w(n+s.w)}"${ge}${o.line}/>`+O(t.label,Ee(s,t.label.width,He)+I,r+t.titleH/2,` class="pele-cluster-label"${f}${o.text}`,L)),Xe(Ue[e],n,r+t.titleH,n+s.w,r+s.h);break}case 2:m=`<circle r="7" fill="var(--_l)"${o.shape}/>`;break;case 3:m=`<circle r="8.5" fill="var(--_bg)" stroke="var(--_l)"${o.line}/><circle r="5" fill="var(--_l)"${o.shape}/>`;break;case 4:m=`<polygon points="0,${w(-d/2)} ${w(u/2)},0 0,${w(d/2)} ${w(-u/2)},0"${he}${o.shape}/>`;break;case 5:case 6:m=we(-u/2,-d/2,u,d,` rx="2" fill="var(--_l)"${o.shape}`);break;case 7:{let e=w(u/2),n=w(d/2),r=w(u/2-de),i=w(de-d/2);m=`<path d="M-${e},-${n}H${r}L${e},${i}V${n}H-${e}Z" fill="var(--_bg)" stroke="var(--_b)"/><path d="M${r},-${n}V${i}H${e}"${ge}/>`+O(t.label,0,0,` class="pele-label" font-size="${N}" fill="var(--_m)"`,L);break}default:{if(m=we(-u/2,-d/2,u,d,` rx="${w(Math.min(pe,d/2))}"${he}${o.shape}`),t.kind===0){m+=O(t.label,0,0,p,L);break}let e=le-d/2+t.label.height;m+=`<path d="M${w(-u/2)},${w(e+6)}H${w(u/2)}"${ge}${o.line}/>`+O(t.label,0,e-t.label.height/2,p,L),e+=14;for(let n of t.lines)m+=O(n,0,e+n.height/2,` class="pele-state-description" font-size="${N}"${f}${o.text}`,L),e+=n.height}}let h=a.links.get(r.id);if(h){let e=C(Se(h.tooltip));e&&(m=`<title>${E(e)}</title>`+m),m=y(m,b(Se(h.url)),r.id,Ve,S,` target="_blank"`)}let g=`<g class="${ye[t.kind]}${n(r.cssClasses.replace(_e,``))}" data-id="${D(r.id)}"`;t.kind===8?Ge+=`${g}>${m}</g>`:t.kind===7?Ye+=`${g} transform="translate(${w(c)},${w(l)})">${m}</g>`:Je+=`${g} transform="translate(${w(c)},${w(l)})">${m}</g>`}let Ze=(e,t,n)=>{let r=V[n];if(r.isGroup)return;let i=B[n],a=i.kind===5||i.kind===6,o=t===0?3:t-3;for(let n of[1,0]){let s=n?r.h:r.w,c=n?i.h:i.w,l=n?i.w:i.h,u=(n?r.y:r.x)+I,d=(n?r.x:r.y)+I,f=e[t+n]-u;if(!(Math.abs(Math.abs(f)-s/2)>=.5)){e[t+n]-=Math.sign(f)*(s-c)/2,a&&l>c&&(e[t+1-n]=Ce(e[o+1-n],d-l/2+6,d+l/2-6));return}}},Qe=f();for(let e=0;e<Z.length;e++){let t=Z[e];t.src===t.dst||t.route.length<6||je[e].pattern===`dashed`||Qe.add(t.dst,x(t.route,t.route.length-3,V[t.dst]),`arrow_point`)}let $e=``,et=``,tt=``,nt=new Int32Array(U),rt=new Float64Array(U);for(let e=0;e<Z.length;e++){let t=Z[e],n=je[e],r=Ae[e],i=n.pattern===`dashed`,a=i?`none`:`arrow_point`,o;if(t.src===t.dst){let e=V[t.src],n=B[t.src],i=nt[t.src]++,s=J(t.src),c=e.isGroup?e.w:n.w,l=e.isGroup?e.h:n.h,u=(s?c:l)/2,d=Math.max(Math.min((s?l:c)/2-4,8+i*6),2),f=ue+i*8,m=p(a)/(Math.hypot(f,d)||1),h=(t,n)=>e.x+I+(s?u+t:-n),g=(t,n)=>e.y+I+(s?n:u+t),_=(e,t)=>`${w(h(e,t))},${w(g(e,t))}`;o={d:`M${_(0,-d)}C${_(f,-2*d)} ${_(f,2*d)} ${_(f*m,d+d*m)}`,sx:0,sy:0,sdx:0,sdy:0,ex:h(0,d),ey:g(0,d),edx:h(-f,-d)-h(0,0),edy:g(-f,-d)-g(0,0)};let v=Math.hypot(o.edx,o.edy)||1;o.edx/=v,o.edy/=v;let y=ue+(Me[t.src]-1)*8,b=rt[t.src]+r.height/2;rt[t.src]+=r.height,t.labelX=s?e.x+u+y+4+t.labelW/2:e.x,t.labelY=s?e.y-Pe[t.src]/2+b:e.y+u+y*.75+4+b}else{let n=t.route.slice(),r=Qe.of(t.src,x(n,0,V[t.src])),i=Qe.of(t.dst,x(n,n.length-3,V[t.dst]));for(let e=0;e<n.length;e+=3)n[e]+=I,n[e+1]+=I;Ze(n,0,t.src),Ze(n,n.length-3,t.dst);let s=Fe.get(e);if(s!==void 0&&n.length>=6){let e=V[s],r=B[t.src].kind===10,i=r?0:n.length-3,a=(e.dir===`TB`||e.dir===`LR`)===r,o=be(e.dir)?[n[i],e.y+I+(a?B[s].titleH-e.h/2:e.h/2),0]:[e.x+I+(a?-e.w/2:e.w/2),n[i+1],1];n=r?o.concat(n):n.concat(o)}o=l(n,typeof j==`string`?j:void 0,0,p(a),r,i)}let c=d(o.d,[o.ex,o.ey],Ke,``,o.tokens);c===``&&($e+=s(o,`none`,a));let f=i?`pele-note-edge" stroke="${c||`var(--_b)`}" stroke-dasharray="3 4`:c?`pele-transition" stroke="${c}`:`pele-transition`;if(et+=`<g class="pele-edge ${f}" data-id="${D(n.id)}"><path d="${o.d}"/>`+m(a,o.ex,o.ey,o.edx,o.edy,c||`var(--_l)`)+`</g>`,r.width>0){let e=t.labelX+I,i=t.labelY+I;tt+=u(n.id,r,e,i,``,L)}}let $=v(a.title,P,M,I,ze,Be,(Ge?`<g class="pele-clusters">${Ge}</g>`:``)+(qe?`<g class="pele-dividers" stroke-dasharray="4 4"${ge}>${qe}</g>`:``)+c($e)+(et?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${et}</g>`:``)+(tt?`<g class="pele-edge-labels" font-size="${N}">${tt}</g>`:``)+`<g class="pele-nodes">${Je}${Ye}</g>`);return{svg:e(`state`,$.width,$.height,M,S,a,$.content),width:$.width,height:$.height,links:Ve}}function Ee(e,t,n){let r=n.get(Math.round(e.y-e.h/2));if(r===void 0||t===0)return e.x;let i=e.x-e.w/2,a=t/2,o=e.x,s=-1;for(let t of[e.x,i+G+a,i+e.w-G-a]){let n=1/0;for(let o of r)o>i&&o<i+e.w&&(n=Math.min(n,Math.abs(o-t)-a));if(n>=6)return t;n>s+.5&&(s=n,o=t)}return o}var J={type:`state`,math:!0,parse(e,t,n){let r=new F;return n&&(r.title=n),W(e,r),r},render:K};export{J as state};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{d as e,f as t,i as n,n as r,o as i,p as a,r as o,s,t as c,u as l}from"./BGW36YJW-CJMhya8S.js";import{a as u,t as d}from"./DKTLEL5E-DciMwFJ1.js";import{c as f,d as p,g as m,h,i as g,l as _,o as v}from"./EFYWJBJK-CVywe_D5.js";import{a as y,i as b,r as x,t as S}from"./VBUCM3YD-JHGjuJC_.js";import{t as ee}from"./NT5JY5WP-1lJM-aun.js";import{n as te,r as ne}from"./4LWW3ZNH-CUiYeygH.js";import{i as re,n as ie}from"./QQW2P742-BbcEkpa4.js";import{t as ae}from"./G3MDBVQH-BZmnMkFw.js";import{C,D as oe,E as w,F as T,N as E,c as se,d as D,f as O,h as k,k as ce,l as le,m as A,n as ue,o as j,r as de,s as fe,t as M,w as N}from"./lazy-f3CuUNJZ.js";function P(e){return e===`markdown`||e===`string`||e===`text`?e:`markdown`}var F=class{type=`er`;direction=`TB`;entities=/* @__PURE__ */ new Map;relationships=[];classes=/* @__PURE__ */ new Map;subgraphs=[];title;accTitle;accDescr;subgraphLookup=/* @__PURE__ */ new Map;claimed=/* @__PURE__ */ new Set;addEntity(e,t=``){let n=this.entities.get(e);return n===void 0?(n={id:`entity-${e}-${this.entities.size}`,label:e,alias:t,attributes:[],cssClasses:`default`,cssStyles:[]},this.entities.set(e,n)):!n.alias&&t&&(n.alias=t),n}addAttributes(e,t){let n=this.addEntity(e);for(let e=t.length-1;e>=0;e--){let r=t[e];r.keys??=[],r.comment??=``,n.attributes.push(r)}}addRelationship(e,t,n,r){let i=this.subgraphLookup.has(e)?e:this.addEntity(e).id,a=this.subgraphLookup.has(n)?n:this.addEntity(n).id;this.relationships.push({entityA:i,roleA:t,entityB:a,relSpec:r})}setDirection(e){this.direction=e}addCssStyles(e,t){if(t)for(let n of e){let e=this.entities.get(n);if(e)for(let n of t)e.cssStyles.push(n);let r=this.subgraphLookup.get(n);if(r)for(let e of t)r.cssStyles.push(e)}}addClass(e,t){for(let n of e){let e=this.classes.get(n);if(e===void 0&&(e={id:n,styles:[],textStyles:[]},this.classes.set(n,e)),t)for(let n of t)n.includes(`color`)&&e.textStyles.push(n.replace(`fill`,`bgFill`)),e.styles.push(n)}}setClass(e,t){for(let n of e){let e=this.entities.get(n);if(e)for(let n of t)e.cssClasses+=` `+n;let r=this.subgraphLookup.get(n);if(r)for(let e of t)r.classes.push(e)}}addSubGraph(e,t,n){let r=e.text.trim(),i=/* @__PURE__ */ new Set,a=[],o;for(let e of t.flat()){if(typeof e!=`string`){e?.stmt===`dir`&&(o=e.value);continue}let t=e.trim();t===``||i.has(t)||(i.add(t),this.claimed.has(e)||a.push(e))}for(let e of a)this.claimed.add(e);let s={id:r,nodes:a,title:(n.text||``).trim(),classes:[],cssStyles:[],dir:o,labelType:P(n.type)};return this.subgraphs.push(s),this.subgraphLookup.set(r,s),r}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
2
|
+
`)}},I=/* @__PURE__ */ `$end.INVALID.ER_DIAGRAM.EOF.NEWLINE.COLON.STYLE_SEPARATOR.BLOCK_START.BLOCK_STOP.SQS.SQE.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.END.SUBGRAPH.direction_tb.direction_bt.direction_rl.direction_lr.CLASSDEF.UNICODE_TEXT.STYLE_TEXT.COMMA.CLASS.STYLE.SEMI.NUM.BRKT.ENTITY_NAME.DECIMAL_NUM.ENTITY_ONE.ATTRIBUTE_WORD.ATTRIBUTE_KEY.COMMENT.ZERO_OR_ONE.ZERO_OR_MORE.ONE_OR_MORE.ONLY_ONE.MD_PARENT.NON_IDENTIFYING.IDENTIFYING.WORD.CHAR`.split(`.`),L=1,R=2,z=4,B=8,V=/* @__PURE__ */ new Uint8Array(128);for(let e=0;e<128;e++){let t=e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95,n=t&&(e<48||e>57);t&&(V[e]|=L|R|B),n&&(V[e]|=z)}for(let e of`-*`)V[e.charCodeAt(0)]|=L|R|B;V[46]|=L|B,V[42]|=z;for(let e of`[](),`)V[e.charCodeAt(0)]|=B;var H=/accTitle\s*:\s*/iy,U=/accDescr\s*:\s*/iy,pe=/accDescr\s*\{\s*/iy,me=[/.*direction\s+TB[^\n]*/iy,/.*direction\s+BT[^\n]*/iy,/.*direction\s+RL[^\n]*/iy,/.*direction\s+LR[^\n]*/iy],W=/direction/gi,he=/[\n\r\u2028\u2029]/g;function G(e,t){return e<128?(V[e]&t)!==0:e>=192||e===181}function ge(e){let t=e.length,n=[],r=[],i=[],a=0,o=0,s=-2,c=0,l=-1,u=-2,d=-1,f=-1,p=-1,m=(t,a,s)=>{n.push(t),r.push(e.slice(a,s)),i.push(a),o=s},h=(t,n)=>(t.lastIndex=n,t.test(e)?t.lastIndex:-1),g=t=>{for(let n=0;n<t.length;n++){let r=t.charCodeAt(n),i=e.charCodeAt(o+n);if(i!==r&&(r<97||r>122||(i|32)!==r))return!1}return!0},_=t=>g(t)&&!M(e.charCodeAt(o+t.length)),v=t=>{let n=e.charCodeAt(t);return n>=65&&n<=90?n+32:n},y=n=>(he.lastIndex=n,he.test(e)?he.lastIndex-1:t),b=t=>{for(;E(e.charCodeAt(t));)t++;return t},x=()=>{if(s===-1||s<o&&(W.lastIndex=o,s=W.test(e)?W.lastIndex-9:-1,s===-1)||o<c||(l<o&&(l=y(o)),s>=l))return!1;for(let e=0;e<4;e++){let t=h(me[e],o);if(t>=0)return m(18+e,o,t),!0}return c=l,!1},S=()=>{let t=e.indexOf(`"`,o+1);if(t===-1){m(45,o,o+1);return}let n=t>o+1;for(let r=o+1;n&&r<t;r++){let t=e.charCodeAt(r);(t===37||t===92||t===13||t===10||t===11||t===8)&&(n=!1)}m(n?31:44,o,t+1)},ee=t=>{let n=e.charCodeAt(o+1);if(n===43&&(t===49||t===48)){m(t===49?39:38,o,o+2);return}let r=b(o+1);if(e.charCodeAt(r)===46&&E(e.charCodeAt(r+1)))m(32,o,b(r+2));else{if(t===49){if(T(n)){let t=o+2;for(;T(e.charCodeAt(t));)t++;let n=e.charCodeAt(t);if(M(n)||n===34||n===39){m(40,o,o+1);return}}else if(n===45||n===46){let t=e.charCodeAt(o+2);if(t===45||t===46){m(40,o,o+1);return}}if(!M(n)){m(33,o,o+1);return}}m(29,o,r)}},te=t=>{let n=e.charCodeAt(o+1);switch(t){case 101:if(_(`erdiagram`))m(2,o,o+9);else if(_(`end`)){let t=o+3;for(;T(e.charCodeAt(t));)t++;m(16,o,t)}else return!1;return!0;case 115:if(_(`style`))a=6,m(27,o,o+5);else if(_(`subgraph`))m(17,o,o+8);else return!1;return!0;case 99:if(_(`classdef`))a=6,m(22,o,o+8);else if(_(`class`))m(26,o,o+5);else return!1;return!0;case 111:if(_(`one or zero`))m(37,o,o+11);else if(_(`one or more`)||_(`one or many`))m(39,o,o+11);else if(_(`one`))m(40,o,o+3);else if(_(`only one`))m(40,o,o+8);else if(n===124)m(37,o,o+2);else if(n===123)m(38,o,o+2);else if(_(`optionally to`))m(42,o,o+13);else return!1;return!0;case 122:if(_(`zero or one`))m(37,o,o+11);else if(_(`zero or more`)||_(`zero or many`))m(38,o,o+12);else return!1;return!0;case 109:if(g(`many(0)`))m(38,o,o+7);else if(g(`many(1)`))m(39,o,o+7);else if(_(`many`))m(38,o,o+4);else return!1;return!0;case 116:return _(`to`)?(m(43,o,o+2),!0):!1;case 117:return n!==46&&n!==45&&n!==124?!1:(m(41,o,o+1),!0);case 124:if(v(o+1)===111&&!M(e.charCodeAt(o+2)))m(37,o,o+2);else if(n===124)m(40,o,o+2);else if(n===123)m(39,o,o+2);else return!1;return!0;case 125:if(v(o+1)===111&&!M(e.charCodeAt(o+2)))m(38,o,o+2);else if(n===124)m(39,o,o+2);else return!1;return!0;case 46:return n!==46&&n!==45?!1:(m(42,o,o+2),!0);case 45:if(n===45)m(43,o,o+2);else if(n===46)m(42,o,o+2);else return!1;return!0}return!1},ne=t=>{let n;if((t===97||t===65)&&g(`acc`)){if((n=h(H,o))>=0){a=3,m(11,o,n);return}if((n=h(U,o))>=0){a=4,m(13,o,n);return}if((n=h(pe,o))>=0){a=5,o=n;return}}if(!x()){switch(t){case 32:case 9:case 13:n=o+1;for(let t=e.charCodeAt(n);t===32||t===9||t===13;t=e.charCodeAt(n))n++;o=n;return;case 10:for(n=o+1;e.charCodeAt(n)===10;)n++;m(4,o,n);return;case 34:S();return;case 123:a=1,m(7,o,o+1);return;case 35:m(30,o,o+1);return;case 44:m(25,o,o+1);return;case 58:e.charCodeAt(o+1)===58&&e.charCodeAt(o+2)===58?m(6,o,o+3):m(5,o,o+1);return;case 91:m(9,o,o+1);return;case 93:m(10,o,o+1);return}if(E(t)){ee(t);return}if(!te(t>=65&&t<=90?t+32:t)){if(t>=128||(V[t]&L)!==0){n=o+1;for(let t=e.charCodeAt(n);t>=128||(V[t]&L)!==0;t=e.charCodeAt(n))n++;m(23,o,n);return}m(45,o,o+1)}}},re=()=>{if(u===-1||u<o&&(u=e.indexOf(`~`,o),u===-1))return!1;if(p<o){let n=o;for(;n<t&&!T(e.charCodeAt(n));)n++;p=n}if(u>=p||(d<o&&(d=y(o),f=e.lastIndexOf(`~`,d-1)),f<=u))return!1;let n=f+1;for(;n<t&&!T(e.charCodeAt(n));)n++;return m(34,o,n),!0},ie=n=>{if(T(n)){for(o++;T(e.charCodeAt(o));)o++;return}let r=n|32;if((r===112||r===102||r===117)&&(e.charCodeAt(o+1)|32)==107&&!M(e.charCodeAt(o+2)))m(35,o,o+2);else if(!re()){if(G(n,z)){let n=o+1;for(;n<t&&G(e.charCodeAt(n),B);)n++;m(34,o,n);return}if(n===96){a=2,o++;return}if(n===34){let t=e.indexOf(`"`,o+1);if(t!==-1){m(36,o,t+1);return}}else if(n===125){a=0,m(8,o,o+1);return}m(45,o,o+1)}};for(;o<t;){let s=e.charCodeAt(o),c;switch(a){case 0:ne(s);break;case 1:ie(s);break;case 2:s===96?(a=1,o++):(c=e.indexOf("`",o),m(34,o,c===-1?t:c));break;case 3:case 4:c=e.indexOf(`
|
|
3
|
+
`,o),m(a===3?12:14,o,c===-1?t:c),a=0;break;case 5:s===125?(a=0,o++):(c=e.indexOf(`}`,o),m(15,o,c===-1?t:c));break;case 6:if(s===10){for(c=o+1;e.charCodeAt(c)===10;)c++;a=0,m(4,o,c)}else if(T(s))for(o++;T(e.charCodeAt(o));)o++;else if(s===58)m(5,o,o+1);else if(s===44)m(25,o,o+1);else if(s===35)m(30,o,o+1);else if(s===59)m(28,o,o+1);else if(s>=128||(V[s]&R)!==0){c=o+1;for(let t=e.charCodeAt(c);t>=128||(V[t]&R)!==0;t=e.charCodeAt(c))c++;m(24,o,c)}else return n.push(1),r.push(``),i.push(o),{types:n,texts:r,starts:i}}}let ae=a===0?3:a===3?12:a===4?14:a===5?15:-1;return ae!==-1&&(n.push(ae),r.push(``),i.push(t)),n.push(0),r.push(``),i.push(t),{types:n,texts:r,starts:i}}var K=/* @__PURE__ */ new Map([[37,`ZERO_OR_ONE`],[38,`ZERO_OR_MORE`],[39,`ONE_OR_MORE`],[40,`ONLY_ONE`],[41,`MD_PARENT`]]),_e=[`TB`,`BT`,`RL`,`LR`],ve=`'UNICODE_TEXT', 'NUM', 'ENTITY_NAME', 'DECIMAL_NUM', 'ENTITY_ONE'`,ye=`'ZERO_OR_ONE', 'ZERO_OR_MORE', 'ONE_OR_MORE', 'ONLY_ONE', 'MD_PARENT'`,q=`'EOF', 'NEWLINE', 'title', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'SUBGRAPH', 'direction_tb', 'direction_bt', 'direction_rl', 'direction_lr', 'CLASSDEF', 'CLASS', 'STYLE', `+ve;function be(e,t){let{types:n,texts:r,starts:i}=ge(e),a=0,o=t=>{let o=n[a];throw o===1?C(`er`,e,i[a],``,!0):C(`er`,e,i[a],`Expecting ${t}, got '${o===45?r[a]:I[o]}'`)},s=e=>(n[a]!==e&&o(`'${I[e]}'`),r[a++]),c=()=>{let e=n[a];e!==4&&e!==28&&e!==3&&o(`'EOF', 'NEWLINE', 'SEMI'`),a++},l=e=>e===23||e===31||e===29||e===32||e===33,u=()=>{let e=n[a];l(e)||o(ve);let t=r[a++];return e===31?t.slice(1,-1):t},d=()=>{let e=[];for(;;){let t=n[a];if(t!==23&&t!==24&&o(`'UNICODE_TEXT', 'STYLE_TEXT'`),e.push(r[a++]),n[a]!==25)return e;a++}},f=e=>e===24||e===29||e===5||e===30,p=()=>{let e=[];for(;;){f(n[a])||o(`'STYLE_TEXT', 'COLON', 'NUM', 'BRKT'`);let t=r[a++];for(;f(n[a]);)t+=r[a++];if(e.push(t),n[a]!==25)return e;a++}},m=()=>{let e=K.get(n[a++]),t=n[a];t!==43&&t!==42&&o(`'NON_IDENTIFYING', 'IDENTIFYING'`);let r=t===43?`IDENTIFYING`:`NON_IDENTIFYING`;a++;let i=K.get(n[a]);return i===void 0?o(ye):(a++,{cardA:i,relType:r,cardB:e})},h=()=>{let e=n[a];e!==44&&e!==31&&e!==23&&o(`'UNICODE_TEXT', 'ENTITY_NAME', 'WORD'`);let t=r[a++];return e===23?t:t.slice(1,-1)},g=e=>n[a]===45&&r[a]===e,_=()=>{let e=[];do{let t=s(34);g(`?`)&&(t+=r[a++]),n[a]!==34&&o(t.endsWith(`?`)?`'ATTRIBUTE_WORD'`:`'ATTRIBUTE_WORD', '?'`);let i={type:t,name:r[a++]};if(n[a]===35){let e=[r[a++]];for(;g(`,`);)a++,e.push(s(35));i.keys=e}n[a]===36&&(i.comment=r[a++].slice(1,-1)),e.push(i)}while(n[a]!==8);return e.reverse()},v=()=>{if(n[a]!==7)return;if(a++,n[a]===8){a++;return}let e=_();return a++,e},y=()=>{let e=u(),r=n[a];if(r===9){a++;let r=u();s(10);let i;n[a]===6&&(a++,i=d());let o=v();return t.addEntity(e,r),o&&t.addAttributes(e,o),i&&t.setClass([e],i),[e]}let i;if(r===6&&(a++,i=d(),r=n[a]),K.has(r)){let r=m(),o=u(),c;n[a]===6&&(a++,c=d()),s(5);let l=h();return t.addEntity(e),t.addEntity(o),t.addRelationship(e,l,o,r),i&&t.setClass([e],i),c&&t.setClass([o],c),[e,o]}let o=v();return t.addEntity(e),o&&t.addAttributes(e,o),i&&t.setClass([e],i),[e]};s(2);let b=[{id:``,title:``,list:[]}],x=b[0],S=!1;for(;;){let e=n[a];switch(e){case 4:a++;break;case 3:a++,S&&o(`'END', ${q}`);return;case 16:{S||o(q),a++;let e=t.addSubGraph({text:x.id},x.list,{text:x.title});b.pop(),x=b[b.length-1],S=b.length>1,S&&x.list.push(e);break}case 17:{a++;let e=u(),t=e;if(n[a]===9){for(a++,t=u();l(n[a]);)t+=` `+u();s(10)}c(),x={id:e,title:t,list:[]},b.push(x),S=!0;break}case 11:{a++;let e=s(12).trim();t.setAccTitle(e),S&&x.list.push(e);break}case 13:{a++;let e=s(14).trim();t.setAccDescription(e),S&&x.list.push(e);break}case 15:{let e=r[a++].trim();t.setAccDescription(e),S&&x.list.push(e);break}case 18:case 19:case 20:case 21:{a++;let n=_e[e-18];S?x.list.push({stmt:`dir`,value:n}):t.setDirection(n);break}case 22:{let e=r[a++],n=d(),i=p();c(),t.addClass(n,i),S&&x.list.push(e);break}case 26:{let e=r[a++],n=d();t.setClass(n,d()),S&&x.list.push(e);break}case 27:{let e=r[a++],n=d(),i=p();c(),t.addCssStyles(n,i),S&&x.list.push(e);break}default:{l(e)||o(S?`'END', ${q}`:q);let t=y();if(S)for(let e of t)x.list.push(e)}}}}var xe=[];function Se(e){let t=[],n=[],r=e.subgraphs,i=t=>{let n=[];for(let r of t){let t=e.classes.get(r);if(t!==void 0){for(let e of t.styles)n.push(e.trim());for(let e of t.textStyles)n.push(e.trim())}}return n},a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set;for(let e=r.length-1;e>=0;e--){let t=r[e];o.add(t.id);for(let e of t.nodes)a.set(e,t.id)}for(let e=r.length-1;e>=0;e--){let n=r[e];t.push({id:n.id,label:n.title,alias:``,attributes:xe,isGroup:!0,parentId:a.get(n.id),cssStyles:n.cssStyles,cssCompiledStyles:i(n.classes),cssClasses:n.classes.join(` `),dir:n.dir,labelType:n.labelType})}let s=/* @__PURE__ */ new Map;for(let[n,r]of e.entities)o.has(n)?s.set(r.id,n):t.push({id:r.id,label:r.label,alias:r.alias,attributes:r.attributes,isGroup:!1,parentId:a.get(n),cssStyles:r.cssStyles,cssCompiledStyles:i(r.cssClasses.split(` `)),cssClasses:r.cssClasses,dir:void 0,labelType:`markdown`});return e.relationships.forEach((e,t)=>{n.push({id:`id_${e.entityA}_${e.entityB}_${t}`,start:s.get(e.entityA)??e.entityA,end:s.get(e.entityB)??e.entityB,label:e.roleA,arrowTypeStart:e.relSpec.cardB.toLowerCase(),arrowTypeEnd:e.relSpec.cardA.toLowerCase(),pattern:e.relSpec.relType===`IDENTIFYING`?`solid`:`dashed`})}),{nodes:t,edges:n}}var J=18,Ce=5,Y=6,we=10,Te=3.5;function X(e,t,n,r,i){let a=(e,a)=>w(t-r*e-i*a)+`,`+w(n-i*e+r*a),o=e=>`M${a(e,-Ce)}L${a(e,Ce)}`,s=`M${a(0,-Y)}L${a(we,0)}L${a(0,Y)}`,c=e=>`<circle class="pele-marker" cx="${w(t-r*e)}" cy="${w(n-i*e)}" r="${Te}" fill="var(--_bg)"/>`,l=e=>`<path class="pele-marker" d="${e}"/>`;switch(e){case`only_one`:return l(o(6)+o(10));case`zero_or_one`:return l(o(6))+c(13.5);case`one_or_more`:return l(s+o(we+3.5));case`zero_or_more`:return l(s)+c(we+Te+.5);case`md_parent`:return`<path class="pele-marker" d="M${a(0,0)}L${a(6,4)}L${a(12,0)}L${a(6,-4)}Z" fill="var(--_bg)"/>`}return``}var Ee=48,De=20,Oe=64,Z=20,Q=28,ke=38,Ae=96,je=18,Me=12,Ne=9,Pe=12,Fe=16,Ie=9,Le=260,Re=1e6,ze=[],Be=18,Ve=14,He=` fill="var(--_s)" stroke="var(--_b)"`;function Ue(e,t,n){let r=e.er?.[t];return typeof r==`number`&&r>0?Math.min(r,2e3):n}function $(e,t,n,r,o,s=0){let c=e.lines;if(c.length===0)return``;let u=c.length===1&&c[0].length===1?c[0][0]:void 0;if(u&&u.icon===void 0&&u.math===void 0&&u.style===s&&!(s&&u.text.includes(` `)))return`<text${N(r,s)} x="${w(t)}" y="${w(n)}">${D(u.text)}</text>`;let d=A(e),f=e.size*.35,p=n-f-e.lineHeight/2,m=``,h=``;for(let s=0;s<c.length;s++){let u=c[s],g=p+i(e,s);if(a(u)){h+=k(l(e,s),t+e.widths[s]/2,g,r,o);continue}n=g+f;let _=!1;for(let e of u)e.icon!==void 0&&(_=!0);let v=t,y=!1;for(let t of u){if(t.icon!==void 0){let r=e.size*1.1;h+=`<svg class="pele-icon" data-icon="${O(t.icon)}" x="${w(v)}" y="${w(n-e.size*.35-r/2)}" width="${w(r)}" height="${w(r)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${o?.(t.icon)??``}</svg>`}else if(t.text!==``){let e=_||!y?` x="${w(v)}" y="${w(n)}"`:``;m+=`<tspan${e}${j(t.style&~d)}>${D(t.text)}</tspan>`,y=!0}v+=t.width}}return`<text${N(r,d)} xml:space="preserve">${m}</text>${h}`}function We(e){let t=ae(e);return t===e?e:t.replace(/</g,`<`).replace(/>/g,`>`)}function Ge(e,t,n){return u(e.direction)?d(n,r=>Ke(e,t,n,r)):Ke(e,t,n,!1)}function Ke(i,a,l,u){let d=Se(i),ae=Array.isArray(l.monospace)&&l.monospace.includes(`attributes`),C=l.fontSize??16,T=Math.round(C*.875),E=l.measurer??fe(l.fontFamily,l.fontFamilyMono),A=l.padding??8,j=l.icons,M=/* @__PURE__ */ new Map,N=[],P=[];d.nodes.forEach((e,t)=>M.set(e.id,t));let F=[],I=[],L=[],R=/* @__PURE__ */ new Map,z=[];for(let e of d.edges){let t=M.get(e.start),r=M.get(e.end);if(t===void 0||r===void 0)continue;let i=n(e.label,!0,E,T,200),a;if(t===r){a={label:i,band:0,at:0};let e=R.get(t);e?e.push(a):R.set(t,[a])}z.push(a),L.push(e),I.push(i),F.push({src:t,dst:r,minlen:1,labelW:i.width>0?i.width+12:0,labelH:i.height>0?i.height+4:0,route:[],labelX:0,labelY:0})}let B=e=>{let t=e;for(let e=0;e<d.nodes.length;e++){let e=d.nodes[t].parentId,n=e===void 0?void 0:M.get(e);if(n===void 0)break;let r=d.nodes[n].dir;if(r)return r===`LR`||r===`RL`;t=n}return i.direction===`LR`||i.direction===`RL`};for(let e=0;e<d.nodes.length;e++){let t=d.nodes[e],r=o(t.cssStyles.length>0?t.cssCompiledStyles.concat(t.cssStyles):t.cssCompiledStyles),i=+!!r.bold|(r.italic?2:0),a=ae&&!/[";]font-family:/.test(r.text)?4:0,s=r.fontSize??C,c=r.fontSize??T,l=r.fontSize??Math.round(C*.75),u=t.isGroup?n(t.label,!0,E,s,4e3,i):n(t.alias||t.label,!0,E,s,240,i),f=R.get(e)??ze,p=f.length>0&&!t.isGroup&&B(e),m={node:t,style:r,label:u,w:0,h:0,headH:0,rows:[],cols:[],rowSize:c,keySize:l,mono:a,below:p},h=0,g=0;for(let e of f)e.band=Math.max(ke,p?e.label.width+12:e.label.height+6),g+=e.band,h=Math.max(h,p?e.label.height:e.label.width);let _=Math.max(Ae,p?g+8:0),v;if(t.isGroup)v=y(0,0),v.isGroup=!0,v.dir=t.dir?b(t.dir):void 0,v.padX=Z,v.padTop=m.label.height>0?m.label.height+16:Z,v.padBottom=Z,v.minW=Math.max(m.label.width+2*Z-12,Ae);else{let e=Math.max(u.height,Math.round(s*1.5));if(t.attributes.length===0)m.w=Math.max(u.width+2*je,_),m.h=Math.max(e+2*Me,p?0:g+8);else{let r=Math.round(c*1.5),o=[0,0,0,0];for(let e of t.attributes){let t=[n(We(e.type),!0,E,c,Re,i|a),n(We(e.name),!0,E,c,Re,i|a),n(e.keys.join(`, `),!1,E,l,Re,i|a),n(We(e.comment),!0,E,c,Le,i)],s=r;for(let e=0;e<4;e++)t[e].width>o[e]&&(o[e]=t[e].width),t[e].height>s&&(s=t[e].height);m.rows.push({cells:t,h:s+Ie}),m.h+=s+Ie}let s=0,d=0;for(let e of o)e!==0&&(d+=e+(s>0?Fe:0),s++);m.w=Math.max(d+2*Pe,u.width+2*je,_);let f=s>0?(m.w-d-2*Pe)/s:0,p=Pe;for(let e of o)m.cols.push(p),e>0&&(p+=e+f+Fe);m.headH=e+2*Ne,m.h+=m.headH}let r=f.length>0?2*(J+Q*.75+10+h):0;v=p?y(m.w,m.h+r):y(m.w+r,m.h)}v.seq=N.length,N.push(m),P.push(v)}d.nodes.forEach((e,t)=>{P[t].parent=e.parentId===void 0?-1:M.get(e.parentId)??-1});let V=x(P,F,u?`TB`:b(i.direction),{nodeSep:Ue(a,`nodeSpacing`,Ee),edgeSep:De,rankSep:Ue(a,`rankSpacing`,Oe),portSep:24});Je(F,P,N);let H=V.width;for(let[e,t]of R){let n=P[e];if(!n.isGroup)continue;let r=0;for(let e of t)r=Math.max(r,e.label.width);H=Math.max(H,n.x+n.w/2+J+Q*.75+10+r)}let U=ee(i.title,E,C,4e3),pe=U.height>0?U.height+12:0,me=Math.max(H,U.width),W=A+(me-H)/2,he=A+pe;S(P,F,W,he);let G=Math.ceil(me+2*A),ge=Math.ceil(V.height+pe+2*A),K=[],_e=/* @__PURE__ */ new Map,ve=!1;for(let e of P)e.isGroup&&(ve=!0);if(ve)for(let e of F)ne(_e,e.route);let ye=``,q=[],be=``;for(let e=0;e<N.length;e++){let n=N[e],i=P[e],a=n.node,o=r(a.cssClasses.replace(/^default\s?/,``));if(i.isGroup){n.w=i.w,n.h=i.h;let e=i.x-i.w/2,t=i.y-i.h/2,r=te(i,n.label.width,_e,Z);le(n.style.shape)&&q.push({box:[e,t,e+i.w,t+i.h],shape:n.style.shape}),ye+=`<g class="pele-cluster${o}" data-id="${O(a.id)}"><rect x="${w(e)}" y="${w(t)}" width="${w(i.w)}" height="${w(i.h)}" fill="var(--_a)"${c(n.style.shape)?``:` fill-opacity="0.5"`} stroke="var(--_b)"${s(n.style.shape)}/>`+k(n.label,r,t+8+n.label.height/2,` class="pele-cluster-label"${de(n.style,`var(--_m)`)}${n.style.text}`,j)+`</g>`;continue}let u=n.w,d=n.h,f=-u/2,p=-d/2,m=n.style.text,h=de(n.style),g=h||` fill="var(--_m)"`,_=`x="${w(f)}" y="${w(p)}" width="${w(u)}" height="${w(d)}"`,v=k(n.label,0,n.rows.length>0?p+n.headH/2:0,` class="pele-label"${h}${m}`,j),y=oe(a.alias||a.label);if(/ internal-link(?: |$)/.test(o+` `)&&v!==``&&l.links!==!1){let e=ie(y,l),t=D(y);v=`<a class="internal-link"${e?` href="${t}"${re(l)}`:``} data-href="${t}">${v}</a>`,K.push({id:a.label,href:y,internal:!0})}let b;if(n.rows.length===0)b=`<rect ${_}${s(He+n.style.shape)}/>`+v;else{let e=Math.round(n.rowSize*1.5),r=n.style.stroke?D(n.style.stroke):`var(--_b)`,i=``,a=``,o=p+n.headH;for(let r=0;r<n.rows.length;r++){let s=n.rows[r];if(r%2==0){let e=`x="${w(f)}" width="${w(u)}"`;r===n.rows.length-1?i+=`<rect ${e} y="${w(o)}" height="${w(s.h)}"${t}/><rect ${e} y="${w(o)}" height="${w(s.h/2)}"/>`:i+=`<rect ${e} y="${w(o)}" height="${w(s.h)}"/>`}let c=o+Ie/2+e/2+n.rowSize*.35,[l,d,p,_]=s.cells;a+=$(l,f+n.cols[0],c,` class="pele-er-type"${g}${m}`,j,n.mono)+$(d,f+n.cols[1],c,` class="pele-er-name"${h}${m}`,j,n.mono)+$(p,f+n.cols[2],c,` class="pele-er-keys" font-size="${n.keySize}"${g}${m}`,j,n.mono)+$(_,f+n.cols[3],c,` class="pele-er-comment"${g}${m}`,j),o+=s.h}let c=w(p+n.headH),l=ce(n.style.shape),d=l===`var(--pele-fg-on-light,#1f1f1f)`?ue:l===`var(--pele-fg-on-dark,#fff)`?se:`var(--_bg)`;b=`<rect ${_}${s(He+n.style.shape)}/><g class="pele-er-stripes" fill="${d}"${n.style.shape.includes(`fill:`)?` opacity="0.6"`:``}>${i}</g><path class="pele-er-divider" d="M${w(f)},${c}H${w(f+u)}" stroke="${r}"/><rect ${_} fill="none" stroke="var(--_b)"${s(n.style.line)}/>`+v+`<g class="pele-er-attributes" font-size="${n.rowSize}">${a}</g>`}be+=`<g class="pele-node pele-entity${o}" data-id="${O(a.label)}" transform="translate(${w(i.x)},${w(i.y)})">${b}</g>`}for(let[e,t]of R){let n=N[e],r=0;for(let e of t)r+=e.band;let i=Math.min(1,Math.max((n.below?n.w:n.h)-8,0)/r),a=-r*i/2;for(let e of t)e.band*=i,e.at=a+e.band/2,a+=e.band}let xe=``,Ce=``,Y=``;for(let e=0;e<F.length;e++){let t=F[e],n=L[e],r=I[e],i,a,o,s=z[e];if(s){let e=P[t.src],c=N[t.src],l=Math.max(Math.min(s.band/2-6,13),1),u=J+Q*.75+6;if(c.below){let d=e.x+s.at,f=e.y+c.h/2,p=w(f+J),m=w(f+J+Q);i=`M${w(d-l)},${w(f)}V${p}C${w(d-l)},${m} ${w(d+l)},${m} ${w(d+l)},${p}V${w(f)}`,a=X(n.arrowTypeStart,d-l,f,0,-1),o=X(n.arrowTypeEnd,d+l,f,0,-1),t.labelX=d,t.labelY=f+u+r.height/2}else{let d=e.x+c.w/2,f=e.y+s.at,p=w(d+J),m=w(d+J+Q);i=`M${w(d)},${w(f-l)}H${p}C${m},${w(f-l)} ${m},${w(f+l)} ${p},${w(f+l)}H${w(d)}`,a=X(n.arrowTypeStart,d,f-l,-1,0),o=X(n.arrowTypeEnd,d,f+l,-1,0),t.labelX=d+u+r.width/2,t.labelY=f}}else{let e=qe(t.route);if(e.length<6)continue;Ye(e,0,N[t.src],P[t.src]),Ye(e,e.length-3,N[t.dst],P[t.dst]);let r=Math.abs(e[e.length-3]-e[0]),s=Math.abs(e[e.length-2]-e[1]),c=e.length===6&&(r<.01||s<.01||Math.hypot(r,s)<=3*J)?0:J,l=p(e,void 0,c,c);i=c>0?`M${w(l.sx)},${w(l.sy)}L${l.d.slice(1)}L${w(l.ex)},${w(l.ey)}`:l.d,a=X(n.arrowTypeStart,l.sx,l.sy,l.sdx,l.sdy),o=X(n.arrowTypeEnd,l.ex,l.ey,l.edx,l.edy)}let c=g(i,[],q),l=c&&v(c);l===``&&(Ce+=h(i,a+o)),c&&l&&(a=m(a,c),o=m(o,c));let u=n.pattern===`dashed`;if(xe+=`<g class="pele-edge pele-er-${u?`non-identifying`:`identifying`}" data-id="${O(n.id)}"${l?` stroke="${l}"`:``}><path d="${i}"${u?` stroke-dasharray="4 3"`:``}/>`+a+o+`</g>`,r.width>0){let e=t.labelX,i=t.labelY;Y+=_(n.id,r,e,i,``,j)}}return{svg:e(`er`,G,ge,C,l,i,k(U,G/2,A+U.height/2,` class="pele-title" font-weight="var(--_tw)"`)+(ye?`<g class="pele-clusters">${ye}</g>`:``)+f(Ce)+(xe?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${xe}</g>`:``)+(Y?`<g class="pele-edge-labels" font-size="${T}">${Y}</g>`:``)+`<g class="pele-nodes">${be}</g>`),width:G,height:ge,links:K}}function qe(e){let t=e.slice(0,3);for(let n=3;n<e.length;n+=3){let r=t.length-3,i=i=>Math.abs(t[r+i]-e[n+i])<.01&&Math.abs(e[n+i]-e[n+3+i])<.01;n+3<e.length&&(i(0)||i(1))||t.push(e[n],e[n+1],e[n+2])}return t}function Je(e,t,n){let r=/* @__PURE__ */ new Map,i=(e,n,i,a)=>{let o=t[e],s=n[i]-o.x,c=n[i+1]-o.y,l;if(Math.abs(Math.abs(c)-o.h/2)<.5)l=c<0?0:2;else if(Math.abs(Math.abs(s)-o.w/2)<.5)l=s<0?3:1;else return;let u=e*4+l,d={route:n,at:i,toward:n[a+(l&1?1:0)]},f=r.get(u);f?f.push(d):r.set(u,[d])};for(let t of e){let e=t.route.length-3;t.src===t.dst||e<3||(i(t.src,t.route,0,3),i(t.dst,t.route,e,e-3))}for(let[e,i]of r){if(i.length<2)continue;let r=e>>2,a=(e&1)==1,o=t[r].isGroup?t[r]:n[r],s=a?o.h:o.w,c=Math.max(Math.min(Be,(s-2*Ve)/(i.length-1)),0),l=a?t[r].y:t[r].x;i.sort((e,t)=>e.toward-t.toward);for(let e=0;e<i.length;e++)i[e].route[i[e].at+ +!!a]=l+(e-(i.length-1)/2)*c}}function Ye(e,t,n,r){if(r.isGroup)return;let i=e[t]-r.x,a=e[t+1]-r.y;r.w!==n.w&&Math.abs(Math.abs(i)-r.w/2)<.5&&(e[t]-=Math.sign(i)*(r.w-n.w)/2),r.h!==n.h&&Math.abs(Math.abs(a)-r.h/2)<.5&&(e[t+1]-=Math.sign(a)*(r.h-n.h)/2)}var Xe={type:`er`,math:!0,parse(e,t,n){let r=new F;return n&&(r.title=n),be(e,r),r},render:Ge};export{Xe as er};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as e,d as t,i as n}from"./BGW36YJW-CJMhya8S.js";import{i as r}from"./DKTLEL5E-DciMwFJ1.js";import{t as i}from"./RVARI57O-CgA1WoRv.js";import{C as a,E as o,F as s,I as c,N as l,d as u,f as d,h as f,s as p,t as m,u as h}from"./lazy-f3CuUNJZ.js";var g=class{type=`xychart`;title;accTitle;accDescr;orientation;xAxis={type:`band`,title:``,categories:[]};yAxis={type:`linear`,title:``,min:1/0,max:-1/0};hasSetXAxis=!1;hasSetYAxis=!1;plots=[];setOrientation(e){this.orientation=e===`horizontal`?`horizontal`:`vertical`}setXAxisTitle(e){this.xAxis.title=e.text.trim()}setXAxisRangeData(e,t){this.xAxis={type:`linear`,title:this.xAxis.title,min:e,max:t},this.hasSetXAxis=!0}setXAxisBand(e){this.xAxis={type:`band`,title:this.xAxis.title,categories:e.map(e=>e.text.trim())},this.hasSetXAxis=!0}setYAxisTitle(e){this.yAxis.title=e.text.trim()}setYAxisRangeData(e,t){this.yAxis={type:`linear`,title:this.yAxis.title,min:e,max:t},this.hasSetYAxis=!0}plotData(e){if(e.length===0)return[];this.hasSetXAxis||this.setXAxisRangeData(1,e.length);let t=this.xAxis;if(t.type===`band`&&e.length>t.categories.length&&(e=e.slice(0,t.categories.length)),!this.hasSetYAxis){let{min:t,max:n}=this.yAxis;for(let r of e)r<t&&(t=r),r>n&&(n=r);this.yAxis={type:`linear`,title:this.yAxis.title,min:t,max:n}}if(t.type===`band`)return t.categories.map((t,n)=>[t,e[n]]);if(e.length===1)return[[`${t.min}`,e[0]]];let n=(t.max-t.min)/(e.length-1);return e.map((e,r)=>[`${t.min+r*n}`,e])}addPlot(e,t,n){let r={type:e,title:t.text.trim(),data:this.plotData(n.map(e=>e.value))};e===`line`&&n.some(e=>e.label.trim()!==``)&&(r.pointLabels=n.map(e=>e.label.trim())),this.plots.push(r)}setLineData(e,t){this.addPlot(`line`,e,t)}setBarData(e,t){this.addPlot(`bar`,e,t)}setDiagramTitle(e){this.title=e}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
2
|
+
`)}},_=/* @__PURE__ */ `$end.INVALID.NEWLINE.title.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.XYCHART.CHART_ORIENTATION.X_AXIS.Y_AXIS.ARROW_DELIMITER.LINE.BAR.NUMBER_WITH_DECIMAL.SQUARE_BRACES_START.SQUARE_BRACES_END.STR.ALPHA.COLON.PLUS.COMMA.EQUALS.MULT.BRKT.UNDERSCORE.DOT.AMP.MINUS.NUM.SEMI.EOF`.split(`.`),v=[33,33,33,33,33,19,5,7,8],y="`)"+` `.repeat(36)+`{ this.pushstate(md_string); }
|
|
3
|
+
<md_string>(?:(?!\`").)+`+` `.repeat(18)+`{ return md_str; }
|
|
4
|
+
<md_string>(?:\``,b=/* @__PURE__ */ new Uint8Array(128);for(let[e,t]of[[`:`,21],[`+`,22],[`,`,23],[`=`,24],[`*`,25],[`#`,26],[`_`,27],[`.`,28],[`&`,29],[`-`,30],[`;`,32]])b[e.charCodeAt(0)]=t;function x(e){let t=e.length,n=[],r=[],a=[],o=[],u=0,d=0,f=(t,i,o)=>{n.push(t),r.push(e.slice(i,o)),a.push(i),d=o},p=e=>{o.push(u),u=e},h=()=>{o.length>0&&(u=o.pop())},g=n=>{let r=e.indexOf(`
|
|
5
|
+
`,n);return r===-1?t:r},_=n=>{for(;n<t&&s(e.charCodeAt(n));)n++;return n},x=t=>{for(;l(e.charCodeAt(t));)t++;return t},S=t=>i(e,d,t)&&!m(e.charCodeAt(d+t.length));for(;d<t;){let n=e.charCodeAt(d);if(u===5){if(n===34)d++,h();else{let n=e.indexOf(`"`,d);f(19,d,n===-1?t:n)}continue}if(u===6||u===7){f(v[u],d,g(d)),h();continue}if(u===8){if(n===125)d++,h();else{let n=e.indexOf(`}`,d);f(8,d,n===-1?t:n)}continue}let r=e.charCodeAt(d+1);if(n===37&&r===37)d=g(d+2);else if(n===10||n===13){if((u===1||u===3)&&(n===10||r===10)){f(2,d,n===10?d+1:d+2),h();continue}let t=d+1;for(let n=e.charCodeAt(t);n===10||n===13;n=e.charCodeAt(++t));f(2,d,t)}else{switch(n|32){case 116:if(S(`title`)){f(3,d,d+5);continue}break;case 97:if(i(e,d,`acc`)){let t=i(e,d+3,`descr`);if(t||i(e,d+3,`title`)){let n=_(d+8),r=e.charCodeAt(n);if(r===58){f(t?6:4,d,_(n+1)),p(t?7:6);continue}if(r===123&&t){d=_(n+1),p(8);continue}}}break;case 120:if(S(`xychart-beta`)){f(9,d,d+12);continue}if(S(`xychart`)){f(9,d,d+7);continue}if(S(`x-axis`)){f(11,d,d+6),p(1);continue}break;case 121:if(S(`y-axis`)){f(12,d,d+6),p(1);continue}break;case 118:if(i(e,d,`vertical`)){f(10,d,d+8);continue}break;case 104:if(i(e,d,`horizontal`)){f(10,d,d+10);continue}break;case 108:if(S(`line`)){f(14,d,d+4),p(3);continue}break;case 98:if(S(`bar`)){f(15,d,d+3),p(3);continue}}if(n===91)u===1?p(2):u===3&&p(4),f(17,d,d+1);else if(n===93)(u===4||u===2)&&h(),f(18,d,d+1);else if(u===1&&n===45&&r===45&&e.charCodeAt(d+2)===62)f(13,d,d+3);else{if(u===1||u===4){let t=n===43||n===45?d+1:d,r=e.charCodeAt(t),i=-1;if(l(r)?(i=x(t+1),e.charCodeAt(i)===46&&l(e.charCodeAt(i+1))&&(i=x(i+2))):r===46&&l(e.charCodeAt(t+1))&&(i=x(t+2)),i!==-1){f(16,d,i);continue}}if(n===96&&i(e,d,y))d+=y.length,h();else if(n===34)d++,p(5);else if(c(n)){let t=d+1;for(;c(e.charCodeAt(t));)t++;f(20,d,t)}else if(l(n))f(31,d,x(d+1));else if(s(n))d=_(d+1);else if(n<128&&b[n]!==0)f(b[n],d,d+1);else break}}}return d<t?(n.push(1),r.push(``),a.push(d),{types:n,texts:r,starts:a}):(n.push(v[u]),r.push(``),a.push(t),n.push(0),r.push(``),a.push(t),{types:n,texts:r,starts:a})}function S(...e){let t=/* @__PURE__ */ new Uint8Array(34);for(let n of e)t[n]=1;return t}var C=S(29,31,20,22,24,25,28,26,30,27),w=S(2,32,33);function T(e,t){let{types:n,texts:r,starts:i}=x(e),o=0,s=t=>{let r=n[o];throw r===1?a(`xychart`,e,i[o],``,!0):a(`xychart`,e,i[o],`Expecting ${t}, got '${_[r]}'`)},c=e=>(n[o]!==e&&s(`'${_[e]}'`),r[o++]),l=e=>e===19||C[e]===1,u=()=>{l(n[o])||s(`'STR', 'ALPHA', 'NUM'`);let e=r[o++];if(n[o-1]!==19)for(;C[n[o]]===1;)e+=r[o++];return{text:e,type:`text`}},d=()=>{let e=Number(c(16));return c(13),[e,Number(c(16))]},f=()=>{let e=[];for(c(17);;){let t=Number(c(16));if(e.push({value:t,label:n[o]===19?r[o++]:``}),n[o]!==23)break;o++}return c(18),e};for(;;)if(w[n[o]]===1)o++;else{if(n[o]!==9)break;n[++o]===10&&t.setOrientation(r[o++])}for(;n[o]!==0;){let e=n[o++];switch(e){case 3:t.setDiagramTitle(u().text.trim());break;case 11:case 12:{let r=l(n[o])?u():void 0;if(e===11&&n[o]===17){let e=[];do o++,e.push(u());while(n[o]===23);c(18),t.setXAxisBand(e)}else if(n[o]===16||r===void 0){let[n,r]=d();e===11?t.setXAxisRangeData(n,r):t.setYAxisRangeData(n,r)}e===11?t.setXAxisTitle(r??{type:`text`,text:``}):t.setYAxisTitle(r??{type:`text`,text:``});break}case 14:case 15:{let r=n[o]===17?{text:``,type:`text`}:u(),i=f();e===14?t.setLineData(r,i):t.setBarData(r,i);break}case 4:t.setAccTitle(c(5).trim());break;case 6:t.setAccDescription(c(7).trim());break;case 8:t.setAccDescription(r[o-1].trim());break;default:o--,s(`'title', 'X_AXIS', 'Y_AXIS', 'LINE', 'BAR', 'acc_title', 'acc_descr', 'acc_descr_multiline_value'`)}for(;w[n[o]]===1;)o++}}function ee(e,t){let n=e/Math.max(t,1),r=Math.floor(Math.log10(n)),i=n/10**r,a=i>=7.07?10:i>=3.16?5:i>=1.41?2:1;return r<0?-(10**-r)/a:a*10**r}function te(e,t){return e>0?t/e:t*-e}function E(e,t){return e>0?t*e:t/-e}function ne(e,t,n){let r=Math.round(te(n,e));E(n,r)<e&&r++;let i=Math.round(te(n,t));E(n,i)>t&&i--;let a=[];for(let e=r;e<=i&&a.length<100;e++)a.push(E(n,e));return a}var re=4,D=12,ie=26,ae=24,oe=1e300;function se(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function O(e,t,n=!0){let r=e[t];return typeof r==`boolean`?r:n}function ce(e,t){return typeof e==`number`&&e>0?Math.round(Math.min(Math.max(e,100),4e3)):t}function k(e){return typeof e==`number`&&isFinite(e)?Math.min(Math.max(e,-oe),oe):void 0}function le(e){let t=0;for(let n of e)t=Math.max(t,n.label.width);return t}function ue(e,t,n,r){let i=e.lines.length===1?e.lines[0]:void 0;return i&&i.length===1&&i[0].icon===void 0&&i[0].style===0?`<text x="${o(t)}" y="${o(n+e.size*.35)}" text-anchor="${r}">${u(i[0].text)}</text>`:f(e,t+(r===`start`?e.width/2:r===`end`?-e.width/2:0),n,``)}function de(i,a,s){if(i.plots.length===0)throw new h(`No Plot to render, please provide a plot with some data`,`semantic`,{type:`xychart`});let c=se(a.xyChart),l=s.fontSize??16,u=Math.round(l*.875),m=Math.round(l*.75),g=s.measurer??p(s.fontFamily,s.fontFamilyMono),_=s.padding??8,v=ce(c.width,700),y=r(s,v,240),b=Math.round(ce(c.height,500)*Math.max(.6,y/v)),x=(i.orientation??c.chartOrientation)===`horizontal`,S=O(c,`showDataLabel`,!1),C=i.xAxis,w=i.plots,T=(e,t,r)=>n(e,!1,g,t,r),oe=T(`0`,u,4e3).height,de=T(`0`,m,4e3).height,A=n(O(c,`showTitle`)?i.title:void 0,!1,g,l,y-2*_,1),fe=A.height>0?A.height+12:0,pe=[],me=0;O(c,`showLegend`)&&w.forEach((e,t)=>{if(e.title===``)return;let n=T(e.title,u,y*.3);pe.push({index:t,label:n}),me=Math.max(me,n.width+D+8)});let he=pe.length>0?me+ae:0,j=w.filter(e=>e.type===`bar`).length,M=k(i.yAxis.min)??1/0,N=k(i.yAxis.max)??-1/0,ge=i.hasSetYAxis&&isFinite(M)&&isFinite(N)&&M!==N;if(!ge){M=1/0,N=-1/0;for(let e of w)for(let[,t]of e.data){let e=k(t);e!==void 0&&(e<M&&(M=e),e>N&&(N=e))}M>N&&(M=N=0),j>0&&(M=Math.min(M,0),N=Math.max(N,0)),M===N&&(M===0?N=1:(M-=Math.abs(M)/2,N+=Math.abs(N)/2))}let _e=(e,t)=>{let n=ee(Math.abs(N-M),Math.max(2,Math.min(10,Math.floor(e/t))));return ge||(M=E(n,Math.floor(te(n,M)+1e-9)),N=E(n,Math.ceil(te(n,N)-1e-9))),ne(Math.min(M,N),Math.max(M,N),n).map(e=>({at:(e-M)/(N-M),label:T(String(e),u,4e3)}))},P=1;if(C.type===`band`)P=Math.max(C.categories.length,1);else for(let e of w)P=Math.max(P,e.data.length);let F=1/P,I=C.type===`band`||j>0?F/2:0,L=k(C.type===`linear`?C.min:void 0),R=k(C.type===`linear`?C.max:void 0),ve=L!==void 0&&R!==void 0&&L!==R,ye=(e,t)=>C.type===`band`?(e+.5)*F:I+(t>1?e/(t-1):ve?0:.5)*(1-2*I),be=se(c.xAxis),xe=se(c.yAxis),z=x?be:xe,B=x?xe:be,V=T(O(z,`showTitle`)?x?C.title:i.yAxis.title:void 0,u,b*.8),Se=T(O(B,`showTitle`)?x?i.yAxis.title:C.title:void 0,u,y*.8),Ce=O(z,`showTick`)?re:0,we=O(B,`showTick`)?re:0,Te=O(z,`showLabel`),Ee=O(B,`showLabel`),De=x?y*.3:Math.max(48,(y-2*_-64-he)*F-8),Oe=C.type===`band`&&O(be,`showLabel`)?C.categories.map(e=>T(e,u,De)):[],ke=0,Ae=0;for(let e of Oe)ke=Math.max(ke,e.width),Ae=Math.max(Ae,e.height);let je=e=>{let t=[];if(C.type===`band`){let n=Oe.length===0?8:x?Ae:ke+12,r=Math.max(1,Math.ceil(n/(e*F)));for(let e=0;e<C.categories.length;e+=r)t.push({at:(e+.5)*F,label:Oe[e]??T(void 0,u,0)})}else if(ve){let n=ee(Math.abs(R-L),Math.max(2,Math.min(10,Math.floor(e/(x?32:80)))));for(let e of ne(Math.min(L,R),Math.max(L,R),n))t.push({at:I+(e-L)/(R-L)*(1-2*I),label:T(String(e),u,4e3)})}else L!==void 0&&t.push({at:.5,label:T(String(L),u,4e3)});return t},H=0,Me=0;for(let e of w){for(let t of e.pointLabels??[])H=Math.max(H,g.width(t,m,0));if(S&&x&&e.type===`bar`)for(let[,t]of e.data)Me=Math.max(Me,g.width(String(k(t)??``),m,0))}let Ne=Ee?x||C.type!==`band`?oe:Ae:0,Pe=we+(Ne>0?Ne+4:0)+(Se.height>0?Se.height+4:0),Fe=x?0:H>0||S?de+4:Te?oe/2:0,U=_+fe+Fe,W=Math.max(1,b-_-Pe-U),G=U+W,Ie=x?je(W):_e(W,56),Le=Te?le(Ie):0,K=_+(V.height>0?V.height+6:0)+(Le>0?Le+6:0)+Ce,Re=Math.max(H>0?H+12:0,Me>0?Me+8:0),ze=x?Math.min(y*.25,Re):0,q=Math.max(1,y-_-K-he-ze),Be=x?_e(q,80):je(q);if(Ee&&he+ze===0){let e=0;for(let t of Be)e=Math.max(e,t.at*q+t.label.width/2-q);q=Math.max(1,q-e)}let Ve=K+q,J=(e,t)=>x?K+t*q:K+e*q,Y=(e,t)=>x?U+e*W:G-t*W,He=e=>(e-M)/(N-M),Ue=e=>Math.min(Math.max(e,0),1),We=e=>x?`M${o(J(0,e))},${o(U)}V${o(G)}`:`M${o(K)},${o(Y(0,e))}H${o(Ve)}`,Ge=``;for(let e of x?Be:Ie)Ge+=We(e.at);let X=``,Ke=``;O(z,`showAxisLine`)&&(X+=`M${o(K)},${o(U)}V${o(G)}`),O(B,`showAxisLine`)&&(X+=`M${o(K)},${o(G)}H${o(Ve)}`);for(let e of Ie){let t=x?U+e.at*W:G-e.at*W;Ce&&(X+=`M${o(K)},${o(t)}h${-Ce}`),Te&&(Ke+=ue(e.label,K-Ce-6,t,`end`))}for(let e of Be){let t=K+e.at*q;we&&(X+=`M${o(t)},${o(G)}v${we}`),Ee&&(Ke+=ue(e.label,t,G+we+4+e.label.height/2,`middle`))}let qe=(x?W:q)*F,Z=qe*.7/Math.max(j,1),Je=j>1?Math.min(2,Z*.2):0,Q=Ue(He(0));j>0&&Q>0&&Q<1&&(X+=We(Q));let Ye=``,Xe=``,Ze=``,Qe=``,$e=0;w.forEach((t,n)=>{let r=e(n),i=t.title?` data-id="${d(t.title)}"`:``,a=C.type===`band`?Math.min(t.data.length,P):t.data.length;if(t.type===`bar`){let e=($e++-(j-1)/2)*Z-(Z-Je)/2,n=``;for(let r=0;r<a;r++){let i=k(t.data[r][1]);if(i===void 0)continue;let s=ye(r,a),c=Ue(He(i)),l=Math.min(Q,c),u=Math.max(Q,c),d=x?J(s,l):J(s,0)+e,f=x?Y(s,0)+e:Y(s,u),p=x?(u-l)*q:Z-Je,h=x?Z-Je:(u-l)*W;if(n+=`<rect x="${o(d)}" y="${o(f)}" width="${o(p)}" height="${o(h)}"/>`,!S)continue;let _=String(i),v=g.width(_,m,0),y=c>=Q?1:-1,b=d+p/2,C=f+h/2,w=`middle`;if(x){if(h<m)continue;b=(y>0?d+p:d)+y*6,w=y>0?`start`:`end`}else{if(v+2>qe/j)continue;C=(y>0?f:f+h)-y*(de/2+2)}Ze+=`<text x="${o(b)}" y="${o(C+m*.35)}" text-anchor="${w}">${_}</text>`}Ye+=`<g class="pele-series pele-bars"${i} fill="${r}">${n}</g>`;return}let s=``,c=``,l=!1,u=0,f=NaN;for(let e=0;e<a;e++){let n=k(t.data[e][1]);if(n===void 0){f=NaN;continue}let r=ye(e,a),i=He(n),d=i>=0&&i<=1;if(f!==f)d&&(s+=`M${o(J(r,i))},${o(Y(r,i))}`),l=d;else{let e=i-f,t=0,n=1;if(e!==0){let r=-f/e,i=(1-f)/e;t=Math.max(t,Math.min(r,i)),n=Math.min(n,Math.max(r,i))}else d||(t=2);if(t<=n){let i=u+(r-u)*t,a=f+e*t,c=u+(r-u)*n,d=f+e*n;(!l||t>0)&&(s+=`M${o(J(i,a))},${o(Y(i,a))}`),s+=`L${o(J(c,d))},${o(Y(c,d))}`}l=d}if(u=r,f=i,!d)continue;let p=J(r,i),h=Y(r,i);qe>=12&&(c+=`<circle cx="${o(p)}" cy="${o(h)}" r="3"/>`);let g=T(t.pointLabels?.[e],m,4e3);if(g.height>0){let e=g.width/2;Qe+=x?ue(g,p+10,h,`start`):ue(g,Math.max(Math.min(p,Ve-e),K+e),h-6-g.height/2,`middle`)}}Xe+=`<g class="pele-series pele-line"${i} fill="${r}">`+(s?`<path d="${s}" fill="none" stroke="${r}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>`:``)+c+`</g>`});let $=``;V.height>0&&($+=`<g transform="translate(${o(_+V.height/2)},${o(U+W/2)}) rotate(-90)">${f(V,0,0,``)}</g>`),$+=f(Se,K+q/2,b-_-Se.height/2,``);let et=``,tt=0;for(let e of pe)tt+=Math.max(ie,e.label.height+6);let nt=U+Math.max(0,(W-tt)/2),rt=Ve+ze+ae;for(let{index:t,label:n}of pe){let r=Math.max(ie,n.height+6);if(nt+r>b)break;let i=nt+r/2,a=e(t);et+=`<g class="pele-legend-item" data-id="${d(w[t].title)}">`+(w[t].type===`bar`?`<rect x="${o(rt)}" y="${o(i-D/2)}" width="${D}" height="${D}" rx="2" fill="${a}"/>`:`<path d="M${o(rt)},${o(i)}h${D}" stroke="${a}" stroke-width="2" stroke-linecap="round"/>`)+f(n,rt+D+8+n.width/2,i,``)+`</g>`,nt+=r}let it=f(A,y/2,_+A.height/2,` class="pele-title" font-weight="var(--_tw)"`)+(Ge?`<path class="pele-grid" d="${Ge}" stroke="var(--_a)"/>`:``)+`<g class="pele-plot">${Ye}${Xe}</g>`+(X?`<path class="pele-axis" d="${X}" fill="none" stroke="var(--_b)"/>`:``)+(Ke?`<g class="pele-axis-labels" font-size="${u}" fill="var(--_m)">${Ke}</g>`:``)+($?`<g class="pele-axis-titles" font-size="${u}">${$}</g>`:``)+(Ze?`<g class="pele-data-labels" font-size="${m}">${Ze}</g>`:``)+(Qe?`<g class="pele-point-labels" font-size="${m}">${Qe}</g>`:``)+(et?`<g class="pele-legend" font-size="${u}">${et}</g>`:``);return{svg:t(`xychart`,y,b,l,s,i,it),width:y,height:b,links:[]}}var A={type:`xychart`,section:`xyChart`,parse(e,t,n){let r=new g;return r.title=n,T(e,r),r},render:de};export{A as xychart};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,d as t,f as n,i as r}from"./BGW36YJW-CJMhya8S.js";import{_ as i,a,c as o,d as s,f as c,g as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y}from"./EXE5EH6O-DR1IHCTr.js";import{s as ee,u as te}from"./EFYWJBJK-CVywe_D5.js";import{E as b,f as x,h as S,s as ne}from"./lazy-f3CuUNJZ.js";var C=class{domains=/* @__PURE__ */ new Map;transitions=[];setDomains(e){if(e)for(let t of e){let e=t.domain;this.domains.set(e,{name:e,items:(t.items??[]).map(e=>({label:e.label}))})}}setTransitions(e){e&&(this.transitions=e.filter(e=>e.from!==e.to).map(e=>({from:e.from,to:e.to,label:e.label||void 0})))}};function w(e,t){let n=new C;return n.setDomains(e.domains),n.setTransitions(e.transitions),{type:`cynefin`,title:e.title||t,accTitle:e.accTitle?e.accTitle.replace(/^\s+/g,``):void 0,accDescr:e.accDescr?e.accDescr.replace(/\n\s+/g,`
|
|
2
|
+
`):void 0,domains:n.domains,transitions:n.transitions}}var T=[{name:`cynefin-beta:`,pattern:`cynefin-beta:`},h(`cynefin-beta`),{name:`-->`,pattern:`-->`},{name:`:`,pattern:`:`},{name:`DOMAIN_NAME`,pattern:/complex|complicated|clear|chaotic|confusion/y},_,v,m,s,c,u,o,d,a];function E(e){let t=new l(g(e,T,`cynefin`),T,`cynefin`),n={$type:`Cynefin`,domains:[],transitions:[]},r=()=>{for(;t.kinds[t.i]===9;)t.i++},a=()=>{t.kind!==-1&&(t.kind!==9&&t.fail(`a line break or the end of input`),r())};for(r(),t.kind!==1&&t.kind!==0&&t.fail(`'cynefin-beta'`),t.i++;t.kind!==-1;)switch(t.kind){case 9:t.i++;break;case 5:n.accDescr=y(t.take()),a();break;case 6:n.accTitle=p(t.take()),a();break;case 7:n.title=i(t.take()),a();break;case 4:{let e=t.take();if(t.accept(2)){let r={$type:`Transition`,from:e,to:t.expect(4)};t.accept(3)&&(r.label=f(t.expect(8))),a(),n.transitions.push(r);break}let i={$type:`DomainBlock`,domain:e,items:[]};for(r();t.kinds[t.i]===8;)i.items.push({$type:`DomainItem`,label:f(t.take())}),r();n.domains.push(i);break}default:t.fail(`a domain, a transition, a title, or a line break`)}return n}function D(e){let t=e+1831565813|0;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function O(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t}function re(e,t){return typeof e==`number`&&Number.isFinite(e)&&e!==0?e:O(t)}var ie={segments:7,vertical:!0,pointStep:17,controlStep:31,controlShift:7},k={segments:7,vertical:!1,pointStep:23,controlStep:37,controlShift:11};function A(e,t,n,r,i,a){let o=(t-e)/a.segments,s=[],c=[];for(let t=0;t<=a.segments;t++){let l=t===0&&a.pinStart||t===a.segments&&a.pinEnd;s.push(e+t*o),c.push(l?n:n+D(r+t*a.pointStep)*i*2-i)}let l=a.vertical?[c[0],s[0]]:[s[0],c[0]];for(let e=0;e<a.segments;e++){let t=(s[e]+s[e+1])/2,n=i*1.5*(e%2==0?1:-1)*D(r+e*a.controlStep+a.controlShift);a.vertical?l.push(c[e]+n,t,c[e+1]-n,t,c[e+1],s[e+1]):l.push(t,c[e]+n,t,c[e+1]-n,s[e+1],c[e+1])}return l}function j(e,t,n,r){let i=n-t;return[e,t,e+r,t+i*.2,e-r*1.5,t+i*.55,e+r*.5,t+i*.75,e-r,t+i*.85,e+r*.3,t+i*.95,e,n]}function M(e){let t=``;for(let n=2;n<e.length;n+=6)t+=`C${b(e[n])},${b(e[n+1])} ${b(e[n+2])},${b(e[n+3])} ${b(e[n+4])},${b(e[n+5])}`;return t}function N(e){let t=``;for(let n=e.length-6;n>=2;n-=6)t+=`C${b(e[n+2])},${b(e[n+3])} ${b(e[n])},${b(e[n+1])} ${b(e[n-2])},${b(e[n-1])}`;return t}function P(e){return`M${b(e[0])},${b(e[1])}${M(e)}`}function F(e,t,n,r){let i=`${b(n)},${b(r)}`;return`M${b(e-n)},${b(t)}A${i} 0 1,1 ${b(e+n)},${b(t)}A${i} 0 1,1 ${b(e-n)},${b(t)}Z`}var I=[[`complex`,0,0,0],[`complicated`,1,0,1],[`chaotic`,0,1,3],[`clear`,1,1,2]],ae=4,L=/* @__PURE__ */ new Map([[`complex`,[`Complex`,`Probe → Sense → Respond`,`Emergent Practices`]],[`complicated`,[`Complicated`,`Sense → Analyse → Respond`,`Good Practices`]],[`clear`,[`Clear`,`Sense → Categorise → Respond`,`Best Practices`]],[`chaotic`,[`Chaotic`,`Act → Sense → Respond`,`Novel Practices`]],[`confusion`,[`Confusion`,``,`Disorder`]]]),oe=3,se=200,ce=10,le=4,R=6,ue=10,de=20,z=10;function B(e,t,n,r,i){let a=e.cynefin?.[t];return typeof a==`number`&&a>=r&&a<=i?a:n}function fe(i,a,o){let s=o.fontSize??16,c=Math.round(s*.8125),l=Math.round(s*.875),u=o.measurer??ne(o.fontFamily,o.fontFamilyMono),d=o.padding??8,f=o.icons,p=a.cynefin?.showDomainDescriptions!==!1,m=B(a,`boundaryAmplitude`,8,0,50),h=re(B(a,`seed`,0,-0x38d7ea4c68000,0x38d7ea4c68000),o.idPrefix??`pele`),g=Math.round(l*1.5),_=(e,t)=>{let n=r(e,!1,u,l,se);return{text:e,label:n,w:n.width+2*ce,h:Math.max(n.height,g)+2*le,overflow:t}},v=e=>{let t=L.get(e),n=r(t[0],!1,u,s,4e3,1),a=[];if(p)for(let e of[t[1],t[2]])e&&a.push(r(e,!1,u,c,4e3,2));let o=i.domains.get(e)?.items??[],l=e===`confusion`&&o.length>oe?oe:o.length,d=[];for(let e=0;e<l;e++)d.push(_(o[e].label,!1));l<o.length&&d.push(_(`+${o.length-l} more`,!0));let f=n.width,m=n.height;for(let e of a)f=Math.max(f,e.width),m+=e.height;d.length>0&&(m+=ue-R);for(let e of d)f=Math.max(f,e.w),m+=R+e.h;return{name:e,title:n,subtitles:a,badges:d,w:f,h:m,cx:0,cy:0}},y=I.map(([e])=>v(e)),C=v(`confusion`),w=Math.max(88,C.w*.71+8),T=Math.max(64,C.h*.71+6),E=B(a,`width`,640,100,1e4)/2,D=B(a,`height`,440,100,1e4)/2;for(let e of y)E=Math.max(E,e.w+2*de),D=Math.max(D,e.h+2*de);for(let e of y){let t=(E-e.w)/2,n=(D-e.h)/2;if((t/(w+z))**2+(n/(T+z))**2>=1)continue;let r=e.w+2*(w+z),i=e.h+2*(T+z);r*D<=E*i?E=Math.max(E,r):D=Math.max(D,i)}let O=r(i.title,!1,u,s,4e3,1),fe=O.height>0?O.height+12:0,V=2*E,pe=2*D,H=d,U=d+fe,W=H+E,G=U+D,K=H+V,q=U+pe,J=A(U,G,W,h,m,{...ie,segments:4,pinEnd:!0}),Y=A(H,W,G,h+100,m,{...k,segments:4,pinEnd:!0}),X=A(W,K,G,h+200,m,{...k,segments:4,pinStart:!0}),Z=j(W,G,q,V*.03),Q=(e,t)=>t?`${b(e[e.length-2])},${b(e[e.length-1])}`:`${b(e[0])},${b(e[1])}`,me=/* @__PURE__ */ new Map([[`complex`,`M${b(H)},${b(U)}L${Q(J,!1)}${M(J)}${N(Y)}Z`],[`complicated`,`M${Q(J,!1)}L${b(K)},${b(U)}L${Q(X,!0)}${N(X)}${N(J)}Z`],[`chaotic`,`M${Q(Y,!1)}${M(Y)}${M(Z)}L${b(H)},${b(q)}Z`],[`clear`,`M${Q(X,!1)}${M(X)}L${b(K)},${b(q)}L${Q(Z,!0)}${N(Z)}Z`]]),he=``;for(let[t,,,n]of I)he+=`<path class="pele-cynefin-region" data-id="${t}" d="${me.get(t)}" fill="${e(n)}" fill-opacity="0.14"/>`;let ge=`<g class="pele-cynefin-boundaries" fill="none" stroke="var(--_b)" stroke-dasharray="6 3"><path d="${P(J)}"/><path d="${P(Y)}"/><path d="${P(X)}"/><path class="pele-cynefin-cliff" d="${P(Z)}" stroke="var(--_l)" stroke-width="2" stroke-dasharray="none" stroke-linecap="round"/></g>`,_e=F(W,G,w,T),ve=`<path d="${_e}" fill="var(--_bg)"/><path class="pele-cynefin-region" data-id="confusion" d="${_e}" fill="${e(ae)}" fill-opacity="0.18" stroke="var(--_b)" stroke-dasharray="4 2"/>`,ye=e=>{let t=e.cy-e.h/2,r=S(e.title,e.cx,t+e.title.height/2,` class="pele-label" font-weight="var(--_hw)"`);t+=e.title.height;for(let n of e.subtitles)r+=S(n,e.cx,t+n.height/2,` class="pele-cynefin-subtitle" font-size="${c}" font-style="italic" fill="var(--_m)"`),t+=n.height;t+=ue-R;for(let i of e.badges)t+=R,r+=`<g class="pele-node${i.overflow?` pele-cynefin-overflow`:``}"${i.overflow?``:` data-id="${x(i.text)}"`}><rect x="${b(e.cx-i.w/2)}" y="${b(t)}" width="${b(i.w)}" height="${b(i.h)}" fill="var(--_bg)" stroke="var(--_b)"${i.overflow?` stroke-dasharray="3 2"`:``}${n}/>`+S(i.label,e.cx,t+i.h/2,` class="pele-label" font-size="${l}"${i.overflow?` fill="var(--_m)"`:``}`,f)+`</g>`,t+=i.h;return`<g class="pele-cynefin-domain" data-id="${e.name}">${r}</g>`},$=/* @__PURE__ */ new Map,be=``;I.forEach(([e,t,n],r)=>{let i=y[r];i.cx=H+E*(t+.5),i.cy=U+D*(n+.5),$.set(e,i),be+=ye(i)}),C.cx=W,C.cy=G,$.set(`confusion`,C),be+=ye(C);let xe=(e,t,n)=>e===C?((t-W)/(w+4))**2+((n-G)/(T+4))**2<=1:Math.abs(t-e.cx)<=e.w/2+8&&Math.abs(n-e.cy)<=e.h/2+8,Se=``,Ce=/* @__PURE__ */ new Map;for(let e of i.transitions){let t=$.get(e.from),n=$.get(e.to);if(!t||!n||t===n)continue;let i=e.from<e.to?`${e.from} ${e.to}`:`${e.to} ${e.from}`,a=Ce.get(i)??0;Ce.set(i,a+1);let o=n.cx-t.cx,s=n.cy-t.cy,l=Math.hypot(o,s)||1,d=(t.cx+n.cx)/2,p=(t.cy+n.cy)/2,m=-s*(d-W)+o*(p-G)>=0?1:-1,h=-s/l*m,g=o/l*m,_=(t!==C&&n!==C&&Math.abs(o)>1&&Math.abs(s)>1?2*(Math.hypot(w*h,T*g)+16):l*.15)+a*56,v=d+h*_,y=p+g*_,x=e=>{let r=1-e;return[r*r*t.cx+2*r*e*v+e*e*n.cx,r*r*t.cy+2*r*e*y+e*e*n.cy]},ne=(e,t,n,r)=>{for(let i=0;i<16;i++){let i=(t+n)/2;xe(e,...x(i))===r?t=i:n=i}return(t+n)/2},E=1;for(;E<=48&&xe(t,...x(E/48));)E++;if(E>48)continue;let D=ne(t,(E-1)/48,E/48,!0);for(;E<=48&&!xe(n,...x(E/48));)E++;let O=E>48?1:ne(n,(E-1)/48,E/48,!1),[re,ie]=x(D),[k,A]=x(O),j=(e,t,n)=>(1-D)*(1-O)*e+((1-D)*O+D*(1-O))*t+D*O*n,M=j(t.cx,v,n.cx),N=j(t.cy,y,n.cy),P=Math.hypot(k-M,A-N)||1,F=(k-M)/P,I=(A-N)/P,ae=te(`arrow_point`,k,A,F,I,`var(--_l)`);k-=F*ee(`arrow_point`),A-=I*ee(`arrow_point`);let L=``;if(e.label){let t=r(e.label,!1,u,c,se),[n,i]=x((D+O)/2),a=Math.abs(h)*t.width/2+Math.abs(g)*t.height/2+6,o=t.width/2+4,s=Math.min(Math.max(n+h*a,H+o),Math.max(K-o,H+o));L=S(t,s,i+g*a,` class="pele-edge-label" font-size="${c}"`,f)}Se+=`<g class="pele-edge" data-id="${e.from}-${e.to}"><path d="M${b(re)},${b(ie)}Q${b(M)},${b(N)} ${b(k)},${b(A)}" fill="none" stroke="var(--_l)"/>`+ae+L+`</g>`}let we=Math.ceil(Math.max(V,O.width)+2*d),Te=Math.ceil(pe+fe+2*d),Ee=S(O,H+V/2,d+O.height/2,` class="pele-title" font-weight="var(--_tw)"`)+`<g class="pele-cynefin-regions">${he}</g>`+ge+ve+be+(Se?`<g class="pele-edges">${Se}</g>`:``);return{svg:t(`cynefin`,we,Te,s,o,i,Ee),width:we,height:Te,links:[]}}var V={type:`cynefin`,parse:(e,t,n)=>w(E(e),n),render:fe};export{V as cynefin};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{a as e,c as t,d as n,f as r,i}from"./BGW36YJW-CJMhya8S.js";import{t as a}from"./DKTLEL5E-DciMwFJ1.js";import{_ as o,a as s,c,g as l,h as u,l as d,n as f,p,r as m,t as h,u as g}from"./EXE5EH6O-DR1IHCTr.js";import{s as _,u as v}from"./EFYWJBJK-CVywe_D5.js";import{t as y}from"./V44WA6U7-DYfX3OlM.js";import{n as b,r as x,t as S}from"./75JW6PN6-BFpDBuGN.js";import{D as C,E as w,d as T,f as E,h as D,p as O,s as k,u as A}from"./lazy-f3CuUNJZ.js";var j=/* @__PURE__ */ new Map([[`ui`,`ui`],[`pcr`,`processor`],[`processor`,`processor`],[`rmo`,`readmodel`],[`readmodel`,`readmodel`],[`cmd`,`command`],[`command`,`command`],[`evt`,`event`],[`event`,`event`]]),M=/* @__PURE__ */ new Map([[`trigger`,[0,`UI/Automation`,`UI/A: `]],[`state`,[100,`Command/Read Model`,`C/RM: `]],[`stream`,[200,`Events`,`Stream: `]]]);function N(e){return e===`ui`||e===`processor`?`trigger`:e===`event`?`stream`:`state`}function P(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`),r=(t!==-1&&n>t?e.slice(t+1,n):t===-1&&e.length>=2?e.slice(1,-1):``).replace(/\r/g,``).split(`
|
|
2
|
+
`);for(;r.length>0&&r[0].trim()===``;)r.shift();for(;r.length>0&&r[r.length-1].trim()===``;)r.pop();let i=1/0;for(let e of r)e.trim()!==``&&(i=Math.min(i,e.length-e.trimStart().length));return r.map(e=>e.slice(Math.min(i,e.length)).trimEnd()).join(`
|
|
3
|
+
`)}function F(e,t){let n=/* @__PURE__ */ new Set;for(let t of e.frames){if(n.has(t.name)){let n=O(e.$source,t.$offset).line;throw new A(`Duplicate event modeling frame ID "${t.name}" on line ${n}`,`semantic`,{type:`eventmodeling`,line:n})}n.add(t.name)}let r=/* @__PURE__ */ new Map;for(let t of e.dataEntities)r.has(t.name)||r.set(t.name,t.dataBlockValue);let i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,s=(e,t)=>{let n=N(e),r=t===void 0?n:`${n} ${t}`,o=i.get(r);if(!o){let[e,s,c]=M.get(n),l=e;t!==void 0&&(l=a.get(n)??e+1,a.set(n,l+1)),o={index:l,label:t===void 0?s:c+t,group:n,namespace:t},i.set(r,o)}return o},c=[],l=/* @__PURE__ */ new Map,u=[];e.frames.forEach((e,t)=>{let n=e.entityIdentifier.split(`.`),i=n.length===2?n[0]:void 0,a=j.get(e.modelEntityType)??`event`,o=e.dataInlineValue===void 0?void 0:P(e.dataInlineValue);if(e.dataReference){let t=r.get(e.dataReference.$refText);t!==void 0&&(o=P(t))}let d={id:e.name,kind:a,entity:e.entityIdentifier,name:n.length===2?n[1]:e.entityIdentifier,namespace:i,reset:e.$type===`EmResetFrame`,lane:s(a,i),data:o,dataType:e.dataType};if(c.push(d),l.set(d.id,d),e.sourceFrames.length>0){let t=new Set(e.sourceFrames.map(e=>e.$refText));for(let e of c)t.has(e.id)&&u.push({source:e,target:d})}else if(t>0&&!d.reset){for(let e=t-1;e>=0;e--)if(c[e].lane!==d.lane){u.push({source:c[e],target:d});break}}});let d=e=>e.map(e=>e.entityIdentifier.$refText);return{type:`eventmodeling`,title:e.title&&o(e.title)||t,accTitle:e.accTitle?f(e.accTitle).replace(/^\s+/g,``):void 0,accDescr:e.accDescr?g(e.accDescr).replace(/\n\s+/g,`
|
|
4
|
+
`):void 0,boxes:c,lanes:[...i.values()].sort((e,t)=>e.index-t.index),relations:u,notes:e.noteEntities.map(e=>({frame:e.sourceFrame.$refText,text:P(e.dataBlockValue),dataType:e.dataType})),specifications:e.gwtEntities.map(e=>({frame:e.sourceFrame.$refText,given:d(e.givenStatements),when:d(e.whenStatements),then:d(e.thenStatements)})),entities:e.modelEntities.map(e=>e.name)}}var I={name:`EM_ID`,pattern:/[_a-zA-Z][\w_]*/y},L=e=>({name:e,pattern:e,longer:[I]}),R=e=>({name:e,pattern:e}),z=[`resetframe`,`readmodel`,`processor`,`timeframe`,`command`,`entity`,`event`,`jsobj`,`figma`,`given`,`json`,`salt`,`html`,`text`,`data`,`note`,`when`,`then`,`rmo`,`cmd`,`evt`,`pcr`,`uri`],B=[{...p(`eventmodeling`),longer:[I]},...z.map(L),R(`->>`),L(`gwt`),L(`ui`),L(`md`),L(`tf`),R(`[[`),R(`]]`),L(`rf`),R("`"),R(`.`),I,{name:`EM_FID`,pattern:/\d{1,3}/y},{name:`EM_DATA_INLINE`,pattern:/\{(.*)\}|"(.*)"|'(.*)'/y},{name:`EM_DATA_BLOCK`,pattern:/\{[\t ]*\r?\n(?:[\S\s]*?\r?\n)?\}(?:\r?\n|(?!\S))/y},y(`EM_ACC_DESCR`),{...h,name:`EM_ACC_TITLE`},{...u(String.raw`\w`),name:`EM_TITLE`},{name:`EM_WS`,pattern:/\s+/y,hidden:!0},{...c,name:`EM_YAML`},{...d,name:`EM_DIRECTIVE`},{...s,name:`EM_SINGLE_LINE_COMMENT`},{name:`EM_ML_COMMENT`,pattern:/\/\*[\s\S]*?\*\//y,hidden:!0},{name:`EM_SL_COMMENT`,pattern:/\/\/[^\n\r]*/y,hidden:!0}],V=e=>B.findIndex(t=>t.name===e),H=e=>new Set(e.map(V)),U={keyword:0,arrow:V(`->>`),open:V(`[[`),close:V(`]]`),tick:V("`"),dot:V(`.`),id:V(`EM_ID`),frameId:V(`EM_FID`),inline:V(`EM_DATA_INLINE`),block:V(`EM_DATA_BLOCK`),accDescr:V(`EM_ACC_DESCR`),accTitle:V(`EM_ACC_TITLE`),title:V(`EM_TITLE`),entity:V(`entity`),data:V(`data`),note:V(`note`),gwt:V(`gwt`),given:V(`given`),when:V(`when`),then:V(`then`)},W=H([`tf`,`timeframe`]),G=H([`rf`,`resetframe`]),K=H([`rmo`,`readmodel`,`ui`,`cmd`,`command`,`evt`,`event`,`pcr`,`processor`]),q=H([`json`,`jsobj`,`figma`,`salt`,`uri`,`md`,`html`,`text`]);function ee(e){let t=new l(m(e,B,`eventmodeling`),B,`eventmodeling`),n={$type:`EventModel`,modelEntities:[],frames:[],dataEntities:[],noteEntities:[],gwtEntities:[],$source:e},r=e=>t.kinds[t.i]===e,i=(e,n)=>e.has(t.kinds[t.i])?t.take():t.fail(n),a=()=>{let e=t.expect(U.id);for(;t.accept(U.dot);)e+=`.`+t.expect(U.id);return e},o=()=>{if(!t.accept(U.tick))return;let e=i(q,`a data type`);return t.expect(U.tick),e},s=()=>{let e=[];do i(K,`an entity type`),e.push({$type:`EmGwtStatement`,entityIdentifier:{$refText:t.expect(U.id)}});while(K.has(t.kinds[t.i]));return e};for(t.expect(U.keyword);!r(-1);){let e=t.kinds[t.i];if(e===U.accDescr)n.accDescr=t.take();else if(e===U.accTitle)n.accTitle=t.take();else if(e===U.title)n.title=t.take();else if(e===U.entity)t.i++,n.modelEntities.push({$type:`EmModelEntity`,name:a()});else if(W.has(e)||G.has(e)){let s={$type:W.has(e)?`EmTimeFrame`:`EmResetFrame`,name:``,modelEntityType:``,entityIdentifier:``,sourceFrames:[],$offset:t.tokens.starts[t.i]};for(t.i++,s.name=t.expect(U.frameId),s.modelEntityType=i(K,`an entity type`),s.entityIdentifier=a();t.accept(U.arrow);)s.sourceFrames.push({$refText:t.expect(U.frameId)});if(t.accept(U.open)&&(s.dataReference={$refText:t.expect(U.id)},t.expect(U.close)),r(U.tick)||r(U.inline)){let e=o();e!==void 0&&(s.dataType=e),s.dataInlineValue=t.expect(U.inline)}n.frames.push(s)}else if(e===U.data){t.i++;let e={$type:`EmDataEntity`,name:t.expect(U.id),dataBlockValue:``},r=o();r!==void 0&&(e.dataType=r),e.dataBlockValue=t.expect(U.block),n.dataEntities.push(e)}else if(e===U.note){t.i++;let e={$type:`EmNoteEntity`,sourceFrame:{$refText:t.expect(U.frameId)},dataBlockValue:``},r=o();r!==void 0&&(e.dataType=r),e.dataBlockValue=t.expect(U.block),n.noteEntities.push(e)}else if(e===U.gwt){t.i++;let e={$type:`EmGwt`,sourceFrame:{$refText:t.expect(U.frameId)},givenStatements:[],whenStatements:[],thenStatements:[]};t.expect(U.given),e.givenStatements=s(),t.accept(U.when)&&(e.whenStatements=s()),t.expect(U.then),e.thenStatements=s(),n.gwtEntities.push(e)}else t.fail(`a frame, an entity, a data block, a note, or a specification`)}return n}var te=/* @__PURE__ */ new Map([[`command`,0],[`event`,1],[`readmodel`,2],[`processor`,6]]),J=12,Y=10,ne=96,re=16,ie=80,X=12,ae=8,oe=48,se=80,ce=8;function Z(e,t){let n=[];for(let r of C(e).split(`
|
|
5
|
+
`)){let e=r.length<=t?void 0:Array.from(r);if(e===void 0||e.length<=t)n.push(r);else for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t).join(``))}return n}function Q(e,t,n,r,i){let a=``;for(let i=0;i<e.length;i++)e[i]!==``&&(a+=`<tspan x="${w(t)}" y="${w(n+i*r)}">${T(e[i])}</tspan>`);return a===``?``:`<text${i} xml:space="preserve">${a}</text>`}function le(e,t,n){return a(n,r=>ue(e,t,n,r))}function ue(a,o,s,c){if(c)return pe(a,s);let l=s.fontSize??16,u=Math.round(l*.875),d=Math.round(l*.8125),f=Math.round(l*.75),p=Math.round(f*1.4),m=Math.round(d*1.5),h=s.measurer??k(s.fontFamily,s.fontFamilyMono),g=s.padding??8,y=(e,t,n)=>{let r=0;for(let i of e)r=Math.max(r,h.width(i,t,n));return r},b=/* @__PURE__ */ new Map,x=0;for(let e of a.lanes){let t=i(e.label,!1,h,d,4e3,1);x=Math.max(x,t.width),b.set(e,{lane:e,label:t,right:-1/0,y:0,h:0})}x+=2*X;let S=[],C=/* @__PURE__ */ new Map,T;for(let e of a.boxes){let t=b.get(e.lane),n=i(e.name,!1,h,u,4e3,1),r=e.data?Z(e.data,oe):[],a=Math.max(ne,Math.max(n.width,y(r,f,4))+2*J),o=2*Y+n.height+(r.length>0?6+r.length*p:0),s=0;if(T){let n=T.x+Math.max(T.w/2,T.w-ie);s=T.box.lane===e.lane?t.right+re:Math.max(n,t.right+re)}let c={box:e,name:n,data:r,x:s,y:0,w:a,h:o};t.right=s+a,t.h=Math.max(t.h,o),S.push(c),C.set(e,c),T=c}let O=0;for(let e of S)O=Math.max(O,e.x+e.w);let A=x+O+X,j=i(a.title,!1,h,l,4e3,1),M=j.height>0?j.height+12:0,N=g,P=g+M,F=P,I=``;for(let e of b.values())e.y=F,e.h+=2*X,I+=`<g class="pele-cluster pele-em-lane" data-id="${E(e.lane.label)}"><rect x="${w(N)}" y="${w(F)}" width="${w(A)}" height="${w(e.h)}" fill="var(--_s)"${r}/>`+D(e.label,N+X+e.label.width/2,F+e.h/2,` class="pele-cluster-label" font-size="${d}" font-weight="var(--_hw)" fill="var(--_m)"`)+`</g>`,F+=e.h+ae;let L=b.size>0?F-ae:P,R=``;for(let n of S){let i=b.get(n.box.lane);n.x+=N+x,n.y=i.y+(i.h-n.h)/2;let a=te.get(n.box.kind),o=`x="${w(n.x)}" y="${w(n.y)}" width="${w(n.w)}" height="${w(n.h)}"`,s=a===void 0?`<rect ${o} fill="var(--_bg)" stroke="var(--_b)"${r}/>`:`<rect ${o} fill="var(--_bg)"${r}/><rect ${o} fill="${e(a)}" fill-opacity="0.22" stroke="${e(a)}"${r}/>`,c=n.y+Y+n.name.height/2,l=D(n.name,n.x+n.w/2,c,` class="pele-label" font-size="${u}" font-weight="var(--_hw)"`)+Q(n.data,n.x+J,n.y+Y+n.name.height+6+p/2+f*.35,p,` class="pele-em-data" font-family="${t}" font-size="${f}"`);R+=`<g class="pele-node pele-em-${n.box.kind}${n.box.reset?` pele-em-reset`:``}" data-id="${E(n.box.id)}">${s}${l}</g>`}let z=``,B=_(`arrow_point`);for(let e of a.relations){let t=C.get(e.source),n=C.get(e.target);if(!t||!n||t===n)continue;let r,i;if(t.box.lane===n.box.lane){let e=n.x>=t.x,a=e?t.x+t.w:t.x,o=e?n.x:n.x+n.w,s=t.y+t.h/2,c=n.y+n.h/2,l=o>=a?1:-1;r=`M${w(a)},${w(s)}L${w(o-l*B)},${w(c)}`,i=v(`arrow_point`,o,c,l,0,`var(--_l)`)}else{let e=n.y>t.y,a=Math.max(t.x,n.x),o=Math.min(t.x+t.w,n.x+n.w),s=e=>Math.min(24,e/4),c=o-a>=16?(a+o)/2:n.x>t.x?t.x+t.w-s(t.w):t.x+s(t.w),l=o-a>=16?c:n.x>t.x?n.x+s(n.w):n.x+n.w-s(n.w),u=e?t.y+t.h:t.y,d=e?n.y:n.y+n.h,f=e?1:-1,p=d-f*B,m=(u+p)/2;r=c===l?`M${w(c)},${w(u)}V${w(p)}`:`M${w(c)},${w(u)}C${w(c)},${w(m)} ${w(l)},${w(m)} ${w(l)},${w(p)}`,i=v(`arrow_point`,l,d,0,f,`var(--_l)`)}z+=`<g class="pele-edge" data-id="${E(e.source.id)}-${E(e.target.id)}"><path d="${r}" fill="none" stroke="var(--_l)"/>${i}</g>`}let V=/* @__PURE__ */ new Map;for(let e of a.boxes)V.set(e.id,e.name);let H=``,U=0,W=(e,t,n,a)=>{let o=i(`${t} · ${n}${V.has(n)?` `+V.get(n):``}`,!1,h,d,4e3,1),s=Math.max(o.width,y(a,d,0))+2*J,c=2*Y+o.height+a.length*m,l=L+(H===``&&b.size===0?0:ce);H+=`<g class="pele-em-${e}" data-id="${E(n)}"><rect x="${w(N)}" y="${w(l)}" width="${w(s)}" height="${w(c)}" fill="var(--_bg)" stroke="var(--_b)"${r}/>`+D(o,N+J+o.width/2,l+Y+o.height/2,` font-size="${d}" font-weight="var(--_hw)"`)+Q(a,N+J,l+Y+o.height+m/2+d*.35,m,` font-size="${d}"`)+`</g>`,L=l+c,U=Math.max(U,s)};for(let e of a.notes)W(`note`,`Note`,e.frame,Z(e.text,se));for(let e of a.specifications){let t=[`Given ${e.given.join(`, `)}`];e.when.length>0&&t.push(`When ${e.when.join(`, `)}`),t.push(`Then ${e.then.join(`, `)}`),W(`specification`,`Given / When / Then`,e.frame,t.flatMap(e=>Z(e,se)))}let G=Math.max(b.size>0?A:0,U,j.width),K=Math.ceil(G+2*g),q=Math.ceil(L+g),ee=D(j,K/2,g+j.height/2,` class="pele-title" font-weight="var(--_tw)"`)+I+z+R+H;return{svg:n(`eventmodeling`,K,q,l,s,a,ee),width:K,height:q,links:[]}}var $=8,de=120,fe=20;function pe(a,o){let s=o.fontSize??16,c=Math.round(s*.875),l=Math.round(s*.75),u=o.padding??8,d=o.measurer??k(o.fontFamily,o.fontFamilyMono),f=Math.max(160,(o.maxWidth??320)-2*u),p=new Map(a.boxes.map((e,t)=>[e,t])),m=/* @__PURE__ */ new Map,h=/* @__PURE__ */ new Set;for(let e of a.relations){let t=p.get(e.source),n=p.get(e.target);if(t===void 0||n===void 0||t===n)continue;if(Math.abs(t-n)<2){h.add(a.boxes[Math.max(t,n)]);continue}let r=m.get(e.target);r?(r[0]=Math.min(r[0],t),r[1]=Math.max(r[1],t)):m.set(e.target,[Math.min(t,n),Math.max(t,n)])}let g=/* @__PURE__ */ new Map,y=[];for(let[e,[t,n]]of[...m].sort((e,t)=>e[1][0]-t[1][0])){let r=y.findIndex(e=>e<t);r<0&&(r=y.length),y[r]=n,g.set(e,r)}let O=24+$*Math.max(0,y.length-1),A=Math.max(de,f-O),j=A-2*J,M=i(a.title,!1,d,s,f,1),N=u+(M.height?M.height+12:0),P=u+M.height,F=Math.max(M.width,A+O),I=``,L=``,R=``,z=/* @__PURE__ */ new Map,B=(e,t,n=0)=>S(C(e),d,t,j,n);a.boxes.forEach((n,a)=>{let o=h.has(n)?j-fe:j,s=x(i(n.lane.label,!1,d,c,o,1),d,o),f=i(n.name,!1,d,c,j-36,1),p=n.data?B(n.data,l,4):void 0,m=Math.max(A,s.width+2*J,f.width+2*J+36,(p?.width??0)+2*J),g=s.height+12,_=2*Y+f.height+(p?p.height+6:0),v=te.get(n.kind),y=N+g,S=`x="${w(u)}" y="${w(y)}" width="${w(m)}" height="${w(_)}"`;I+=`<g class="pele-cluster pele-em-lane" data-id="${E(n.lane.label)}">`+b(s,u+J,N,` class="pele-cluster-label" font-size="${c}" font-weight="var(--_hw)" fill="var(--_m)"`)+`<g class="pele-node pele-em-${n.kind}${n.reset?` pele-em-reset`:``}" data-id="${E(n.id)}"><rect ${S} fill="var(--_bg)" stroke="var(--_b)"${r}/>`+(v===void 0?``:`<rect ${S} fill="${e(v)}" fill-opacity="0.22" stroke="${e(v)}"${r}/>`)+D(f,u+J+f.width/2,y+Y+f.height/2,` class="pele-label" font-size="${c}" font-weight="var(--_hw)"`)+`<text class="pele-em-frame" x="${w(u+m-J)}" y="${w(y+Y+c)}" text-anchor="end" font-size="${l}" fill="var(--_m)">${T(n.id)}</text>`+(p?Q(p.lines.map(e=>e.map(e=>e.text).join(``)),u+J,y+Y+f.height+6+p.lineHeight/2+l*.35,p.lineHeight,` class="pele-em-data" font-family="${t}" font-size="${l}"`):``)+`</g></g>`,z.set(n,{y,h:_,w:m,index:a,lane:s.width}),F=Math.max(F,m+O),P=y+_,N=P+28});for(let e of a.relations){let t=z.get(e.source),n=z.get(e.target);if(!t||!n||t===n)continue;let r=n.y>t.y,i=r?1:-1,a=r?t.y+t.h:t.y,o=r?n.y:n.y+n.h,s,c;if(Math.abs(t.index-n.index)===1){let e=u+Math.max(Math.min(t.w,n.w)/2,J+(r?n:t).lane+16);s=`M${w(e)},${w(a)}V${w(o-i*_(`arrow_point`))}`,c=v(`arrow_point`,e,o,0,i,`var(--_l)`)}else{let r=u+F-O+12+$*(g.get(e.target)??0),i=t.y+t.h/2-5,a=n.y+n.h/2+5;s=`M${w(u+t.w)},${w(i)}H${w(r)}V${w(a)}H${w(u+n.w+_(`arrow_point`))}`,c=v(`arrow_point`,u+n.w,a,-1,0,`var(--_l)`)}L+=`<g class="pele-edge" data-id="${E(e.source.id)}-${E(e.target.id)}"><path d="${s}" fill="none" stroke="var(--_l)"/>${c}</g>`}let V=new Map(a.boxes.map(e=>[e.id,e.name])),H=(e,t,n,a)=>{let o=i(`${t} · ${n}${V.has(n)?` `+V.get(n):``}`,!1,d,c,j,1),s=B(a,c),l=Math.max(A,o.width+2*J,s.width+2*J),f=2*Y+o.height+s.height;R+=`<g class="pele-em-${e}" data-id="${E(n)}"><rect x="${w(u)}" y="${w(N)}" width="${w(l)}" height="${w(f)}" fill="var(--_bg)" stroke="var(--_b)"${r}/>`+D(o,u+J+o.width/2,N+Y+o.height/2,` font-size="${c}" font-weight="var(--_hw)"`)+Q(s.lines.map(e=>e.map(e=>e.text).join(``)),u+J,N+Y+o.height+s.lineHeight/2+c*.35,s.lineHeight,` font-size="${c}"`)+`</g>`,P=N+f,N=P+ce,F=Math.max(F,l)};for(let e of a.notes)H(`note`,`Note`,e.frame,e.text);for(let e of a.specifications){let t=[`Given ${e.given.join(`, `)}`];e.when.length&&t.push(`When ${e.when.join(`, `)}`),t.push(`Then ${e.then.join(`, `)}`),H(`specification`,`Given / When / Then`,e.frame,t.join(`
|
|
6
|
+
`))}let U=Math.ceil(F+2*u),W=Math.ceil(P+u),G=D(M,U/2,u+M.height/2,` class="pele-title" font-weight="var(--_tw)"`)+L+I+R;return{svg:n(`eventmodeling`,U,W,s,o,a,G),width:U,height:W,links:[]}}var me={type:`eventmodeling`,keepComments:!0,parse:(e,t,n)=>F(ee(e),n),render:le};export{me as eventmodeling};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ArtifactPage-4GoBqSpU.js","assets/ui-CFB4wQfF.js","assets/artifacts-DU9uRgs1.js","assets/toast-Cuu2K0hx.js","assets/pane-layout-0RrLHGDr.js","assets/index-D-xG9nrc.js","assets/plural-Bspvoqfq.js","assets/MediaImage-Ds_JUx3a.js","assets/preload-helper-BLdHbfdN.js","assets/index-C3ci5UtY.css","assets/ArtifactWorkbench-CuHgARMk.js","assets/source-BWlvaODa.js","assets/ArtifactWorkbench-9eTj1CeW.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{B as e,C as t,F as n,G as r,I as i,J as a,N as o,R as s,S as c,T as l,U as u,W as d,Z as f,k as p,tt as m,u as h,x as g,y as _}from"./ui-CFB4wQfF.js";import{o as v,s as y}from"./toast-Cuu2K0hx.js";import{o as b,t as x}from"./artifacts-DU9uRgs1.js";import{t as S}from"./preload-helper-BLdHbfdN.js";import{nt as C,rt as w,t as T,tt as E}from"./index-D-xG9nrc.js";import{a as D,c as O,i as k,n as A,o as j,r as M,s as N,t as P}from"./source-BWlvaODa.js";var F=p(`<p class="lib-intro muted">Everything your sessions made, across workspaces.`),I=p(`<div class=lib-filters><label><span>Workspace</span><select aria-label=Workspace><option value>All workspaces</option><option value=none>No workspace</option></select></label><label><span>Type</span><select aria-label=Type><option value>All types</option></select></label><label><span>Show</span><select aria-label=Show><option value>Artifacts</option><option value=preview>Previews`),L=p(`<p class=muted role=status>Loading artifacts…`),R=p(`<option>`),z=p(`<p class="lib-note err"role=alert> <button type=button class="btn small">Retry`),B=p(`<p class=lib-note>`),V=p(`<ul class=lib-list aria-label=Artifacts>`),H=p(`<p class="lib-note err"role=alert>`),U=p(`<button type=button class="btn lib-more">Load more`),W=p(`<button type=button class="btn small lib-keep"title="Keep it as a normal artifact (previews expire)">Keep`),G=p(`<p class=lib-desc>`),K=p(`<li class=lib-row><a class=lib-title></a><button type=button class="btn small lib-pane">Open in pane</button><span class=lib-meta><span class=lib-kind></span><span></span><span>`),q=f(()=>S(()=>import(`./ArtifactPage-4GoBqSpU.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),J={markdown:`Markdown`,code:`Code`,image:`Image`,table:`Table`,chart:`Chart`,dashboard:`Dashboard`,html:`HTML`,app:`App`,file:`File`};function Y(t){return e(i,{get when(){return t.rest[0]},keyed:!0,get fallback(){return e(Z,{})},children:t=>e(q,{id:t})})}var X=(e,t)=>e.workspace===t.workspace&&e.type===t.type&&e.origin===t.origin;function Z(){let f=d(()=>N(v().search),void 0,{equals:X}),[p,h]=a({status:`loading`}),g=k(P,h);u(()=>g.load(f()));let[_,b]=a(new Map);m(()=>void A().then(e=>b(new Map(e.map(e=>[e.id,e.title])))));let S=e=>y(`/artifacts${j({...f(),...e})}`),[C,w]=a(),E=async e=>w(await g.keep(e)),M=d(()=>{let e=new Set(_().keys()),t=p();if(t.status===`ready`)for(let n of t.items)n.workspaceID&&e.add(n.workspaceID);let n=f().workspace;return n&&n!==`none`&&e.add(n),[...e].map(e=>({id:e,label:O(e,_())}))}),W=()=>{let e=p();return e.status===`error`&&e.error.kind!==`error`};return e(T,{title:`Artifacts`,get children(){return[F(),e(i,{get when(){return!W()},get children(){var t=I(),n=t.firstChild,i=n.firstChild.nextSibling,a=i.firstChild,s=a.nextSibling,l=n.nextSibling,u=l.firstChild.nextSibling,d=u.firstChild,p=l.nextSibling.firstChild.nextSibling,m=p.firstChild,h=m.nextSibling;return i.addEventListener(`change`,e=>S({workspace:e.currentTarget.value})),c(i,e(o,{get each(){return M()},children:e=>(()=>{var t=R();return c(t,()=>e.label),r(()=>t.selected=f().workspace===e.id),r(()=>t.value=e.id),t})()}),null),u.addEventListener(`change`,e=>S({type:e.currentTarget.value})),c(u,e(o,{get each(){return[...x]},children:e=>(()=>{var t=R();return t.value=e,c(t,()=>J[e]),r(()=>t.selected=f().type===e),t})()}),null),p.addEventListener(`change`,e=>S({origin:e.currentTarget.value===`preview`?`preview`:void 0})),r(e=>{var t=f().workspace===``,n=f().workspace===`none`,r=f().type===``,i=!f().origin,o=f().origin===`preview`;return t!==e.e&&(a.selected=e.e=t),n!==e.t&&(s.selected=e.t=n),r!==e.a&&(d.selected=e.a=r),i!==e.o&&(m.selected=e.o=i),o!==e.i&&(h.selected=e.i=o),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),t}}),e(s,{get children(){return[e(n,{get when(){return p().status===`loading`},get children(){return L()}}),e(n,{get when(){return t(()=>p().status===`error`)()&&p()},children:t=>{let n=()=>t().error;return e(i,{get when(){return n().kind===`error`},get fallback(){return(()=>{var e=B();return c(e,()=>n().text),e})()},get children(){var e=z(),t=e.firstChild,r=t.nextSibling;return c(e,()=>n().text,t),r.$$click=()=>g.reload(),e}})}}),e(n,{get when(){return t(()=>p().status===`ready`)()&&p()},children:t=>{let n=()=>t();return[e(i,{get when(){return n().items.length},get fallback(){return(()=>{var e=B();return c(e,()=>D(f(),n().more)),e})()},get children(){var t=V();return c(t,e(o,{get each(){return n().items},children:t=>e($,{item:t,get names(){return _()},onKeep:E})})),t}}),e(i,{get when(){return C()},get children(){var e=H();return c(e,C),e}}),e(i,{get when(){return n().moreError},get children(){var e=H();return c(e,()=>n().moreError),e}}),e(i,{get when(){return n().more},get children(){var e=U();return e.$$click=()=>g.more(),r(t=>{var r=n().loadingMore,i=n().loadingMore;return r!==t.e&&(e.disabled=t.e=r),i!==t.t&&l(e,`aria-busy`,t.t=i),t},{e:void 0,t:void 0}),e}})]}})]}})]}})}function Q(e,t){return e.workspaceID?O(e.workspaceID,t):`Private`}function $(t){let n=()=>t.item;return(()=>{var a=K(),o=a.firstChild,s=o.nextSibling,u=s.nextSibling,d=u.firstChild,f=d.nextSibling,p=f.nextSibling;return _(a,`dragend`,E),a.addEventListener(`dragstart`,e=>C(e,{target:{artifactID:n().id},label:n().title||`Untitled`})),c(o,()=>n().title||`Untitled`),s.$$click=()=>b(n().id),c(a,e(i,{get when(){return n().origin===`preview`},get children(){var e=W();return e.$$click=()=>t.onKeep(n()),r(()=>l(e,`aria-label`,`Keep ${n().title||`Untitled`} as an artifact`)),e}}),u),c(d,()=>J[n().kind]),c(f,()=>Q(n(),t.names)),c(p,()=>h(n().updatedAt)),c(a,e(i,{get when(){return n().description},get children(){var e=G();return c(e,()=>n().description),e}}),null),r(e=>{var t=n().id,r=!w(),i=M(n().id),c=`Open ${n().title||`Untitled`} in a pane`;return t!==e.e&&l(a,`data-artifact`,e.e=t),r!==e.t&&l(a,`draggable`,e.t=r),i!==e.a&&l(o,`href`,e.a=i),c!==e.o&&l(s,`aria-label`,e.o=c),e},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()}g([`click`]);export{Y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dialog.media-view{background:var(--side);flex-direction:column;width:96vw;max-width:96vw;height:92vh;max-height:92vh}.dialog.media-view[open]{display:flex}.dialog.media-view .dialog-head h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dialog.media-view .dialog-body{flex-direction:column;flex:1;min-height:0;max-height:none;padding:0 14px 10px;display:flex;overflow:hidden}.media-view-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:zoom-in;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.media-view-stage img{object-fit:contain;transform-origin:50%;will-change:transform;max-width:100%;max-height:100%}.media-view-stage img.fill{width:100%;height:100%}.media-view-note{color:var(--muted);font-size:.85em}.media-view-bar{justify-content:center;align-items:center;gap:10px;padding-top:8px;display:flex}.media-view-bar:empty{display:none}.media-download{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.media-download .icon{width:14px;height:14px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,B as t,E as n,G as r,I as i,J as a,S as o,T as s,U as c,b as l,et as u,i as d,k as f,r as p,t as m,x as h}from"./ui-CFB4wQfF.js";import{i as g}from"./MediaImage-Ds_JUx3a.js";var _=f(`<div class=media-view-stage>`),v=f(`<span class="media-view-count muted small"> / `),y=f(`<div class=media-view-bar>`),b=f(`<p class=media-view-note>Couldn't load this image.`),x=f(`<p class=media-view-note>Loading…`),S=f(`<img decoding=async referrerpolicy=no-referrer>`),C=f(`<a class="btn small media-download"rel=noopener> Download`),w=6,T=(e,t,n)=>Math.min(n,Math.max(t,e));function E(f){let h=()=>f.items[T(f.index,0,Math.max(0,f.items.length-1))],E=()=>f.items.length>1,[D,O]=a(),[k,A]=a(!1),[j,M]=a(1),[N,P]=a({x:0,y:0}),F=()=>(M(1),P({x:0,y:0}));c(e([()=>f.open,()=>h()?.src],([e,t])=>{if(F(),A(!1),O(void 0),!e||!t)return;let n=!0;return g(t).then(e=>n&&O(e),()=>n&&A(!0)),()=>n=!1}));let I=e=>{E()&&f.onIndex?.((f.index+e+f.items.length)%f.items.length)};c(()=>{if(!f.open||!E())return;let e=e=>{e.key===`ArrowLeft`?I(-1):e.key===`ArrowRight`&&I(1)};window.addEventListener(`keydown`,e),u(()=>window.removeEventListener(`keydown`,e))});let L=new Map,R,z=()=>{let[e,t]=[...L.values()];return e&&t?Math.hypot(e.x-t.x,e.y-t.y):0},B=e=>{e.currentTarget.setPointerCapture?.(e.pointerId),L.set(e.pointerId,{x:e.clientX,y:e.clientY}),L.size===2&&(R={distance:z(),scale:j()})},V=e=>{let t=L.get(e.pointerId);t&&(L.set(e.pointerId,{x:e.clientX,y:e.clientY}),L.size===2&&R&&R.distance>0?M(T(R.scale*z()/R.distance,1,w)):L.size===1&&j()>1&&P(n=>({x:n.x+e.clientX-t.x,y:n.y+e.clientY-t.y})))},H=e=>{L.delete(e.pointerId),L.size<2&&(R=void 0),j()<=1&&F()};return t(m,{get open(){return f.open},get title(){return f.title??h()?.name??`Image`},class:`media-view`,get onClose(){return f.onClose},get children(){return[(()=>{var e=_();return e.addEventListener(`wheel`,e=>{e.preventDefault(),M(t=>T(t*Math.exp(-e.deltaY/300),1,w)),j()<=1&&F()}),e.$$dblclick=()=>j()>1?F():M(2.5),e.addEventListener(`pointercancel`,H),e.$$pointerup=H,e.$$pointermove=V,e.$$pointerdown=B,o(e,t(i,{get when(){return!k()},get fallback(){return b()},get children(){return t(i,{get when(){return D()},get fallback(){return x()},children:e=>(()=>{var t=S();return s(t,`draggable`,!1),r(r=>{var i=e(),a=h()?.mime===`image/svg+xml`?`fill`:void 0,o=h()?.name??`Image`,c=`translate(${N().x}px, ${N().y}px) scale(${j()})`;return i!==r.e&&s(t,`src`,r.e=i),a!==r.t&&l(t,r.t=a),o!==r.a&&s(t,`alt`,r.a=o),c!==r.o&&n(t,`transform`,r.o=c),r},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()})}})),e})(),(()=>{var e=y();return o(e,t(i,{get when(){return E()},get children(){return[t(d,{icon:`back`,label:`Previous image`,onClick:()=>I(-1)}),(()=>{var e=v(),t=e.firstChild;return o(e,()=>f.index+1,t),o(e,()=>f.items.length,null),e})(),t(d,{icon:`chevron`,label:`Next image`,onClick:()=>I(1)})]}}),null),o(e,t(i,{get when(){return h()?.download},children:e=>(()=>{var n=C(),i=n.firstChild;return o(n,t(p,{name:`download`}),i),r(t=>{var r=e(),i=h()?.name.split(`/`).pop()||`image`;return r!==t.e&&s(n,`href`,t.e=r),i!==t.t&&s(n,`download`,t.t=i),t},{e:void 0,t:void 0}),n})()}),null),e})()]}})}h([`pointerdown`,`pointermove`,`pointerup`,`dblclick`]);export{E as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Lightbox-Du56MXGX.js","assets/ui-CFB4wQfF.js","assets/Lightbox-C8KNKwOA.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{A as e,B as t,C as n,F as r,G as i,I as a,J as o,L as s,N as c,O as l,R as u,S as d,T as f,U as p,Z as m,b as h,et as g,k as _,r as v,tt as ee,x as y}from"./ui-CFB4wQfF.js";import{t as b}from"./preload-helper-BLdHbfdN.js";var x=51200;function S(e){let t=e.toLowerCase();return t===`mermaid`||t===`mmd`}var C=/^(`{3,}|~{3,})\s*([^\s`]*)/,w=/^(`{3,}|~{3,})\s*$/,T=/^[\s>]*/,E=/^(?:[-*+]|\d{1,9}[.)])\s+/;function D(e){let t;for(let n of e.split(/\r\n?|\n/)){let e=n.replace(T,``);if(t){let n=w.exec(e);n&&n[1][0]===t[0]&&n[1].length>=t.length&&(t=void 0);continue}e=e.replace(E,``).replace(T,``);let r=C.exec(e);r&&(t=r[1])}return t!==void 0}function O(e){let t=[],n;for(let r of e.split(`
|
|
3
|
+
`)){if(n){let e=w.exec(r.trim()),i=!!e&&e[1][0]===n.marker[0]&&e[1].length>=n.marker.length;n.diagram||t.push(r),i&&(n=void 0);continue}let e=/^\s{0,3}(`{3,}|~{3,})\s*([^\s`]*)/.exec(r);e?(n={marker:e[1],diagram:S(e[2])},t.push(n.diagram?`a diagram`:r)):t.push(r)}return t.join(`
|
|
4
|
+
`)}function k(e){return e.length>51200||new TextEncoder().encode(e).length>x}var A=/<script|foreignObject|\son\w+=|javascript:|<a[\s>]|<image/i;function j(e){return A.test(e)}function M(e){let t=3735928559,n=1103547991;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(4294967296*(2097151&n)+(t>>>0)).toString(36)}function N(e,t){return`${M(`${e}\u0000${t}`)}.${e.length.toString(36)}`}var te=/^[a-z][a-z0-9-]*$/,ne=/^[#\w\s,.()%'+-]*$/,P=/^(\s*<svg\b)([^>]*)>/;function F(e,t){let n=P.exec(e);if(!n)return e;let r=``;for(let[e,n]of Object.entries(t)){let t=n.replace(/"/g,`'`).trim();te.test(e)&&t&&ne.test(t)&&!/url\(|expression\(/i.test(t)&&(r+=`--pele-${e}:${t};`)}if(!r)return e;let i=n[2],a=/\sstyle="/.exec(i);return(a?`${n[1]}${i.slice(0,a.index+a[0].length)}${r}${i.slice(a.index+a[0].length)}>`:`${n[1]} style="${r}"${i}>`)+e.slice(n[0].length)}function I(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}var L={maxBytes:8388608,maxPixels:4e7,maxSide:16384,chunkBytes:524288,perRow:8},R=[`image/png`,`image/jpeg`,`image/webp`,`image/gif`,`image/svg+xml`],re=/^f(0|[1-9]\d{0,2})$/,ie=/^t(0|[1-9]\d{0,3})\.(0|[1-9]\d{0,2})$/,ae=/^p:([A-Za-z0-9_-]+)$/;function oe(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function se(e){if(e.length%4!=1)try{let t=atob(e.replace(/-/g,`+`).replace(/_/g,`/`));return Uint8Array.from(t,e=>e.charCodeAt(0))}catch{return}}function ce(e){return`p:${oe(new TextEncoder().encode(e))}`}function le(e){if(typeof e!=`string`||e.length>5468)return;let t=re.exec(e);if(t)return{kind:`file`,index:Number(t[1])};let n=ie.exec(e);if(n)return{kind:`tool`,part:Number(n[1]),item:Number(n[2])};let r=ae.exec(e);if(!r)return;let i=se(r[1]);if(!i||i.length===0||i.length>4096)return;let a;try{a=new TextDecoder(`utf-8`,{fatal:!0}).decode(i)}catch{return}if(!(a.includes(`\0`)||ce(a)!==e))return{kind:`path`,path:a}}function ue(e,t){return e===void 0||!Number.isFinite(e)||e<=524288?`auto`:t?.saveData===!0||t?.type===`cellular`||de.has(t?.effectiveType??``)?`tap`:`auto`}var de=new Set([`2g`,`slow-2g`]),z=e=>typeof e==`number`&&e>524288,B={text:`Couldn't load it: try again`,retry:!0},V={text:`Not in this session's files`,retry:!1},H={offline:{text:`The machine is offline`,retry:!0},not_found:V,path:V,hidden:V,too_large:{text:`Too large to show`,retry:!1},dimensions:{text:`Too large to show`,retry:!1},type:{text:`Not an image`,retry:!1},unsupported:{text:`This machine's harness can't share images`,retry:!1},rate_limited:B,integrity:B,bad_answer:B,timeout:B,disabled:{text:`Web images are turned off on this hub`,retry:!1},refused:{text:`The site's address is not allowed`,retry:!1},not_image:{text:`Not an image`,retry:!1},upstream:{text:`The site did not answer`,retry:!0},bad_url:{text:`Not a web address the hub can fetch`,retry:!1}},fe={404:`not_found`,409:`offline`,413:`too_large`,415:`type`,422:`unsupported`};function U(e,t){let n=t?H[t]:void 0;if(n)return{...n};if(e===400)return{text:`Not an image of this session`,retry:!1};let r=fe[e];return{...r?H[r]:B}}function pe(e){return e<1024?`${Math.round(e)} B`:e<1048576?`${Math.round(e/1024)} KB`:`${Number((e/1048576).toFixed(1))} MB`}function me(e,t){return[e===`screenshot`?`Screenshot`:`Image`,...t===void 0?[]:[pe(t)],`Tap to load`].join(` · `)}function W(e,t){let n=e.href;if(n&&/^https?:/i.test(n))return{kind:`remote`,href:n};let r=e.src&&t?.length?t.find(t=>t.name===e.src):void 0;return r?{kind:`local`,image:r}:n?.startsWith(`/artifacts/`)?{kind:`artifact`,href:n}:{kind:`unsafe`}}function he(e,t){let n=[];if(!t?.length)return n;let r=e=>{for(let i of e)if(i.type===`image`){let e=W(i,t);e.kind===`local`&&!n.includes(e.image)&&n.push(e.image)}else`children`in i&&r(i.children)},i=e=>{for(let t of e)if(t.type===`paragraph`||t.type===`heading`)r(t.children);else if(t.type===`quote`)i(t.blocks);else if(t.type===`list`)for(let e of t.items)i(e.blocks);else if(t.type===`table`)for(let e of[t.head,...t.rows])for(let t of e)r(t)};return i(e),n}function G(e){let t=0,n=[],r=()=>{t++;let e=!1;return()=>{e||(e=!0,t--,n.shift()?.grant())}};return{acquire(i){return i?.aborted?Promise.reject(Error(`aborted`)):t<e?Promise.resolve(r()):new Promise((e,t)=>{let a={grant:()=>{i?.removeEventListener(`abort`,o),e(r())}},o=()=>{let e=n.indexOf(a);e>=0&&n.splice(e,1),t(Error(`aborted`))};i?.addEventListener(`abort`,o,{once:!0}),n.push(a)})},active:()=>t}}var K=class extends Error{reason;retryAfterMs;status;code;constructor(e,t,n=0,r){super(e.text),this.reason=e,this.retryAfterMs=t,this.status=n,this.code=r}},q=(e,t,n)=>new K(U(e,t),n,e,t);function ge(e={}){let t=e.fetch??((...e)=>fetch(...e)),n=e.objectURL??(e=>URL.createObjectURL(e)),r=e.revokeURL??(e=>URL.revokeObjectURL(e)),i=e.timeoutMs??7e4,a=e.maxBytes??L.maxBytes,o=e.keep??96,s=e.keepBytes??50331648,c=e.slots??G(e.limit??3),l=new Map,u=new Map,d=new Map;async function f(e){let r=await c.acquire(),o=new AbortController,s=!1,l=setTimeout(()=>(s=!0,o.abort()),i);try{let r;try{r=await t(e,{credentials:`same-origin`,referrerPolicy:`no-referrer`,signal:o.signal})}catch{throw q(s?504:0,s?`timeout`:void 0)}if(!r.ok){let e=await r.json().catch(()=>({})),t=typeof e.code==`string`?e.code:typeof e.error?.code==`string`?e.error.code:void 0,n=Number(r.headers.get(`retry-after`));throw q(r.status,t,Number.isFinite(n)&&n>0?Math.min(n,30)*1e3:void 0)}let i=(r.headers.get(`content-type`)??``).split(`;`)[0].trim().toLowerCase();if(!R.includes(i))throw await r.body?.cancel().catch(()=>{}),q(415,`type`);let c=Number(r.headers.get(`content-length`));if(Number.isFinite(c)&&c>a)throw await r.body?.cancel().catch(()=>{}),q(413,`too_large`);let l=[],u=0,d=r.body?.getReader(),f=new Promise((e,t)=>o.signal.addEventListener(`abort`,()=>t(Error(`aborted`)),{once:!0}));f.catch(()=>{});try{for(;d;){let{done:e,value:t}=await Promise.race([d.read(),f]);if(e)break;if(u+=t.byteLength,u>a)throw await d.cancel().catch(()=>{}),q(413,`too_large`);l.push(t)}}catch(e){throw d?.cancel().catch(()=>{}),e instanceof K?e:q(s?504:0,s?`timeout`:void 0)}return i===`image/svg+xml`?{url:I(new TextDecoder().decode(_e(l,u))),mime:i,bytes:u}:{url:n(new Blob(l,{type:i})),mime:i,bytes:u}}finally{clearTimeout(l),r()}}let p=0;function m(e){let t=l.get(e);t&&(l.delete(e),p-=t.bytes,t.url.startsWith(`blob:`)&&r(t.url))}function h(e,t){for(l.set(e,t),p+=t.bytes;l.size>1&&(l.size>o||p>s);)m(l.keys().next().value)}return{load(e){let t=l.get(e);if(t)return Promise.resolve(t);let n=u.get(e);if(n)return Promise.reject(n);let r=d.get(e);if(r)return r;let i=f(e).then(t=>(d.delete(e),h(e,t),t),t=>{d.delete(e);let n=t instanceof K?t:q(0);throw u.set(e,n),n});return d.set(e,i),i},forget(e){u.delete(e)},drop:m,cached:e=>l.get(e)?.url,inFlight:()=>c.active()}}function _e(e,t){let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}var ve=_(`<button type=button class=media-tap><span>`),ye=_(`<span>`),be=_(`<button type=button class=media-retry>Retry`),xe=_(`<span class="file-chip media-failed"data-media-error> <span class=media-failed-name></span><span class=media-failed-reason>· `),Se=_(`<button type=button class=media-open><img loading=lazy decoding=async referrerpolicy=no-referrer>`,!0,!1,!1),Ce=_(`<button type=button class=media-more>+`),we=_(`<div class=media-strip role=group>`),Te=m(()=>b(()=>import(`./Lightbox-Du56MXGX.js`),__vite__mapDeps([0,1,2]))),J=G(2),Y=G(3),X=ge({slots:Y});function Ee(){let e=navigator.connection;return e?{type:e.type,effectiveType:e.effectiveType,saveData:e.saveData}:void 0}async function Z(e){return e.startsWith(`/`)?(await X.load(e)).url:e}function Q(s){let c=()=>s.image,[m,_]=o(ue(c().bytes,Ee())===`tap`?{at:`tap`}:{at:`waiting`}),[y,b]=o(!1),x,S=[],C,w=!1,T=()=>{for(let e of S)e();S=[]};g(()=>{C?.abort(),T()}),ee(()=>{if(typeof IntersectionObserver>`u`)return void b(!0);let e=new IntersectionObserver(e=>e.some(e=>e.isIntersecting)&&b(!0),{rootMargin:`300px 0px`});e.observe(x),g(()=>e.disconnect())});let E=(e,t)=>{if(T(),_({at:`failed`,reason:e}),e.retry&&!w&&c().src){w=!0;let e=c().src,n=setTimeout(()=>m().at===`failed`&&(X.forget(e),D()),t??1500);g(()=>clearTimeout(n))}};async function D(){let e=c().src;if(!e)return;C?.abort(),C=new AbortController;let t=C.signal;_({at:`waiting`});try{z(c().bytes)&&S.push(await J.acquire(t))}catch{return T()}try{let n=await Z(e);if(t.aborted)return T();_({at:`loading`,src:n})}catch(e){if(t.aborted)return;if(!(e instanceof K))return E(U(0));E(s.explain?s.explain(e.status,e.code):e.reason,e.retryAfterMs)}}p(()=>{y()&&m().at===`waiting`&&!C&&D()});let O=()=>{T();let e=m();e.at===`loading`&&_({at:`shown`,src:e.src})},k=!1,A=()=>{let e=c().src,t=m();e?.startsWith(`/`)&&t.at!==`failed`&&`src`in t&&t.src.startsWith(`blob:`)&&X.cached(e)!==t.src&&!k?(k=!0,C=void 0,D()):(e?.startsWith(`/`)&&`src`in t&&X.cached(e)===t.src&&X.drop(e),E(e?.startsWith(`/`)?U(415,`type`):U(0)))},j=()=>{let e=c().src;e&&X.forget(e),C=void 0,D()},M=()=>c().width&&c().height?c().width/c().height:void 0,N=()=>{let e=M();if(e)return{"aspect-ratio":`${c().width} / ${c().height}`,width:`min(100%, ${c().width}px, calc(var(--media-max-h, 220px) * ${e.toFixed(4)}))`}};return t(u,{get children(){return[t(r,{get when(){return n(()=>m().at===`failed`)()&&m()},children:e=>(()=>{var n=xe(),r=n.firstChild,o=r.nextSibling,s=o.nextSibling;return s.firstChild,d(n,t(v,{name:`file`}),r),d(o,()=>c().name),d(s,()=>e().reason.text,null),d(n,t(a,{get when(){return e().reason.retry},get children(){var e=be();return e.$$click=j,e}}),null),i(()=>f(n,`title`,`${c().name}: ${e().reason.text}`)),n})()}),t(r,{when:!0,get children(){var a=ye(),o=x;return typeof o==`function`?e(o,a):x=a,d(a,t(u,{get children(){return[t(r,{get when(){return m().at===`tap`},get children(){var e=ve(),n=e.firstChild;return e.$$click=()=>(_({at:`waiting`}),b(!0)),d(e,t(v,{name:`image`}),n),d(n,()=>me(c().tool?`screenshot`:`image`,c().bytes)),e}}),t(r,{get when(){return n(()=>m().at===`loading`||m().at===`shown`)()&&m()},children:e=>(()=>{var t=Se(),n=t.firstChild;return t.$$click=()=>s.onOpen?.(),n.addEventListener(`error`,A),n.addEventListener(`load`,O),f(n,`draggable`,!1),i(r=>{var i=`Open ${c().name}`,a=c().name,o=e().src,s=c().name;return i!==r.e&&f(t,`aria-label`,r.e=i),a!==r.t&&f(t,`title`,r.t=a),o!==r.a&&f(n,`src`,r.a=o),s!==r.o&&f(n,`alt`,r.o=s),r},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()})]}})),i(e=>{var t=`media-box ${s.class??``}`,n=N(),r=c().ref,i=m().at;return t!==e.e&&h(a,e.e=t),e.t=l(a,n,e.t),r!==e.a&&f(a,`data-ref`,e.a=r),i!==e.o&&f(a,`data-state`,e.o=i),e},{e:void 0,t:void 0,a:void 0,o:void 0}),a}})]}})}function $(e){let[r,i]=o(),[c,l]=o(!1),u=()=>e.images.filter(e=>e.src),d=e=>{let t=u().findIndex(t=>t.key===e);t<0||(l(!0),i(t))};return[n(()=>e.children(d)),t(a,{get when(){return c()},get children(){return t(s,{get children(){return t(Te,{get open(){return r()!==void 0},get items(){return u()},get index(){return r()??0},onIndex:i,onClose:()=>i(void 0)})}})}})]}function De(e){let n=()=>e.max??8;return t($,{get images(){return e.images},children:r=>(()=>{var o=we();return d(o,t(c,{get each(){return e.images.slice(0,n())},children:e=>t(Q,{image:e,class:`media-thumb`,onOpen:()=>r(e.key)})}),null),d(o,t(a,{get when(){return e.images.length>n()},get children(){var t=Ce();return t.firstChild,t.$$click=()=>r(e.images[n()].key),d(t,()=>e.images.length-n(),null),t}}),null),i(()=>f(o,`aria-label`,e.label??`Images`)),o})()})}y([`click`]);export{I as _,Y as a,j as b,U as c,R as d,le as f,O as g,D as h,Z as i,he as l,S as m,Q as n,W as o,N as p,De as r,G as s,$ as t,L as u,F as v,k as y};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as e,f as t,i as n}from"./BGW36YJW-CJMhya8S.js";import{n as r}from"./DKTLEL5E-DciMwFJ1.js";import{_ as i,a,c as o,d as s,f as c,g as l,i as u,l as d,m as f,n as p,o as m,r as h,t as g,u as _}from"./EXE5EH6O-DR1IHCTr.js";import{s as v,u as ee}from"./EFYWJBJK-CVywe_D5.js";import{t as y}from"./V44WA6U7-DYfX3OlM.js";import{E as b,d as x,f as S,h as C,m as w,o as T,s as te,u as E,w as D}from"./lazy-f3CuUNJZ.js";var O=class{nodes=/* @__PURE__ */ new Map;labels;links=[];trends=/* @__PURE__ */ new Map;pipelines=/* @__PURE__ */ new Map;annotations=[];notes=[];accelerators=[];deaccelerators=[];annotationsBox;axes={};size;addNode(e){let t=this.nodes.get(e.id)??{id:e.id,label:e.label};this.nodes.set(e.id,{...t,...e,className:e.className??t.className,labelOffsetX:e.labelOffsetX??t.labelOffsetX,labelOffsetY:e.labelOffsetY??t.labelOffsetY}),this.labels=void 0}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});let t=this.nodes.get(e);t&&(t.isPipelineParent=!0)}addPipelineComponent(e,t){this.pipelines.get(e)?.componentIds.push(t);let n=this.nodes.get(t);n&&(n.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,t){this.annotationsBox={x:e,y:t}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,t){this.size={width:e,height:t}}getNode(e){return this.nodes.get(e)}resolveNodeId(e){if(this.nodes.has(e))return e;if(!this.labels){this.labels=/* @__PURE__ */ new Map;for(let[e,t]of this.nodes)this.labels.has(t.label)||this.labels.set(t.label,e)}return this.labels.get(e)??e}build(){let e=[];for(let t of this.nodes.values()){if(typeof t.x!=`number`||typeof t.y!=`number`)throw new E(`Node "${t.label}" is missing coordinates`,`semantic`,{type:`wardley`});e.push(t)}return{nodes:e,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}};function k(e,t){let n=e<=1?e*100:e;if(n<0||n>100)throw new E(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`,`semantic`,{type:`wardley`});return n}function A(e,t,n){return{x:k(t,`${n} evolution`),y:k(e,`${n} visibility`)}}function j(e){return e===`+<>`?`bidirectional`:e===`+<`?`backward`:e===`+>`?`forward`:void 0}function ne(e){if(!e?.startsWith(`+`))return{};let t=e.indexOf(`'`,2),n=e[1]===`'`&&t!==-1?e.slice(2,t):void 0;return e.includes(`<>`)?{flow:`bidirectional`,label:n}:e.includes(`<`)?{flow:`backward`,label:n}:e.includes(`>`)?{flow:`forward`,label:n}:{label:n}}function M(e){return e?[(e.negX?-1:1)*e.offsetX,(e.negY?-1:1)*e.offsetY]:[void 0,void 0]}function N(e,t){e.size&&t.setSize(e.size.width,e.size.height),e.evolution&&t.setAxes({stages:e.evolution.stages.map(e=>e.secondName?`${e.name.trim()} / ${e.secondName.trim()}`:e.name.trim()),stageBoundaries:e.evolution.stages.filter(e=>e.boundary!==void 0).map(e=>e.boundary)});for(let n of e.anchors){let e=A(n.visibility,n.evolution,`Anchor "${n.name}"`);t.addNode({id:n.name,label:n.name,x:e.x,y:e.y,className:`anchor`})}for(let n of e.components){let e=A(n.visibility,n.evolution,`Component "${n.name}"`),[r,i]=M(n.label);t.addNode({id:n.name,label:n.name,x:e.x,y:e.y,className:`component`,labelOffsetX:r,labelOffsetY:i,inertia:n.inertia,sourceStrategy:n.decorator?.strategy})}for(let n of e.notes){let e=A(n.visibility,n.evolution,`Note "${n.text}"`);t.addNote({text:n.text,x:e.x,y:e.y})}for(let n of e.pipelines){let e=t.getNode(n.parent);if(!e||typeof e.y!=`number`)throw new E(`Pipeline "${n.parent}" must reference an existing component with coordinates.`,`semantic`,{type:`wardley`});let r=e.y;t.startPipeline(n.parent);for(let e of n.components){let i=`${n.parent}_${e.name}`,[a,o]=M(e.label),s=k(e.evolution,`Pipeline component "${e.name}" evolution`);t.addNode({id:i,label:e.name,x:s,y:r,className:`pipeline-component`,labelOffsetX:a,labelOffsetY:o,inertia:void 0,sourceStrategy:void 0}),t.addPipelineComponent(n.parent,i)}}for(let n of e.links){let e=!!n.arrow&&(n.arrow.includes(`-.->`)||n.arrow.includes(`.-.`)),r=ne(n.arrow),i=j(n.fromPort)??j(n.toPort)??r.flow;t.addLink({source:t.resolveNodeId(n.from),target:t.resolveNodeId(n.to),dashed:e,label:r.label??n.linkLabel,flow:i})}for(let n of e.evolves){let e=t.getNode(n.component);e?.y!==void 0&&t.addTrend({nodeId:n.component,targetX:k(n.target,`Evolve target for "${n.component}"`),targetY:e.y})}if(e.annotations.length>0){let n=A(e.annotations[0].x,e.annotations[0].y,`Annotations box`);t.setAnnotationsBox(n.x,n.y)}for(let n of e.annotation){let e=A(n.x,n.y,`Annotation ${n.number}`);t.addAnnotation({number:n.number,coordinates:[{x:e.x,y:e.y}],text:n.text})}for(let n of e.accelerators){let e=A(n.x,n.y,`Accelerator "${n.name}"`);t.addAccelerator({name:n.name,x:e.x,y:e.y})}for(let n of e.deaccelerators){let e=A(n.x,n.y,`Deaccelerator "${n.name}"`);t.addDeaccelerator({name:n.name,x:e.x,y:e.y})}}function P(e,t){let n=new O;return N(e,n),{type:`wardley`,title:e.title||t,accTitle:e.accTitle?e.accTitle.replace(/^\s+/g,``):void 0,accDescr:e.accDescr?e.accDescr.replace(/\n\s+/g,`
|
|
2
|
+
`):void 0,...n.build()}}function F(e,t){let n=t;for(let t=e.charCodeAt(n);t>=48&&t<=57;t=e.charCodeAt(n))n++;return n}function I(){let e=0,t=0;return(n,r)=>{if((r<e||r>=t)&&(e=r,t=F(n,r)),t===r||n.charCodeAt(t)!==46)return-1;let i=F(n,t+1);return i>t+1?i:-1}}var L={name:`ARROW`,pattern:/->/y,first:`-`},R={name:`LINK_ARROW`,pattern:/-->|-\.->|>|\+'[^']*'<>|\+'[^']*'<|\+'[^']*'>/y,first:`->+`},z=(e,t)=>({name:e,pattern:new RegExp(t,`y`),first:t[0]}),B=[{name:`[`,pattern:`[`},{name:`,`,pattern:`,`},{name:`]`,pattern:`]`},{name:`@`,pattern:`@`},{name:`/`,pattern:`/`},{name:`(`,pattern:`(`},{name:`)`,pattern:`)`},{name:`-`,pattern:`-`,longer:[L,R,o]},{name:`{`,pattern:`{`},{name:`}`,pattern:`}`},{name:`WARDLEY_NUMBER`,pattern:/[0-9]+\.[0-9]+/y,first:`0123456789`,scanner:I},L,{name:`LINK_PORT`,pattern:/\+<>|\+>|\+</y,first:`+`},R,{name:`LINK_LABEL`,pattern:/;[^\n\r]+/y,first:`;`},{name:`STRATEGY`,pattern:/build|buy|outsource|market/y,first:`bom`},z(`KW_WARDLEY`,`wardley-beta`),z(`KW_SIZE`,`size`),z(`KW_EVOLUTION`,`evolution`),z(`KW_ANCHOR`,`anchor`),z(`KW_COMPONENT`,`component`),z(`KW_LABEL`,`label`),z(`KW_INERTIA`,`inertia`),z(`KW_EVOLVE`,`evolve`),z(`KW_PIPELINE`,`pipeline`),z(`KW_NOTE`,`note`),z(`KW_ANNOTATIONS`,`annotations`),z(`KW_ANNOTATION`,`annotation`),z(`KW_ACCELERATOR`,`accelerator`),z(`KW_DEACCELERATOR`,`deaccelerator`),{name:`NAME_WITH_SPACES`,pattern:/(?!title\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/y,first:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`},{name:`WS`,pattern:/[ \t]+/y,hidden:!0,first:` `},y(),g,m,{name:`INT`,pattern:/0|[1-9][0-9]*(?!\.)/y,first:`0123456789`},s,{name:`ID`,pattern:/[\w]([-\w]*\w)?/y,first:`_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`},c,u,o,d,a];function V(e){let t=new l(h(e,B,`wardley`),B,`wardley`),n={$type:`Wardley`,anchors:[],components:[],links:[],evolves:[],pipelines:[],notes:[],annotations:[],annotation:[],accelerators:[],deaccelerators:[]},r=e=>t.kinds[t.i]===e,a=()=>r(36)||r(37)||r(30),o=()=>r(36)?f(t.take()):r(37)||r(30)?t.take():t.fail(`a name`),s=()=>Number(t.expect(10)),c=()=>parseInt(t.expect(35)),u=()=>r(10)?Number(t.take()):parseInt(t.expect(35)),d=()=>{if(!r(-1))for(r(38)||t.fail(`a line break or the end of input`);r(38);)t.i++},m=e=>{t.expect(0);let n=e();t.expect(1);let r=e();return t.expect(2),[n,r]},g=()=>{t.expect(21),t.expect(0);let e=t.accept(7),n=c();t.expect(1);let r=t.accept(7),i=c();return t.expect(2),{$type:`Label`,negX:e,offsetX:n,negY:r,offsetY:i}},v=()=>{let e={$type:`EvolutionStage`,name:o()};return t.accept(3)&&(e.boundary=s()),t.accept(4)&&(e.secondName=o()),e};for(;r(38);)t.i++;for(t.expect(16);!r(-1);)switch(t.kind){case 38:t.i++;break;case 32:n.accDescr=_(t.take()),d();break;case 33:n.accTitle=p(t.take()),d();break;case 34:n.title=i(t.take()),d();break;case 17:{t.i++;let[e,r]=m(c);d(),n.size={$type:`Size`,width:e,height:r};break}case 18:{t.i++;let e=[v()];for(t.expect(11),e.push(v());t.accept(11);)e.push(v());d(),n.evolution={$type:`Evolution`,stages:e};break}case 19:{t.i++;let e=o(),[r,i]=m(s);d(),n.anchors.push({$type:`Anchor`,name:e,visibility:r,evolution:i});break}case 20:{t.i++;let e={$type:`Component`,name:o(),visibility:0,evolution:0,inertia:!1};[e.visibility,e.evolution]=m(s),r(21)&&(e.label=g()),r(5)&&t.kinds[t.i+1]===15&&(t.i++,e.decorator={$type:`Decorator`,strategy:t.take()},t.expect(6)),t.accept(22)?e.inertia=!0:t.accept(5)&&(t.expect(22),t.expect(6),e.inertia=!0),d(),n.components.push(e);break}case 23:{t.i++;let e=o(),r=s();d(),n.evolves.push({$type:`Evolve`,component:e,target:r});break}case 24:{t.i++;let e=o();for(t.expect(8),t.expect(38);r(38);)t.i++;let i=[];do{t.expect(20);let e={$type:`PipelineComponent`,name:o(),evolution:0};t.expect(0),e.evolution=s(),t.expect(2),r(21)&&(e.label=g()),d(),i.push(e)}while(r(20));t.expect(9),d(),n.pipelines.push({$type:`Pipeline`,parent:e,components:i});break}case 25:{t.i++;let e=f(t.expect(36)),[r,i]=m(s);d(),n.notes.push({$type:`Note`,text:e,visibility:r,evolution:i});break}case 26:{t.i++;let[e,r]=m(u);d(),n.annotations.push({$type:`Annotations`,x:e,y:r});break}case 27:{t.i++;let e=c();t.expect(1);let[r,i]=m(u),a=f(t.expect(36));d(),n.annotation.push({$type:`Annotation`,number:e,x:r,y:i,text:a});break}case 28:case 29:{let e=t.kind===29;t.i++;let r=o(),[i,a]=m(s);d(),e?n.deaccelerators.push({$type:`Deaccelerator`,name:r,x:i,y:a}):n.accelerators.push({$type:`Accelerator`,name:r,x:i,y:a});break}default:{a()||t.fail(`a statement`);let e={$type:`Link`,from:o(),to:``};r(12)&&(e.fromPort=t.take()),(r(13)||r(11))&&(e.arrow=t.take()),e.to=o(),r(12)&&(e.toPort=t.take()),r(14)&&(e.linkLabel=t.take().substring(1).trim()),d(),n.links.push(e)}}return n}var re=[`Genesis`,`Custom Built`,`Product`,`Commodity`],H=48,U=6,W=10,ie=8,G=15,K=60,ae=30,oe=20,se=`var(--_c)`,q=`var(--_l)`;function ce(e,t,n,r,i){let a=e[`wardley-beta`]?.[t];return typeof a==`number`&&a>=r&&a<=i?a:n}function J(e,t,n){return e<t?t:e>n?n:e}function le(e,t,n,r){let i=w(e),a=``,o=n;for(let n of e.lines){let r=!0;for(let e of n){if(e.icon!==void 0)continue;let n=T(e.style&~i);a+=`<tspan${r?` x="${b(t)}" y="${b(o)}"`:``}${n}>${x(e.text)}</tspan>`,r=!1}o+=e.lineHeight}return a===``?``:`<text${D(r,i)} xml:space="preserve">${a}</text>`}function ue(e,t,n,r){return J(typeof t==`number`&&Number.isFinite(t)?t:ce(e,n,r,1,1e6),200,1e4)-2*H}function Y(e,t,n){let i=ue(t,e.size?.width,`width`,900);return r(n,i,160,(r,a)=>X(e,t,n,r,i,a))}function X(r,i,a,o,s,c){let l=a.fontSize??16,u=Math.round(l*.8125),d=Math.round(l*.6875),f=a.measurer??te(a.fontFamily,a.fontFamilyMono),p=a.padding??8,m=ue(i,r.size?.height,`height`,600)*Math.max(.75,o/s),h=i[`wardley-beta`]?.showGrid===!0,g=0,_=0,y=o,x=m,w=(e,t,n,r)=>{e<g&&(g=e),t<_&&(_=t),n>y&&(y=n),r>x&&(x=r)},T=(e,t,n,r)=>(w(t-e.width/2,n-e.height/2,t+e.width/2,n+e.height/2),C(e,t,n,r,a.icons)),E=(e,t,n,r)=>(w(t,n-e.size,t+e.width,n-e.size+e.height+4),le(e,t,n,r)),D=(e,t,r=c?Math.max(64,Math.min(120,o/2)):4e3,i=0)=>n(e,!1,f,t,r,i),O=e=>e/100*o,k=e=>m-e/100*m,A=r.axes.stages&&r.axes.stages.length>0?r.axes.stages:re,j=r.axes.stageBoundaries,ne=j!==void 0&&j.length===A.length,M=``,N=``,P=m,F=0;if(A.forEach((e,t)=>{let n=ne?F:t/A.length,r=ne?J(j[t],0,1):(t+1)/A.length;F=r,t>0&&(M+=`<path class="pele-wardley-stage" d="M${b(n*o)},0V${b(m)}" stroke="var(--_b)" stroke-dasharray="4 4"/>`);let i=D(e,u,Math.max(48,Math.abs(r-n)*o-12));N+=T(i,(n+r)/2*o,m+8+i.height/2,` class="pele-wardley-stage-label" font-size="${u}" fill="var(--_m)"`),P=Math.max(P,m+8+i.height)}),h)for(let e=1;e<4;e++)M+=`<path class="pele-wardley-grid" d="M${b(o*e/4)},0V${b(m)}M0,${b(m*e/4)}H${b(o)}" stroke="var(--_b)" stroke-dasharray="2 6"/>`;M+=`<path class="pele-wardley-axis" d="M0,0V${b(m)}H${b(o)}" stroke="${q}"/>`;let I=D(r.axes.xLabel??`Evolution`,u),L=D(r.axes.yLabel??`Visibility`,u),R=` class="pele-wardley-axis-label" font-size="${u}" font-weight="var(--_hw)"`,z=T(I,o/2,P+6+I.height/2,R)+C(L,-16,m/2,`${R} transform="rotate(-90 -16 ${b(m/2)})"`);w(-16-L.height/2,0,0,0);let B=P+6+I.height+10,V=/* @__PURE__ */ new Map;for(let e of r.nodes)V.set(e.id,{x:O(e.x),y:k(e.y),node:e});let H=``,ce=/* @__PURE__ */ new Map;for(let e of r.pipelines){ce.set(e.nodeId,new Set(e.componentIds));let n=[];for(let t of e.componentIds){let e=V.get(t);e&&n.push(e)}if(n.length===0)continue;n.sort((e,t)=>e.x-t.x);let r=n[0].x,i=n[n.length-1].x,a=n[0].y,o=a-2*U,s=V.get(e.nodeId);s&&(s.x=(r+i)/2,s.y=o-W/6),w(r-G,o,i+G,o+4*U),H+=`<g class="pele-wardley-pipeline" data-id="${S(e.nodeId)}"><rect x="${b(r-G)}" y="${b(o)}" width="${b(i-r+2*G)}" height="${b(4*U)}" fill="var(--_s)" stroke="var(--_b)"${t}/>`+(n.length>1?`<path d="M${b(r)},${b(a)}H${b(i)}" stroke="${q}" stroke-dasharray="4 4"/>`:``)+`</g>`}let Y=/* @__PURE__ */ new Map,X=(e,t,n)=>{let r=e.node;if(r.className===`anchor`){let e=Y.get(r);return e||Y.set(r,e=D(r.label,u,c?Math.max(64,o/2):4e3,1)),1/Math.hypot(t/(e.width/2+5),n/(u*.8))}return r.isPipelineParent?W/Math.SQRT2:r.sourceStrategy?2*U:U},Z=/* @__PURE__ */ new Map,de=(e,t,n)=>{Math.abs(t)<.25||Math.abs(n)<.25||Z.set(e,(Z.get(e)??0)|(t>0?n<0?1:2:n<0?4:8))},fe=``;for(let e of r.links){let t=V.get(e.source),n=V.get(e.target);if(!t||!n||t===n||ce.get(e.target)?.has(e.source))continue;let r=n.x-t.x,i=n.y-t.y,a=Math.hypot(r,i);if(a<.01)continue;let o=r/a,s=i/a,c=X(t,o,s),l=X(n,o,s);if(c+l>=a)continue;de(t,o,s),de(n,-o,-s);let u=t.x+o*c,f=t.y+s*c,p=n.x-o*l,m=n.y-s*l,h=``;(e.flow===`forward`||e.flow===`bidirectional`)&&(h+=ee(`arrow_point`,p,m,o,s,q),p-=o*v(`arrow_point`),m-=s*v(`arrow_point`)),(e.flow===`backward`||e.flow===`bidirectional`)&&(h+=ee(`arrow_point`,u,f,-o,-s,q),u+=o*v(`arrow_point`),f+=s*v(`arrow_point`));let g=``;if(e.label){let r=D(e.label,d+1,200),i=o>=0?1:-1,a=s*i,c=-o*i,l=5+Math.abs(a)*r.width/2+Math.abs(c)*r.height/2;g=T(r,(t.x+n.x)/2+a*l,(t.y+n.y)/2+c*l,` class="pele-edge-label" font-size="${d+1}" fill="var(--_m)"`)}fe+=`<g class="pele-edge${e.dashed?` pele-wardley-dashed`:``}" data-id="${S(e.source)}-${S(e.target)}"><path d="M${b(u)},${b(f)}L${b(p)},${b(m)}" stroke="${q}"${e.dashed?` stroke-dasharray="6 6"`:``}/>`+h+g+`</g>`}let pe=``;for(let e of r.trends){let t=V.get(e.nodeId);if(!t)continue;let n=O(e.targetX),r=k(e.targetY),i=n-t.x,a=r-t.y,o=Math.hypot(i,a),s=``,c=o>0?X(t,i/o,a/o):0;if(o>c+U+4){let e=i/o,l=a/o,u=n-e*(U+2),d=r-l*(U+2);s=`<path d="M${b(t.x+e*c)},${b(t.y+l*c)}L${b(u-e*v(`arrow_point`))},${b(d-l*v(`arrow_point`))}" stroke="${se}" stroke-dasharray="4 4"/>`+ee(`arrow_point`,u,d,e,l,se)}w(n-U,r-U,n+U,r+U),pe+=`<g class="pele-wardley-trend" data-id="${S(e.nodeId)}">${s}<circle cx="${b(n)}" cy="${b(r)}" r="${U}" fill="var(--_bg)" stroke="${se}"/></g>`}let me=``,Q=1.2*U,he=.7*U;for(let e of V.values()){let t=e.node,{x:n,y:r}=e,i=t.className===`anchor`,a=t.sourceStrategy,s=``;if(a){let e=a===`outsource`?`var(--_m)`:a===`buy`?`var(--_a)`:a===`build`?`var(--_s)`:`var(--_bg)`;s+=`<circle class="pele-wardley-${a}" cx="${b(n)}" cy="${b(r)}" r="${2*U}" fill="${e}" stroke="${q}"/>`}if(a===`market`){let e=Q*Math.cos(Math.PI/6),t=r+Q*Math.sin(Math.PI/6);s+=`<path d="M${b(n)},${b(r-Q)}L${b(n-e)},${b(t)}H${b(n+e)}Z" fill="none" stroke="${q}"/>`;for(let[i,a]of[[n,r-Q],[n-e,t],[n+e,t]])s+=`<circle cx="${b(i)}" cy="${b(a)}" r="${b(he)}" fill="var(--_bg)" stroke="${q}"/>`}else t.isPipelineParent?s+=`<rect x="${b(n-W/2)}" y="${b(r-W/2)}" width="${W}" height="${W}" fill="var(--_bg)" stroke="${q}"/>`:i||(s+=`<circle cx="${b(n)}" cy="${b(r)}" r="${U}" fill="var(--_bg)" stroke="${q}"/>`);if(t.inertia===!0){let e=(t.isPipelineParent?W/2:U)+10+(a?U+4:0);s+=`<rect class="pele-wardley-inertia" x="${b(n+e)}" y="${b(r-U)}" width="4" height="${2*U}" fill="${q}"/>`}let l=t.labelOffsetX===void 0?void 0:J(t.labelOffsetX,-5e3,5e3),d=t.labelOffsetY===void 0?void 0:J(t.labelOffsetY,-5e3,5e3),f;if(i)f=T(Y.get(t)??D(t.label,u,c?Math.max(64,o/2):4e3,1),n+(l??0),r+(d??-3),` class="pele-label" font-size="${u}" font-weight="var(--_hw)"`);else{let i=D(t.label,u),o=` class="pele-label" font-size="${u}"`,s=ie+(a?10:0);if(l!==void 0||d!==void 0)f=E(i,n+(l??s),r+(d??-s),o);else if(t.inPipeline)f=T(i,n,r+2*U+4+i.height/2,o);else{let t=Z.get(e)??0,a=t&1?t&2?t&4?t&8?1:8:4:2:1,c=a===1||a===2,l=a===1||a===4;f=E(i,c?n+s:n-s-i.width,l?r-s:r+s+u*.75,o)}}w(n-2*U,r-2*U,n+2*U+20,r+2*U),me+=`<g class="pele-node pele-wardley-${i?`anchor`:t.isPipelineParent?`pipeline-parent`:t.inPipeline?`pipeline-component`:`component`}" data-id="${S(t.id)}">${s}${f}</g>`}let ge=``;for(let e of r.annotations){let t=D(String(e.number),d,4e3,1),n=``;for(let r of e.coordinates){let e=O(r.x),i=k(r.y),a=Math.max(10,t.width/2+4);w(e-a,i-a,e+a,i+a),n+=`<circle cx="${b(e)}" cy="${b(i)}" r="${b(a)}" fill="var(--_bg)" stroke="${q}"/>`+C(t,e,i,` font-size="${d}" font-weight="var(--_hw)"`)}ge+=`<g class="pele-wardley-annotation" data-id="${S(String(e.number))}">${n}</g>`}let _e=r.annotations.filter(e=>e.text).sort((e,t)=>e.number-t.number);if(_e.length>0){let e=_e.map(e=>D(`${e.number}. ${e.text}`,u,c?Math.max(80,o-20):320)),n=0,i=0;for(let t of e)n=Math.max(n,t.width),i+=t.height;n+=20,i+=14;let a=r.annotationsBox,s=a?J(O(a.x),0,Math.max(0,o-n)):0,l=a?J(k(a.y),0,Math.max(0,m-i)):B;w(s,l,s+n,l+i);let d=``,f=l+7;for(let t of e)d+=le(t,s+10,f+t.lineHeight/2+u*.35,` font-size="${u}"`),f+=t.height;ge+=`<g class="pele-wardley-annotations"><rect x="${b(s)}" y="${b(l)}" width="${b(n)}" height="${b(i)}" fill="var(--_bg)" stroke="var(--_b)"${t}/>${d}</g>`}let ve=``;for(let e of r.notes)ve+=E(D(e.text,u,Math.min(360,o*.6),1),O(e.x),k(e.y),` class="pele-wardley-note" font-size="${u}" font-weight="var(--_hw)"`);let ye=``,be=(e,t,n,r)=>{let i=O(t),a=k(n),o=ae/2,s=r?i+K:i,c=r?i:i+K,l=r?i+K-oe:i+oe,u=`M${b(c)},${b(a-o)}H${b(l)}V${b(a-o-8)}L${b(s)},${b(a)}L${b(l)},${b(a+o+8)}V${b(a+o)}H${b(c)}Z`;w(i,a-o-8,i+K,a+o+8),ye+=`<g class="pele-wardley-${r?`accelerator`:`deaccelerator`}" data-id="${S(e)}"><path d="${u}" fill="var(--_s)" stroke="${q}"/>`+T(D(e,d+1,160,1),i+K/2,a+o+8+12,` font-size="${d+1}" font-weight="var(--_hw)"`)+`</g>`};for(let e of r.accelerators)be(e.name,e.x,e.y,!0);for(let e of r.deaccelerators)be(e.name,e.x,e.y,!1);let $=n(r.title,!1,f,l,c?Math.max(80,o):4e3,1),xe=$.height>0?$.height+12:0,Se=Math.min(g,o/2-$.width/2),Ce=Math.max(y,o/2+$.width/2),we=p-Se,Te=p+xe-_,Ee=Math.ceil(Ce-Se+2*p),De=Math.ceil(x-_+xe+2*p),Oe=C($,we+o/2,p+$.height/2,` class="pele-title" font-weight="var(--_tw)"`)+`<g transform="translate(${b(we)},${b(Te)})"><g class="pele-wardley-frame" fill="none">${M}</g>`+N+z+H+(fe?`<g class="pele-edges" fill="none">${fe}</g>`:``)+(pe?`<g class="pele-wardley-trends" fill="none">${pe}</g>`:``)+me+ge+ve+ye+`</g>`;return{svg:e(`wardley`,Ee,De,l,a,r,Oe),width:Ee,height:De,links:[]}}var Z={type:`wardley`,section:`wardley-beta`,parse:(e,t,n)=>P(V(e),n),render:Y};export{Z as wardley};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,d as t,i as n,r}from"./BGW36YJW-CJMhya8S.js";import{C as i,E as a,F as o,N as s,T as c,f as l,h as u,k as d,s as f,t as p,u as m}from"./lazy-f3CuUNJZ.js";function h(e){let t=e.trim();return t.length>=2&&t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1):t}function g(e){return e.map(h).sort()}var _=class{type=`venn`;title;subsets=[];textNodes=[];styles=[];known=/* @__PURE__ */ new Set;current;indent=!1;setDiagramTitle(e){this.title=e}addSubsetData(e,t,n){let r=g(e);this.current=r,r.length===1&&this.known.add(r[0]),this.subsets.push({sets:r,size:n??10/e.length**2,label:t?h(t):void 0})}addTextData(e,t,n){this.textNodes.push({sets:g(e),id:h(t),label:n?h(n):void 0})}addStyleData(e,t){let n=/* @__PURE__ */ new Map;for(let[e,r]of t)n.set(e,r&&h(r));this.styles.push({targets:g(e),styles:n})}validateUnionIdentifiers(e){let t=e.map(h).filter(e=>!this.known.has(e));if(t.length>0)throw new m(`unknown set identifier: ${t.join(`, `)}`,`semantic`,{type:`venn`})}getCurrentSets(){return this.current}getIndentMode(){return this.indent}setIndentMode(e){this.indent=e}},v=[`$end`,`INVALID`,`EOF`,`NEWLINE`,`VENN`,`TITLE`,`SET`,`UNION`,`TEXT`,`INDENT_TEXT`,`STYLE`,`BRACKET_LABEL`,`NUMERIC`,`HEXCOLOR`,`RGBCOLOR`,`RGBACOLOR`,`IDENTIFIER`,`STRING`,`COMMA`,`COLON`],y=[[`venn-beta`,4],[`set`,6],[`union`,7],[`text`,8],[`style`,10]],b=class{constructor(e,t){this.src=e,this.host=t}src;host;text=``;start=0;at=0;lineStart=!1;ended=!1;word(e,t){let n=this.src;for(let r=0;r<t.length;r++){let i=n.charCodeAt(e+r),a=t.charCodeAt(r);if(i!==a&&(i+32!==a||i<65||i>90))return!1}return!0}keyword(e,t){return this.word(e,t)&&!p(this.src.charCodeAt(e+t.length))}color(e,t){let n=this.src,r=e+1;for(let e=0;e<t;e++){for(;o(n.charCodeAt(r));)r++;let i=r;for(;s(n.charCodeAt(r))||n.charCodeAt(r)===46;)r++;if(r===i)return-1;for(;o(n.charCodeAt(r));)r++;if(n.charCodeAt(r)!==(e===t-1?41:44))return-1;r++}return r}afterLineFeed(e){let t=e-1;for(;this.src.charCodeAt(t)===32||this.src.charCodeAt(t)===9;)t--;return this.src.charCodeAt(t)===10}lineEnd(e){let t=this.src.indexOf(`
|
|
2
|
+
`,e);return t===-1?this.src.length:t}next(){let e=this.src,t=e.length;for(;;){let n=this.at;if(this.start=n,this.text=``,n>=t)return this.ended?0:(this.ended=!0,2);let r=e.charCodeAt(n);if(r===37&&e.charCodeAt(n+1)===37&&e.charCodeAt(n+2)!==123)this.at=this.lineEnd(n+2);else if(this.lineStart&&this.word(n,`title`)&&this.afterLineFeed(n)&&e.slice(n+5,this.lineEnd(n+5)).trim()===``){let t=this.lineEnd(n+5);for(;e.charCodeAt(t)===10||e.charCodeAt(t)===13;)t++;this.at=t}else{if(this.lineStart){if(r===32||r===9){let t=n+1;for(;e.charCodeAt(t)===32||e.charCodeAt(t)===9;)t++;if(this.at=t,this.keyword(t,`text`)&&this.host.getIndentMode())return this.at=t+4,this.lineStart=!1,this.text=e.slice(n,t),9;continue}r!==10&&r!==13&&(this.host.setIndentMode(!1),this.lineStart=!1)}if(r===10||r===13){for(n++;e.charCodeAt(n)===10||e.charCodeAt(n)===13;)n++;return this.lineStart=!0,this.token(3,n)}if(r===37&&e.charCodeAt(n+1)===37)this.at=this.lineEnd(n);else if(r===32||r===9){for(n++;e.charCodeAt(n)===32||e.charCodeAt(n)===9;)n++;this.at=n}else{if((r|32)>=97&&(r|32)<=122||r===95){let r=e.charCodeAt(n+5);if(this.word(n,`title`)&&o(r)&&r!==10&&r!==13){let r=n+6;for(;r<t;){let t=e.charCodeAt(r);if(t===35||t===10||t===59)break;r++}if(r>n+6)return this.token(5,r)}for(let[t,r]of y)if(this.keyword(n,t)&&e.charCodeAt(n+t.length)!==45)return this.token(r,n+t.length);if(this.word(n,`rgb`)){let t=(e.charCodeAt(n+3)|32)==97,r=n+(t?4:3),i=e.charCodeAt(r)===40?this.color(r,t?4:3):-1;if(i!==-1)return this.token(t?15:14,i)}for(n++;p(e.charCodeAt(n))||e.charCodeAt(n)===45;)n++;return this.token(16,n)}if(r===91){if(e.charCodeAt(n+1)===34){let t=e.indexOf(`"`,n+2);return t===-1||e.charCodeAt(t+1)!==93?1:(this.at=t+2,this.text=e.slice(n+2,t),11)}let r=n+1;for(;r<t&&e.charCodeAt(r)!==93&&e.charCodeAt(r)!==34;)r++;return r===n+1||e.charCodeAt(r)!==93?1:(this.at=r+1,this.text=e.slice(n+1,r).trim(),11)}if(s(r)||r===46||r===43||r===45){(r===43||r===45)&&n++;let t=n;for(;s(e.charCodeAt(n));)n++;if(n>t){if(e.charCodeAt(n)===46&&s(e.charCodeAt(n+1)))for(n+=2;s(e.charCodeAt(n));)n++}else if(e.charCodeAt(n)===46&&s(e.charCodeAt(n+1)))for(n+=2;s(e.charCodeAt(n));)n++;else return 1;return this.token(12,n)}if(r===35){let t=n+1;for(;t<n+9&&c(e.charCodeAt(t));)t++;return t>=n+4?this.token(13,t):1}if(r===34){let t=e.indexOf(`"`,n+1);return t===-1?1:this.token(17,t+1)}return r===44?this.token(18,n+1):r===58?this.token(19,n+1):1}}}}token(e,t){return this.text=this.src.slice(this.at,t),this.at=t,e}},x=`'EOF', 'NEWLINE', 'TITLE', 'SET', 'UNION', 'TEXT', 'INDENT_TEXT', 'STYLE'`,S=`'NUMERIC', 'IDENTIFIER', 'STRING', 'HEXCOLOR', 'RGBCOLOR', 'RGBACOLOR'`;function C(e,t){let n=new b(e,t),r=-1,a=()=>r===-1?r=n.next():r,o=t=>{throw a()===1?i(`venn`,e,n.start,``,!0):i(`venn`,e,n.start,`Expecting ${t}, got '${v[r]}'`)},s=()=>(r=-1,n.text),c=e=>(a()!==e&&o(`'${v[e]}'`),s()),l=()=>(a()!==16&&r!==17&&o(`'IDENTIFIER', 'STRING'`),s()),u=()=>{let e=[l()];for(;a()===18;)s(),e.push(l());return e},d=(e,n)=>{let r=a()===11?s():void 0,i;if(a()===19&&(s(),i=parseFloat(c(12))),n){if(e.length<2)throw new m(`union requires multiple identifiers`,`semantic`,{type:`venn`});t.validateUnionIdentifiers(e)}t.addSubsetData(e,r,i),t.setIndentMode(!0)},f=e=>{let n=a();n!==16&&n!==17&&n!==12&&o(`'NUMERIC', 'IDENTIFIER', 'STRING'`);let r=s(),i=n!==12&&a()===11?s():void 0;t.addTextData(e(),r,i)},p=()=>{let e=u(),n=[];for(;;){let e=c(16);c(19);let t;if(a()===17)t=s();else{let e=[];for(;a()===16||r>=12&&r<=15;)e.push(s());e.length===0&&o(S),t=e.join(` `)}if(n.push([e,t]),a()!==18)break;s()}t.addStyleData(e,n)};for(;a()===3;)s();for(c(4);;){let e=a();if(e===2)return;if((e<3||e>10||e===4)&&o(x),s(),e===5)t.setDiagramTitle(n.text.slice(6));else if(e===6)d([l()],!1);else if(e===7)d(u(),!0);else if(e===8){let e=u();f(()=>e)}else e===9?f(()=>{let e=t.getCurrentSets();if(!e)throw new m(`text requires set`,`semantic`,{type:`venn`});return e}):e===10&&p()}}var w=Math.PI*2;function T(e){let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map;for(let r of e)t.add(JSON.stringify([...r.sets].sort())),r.sets.length===1&&n.set(r.sets[0],r.size);let r=[];for(let i of e){if(i.sets.length<3)continue;let e=[...i.sets].sort();for(let i=0;i<e.length-1;i++)for(let a=i+1;a<e.length;a++){let o=[e[i],e[a]],s=JSON.stringify(o);if(t.has(s))continue;t.add(s);let c=n.get(o[0]),l=n.get(o[1]);r.push({sets:o,size:c!==void 0&&l!==void 0?Math.min(c,l)/4:2.5,label:``})}}return r.length>0?[...e,...r]:e}function E(e,t,n){if(n>=e+t)return 0;let r=Math.min(e,t);if(n<=Math.abs(e-t))return Math.PI*r*r;let i=e*e*Math.acos((n*n+e*e-t*t)/(2*n*e)),a=t*t*Math.acos((n*n+t*t-e*e)/(2*n*t)),o=.5*Math.sqrt(Math.max((-n+e+t)*(n+e-t)*(n-e+t)*(n+e+t),0));return i+a-o}function D(e,t,n){let r=Math.abs(e-t),i=e+t;if(!(n>0))return i;if(n>=Math.PI*Math.min(e,t)**2)return r;for(let a=0;a<48;a++){let a=(r+i)/2;E(e,t,a)>n?r=a:i=a}return(r+i)/2}function O(e,t,n,r,i,a){let o=1/0;for(let n of t){let t=e[n],s=r-t.x,c=i-t.y,l=t.r-Math.sqrt(s*s+c*c);if(l<o){if(l<a)return l;o=l}}for(let t of n){let n=e[t],s=r-n.x,c=i-n.y,l=Math.sqrt(s*s+c*c)-n.r;if(l<o){if(l<a)return l;o=l}}return o}function k(e,t,n){let r=0,i=0,a=e[t[0]];for(let n of t){let o=e[n];r+=o.x/t.length,i+=o.y/t.length,o.r<a.r&&(a=o)}let o=a.r,s=r,c=i,l=O(e,t,n,s,c,-1/0),u=0,d=(a,d)=>{let f=O(e,t,n,a,d,l-o*1e-9);if(!(f>l-o*1e-9))return!1;let p=Math.hypot(a-r,d-i);return f>l+o*1e-9||p<u-o*1e-9?(l=f,u=p,s=a,c=d,!0):!1};for(let e=-10;e<=10;e++)for(let t=-10;t<=10;t++)t*t+e*e<=100&&d(a.x+t*o/10,a.y+e*o/10);let f=o/10;for(let e=0;e<40&&f>o*1e-6;e++){let e=!1;for(let t=0;t<8;t++){let n=t*w/8;d(s+Math.cos(n)*f,c+Math.sin(n)*f)&&(e=!0)}e||(f/=2)}return{x:s,y:c,margin:l}}function A(e){let t=/* @__PURE__ */ new Map;for(let n of e)for(let e of n.sets)t.has(e)||t.set(e,10);for(let n of e)n.sets.length===1&&t.set(n.sets[0],n.size);let n=/* @__PURE__ */ new Map,r=[],i=0;for(let e of t.values())Number.isFinite(e)&&e>i&&(i=e);i===0&&(i=10);let a=Math.sqrt(i/Math.PI);for(let[e,i]of t){n.set(e,r.length);let t=Number.isFinite(i)&&i>0?Math.sqrt(i/Math.PI):0;r.push({id:e,x:0,y:0,r:Math.max(t,a*.3)})}let o=r.length;if(o<2)return r;let s=/* @__PURE__ */ new Map;for(let t of T(e)){if(t.sets.length!==2)continue;let e=n.get(t.sets[0]),r=n.get(t.sets[1]);e!==r&&s.set(Math.min(e,r)*o+Math.max(e,r),t.size)}let c=/* @__PURE__ */ new Map;for(let[e,t]of s)c.set(e,D(r[Math.floor(e/o)].r,r[e%o].r,t));let l=a*.15,u=(e,t)=>c.get(e*o+t)??r[e].r+r[t].r+l;if(o===2)return r[1].x=u(0,1),r;if(o===3){let t=u(0,1),n=u(0,2),i=u(1,2),o=e.some(e=>new Set(e.sets).size===3);for(let e=0;e<40;e++){let e=t>0?(t*t+n*n-i*i)/(2*t):0;if(r[1].x=t,r[2].x=Math.max(-n,Math.min(n,e)),r[2].y=Math.sqrt(Math.max(n*n-e*e,0)),!o||k(r,[0,1,2],[]).margin>a*.12)break;t*=.94,n*=.94,i*=.94}return r}let d=0;for(let e of r)d+=2*e.r+l;let f=Math.min(300,Math.floor(3e6/(o*o)));if(o<=64){let e=d/w;r.forEach((t,n)=>{let r=n*w/o-Math.PI/2;t.x=Math.cos(r)*e,t.y=Math.sin(r)*e})}else{let e=Math.ceil(Math.sqrt(o)),t=2*a+l;r.forEach((n,r)=>{n.x=r%e*t,n.y=Math.floor(r/e)*t})}let p=new Float64Array(o),m=new Float64Array(o),h=new Int32Array(o);for(let e=0;e<f;e++){p.fill(0),m.fill(0),h.fill(0);for(let e=0;e<o;e++)for(let t=e+1;t<o;t++){let n=c.get(e*o+t),i=r[e].r+r[t].r+l,a=r[t].x-r[e].x,s=r[t].y-r[e].y,u=Math.hypot(a,s);if(n===void 0&&u>=i)continue;u<1e-9&&(a=Math.cos(e+t),s=Math.sin(e+t),u=1);let d=(u-(n??i))/2/u;p[e]+=a*d,m[e]+=s*d,p[t]-=a*d,m[t]-=s*d,h[e]++,h[t]++}for(let e=0;e<o;e++)h[e]!==0&&(r[e].x+=p[e]/h[e],r[e].y+=m[e]/h[e])}return r}function j(e,t){let n=e=>`M${t(e.x-e.r)},${t(e.y)}A${t(e.r)},${t(e.r)} 0 1 1 ${t(e.x+e.r)},${t(e.y)}A${t(e.r)},${t(e.r)} 0 1 1 ${t(e.x-e.r)},${t(e.y)}Z`;if(e.length===1)return n(e[0]);let r=(t,n,r,i)=>{for(let a of e)if(a!==r&&a!==i&&Math.hypot(t-a.x,n-a.y)>a.r*(1+1e-9))return!1;return!0},i=[];for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++){let a=e[t],o=e[n],s=Math.hypot(o.x-a.x,o.y-a.y);if(s>=a.r+o.r||s<=Math.abs(a.r-o.r)||s===0)continue;let c=(a.r*a.r-o.r*o.r+s*s)/(2*s),l=Math.sqrt(Math.max(a.r*a.r-c*c,0)),u=a.x+(o.x-a.x)*c/s,d=a.y+(o.y-a.y)*c/s;for(let e of[1,-1]){let t=u+e*l*(o.y-a.y)/s,n=d-e*l*(o.x-a.x)/s;r(t,n,a,o)&&i.push({x:t,y:n,a,b:o})}}if(i.length<2){let t=e[0];for(let n of e)n.r<t.r&&(t=n);for(let n of e)if(n!==t&&Math.hypot(n.x-t.x,n.y-t.y)+t.r>n.r*(1+1e-9))return``;return n(t)}let a=0,o=0;for(let e of i)a+=e.x/i.length,o+=e.y/i.length;i.sort((e,t)=>Math.atan2(e.y-o,e.x-a)-Math.atan2(t.y-o,t.x-a));let s=``;for(let e=0;e<i.length;e++){let n=i[e],r=i[(e+1)%i.length];e===0&&(s=`M${t(n.x)},${t(n.y)}`);let a,o=0,c=1/0;for(let e of[n.a,n.b]){if(e!==r.a&&e!==r.b)continue;let t=Math.atan2(n.y-e.y,n.x-e.x),i=Math.atan2(r.y-e.y,r.x-e.x)-t;i<=0&&(i+=w);let s=e.x+e.r*Math.cos(t+i/2),l=e.y+e.r*Math.sin(t+i/2),u=Math.hypot(s-(n.x+r.x)/2,l-(n.y+r.y)/2);u<c&&(c=u,a=e,o=+(i>Math.PI))}s+=a===void 0?`L${t(r.x)},${t(r.y)}`:`A${t(a.r)},${t(a.r)} 0 ${o} 1 ${t(r.x)},${t(r.y)}`}return s+`Z`}var M=100,N=1.6,P=r([]);function F(e){return e.length===1?e[0]:JSON.stringify(e)}function I(i,o,s){let c=s.fontSize??16,p=Math.round(c*.875),m=Math.round(c*.8125),g=s.measurer??f(s.fontFamily,s.fontFamilyMono),_=s.padding??8,v=A(i.subsets),y=/* @__PURE__ */ new Map;v.forEach((e,t)=>y.set(e.id,t));let b=/* @__PURE__ */ new Map;for(let{targets:e,styles:t}of i.styles){let n=F(e),r=b.get(n);r||b.set(n,r=/* @__PURE__ */ new Map);for(let[e,n]of t)r.set(e,n)}let x=e=>{let t=b.get(e);if(!t)return P;let n=[];for(let[e,r]of t)n.push(`${e}:${r}`);return r(n)},S=v.map(()=>[]);for(let e=0;e<v.length;e++)for(let t=e+1;t<v.length;t++)Math.hypot(v[e].x-v[t].x,v[e].y-v[t].y)<v[e].r+v[t].r&&(S[e].push(t),S[t].push(e));let C=/* @__PURE__ */ new Map;for(let e of i.subsets)C.set(F(e.sets),e);let w=/* @__PURE__ */ new Map;for(let[e,t]of C){let r=[...new Set(t.sets)],i=r.map(e=>y.get(e)),a=new Set(i),o=i[0];for(let e of i)v[e].r<v[o].r&&(o=e);let s=x(e),l=t.label??(t.sets.length===1?t.sets[0]:void 0),u=+!!s.bold|(s.italic?2:0),d=S[o].filter(e=>!a.has(e)),f=k(v,i,d),m=d.length>0&&f.margin<v[o].r*.2;m&&(f=k(v,i,[]));let h={sets:r,inside:i,spot:f,lines:[],style:s,across:m};if(l){let e=r.length===1?c:p;h.lines.push({id:void 0,raw:l,size:e,base:u,label:n(l,!1,g,e,4e3,u)})}w.set(e,h)}for(let e of i.textNodes){let t=e.label??e.id;w.get(F(e.sets))?.lines.push({id:e.id,raw:t,size:m,base:0,label:n(t,!1,g,m,4e3)})}let T=0;for(let e of v)e.r>T&&(T=e.r);let E=T>0?M/T:1,D=1;for(let e of w.values()){if(e.spot.margin<=0)continue;let t=0,n=0;for(let r of e.lines)t=Math.max(t,r.label.width),n+=r.label.height;let r=Math.hypot(t,n)/2+4;D=Math.max(D,Math.min(r/(e.spot.margin*E),N))}E*=D;for(let e of w.values()){let t=Math.max(e.spot.margin*E*1.8,72);for(let r of e.lines)r.label.width>t&&(r.label=n(r.raw,!1,g,r.size,t,r.base))}let O=1/0,I=1/0,L=-1/0,R=-1/0;for(let e of v)O=Math.min(O,(e.x-e.r)*E),I=Math.min(I,(e.y-e.r)*E),L=Math.max(L,(e.x+e.r)*E),R=Math.max(R,(e.y+e.r)*E);for(let e of w.values()){let t=0,n=0;for(let r of e.lines)t=Math.max(t,r.label.width),n+=r.label.height;O=Math.min(O,e.spot.x*E-t/2),L=Math.max(L,e.spot.x*E+t/2),I=Math.min(I,e.spot.y*E-n/2),R=Math.max(R,e.spot.y*E+n/2)}v.length===0&&(O=I=L=R=0);let z=n(i.title&&h(i.title),!1,g,c,4e3,1),B=z.height>0?z.height+12:0,V=Math.max(L-O,z.width),H=_+(V-(L-O))/2-O,U=_+B-I,W=Math.ceil(V+2*_),G=Math.ceil(R-I+B+2*_),K=v.map(e=>({id:e.id,x:e.x*E+H,y:e.y*E+U,r:e.r*E})),q=``;K.forEach((t,n)=>{let r=e(n),i=w.get(t.id)?.style??P;q+=`<circle class="pele-venn-set" data-id="${l(t.id)}" cx="${a(t.x)}" cy="${a(t.y)}" r="${a(t.r)}" fill="${r}" fill-opacity="0.2" stroke="${r}"${i.shape}/>`});let J=[...w.values()].filter(e=>e.sets.length>1&&e.style.shape!==``),Y=e=>{if(e.across)return``;let t=e.sets.length===1&&/[";]fill-opacity:/.test(e.style.shape)?e.style.shape:``;for(let n of J)n.sets.every(t=>e.sets.includes(t))&&(t=n.style.shape);return t},X=``,Z=``;for(let e of w.values()){let t=l(e.sets.join(`|`));if(e.sets.length>1&&e.style.shape!==``){let n=j(e.inside.map(e=>K[e]),a);n!==``&&(X+=`<path class="pele-venn-overlap" data-id="${t}" d="${n}" fill="none"${e.style.shape}/>`)}let n=0;for(let t of e.lines)n+=t.label.height;if(n===0)continue;let r=e.spot.x*E+H,i=e.spot.y*E+U-n/2,o=Y(e),s=``;for(let t of e.lines){let n=t.id===void 0?e.style.text:x(t.id).text,a=d(o,n),f=t.id===void 0?` class="pele-label"${t.size===c?``:` font-size="${t.size}"`}${a?` fill="${a}"`:``}${n}`:` class="pele-venn-text" data-id="${l(t.id)}" font-size="${m}" fill="${a??`var(--_m)`}"${n}`;s+=u(t.label,r,i+t.label.height/2,f),i+=t.label.height}Z+=`<g class="pele-venn-region" data-id="${t}">${s}</g>`}return{svg:t(`venn`,W,G,c,s,{},u(z,W/2,_+z.height/2,` class="pele-title" font-weight="var(--_tw)"`)+`<g class="pele-venn-sets">${q}</g>`+(X?`<g class="pele-venn-overlaps">${X}</g>`:``)+(Z?`<g class="pele-venn-labels">${Z}</g>`:``)),width:W,height:G,links:[]}}var L={type:`venn`,parse(e,t,n){let r=new _;return n&&(r.title=n),C(e,r),r},render:I};export{L as venn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./BGW36YJW-CJMhya8S.js";import{E as t,O as n,h as r}from"./lazy-f3CuUNJZ.js";function i(t,r,i,a){return n(()=>e(t,!1,r,i,a,1))}function a(e,n,a,o,s,c,l){let u=i(e,n,a,4e3);if(u.height===0)return{width:s,height:c,content:l};let d=u.height+12,f=Math.max(s,Math.ceil(u.width+2*o));return{width:f,height:Math.ceil(c+d),content:r(u,f/2,o+u.height/2,` class="pele-title" font-weight="var(--_tw)"`)+`<g transform="translate(${t((f-s)/2)},${t(d)})">${l}</g>`}}export{a as n,i as t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{d as e,i as t,r as n,s as r}from"./BGW36YJW-CJMhya8S.js";import{o as i,r as a}from"./DKTLEL5E-DciMwFJ1.js";import{_ as o,c as s,m as c,s as l,u}from"./EFYWJBJK-CVywe_D5.js";import{a as d,o as f}from"./QQW2P742-BbcEkpa4.js";import{s as p}from"./6PIGVMFT-YXn9Hgnb.js";import{n as m}from"./75JW6PN6-BFpDBuGN.js";import{C as h,E as g,F as _,d as v,f as y,h as b,l as x,r as S,s as C,t as w,u as T}from"./lazy-f3CuUNJZ.js";var E=/* @__PURE__ */ new Set([`label`,`type`,`descr`,`techn`,`sprite`,`tags`,`link`,`bgColor`,`fontColor`,`borderColor`,`shadowing`,`shape`,`legendText`,`legendSprite`]),D=/* @__PURE__ */ new Set([`label`,`descr`,`techn`,`sprite`,`tags`,`link`,`textColor`,`lineColor`]);function O(e,t){let{key:n,value:r}=t;`from`in e&&(n===`offsetX`||n===`offsetY`)?e[n]=parseInt(r):(`from`in e?D:E).has(n)?e[n]=r:(e.extra??=/* @__PURE__ */ new Map).set(n,r)}function k(e,t,n){n!==void 0&&(typeof n==`string`?e[t]=n:O(e,n))}function A(e,t,n){n===void 0?e[t]??=``:k(e,t,n)}function j(e,t){e.labelAttr=void 0,typeof t==`object`?(e.label=``,e.labelAttr=t,O(e,t)):e.label=t??``}var M=class{type=`c4`;c4Type;title;accTitle;accDescr;shapes=[];boundaries=[{alias:`global`,label:`global`,type:`global`,parent:void 0}];rels=[];shapeInRow=4;boundaryInRow=2;shapeIndex=/* @__PURE__ */ new Map;boundaryIndex=/* @__PURE__ */ new Map;relIndex=/* @__PURE__ */ new Map;current=this.boundaries[0];stack=[];setC4Type(e){this.c4Type=e}setTitle(e){this.title=e}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
2
|
+
`)}element(e,t,n,r){let i=typeof n==`string`?t.get(n):void 0;return i===void 0&&(i={alias:``,label:``,parent:void 0},e.push(i),typeof n==`string`?(i.alias=n,t.set(n,i)):(i.aliasAttr=n,O(i,n))),j(i,r),i}addPersonOrSystem(e,t){let n=this.element(this.shapes,this.shapeIndex,t[0],t[1]);A(n,`descr`,t[2]),this.finishShape(n,e,t,3)}addContainer(e,t){let n=this.element(this.shapes,this.shapeIndex,t[0],t[1]);A(n,`techn`,t[2]),A(n,`descr`,t[3]),this.finishShape(n,e,t,4)}addComponent(e,t){this.addContainer(e,t)}finishShape(e,t,n,r){k(e,`sprite`,n[r]),k(e,`tags`,n[r+1]),k(e,`link`,n[r+2]),e.kind=t,e.parent=this.current}boundary(e,t){let n=this.element(this.boundaries,this.boundaryIndex,e[0],e[1]);return e[2]===void 0?n.type=t:k(n,`type`,e[2]),n}open(e){e.parent=this.current,this.stack.push(this.current),this.current=e}addPersonOrSystemBoundary(e,t=`system`){let n=this.boundary(e,t);k(n,`tags`,e[3]),k(n,`link`,e[4]),this.open(n)}addContainerBoundary(e){this.addPersonOrSystemBoundary(e,`container`)}addDeploymentNode(e,t){let n=this.boundary(t,`node`);A(n,`descr`,t[3]),k(n,`sprite`,t[4]),k(n,`tags`,t[5]),k(n,`link`,t[6]),n.nodeType=e,this.open(n)}popBoundaryParseStack(){this.current=this.stack.pop()??this.boundaries[0]}addRel(e,t){let n=t[0],r=t[1];if(n===void 0||r===void 0||t[2]===void 0)return;let i=typeof n==`string`&&typeof r==`string`,a=i?this.relIndex.get(n)?.get(r):void 0;if(a===void 0){if(a={type:e,from:``,to:``,label:``},this.rels.push(a),i){let e=this.relIndex.get(n);e===void 0&&this.relIndex.set(n,e=/* @__PURE__ */ new Map),e.set(r,a)}typeof n==`string`?a.from=n:a.fromAttr=n,typeof r==`string`?a.to=r:a.toAttr=r}a.type=e,j(a,t[2]),A(a,`techn`,t[3]),A(a,`descr`,t[4]),k(a,`sprite`,t[5]),k(a,`tags`,t[6]),k(a,`link`,t[7])}getC4Shape(e){return this.shapeIndex.get(e)??this.boundaryIndex.get(e)}updateElStyle(e,t){let n=typeof t[0]==`string`?this.getC4Shape(t[0]):void 0;n!==void 0&&(k(n,`bgColor`,t[1]),k(n,`fontColor`,t[2]),k(n,`borderColor`,t[3]),k(n,`shadowing`,t[4]),k(n,`shape`,t[5]),k(n,`sprite`,t[6]),k(n,`techn`,t[7]),k(n,`legendText`,t[8]),k(n,`legendSprite`,t[9]))}updateRelStyle(e,t){let n=t[0],r=t[1],i=typeof n==`string`&&typeof r==`string`?this.relIndex.get(n)?.get(r):void 0;if(i===void 0)return;k(i,`textColor`,t[2]),k(i,`lineColor`,t[3]);let a=t[4],o=t[5];typeof a==`string`?i.offsetX=parseInt(a):a!==void 0&&O(i,a),typeof o==`string`?i.offsetY=parseInt(o):o!==void 0&&O(i,o)}updateLayoutConfig(e,t){let n=e=>e===void 0?NaN:parseInt(typeof e==`string`?e:e.value),r=n(t[0]),i=n(t[1]);r>=1&&(this.shapeInRow=r),i>=1&&(this.boundaryInRow=i)}},N=/* @__PURE__ */ `$end.INVALID.direction_tb.direction_bt.direction_rl.direction_lr.title.accDescription.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.NEWLINE.C4_CONTEXT.C4_CONTAINER.C4_COMPONENT.C4_DYNAMIC.C4_DEPLOYMENT.PERSON.PERSON_EXT.SYSTEM.SYSTEM_DB.SYSTEM_QUEUE.SYSTEM_EXT.SYSTEM_EXT_DB.SYSTEM_EXT_QUEUE.CONTAINER.CONTAINER_DB.CONTAINER_QUEUE.CONTAINER_EXT.CONTAINER_EXT_DB.CONTAINER_EXT_QUEUE.COMPONENT.COMPONENT_DB.COMPONENT_QUEUE.COMPONENT_EXT.COMPONENT_EXT_DB.COMPONENT_EXT_QUEUE.ENTERPRISE_BOUNDARY.SYSTEM_BOUNDARY.BOUNDARY.CONTAINER_BOUNDARY.NODE.NODE_L.NODE_R.REL.BIREL.REL_U.REL_D.REL_L.REL_R.REL_B.REL_INDEX.UPDATE_EL_STYLE.UPDATE_REL_STYLE.UPDATE_LAYOUT_CONFIG.EOF_IN_STRUCT.ATTRIBUTE_EMPTY.STR.STR_KEY.STR_VALUE.LBRACE.RBRACE.EOF`.split(`.`),P=/* @__PURE__ */ new Map([[`C4Context`,14],[`C4Container`,15],[`C4Component`,16],[`C4Dynamic`,17],[`C4Deployment`,18],[`Person`,19],[`Person_Ext`,20],[`System`,21],[`SystemDb`,22],[`SystemQueue`,23],[`System_Ext`,24],[`SystemDb_Ext`,25],[`SystemQueue_Ext`,26],[`Container`,27],[`ContainerDb`,28],[`ContainerQueue`,29],[`Container_Ext`,30],[`ContainerDb_Ext`,31],[`ContainerQueue_Ext`,32],[`Component`,33],[`ComponentDb`,34],[`ComponentQueue`,35],[`Component_Ext`,36],[`ComponentDb_Ext`,37],[`ComponentQueue_Ext`,38],[`Enterprise_Boundary`,39],[`System_Boundary`,40],[`Boundary`,41],[`Container_Boundary`,42],[`Deployment_Node`,43],[`Node`,43],[`Node_L`,44],[`Node_R`,45],[`Rel`,46],[`BiRel`,47],[`Rel_Up`,48],[`Rel_U`,48],[`Rel_Down`,49],[`Rel_D`,49],[`Rel_Left`,50],[`Rel_L`,50],[`Rel_Right`,51],[`Rel_R`,51],[`Rel_Back`,52],[`RelIndex`,53],[`UpdateElementStyle`,54],[`UpdateRelStyle`,55],[`UpdateLayoutConfig`,56]]),F=[/.*direction\s+TB[^\n]*/y,/.*direction\s+BT[^\n]*/y,/.*direction\s+RL[^\n]*/y,/.*direction\s+LR[^\n]*/y],I=/[\n\r\u2028\u2029]/g,L=/title[^\S\r\n]*(?=[\r\n]|$)\s*/y;function R(e){let t=e.length,n=[],r=[],i=[],a=0,o=9,s=0,c=!1,l=-2,u=-1,d=0,f=(e,t,a)=>{n.push(e),r.push(t),i.push(a),s=a},p=n=>{for(;n<t&&_(e.charCodeAt(n));)n++;return n},m=(n,r)=>{let i=e.indexOf(n,r);return i===-1?t:i},h=(n,r)=>{let i=s+n.length;if(!e.startsWith(n,s)||!_(e.charCodeAt(i)))return!1;let a=++i;for(;i<t;){let t=e.charCodeAt(i);if(t===35||t===10||t===59)break;i++}return i!==a&&(f(r,s,i),!0)};for(;;){if(c){f(0,t,t);break}s>=t&&(c=!0);let n=e.charCodeAt(s);if(a===0){if(s>=t){f(64,t,t);continue}if(l!==-1&&s>=d&&(l<s&&(l=e.indexOf(`direction`,s)),l!==-1&&(u<s&&(I.lastIndex=s,u=I.test(e)?I.lastIndex-1:t),l<u))){let t=!1;for(let n=0;n<4&&!t;n++)F[n].lastIndex=s,F[n].test(e)&&(f(2+n,s,F[n].lastIndex),t=!0);if(t)continue;d=u}if(n===116){if(L.lastIndex=s,L.test(e)){s=L.lastIndex;continue}if(h(`title`,6))continue}if(n===97){if(h(`accDescription`,7))continue;let t=e.startsWith(`accTitle`,s);if(t||e.startsWith(`accDescr`,s)){let n=p(s+8),r=e.charCodeAt(n);if(r===58){f(t?8:10,s,p(n+1)),o=t?9:11,a=7;continue}if(r===123&&!t){s=p(n+1),a=8;continue}}}if(n===37&&e.charCodeAt(s+1)===37){let n=m(`
|
|
3
|
+
`,s+2);for(;n<t&&(e.charCodeAt(n)===10||e.charCodeAt(n)===13);)n++;s=n;continue}if(_(n)){let n=s,r=-1;for(;n<t;){let t=e.charCodeAt(n);if(!_(t))break;t===10&&(r=n),n++}r===-1?s=n:f(13,s,r+1);continue}if(n===123){f(62,s,s+1);continue}if(n===125){f(63,s,s+1);continue}if(w(n)){let n=s+1;for(;n<t&&w(e.charCodeAt(n));)n++;let r=n-s<=19?P.get(e.slice(s,n)):void 0;if(r!==void 0){r>18&&(a=1),f(r,s,n);continue}}f(1,s,s);break}if(a===1){if(s>=t)f(57,t,t);else if(n===40){let t=s+1;for(;e.charCodeAt(t)===32;)t++;e.charCodeAt(t)===44?f(58,s,t+1):s++,a=2}else if(n===41)s++,a=0;else{f(1,s,s);break}}else if(a===2){if(s>=t)continue;if(n===41)s++,a=0;else if(n===44)e.charCodeAt(s+1)===44?f(58,s,s+2):s++;else{let t=s;for(;e.charCodeAt(t)===32;)t++;let n=e.charCodeAt(t);n===34?e.charCodeAt(t+1)===34?f(58,s,t+2):(s=t+1,a=3):n===36?(s=t+1,a=4):f(59,s,m(`,`,s))}}else if(a===3)n===34?(s++,a=2):f(59,s,m(`"`,s));else if(a===4)f(60,s,m(`=`,s)),a=5;else if(a===5){if(s>=t)continue;let r=s+1;if(n===61)for(;e.charCodeAt(r)===32;)r++;if(n!==61||e.charCodeAt(r)!==34){f(1,s,s);break}s=r+1,a=6}else if(a===6){if(s>=t)continue;n===34?(s++,a=2):f(61,s,m(`"`,s))}else a===7?(f(o,s,m(`
|
|
4
|
+
`,s)),a=0):n===125?(s++,a=0):f(12,s,m(`}`,s))}return{types:n,starts:r,ends:i}}var z=[`person`,`external_person`,`system`,`system_db`,`system_queue`,`external_system`,`external_system_db`,`external_system_queue`,`container`,`container_db`,`container_queue`,`external_container`,`external_container_db`,`external_container_queue`,`component`,`component_db`,`component_queue`,`external_component`,`external_component_db`,`external_component_queue`],B=[`rel`,`birel`,`rel_u`,`rel_d`,`rel_l`,`rel_r`,`rel_b`,`rel`],V=[`node`,`nodeL`,`nodeR`],ee=`'direction_tb', 'direction_bt', 'direction_rl', 'direction_lr', 'C4_CONTEXT', 'C4_CONTAINER', 'C4_COMPONENT', 'C4_DYNAMIC', 'C4_DEPLOYMENT'`,te=`'STR', 'STR_KEY', 'ATTRIBUTE', 'ATTRIBUTE_EMPTY'`;function ne(e){return e===6||e===7||e===8||e===10||e===12}function H(e){return e>=19&&e<=56}function re(e,t){let{types:n,starts:r,ends:i}=R(e),a=0,o=t=>e.slice(r[t],i[t]),s=t=>{let i=n[a];throw i===1?h(`c4`,e,r[a],``,!0):h(`c4`,e,r[a],`Expecting ${t}, got '${N[i]}'`)},c=e=>{n[a]!==e&&s(`'${N[e]}'`),a++},l=()=>{let e=[];for(;;){let t=n[a];if(t===59)e.push(o(a++).trim());else if(t===58)e.push(``),a++;else if(t===60)a++,n[a]!==61&&s(`'STR_VALUE'`),e.push({key:o(a-1).trim(),value:o(a).trim()}),a++;else break}return e.length===0&&s(te),e},u=e=>{e===6?t.setTitle(o(a++).substring(6)):e===7?t.setAccDescription(o(a++).substring(15)):e===12?t.setAccDescription(o(a++).trim()):(a++,e===8?(n[a]!==9&&s(`'acc_title_value'`),t.setTitle(o(a++).trim())):(n[a]!==11&&s(`'acc_descr_value'`),t.setAccDescription(o(a++).trim())))},d=e=>{a++;let r=l();if(e<=26)t.addPersonOrSystem(z[e-19],r);else if(e<=32)t.addContainer(z[e-19],r);else if(e<=38)t.addComponent(z[e-19],r);else{if(e<=45)return e===39?r.splice(2,0,`ENTERPRISE`):e===40?r.splice(2,0,`SYSTEM`):e===42&&r.splice(2,0,`CONTAINER`),e>=43?t.addDeploymentNode(V[e-43],r):e===42?t.addContainerBoundary(r):t.addPersonOrSystemBoundary(r),n[a]===62?(a++,c(13)):n[a]===13?(a++,c(62),n[a]===13&&a++):s(`'NEWLINE', 'LBRACE'`),!0;e<=53?(e===53&&r.splice(0,1),t.addRel(B[e-46],r)):e===54?t.updateElStyle(`update_el_style`,r):e===55?t.updateRelStyle(`update_rel_style`,r):t.updateLayoutConfig(`update_layout_config`,r)}return!1},f=n[a];(f<14||f>18)&&s(ee),a++,c(13);let p=0,m=0;for(;;){let e=n[a];if(m===3||m===4){if(e===13){a++,m=2;continue}if(m===3&&H(e)){m=1;continue}}else if(H(e)){d(e)?(p++,m=1):m=4;continue}else if(ne(e)&&m!==1){u(e),m=3;continue}else m!==2&&s(`'title', 'accDescription', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'PERSON', 'REL'`);if(p>0)e!==63&&s(`'NEWLINE', 'RBRACE'`),a++,t.popBoundaryParseStack(),p--,m=4;else{e!==64&&s(`'NEWLINE', 'EOF'`),a++,c(0),t.setC4Type(o(0));return}}}var U=28,W=20,G=7,ie=8,ae=30,K=88,q=160,oe=8,se=26,ce=e=>Math.min(12,Math.max(6,e/14)),le=e=>Math.min(12,e/4);function J(e,t,n,r,i,a,o,s){let c=0,l=1;if(o===0){if(i<e||i>n)return 1/0}else{let t=(e-i)/o,r=(n-i)/o;c=Math.max(c,Math.min(t,r)),l=Math.min(l,Math.max(t,r))}if(s===0){if(a<t||a>r)return 1/0}else{let e=(t-a)/s,n=(r-a)/s;c=Math.max(c,Math.min(e,n)),l=Math.min(l,Math.max(e,n))}return c<=l?c:1/0}function Y(e,t,n,r,i,a,o,s){let c=o/n,l=s/r,u=(i-e)/n,d=(a-t)/r,f=c*c+l*l,p=2*(c*u+l*d),m=u*u+d*d-1,h=p*p-4*f*m;if(f===0||h<0)return 1/0;let g=(-p-Math.sqrt(h))/(2*f);return g>=0&&g<=1?g:m<=0?0:1/0}function X(e,t,n,r,i){let{x:a,y:o,w:s,h:c}=e,l=r-t,u=i-n;if(e.form===`person`)return Math.min(J(a,o+se,a+s,o+c,t,n,l,u),Y(a+s/2,o+14,13,13,t,n,l,u));if(e.form===`cyl`){let e=ce(s);return Math.min(J(a,o+e,a+s,o+c-e,t,n,l,u),Y(a+s/2,o+e,s/2,e,t,n,l,u),Y(a+s/2,o+c-e,s/2,e,t,n,l,u))}if(e.form===`h-cyl`){let e=le(c);return Math.min(J(a+e,o,a+s-e,o+c,t,n,l,u),Y(a+e,o+c/2,e,c/2,t,n,l,u),Y(a+s-e,o+c/2,e,c/2,t,n,l,u))}return J(a,o,a+s,o+c,t,n,l,u)}function ue(e,t,n,r,i){for(let a=2;a<e.length;a+=2){let o=e[a-2],s=e[a-1];if(J(t,n,r,i,o,s,e[a]-o,e[a+1]-s)<=1)return!0}return!1}function Z(e,t){return e.x<=t.x&&e.y<=t.y&&e.x+e.w>=t.x+t.w&&e.y+e.h>=t.y+t.h}function de(e,t,n){let r=e.x+e.w/2,i=e.y+e.h/2,a=t.x+t.w/2,o=t.y+t.h/2,s=Z(e,t);if(s||Z(t,e)){let n=s?e:t,r=s?t:e,i=r.x+r.w/2,a=r.y+r.h/2,o=r.x-n.x,c=n.x+n.w-r.x-r.w,l=r.y-n.y,u=n.y+n.h-r.y-r.h,d=Math.min(o,c,l,u),f=d===o?n.x:d===c?n.x+n.w:i,p=d===o||d===c?a:d===u?n.y+n.h:n.y,m=Math.min(X(r,f,p,i,a),1),h=f+(i-f)*m,g=p+(a-p)*m;return s?[f,p,h,g]:[h,g,f,p]}let c=r,l=i,u=a,d=o,f=Math.max(e.x,t.x),p=Math.min(e.x+e.w,t.x+t.w),m=Math.max(e.y,t.y),h=Math.min(e.y+e.h,t.y+t.h);f<p?c=u=(f+p)/2:m<h&&(l=d=(m+h)/2);let g=Math.hypot(u-c,d-l)||1,_=-(d-l)/g*n,v=(u-c)/g*n,y=X(e,u+_,d+v,c+_,l+v),b=X(t,c+_,l+v,u+_,d+v);return y<=1&&b<=1?(c+=_,l+=v,u+=_,d+=v):(c=r,l=i,u=a,d=o,y=Math.min(X(e,u,d,c,l),1),b=Math.min(X(t,c,l,u,d),1)),[u+(c-u)*y,d+(l-d)*y,c+(u-c)*b,l+(d-l)*b]}var fe=6,pe=3,me=12,he=class{upright=[];level=[];frames=[[],[]];taken=/* @__PURE__ */ new Map;squeezed=0;free(e,t,n,r){let i=Math.min(n,r),a=Math.max(n,r),o=(e,n)=>{for(let r=0;r<e.length;r+=3)if(Math.abs(e[r]-t)<n&&e[r+1]<a&&e[r+2]>i)return!0;return!1};return!o(e?this.upright:this.level,fe)&&!o(this.frames[+!e],pe)}crossings(e){let t=0;for(let n=2;n<e.length;n+=2){let r=e[n]===e[n-2],i=r?e[n]:e[n+1],a=Math.min(r?e[n-1]:e[n-2],r?e[n+1]:e[n]),o=Math.max(r?e[n-1]:e[n-2],r?e[n+1]:e[n]),s=r?this.level:this.upright;for(let e=0;e<s.length;e+=3)s[e]>a&&s[e]<o&&s[e+1]<i&&s[e+2]>i&&t++}return t}frame(e){this.frames[0].push(e.x,e.y,e.y+e.h,e.x+e.w,e.y,e.y+e.h),this.frames[1].push(e.y,e.x,e.x+e.w,e.y+e.h,e.x,e.x+e.w)}take(e){for(let t=2;t<e.length;t+=2)e[t]===e[t-2]?this.upright.push(e[t],Math.min(e[t-1],e[t+1]),Math.max(e[t-1],e[t+1])):e[t+1]===e[t-1]&&this.level.push(e[t+1],Math.min(e[t-2],e[t]),Math.max(e[t-2],e[t]))}ports(e,t,n,r,i){let a=this.taken.get(e)??[],o=[];for(let e=0;e<9&&o.length<4;e++){let s=n+(e&1?1:-1)*Math.ceil(e/2)*me;if(s<r||s>i)continue;let c=!0;for(let e=0;e<a.length;e+=2)a[e]===t&&Math.abs(a[e+1]-s)<me&&(c=!1);c&&o.push(s)}return o.length?o:[n]}claim(e,t,n){let r=this.taken.get(e);r?r.push(t,n):this.taken.set(e,[t,n])}};function ge(e,t,n){let r=e.length,i=Math.sign(e[2]-e[0]),a=Math.sign(e[3]-e[1]),o=`M${g(e[0]+i*t)},${g(e[1]+a*t)}`;for(let t=2;t<r-2;t+=2){let n=e[t],r=e[t+1],i=Math.sign(n-e[t-2]),a=Math.sign(r-e[t-1]),s=Math.sign(e[t+2]-n),c=Math.sign(e[t+3]-r),l=Math.min(ie,Math.abs(n-e[t-2]+r-e[t-1])/2,Math.abs(e[t+2]-n+e[t+3]-r)/2);o+=`${i?`H`+g(n-i*l):`V`+g(r-a*l)}Q${g(n)},${g(r)} ${g(n+s*l)},${g(r+c*l)}`}let s=Math.sign(e[r-2]-e[r-4]),c=Math.sign(e[r-1]-e[r-3]);return o+(s?`H`+g(e[r-2]-s*n):`V`+g(e[r-1]-c*n))}function _e(e,t,n,r){for(let i of t)if(i!==n&&i!==r&&ue(e,i.x,i.y,i.x+i.w,i.y+i.h))return!1;return!0}function ve(e,t,n,r,i){let a=e.length;return{d:ge(e,n,r),sx:e[0],sy:e[1],sdx:-Math.sign(e[2]-e[0]),sdy:-Math.sign(e[3]-e[1]),ex:e[a-2],ey:e[a-1],edx:Math.sign(e[a-2]-e[a-4]),edy:Math.sign(e[a-1]-e[a-3]),x0:e[t],y0:e[t+1],x1:e[t+2],y1:e[t+3],nx:0,ny:0,lean:0,room:q,...i,points:e}}function ye(e,t){let n=[],r=(e+t)/2,i=Math.max(G,(t-e)/4);for(let a=0;a<9;a++){let o=r+(a&1?1:-1)*Math.ceil(a/2)*i;o>=e+fe&&o<=t-fe&&n.push(o)}return n}function be(e,t,n,r,i,a){let o=e.x+e.w/2,s=e.y+e.h/2,c=t.x+t.w/2,l=t.y+t.h/2,u,d=(i,a,o)=>{if(!_e(i,n,e,t))return;for(let e=2;e<i.length;e+=2){let t=i[e]===i[e-2];if(!r.free(t,t?i[e]:i[e+1],t?i[e-1]:i[e-2],t?i[e+1]:i[e]))return}let s=r.crossings(i)*1e6;for(let e=2;e<i.length;e+=2)s+=Math.abs(i[e]-i[e-2])+Math.abs(i[e+1]-i[e-1]);(!u||s<u.cost)&&(u={points:i,cost:s,upright:a,sides:o})};if(e.x+e.w<=t.x||t.x+t.w<=e.x){let n=c>o,i=Math.sign(l-s),a=n?[1,0]:[0,1],f=ye(n?e.x+e.w:t.x+t.w,n?t.x:e.x);e:for(let n of r.ports(e,a[0],s+i*e.h/4,e.y+8,e.y+e.h-8))for(let s of r.ports(t,a[1],l-i*t.h/4,t.y+8,t.y+t.h-8))for(let r of f){let i=r+(o-r)*Math.min(X(e,r,n,o,n),1),l=r+(c-r)*Math.min(X(t,r,s,c,s),1),f=u;if(d([i,n,r,n,r,s,l,s],!0,a),u!==f)break e}}if(e.y+e.h<=t.y||t.y+t.h<=e.y){let n=l>s,i=Math.sign(c-o),a=n?[3,2]:[2,3],f=ye(n?e.y+e.h:t.y+t.h,n?t.y:e.y);e:for(let n of r.ports(e,a[0],o+i*e.w/4,e.x+8,e.x+e.w-8))for(let o of r.ports(t,a[1],c-i*t.w/4,t.x+8,t.x+t.w-8))for(let r of f){let i=r+(s-r)*Math.min(X(e,n,r,n,s),1),c=r+(l-r)*Math.min(X(t,o,r,o,l),1),f=u;if(d([n,i,n,r,o,r,o,c],!1,a),u!==f)break e}}if(!u)return;let{points:f,upright:p,sides:m}=u;return r.take(f),r.claim(e,m[0],p?f[1]:f[0]),r.claim(t,m[1],p?f[7]:f[6]),ve(f,2,i,a,{room:p?K:q})}function xe(e,t,n,r,i,a,o){if(e===t){let t=Math.min(e.h/2-4,10),n=Math.hypot(U,t),r=e.x+e.w,i=e.y+e.h/2,s=U/n,c=t/n;return{d:`M${g(r+s*a)},${g(i-t-c*a)}C${g(r+U)},${g(i-t*2)} ${g(r+U)},${g(i+t*2)} ${g(r+s*o)},${g(i+t+c*o)}`,sx:r,sy:i-t,sdx:-s,sdy:c,ex:r,ey:i+t,edx:-s,edy:-c,x0:r+U+4,y0:i,x1:r+U+4,y1:i,nx:1,ny:0,lean:0,room:64,points:[]}}let[s,c,l,u]=de(e,t,n),d=s===l,f=!1;if(r&&!Z(e,t)&&!Z(t,e))for(let n of r)n!==e&&n!==t&&J(n.x,n.y,n.x+n.w,n.y+n.h,s,c,l-s,u-c)<=1&&(f=!0);if(r&&f&&!d&&c!==u){let n=be(e,t,r,i,a,o);if(n)return n;i.squeezed++}if(r&&f&&(d||c===u)){let n=n=>{let i=n?-1/0:1/0,a=e=>{let t=d?e.x:e.y;i=n?Math.max(i,t+(d?e.w:e.h)):Math.min(i,t)};a(e),a(t);for(let n of r)n!==e&&n!==t&&J(n.x,n.y,n.x+n.w,n.y+n.h,s,c,l-s,u-c)<=1&&a(n);return i},f=d?Math.min(e.y,t.y):Math.min(e.x,t.x),p=d?Math.max(e.y+e.h,t.y+t.h):Math.max(e.x+e.w,t.x+t.w),m=(n,i)=>{for(let a of r){if(a===e||a===t)continue;let r=d?a.y<p&&a.y+a.h>f:a.x<p&&a.x+a.w>f,o=d?a.x:a.y,s=o+(d?a.w:a.h);if(r&&(n?s>i:o<i))return!1}return!0},h=e.x+e.w/2,g=e.y+e.h/2,_=t.x+t.w/2,v=t.y+t.h/2,y=Math.sign(d?v-g:_-h),b=a=>{let o=n(a),s=a?1:-1,c=d?+!!a:a?3:2,l=d?i.ports(e,c,g+y*e.h/4,e.y+8,e.y+e.h-8)[0]:i.ports(e,c,h+y*e.w/4,e.x+8,e.x+e.w-8)[0],u=d?i.ports(t,c,v-y*t.h/4,t.y+8,t.y+t.h-8)[0]:i.ports(t,c,_-y*t.w/4,t.x+8,t.x+t.w-8)[0],f=n=>{if(d){let r=n+(h-n)*Math.min(X(e,n,l,h,l),1),i=n+(_-n)*Math.min(X(t,n,u,_,u),1);return[r,l,n,l,n,u,i,u]}let r=n+(g-n)*Math.min(X(e,l,n,l,g),1),i=n+(v-n)*Math.min(X(t,u,n,u,v),1);return[l,r,l,n,u,n,u,i]},p=f(o+s*W);for(let n=0;n<=4;n++){let a=o+s*(W+n*G),m=f(a);if(_e(m,r,e,t)&&(p=m,i.free(d,a,l,u)))return{points:p,side:c,p0:l,p1:u,step:n}}return{points:p,side:c,p0:l,p1:u,step:5}},x=d?u>c:l<s,S=m(x,n(x)),C=m(!x,n(!x)),w=b(x),T=S===C?b(!x):void 0,E=e=>i.crossings(e.points)*8+e.step,D=C&&!S||T&&E(T)<E(w)?!x:x,{points:O,side:k,p0:A,p1:j,step:M}=D===x?w:T??b(!x),N=D?1:-1;return M>4&&i.squeezed++,i.take(O),i.claim(e,k,A),i.claim(t,k,j),ve(O,2,a,o,d?{nx:N,lean:ae,room:K}:{room:q})}let p=Math.hypot(l-s,u-c)||1,m=(l-s)/p,h=(u-c)/p;return(d||c===u)&&i.take([s,c,l,u]),{d:`M${g(s+m*a)},${g(c+h*a)}L${g(l-m*o)},${g(u-h*o)}`,sx:s,sy:c,sdx:-m,sdy:-h,ex:l,ey:u,edx:m,edy:h,x0:s,y0:c,x1:l,y1:u,nx:n?-h:0,ny:n?m:0,lean:0,room:Math.abs(m)>Math.abs(h)?K:q,points:[s,c,l,u]}}var Se=216,Ce=64,we=14,Te=12,Ee=K+oe+24,De=88,Oe=W+8,ke=48,Q=16,Ae=10,je=/* @__PURE__ */ new Map([[`person`,`person`],[`box`,`rect`],[`rounded`,`rect`],[`component`,`rect`],[`cylinder`,`cyl`],[`database`,`cyl`],[`db`,`cyl`],[`queue`,`h-cyl`],[`pipe`,`h-cyl`]]);function Me(e){let t=je.get((e.shape??``).toLowerCase())??je.get((e.sprite??``).toLowerCase());if(t)return t;if(e.tags)for(let t of e.tags.split(`,`)){let e=je.get(t.trim().toLowerCase());if(e)return e}let n=e.kind;return n.endsWith(`person`)?`person`:n.endsWith(`_db`)?`cyl`:n.endsWith(`_queue`)?`h-cyl`:`rect`}function Ne(e,n,r,i,a=Se){let o=Me(e),s=o===`h-cyl`?36:0,c=o===`person`?se:o===`cyl`?24:0,l=a-2*we-s,u=[t(`«`+e.kind.replace(/_/g,` `)+`»`,!1,n,i-1,l),t(e.label,!1,n,r,l,1),t(e.techn?`[${e.techn}]`:void 0,!1,n,i,l),t(e.descr,!1,n,i,l)],d=0,f=u[3].height>0?4:0;for(let e of u)d=Math.max(d,e.width),f+=e.height;return{shape:e,form:o,labels:u,textH:f,x:0,y:0,w:Math.max(a,d+2*we+s),h:Math.max(Ce,f+2*Te+c)}}function Pe(e,t,n,r,i){let a=0,o=0;for(let s=0;s<e.length;s+=t){let c=Math.min(e.length,s+t),l=0,u=0;for(let t=s;t<c;t++)u=Math.max(u,e[t].h);for(let t=s;t<c;t++){let r=e[t];r.x=l,r.y=o,i&&(r.h=u),l+=r.w+n}a=Math.max(a,l-n),o+=u+r}return[a,e.length>0?o-r:0]}function Fe(e,n,r,i,a,o){let s=a===void 0?Oe:12,c=/* @__PURE__ */ new Map;for(let o of e.boundaries){let e=a===void 0?4e3:Math.max(80,a-2*Q-2*Oe*2),l=o.parent?[t(o.label,!1,n,r,e,1),t(o.type?`[${o.type}]`:void 0,!1,n,i,e),t(o.descr,!1,n,i,e)]:[],u=0,d=0;for(let e of l)u+=e.height,d=Math.max(d,e.width);c.set(o,{boundary:o,kids:[],nodes:[],labels:l,head:u>0?u+Ae+6+W:s,headW:d,headX:Q,x:0,y:0,w:0,h:0,form:`rect`})}let l=c.get(e.boundaries[0]);for(let e of c.values()){let t=e.boundary.parent;t&&c.get(t)?.kids.push(e)}let u=[l],d=/* @__PURE__ */ new Map([[l.boundary,0]]);for(let e=0;e<u.length;e++)for(let t of u[e].kids)d.set(t.boundary,d.get(u[e].boundary)+1),u.push(t);for(let t of e.shapes)if(t.parent){let e=d.get(t.parent)??0,o=a===void 0?Se:Math.max(100,Math.min(Se,a-2*e*s-32));c.get(t.parent)?.nodes.push(Ne(t,n,r,i,o))}let f=Math.max(1,e.shapeInRow),p=Math.max(1,e.boundaryInRow),m=/* @__PURE__ */ new Map;for(let e=u.length-1;e>=0;e--){let t=u[e],n=a===void 0?Ee:o,r=(e,t,n)=>{if(a===void 0)return t;let r=1;for(let t of e)r=Math.max(r,t.w);return Math.max(1,Math.min(t,Math.floor((a+n-2*s)/(r+n))))},[i,c]=Pe(t.nodes,r(t.nodes,f,n),n,De,!0),[d,h]=Pe(t.kids,r(t.kids,p,ke),ke,ke,!1),g=c>0&&h>0?ke:0,_=t===l?0:s;m.set(t,c+g),t.w=Math.max(i,d,t.headW+2*Q-2*_)+2*_,t.h=(_&&t.head)+c+g+h+_}let h=/* @__PURE__ */ new Map;for(let e of u){let t=e.x+(e===l?0:s),n=e.y+(e===l?0:e.head);for(let r of e.nodes)r.x+=t,r.y+=n,h.set(r.shape,r);for(let r of e.kids)r.x+=t,r.y+=n+m.get(e);e!==l&&h.set(e.boundary,e)}return{order:u,boxes:h}}var Ie=7,Le=36,Re=24,ze=2e3,Be=8,Ve=[.5,.4,.6,.3,.7,.2,.8],He=2e6;function $(e,t,r){let i=[];return e&&i.push(`fill:`+e),t&&i.push(`stroke:`+t),r&&i.push(`color:`+r),n(i)}function Ue(e,t,n,r,i){return t?d(e,f(t.includes(`¶ß`)?t.replace(/\ufb02\u00b0\u00b0?/g,`#`).replace(/\u00b6\u00df/g,`;`):t),n,r,i):e}function We(e,t,n){return i(n,r=>{if(!r)return Ge(e,t,n,!1)[0];let[i,a]=Ge(e,t,n,!0,Le);for(let r=Le+Re;a>0&&r<=Le+3*Re;r+=Re){let[o,s]=Ge(e,t,n,!0,r);s<a&&([i,a]=[o,s])}return i})}function Ge(n,i,d,f,h=Le){let _=d.fontSize??16,w=Math.round(_*.8125),E=d.measurer??C(d.fontFamily,d.fontFamilyMono),D=d.padding??8,O=[],{order:k,boxes:A}=Fe(n,E,_,w,f?Math.max(80,(d.maxWidth??320)-2*D):void 0,h),j=k[0],M=0,N=0,P=j.w,F=j.h,I=(e,t,n,r)=>{M=Math.min(M,e),N=Math.min(N,t),P=Math.max(P,n),F=Math.max(F,r)},L=[],R=/* @__PURE__ */ new Map;for(let e of n.rels){let t=e.fromAttr?void 0:n.getC4Shape(e.from),r=e.toAttr?void 0:n.getC4Shape(e.to),i=t&&A.get(t),a=r&&A.get(r);if(!i||!a)throw new T(`C4 rel "${e.from}" -> "${e.to}" references an unknown shape or boundary`,`semantic`,{type:`c4`});L.push(i,a);let o=R.get(i);o||R.set(i,o=/* @__PURE__ */ new Set),o.add(a)}let z=[],B=[];for(let e of k)for(let t of e.nodes)z.push(t),B.push(t.x+Be,t.y+Be,t.x+t.w-Be,t.y+t.h-Be);let V=n.rels.length*(z.length+k.length+3*n.rels.length)<=He,ee=(e,t,n,r)=>{let i=0;for(let a=0;a<B.length;a+=4){let o=Math.min(n,B[a+2])-Math.max(e,B[a]);if(o<=0)continue;let s=Math.min(r,B[a+3])-Math.max(t,B[a+1]);s>0&&(i+=o*s)}return i},te=e=>e?Math.max(-ze,Math.min(ze,e)):0,ne=``,H=``,re=l(`arrow_point`),U=[];for(let e of k){if(e===j)continue;let t=$(e.boundary.bgColor,void 0,void 0).shape;x(t)&&U.push({box:[e.x,e.y,e.x+e.w,e.y+e.h],shape:t})}let G=new he;for(let e of k)e!==j&&G.frame(e);let ie=n.rels.map((e,t)=>{let n=L[t*2],r=L[t*2+1],i=$(void 0,e.lineColor,void 0),a=e.type===`birel`||e.type===`rel_b`,s=e.type!==`rel_b`,l=xe(n,r,n!==r&&R.get(r)?.has(n)===!0?Ie:0,V?z:void 0,G,a?re:0,s?re:0);I(Math.min(l.x0,l.x1),Math.min(l.y0,l.y1),Math.max(l.x0,l.x1),Math.max(l.y0,l.y1)),a&&V&&B.push(l.sx-8,l.sy-8,l.sx+8,l.sy+8),s&&V&&B.push(l.ex-8,l.ey-8,l.ex+8,l.ey+8);let d=c(l.d,[l.sx,l.sy,l.ex,l.ey],U,i.line),f=d||(i.stroke?v(i.stroke):`var(--_l)`);return d===``&&(ne+=o(l,a?`arrow_point`:`none`,s?`arrow_point`:`none`,i.line)),H+=`<g class="pele-edge" data-id="${y(e.from+`-`+e.to)}"${d?` stroke="${d}"`:``}${i.line}><path d="${l.d}"/>`+(a?u(`arrow_point`,l.sx,l.sy,l.sdx,l.sdy,f):``)+(s?u(`arrow_point`,l.ex,l.ey,l.edx,l.edy,f):``)+`</g>`,l});for(let e of k){if(!V||e.headW===0)continue;let t=e.y+Ae,n=e.y+e.head-W,r=1/0;for(let i of[Q,(e.w-e.headW)/2,e.w-Q-e.headW]){let a=0;for(let r of ie)ue(r.points,e.x+i-4,t,e.x+i+e.headW+4,n)&&a++;if(a<r&&(r=a,e.headX=i),a===0)break}B.push(e.x+e.headX-4,t,e.x+e.headX+e.headW+4,n)}let ae=``;n.rels.forEach((e,r)=>{let i=ie[r],a=e.from+`-`+e.to,o=$(void 0,void 0,e.textColor),s=(n.c4Type===`C4Dynamic`?r+1+`: `:``)+e.label,c=t(s,!1,E,w,i.room),l=t(e.techn?`[${e.techn}]`:void 0,!1,E,w,i.room,2),u=Math.max(c.width,l.width)+oe,p=c.height+l.height;if(p===0)return;let m=Math.abs(i.nx)*(u/2)+Math.abs(i.ny)*(p/2)+2,h=i.lean?Math.max(0,Math.min(i.lean,m-14)):m,_=i.nx*h+(f?0:te(e.offsetX)),v=i.ny*h+(f?0:te(e.offsetY)),x=.5;if(V){let e=1/0,t=_!==i.nx*h||v!==i.ny*h;for(let n=0;n<(t?2:1)&&e>0;n++){let t=n?i.nx*h:_,r=n?i.ny*h:v;for(let n of Ve){let a=i.x0+(i.x1-i.x0)*n+t,o=i.y0+(i.y1-i.y0)*n+r,s=ee(a-u/2,o-p/2,a+u/2,o+p/2);if(s<e&&(e=s,x=n,_=t,v=r),s===0)break}}}let S=i.x0+(i.x1-i.x0)*x+_,C=i.y0+(i.y1-i.y0)*x+v-p/2;V&&B.push(S-u/2,C,S+u/2,C+p),I(S-u/2,C,S+u/2,C+p),ae+=`<g class="pele-edge-label" data-id="${y(a)}">`+(e.descr?`<title>${y(e.descr)}</title>`:``)+`<rect x="${g(S-u/2)}" y="${g(C)}" width="${g(u)}" height="${g(p)}" rx="3" fill="var(--_bg)"/>`+Ue(b(c,S,C+c.height/2,o.text)+b(l,S,C+c.height+l.height/2,` class="pele-c4-techn" fill="var(--_m)"${o.text}`),e.link,a,O,d)+`</g>`});let K=``,q=``;for(let e of k){if(e!==j){let t=e.boundary,n=$(t.bgColor,t.borderColor,t.fontColor),i=e.x+e.headX,a=e.y+Ae,o=S(n)+n.text,s=S(n,`var(--_m)`)+n.text,c=m(e.labels[0],i,a,` class="pele-cluster-label" font-weight="var(--_hw)"${o}`);a+=e.labels[0].height,c+=m(e.labels[1],i,a,` class="pele-c4-type" font-size="${w}"${s}`),a+=e.labels[1].height,c+=m(e.labels[2],i,a,` class="pele-c4-descr" font-size="${w}"${s}`),K+=`<g class="pele-cluster pele-c4-${t.nodeType?`node`:`boundary`}" data-id="${y(t.alias)}"><rect x="${g(e.x)}" y="${g(e.y)}" width="${g(e.w)}" height="${g(e.h)}" fill="none" stroke="var(--_b)"${t.nodeType?``:` stroke-dasharray="6 4"`}${r(n.shape)}/>`+Ue(c,t.link,t.alias,O,d)+`</g>`}for(let t of e.nodes){let e=t.shape,n=e.kind.startsWith(`external`),r=$(e.bgColor,e.borderColor,e.fontColor),i=` stroke="var(--_b)"`+(n?` stroke-dasharray="4 3"`:``),{w:a,h:o,form:s,labels:c}=t,l=s===`h-cyl`?-le(o)/2:0,u=s===`person`?se/2:s===`cyl`?ce(a)/2:0,f=S(r)+r.text,m=S(r,`var(--_m)`)+r.text,h=u-t.textH/2,_=b(c[0],l,h+c[0].height/2,` class="pele-c4-type" font-size="${w-1}"${m}`);h+=c[0].height,_+=b(c[1],l,h+c[1].height/2,` class="pele-label" font-weight="var(--_hw)"${f}`),h+=c[1].height,_+=b(c[2],l,h+c[2].height/2,` class="pele-c4-techn" font-size="${w}"${m}`),h+=c[2].height+4,_+=b(c[3],l,h+c[3].height/2,` class="pele-c4-descr" font-size="${w}"${f}`),q+=`<g class="pele-node pele-shape-${s} pele-c4-${e.kind}${n?` pele-c4-external`:``}" data-id="${y(e.alias)}" transform="translate(${g(t.x+a/2)},${g(t.y+o/2)})">`+Ue(p(s,a,o,` fill="var(${n?`--_bg`:`--_s`})"${i}${r.shape}`,i+r.line)+_,e.link,e.alias,O,d)+`</g>`}}let J=t(n.title,!1,E,_,f?a(d):4e3,1),Y=J.height>0?J.height+12:0,X=Math.max(P-M,J.width),Z=Math.ceil(X+2*D),de=Math.ceil(F-N+Y+2*D),fe=D-M+(X-(P-M))/2,pe=D+Y-N;return[{svg:e(`c4`,Z,de,_,d,n,b(J,Z/2,D+J.height/2,` class="pele-title" font-weight="var(--_tw)"`)+`<g transform="translate(${g(fe)},${g(pe)})">`+(K?`<g class="pele-clusters">${K}</g>`:``)+s(ne)+(H?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${H}</g>`:``)+(q?`<g class="pele-nodes">${q}</g>`:``)+(ae?`<g class="pele-edge-labels" font-size="${w}">${ae}</g>`:``)+`</g>`),width:Z,height:de,links:O},G.squeezed]}var Ke={type:`c4`,parse(e,t,n){let r=new M;return n&&(r.title=n),re(e,r),r},render:We};export{Ke as c4};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as e,d as t,f as n,i as r,n as i,r as a}from"./BGW36YJW-CJMhya8S.js";import{i as o}from"./DKTLEL5E-DciMwFJ1.js";import{t as s}from"./RVARI57O-CgA1WoRv.js";import{C as c,E as l,F as u,I as d,N as f,P as p,f as m,h,s as g,t as _,u as v}from"./lazy-f3CuUNJZ.js";var y=/^\d+$/,b=/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/,x=/^\d+px$/;function S(e,t,n){return new v(`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 v(`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=/* @__PURE__ */ 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
|
+
`)}},D=/* @__PURE__ */ `$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=/* @__PURE__ */ 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,c=0,l=0,m=0,h=0,g=0,v=0,y=0,b=0,x=0,S=(t,a,o)=>{n.push(t),r.push(e.slice(a,o)),i.push(a),c=o},C=e=>{a.push(o),o=e},w=()=>{a.length>0&&(o=a.pop())},T=n=>{let r=e.indexOf(`
|
|
3
|
+
`,n);return r===-1?t:r},E=t=>{for(;e.charCodeAt(t)===32;)t++;return t},D=n=>{for(;n<t&&u(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&&!p(e.charCodeAt(i))&&f(e.charCodeAt(i+1)))for(i+=2;f(e.charCodeAt(i));)i++;return i};t:for(;c<t;){let n=e.charCodeAt(c),r=e.charCodeAt(c+1);switch(o){case 0:break;case 1:case 2:case 3:S(O[o],c,T(c)),w();continue;case 4:if(n===125)c++,w();else{let n=e.indexOf(`}`,c);S(9,c,n===-1?t:n)}continue;case 5:if(n===34)c++,w();else{let n=e.indexOf(`"`,c);S(19,c,n===-1?t:n)}continue;case 6:if(n===96&&r===34){c+=2,w();continue}if(n!==96&&n!==34){let n=c+1;for(let r=e.charCodeAt(n);n<t&&r!==96&&r!==34;r=e.charCodeAt(++n));S(18,c,n);continue}break t;case 7:if(_(n)){let t=c+1;for(;_(e.charCodeAt(t));)t++;S(20,c,t),w();continue}break t;case 8:{let t=A(c);if(t!==-1){S(22,c,t),C(9);continue}let n=D(c);if(e.charCodeAt(n)===93){c=E(n+1),w();continue}break t}case 9:{let t=D(c);if(e.charCodeAt(t)===44){c=D(t+1),o=10;continue}break t}case 10:{let e=A(c);if(e!==-1){S(23,c,e),w();continue}break t}}if(n===37&&r===37){c=T(c+2);continue}if(n===10||n===13){let t=c+1;for(let n=e.charCodeAt(t);n===10||n===13;n=e.charCodeAt(++t));S(2,c,t);continue}let i=n|32;if(i===116&&s(e,c,`title`)&&!_(e.charCodeAt(c+5))){S(3,c,c+5),C(1);continue}if(i===97&&s(e,c,`acc`)){let t=s(e,c+3,`descr`);if(t||s(e,c+3,`title`)){let n=D(c+8),r=e.charCodeAt(n);if(r===58){S(t?7:5,c,D(n+1)),C(t?3:2);continue}if(r===123&&t){c=D(n+1),C(4);continue}}}let a=c;n===32&&((c<l||c>=m)&&(l=c,m=E(c)),a=m);let p=e.charCodeAt(a),j=p|32,M=0,N=0;if(j===120&&s(e,a,`x-axis`))M=10,N=a+6;else if(j===121&&s(e,a,`y-axis`))M=11,N=a+6;else if(p===45){if(a<h||a>=g)for(h=a,g=a;e.charCodeAt(g)===45;)g++;g-a>=2&&e.charCodeAt(g)===62&&(M=12,N=g+1)}else if(j===113&&s(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):s(e,a+8,`chart`)&&(M=24,N=a+13)}if(M!==0)S(M,c,E(N));else if(i===99&&s(e,c,`classdef`)&&!_(e.charCodeAt(c+8)))S(17,c,c+8);else if(n===34)r===96?(c+=2,C(6)):(c++,C(5));else if(n===58&&r===58&&e.charCodeAt(c+2)===58)c+=3,C(7);else{if(n===58||u(n)){let t=c;if(n!==58&&((c<v||c>=y)&&(v=c,y=D(c)),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,c,D(x+1)),C(8);continue}}if(d(n)){let t=c+1;for(;d(e.charCodeAt(t));)t++;S(25,c,t)}else if(n>=128){let t=c+1;for(;e.charCodeAt(t)>=128;)t++;S(26,c,t)}else if(f(n)){let t=c+1;for(;f(e.charCodeAt(t));)t++;S(37,c,t)}else if(k[n]!==0)S(k[n],c,c+1);else break}}return c<t?(n.push(1),r.push(``),i.push(c),{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=/* @__PURE__ */ 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),ee=[`setQuadrant1Text`,`setQuadrant2Text`,`setQuadrant3Text`,`setQuadrant4Text`],I=`'STR', 'MD_STR', 'ALPHA', 'NUM', 'UNICODE_TEXT', 'PUNCTUATION'`;function L(e,t){let{types:n,texts:r,starts:i}=A(e),a=0,o=t=>{let r=n[a];throw r===1?c(`quadrantChart`,e,i[a],``,!0):c(`quadrantChart`,e,i[a],`Expecting ${t}, got '${D[r]}'`)},s=e=>(n[a]!==e&&o(`'${D[e]}'`),r[a++]),l=e=>e===19||e===18||M[e]===1,u=()=>{let e=n[a];l(e)||o(I);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`}},d=()=>{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,d());break}case 10:case 11:{a++;let r=u(),i;n[a]===12&&(a++,l(n[a])?i=u():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[ee[e-13]](u());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(l(e)){let e=u(),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?d():[])}}F[n[a]]===0&&o(`'NEWLINE', 'SEMI', 'EOF'`),a++}}var te=4,ne=300;function R(e,t){return e.quadrantChart?.[t]}function z(e,t,n,r){let i=R(e,t);return typeof i==`number`&&i>=0?Math.min(i,r):n}function B(e,t,n){let r=R(e,t);return typeof r==`number`&&Number.isFinite(r)?Math.min(72,Math.max(4,r)):n}function re(e){return e.startsWith(`#`)?e:`#`+e}function V(s,c,u){let d=u.fontSize??16,f=B(c,`titleFontSize`,d),p=B(c,`quadrantLabelFontSize`,d),_=B(c,`xAxisLabelFontSize`,Math.round(d*.875)),v=B(c,`yAxisLabelFontSize`,Math.round(d*.875)),y=B(c,`pointLabelFontSize`,Math.round(d*.75)),b=(e,t)=>e===t?``:` font-size="${e}"`,x=u.measurer??g(u.fontFamily,u.fontFamilyMono),S=Math.round(Math.max(100,z(c,`chartWidth`,500,4e3))),C=Math.round(o(u,S,280)),w=Math.round(Math.max(100,z(c,`chartHeight`,500,4e3))*C/S),T=z(c,`quadrantPadding`,u.padding??8,200),E=z(c,`xAxisLabelPadding`,5,200),D=z(c,`yAxisLabelPadding`,5,200),O=s.points.length>0,k=(e,t,n)=>r(e?.text,e?.type===`markdown`,x,t,Math.max(n,40)),A=r(s.title,!1,x,f,Math.max(C-2*T,40),1),j=z(c,`titlePadding`,10,200),M=A.height>0?A.height+j:0,N=!!(s.xAxisLeft?.text||s.xAxisRight?.text),P=!!(s.yAxisBottom?.text||s.yAxisTop?.text),F=O||R(c,`xAxisPosition`)===`bottom`,ee=R(c,`yAxisPosition`)===`right`,I=C-2*T,L=k(s.xAxisLeft,_,s.xAxisRight?I/2-16:I),V=k(s.xAxisRight,_,I/2-16),H=Math.max(L.height,V.height),ie=N?H+E:0,U=w-2*T-M-ie,W=k(s.yAxisBottom,v,s.yAxisTop?U/2-16:U),ae=k(s.yAxisTop,v,U/2-16),oe=Math.max(W.height,ae.height),se=P?oe+D:0,G=T+(ee?0:se),K=T+M+(F?0:ie),q=Math.max(0,I-se),J=Math.max(0,U),Y=Math.max(0,(q-te)/2),X=Math.max(0,(J-te)/2),Z=[G+Y,K,G+q-Y,K+J,G,K+X,G+q,K+J-X],ce=(e,t,n,r,i)=>{for(let a=e;a<Z.length;a+=4)if(!(Z[a]>=Z[a+2]||Z[a+1]>=Z[a+3])&&t<Z[a+2]&&r>Z[a]&&n<Z[a+3]&&i>Z[a+1])return!1;return!0},le=z(c,`quadrantTextTopPadding`,5,200),ue=``;for(let e=0;e<4;e++){let t=e===0||e===3?G+q-Y:G,r=e<2?K:K+J-X,i=k(s.quadrants[e],p,Y-16),a=t+Y/2,o=O?r+le+i.height/2:r+X/2;Z.push(a-i.width/2,o-i.height/2,a+i.width/2,o+i.height/2),ue+=`<g class="pele-quadrant" data-id="${e+1}"><rect x="${l(t)}" y="${l(r)}" width="${l(Y)}" height="${l(X)}"${n}/>`+h(i,a,o,` class="pele-label"${b(p,d)} fill="var(--_fg)" stroke="none"`)+`</g>`}let Q=``;if(N){let e=F?K+J+E+H/2:K-E-H/2;Q+=h(L,V.height>0?G+q/4:G+L.width/2,e,``)+h(V,G+q*3/4,e,``)}if(P){let e=ee?G+q+D+oe/2:G-D-oe/2,t=(t,n)=>t.height>0?`<g transform="translate(${l(e)},${l(n)}) rotate(-90)"${b(v,_)}>${h(t,0,0,``)}</g>`:``;Q+=t(W,ae.height>0?K+J*3/4:K+J-W.width/2)+t(ae,K+J/4)}let de=z(c,`pointRadius`,5,200),fe=z(c,`pointTextPadding`,5,200),pe=e(0),$=[],me=[];for(let e of s.points){if(!(e.x>=0&&e.x<=1&&e.y>=0&&e.y<=1))continue;let t=s.classes.get(e.className),n=Math.min(e.radius??t?.radius??de,2e3),r=e.color??t?.color,o=e.strokeColor??t?.strokeColor,c=e.strokeWidth??t?.strokeWidth,u=[];r&&u.push(`fill:`+re(r)),c&&(o&&u.push(`stroke:`+re(o)),u.push(`stroke-width:`+c));let d=G+e.x*q,f=K+(1-e.y)*J;$.push({cx:d,cy:f,reach:n+(c?Math.min(parseInt(c),400)/2:0),text:k(e.text,y,q)}),me.push(`<circle class="pele-point${i(e.className)}" data-id="${m(e.text.text)}" cx="${l(d)}" cy="${l(f)}" r="${l(n)}"${c&&!o?` stroke="${pe}"`:``}${a(u).shape}/>`)}let he=$.length<=ne;if(he)for(let{cx:e,cy:t,reach:n}of $)Z.push(e-n,t-n,e+n,t+n);let ge=``;for(let{cx:e,cy:t,reach:n,text:r}of $){let i=r.width/2,a=r.size*.6+(r.height-r.lineHeight)/2,o=n+fe,s=Math.min(o,Math.max(0,(Y-r.width)/2)),c=8+4*(e<G+q/2?t<K+J/2?1:2:t<K+J/2?0:3),l=Math.max(t+o,Z[c+3]+fe)+a,u=[e,t+o+a,e,t-o-a,e+o+i,t,e-o-i,t,e,l],d=e,f=u[1],p=!1;for(let e=0;e<20;e+=2){let t=e%10,n=t===8?s:0,o=(t<4||t===8)&&r.width<q?Math.min(Math.max(u[t],G+i+n),G+q-i-n):u[t],c=u[t+1];if(o-i<G||o+i>G+q||c-a<K||c+a>K+J)continue;let l=!he||ce(e<10?0:8,o-i,c-a,o+i,c+a);if((!p||l)&&(d=o,f=c,p=!0),l)break}he&&Z.push(d-i,f-a,d+i,f+a),ge+=h(r,d,f,` class="pele-label"`)}let _e=h(A,C/2,j/2+A.height/2,` class="pele-title"${b(f,d)} font-weight="var(--_tw)"`)+`<g class="pele-quadrants" fill="var(--_s)" stroke="var(--_b)">${ue}</g>`+(Q?`<g class="pele-axis-labels" font-size="${_}" fill="var(--_m)">${Q}</g>`:``)+($.length>0?`<g class="pele-points" fill="${pe}">${me.reverse().join(``)}</g><g class="pele-point-labels" font-size="${y}">${ge}</g>`:``);return{svg:t(`quadrantChart`,C,w,d,u,s,_e),width:C,height:w,links:[]}}var H={type:`quadrantChart`,parse(e,t,n){let r=new E;return r.title=n,L(e,r),r},render:V};export{H as quadrantChart};
|