colonynote 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +108 -65
  2. package/README.zh.md +106 -63
  3. package/dist/client/assets/{arc-Ezd9GmKE.js → arc-CQThWgzz.js} +1 -1
  4. package/dist/client/assets/architecture-YZFGNWBL-DtP_HzvZ.js +1 -0
  5. package/dist/client/assets/{architectureDiagram-Q4EWVU46-BmLJotd1.js → architectureDiagram-Q4EWVU46-CduhJNdk.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-DXYQGD6D-ZqrNO8HM.js → blockDiagram-DXYQGD6D-Bge_LBJ4.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AHTNJAMY-BJWyymhT.js → c4Diagram-AHTNJAMY-CIoq2al4.js} +1 -1
  8. package/dist/client/assets/channel-CkBCwOh7.js +1 -0
  9. package/dist/client/assets/{chunk-2KRD3SAO-B1G2AY6H.js → chunk-2KRD3SAO-DWEU0E2x.js} +1 -1
  10. package/dist/client/assets/{chunk-4BX2VUAB-mLNpdiNK.js → chunk-4BX2VUAB-D9btov2c.js} +1 -1
  11. package/dist/client/assets/{chunk-4TB4RGXK-BsRi3qra.js → chunk-4TB4RGXK-CWGCiPPE.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-BkCqG_Mc.js → chunk-55IACEB6-Bko5tMmv.js} +1 -1
  13. package/dist/client/assets/{chunk-67CJDMHE-Cz-mqdi4.js → chunk-67CJDMHE-BNJbWbd3.js} +1 -1
  14. package/dist/client/assets/{chunk-7N4EOEYR-BFd0Oy6w.js → chunk-7N4EOEYR-BZ6bA78p.js} +1 -1
  15. package/dist/client/assets/{chunk-AA7GKIK3-D77gJjH7.js → chunk-AA7GKIK3-Dpen34JB.js} +1 -1
  16. package/dist/client/assets/{chunk-CIAEETIT-DxQTGSBH.js → chunk-CIAEETIT-CyiIj1js.js} +1 -1
  17. package/dist/client/assets/{chunk-EDXVE4YY-DglU8MxC.js → chunk-EDXVE4YY-DIUgGcqH.js} +1 -1
  18. package/dist/client/assets/{chunk-FMBD7UC4-B_1_v8GP.js → chunk-FMBD7UC4-CRj4bnZr.js} +1 -1
  19. package/dist/client/assets/{chunk-FOC6F5B3-CEMl5H_U.js → chunk-FOC6F5B3-BL67Wbz_.js} +1 -1
  20. package/dist/client/assets/{chunk-K5T4RW27-Dzh5Xx8O.js → chunk-K5T4RW27-C8czLGM6.js} +1 -1
  21. package/dist/client/assets/{chunk-KGLVRYIC-Be2dMs_W.js → chunk-KGLVRYIC-DMMvz8yi.js} +1 -1
  22. package/dist/client/assets/{chunk-LIHQZDEY-BGBWPKdn.js → chunk-LIHQZDEY-CJaus4QW.js} +1 -1
  23. package/dist/client/assets/{chunk-ORNJ4GCN-W_NT507t.js → chunk-ORNJ4GCN-TM5MkxJb.js} +1 -1
  24. package/dist/client/assets/{chunk-OYMX7WX6-BV6RCL_j.js → chunk-OYMX7WX6-DZJR2tbT.js} +1 -1
  25. package/dist/client/assets/chunk-QZHKN3VN-2Ges7DwK.js +1 -0
  26. package/dist/client/assets/{chunk-YZCP3GAM-CDitFgw3.js → chunk-YZCP3GAM-P9O7utk9.js} +1 -1
  27. package/dist/client/assets/classDiagram-6PBFFD2Q-ChQeyBcv.js +1 -0
  28. package/dist/client/assets/classDiagram-v2-HSJHXN6E-BALSptE2.js +1 -0
  29. package/dist/client/assets/clone-D3BIJwxV.js +1 -0
  30. package/dist/client/assets/{cose-bilkent-S5V4N54A-YQtZwRYb.js → cose-bilkent-S5V4N54A-BaWITYex.js} +1 -1
  31. package/dist/client/assets/{dagre-KV5264BT-DvMqAy8J.js → dagre-KV5264BT-BR2SAWWM.js} +1 -1
  32. package/dist/client/assets/{dagre-Cs_hK0RA.js → dagre-wVYwri9O.js} +1 -1
  33. package/dist/client/assets/{diagram-5BDNPKRD-BwrN8bUG.js → diagram-5BDNPKRD-D-6-Gum5.js} +1 -1
  34. package/dist/client/assets/{diagram-G4DWMVQ6-Cqaj-jnn.js → diagram-G4DWMVQ6-knal8ynW.js} +1 -1
  35. package/dist/client/assets/{diagram-MMDJMWI5-DNA312HK.js → diagram-MMDJMWI5-Cq28VT9h.js} +1 -1
  36. package/dist/client/assets/{diagram-TYMM5635-BujcYOHW.js → diagram-TYMM5635-_ahIpIbu.js} +1 -1
  37. package/dist/client/assets/{erDiagram-SMLLAGMA-ZjZZH-zN.js → erDiagram-SMLLAGMA-DWWpmrCX.js} +1 -1
  38. package/dist/client/assets/{flatten-DA7ZzNkq.js → flatten-CMqdPloh.js} +1 -1
  39. package/dist/client/assets/{flowDiagram-DWJPFMVM-CeIGHswO.js → flowDiagram-DWJPFMVM-QgTx1hit.js} +1 -1
  40. package/dist/client/assets/{ganttDiagram-T4ZO3ILL-BeGMFmHq.js → ganttDiagram-T4ZO3ILL-BrlOV7sd.js} +1 -1
  41. package/dist/client/assets/gitGraph-7Q5UKJZL-CaJwRPFW.js +1 -0
  42. package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-2fnUKQRp.js → gitGraphDiagram-UUTBAWPF-C1hAcDJi.js} +1 -1
  43. package/dist/client/assets/{graphlib-DRri47Ms.js → graphlib-HzYvs4aA.js} +1 -1
  44. package/dist/client/assets/{index-Ts5WhtRB.js → index-C9TyPVfK.js} +143 -143
  45. package/dist/client/assets/index-ZllE5QRx.css +2 -0
  46. package/dist/client/assets/info-OMHHGYJF-DsnC4r6b.js +1 -0
  47. package/dist/client/assets/{infoDiagram-42DDH7IO-KL_uq6JQ.js → infoDiagram-42DDH7IO-CaDp7AXt.js} +1 -1
  48. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-DYWG2VdA.js → ishikawaDiagram-UXIWVN3A-rIk_ch8r.js} +1 -1
  49. package/dist/client/assets/{journeyDiagram-VCZTEJTY-DT7IVz7z.js → journeyDiagram-VCZTEJTY-AKlpEShH.js} +1 -1
  50. package/dist/client/assets/{kanban-definition-6JOO6SKY-CHPPLj8n.js → kanban-definition-6JOO6SKY-DG7E5YsZ.js} +1 -1
  51. package/dist/client/assets/{linear-CizMozZt.js → linear-BhtBzbUW.js} +1 -1
  52. package/dist/client/assets/{mermaid-parser.core-Bpqvb2jv.js → mermaid-parser.core-C5TKoM7K.js} +2 -2
  53. package/dist/client/assets/{mindmap-definition-QFDTVHPH-Dov77gi8.js → mindmap-definition-QFDTVHPH-DJ__gZG0.js} +1 -1
  54. package/dist/client/assets/packet-4T2RLAQJ-B7X34Q_f.js +1 -0
  55. package/dist/client/assets/pie-ZZUOXDRM-BfvCWICT.js +1 -0
  56. package/dist/client/assets/{pieDiagram-DEJITSTG-DwmqzTu7.js → pieDiagram-DEJITSTG-MP7sf0Hn.js} +1 -1
  57. package/dist/client/assets/{quadrantDiagram-34T5L4WZ-CdCBXbvb.js → quadrantDiagram-34T5L4WZ-C5-YkrxD.js} +1 -1
  58. package/dist/client/assets/radar-PYXPWWZC-BQu_7Ie9.js +1 -0
  59. package/dist/client/assets/{reduce-DV5GRzs4.js → reduce-Cb52axiO.js} +1 -1
  60. package/dist/client/assets/{requirementDiagram-MS252O5E-32eCbPFl.js → requirementDiagram-MS252O5E-CA27k-YW.js} +1 -1
  61. package/dist/client/assets/{sankeyDiagram-XADWPNL6-BBDL_wPZ.js → sankeyDiagram-XADWPNL6-DXKCqxys.js} +1 -1
  62. package/dist/client/assets/{sequenceDiagram-FGHM5R23-Ck7ukfb7.js → sequenceDiagram-FGHM5R23-DgqvjCb6.js} +1 -1
  63. package/dist/client/assets/{stateDiagram-FHFEXIEX-BKJrixhp.js → stateDiagram-FHFEXIEX-CLQg0ba3.js} +1 -1
  64. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-BojxKOV4.js +1 -0
  65. package/dist/client/assets/{timeline-definition-GMOUNBTQ-B_D-q7Kc.js → timeline-definition-GMOUNBTQ-CeOHNNzc.js} +1 -1
  66. package/dist/client/assets/treeView-SZITEDCU-9OOXnf4D.js +1 -0
  67. package/dist/client/assets/treemap-W4RFUUIX-BdE-jrpA.js +1 -0
  68. package/dist/client/assets/{vennDiagram-DHZGUBPP-CvHqv3h2.js → vennDiagram-DHZGUBPP-b_x_2tJx.js} +1 -1
  69. package/dist/client/assets/wardley-RL74JXVD-Tmb0J3Ps.js +1 -0
  70. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-CYRpN4xk.js → wardleyDiagram-NUSXRM2D-C8WSLFLG.js} +1 -1
  71. package/dist/client/assets/{xychartDiagram-5P7HB3ND-Dh0MaaMp.js → xychartDiagram-5P7HB3ND-CLRgesgk.js} +1 -1
  72. package/dist/client/index.html +2 -2
  73. package/dist/server/api.js +63 -6
  74. package/package.json +1 -1
  75. package/dist/client/assets/architecture-YZFGNWBL-Dns9u0e5.js +0 -1
  76. package/dist/client/assets/channel-C-zEXS3V.js +0 -1
  77. package/dist/client/assets/chunk-QZHKN3VN-B0CMV9NG.js +0 -1
  78. package/dist/client/assets/classDiagram-6PBFFD2Q-XeqY_hie.js +0 -1
  79. package/dist/client/assets/classDiagram-v2-HSJHXN6E-D5yY32qd.js +0 -1
  80. package/dist/client/assets/clone-AnN0418d.js +0 -1
  81. package/dist/client/assets/gitGraph-7Q5UKJZL-Dib3-KZp.js +0 -1
  82. package/dist/client/assets/index-DKyd5iCm.css +0 -2
  83. package/dist/client/assets/info-OMHHGYJF-oQ5--hGK.js +0 -1
  84. package/dist/client/assets/packet-4T2RLAQJ-Cuyyn0tM.js +0 -1
  85. package/dist/client/assets/pie-ZZUOXDRM-DajTPYmY.js +0 -1
  86. package/dist/client/assets/radar-PYXPWWZC-DWe78GFc.js +0 -1
  87. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-Bio1QBYF.js +0 -1
  88. package/dist/client/assets/treeView-SZITEDCU-BQ27_5HI.js +0 -1
  89. package/dist/client/assets/treemap-W4RFUUIX-D2TpEq--.js +0 -1
  90. package/dist/client/assets/wardley-RL74JXVD-DoAmhKVb.js +0 -1
@@ -1,4 +1,4 @@
1
- import{Gt as e,Ht as t,Jt as n,Kt as r,Sn as i,Yt as a,an as o,cn as s,ct as c,in as l,on as u,xn as d,zt as f}from"./index-Ts5WhtRB.js";import{t as p}from"./chunk-4BX2VUAB-mLNpdiNK.js";import{t as m}from"./mermaid-parser.core-Bpqvb2jv.js";var h=d((e,t)=>{let n=e<=1?e*100:e;if(n<0||n>100)throw Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return n},`toPercent`),g=d((e,t,n)=>({x:h(t,`${n} evolution`),y:h(e,`${n} visibility`)}),`toCoordinates`),_=d(e=>{if(e){if(e===`+<>`)return`bidirectional`;if(e===`+<`)return`backward`;if(e===`+>`)return`forward`}},`getFlowFromPort`),v=d(e=>{if(!e?.startsWith(`+`))return{};let t=/^\+'([^']*)'/.exec(e)?.[1];return e.includes(`<>`)?{flow:`bidirectional`,label:t}:e.includes(`<`)?{flow:`backward`,label:t}:e.includes(`>`)?{flow:`forward`,label:t}:{label:t}},`extractFlowFromArrow`),y=d((e,t)=>{if(p(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let n=e.evolution.stages.map(e=>e.secondName?`${e.name.trim()} / ${e.secondName.trim()}`:e.name.trim()),r=e.evolution.stages.filter(e=>e.boundary!==void 0).map(e=>e.boundary);t.updateAxes({stages:n,stageBoundaries:r})}if(e.anchors.forEach(e=>{let n=g(e.visibility,e.evolution,`Anchor "${e.name}"`);t.addNode(e.name,e.name,n.x,n.y,`anchor`)}),e.components.forEach(e=>{let n=g(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,i=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,a=e.decorator?.strategy;t.addNode(e.name,e.name,n.x,n.y,`component`,r,i,e.inertia,a)}),e.notes.forEach(e=>{let n=g(e.visibility,e.evolution,`Note "${e.text}"`);t.addNote(e.text,n.x,n.y)}),e.pipelines.forEach(e=>{let n=t.getNode(e.parent);if(!n||typeof n.y!=`number`)throw Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);let r=n.y;t.startPipeline(e.parent),e.components.forEach(n=>{let i=`${e.parent}_${n.name}`,a=n.label?(n.label.negX?-1:1)*n.label.offsetX:void 0,o=n.label?(n.label.negY?-1:1)*n.label.offsetY:void 0,s=h(n.evolution,`Pipeline component "${n.name}" evolution`);t.addNode(i,n.name,s,r,`pipeline-component`,a,o),t.addPipelineComponent(e.parent,i)})}),e.links.forEach(e=>{let n=!!e.arrow&&(e.arrow.includes(`-.->`)||e.arrow.includes(`.-.`)),r=_(e.fromPort)??_(e.toPort),{flow:i,label:a}=v(e.arrow);!r&&i&&(r=i);let o=e.linkLabel,s=a??o;t.addLink(e.from,e.to,n,s,r)}),e.evolves.forEach(e=>{let n=t.getNode(e.component);if(n?.y!==void 0){let r=h(e.target,`Evolve target for "${e.component}"`);t.addTrend(e.component,r,n.y)}}),e.annotations.length>0){let n=e.annotations[0],r=g(n.x,n.y,`Annotations box`);t.setAnnotationsBox(r.x,r.y)}e.annotation.forEach(e=>{let n=g(e.x,e.y,`Annotation ${e.number}`);t.addAnnotation(e.number,[{x:n.x,y:n.y}],e.text)}),e.accelerators.forEach(e=>{let n=g(e.x,e.y,`Accelerator "${e.name}"`);t.addAccelerator(e.name,n.x,n.y)}),e.deaccelerators.forEach(e=>{let n=g(e.x,e.y,`Deaccelerator "${e.name}"`);t.addDeaccelerator(e.name,n.x,n.y)})},`populateDb`),b={parser:{yy:void 0},parse:d(async e=>{let t=await m(`wardley`,e);i.debug(t);let n=b.parser?.yy;if(!n||typeof n.addNode!=`function`)throw Error(`parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);y(t,n)},`parse`)},x=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{d(this,`WardleyBuilder`)}addNode(e){let t=this.nodes.get(e.id)??{id:e.id,label:e.label},n={...t,...e,className:e.className??t.className,labelOffsetX:e.labelOffsetX??t.labelOffsetX,labelOffsetY:e.labelOffsetY??t.labelOffsetY};this.nodes.set(e.id,n)}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){let n=this.pipelines.get(e);n&&n.componentIds.push(t);let r=this.nodes.get(t);r&&(r.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)}build(){let e=[];for(let t of this.nodes.values()){if(typeof t.x!=`number`||typeof t.y!=`number`)throw Error(`Node "${t.label}" is missing coordinates`);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}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function S(e){let t=n();return l(e.trim(),t)}d(S,`textSanitizer`);function C(){return n()[`wardley-beta`]}d(C,`getConfig`);function w(e,t,n,r,i,a,o,s,c){x.addNode({id:e,label:S(t),x:n,y:r,className:i,labelOffsetX:a,labelOffsetY:o,inertia:s,sourceStrategy:c})}d(w,`addNode`);function T(e,t,n=!1,r,i){x.addLink({source:e,target:t,dashed:n,label:r,flow:i})}d(T,`addLink`);function E(e,t,n){x.addTrend({nodeId:e,targetX:t,targetY:n})}d(E,`addTrend`);function D(e,t,n){x.addAnnotation({number:e,coordinates:t,text:n?S(n):void 0})}d(D,`addAnnotation`);function O(e,t,n){x.addNote({text:S(e),x:t,y:n})}d(O,`addNote`);function k(e,t,n){x.addAccelerator({name:S(e),x:t,y:n})}d(k,`addAccelerator`);function A(e,t,n){x.addDeaccelerator({name:S(e),x:t,y:n})}d(A,`addDeaccelerator`);function j(e,t){x.setAnnotationsBox(e,t)}d(j,`setAnnotationsBox`);function M(e,t){x.setSize(e,t)}d(M,`setSize`);function N(e){x.startPipeline(e)}d(N,`startPipeline`);function P(e,t){x.addPipelineComponent(e,t)}d(P,`addPipelineComponent`);function F(e){let t={};e.xLabel&&(t.xLabel=S(e.xLabel)),e.yLabel&&(t.yLabel=S(e.yLabel)),e.stages&&(t.stages=e.stages.map(e=>S(e))),e.stageBoundaries&&(t.stageBoundaries=e.stageBoundaries),x.setAxes(t)}d(F,`updateAxes`);function I(e){return x.getNode(e)}d(I,`getNode`);function L(){return x.build()}d(L,`getWardleyData`);function R(){x.clear(),f()}d(R,`clear`);var z={getConfig:C,addNode:w,addLink:T,addTrend:E,addAnnotation:D,addNote:O,addAccelerator:k,addDeaccelerator:A,setAnnotationsBox:j,setSize:M,startPipeline:N,addPipelineComponent:P,updateAxes:F,getNode:I,getWardleyData:L,clear:R,setAccTitle:u,getAccTitle:r,setDiagramTitle:s,getDiagramTitle:a,getAccDescription:e,setAccDescription:o},B=[`Genesis`,`Custom Built`,`Product`,`Commodity`],V=d(()=>{let{themeVariables:e}=n();return{backgroundColor:e.wardley?.backgroundColor??e.background??`#fff`,axisColor:e.wardley?.axisColor??`#000`,axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??`#222`,gridColor:e.wardley?.gridColor??`rgba(100, 100, 100, 0.2)`,componentFill:e.wardley?.componentFill??`#fff`,componentStroke:e.wardley?.componentStroke??`#000`,componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??`#222`,linkStroke:e.wardley?.linkStroke??`#000`,evolutionStroke:e.wardley?.evolutionStroke??`#dc3545`,annotationStroke:e.wardley?.annotationStroke??`#000`,annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??`#222`,annotationFill:e.wardley?.annotationFill??e.background??`#fff`}},`getTheme`),H=d(()=>{let e=n()[`wardley-beta`];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},`getConfigValues`),U={parser:b,db:z,renderer:{draw:d((e,n,r,a)=>{i.debug(`Rendering Wardley map
1
+ import{Gt as e,Ht as t,Jt as n,Kt as r,Sn as i,Yt as a,an as o,cn as s,ct as c,in as l,on as u,xn as d,zt as f}from"./index-C9TyPVfK.js";import{t as p}from"./chunk-4BX2VUAB-D9btov2c.js";import{t as m}from"./mermaid-parser.core-C5TKoM7K.js";var h=d((e,t)=>{let n=e<=1?e*100:e;if(n<0||n>100)throw Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return n},`toPercent`),g=d((e,t,n)=>({x:h(t,`${n} evolution`),y:h(e,`${n} visibility`)}),`toCoordinates`),_=d(e=>{if(e){if(e===`+<>`)return`bidirectional`;if(e===`+<`)return`backward`;if(e===`+>`)return`forward`}},`getFlowFromPort`),v=d(e=>{if(!e?.startsWith(`+`))return{};let t=/^\+'([^']*)'/.exec(e)?.[1];return e.includes(`<>`)?{flow:`bidirectional`,label:t}:e.includes(`<`)?{flow:`backward`,label:t}:e.includes(`>`)?{flow:`forward`,label:t}:{label:t}},`extractFlowFromArrow`),y=d((e,t)=>{if(p(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let n=e.evolution.stages.map(e=>e.secondName?`${e.name.trim()} / ${e.secondName.trim()}`:e.name.trim()),r=e.evolution.stages.filter(e=>e.boundary!==void 0).map(e=>e.boundary);t.updateAxes({stages:n,stageBoundaries:r})}if(e.anchors.forEach(e=>{let n=g(e.visibility,e.evolution,`Anchor "${e.name}"`);t.addNode(e.name,e.name,n.x,n.y,`anchor`)}),e.components.forEach(e=>{let n=g(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,i=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,a=e.decorator?.strategy;t.addNode(e.name,e.name,n.x,n.y,`component`,r,i,e.inertia,a)}),e.notes.forEach(e=>{let n=g(e.visibility,e.evolution,`Note "${e.text}"`);t.addNote(e.text,n.x,n.y)}),e.pipelines.forEach(e=>{let n=t.getNode(e.parent);if(!n||typeof n.y!=`number`)throw Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);let r=n.y;t.startPipeline(e.parent),e.components.forEach(n=>{let i=`${e.parent}_${n.name}`,a=n.label?(n.label.negX?-1:1)*n.label.offsetX:void 0,o=n.label?(n.label.negY?-1:1)*n.label.offsetY:void 0,s=h(n.evolution,`Pipeline component "${n.name}" evolution`);t.addNode(i,n.name,s,r,`pipeline-component`,a,o),t.addPipelineComponent(e.parent,i)})}),e.links.forEach(e=>{let n=!!e.arrow&&(e.arrow.includes(`-.->`)||e.arrow.includes(`.-.`)),r=_(e.fromPort)??_(e.toPort),{flow:i,label:a}=v(e.arrow);!r&&i&&(r=i);let o=e.linkLabel,s=a??o;t.addLink(e.from,e.to,n,s,r)}),e.evolves.forEach(e=>{let n=t.getNode(e.component);if(n?.y!==void 0){let r=h(e.target,`Evolve target for "${e.component}"`);t.addTrend(e.component,r,n.y)}}),e.annotations.length>0){let n=e.annotations[0],r=g(n.x,n.y,`Annotations box`);t.setAnnotationsBox(r.x,r.y)}e.annotation.forEach(e=>{let n=g(e.x,e.y,`Annotation ${e.number}`);t.addAnnotation(e.number,[{x:n.x,y:n.y}],e.text)}),e.accelerators.forEach(e=>{let n=g(e.x,e.y,`Accelerator "${e.name}"`);t.addAccelerator(e.name,n.x,n.y)}),e.deaccelerators.forEach(e=>{let n=g(e.x,e.y,`Deaccelerator "${e.name}"`);t.addDeaccelerator(e.name,n.x,n.y)})},`populateDb`),b={parser:{yy:void 0},parse:d(async e=>{let t=await m(`wardley`,e);i.debug(t);let n=b.parser?.yy;if(!n||typeof n.addNode!=`function`)throw Error(`parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);y(t,n)},`parse`)},x=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{d(this,`WardleyBuilder`)}addNode(e){let t=this.nodes.get(e.id)??{id:e.id,label:e.label},n={...t,...e,className:e.className??t.className,labelOffsetX:e.labelOffsetX??t.labelOffsetX,labelOffsetY:e.labelOffsetY??t.labelOffsetY};this.nodes.set(e.id,n)}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){let n=this.pipelines.get(e);n&&n.componentIds.push(t);let r=this.nodes.get(t);r&&(r.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)}build(){let e=[];for(let t of this.nodes.values()){if(typeof t.x!=`number`||typeof t.y!=`number`)throw Error(`Node "${t.label}" is missing coordinates`);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}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function S(e){let t=n();return l(e.trim(),t)}d(S,`textSanitizer`);function C(){return n()[`wardley-beta`]}d(C,`getConfig`);function w(e,t,n,r,i,a,o,s,c){x.addNode({id:e,label:S(t),x:n,y:r,className:i,labelOffsetX:a,labelOffsetY:o,inertia:s,sourceStrategy:c})}d(w,`addNode`);function T(e,t,n=!1,r,i){x.addLink({source:e,target:t,dashed:n,label:r,flow:i})}d(T,`addLink`);function E(e,t,n){x.addTrend({nodeId:e,targetX:t,targetY:n})}d(E,`addTrend`);function D(e,t,n){x.addAnnotation({number:e,coordinates:t,text:n?S(n):void 0})}d(D,`addAnnotation`);function O(e,t,n){x.addNote({text:S(e),x:t,y:n})}d(O,`addNote`);function k(e,t,n){x.addAccelerator({name:S(e),x:t,y:n})}d(k,`addAccelerator`);function A(e,t,n){x.addDeaccelerator({name:S(e),x:t,y:n})}d(A,`addDeaccelerator`);function j(e,t){x.setAnnotationsBox(e,t)}d(j,`setAnnotationsBox`);function M(e,t){x.setSize(e,t)}d(M,`setSize`);function N(e){x.startPipeline(e)}d(N,`startPipeline`);function P(e,t){x.addPipelineComponent(e,t)}d(P,`addPipelineComponent`);function F(e){let t={};e.xLabel&&(t.xLabel=S(e.xLabel)),e.yLabel&&(t.yLabel=S(e.yLabel)),e.stages&&(t.stages=e.stages.map(e=>S(e))),e.stageBoundaries&&(t.stageBoundaries=e.stageBoundaries),x.setAxes(t)}d(F,`updateAxes`);function I(e){return x.getNode(e)}d(I,`getNode`);function L(){return x.build()}d(L,`getWardleyData`);function R(){x.clear(),f()}d(R,`clear`);var z={getConfig:C,addNode:w,addLink:T,addTrend:E,addAnnotation:D,addNote:O,addAccelerator:k,addDeaccelerator:A,setAnnotationsBox:j,setSize:M,startPipeline:N,addPipelineComponent:P,updateAxes:F,getNode:I,getWardleyData:L,clear:R,setAccTitle:u,getAccTitle:r,setDiagramTitle:s,getDiagramTitle:a,getAccDescription:e,setAccDescription:o},B=[`Genesis`,`Custom Built`,`Product`,`Commodity`],V=d(()=>{let{themeVariables:e}=n();return{backgroundColor:e.wardley?.backgroundColor??e.background??`#fff`,axisColor:e.wardley?.axisColor??`#000`,axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??`#222`,gridColor:e.wardley?.gridColor??`rgba(100, 100, 100, 0.2)`,componentFill:e.wardley?.componentFill??`#fff`,componentStroke:e.wardley?.componentStroke??`#000`,componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??`#222`,linkStroke:e.wardley?.linkStroke??`#000`,evolutionStroke:e.wardley?.evolutionStroke??`#dc3545`,annotationStroke:e.wardley?.annotationStroke??`#000`,annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??`#222`,annotationFill:e.wardley?.annotationFill??e.background??`#fff`}},`getTheme`),H=d(()=>{let e=n()[`wardley-beta`];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},`getConfigValues`),U={parser:b,db:z,renderer:{draw:d((e,n,r,a)=>{i.debug(`Rendering Wardley map
2
2
  `+e);let o=H(),s=V(),l=o.nodeRadius*1.6,u=a.db,f=u.getWardleyData(),p=u.getDiagramTitle(),m=f.size?.width??o.width,h=f.size?.height??o.height,g=c(n);g.selectAll(`*`).remove(),t(g,h,m,o.useMaxWidth),g.attr(`viewBox`,`0 0 ${m} ${h}`);let _=g.append(`g`).attr(`class`,`wardley-map`),v=g.append(`defs`);v.append(`marker`).attr(`id`,`arrow-${n}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto-start-reverse`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`fill`,s.evolutionStroke).attr(`stroke`,`none`),v.append(`marker`).attr(`id`,`link-arrow-end-${n}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`fill`,s.linkStroke).attr(`stroke`,`none`),v.append(`marker`).attr(`id`,`link-arrow-start-${n}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,1).attr(`refY`,5).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 10 0 L 0 5 L 10 10 z`).attr(`fill`,s.linkStroke).attr(`stroke`,`none`),_.append(`rect`).attr(`class`,`wardley-background`).attr(`width`,m).attr(`height`,h).attr(`fill`,s.backgroundColor);let y=m-o.padding*2,b=h-o.padding*2;p&&_.append(`text`).attr(`class`,`wardley-title`).attr(`x`,m/2).attr(`y`,o.padding/2).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize*1.05).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(p);let x=d(e=>o.padding+e/100*y,`projectX`),S=d(e=>h-o.padding-e/100*b,`projectY`),C=_.append(`g`).attr(`class`,`wardley-axes`);C.append(`line`).attr(`x1`,o.padding).attr(`x2`,m-o.padding).attr(`y1`,h-o.padding).attr(`y2`,h-o.padding).attr(`stroke`,s.axisColor).attr(`stroke-width`,1),C.append(`line`).attr(`x1`,o.padding).attr(`x2`,o.padding).attr(`y1`,o.padding).attr(`y2`,h-o.padding).attr(`stroke`,s.axisColor).attr(`stroke-width`,1);let w=f.axes.xLabel??`Evolution`,T=f.axes.yLabel??`Visibility`;C.append(`text`).attr(`class`,`wardley-axis-label wardley-axis-label-x`).attr(`x`,o.padding+y/2).attr(`y`,h-o.padding/4).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).text(w),C.append(`text`).attr(`class`,`wardley-axis-label wardley-axis-label-y`).attr(`x`,o.padding/3).attr(`y`,o.padding+b/2).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).attr(`transform`,`rotate(-90 ${o.padding/3} ${o.padding+b/2})`).text(T);let E=f.axes.stages&&f.axes.stages.length>0?f.axes.stages:B;if(E.length>0){let e=_.append(`g`).attr(`class`,`wardley-stages`),t=f.axes.stageBoundaries,n=[];if(t&&t.length===E.length){let e=0;t.forEach(t=>{n.push({start:e,end:t}),e=t})}else{let e=1/E.length;E.forEach((t,r)=>{n.push({start:r*e,end:(r+1)*e})})}E.forEach((t,r)=>{let i=n[r],a=o.padding+i.start*y,c=(a+(o.padding+i.end*y))/2;r>0&&e.append(`line`).attr(`x1`,a).attr(`x2`,a).attr(`y1`,o.padding).attr(`y2`,h-o.padding).attr(`stroke`,`#000`).attr(`stroke-width`,1).attr(`stroke-dasharray`,`5 5`).attr(`opacity`,.8),e.append(`text`).attr(`class`,`wardley-stage-label`).attr(`x`,c).attr(`y`,h-o.padding/1.5).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize-2).attr(`text-anchor`,`middle`).text(t)})}if(o.showGrid){let e=_.append(`g`).attr(`class`,`wardley-grid`);for(let t=1;t<4;t++){let n=t/4,r=o.padding+y*n;e.append(`line`).attr(`x1`,r).attr(`x2`,r).attr(`y1`,o.padding).attr(`y2`,h-o.padding).attr(`stroke`,s.gridColor).attr(`stroke-dasharray`,`2 6`),e.append(`line`).attr(`x1`,o.padding).attr(`x2`,m-o.padding).attr(`y1`,h-o.padding-b*n).attr(`y2`,h-o.padding-b*n).attr(`stroke`,s.gridColor).attr(`stroke-dasharray`,`2 6`)}}let D=new Map;if(f.nodes.forEach(e=>{D.set(e.id,{x:x(e.x),y:S(e.y),node:e})}),f.pipelines.length>0){let e=_.append(`g`).attr(`class`,`wardley-pipelines`),t=_.append(`g`).attr(`class`,`wardley-pipeline-links`);f.pipelines.forEach(n=>{if(n.componentIds.length===0)return;let r=n.componentIds.map(e=>({id:e,pos:D.get(e),node:f.nodes.find(t=>t.id===e)})).filter(e=>e.pos&&e.node).sort((e,t)=>e.node.x-t.node.x);for(let e=0;e<r.length-1;e++){let n=r[e],i=r[e+1];t.append(`line`).attr(`class`,`wardley-pipeline-evolution-link`).attr(`x1`,n.pos.x).attr(`y1`,n.pos.y).attr(`x2`,i.pos.x).attr(`y2`,i.pos.y).attr(`stroke`,s.linkStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4 4`)}let i=1/0,a=-1/0,c=0;if(n.componentIds.forEach(e=>{let t=D.get(e);t&&(i=Math.min(i,t.x),a=Math.max(a,t.x),c=t.y)}),i!==1/0&&a!==-1/0){let t=o.nodeRadius*4,r=c-t/2,u=D.get(n.nodeId);u&&(u.x=(i+a)/2,u.y=r-l/6),e.append(`rect`).attr(`class`,`wardley-pipeline-box`).attr(`x`,i-15).attr(`y`,r).attr(`width`,a-i+30).attr(`height`,t).attr(`fill`,`none`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`rx`,4).attr(`ry`,4)}})}let O=_.append(`g`).attr(`class`,`wardley-links`),k=new Map;f.pipelines.forEach(e=>{k.set(e.nodeId,new Set(e.componentIds))});let A=f.links.filter(e=>!(!D.has(e.source)||!D.has(e.target)||k.get(e.target)?.has(e.source)));O.selectAll(`line`).data(A).enter().append(`line`).attr(`class`,e=>`wardley-link${e.dashed?` wardley-link--dashed`:``}`).attr(`x1`,e=>{let t=D.get(e.source),n=D.get(e.target),r=f.nodes.find(t=>t.id===e.source).isPipelineParent?l/Math.sqrt(2):o.nodeRadius,i=n.x-t.x,a=n.y-t.y,s=Math.sqrt(i*i+a*a);return t.x+i/s*r}).attr(`y1`,e=>{let t=D.get(e.source),n=D.get(e.target),r=f.nodes.find(t=>t.id===e.source).isPipelineParent?l/Math.sqrt(2):o.nodeRadius,i=n.x-t.x,a=n.y-t.y,s=Math.sqrt(i*i+a*a);return t.y+a/s*r}).attr(`x2`,e=>{let t=D.get(e.source),n=D.get(e.target),r=f.nodes.find(t=>t.id===e.target).isPipelineParent?l/Math.sqrt(2):o.nodeRadius,i=t.x-n.x,a=t.y-n.y,s=Math.sqrt(i*i+a*a);return n.x+i/s*r}).attr(`y2`,e=>{let t=D.get(e.source),n=D.get(e.target),r=f.nodes.find(t=>t.id===e.target).isPipelineParent?l/Math.sqrt(2):o.nodeRadius,i=t.x-n.x,a=t.y-n.y,s=Math.sqrt(i*i+a*a);return n.y+a/s*r}).attr(`stroke`,s.linkStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,e=>e.dashed?`6 6`:null).attr(`marker-end`,e=>e.flow===`forward`||e.flow===`bidirectional`?`url(#link-arrow-end-${n})`:null).attr(`marker-start`,e=>e.flow===`backward`||e.flow===`bidirectional`?`url(#link-arrow-start-${n})`:null),O.selectAll(`text`).data(A.filter(e=>e.label)).enter().append(`text`).attr(`class`,`wardley-link-label`).attr(`x`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.x+n.x)/2,i=n.y-t.y,a=n.x-t.x;return r+i/Math.sqrt(a*a+i*i)*8}).attr(`y`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.y+n.y)/2,i=n.x-t.x,a=n.y-t.y,o=Math.sqrt(i*i+a*a);return r+-i/o*8}).attr(`fill`,s.axisTextColor).attr(`font-size`,o.labelFontSize).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).attr(`transform`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.x+n.x)/2,i=(t.y+n.y)/2,a=n.x-t.x,o=n.y-t.y,s=Math.sqrt(a*a+o*o),c=o/s,l=-a/s,u=r+c*8,d=i+l*8,f=Math.atan2(o,a)*180/Math.PI;return(f>90||f<-90)&&(f+=180),`rotate(${f} ${u} ${d})`}).text(e=>e.label);let j=_.append(`g`).attr(`class`,`wardley-trends`),M=f.trends.map(e=>{let t=D.get(e.nodeId);if(!t)return null;let n=x(e.targetX),r=S(e.targetY),i=n-t.x,a=r-t.y,s=Math.sqrt(i*i+a*a),c=o.nodeRadius+2;return{origin:t,targetX:n,targetY:r,adjustedX2:s>c?n-i/s*c:n,adjustedY2:s>c?r-a/s*c:r}}).filter(e=>e!==null);j.selectAll(`line`).data(M).enter().append(`line`).attr(`class`,`wardley-trend`).attr(`x1`,e=>e.origin.x).attr(`y1`,e=>e.origin.y).attr(`x2`,e=>e.adjustedX2).attr(`y2`,e=>e.adjustedY2).attr(`stroke`,s.evolutionStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4 4`).attr(`marker-end`,`url(#arrow-${n})`);let N=_.append(`g`).attr(`class`,`wardley-nodes`).selectAll(`g`).data(f.nodes).enter().append(`g`).attr(`class`,e=>[`wardley-node`,e.className?`wardley-node--${e.className}`:``].filter(Boolean).join(` `));N.filter(e=>e.sourceStrategy===`outsource`).append(`circle`).attr(`class`,`wardley-outsource-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#666`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.sourceStrategy===`buy`).append(`circle`).attr(`class`,`wardley-buy-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#ccc`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.sourceStrategy===`build`).append(`circle`).attr(`class`,`wardley-build-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#eee`).attr(`stroke`,`#000`).attr(`stroke-width`,1);let P=N.filter(e=>e.sourceStrategy===`market`);P.append(`circle`).attr(`class`,`wardley-market-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>!e.isPipelineParent&&e.sourceStrategy!==`market`&&e.className!==`anchor`).append(`circle`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius).attr(`fill`,s.componentFill).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1);let F=o.nodeRadius*.7,I=o.nodeRadius*1.2;if(P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x).attr(`y1`,e=>D.get(e.id).y-I).attr(`x2`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`y2`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`y1`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`x2`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`y2`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`y1`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`x2`,e=>D.get(e.id).x).attr(`y2`,e=>D.get(e.id).y-I).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y-I).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`cy`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`cy`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),N.filter(e=>e.isPipelineParent===!0).append(`rect`).attr(`x`,e=>D.get(e.id).x-l/2).attr(`y`,e=>D.get(e.id).y-l/2).attr(`width`,l).attr(`height`,l).attr(`fill`,s.componentFill).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.inertia===!0).append(`line`).attr(`class`,`wardley-inertia`).attr(`x1`,e=>{let t=D.get(e.id),n=e.isPipelineParent?l/2+15:o.nodeRadius+15;return e.sourceStrategy&&(n+=o.nodeRadius+10),t.x+n}).attr(`y1`,e=>{let t=D.get(e.id),n=e.isPipelineParent?l:o.nodeRadius*2;return t.y-n/2}).attr(`x2`,e=>{let t=D.get(e.id),n=e.isPipelineParent?l/2+15:o.nodeRadius+15;return e.sourceStrategy&&(n+=o.nodeRadius+10),t.x+n}).attr(`y2`,e=>{let t=D.get(e.id),n=e.isPipelineParent?l:o.nodeRadius*2;return t.y+n/2}).attr(`stroke`,s.componentStroke).attr(`stroke-width`,6),N.append(`text`).attr(`x`,e=>{let t=D.get(e.id);if(e.className===`anchor`)return e.labelOffsetX===void 0?t.x:t.x+e.labelOffsetX;let n=o.nodeLabelOffset;e.sourceStrategy&&e.labelOffsetX===void 0&&(n+=10);let r=e.labelOffsetX??n;return t.x+r}).attr(`y`,e=>{let t=D.get(e.id);if(e.className===`anchor`)return e.labelOffsetY===void 0?t.y-3:t.y+e.labelOffsetY;let n=-o.nodeLabelOffset;e.sourceStrategy&&e.labelOffsetY===void 0&&(n-=10);let r=e.labelOffsetY??n;return t.y+r}).attr(`class`,`wardley-node-label`).attr(`fill`,e=>e.className===`evolved`?s.evolutionStroke:e.className===`anchor`?`#000`:s.componentLabelColor).attr(`font-size`,o.labelFontSize).attr(`font-weight`,e=>e.className===`anchor`?`bold`:`normal`).attr(`text-anchor`,e=>e.className===`anchor`?`middle`:`start`).attr(`dominant-baseline`,e=>e.className===`anchor`?`middle`:`auto`).text(e=>e.label),f.annotations.length>0){let e=_.append(`g`).attr(`class`,`wardley-annotations`);if(f.annotations.forEach(t=>{let n=t.coordinates.map(e=>({x:x(e.x),y:S(e.y)}));if(n.length>1)for(let t=0;t<n.length-1;t++)e.append(`line`).attr(`class`,`wardley-annotation-line`).attr(`x1`,n[t].x).attr(`y1`,n[t].y).attr(`x2`,n[t+1].x).attr(`y2`,n[t+1].y).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`stroke-dasharray`,`4 4`);n.forEach(n=>{let r=e.append(`g`).attr(`class`,`wardley-annotation`);r.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,10).attr(`fill`,`white`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5),r.append(`text`).attr(`x`,n.x).attr(`y`,n.y).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).attr(`font-size`,10).attr(`fill`,s.axisTextColor).attr(`font-weight`,`bold`).text(t.number)})}),f.annotationsBox){let t=x(f.annotationsBox.x),n=S(f.annotationsBox.y),r=e.append(`g`).attr(`class`,`wardley-annotations-box`),i=[...f.annotations].filter(e=>e.text).sort((e,t)=>e.number-t.number),a=[];if(i.forEach((e,i)=>{let o=r.append(`text`).attr(`x`,t+10).attr(`y`,n+10+(i+1)*16).attr(`font-size`,11).attr(`fill`,s.axisTextColor).attr(`text-anchor`,`start`).attr(`dominant-baseline`,`middle`).text(`${e.number}. ${e.text}`);a.push(o)}),a.length>0){let e=0,c=0;a.forEach(t=>{let n=t.node(),r=n.getComputedTextLength();e=Math.max(e,r);let i=n.getBBox();c=Math.max(c,i.height)});let l=e+20+105,u=i.length*16+20+c/2,d=o.padding,f=m-o.padding-l,p=o.padding,g=h-o.padding-u;t=Math.max(d,Math.min(t,f)),n=Math.max(p,Math.min(n,g)),a.forEach((e,r)=>{e.attr(`x`,t+10).attr(`y`,n+10+(r+1)*16)}),r.insert(`rect`,`text`).attr(`x`,t).attr(`y`,n).attr(`width`,l).attr(`height`,u).attr(`fill`,`white`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`rx`,4).attr(`ry`,4)}}}if(f.notes.length>0){let e=_.append(`g`).attr(`class`,`wardley-notes`);f.notes.forEach(t=>{let n=x(t.x),r=S(t.y);e.append(`text`).attr(`x`,n).attr(`y`,r).attr(`text-anchor`,`start`).attr(`font-size`,11).attr(`fill`,s.axisTextColor).attr(`font-weight`,`bold`).text(t.text)})}if(f.accelerators.length>0){let e=_.append(`g`).attr(`class`,`wardley-accelerators`);f.accelerators.forEach(t=>{let n=x(t.x),r=S(t.y),i=`
3
3
  M ${n} ${r-30/2}
4
4
  L ${n+60-20} ${r-30/2}
@@ -1,4 +1,4 @@
1
- import{t as e}from"./linear-CizMozZt.js";import{t}from"./ordinal-DCsgWfZW.js";import{t as n}from"./init-TU6eJ00_.js";import{Gt as r,Ht as i,Kt as a,Sn as o,Wt as s,Yt as c,Zt as l,an as u,b as d,cn as f,ct as p,in as m,j as h,on as g,qt as _,ut as v,xn as y,zt as b}from"./index-Ts5WhtRB.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=t().unknown(void 0),r=e.domain,i=e.range,a=0,o=1,s,c,l=!1,u=0,d=0,f=.5;delete e.unknown;function p(){var e=r().length,t=o<a,n=t?o:a,p=t?a:o;s=(p-n)/Math.max(1,e-u+d*2),l&&(s=Math.floor(s)),n+=(p-n-s*(e-u))*f,c=s*(1-u),l&&(n=Math.round(n),c=Math.round(c));var m=x(e).map(function(e){return n+s*e});return i(t?m.reverse():m)}return e.domain=function(e){return arguments.length?(r(e),p()):r()},e.range=function(e){return arguments.length?([a,o]=e,a=+a,o=+o,p()):[a,o]},e.rangeRound=function(e){return[a,o]=e,a=+a,o=+o,l=!0,p()},e.bandwidth=function(){return c},e.step=function(){return s},e.round=function(e){return arguments.length?(l=!!e,p()):l},e.padding=function(e){return arguments.length?(u=Math.min(1,d=+e),p()):u},e.paddingInner=function(e){return arguments.length?(u=Math.min(1,e),p()):u},e.paddingOuter=function(e){return arguments.length?(d=+e,p()):d},e.align=function(e){return arguments.length?(f=Math.max(0,Math.min(1,e)),p()):f},e.copy=function(){return S(r(),[a,o]).round(l).paddingInner(u).paddingOuter(d).align(f)},n.apply(p(),arguments)}var C=(function(){var e=y(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),t=[1,10,12,14,16,18,19,21,23],n=[2,6],r=[1,3],i=[1,5],a=[1,6],o=[1,7],s=[1,5,10,12,14,16,18,19,21,23,34,35,36],c=[1,25],l=[1,26],u=[1,28],d=[1,29],f=[1,30],p=[1,31],m=[1,32],h=[1,33],g=[1,34],_=[1,35],v=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],D=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],O=[1,64],k={trace:y(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,27:`NUMBER_WITH_DECIMAL`,28:`COMMA`,31:`ARROW_DELIMITER`,34:`NEWLINE`,35:`SEMI`,36:`EOF`,38:`STR`,39:`MD_STR`,41:`AMP`,42:`NUM`,43:`ALPHA`,44:`PLUS`,45:`EQUALS`,46:`MULT`,47:`DOT`,48:`BRKT`,49:`MINUS`,50:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:y(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:this.$=[Number(a[s-2]),...a[s]];break;case 21:this.$=[Number(a[s])];break;case 22:r.setXAxisTitle(a[s]);break;case 23:r.setXAxisTitle(a[s-1]);break;case 24:r.setXAxisTitle({type:`text`,text:``});break;case 25:r.setXAxisBand(a[s]);break;case 26:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 27:this.$=a[s-1];break;case 28:this.$=[a[s-2],...a[s]];break;case 29:this.$=[a[s]];break;case 30:r.setYAxisTitle(a[s]);break;case 31:r.setYAxisTitle(a[s-1]);break;case 32:r.setYAxisTitle({type:`text`,text:``});break;case 33:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 37:this.$={text:a[s],type:`text`};break;case 38:this.$={text:a[s],type:`text`};break;case 39:this.$={text:a[s],type:`markdown`};break;case 40:this.$=a[s];break;case 41:this.$=a[s-1]+``+a[s];break}},`anonymous`),table:[e(t,n,{3:1,4:2,7:4,5:r,34:i,35:a,36:o}),{1:[3]},e(t,n,{4:2,7:4,3:8,5:r,34:i,35:a,36:o}),e(t,n,{4:2,7:4,6:9,3:10,5:r,8:[1,11],34:i,35:a,36:o}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(s,[2,34]),e(s,[2,35]),e(s,[2,36]),{1:[2,1]},e(t,n,{4:2,7:4,3:21,5:r,34:i,35:a,36:o}),{1:[2,3]},e(s,[2,5]),e(t,[2,7],{4:22,34:i,35:a,36:o}),{11:23,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:39,13:38,24:x,27:S,29:40,30:41,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:45,15:44,27:C,33:46,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:49,17:48,24:w,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:52,17:51,24:w,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{20:[1,53]},{22:[1,54]},e(T,[2,18]),{1:[2,2]},e(T,[2,8]),e(T,[2,9]),e(E,[2,37],{40:55,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b}),e(E,[2,38]),e(E,[2,39]),e(D,[2,40]),e(D,[2,42]),e(D,[2,43]),e(D,[2,44]),e(D,[2,45]),e(D,[2,46]),e(D,[2,47]),e(D,[2,48]),e(D,[2,49]),e(D,[2,50]),e(D,[2,51]),e(T,[2,10]),e(T,[2,22],{30:41,29:56,24:x,27:S}),e(T,[2,24]),e(T,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},e(T,[2,11]),e(T,[2,30],{33:60,27:C}),e(T,[2,32]),{31:[1,61]},e(T,[2,12]),{17:62,24:w},{25:63,27:O},e(T,[2,14]),{17:65,24:w},e(T,[2,16]),e(T,[2,17]),e(D,[2,41]),e(T,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(T,[2,31]),{27:[1,69]},e(T,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(T,[2,15]),e(T,[2,26]),e(T,[2,27]),{11:59,32:72,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},e(T,[2,33]),e(T,[2,19]),{25:73,27:O},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:y(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:y(function(e){var t=this,n=[0],r=[],i=[null],a=[],o=this.table,s=``,c=0,l=0,u=0,d=2,f=1,p=a.slice.call(arguments,1),m=Object.create(this.lexer),h={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(h.yy[g]=this.yy[g]);m.setInput(e,h.yy),h.yy.lexer=m,h.yy.parser=this,m.yylloc===void 0&&(m.yylloc={});var _=m.yylloc;a.push(_);var v=m.options&&m.options.ranges;typeof h.yy.parseError==`function`?this.parseError=h.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){n.length-=2*e,i.length-=e,a.length-=e}y(b,`popStack`);function x(){var e=r.pop()||m.lex()||f;return typeof e!=`number`&&(e instanceof Array&&(r=e,e=r.pop()),e=t.symbols_[e]||e),e}y(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=n[n.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=o[w]&&o[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],o[w])this.terminals_[O]&&O>d&&j.push(`'`+this.terminals_[O]+`'`);M=m.showPosition?`Parse error on line `+(c+1)+`:
1
+ import{t as e}from"./linear-BhtBzbUW.js";import{t}from"./ordinal-DCsgWfZW.js";import{t as n}from"./init-TU6eJ00_.js";import{Gt as r,Ht as i,Kt as a,Sn as o,Wt as s,Yt as c,Zt as l,an as u,b as d,cn as f,ct as p,in as m,j as h,on as g,qt as _,ut as v,xn as y,zt as b}from"./index-C9TyPVfK.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=t().unknown(void 0),r=e.domain,i=e.range,a=0,o=1,s,c,l=!1,u=0,d=0,f=.5;delete e.unknown;function p(){var e=r().length,t=o<a,n=t?o:a,p=t?a:o;s=(p-n)/Math.max(1,e-u+d*2),l&&(s=Math.floor(s)),n+=(p-n-s*(e-u))*f,c=s*(1-u),l&&(n=Math.round(n),c=Math.round(c));var m=x(e).map(function(e){return n+s*e});return i(t?m.reverse():m)}return e.domain=function(e){return arguments.length?(r(e),p()):r()},e.range=function(e){return arguments.length?([a,o]=e,a=+a,o=+o,p()):[a,o]},e.rangeRound=function(e){return[a,o]=e,a=+a,o=+o,l=!0,p()},e.bandwidth=function(){return c},e.step=function(){return s},e.round=function(e){return arguments.length?(l=!!e,p()):l},e.padding=function(e){return arguments.length?(u=Math.min(1,d=+e),p()):u},e.paddingInner=function(e){return arguments.length?(u=Math.min(1,e),p()):u},e.paddingOuter=function(e){return arguments.length?(d=+e,p()):d},e.align=function(e){return arguments.length?(f=Math.max(0,Math.min(1,e)),p()):f},e.copy=function(){return S(r(),[a,o]).round(l).paddingInner(u).paddingOuter(d).align(f)},n.apply(p(),arguments)}var C=(function(){var e=y(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),t=[1,10,12,14,16,18,19,21,23],n=[2,6],r=[1,3],i=[1,5],a=[1,6],o=[1,7],s=[1,5,10,12,14,16,18,19,21,23,34,35,36],c=[1,25],l=[1,26],u=[1,28],d=[1,29],f=[1,30],p=[1,31],m=[1,32],h=[1,33],g=[1,34],_=[1,35],v=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],D=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],O=[1,64],k={trace:y(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,27:`NUMBER_WITH_DECIMAL`,28:`COMMA`,31:`ARROW_DELIMITER`,34:`NEWLINE`,35:`SEMI`,36:`EOF`,38:`STR`,39:`MD_STR`,41:`AMP`,42:`NUM`,43:`ALPHA`,44:`PLUS`,45:`EQUALS`,46:`MULT`,47:`DOT`,48:`BRKT`,49:`MINUS`,50:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:y(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:this.$=[Number(a[s-2]),...a[s]];break;case 21:this.$=[Number(a[s])];break;case 22:r.setXAxisTitle(a[s]);break;case 23:r.setXAxisTitle(a[s-1]);break;case 24:r.setXAxisTitle({type:`text`,text:``});break;case 25:r.setXAxisBand(a[s]);break;case 26:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 27:this.$=a[s-1];break;case 28:this.$=[a[s-2],...a[s]];break;case 29:this.$=[a[s]];break;case 30:r.setYAxisTitle(a[s]);break;case 31:r.setYAxisTitle(a[s-1]);break;case 32:r.setYAxisTitle({type:`text`,text:``});break;case 33:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 37:this.$={text:a[s],type:`text`};break;case 38:this.$={text:a[s],type:`text`};break;case 39:this.$={text:a[s],type:`markdown`};break;case 40:this.$=a[s];break;case 41:this.$=a[s-1]+``+a[s];break}},`anonymous`),table:[e(t,n,{3:1,4:2,7:4,5:r,34:i,35:a,36:o}),{1:[3]},e(t,n,{4:2,7:4,3:8,5:r,34:i,35:a,36:o}),e(t,n,{4:2,7:4,6:9,3:10,5:r,8:[1,11],34:i,35:a,36:o}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(s,[2,34]),e(s,[2,35]),e(s,[2,36]),{1:[2,1]},e(t,n,{4:2,7:4,3:21,5:r,34:i,35:a,36:o}),{1:[2,3]},e(s,[2,5]),e(t,[2,7],{4:22,34:i,35:a,36:o}),{11:23,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:39,13:38,24:x,27:S,29:40,30:41,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:45,15:44,27:C,33:46,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:49,17:48,24:w,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{11:52,17:51,24:w,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},{20:[1,53]},{22:[1,54]},e(T,[2,18]),{1:[2,2]},e(T,[2,8]),e(T,[2,9]),e(E,[2,37],{40:55,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b}),e(E,[2,38]),e(E,[2,39]),e(D,[2,40]),e(D,[2,42]),e(D,[2,43]),e(D,[2,44]),e(D,[2,45]),e(D,[2,46]),e(D,[2,47]),e(D,[2,48]),e(D,[2,49]),e(D,[2,50]),e(D,[2,51]),e(T,[2,10]),e(T,[2,22],{30:41,29:56,24:x,27:S}),e(T,[2,24]),e(T,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},e(T,[2,11]),e(T,[2,30],{33:60,27:C}),e(T,[2,32]),{31:[1,61]},e(T,[2,12]),{17:62,24:w},{25:63,27:O},e(T,[2,14]),{17:65,24:w},e(T,[2,16]),e(T,[2,17]),e(D,[2,41]),e(T,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(T,[2,31]),{27:[1,69]},e(T,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(T,[2,15]),e(T,[2,26]),e(T,[2,27]),{11:59,32:72,37:24,38:c,39:l,40:27,41:u,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:b},e(T,[2,33]),e(T,[2,19]),{25:73,27:O},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:y(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:y(function(e){var t=this,n=[0],r=[],i=[null],a=[],o=this.table,s=``,c=0,l=0,u=0,d=2,f=1,p=a.slice.call(arguments,1),m=Object.create(this.lexer),h={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(h.yy[g]=this.yy[g]);m.setInput(e,h.yy),h.yy.lexer=m,h.yy.parser=this,m.yylloc===void 0&&(m.yylloc={});var _=m.yylloc;a.push(_);var v=m.options&&m.options.ranges;typeof h.yy.parseError==`function`?this.parseError=h.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){n.length-=2*e,i.length-=e,a.length-=e}y(b,`popStack`);function x(){var e=r.pop()||m.lex()||f;return typeof e!=`number`&&(e instanceof Array&&(r=e,e=r.pop()),e=t.symbols_[e]||e),e}y(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=n[n.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=o[w]&&o[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],o[w])this.terminals_[O]&&O>d&&j.push(`'`+this.terminals_[O]+`'`);M=m.showPosition?`Parse error on line `+(c+1)+`:
2
2
  `+m.showPosition()+`
3
3
  Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(c+1)+`: Unexpected `+(S==f?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:m.match,token:this.terminals_[S]||S,line:m.yylineno,loc:_,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:n.push(S),i.push(m.yytext),a.push(m.yylloc),n.push(T[1]),S=null,C?(S=C,C=null):(l=m.yyleng,s=m.yytext,c=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(k=this.productions_[T[1]][1],D.$=i[i.length-k],D._$={first_line:a[a.length-(k||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(k||1)].first_column,last_column:a[a.length-1].last_column},v&&(D._$.range=[a[a.length-(k||1)].range[0],a[a.length-1].range[1]]),E=this.performAction.apply(D,[s,l,c,h.yy,T[1],i,a].concat(p)),E!==void 0)return E;k&&(n=n.slice(0,-1*k*2),i=i.slice(0,-1*k),a=a.slice(0,-1*k)),n.push(this.productions_[T[1]][0]),i.push(D.$),a.push(D._$),A=o[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0},`parse`)};k.lexer=(function(){return{EOF:1,parseError:y(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:y(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:y(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:y(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:y(function(){return this._more=!0,this},`more`),reject:y(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:y(function(e){this.unput(this.match.slice(e))},`less`),pastInput:y(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:y(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:y(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
@@ -39,13 +39,13 @@
39
39
  });
40
40
  })();
41
41
  </script>
42
- <script type="module" crossorigin src="/assets/index-Ts5WhtRB.js"></script>
42
+ <script type="module" crossorigin src="/assets/index-C9TyPVfK.js"></script>
43
43
  <link rel="modulepreload" crossorigin href="/assets/chunk-Dlc7tRH4.js">
44
44
  <link rel="modulepreload" crossorigin href="/assets/path-yo4Xej8w.js">
45
45
  <link rel="modulepreload" crossorigin href="/assets/array-C0548cPn.js">
46
46
  <link rel="modulepreload" crossorigin href="/assets/identity-CQcu21F9.js">
47
47
  <link rel="modulepreload" crossorigin href="/assets/rough.esm-DulVNktb.js">
48
- <link rel="stylesheet" crossorigin href="/assets/index-DKyd5iCm.css">
48
+ <link rel="stylesheet" crossorigin href="/assets/index-ZllE5QRx.css">
49
49
  </head>
50
50
  <body>
51
51
  <div id="root"></div>
@@ -55,19 +55,45 @@ function hasAllowedExtension(filename, extensions) {
55
55
  const ext = path.extname(filename).toLowerCase();
56
56
  return extensions.includes(ext);
57
57
  }
58
- async function walkDirectory(dir, dirPath, config, matcher) {
58
+ async function walkDirectory(dir, dirPath, config, matcher, visited = new Set()) {
59
59
  const nodes = [];
60
60
  try {
61
61
  const entries = await fs.readdir(dir, { withFileTypes: true });
62
62
  for (const entry of entries) {
63
63
  const fullPath = path.join(dir, entry.name);
64
- const isDir = entry.isDirectory();
64
+ let isDir = entry.isDirectory();
65
+ let isFile = entry.isFile();
66
+ // 处理符号链接:跟随链接获取实际类型
67
+ if (entry.isSymbolicLink()) {
68
+ try {
69
+ const stat = await fs.stat(fullPath);
70
+ isDir = stat.isDirectory();
71
+ isFile = stat.isFile();
72
+ }
73
+ catch {
74
+ // 符号链接目标不存在或无法访问,跳过
75
+ continue;
76
+ }
77
+ }
65
78
  if (!config.showHiddenFiles && entry.name.startsWith('.'))
66
79
  continue;
67
80
  if (matcher.isIgnored(fullPath, isDir))
68
81
  continue;
69
82
  if (isDir) {
70
- const children = await walkDirectory(fullPath, dirPath, config, matcher);
83
+ // 对符号链接目录进行循环检测(防止符号链接指向祖先目录导致无限递归)
84
+ if (entry.isSymbolicLink()) {
85
+ let realPath;
86
+ try {
87
+ realPath = await fs.realpath(fullPath);
88
+ }
89
+ catch {
90
+ realPath = fullPath;
91
+ }
92
+ if (visited.has(realPath))
93
+ continue;
94
+ visited.add(realPath);
95
+ }
96
+ const children = await walkDirectory(fullPath, dirPath, config, matcher, visited);
71
97
  const relativePath = path.relative(dirPath, fullPath).replace(/\\/g, '/');
72
98
  nodes.push({
73
99
  name: entry.name,
@@ -77,7 +103,7 @@ async function walkDirectory(dir, dirPath, config, matcher) {
77
103
  children,
78
104
  });
79
105
  }
80
- else if (entry.isFile()) {
106
+ else if (isFile) {
81
107
  if (hasAllowedExtension(entry.name, config.allowedExtensions)) {
82
108
  const relativePath = path.relative(dirPath, fullPath).replace(/\\/g, '/');
83
109
  nodes.push({
@@ -179,8 +205,7 @@ export function createFileRouter(holder, env = 'production') {
179
205
  updates[key] = body[key];
180
206
  }
181
207
  }
182
- saveConfig(config, env);
183
- invalidateTreeCache();
208
+ // 先更新内存中的配置,再保存到文件
184
209
  if (typeof updates.showHiddenFiles === 'boolean') {
185
210
  config.showHiddenFiles = updates.showHiddenFiles;
186
211
  }
@@ -193,6 +218,8 @@ export function createFileRouter(holder, env = 'production') {
193
218
  matcher.updateGlobalPatterns(updates.ignore.patterns);
194
219
  }
195
220
  }
221
+ saveConfig(config, env);
222
+ invalidateTreeCache();
196
223
  return c.json({ success: true, config: { showHiddenFiles: config.showHiddenFiles, allowedExtensions: config.allowedExtensions, ignore: config.ignore } });
197
224
  }
198
225
  catch (e) {
@@ -640,6 +667,36 @@ export function createFileRouter(holder, env = 'production') {
640
667
  // not a directory
641
668
  }
642
669
  try {
670
+ const ext = path.extname(fullPath).toLowerCase();
671
+ const binaryExts = new Set([
672
+ '.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg', '.bmp', '.ico',
673
+ '.pdf', '.mp3', '.mp4', '.wav', '.ogg', '.webm', '.zip', '.tar', '.gz',
674
+ ]);
675
+ const contentTypeMap = {
676
+ '.png': 'image/png',
677
+ '.jpg': 'image/jpeg',
678
+ '.jpeg': 'image/jpeg',
679
+ '.gif': 'image/gif',
680
+ '.webp': 'image/webp',
681
+ '.svg': 'image/svg+xml',
682
+ '.bmp': 'image/bmp',
683
+ '.ico': 'image/x-icon',
684
+ '.pdf': 'application/pdf',
685
+ '.mp3': 'audio/mpeg',
686
+ '.mp4': 'video/mp4',
687
+ '.wav': 'audio/wav',
688
+ '.ogg': 'audio/ogg',
689
+ '.webm': 'video/webm',
690
+ '.zip': 'application/zip',
691
+ '.tar': 'application/x-tar',
692
+ '.gz': 'application/gzip',
693
+ };
694
+ if (binaryExts.has(ext)) {
695
+ const content = await fs.readFile(fullPath);
696
+ return new Response(content, {
697
+ headers: { 'Content-Type': contentTypeMap[ext] || 'application/octet-stream' },
698
+ });
699
+ }
643
700
  const content = await fs.readFile(fullPath, 'utf-8');
644
701
  return c.text(content);
645
702
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colonynote",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "engines": {
5
5
  "node": ">=18"
6
6
  },
@@ -1 +0,0 @@
1
- import"./chunk-K5T4RW27-Dzh5Xx8O.js";import{n as e}from"./chunk-7N4EOEYR-BFd0Oy6w.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{vn as e,yn as t}from"./index-Ts5WhtRB.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{xn as e}from"./index-Ts5WhtRB.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
@@ -1 +0,0 @@
1
- import{xn as e}from"./index-Ts5WhtRB.js";import"./chunk-FMBD7UC4-B_1_v8GP.js";import"./chunk-YZCP3GAM-CDitFgw3.js";import"./chunk-55IACEB6-BkCqG_Mc.js";import"./chunk-EDXVE4YY-DglU8MxC.js";import{i as t,n,r,t as i}from"./chunk-4TB4RGXK-BsRi3qra.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{xn as e}from"./index-Ts5WhtRB.js";import"./chunk-FMBD7UC4-B_1_v8GP.js";import"./chunk-YZCP3GAM-CDitFgw3.js";import"./chunk-55IACEB6-BkCqG_Mc.js";import"./chunk-EDXVE4YY-DglU8MxC.js";import{i as t,n,r,t as i}from"./chunk-4TB4RGXK-BsRi3qra.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{i as e}from"./graphlib-DRri47Ms.js";var t=4;function n(n){return e(n,t)}export{n as t};
@@ -1 +0,0 @@
1
- import"./chunk-K5T4RW27-Dzh5Xx8O.js";import{n as e}from"./chunk-67CJDMHE-Cz-mqdi4.js";export{e as createGitGraphServices};