gitnexus 1.6.4-rc.99 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_shared/index.d.ts +8 -0
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +9 -0
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts +183 -0
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -0
- package/dist/_shared/integrations/circuit-breaker.js +236 -0
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts +99 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -0
- package/dist/_shared/integrations/resilient-fetch.js +204 -0
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -0
- package/dist/_shared/integrations/retry.d.ts +60 -0
- package/dist/_shared/integrations/retry.d.ts.map +1 -0
- package/dist/_shared/integrations/retry.js +67 -0
- package/dist/_shared/integrations/retry.js.map +1 -0
- package/dist/_shared/integrations/understand-quickly.d.ts +79 -0
- package/dist/_shared/integrations/understand-quickly.d.ts.map +1 -0
- package/dist/_shared/integrations/understand-quickly.js +139 -0
- package/dist/_shared/integrations/understand-quickly.js.map +1 -0
- package/dist/_shared/test-helpers.d.ts +13 -0
- package/dist/_shared/test-helpers.d.ts.map +1 -0
- package/dist/_shared/test-helpers.js +13 -0
- package/dist/_shared/test-helpers.js.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/publish.d.ts +29 -0
- package/dist/cli/publish.js +174 -0
- package/dist/config/ignore-service.js +2 -0
- package/dist/core/embeddings/hf-env.d.ts +9 -37
- package/dist/core/embeddings/hf-env.js +65 -83
- package/dist/core/embeddings/http-client.d.ts +6 -0
- package/dist/core/embeddings/http-client.js +22 -18
- package/dist/core/group/bridge-db.js +7 -6
- package/dist/core/group/config-parser.js +19 -1
- package/dist/core/group/extractors/include-extractor.d.ts +39 -0
- package/dist/core/group/extractors/include-extractor.js +565 -0
- package/dist/core/group/extractors/manifest-extractor.js +8 -0
- package/dist/core/group/extractors/thrift-extractor.js +8 -0
- package/dist/core/group/matching.js +2 -0
- package/dist/core/group/storage.js +8 -1
- package/dist/core/group/sync.js +33 -0
- package/dist/core/group/types.d.ts +2 -1
- package/dist/core/ingestion/call-processor.js +6 -4
- package/dist/core/ingestion/cpp-ue-preprocessor.d.ts +12 -0
- package/dist/core/ingestion/cpp-ue-preprocessor.js +260 -0
- package/dist/core/ingestion/heritage-processor.js +9 -4
- package/dist/core/ingestion/import-processor.js +3 -2
- package/dist/core/ingestion/language-provider.d.ts +32 -0
- package/dist/core/ingestion/languages/c-cpp.js +2 -0
- package/dist/core/ingestion/parsing-processor.js +4 -0
- package/dist/core/ingestion/workers/parse-worker.js +4 -0
- package/dist/core/wiki/llm-client.d.ts +16 -0
- package/dist/core/wiki/llm-client.js +101 -63
- package/dist/server/api.js +7 -2
- package/package.json +2 -2
- package/vendor/node_modules/node-addon-api/node_addon_api.target.mk +16 -14
- package/vendor/node_modules/node-addon-api/node_addon_api_except.target.mk +16 -14
- package/vendor/node_modules/node-addon-api/node_addon_api_except_all.target.mk +16 -14
- package/vendor/node_modules/node-addon-api/node_addon_api_maybe.target.mk +16 -14
- package/web/assets/{agent-Dl2d-mDi.js → agent-BpHQleHE.js} +17 -17
- package/web/assets/architecture-YZFGNWBL-S5CXDPWN-BUzkWgDl.js +1 -0
- package/web/assets/{architectureDiagram-EMZXCZ2Q-uiiIna83.js → architectureDiagram-EMZXCZ2Q-CXbzok1G.js} +3 -3
- package/web/assets/{blockDiagram-IGV67L2C-uBKdDzXA.js → blockDiagram-IGV67L2C-DA1QJ4ZB.js} +4 -4
- package/web/assets/{c4Diagram-DFAF54RM-DTxaX43T.js → c4Diagram-DFAF54RM-DeJV1rCn.js} +2 -2
- package/web/assets/{chunk-3GS5O3IE-BxKKu7d7.js → chunk-3GS5O3IE-B8hpnia8.js} +2 -2
- package/web/assets/{chunk-3YCYZ6SJ-BJZnGFjg.js → chunk-3YCYZ6SJ-B-BVu21C.js} +1 -1
- package/web/assets/{chunk-6NTNNK5N-CIL_eO2d.js → chunk-6NTNNK5N-DW-jYSDr.js} +1 -1
- package/web/assets/{chunk-A34GCYZU-Dv4Vkem9.js → chunk-A34GCYZU-BbZl-IKy.js} +1 -1
- package/web/assets/{chunk-DJ7UZH7F-Cskl-nb3.js → chunk-DJ7UZH7F-B5tMfF87.js} +1 -1
- package/web/assets/{chunk-DKKBVRCY-D3S2BD56.js → chunk-DKKBVRCY-Djm-6K_e.js} +2 -2
- package/web/assets/{chunk-DU5LTGQ6-B8Zh51LG.js → chunk-DU5LTGQ6-QPoynYcp.js} +1 -1
- package/web/assets/{chunk-FXACKDTF-Cb4xHVUz.js → chunk-FXACKDTF-jieSmbe2.js} +3 -3
- package/web/assets/chunk-H3VCZNTA-8EMHZ3SV.js +1 -0
- package/web/assets/chunk-HN6EAY2L-CgE_agsD.js +1 -0
- package/web/assets/{chunk-O5ABG6QK-V3sk7Bps.js → chunk-O5ABG6QK-DEZV1O19.js} +1 -1
- package/web/assets/{chunk-PK6DOVAG-FvG7aKfZ.js → chunk-PK6DOVAG-BXv0JnsJ.js} +3 -3
- package/web/assets/{chunk-RNJOYNJ4-BPANsy8V.js → chunk-RNJOYNJ4-BiBkF9dN.js} +1 -1
- package/web/assets/chunk-RWUO3TPN-DTWzAhQ1.js +1 -0
- package/web/assets/chunk-TBF5ZNIQ-BSl6s9lT.js +1 -0
- package/web/assets/{chunk-TYMNRAUI-BnMe6HfP.js → chunk-TYMNRAUI-D1NDLIMG.js} +1 -1
- package/web/assets/{chunk-W7ZLLLMY-BqZFKM5j.js → chunk-W7ZLLLMY-Bu-cdLzs.js} +1 -1
- package/web/assets/{chunk-WSB5WSVC-EKS7-Nnc.js → chunk-WSB5WSVC-Dor71SOz.js} +1 -1
- package/web/assets/{chunk-XGPFEOL4-BBab-enK.js → chunk-XGPFEOL4-CUonLRle.js} +1 -1
- package/web/assets/classDiagram-PPOCWD7C-Cdd6UdVv.js +1 -0
- package/web/assets/classDiagram-v2-23LJLIIU-DNhxY2Ib.js +1 -0
- package/web/assets/{cose-bilkent-PNC4W37J-DjEQkTZ4.js → cose-bilkent-PNC4W37J-DdZq7Qz_.js} +1 -1
- package/web/assets/dagre-E77IOHMT-Cfj_6e17.js +4 -0
- package/web/assets/{diagram-H7BISOXX-CMuISoJL.js → diagram-H7BISOXX-BNvpsrBv.js} +2 -2
- package/web/assets/{diagram-JC5VWROH-DHq_eoeM.js → diagram-JC5VWROH-Cn0rtDbJ.js} +1 -1
- package/web/assets/{diagram-LXUTUG65-C0NczIgW.js → diagram-LXUTUG65-CHfoVKNm.js} +2 -2
- package/web/assets/{diagram-WEHSV5V5-WsBnpSuc.js → diagram-WEHSV5V5-BLxHksnu.js} +1 -1
- package/web/assets/{erDiagram-GCSMX5X6-DxHFHFR6.js → erDiagram-GCSMX5X6-DfdN6iqF.js} +2 -2
- package/web/assets/flowDiagram-OTCZ4VVT-aAZw4c_M.js +162 -0
- package/web/assets/ganttDiagram-MUNLMDZQ-BEfC_7Or.js +292 -0
- package/web/assets/gitGraph-7Q5UKJZL-54BCDZD5-B6ZeRLP0.js +1 -0
- package/web/assets/gitGraphDiagram-3HKGZ4G3-CG0kC8Q5.js +106 -0
- package/web/assets/{index-DDcYO1IJ.js → index-3NUCUW2s.js} +119 -119
- package/web/assets/info-OMHHGYJF-BF2H5H6G-BIOsZy0W.js +1 -0
- package/web/assets/infoDiagram-MN7RKWGX-DUoMH-pq.js +2 -0
- package/web/assets/{ishikawaDiagram-YMYX4NHK-C-JI2Ih7.js → ishikawaDiagram-YMYX4NHK-BF8AtDaj.js} +2 -2
- package/web/assets/{journeyDiagram-SO5T7YLQ-IPX4h3iD.js → journeyDiagram-SO5T7YLQ-BW8oKa3N.js} +3 -3
- package/web/assets/{kanban-definition-LJHFXRCJ-B23LtshQ.js → kanban-definition-LJHFXRCJ-DzbOsR-2.js} +6 -6
- package/web/assets/{mindmap-definition-2EUWGEK5-DJKUsrCo.js → mindmap-definition-2EUWGEK5-BIXGQALq.js} +25 -25
- package/web/assets/packet-4T2RLAQJ-EV4IVRXR-Bs7ysNMU.js +1 -0
- package/web/assets/pie-ZZUOXDRM-N23DN5KN-Csi8nnbH.js +1 -0
- package/web/assets/{pieDiagram-3IATQBI2-Bj26KTKk.js → pieDiagram-3IATQBI2-QY-u7P6a.js} +3 -3
- package/web/assets/{quadrantDiagram-E256RVCF-VAk5oIRr.js → quadrantDiagram-E256RVCF-Di4aNiU8.js} +3 -3
- package/web/assets/radar-PYXPWWZC-P6TP7ZYP-DJlyXh2-.js +1 -0
- package/web/assets/{requirementDiagram-M5DCFWZL-CmlTJ_vQ.js → requirementDiagram-M5DCFWZL-CzUUrhQD.js} +4 -4
- package/web/assets/{sankeyDiagram-L3NBLAOT-C-f_DdcX.js → sankeyDiagram-L3NBLAOT-D2fbMiIU.js} +3 -3
- package/web/assets/{sequenceDiagram-ZOUHS735-DmtNf1NF.js → sequenceDiagram-ZOUHS735-BNdkqguh.js} +6 -6
- package/web/assets/stateDiagram-MLPALWAM-51_Q2w2L.js +1 -0
- package/web/assets/stateDiagram-v2-B5LQ5ZB2-8nHs2aNE.js +1 -0
- package/web/assets/{timeline-definition-5SPVSISX-BkpqZxt2.js → timeline-definition-5SPVSISX-DkMiGj4Z.js} +9 -9
- package/web/assets/treeView-SZITEDCU-5DXDK3XO-Cy6P0_CZ.js +1 -0
- package/web/assets/treemap-W4RFUUIX-WYLRDWKO-C_pp1R7A.js +1 -0
- package/web/assets/{vennDiagram-IE5QUKF5-iAJ08JBe.js → vennDiagram-IE5QUKF5-BCxMmf9q.js} +3 -3
- package/web/assets/wardley-RL74JXVD-BCRCBASE-CMStJhpn.js +1 -0
- package/web/assets/{wardleyDiagram-XU3VSMPF-BDiKTkL4.js → wardleyDiagram-XU3VSMPF-ijlLF77s.js} +4 -4
- package/web/assets/{xychartDiagram-ZHJ5623Y-CknyZyQK.js → xychartDiagram-ZHJ5623Y-DZ7fP1_3.js} +3 -3
- package/web/index.html +1 -1
- package/web/assets/architecture-YZFGNWBL-S5CXDPWN-BYXnTu07.js +0 -1
- package/web/assets/chunk-H3VCZNTA-BOGhqvxW.js +0 -1
- package/web/assets/chunk-HN6EAY2L-CitKFy1e.js +0 -1
- package/web/assets/chunk-RWUO3TPN-BHusg2jI.js +0 -1
- package/web/assets/chunk-TBF5ZNIQ-CXamrpH3.js +0 -1
- package/web/assets/classDiagram-PPOCWD7C-B-LkKU0P.js +0 -1
- package/web/assets/classDiagram-v2-23LJLIIU-_NGI4VEh.js +0 -1
- package/web/assets/dagre-E77IOHMT-D6Xacg1x.js +0 -4
- package/web/assets/flowDiagram-OTCZ4VVT-_G1VxyQS.js +0 -162
- package/web/assets/ganttDiagram-MUNLMDZQ-BIHObj0t.js +0 -292
- package/web/assets/gitGraph-7Q5UKJZL-54BCDZD5-BXJXsixL.js +0 -1
- package/web/assets/gitGraphDiagram-3HKGZ4G3-COZUkHTD.js +0 -106
- package/web/assets/info-OMHHGYJF-BF2H5H6G-C820LK0J.js +0 -1
- package/web/assets/infoDiagram-MN7RKWGX-BeOjfPc_.js +0 -2
- package/web/assets/packet-4T2RLAQJ-EV4IVRXR-BvWtM5jq.js +0 -1
- package/web/assets/pie-ZZUOXDRM-N23DN5KN-BnDgj0TQ.js +0 -1
- package/web/assets/radar-PYXPWWZC-P6TP7ZYP-2IuDlZ6r.js +0 -1
- package/web/assets/stateDiagram-MLPALWAM-Lq7UVrkj.js +0 -1
- package/web/assets/stateDiagram-v2-B5LQ5ZB2-DCiXBPeS.js +0 -1
- package/web/assets/treeView-SZITEDCU-5DXDK3XO-Ipq1EIaF.js +0 -1
- package/web/assets/treemap-W4RFUUIX-WYLRDWKO-DESFxovu.js +0 -1
- package/web/assets/wardley-RL74JXVD-BCRCBASE-BVkhckBY.js +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{t as e}from"./chunk-VELTKBKT-C9dVN39o.js";import{
|
|
1
|
+
import{t as e}from"./chunk-VELTKBKT-C9dVN39o.js";import{$t as t,At as n,D as r,E as i,Gn as a,Ht as o,I as s,It as c,L as l,P as u,Vt as d,b as f,bn as p,en as m,fn as h,in as g,jt as _,mn as v,on as y,un as b,vn as x,zn as S}from"./index-3NUCUW2s.js";import{w as C}from"./chunk-H3VCZNTA-8EMHZ3SV.js";import{t as w}from"./chunk-HN6EAY2L-CgE_agsD.js";import{t as T}from"./chunk-KSICW3F5-C2tZmXwv.js";var E=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,15],r=[1,7],i=[1,13],a=[1,14],o=[1,19],s=[1,16],c=[1,17],l=[1,18],u=[8,30],d=[8,10,21,28,29,30,31,39,43,46],f=[1,23],p=[1,24],m=[8,10,15,16,21,28,29,30,31,39,43,46],h=[8,10,15,16,21,27,28,29,30,31,39,43,46],g=[1,49],_={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:`error`,4:`SPACELINE`,5:`NL`,7:`SPACE`,8:`EOF`,10:`BLOCK_DIAGRAM_KEY`,15:`LINK`,16:`START_LINK`,17:`LINK_LABEL`,18:`STR`,21:`SPACE_BLOCK`,27:`SIZE`,28:`COLUMNS`,29:`id-block`,30:`end`,31:`NODE_ID`,34:`DIR`,35:`NODE_DSTART`,36:`NODE_DEND`,37:`BLOCK_ARROW_START`,38:`BLOCK_ARROW_END`,39:`classDef`,40:`CLASSDEF_ID`,41:`CLASSDEF_STYLEOPTS`,42:`DEFAULT`,43:`class`,44:`CLASSENTITY_IDS`,45:`STYLECLASS`,46:`style`,47:`STYLE_ENTITY_IDS`,48:`STYLE_DEFINITION_DATA`},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 4:r.getLogger().debug(`Rule: separator (NL) `);break;case 5:r.getLogger().debug(`Rule: separator (Space) `);break;case 6:r.getLogger().debug(`Rule: separator (EOF) `);break;case 7:r.getLogger().debug(`Rule: hierarchy: `,a[s-1]),r.setHierarchy(a[s-1]);break;case 8:r.getLogger().debug(`Stop NL `);break;case 9:r.getLogger().debug(`Stop EOF `);break;case 10:r.getLogger().debug(`Stop NL2 `);break;case 11:r.getLogger().debug(`Stop EOF2 `);break;case 12:r.getLogger().debug(`Rule: statement: `,a[s]),typeof a[s].length==`number`?this.$=a[s]:this.$=[a[s]];break;case 13:r.getLogger().debug(`Rule: statement #2: `,a[s-1]),this.$=[a[s-1]].concat(a[s]);break;case 14:r.getLogger().debug(`Rule: link: `,a[s],e),this.$={edgeTypeStr:a[s],label:``};break;case 15:r.getLogger().debug(`Rule: LABEL link: `,a[s-3],a[s-1],a[s]),this.$={edgeTypeStr:a[s],label:a[s-1]};break;case 18:let t=parseInt(a[s]),n=r.generateId();this.$={id:n,type:`space`,label:``,width:t,children:[]};break;case 23:r.getLogger().debug(`Rule: (nodeStatement link node) `,a[s-2],a[s-1],a[s],` typestr: `,a[s-1].edgeTypeStr);let i=r.edgeStrToEdgeData(a[s-1].edgeTypeStr);this.$=[{id:a[s-2].id,label:a[s-2].label,type:a[s-2].type,directions:a[s-2].directions},{id:a[s-2].id+`-`+a[s].id,start:a[s-2].id,end:a[s].id,label:a[s-1].label,type:`edge`,directions:a[s].directions,arrowTypeEnd:i,arrowTypeStart:`arrow_open`},{id:a[s].id,label:a[s].label,type:r.typeStr2Type(a[s].typeStr),directions:a[s].directions}];break;case 24:r.getLogger().debug(`Rule: nodeStatement (abc88 node size) `,a[s-1],a[s]),this.$={id:a[s-1].id,label:a[s-1].label,type:r.typeStr2Type(a[s-1].typeStr),directions:a[s-1].directions,widthInColumns:parseInt(a[s],10)};break;case 25:r.getLogger().debug(`Rule: nodeStatement (node) `,a[s]),this.$={id:a[s].id,label:a[s].label,type:r.typeStr2Type(a[s].typeStr),directions:a[s].directions,widthInColumns:1};break;case 26:r.getLogger().debug(`APA123`,this?this:`na`),r.getLogger().debug(`COLUMNS: `,a[s]),this.$={type:`column-setting`,columns:a[s]===`auto`?-1:parseInt(a[s])};break;case 27:r.getLogger().debug(`Rule: id-block statement : `,a[s-2],a[s-1]),r.generateId(),this.$={...a[s-2],type:`composite`,children:a[s-1]};break;case 28:r.getLogger().debug(`Rule: blockStatement : `,a[s-2],a[s-1],a[s]);let o=r.generateId();this.$={id:o,type:`composite`,label:``,children:a[s-1]};break;case 29:r.getLogger().debug(`Rule: node (NODE_ID separator): `,a[s]),this.$={id:a[s]};break;case 30:r.getLogger().debug(`Rule: node (NODE_ID nodeShapeNLabel separator): `,a[s-1],a[s]),this.$={id:a[s-1],label:a[s].label,typeStr:a[s].typeStr,directions:a[s].directions};break;case 31:r.getLogger().debug(`Rule: dirList: `,a[s]),this.$=[a[s]];break;case 32:r.getLogger().debug(`Rule: dirList: `,a[s-1],a[s]),this.$=[a[s-1]].concat(a[s]);break;case 33:r.getLogger().debug(`Rule: nodeShapeNLabel: `,a[s-2],a[s-1],a[s]),this.$={typeStr:a[s-2]+a[s],label:a[s-1]};break;case 34:r.getLogger().debug(`Rule: BLOCK_ARROW nodeShapeNLabel: `,a[s-3],a[s-2],` #3:`,a[s-1],a[s]),this.$={typeStr:a[s-3]+a[s],label:a[s-2],directions:a[s-1]};break;case 35:case 36:this.$={type:`classDef`,id:a[s-1].trim(),css:a[s].trim()};break;case 37:this.$={type:`applyClass`,id:a[s-1].trim(),styleClass:a[s].trim()};break;case 38:this.$={type:`applyStyles`,id:a[s-1].trim(),stylesStr:a[s].trim()};break}},`anonymous`),table:[{9:1,10:[1,2]},{1:[3]},{10:n,11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:a,31:o,39:s,43:c,46:l},{8:[1,20]},t(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:n,21:r,28:i,29:a,31:o,39:s,43:c,46:l}),t(d,[2,16],{14:22,15:f,16:p}),t(d,[2,17]),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,22]),t(m,[2,25],{27:[1,25]}),t(d,[2,26]),{19:26,26:12,31:o},{10:n,11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:a,31:o,39:s,43:c,46:l},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},t(h,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},t(u,[2,13]),{26:35,31:o},{31:[2,14]},{17:[1,36]},t(m,[2,24]),{10:n,11:37,13:4,14:22,15:f,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:a,31:o,39:s,43:c,46:l},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},t(h,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(d,[2,28]),t(d,[2,35]),t(d,[2,36]),t(d,[2,37]),t(d,[2,38]),{36:[1,47]},{33:48,34:g},{15:[1,50]},t(d,[2,27]),t(h,[2,33]),{38:[1,51]},{33:52,34:g,38:[2,31]},{31:[2,15]},t(h,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,typeof h.yylloc>`u`&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e;return e=i.pop()||h.lex()||p,typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((S===null||typeof S>`u`)&&(S=x()),T=s[w]&&s[w][S]),typeof T>`u`||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
2
2
|
`+h.showPosition()+`
|
|
3
3
|
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,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:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),typeof E<`u`)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};_.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(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:e(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:e(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:e(function(){return this._more=!0,this},`more`),reject:e(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:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(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:e(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:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
5
5
|
`+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}else return!1}else if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e===!1?!1:e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
-
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{},performAction:e(function(e,t,n,r){switch(n){case 0:return e.getLogger().debug(`Found block-beta`),10;case 1:return e.getLogger().debug(`Found id-block`),29;case 2:return e.getLogger().debug(`Found block`),10;case 3:e.getLogger().debug(`.`,t.yytext);break;case 4:e.getLogger().debug(`_`,t.yytext);break;case 5:return 5;case 6:return t.yytext=-1,28;case 7:return t.yytext=t.yytext.replace(/columns\s+/,``),e.getLogger().debug(`COLUMNS (LEX)`,t.yytext),28;case 8:this.pushState(`md_string`);break;case 9:return`MD_STR`;case 10:this.popState();break;case 11:this.pushState(`string`);break;case 12:e.getLogger().debug(`LEX: POPPING STR:`,t.yytext),this.popState();break;case 13:return e.getLogger().debug(`LEX: STR end:`,t.yytext),`STR`;case 14:return t.yytext=t.yytext.replace(/space\:/,``),e.getLogger().debug(`SPACE NUM (LEX)`,t.yytext),21;case 15:return t.yytext=`1`,e.getLogger().debug(`COLUMNS (LEX)`,t.yytext),21;case 16:return 42;case 17:return`LINKSTYLE`;case 18:return`INTERPOLATE`;case 19:return this.pushState(`CLASSDEF`),39;case 20:return this.popState(),this.pushState(`CLASSDEFID`),`DEFAULT_CLASSDEF_ID`;case 21:return this.popState(),this.pushState(`CLASSDEFID`),40;case 22:return this.popState(),41;case 23:return this.pushState(`CLASS`),43;case 24:return this.popState(),this.pushState(`CLASS_STYLE`),44;case 25:return this.popState(),45;case 26:return this.pushState(`STYLE_STMNT`),46;case 27:return this.popState(),this.pushState(`STYLE_DEFINITION`),47;case 28:return this.popState(),48;case 29:return this.pushState(`acc_title`),`acc_title`;case 30:return this.popState(),`acc_title_value`;case 31:return this.pushState(`acc_descr`),`acc_descr`;case 32:return this.popState(),`acc_descr_value`;case 33:this.pushState(`acc_descr_multiline`);break;case 34:this.popState();break;case 35:return`acc_descr_multiline_value`;case 36:return 30;case 37:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 38:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 39:return this.popState(),e.getLogger().debug(`Lex: ))`),`NODE_DEND`;case 40:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 41:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 42:return this.popState(),e.getLogger().debug(`Lex: (-`),`NODE_DEND`;case 43:return this.popState(),e.getLogger().debug(`Lex: -)`),`NODE_DEND`;case 44:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 45:return this.popState(),e.getLogger().debug(`Lex: ]]`),`NODE_DEND`;case 46:return this.popState(),e.getLogger().debug(`Lex: (`),`NODE_DEND`;case 47:return this.popState(),e.getLogger().debug(`Lex: ])`),`NODE_DEND`;case 48:return this.popState(),e.getLogger().debug(`Lex: /]`),`NODE_DEND`;case 49:return this.popState(),e.getLogger().debug(`Lex: /]`),`NODE_DEND`;case 50:return this.popState(),e.getLogger().debug(`Lex: )]`),`NODE_DEND`;case 51:return this.popState(),e.getLogger().debug(`Lex: )`),`NODE_DEND`;case 52:return this.popState(),e.getLogger().debug(`Lex: ]>`),`NODE_DEND`;case 53:return this.popState(),e.getLogger().debug(`Lex: ]`),`NODE_DEND`;case 54:return e.getLogger().debug(`Lexa: -)`),this.pushState(`NODE`),35;case 55:return e.getLogger().debug(`Lexa: (-`),this.pushState(`NODE`),35;case 56:return e.getLogger().debug(`Lexa: ))`),this.pushState(`NODE`),35;case 57:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 58:return e.getLogger().debug(`Lex: (((`),this.pushState(`NODE`),35;case 59:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 60:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 61:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 62:return e.getLogger().debug(`Lexc: >`),this.pushState(`NODE`),35;case 63:return e.getLogger().debug(`Lexa: ([`),this.pushState(`NODE`),35;case 64:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 65:return this.pushState(`NODE`),35;case 66:return this.pushState(`NODE`),35;case 67:return this.pushState(`NODE`),35;case 68:return this.pushState(`NODE`),35;case 69:return this.pushState(`NODE`),35;case 70:return this.pushState(`NODE`),35;case 71:return this.pushState(`NODE`),35;case 72:return e.getLogger().debug(`Lexa: [`),this.pushState(`NODE`),35;case 73:return this.pushState(`BLOCK_ARROW`),e.getLogger().debug(`LEX ARR START`),37;case 74:return e.getLogger().debug(`Lex: NODE_ID`,t.yytext),31;case 75:return e.getLogger().debug(`Lex: EOF`,t.yytext),8;case 76:this.pushState(`md_string`);break;case 77:this.pushState(`md_string`);break;case 78:return`NODE_DESCR`;case 79:this.popState();break;case 80:e.getLogger().debug(`Lex: Starting string`),this.pushState(`string`);break;case 81:e.getLogger().debug(`LEX ARR: Starting string`),this.pushState(`string`);break;case 82:return e.getLogger().debug(`LEX: NODE_DESCR:`,t.yytext),`NODE_DESCR`;case 83:e.getLogger().debug(`LEX POPPING`),this.popState();break;case 84:e.getLogger().debug(`Lex: =>BAE`),this.pushState(`ARROW_DIR`);break;case 85:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (right): dir:`,t.yytext),`DIR`;case 86:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (left):`,t.yytext),`DIR`;case 87:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (x):`,t.yytext),`DIR`;case 88:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (y):`,t.yytext),`DIR`;case 89:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (up):`,t.yytext),`DIR`;case 90:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (down):`,t.yytext),`DIR`;case 91:return t.yytext=`]>`,e.getLogger().debug(`Lex (ARROW_DIR end):`,t.yytext),this.popState(),this.popState(),`BLOCK_ARROW_END`;case 92:return e.getLogger().debug(`Lex: LINK`,`#`+t.yytext+`#`),15;case 93:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 94:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 95:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 96:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 97:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 98:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 99:this.pushState(`md_string`);break;case 100:return e.getLogger().debug(`Lex: Starting string`),this.pushState(`string`),`LINK_LABEL`;case 101:return this.popState(),e.getLogger().debug(`Lex: LINK`,`#`+t.yytext+`#`),15;case 102:return this.popState(),e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 103:return this.popState(),e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 104:return e.getLogger().debug(`Lex: COLON`,t.yytext),t.yytext=t.yytext.slice(1),27}},`anonymous`),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}}})();function v(){this.yy={}}return e(v,`Parser`),v.prototype=_,_.Parser=v,new v})();E.parser=E;var D=E,O=new Map,k=[],A=new Map,j=`color`,M=`fill`,ee=`bgFill`,te=`,`,ne=_(),N=new Map,re=``,ie=e(e=>o.sanitizeText(e,ne),`sanitizeText`),ae=e(function(e,t=``){let n=N.get(e);n||(n={id:e,styles:[],textStyles:[]},N.set(e,n)),t?.split(te).forEach(e=>{let t=e.replace(/([^;]*);/,`$1`).trim();if(RegExp(j).exec(e)){let e=t.replace(M,ee).replace(j,M);n.textStyles.push(e)}n.styles.push(t)})},`addStyleClass`),oe=e(function(e,t=``){let n=O.get(e);t!=null&&(n.styles=t.split(te))},`addStyle2Node`),se=e(function(e,t){e.split(`,`).forEach(function(e){let n=O.get(e);if(n===void 0){let t=e.trim();n={id:t,type:`na`,children:[]},O.set(t,n)}n.classes||=[],n.classes.push(t)})},`setCssClass`),ce=e((e,t)=>{let n=e.flat(),r=[],i=n.find(e=>e?.type===`column-setting`)?.columns??-1;for(let e of n){if(typeof i==`number`&&i>0&&e.type!==`column-setting`&&typeof e.widthInColumns==`number`&&e.widthInColumns>i&&b.warn(`Block ${e.id} width ${e.widthInColumns} exceeds configured column width ${i}`),e.label&&=ie(e.label),e.type===`classDef`){ae(e.id,e.css);continue}if(e.type===`applyClass`){se(e.id,e?.styleClass??``);continue}if(e.type===`applyStyles`){e?.stylesStr&&oe(e.id,e?.stylesStr);continue}if(e.type===`column-setting`)t.columns=e.columns??-1;else if(e.type===`edge`){let t=(A.get(e.id)??0)+1;A.set(e.id,t),e.id=t+`-`+e.id,k.push(e)}else{e.label||(e.type===`composite`?e.label=``:e.label=e.id);let t=O.get(e.id);if(t===void 0?O.set(e.id,e):(e.type!==`na`&&(t.type=e.type),e.label!==e.id&&(t.label=e.label)),e.children&&ce(e.children,e),e.type===`space`){let t=e.width??1;for(let n=0;n<t;n++){let t=C(e);t.id=t.id+`-`+n,O.set(t.id,t),r.push(t)}}else t===void 0&&r.push(e)}}t.children=r},`populateBlockDatabase`),P=[],F={id:`root`,type:`composite`,children:[],columns:-1},le=e(()=>{b.debug(`Clear called`),m(),F={id:`root`,type:`composite`,children:[],columns:-1},O=new Map([[`root`,F]]),P=[],N=new Map,k=[],A=new Map,re=``},`clear`);function ue(e){switch(b.debug(`typeStr2Type`,e),e){case`[]`:return`square`;case`()`:return b.debug(`we have a round`),`round`;case`(())`:return`circle`;case`>]`:return`rect_left_inv_arrow`;case`{}`:return`diamond`;case`{{}}`:return`hexagon`;case`([])`:return`stadium`;case`[[]]`:return`subroutine`;case`[()]`:return`cylinder`;case`((()))`:return`doublecircle`;case`[//]`:return`lean_right`;case`[\\\\]`:return`lean_left`;case`[/\\]`:return`trapezoid`;case`[\\/]`:return`inv_trapezoid`;case`<[]>`:return`block_arrow`;default:return`na`}}e(ue,`typeStr2Type`);function de(e){switch(b.debug(`typeStr2Type`,e),e){case`==`:return`thick`;default:return`normal`}}e(de,`edgeTypeStr2Type`);function fe(e){switch(e.replace(/^[\s-]+|[\s-]+$/g,``)){case`x`:return`arrow_cross`;case`o`:return`arrow_circle`;case`>`:return`arrow_point`;default:return``}}e(fe,`edgeStrToEdgeData`);var pe=0,me=e(()=>(pe++,`id-`+Math.random().toString(36).substr(2,12)+`-`+pe),`generateId`),he=e(e=>{F.children=e,ce(e,F),P=F.children},`setHierarchy`),ge=e(e=>{let t=O.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},`getColumns`),_e=e(()=>[...O.values()],`getBlocksFlat`),ve=e(()=>P||[],`getBlocks`),ye=e(()=>k,`getEdges`),be=e(e=>O.get(e),`getBlock`),xe=e(e=>{O.set(e.id,e)},`setBlock`),Se=e(e=>{re=e},`setDiagramId`),Ce=e(()=>re,`getDiagramId`),we=e(()=>b,`getLogger`),Te=e(function(){return N},`getClasses`),Ee={getConfig:e(()=>l().block,`getConfig`),typeStr2Type:ue,edgeTypeStr2Type:de,edgeStrToEdgeData:fe,getLogger:we,getBlocksFlat:_e,getBlocks:ve,getEdges:ye,setHierarchy:he,getBlock:be,setBlock:xe,getColumns:ge,getClasses:Te,clear:le,generateId:me,setDiagramId:Se,getDiagramId:Ce},I=e((e,t)=>{let n=p;return d(n(e,`r`),n(e,`g`),n(e,`b`),t)},`fade`),De=e(e=>`.label {
|
|
6
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{},performAction:e(function(e,t,n,r){switch(n){case 0:return e.getLogger().debug(`Found block-beta`),10;case 1:return e.getLogger().debug(`Found id-block`),29;case 2:return e.getLogger().debug(`Found block`),10;case 3:e.getLogger().debug(`.`,t.yytext);break;case 4:e.getLogger().debug(`_`,t.yytext);break;case 5:return 5;case 6:return t.yytext=-1,28;case 7:return t.yytext=t.yytext.replace(/columns\s+/,``),e.getLogger().debug(`COLUMNS (LEX)`,t.yytext),28;case 8:this.pushState(`md_string`);break;case 9:return`MD_STR`;case 10:this.popState();break;case 11:this.pushState(`string`);break;case 12:e.getLogger().debug(`LEX: POPPING STR:`,t.yytext),this.popState();break;case 13:return e.getLogger().debug(`LEX: STR end:`,t.yytext),`STR`;case 14:return t.yytext=t.yytext.replace(/space\:/,``),e.getLogger().debug(`SPACE NUM (LEX)`,t.yytext),21;case 15:return t.yytext=`1`,e.getLogger().debug(`COLUMNS (LEX)`,t.yytext),21;case 16:return 42;case 17:return`LINKSTYLE`;case 18:return`INTERPOLATE`;case 19:return this.pushState(`CLASSDEF`),39;case 20:return this.popState(),this.pushState(`CLASSDEFID`),`DEFAULT_CLASSDEF_ID`;case 21:return this.popState(),this.pushState(`CLASSDEFID`),40;case 22:return this.popState(),41;case 23:return this.pushState(`CLASS`),43;case 24:return this.popState(),this.pushState(`CLASS_STYLE`),44;case 25:return this.popState(),45;case 26:return this.pushState(`STYLE_STMNT`),46;case 27:return this.popState(),this.pushState(`STYLE_DEFINITION`),47;case 28:return this.popState(),48;case 29:return this.pushState(`acc_title`),`acc_title`;case 30:return this.popState(),`acc_title_value`;case 31:return this.pushState(`acc_descr`),`acc_descr`;case 32:return this.popState(),`acc_descr_value`;case 33:this.pushState(`acc_descr_multiline`);break;case 34:this.popState();break;case 35:return`acc_descr_multiline_value`;case 36:return 30;case 37:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 38:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 39:return this.popState(),e.getLogger().debug(`Lex: ))`),`NODE_DEND`;case 40:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 41:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 42:return this.popState(),e.getLogger().debug(`Lex: (-`),`NODE_DEND`;case 43:return this.popState(),e.getLogger().debug(`Lex: -)`),`NODE_DEND`;case 44:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 45:return this.popState(),e.getLogger().debug(`Lex: ]]`),`NODE_DEND`;case 46:return this.popState(),e.getLogger().debug(`Lex: (`),`NODE_DEND`;case 47:return this.popState(),e.getLogger().debug(`Lex: ])`),`NODE_DEND`;case 48:return this.popState(),e.getLogger().debug(`Lex: /]`),`NODE_DEND`;case 49:return this.popState(),e.getLogger().debug(`Lex: /]`),`NODE_DEND`;case 50:return this.popState(),e.getLogger().debug(`Lex: )]`),`NODE_DEND`;case 51:return this.popState(),e.getLogger().debug(`Lex: )`),`NODE_DEND`;case 52:return this.popState(),e.getLogger().debug(`Lex: ]>`),`NODE_DEND`;case 53:return this.popState(),e.getLogger().debug(`Lex: ]`),`NODE_DEND`;case 54:return e.getLogger().debug(`Lexa: -)`),this.pushState(`NODE`),35;case 55:return e.getLogger().debug(`Lexa: (-`),this.pushState(`NODE`),35;case 56:return e.getLogger().debug(`Lexa: ))`),this.pushState(`NODE`),35;case 57:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 58:return e.getLogger().debug(`Lex: (((`),this.pushState(`NODE`),35;case 59:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 60:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 61:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 62:return e.getLogger().debug(`Lexc: >`),this.pushState(`NODE`),35;case 63:return e.getLogger().debug(`Lexa: ([`),this.pushState(`NODE`),35;case 64:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 65:return this.pushState(`NODE`),35;case 66:return this.pushState(`NODE`),35;case 67:return this.pushState(`NODE`),35;case 68:return this.pushState(`NODE`),35;case 69:return this.pushState(`NODE`),35;case 70:return this.pushState(`NODE`),35;case 71:return this.pushState(`NODE`),35;case 72:return e.getLogger().debug(`Lexa: [`),this.pushState(`NODE`),35;case 73:return this.pushState(`BLOCK_ARROW`),e.getLogger().debug(`LEX ARR START`),37;case 74:return e.getLogger().debug(`Lex: NODE_ID`,t.yytext),31;case 75:return e.getLogger().debug(`Lex: EOF`,t.yytext),8;case 76:this.pushState(`md_string`);break;case 77:this.pushState(`md_string`);break;case 78:return`NODE_DESCR`;case 79:this.popState();break;case 80:e.getLogger().debug(`Lex: Starting string`),this.pushState(`string`);break;case 81:e.getLogger().debug(`LEX ARR: Starting string`),this.pushState(`string`);break;case 82:return e.getLogger().debug(`LEX: NODE_DESCR:`,t.yytext),`NODE_DESCR`;case 83:e.getLogger().debug(`LEX POPPING`),this.popState();break;case 84:e.getLogger().debug(`Lex: =>BAE`),this.pushState(`ARROW_DIR`);break;case 85:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (right): dir:`,t.yytext),`DIR`;case 86:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (left):`,t.yytext),`DIR`;case 87:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (x):`,t.yytext),`DIR`;case 88:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (y):`,t.yytext),`DIR`;case 89:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (up):`,t.yytext),`DIR`;case 90:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (down):`,t.yytext),`DIR`;case 91:return t.yytext=`]>`,e.getLogger().debug(`Lex (ARROW_DIR end):`,t.yytext),this.popState(),this.popState(),`BLOCK_ARROW_END`;case 92:return e.getLogger().debug(`Lex: LINK`,`#`+t.yytext+`#`),15;case 93:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 94:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 95:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 96:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 97:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 98:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 99:this.pushState(`md_string`);break;case 100:return e.getLogger().debug(`Lex: Starting string`),this.pushState(`string`),`LINK_LABEL`;case 101:return this.popState(),e.getLogger().debug(`Lex: LINK`,`#`+t.yytext+`#`),15;case 102:return this.popState(),e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 103:return this.popState(),e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 104:return e.getLogger().debug(`Lex: COLON`,t.yytext),t.yytext=t.yytext.slice(1),27}},`anonymous`),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}}})();function v(){this.yy={}}return e(v,`Parser`),v.prototype=_,_.Parser=v,new v})();E.parser=E;var D=E,O=new Map,k=[],A=new Map,j=`color`,M=`fill`,ee=`bgFill`,te=`,`,ne=h(),N=new Map,re=``,ie=e(e=>c.sanitizeText(e,ne),`sanitizeText`),ae=e(function(e,t=``){let n=N.get(e);n||(n={id:e,styles:[],textStyles:[]},N.set(e,n)),t?.split(te).forEach(e=>{let t=e.replace(/([^;]*);/,`$1`).trim();if(RegExp(j).exec(e)){let e=t.replace(M,ee).replace(j,M);n.textStyles.push(e)}n.styles.push(t)})},`addStyleClass`),oe=e(function(e,t=``){let n=O.get(e);t!=null&&(n.styles=t.split(te))},`addStyle2Node`),se=e(function(e,t){e.split(`,`).forEach(function(e){let n=O.get(e);if(n===void 0){let t=e.trim();n={id:t,type:`na`,children:[]},O.set(t,n)}n.classes||=[],n.classes.push(t)})},`setCssClass`),ce=e((e,t)=>{let n=e.flat(),r=[],i=n.find(e=>e?.type===`column-setting`)?.columns??-1;for(let e of n){if(typeof i==`number`&&i>0&&e.type!==`column-setting`&&typeof e.widthInColumns==`number`&&e.widthInColumns>i&&a.warn(`Block ${e.id} width ${e.widthInColumns} exceeds configured column width ${i}`),e.label&&=ie(e.label),e.type===`classDef`){ae(e.id,e.css);continue}if(e.type===`applyClass`){se(e.id,e?.styleClass??``);continue}if(e.type===`applyStyles`){e?.stylesStr&&oe(e.id,e?.stylesStr);continue}if(e.type===`column-setting`)t.columns=e.columns??-1;else if(e.type===`edge`){let t=(A.get(e.id)??0)+1;A.set(e.id,t),e.id=t+`-`+e.id,k.push(e)}else{e.label||(e.type===`composite`?e.label=``:e.label=e.id);let t=O.get(e.id);if(t===void 0?O.set(e.id,e):(e.type!==`na`&&(t.type=e.type),e.label!==e.id&&(t.label=e.label)),e.children&&ce(e.children,e),e.type===`space`){let t=e.width??1;for(let n=0;n<t;n++){let t=C(e);t.id=t.id+`-`+n,O.set(t.id,t),r.push(t)}}else t===void 0&&r.push(e)}}t.children=r},`populateBlockDatabase`),P=[],F={id:`root`,type:`composite`,children:[],columns:-1},le=e(()=>{a.debug(`Clear called`),b(),F={id:`root`,type:`composite`,children:[],columns:-1},O=new Map([[`root`,F]]),P=[],N=new Map,k=[],A=new Map,re=``},`clear`);function ue(e){switch(a.debug(`typeStr2Type`,e),e){case`[]`:return`square`;case`()`:return a.debug(`we have a round`),`round`;case`(())`:return`circle`;case`>]`:return`rect_left_inv_arrow`;case`{}`:return`diamond`;case`{{}}`:return`hexagon`;case`([])`:return`stadium`;case`[[]]`:return`subroutine`;case`[()]`:return`cylinder`;case`((()))`:return`doublecircle`;case`[//]`:return`lean_right`;case`[\\\\]`:return`lean_left`;case`[/\\]`:return`trapezoid`;case`[\\/]`:return`inv_trapezoid`;case`<[]>`:return`block_arrow`;default:return`na`}}e(ue,`typeStr2Type`);function de(e){switch(a.debug(`typeStr2Type`,e),e){case`==`:return`thick`;default:return`normal`}}e(de,`edgeTypeStr2Type`);function fe(e){switch(e.replace(/^[\s-]+|[\s-]+$/g,``)){case`x`:return`arrow_cross`;case`o`:return`arrow_circle`;case`>`:return`arrow_point`;default:return``}}e(fe,`edgeStrToEdgeData`);var pe=0,me=e(()=>(pe++,`id-`+Math.random().toString(36).substr(2,12)+`-`+pe),`generateId`),he=e(e=>{F.children=e,ce(e,F),P=F.children},`setHierarchy`),ge=e(e=>{let t=O.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},`getColumns`),_e=e(()=>[...O.values()],`getBlocksFlat`),ve=e(()=>P||[],`getBlocks`),ye=e(()=>k,`getEdges`),be=e(e=>O.get(e),`getBlock`),xe=e(e=>{O.set(e.id,e)},`setBlock`),Se=e(e=>{re=e},`setDiagramId`),Ce=e(()=>re,`getDiagramId`),we=e(()=>a,`getLogger`),Te=e(function(){return N},`getClasses`),Ee={getConfig:e(()=>d().block,`getConfig`),typeStr2Type:ue,edgeTypeStr2Type:de,edgeStrToEdgeData:fe,getLogger:we,getBlocksFlat:_e,getBlocks:ve,getEdges:ye,setHierarchy:he,getBlock:be,setBlock:xe,getColumns:ge,getClasses:Te,clear:le,generateId:me,setDiagramId:Se,getDiagramId:Ce},I=e((e,t)=>{let n=y;return o(n(e,`r`),n(e,`g`),n(e,`b`),t)},`fade`),De=e(e=>`.label {
|
|
7
7
|
font-family: ${e.fontFamily};
|
|
8
8
|
color: ${e.nodeTextColor||e.textColor};
|
|
9
9
|
}
|
|
@@ -126,7 +126,7 @@ Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on l
|
|
|
126
126
|
fill: ${e.textColor};
|
|
127
127
|
}
|
|
128
128
|
${T()}
|
|
129
|
-
`,`getStyles`),Oe=e((e,t,n,r)=>{t.forEach(t=>{ke[t](e,n,r)})},`insertMarkers`),ke={extension:e((e,t,n)=>{b.trace(`Making markers for `,n),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionStart`).attr(`class`,`marker extension `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,7 L18,13 V 1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionEnd`).attr(`class`,`marker extension `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 V 13 L18,7 Z`)},`extension`),composition:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionStart`).attr(`class`,`marker composition `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionEnd`).attr(`class`,`marker composition `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`composition`),aggregation:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationStart`).attr(`class`,`marker aggregation `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationEnd`).attr(`class`,`marker aggregation `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`aggregation`),dependency:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyStart`).attr(`class`,`marker dependency `+t).attr(`refX`,6).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 5,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyEnd`).attr(`class`,`marker dependency `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L14,7 L9,1 Z`)},`dependency`),lollipop:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopStart`).attr(`class`,`marker lollipop `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopEnd`).attr(`class`,`marker lollipop `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6)},`lollipop`),point:e((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-pointEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,6).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,4.5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 5 L 10 10 L 10 0 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`point`),circle:e((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-circleEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,11).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,-1).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`circle`),cross:e((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-crossEnd`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,12).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-crossStart`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,-1).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`)},`cross`),barb:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`strokeWidth`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`barb`)},Ae=Oe,L=_()?.block?.padding??8;function R(e,t){if(e===0||!Number.isInteger(e))throw Error(`Columns must be an integer !== 0.`);if(t<0||!Number.isInteger(t))throw Error(`Position must be a non-negative integer.`+t);return e<0?{px:t,py:0}:e===1?{px:0,py:t}:{px:t%e,py:Math.floor(t/e)}}e(R,`calculateBlockPosition`);var je=e(e=>{let t=0,n=0;for(let r of e.children){let{width:e,height:i,x:a,y:o}=r.size??{width:0,height:0,x:0,y:0};b.debug(`getMaxChildSize abc95 child:`,r.id,`width:`,e,`height:`,i,`x:`,a,`y:`,o,r.type),r.type!==`space`&&(e>t&&(t=e/(r.widthInColumns??1)),i>n&&(n=i))}return{width:t,height:n}},`getMaxChildSize`);function z(e,t,n=0,r=0){b.debug(`setBlockSizes abc95 (start)`,e.id,e?.size?.x,`block width =`,e?.size,`siblingWidth`,n),e?.size?.width||(e.size={width:n,height:r,x:0,y:0});let i=0,a=0;if(e.children?.length>0){for(let n of e.children)z(n,t);let o=je(e);i=o.width,a=o.height,b.debug(`setBlockSizes abc95 maxWidth of`,e.id,`:s children is `,i,a);for(let t of e.children)t.size&&(b.debug(`abc95 Setting size of children of ${e.id} id=${t.id} ${i} ${a} ${JSON.stringify(t.size)}`),t.size.width=i*(t.widthInColumns??1)+L*((t.widthInColumns??1)-1),t.size.height=a,t.size.x=0,t.size.y=0,b.debug(`abc95 updating size of ${e.id} children child:${t.id} maxWidth:${i} maxHeight:${a}`));for(let n of e.children)z(n,t,i,a);let s=e.columns??-1,c=0;for(let t of e.children)c+=t.widthInColumns??1;let l=e.children.length;s>0&&s<c&&(l=s);let u=Math.ceil(c/l),d=l*(i+L)+L,f=u*(a+L)+L;if(d<n){b.debug(`Detected to small sibling: abc95 ${e.id} siblingWidth ${n} siblingHeight ${r} width ${d}`),d=n,f=r;let t=(n-l*L-L)/l,o=(r-u*L-L)/u;b.debug(`Size indata abc88`,e.id,`childWidth`,t,`maxWidth`,i),b.debug(`Size indata abc88`,e.id,`childHeight`,o,`maxHeight`,a),b.debug(`Size indata abc88 xSize`,l,`padding`,L);for(let n of e.children)n.size&&(n.size.width=t,n.size.height=o,n.size.x=0,n.size.y=0)}if(b.debug(`abc95 (finale calc) ${e.id} xSize ${l} ySize ${u} columns ${s}${e.children.length} width=${Math.max(d,e.size?.width||0)}`),d<(e?.size?.width||0)){d=e?.size?.width||0;let t=s>0?Math.min(e.children.length,s):e.children.length;if(t>0){let n=(d-t*L-L)/t;b.debug(`abc95 (growing to fit) width`,e.id,d,e.size?.width,n);for(let t of e.children)t.size&&(t.size.width=n)}}e.size={width:d,height:f,x:0,y:0}}b.debug(`setBlockSizes abc94 (done)`,e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}e(z,`setBlockSizes`);function B(e,t){b.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let n=e.columns??-1;if(b.debug(`layoutBlocks columns abc95`,e.id,`=>`,n,e),e.children&&e.children.length>0){let r=e?.children[0]?.size?.width??0,i=e.children.length*r+(e.children.length-1)*L;b.debug(`widthOfChildren 88`,i,`posX`);let a=new Map;{let t=0;for(let r of e.children){if(!r.size)continue;let{py:e}=R(n,t),i=a.get(e)??0;r.size.height>i&&a.set(e,r.size.height);let o=r?.widthInColumns??1;n>0&&(o=Math.min(o,n-t%n)),t+=o}}let o=new Map;{let e=0,t=[...a.keys()].sort((e,t)=>e-t);for(let n of t)o.set(n,e),e+=(a.get(n)??0)+L}let s=0;b.debug(`abc91 block?.size?.x`,e.id,e?.size?.x);let c=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-L,l=0;for(let r of e.children){let i=e;if(!r.size)continue;let{width:u,height:d}=r.size,{px:f,py:p}=R(n,s);if(p!=l&&(l=p,c=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-L,b.debug(`New row in layout for block`,e.id,` and child `,r.id,l)),b.debug(`abc89 layout blocks (child) id: ${r.id} Pos: ${s} (px, py) ${f},${p} (${i?.size?.x},${i?.size?.y}) parent: ${i.id} width: ${u}${L}`),i.size){let e=u/2;r.size.x=c+L+e,b.debug(`abc91 layout blocks (calc) px, pyid:${r.id} startingPos=X${c} new startingPosX${r.size.x} ${e} padding=${L} width=${u} halfWidth=${e} => x:${r.size.x} y:${r.size.y} ${r.widthInColumns} (width * (child?.w || 1)) / 2 ${u*(r?.widthInColumns??1)/2}`),c=r.size.x+e;let t=o.get(p)??0,n=a.get(p)??d;r.size.y=i.size.y-i.size.height/2+t+n/2+L,b.debug(`abc88 layout blocks (calc) px, pyid:${r.id}startingPosX${c}${L}${e}=>x:${r.size.x}y:${r.size.y}${r.widthInColumns}(width * (child?.w || 1)) / 2${u*(r?.widthInColumns??1)/2}`)}r.children&&B(r,t);let m=r?.widthInColumns??1;n>0&&(m=Math.min(m,n-s%n)),s+=m,b.debug(`abc88 columnsPos`,r,s)}}b.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}e(B,`layoutBlocks`);function V(e,{minX:t,minY:n,maxX:r,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!==`root`){let{x:a,y:o,width:s,height:c}=e.size;a-s/2<t&&(t=a-s/2),o-c/2<n&&(n=o-c/2),a+s/2>r&&(r=a+s/2),o+c/2>i&&(i=o+c/2)}if(e.children)for(let a of e.children)({minX:t,minY:n,maxX:r,maxY:i}=V(a,{minX:t,minY:n,maxX:r,maxY:i}));return{minX:t,minY:n,maxX:r,maxY:i}}e(V,`findBounds`);function Me(e){let t=e.getBlock(`root`);if(!t)return;z(t,e,0,0),B(t,e),b.debug(`getBlocks`,JSON.stringify(t,null,2));let{minX:n,minY:r,maxX:i,maxY:a}=V(t),o=a-r;return{x:n,y:r,width:i-n,height:o}}e(Me,`layout`);var H=e(async(e,t,n,r=!1,i=!1)=>{let a=t||``;typeof a==`object`&&(a=a[0]);let o=_(),c=y(o);return await s(e,a,{style:n,isTitle:r,useHtmlLabels:c,markdown:!1,isNode:i,width:1/0},o)},`createLabel`),Ne=e((e,t,n,r,i)=>{t.arrowTypeStart&&Fe(e,`start`,t.arrowTypeStart,n,r,i),t.arrowTypeEnd&&Fe(e,`end`,t.arrowTypeEnd,n,r,i)},`addEdgeMarkers`),Pe={arrow_cross:`cross`,arrow_point:`point`,arrow_barb:`barb`,arrow_circle:`circle`,aggregation:`aggregation`,extension:`extension`,composition:`composition`,dependency:`dependency`,lollipop:`lollipop`},Fe=e((e,t,n,r,i,a)=>{let o=Pe[n];if(!o){b.warn(`Unknown arrow type: ${n}`);return}let s=t===`start`?`Start`:`End`;e.attr(`marker-${t}`,`url(${r}#${i}_${a}-${o}${s})`)},`addEdgeMarker`),U={},W={},Ie=e(async(e,t)=>{let n=_(),i=y(n),a=e.insert(`g`).attr(`class`,`edgeLabel`),o=a.insert(`g`).attr(`class`,`label`),c=t.labelType===`markdown`,l=await s(e,t.label,{style:t.labelStyle,useHtmlLabels:i,addSvgBackground:c,isNode:!1,markdown:c,width:c?void 0:1/0},n);o.node().appendChild(l);let d=l.getBBox(),f=d;if(i){let e=l.children[0],t=u(l);d=e.getBoundingClientRect(),f=d,t.attr(`width`,d.width),t.attr(`height`,d.height)}else{let e=u(l).select(`text`).node();e&&typeof e.getBBox==`function`&&(f=e.getBBox())}o.attr(`transform`,r(f,i)),U[t.id]=a,t.width=d.width,t.height=d.height;let p;if(t.startLabelLeft){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),a=n.insert(`g`).attr(`class`,`inner`),o=await H(a,t.startLabelLeft,t.labelStyle);p=o;let s=o.getBBox();if(i){let e=o.children[0],t=u(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,r(s,i)),W[t.id]||(W[t.id]={}),W[t.id].startLeft=n,G(p,t.startLabelLeft)}if(t.startLabelRight){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),a=n.insert(`g`).attr(`class`,`inner`),o=await H(n,t.startLabelRight,t.labelStyle);p=o,a.node().appendChild(o);let s=o.getBBox();if(i){let e=o.children[0],t=u(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,r(s,i)),W[t.id]||(W[t.id]={}),W[t.id].startRight=n,G(p,t.startLabelRight)}if(t.endLabelLeft){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),a=n.insert(`g`).attr(`class`,`inner`),o=await H(a,t.endLabelLeft,t.labelStyle);p=o;let s=o.getBBox();if(i){let e=o.children[0],t=u(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,r(s,i)),n.node().appendChild(o),W[t.id]||(W[t.id]={}),W[t.id].endLeft=n,G(p,t.endLabelLeft)}if(t.endLabelRight){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),a=n.insert(`g`).attr(`class`,`inner`),o=await H(a,t.endLabelRight,t.labelStyle);p=o;let s=o.getBBox();if(i){let e=o.children[0],t=u(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,r(s,i)),n.node().appendChild(o),W[t.id]||(W[t.id]={}),W[t.id].endRight=n,G(p,t.endLabelRight)}return l},`insertEdgeLabel`);function G(e,t){y(_())&&e&&(e.style.width=t.length*9+`px`,e.style.height=`12px`)}e(G,`setTerminalWidth`);var Le=e((e,n)=>{b.debug(`Moving label abc88 `,e.id,e.label,U[e.id],n);let r=n.updatedPath?n.updatedPath:n.originalPath,{subGraphTitleTotalMargin:i}=g(_());if(e.label){let a=U[e.id],o=e.x,s=e.y;if(r){let i=t.calcLabelPosition(r);b.debug(`Moving label `+e.label+` from (`,o,`,`,s,`) to (`,i.x,`,`,i.y,`) abc88`),n.updatedPath&&(o=i.x,s=i.y)}a.attr(`transform`,`translate(${o}, ${s+i/2})`)}if(e.startLabelLeft){let n=W[e.id].startLeft,i=e.x,a=e.y;if(r){let n=t.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_left`,r);i=n.x,a=n.y}n.attr(`transform`,`translate(${i}, ${a})`)}if(e.startLabelRight){let n=W[e.id].startRight,i=e.x,a=e.y;if(r){let n=t.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_right`,r);i=n.x,a=n.y}n.attr(`transform`,`translate(${i}, ${a})`)}if(e.endLabelLeft){let n=W[e.id].endLeft,i=e.x,a=e.y;if(r){let n=t.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_left`,r);i=n.x,a=n.y}n.attr(`transform`,`translate(${i}, ${a})`)}if(e.endLabelRight){let n=W[e.id].endRight,i=e.x,a=e.y;if(r){let n=t.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_right`,r);i=n.x,a=n.y}n.attr(`transform`,`translate(${i}, ${a})`)}},`positionEdgeLabel`),Re=e((e,t)=>{let n=e.x,r=e.y,i=Math.abs(t.x-n),a=Math.abs(t.y-r),o=e.width/2,s=e.height/2;return i>=o||a>=s},`outsideNode`),ze=e((e,t,n)=>{b.debug(`intersection calc abc89:
|
|
129
|
+
`,`getStyles`),Oe=e((e,t,n,r)=>{t.forEach(t=>{ke[t](e,n,r)})},`insertMarkers`),ke={extension:e((e,t,n)=>{a.trace(`Making markers for `,n),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionStart`).attr(`class`,`marker extension `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,7 L18,13 V 1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionEnd`).attr(`class`,`marker extension `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 V 13 L18,7 Z`)},`extension`),composition:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionStart`).attr(`class`,`marker composition `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionEnd`).attr(`class`,`marker composition `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`composition`),aggregation:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationStart`).attr(`class`,`marker aggregation `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationEnd`).attr(`class`,`marker aggregation `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`aggregation`),dependency:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyStart`).attr(`class`,`marker dependency `+t).attr(`refX`,6).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 5,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyEnd`).attr(`class`,`marker dependency `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L14,7 L9,1 Z`)},`dependency`),lollipop:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopStart`).attr(`class`,`marker lollipop `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopEnd`).attr(`class`,`marker lollipop `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6)},`lollipop`),point:e((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-pointEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,6).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,4.5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 5 L 10 10 L 10 0 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`point`),circle:e((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-circleEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,11).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,-1).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`circle`),cross:e((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-crossEnd`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,12).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-crossStart`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,-1).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`)},`cross`),barb:e((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`strokeWidth`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`barb`)},Ae=Oe,L=h()?.block?.padding??8;function R(e,t){if(e===0||!Number.isInteger(e))throw Error(`Columns must be an integer !== 0.`);if(t<0||!Number.isInteger(t))throw Error(`Position must be a non-negative integer.`+t);return e<0?{px:t,py:0}:e===1?{px:0,py:t}:{px:t%e,py:Math.floor(t/e)}}e(R,`calculateBlockPosition`);var je=e(e=>{let t=0,n=0;for(let r of e.children){let{width:e,height:i,x:o,y:s}=r.size??{width:0,height:0,x:0,y:0};a.debug(`getMaxChildSize abc95 child:`,r.id,`width:`,e,`height:`,i,`x:`,o,`y:`,s,r.type),r.type!==`space`&&(e>t&&(t=e/(r.widthInColumns??1)),i>n&&(n=i))}return{width:t,height:n}},`getMaxChildSize`);function z(e,t,n=0,r=0){a.debug(`setBlockSizes abc95 (start)`,e.id,e?.size?.x,`block width =`,e?.size,`siblingWidth`,n),e?.size?.width||(e.size={width:n,height:r,x:0,y:0});let i=0,o=0;if(e.children?.length>0){for(let n of e.children)z(n,t);let s=je(e);i=s.width,o=s.height,a.debug(`setBlockSizes abc95 maxWidth of`,e.id,`:s children is `,i,o);for(let t of e.children)t.size&&(a.debug(`abc95 Setting size of children of ${e.id} id=${t.id} ${i} ${o} ${JSON.stringify(t.size)}`),t.size.width=i*(t.widthInColumns??1)+L*((t.widthInColumns??1)-1),t.size.height=o,t.size.x=0,t.size.y=0,a.debug(`abc95 updating size of ${e.id} children child:${t.id} maxWidth:${i} maxHeight:${o}`));for(let n of e.children)z(n,t,i,o);let c=e.columns??-1,l=0;for(let t of e.children)l+=t.widthInColumns??1;let u=e.children.length;c>0&&c<l&&(u=c);let d=Math.ceil(l/u),f=u*(i+L)+L,p=d*(o+L)+L;if(f<n){a.debug(`Detected to small sibling: abc95 ${e.id} siblingWidth ${n} siblingHeight ${r} width ${f}`),f=n,p=r;let t=(n-u*L-L)/u,s=(r-d*L-L)/d;a.debug(`Size indata abc88`,e.id,`childWidth`,t,`maxWidth`,i),a.debug(`Size indata abc88`,e.id,`childHeight`,s,`maxHeight`,o),a.debug(`Size indata abc88 xSize`,u,`padding`,L);for(let n of e.children)n.size&&(n.size.width=t,n.size.height=s,n.size.x=0,n.size.y=0)}if(a.debug(`abc95 (finale calc) ${e.id} xSize ${u} ySize ${d} columns ${c}${e.children.length} width=${Math.max(f,e.size?.width||0)}`),f<(e?.size?.width||0)){f=e?.size?.width||0;let t=c>0?Math.min(e.children.length,c):e.children.length;if(t>0){let n=(f-t*L-L)/t;a.debug(`abc95 (growing to fit) width`,e.id,f,e.size?.width,n);for(let t of e.children)t.size&&(t.size.width=n)}}e.size={width:f,height:p,x:0,y:0}}a.debug(`setBlockSizes abc94 (done)`,e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}e(z,`setBlockSizes`);function B(e,t){a.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let n=e.columns??-1;if(a.debug(`layoutBlocks columns abc95`,e.id,`=>`,n,e),e.children&&e.children.length>0){let r=e?.children[0]?.size?.width??0,i=e.children.length*r+(e.children.length-1)*L;a.debug(`widthOfChildren 88`,i,`posX`);let o=new Map;{let t=0;for(let r of e.children){if(!r.size)continue;let{py:e}=R(n,t),i=o.get(e)??0;r.size.height>i&&o.set(e,r.size.height);let a=r?.widthInColumns??1;n>0&&(a=Math.min(a,n-t%n)),t+=a}}let s=new Map;{let e=0,t=[...o.keys()].sort((e,t)=>e-t);for(let n of t)s.set(n,e),e+=(o.get(n)??0)+L}let c=0;a.debug(`abc91 block?.size?.x`,e.id,e?.size?.x);let l=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-L,u=0;for(let r of e.children){let i=e;if(!r.size)continue;let{width:d,height:f}=r.size,{px:p,py:m}=R(n,c);if(m!=u&&(u=m,l=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-L,a.debug(`New row in layout for block`,e.id,` and child `,r.id,u)),a.debug(`abc89 layout blocks (child) id: ${r.id} Pos: ${c} (px, py) ${p},${m} (${i?.size?.x},${i?.size?.y}) parent: ${i.id} width: ${d}${L}`),i.size){let e=d/2;r.size.x=l+L+e,a.debug(`abc91 layout blocks (calc) px, pyid:${r.id} startingPos=X${l} new startingPosX${r.size.x} ${e} padding=${L} width=${d} halfWidth=${e} => x:${r.size.x} y:${r.size.y} ${r.widthInColumns} (width * (child?.w || 1)) / 2 ${d*(r?.widthInColumns??1)/2}`),l=r.size.x+e;let t=s.get(m)??0,n=o.get(m)??f;r.size.y=i.size.y-i.size.height/2+t+n/2+L,a.debug(`abc88 layout blocks (calc) px, pyid:${r.id}startingPosX${l}${L}${e}=>x:${r.size.x}y:${r.size.y}${r.widthInColumns}(width * (child?.w || 1)) / 2${d*(r?.widthInColumns??1)/2}`)}r.children&&B(r,t);let h=r?.widthInColumns??1;n>0&&(h=Math.min(h,n-c%n)),c+=h,a.debug(`abc88 columnsPos`,r,c)}}a.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}e(B,`layoutBlocks`);function V(e,{minX:t,minY:n,maxX:r,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!==`root`){let{x:a,y:o,width:s,height:c}=e.size;a-s/2<t&&(t=a-s/2),o-c/2<n&&(n=o-c/2),a+s/2>r&&(r=a+s/2),o+c/2>i&&(i=o+c/2)}if(e.children)for(let a of e.children)({minX:t,minY:n,maxX:r,maxY:i}=V(a,{minX:t,minY:n,maxX:r,maxY:i}));return{minX:t,minY:n,maxX:r,maxY:i}}e(V,`findBounds`);function Me(e){let t=e.getBlock(`root`);if(!t)return;z(t,e,0,0),B(t,e),a.debug(`getBlocks`,JSON.stringify(t,null,2));let{minX:n,minY:r,maxX:i,maxY:o}=V(t),s=o-r;return{x:n,y:r,width:i-n,height:s}}e(Me,`layout`);var H=e(async(e,t,n,r=!1,i=!1)=>{let a=t||``;typeof a==`object`&&(a=a[0]);let o=h(),s=g(o);return await f(e,a,{style:n,isTitle:r,useHtmlLabels:s,markdown:!1,isNode:i,width:1/0},o)},`createLabel`),Ne=e((e,t,n,r,i)=>{t.arrowTypeStart&&Fe(e,`start`,t.arrowTypeStart,n,r,i),t.arrowTypeEnd&&Fe(e,`end`,t.arrowTypeEnd,n,r,i)},`addEdgeMarkers`),Pe={arrow_cross:`cross`,arrow_point:`point`,arrow_barb:`barb`,arrow_circle:`circle`,aggregation:`aggregation`,extension:`extension`,composition:`composition`,dependency:`dependency`,lollipop:`lollipop`},Fe=e((e,t,n,r,i,o)=>{let s=Pe[n];if(!s){a.warn(`Unknown arrow type: ${n}`);return}let c=t===`start`?`Start`:`End`;e.attr(`marker-${t}`,`url(${r}#${i}_${o}-${s}${c})`)},`addEdgeMarker`),U={},W={},Ie=e(async(e,t)=>{let n=h(),r=g(n),i=e.insert(`g`).attr(`class`,`edgeLabel`),a=i.insert(`g`).attr(`class`,`label`),o=t.labelType===`markdown`,s=await f(e,t.label,{style:t.labelStyle,useHtmlLabels:r,addSvgBackground:o,isNode:!1,markdown:o,width:o?void 0:1/0},n);a.node().appendChild(s);let c=s.getBBox(),l=c;if(r){let e=s.children[0],t=S(s);c=e.getBoundingClientRect(),l=c,t.attr(`width`,c.width),t.attr(`height`,c.height)}else{let e=S(s).select(`text`).node();e&&typeof e.getBBox==`function`&&(l=e.getBBox())}a.attr(`transform`,_(l,r)),U[t.id]=i,t.width=c.width,t.height=c.height;let u;if(t.startLabelLeft){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),i=n.insert(`g`).attr(`class`,`inner`),a=await H(i,t.startLabelLeft,t.labelStyle);u=a;let o=a.getBBox();if(r){let e=a.children[0],t=S(a);o=e.getBoundingClientRect(),t.attr(`width`,o.width),t.attr(`height`,o.height)}i.attr(`transform`,_(o,r)),W[t.id]||(W[t.id]={}),W[t.id].startLeft=n,G(u,t.startLabelLeft)}if(t.startLabelRight){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),i=n.insert(`g`).attr(`class`,`inner`),a=await H(n,t.startLabelRight,t.labelStyle);u=a,i.node().appendChild(a);let o=a.getBBox();if(r){let e=a.children[0],t=S(a);o=e.getBoundingClientRect(),t.attr(`width`,o.width),t.attr(`height`,o.height)}i.attr(`transform`,_(o,r)),W[t.id]||(W[t.id]={}),W[t.id].startRight=n,G(u,t.startLabelRight)}if(t.endLabelLeft){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),i=n.insert(`g`).attr(`class`,`inner`),a=await H(i,t.endLabelLeft,t.labelStyle);u=a;let o=a.getBBox();if(r){let e=a.children[0],t=S(a);o=e.getBoundingClientRect(),t.attr(`width`,o.width),t.attr(`height`,o.height)}i.attr(`transform`,_(o,r)),n.node().appendChild(a),W[t.id]||(W[t.id]={}),W[t.id].endLeft=n,G(u,t.endLabelLeft)}if(t.endLabelRight){let n=e.insert(`g`).attr(`class`,`edgeTerminals`),i=n.insert(`g`).attr(`class`,`inner`),a=await H(i,t.endLabelRight,t.labelStyle);u=a;let o=a.getBBox();if(r){let e=a.children[0],t=S(a);o=e.getBoundingClientRect(),t.attr(`width`,o.width),t.attr(`height`,o.height)}i.attr(`transform`,_(o,r)),n.node().appendChild(a),W[t.id]||(W[t.id]={}),W[t.id].endRight=n,G(u,t.endLabelRight)}return s},`insertEdgeLabel`);function G(e,t){g(h())&&e&&(e.style.width=t.length*9+`px`,e.style.height=`12px`)}e(G,`setTerminalWidth`);var Le=e((e,t)=>{a.debug(`Moving label abc88 `,e.id,e.label,U[e.id],t);let n=t.updatedPath?t.updatedPath:t.originalPath,{subGraphTitleTotalMargin:i}=r(h());if(e.label){let r=U[e.id],o=e.x,s=e.y;if(n){let r=u.calcLabelPosition(n);a.debug(`Moving label `+e.label+` from (`,o,`,`,s,`) to (`,r.x,`,`,r.y,`) abc88`),t.updatedPath&&(o=r.x,s=r.y)}r.attr(`transform`,`translate(${o}, ${s+i/2})`)}if(e.startLabelLeft){let t=W[e.id].startLeft,r=e.x,i=e.y;if(n){let t=u.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_left`,n);r=t.x,i=t.y}t.attr(`transform`,`translate(${r}, ${i})`)}if(e.startLabelRight){let t=W[e.id].startRight,r=e.x,i=e.y;if(n){let t=u.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_right`,n);r=t.x,i=t.y}t.attr(`transform`,`translate(${r}, ${i})`)}if(e.endLabelLeft){let t=W[e.id].endLeft,r=e.x,i=e.y;if(n){let t=u.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_left`,n);r=t.x,i=t.y}t.attr(`transform`,`translate(${r}, ${i})`)}if(e.endLabelRight){let t=W[e.id].endRight,r=e.x,i=e.y;if(n){let t=u.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_right`,n);r=t.x,i=t.y}t.attr(`transform`,`translate(${r}, ${i})`)}},`positionEdgeLabel`),Re=e((e,t)=>{let n=e.x,r=e.y,i=Math.abs(t.x-n),a=Math.abs(t.y-r),o=e.width/2,s=e.height/2;return i>=o||a>=s},`outsideNode`),ze=e((e,t,n)=>{a.debug(`intersection calc abc89:
|
|
130
130
|
outsidePoint: ${JSON.stringify(t)}
|
|
131
131
|
insidePoint : ${JSON.stringify(n)}
|
|
132
|
-
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let r=e.x,i=e.y,a=Math.abs(r-n.x),o=e.width/2,s=n.x<t.x?o-a:o+a,c=e.height/2,l=Math.abs(t.y-n.y),u=Math.abs(t.x-n.x);if(Math.abs(i-t.y)*o>Math.abs(r-t.x)*c){let e=n.y<t.y?t.y-c-i:i-c-t.y;s=u*e/l;let r={x:n.x<t.x?n.x+s:n.x-u+s,y:n.y<t.y?n.y+l-e:n.y-l+e};return s===0&&(r.x=t.x,r.y=t.y),u===0&&(r.x=t.x),l===0&&(r.y=t.y),b.debug(`abc89 topp/bott calc, Q ${l}, q ${e}, R ${u}, r ${s}`,r),r}else{s=n.x<t.x?t.x-o-r:r-o-t.x;let e=l*s/u,i=n.x<t.x?n.x+u-s:n.x-u+s,a=n.y<t.y?n.y+e:n.y-e;return b.debug(`sides calc abc89, Q ${l}, q ${e}, R ${u}, r ${s}`,{_x:i,_y:a}),s===0&&(i=t.x,a=t.y),u===0&&(i=t.x),l===0&&(a=t.y),{x:i,y:a}}},`intersection`),Be=e((e,t)=>{b.debug(`abc88 cutPathAtIntersect`,e,t);let n=[],r=e[0],i=!1;return e.forEach(e=>{if(!Re(t,e)&&!i){let a=ze(t,r,e),o=!1;n.forEach(e=>{o||=e.x===a.x&&e.y===a.y}),n.some(e=>e.x===a.x&&e.y===a.y)||n.push(a),i=!0}else r=e,i||n.push(e)}),n},`cutPathAtIntersect`),Ve=e(function(e,t,r,i,a,o,s){let l=r.points;b.debug(`abc88 InsertEdge: edge=`,r,`e=`,t);let u=!1,d=o.node(t.v);var p=o.node(t.w);p?.intersect&&d?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(d.intersect(l[0])),l.push(p.intersect(l[l.length-1]))),r.toCluster&&(b.debug(`to cluster abc88`,i[r.toCluster]),l=Be(r.points,i[r.toCluster].node),u=!0),r.fromCluster&&(b.debug(`from cluster abc88`,i[r.fromCluster]),l=Be(l.reverse(),i[r.fromCluster].node).reverse(),u=!0);let m=l.filter(e=>!Number.isNaN(e.y)),h=f;r.curve&&(a===`graph`||a===`flowchart`)&&(h=r.curve);let{x:g,y}=n(r),x=c().x(g).y(y).curve(h),S;switch(r.thickness){case`normal`:S=`edge-thickness-normal`;break;case`thick`:S=`edge-thickness-thick`;break;case`invisible`:S=`edge-thickness-thick`;break;default:S=``}switch(r.pattern){case`solid`:S+=` edge-pattern-solid`;break;case`dotted`:S+=` edge-pattern-dotted`;break;case`dashed`:S+=` edge-pattern-dashed`;break}let C=e.append(`path`).attr(`d`,x(m)).attr(`id`,r.id).attr(`class`,` `+S+(r.classes?` `+r.classes:``)).attr(`style`,r.style),w=``;(_().flowchart.arrowMarkerAbsolute||_().state.arrowMarkerAbsolute)&&(w=v(!0)),Ne(C,r,w,s,a);let T={};return u&&(T.updatedPath=l),T.originalPath=r.points,T},`insertEdge`),He=e(e=>{let t=new Set;for(let n of e)switch(n){case`x`:t.add(`right`),t.add(`left`);break;case`y`:t.add(`up`),t.add(`down`);break;default:t.add(n);break}return t},`expandAndDeduplicateDirections`),Ue=e((e,t,n)=>{let r=He(e),i=t.height+2*n.padding,a=i/2,o=t.width+2*a+n.padding,s=n.padding/2;return r.has(`right`)&&r.has(`left`)&&r.has(`up`)&&r.has(`down`)?[{x:0,y:0},{x:a,y:0},{x:o/2,y:2*s},{x:o-a,y:0},{x:o,y:0},{x:o,y:-i/3},{x:o+2*s,y:-i/2},{x:o,y:-2*i/3},{x:o,y:-i},{x:o-a,y:-i},{x:o/2,y:-i-2*s},{x:a,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*s,y:-i/2},{x:0,y:-i/3}]:r.has(`right`)&&r.has(`left`)&&r.has(`up`)?[{x:a,y:0},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`right`)&&r.has(`left`)&&r.has(`down`)?[{x:0,y:0},{x:a,y:-i},{x:o-a,y:-i},{x:o,y:0}]:r.has(`right`)&&r.has(`up`)&&r.has(`down`)?[{x:0,y:0},{x:o,y:-a},{x:o,y:-i+a},{x:0,y:-i}]:r.has(`left`)&&r.has(`up`)&&r.has(`down`)?[{x:o,y:0},{x:0,y:-a},{x:0,y:-i+a},{x:o,y:-i}]:r.has(`right`)&&r.has(`left`)?[{x:a,y:0},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`up`)&&r.has(`down`)?[{x:o/2,y:0},{x:0,y:-s},{x:a,y:-s},{x:a,y:-i+s},{x:0,y:-i+s},{x:o/2,y:-i},{x:o,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s},{x:o,y:-s}]:r.has(`right`)&&r.has(`up`)?[{x:0,y:0},{x:o,y:-a},{x:0,y:-i}]:r.has(`right`)&&r.has(`down`)?[{x:0,y:0},{x:o,y:0},{x:0,y:-i}]:r.has(`left`)&&r.has(`up`)?[{x:o,y:0},{x:0,y:-a},{x:o,y:-i}]:r.has(`left`)&&r.has(`down`)?[{x:o,y:0},{x:0,y:0},{x:o,y:-i}]:r.has(`right`)?[{x:a,y:-s},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i+s}]:r.has(`left`)?[{x:a,y:0},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`up`)?[{x:a,y:-s},{x:a,y:-i+s},{x:0,y:-i+s},{x:o/2,y:-i},{x:o,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s}]:r.has(`down`)?[{x:o/2,y:0},{x:0,y:-s},{x:a,y:-s},{x:a,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s},{x:o,y:-s}]:[{x:0,y:0}]},`getArrowPoints`);function We(e,t){return e.intersect(t)}e(We,`intersectNode`);var Ge=We;function Ke(e,t,n,r){var i=e.x,a=e.y,o=i-r.x,s=a-r.y,c=Math.sqrt(t*t*s*s+n*n*o*o),l=Math.abs(t*n*o/c);r.x<i&&(l=-l);var u=Math.abs(t*n*s/c);return r.y<a&&(u=-u),{x:i+l,y:a+u}}e(Ke,`intersectEllipse`);var qe=Ke;function Je(e,t,n){return qe(e,t,t,n)}e(Je,`intersectCircle`);var Ye=Je;function Xe(e,t,n,r){var i,a,o,s,c,l,u,d,f,p,m,h,g,_,v;if(i=t.y-e.y,o=e.x-t.x,c=t.x*e.y-e.x*t.y,f=i*n.x+o*n.y+c,p=i*r.x+o*r.y+c,!(f!==0&&p!==0&&Ze(f,p))&&(a=r.y-n.y,s=n.x-r.x,l=r.x*n.y-n.x*r.y,u=a*e.x+s*e.y+l,d=a*t.x+s*t.y+l,!(u!==0&&d!==0&&Ze(u,d))&&(m=i*s-a*o,m!==0)))return h=Math.abs(m/2),g=o*l-s*c,_=g<0?(g-h)/m:(g+h)/m,g=a*c-i*l,v=g<0?(g-h)/m:(g+h)/m,{x:_,y:v}}e(Xe,`intersectLine`);function Ze(e,t){return e*t>0}e(Ze,`sameSign`);var Qe=Xe,$e=et;function et(e,t,n){var r=e.x,i=e.y,a=[],o=1/0,s=1/0;typeof t.forEach==`function`?t.forEach(function(e){o=Math.min(o,e.x),s=Math.min(s,e.y)}):(o=Math.min(o,t.x),s=Math.min(s,t.y));for(var c=r-e.width/2-o,l=i-e.height/2-s,u=0;u<t.length;u++){var d=t[u],f=t[u<t.length-1?u+1:0],p=Qe(e,n,{x:c+d.x,y:l+d.y},{x:c+f.x,y:l+f.y});p&&a.push(p)}return a.length?(a.length>1&&a.sort(function(e,t){var r=e.x-n.x,i=e.y-n.y,a=Math.sqrt(r*r+i*i),o=t.x-n.x,s=t.y-n.y,c=Math.sqrt(o*o+s*s);return a<c?-1:a===c?0:1}),a[0]):e}e(et,`intersectPolygon`);var K={node:Ge,circle:Ye,ellipse:qe,polygon:$e,rect:e((e,t)=>{var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2,c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=a===0?0:s*i/a,l=s):(i<0&&(o=-o),c=o,l=i===0?0:o*a/i),{x:n+c,y:r+l}},`intersectRect`)},q=e(async(e,t,n,r)=>{let o=_(),c,l=t.useHtmlLabels||y(o);c=n||`node default`;let d=e.insert(`g`).attr(`class`,c).attr(`id`,t.domId||t.id),f=d.insert(`g`).attr(`class`,`label`).attr(`style`,t.labelStyle),p;p=t.labelText===void 0?``:typeof t.labelText==`string`?t.labelText:t.labelText[0];let m;m=t.labelType===`markdown`?s(f,h(a(p),o),{useHtmlLabels:l,width:t.width||o.flowchart.wrappingWidth,classes:`markdown-node-label`},o):await H(f,h(a(p),o),t.labelStyle,!1,r);let g=m.getBBox(),v=t.padding/2;if(y(o)){let e=m.children[0],t=u(m);await i(e,p),g=e.getBoundingClientRect(),t.attr(`width`,g.width),t.attr(`height`,g.height)}return l?f.attr(`transform`,`translate(`+-g.width/2+`, `+-g.height/2+`)`):f.attr(`transform`,`translate(0, `+-g.height/2+`)`),t.centerLabel&&f.attr(`transform`,`translate(`+-g.width/2+`, `+-g.height/2+`)`),f.insert(`rect`,`:first-child`),{shapeSvg:d,bbox:g,halfPadding:v,label:f}},`labelHelper`),J=e((e,t)=>{let n=t.node().getBBox();e.width=n.width,e.height=n.height},`updateNodeBounds`);function Y(e,t,n,r){return e.insert(`polygon`,`:first-child`).attr(`points`,r.map(function(e){return e.x+`,`+e.y}).join(` `)).attr(`class`,`label-container`).attr(`transform`,`translate(`+-t/2+`,`+n/2+`)`)}e(Y,`insertPolygonShape`);var tt=e(async(e,t)=>{t.useHtmlLabels||y(_())||(t.centerLabel=!0);let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,`node `+t.classes,!0);b.info(`Classes = `,t.classes);let a=n.insert(`rect`,`:first-child`);return a.attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`x`,-r.width/2-i).attr(`y`,-r.height/2-i).attr(`width`,r.width+t.padding).attr(`height`,r.height+t.padding),J(t,a),t.intersect=function(e){return K.rect(t,e)},n},`note`),nt=e(e=>e?` `+e:``,`formatClass`),X=e((e,t)=>`${t||`node default`}${nt(e.classes)} ${nt(e.class)}`,`getClassesFromNode`),rt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding+(r.height+t.padding),a=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}];b.info(`Question main (Circle)`);let o=Y(n,i,i,a);return o.attr(`style`,t.style),J(t,o),t.intersect=function(e){return b.warn(`Intersect called`),K.polygon(t,a,e)},n},`question`),it=e((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id);return n.insert(`polygon`,`:first-child`).attr(`points`,[{x:0,y:28/2},{x:28/2,y:0},{x:0,y:-28/2},{x:-28/2,y:0}].map(function(e){return e.x+`,`+e.y}).join(` `)).attr(`class`,`state-start`).attr(`r`,7).attr(`width`,28).attr(`height`,28),t.width=28,t.height=28,t.intersect=function(e){return K.circle(t,14,e)},n},`choice`),at=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.height+t.padding,a=i/4,o=r.width+2*a+t.padding,s=[{x:a,y:0},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}],c=Y(n,o,i,s);return c.attr(`style`,t.style),J(t,c),t.intersect=function(e){return K.polygon(t,s,e)},n},`hexagon`),ot=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,void 0,!0),i=r.height+2*t.padding,a=i/2,o=r.width+2*a+t.padding,s=Ue(t.directions,r,t),c=Y(n,o,i,s);return c.attr(`style`,t.style),J(t,c),t.intersect=function(e){return K.polygon(t,s,e)},n},`block_arrow`),st=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Y(n,i,a,o).attr(`style`,t.style),t.width=i+a,t.height=a,t.intersect=function(e){return K.polygon(t,o,e)},n},`rect_left_inv_arrow`),ct=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`lean_right`),lt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`lean_left`),ut=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`trapezoid`),dt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`inv_trapezoid`),ft=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`rect_right_inv_arrow`),pt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=i/2,o=a/(2.5+i/50),s=r.height+o+t.padding,c=`M 0,`+o+` a `+a+`,`+o+` 0,0,0 `+i+` 0 a `+a+`,`+o+` 0,0,0 `+-i+` 0 l 0,`+s+` a `+a+`,`+o+` 0,0,0 `+i+` 0 l 0,`+-s;return J(t,n.attr(`label-offset-y`,o).insert(`path`,`:first-child`).attr(`style`,t.style).attr(`d`,c).attr(`transform`,`translate(`+-i/2+`,`+-(s/2+o)+`)`)),t.intersect=function(e){let n=K.rect(t,e),r=n.x-t.x;if(a!=0&&(Math.abs(r)<t.width/2||Math.abs(r)==t.width/2&&Math.abs(n.y-t.y)>t.height/2-o)){let i=o*o*(1-r*r/(a*a));i!=0&&(i=Math.sqrt(i)),i=o-i,e.y-t.y>0&&(i=-i),n.y+=i}return n},n},`cylinder`),mt=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,`node `+t.classes+` `+t.class,!0),a=n.insert(`rect`,`:first-child`),o=t.positioned?t.width:r.width+t.padding,s=t.positioned?t.height:r.height+t.padding,c=t.positioned?-o/2:-r.width/2-i,l=t.positioned?-s/2:-r.height/2-i;if(a.attr(`class`,`basic label-container`).attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`x`,c).attr(`y`,l).attr(`width`,o).attr(`height`,s),t.props){let e=new Set(Object.keys(t.props));t.props.borders&&(Z(a,t.props.borders,o,s),e.delete(`borders`)),e.forEach(e=>{b.warn(`Unknown node property ${e}`)})}return J(t,a),t.intersect=function(e){return K.rect(t,e)},n},`rect`),ht=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,`node `+t.classes,!0),a=n.insert(`rect`,`:first-child`),o=t.positioned?t.width:r.width+t.padding,s=t.positioned?t.height:r.height+t.padding,c=t.positioned?-o/2:-r.width/2-i,l=t.positioned?-s/2:-r.height/2-i;if(a.attr(`class`,`basic cluster composite label-container`).attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`x`,c).attr(`y`,l).attr(`width`,o).attr(`height`,s),t.props){let e=new Set(Object.keys(t.props));t.props.borders&&(Z(a,t.props.borders,o,s),e.delete(`borders`)),e.forEach(e=>{b.warn(`Unknown node property ${e}`)})}return J(t,a),t.intersect=function(e){return K.rect(t,e)},n},`composite`),gt=e(async(e,t)=>{let{shapeSvg:n}=await q(e,t,`label`,!0);b.trace(`Classes = `,t.class);let r=n.insert(`rect`,`:first-child`);if(r.attr(`width`,0).attr(`height`,0),n.attr(`class`,`label edgeLabel`),t.props){let e=new Set(Object.keys(t.props));t.props.borders&&(Z(r,t.props.borders,0,0),e.delete(`borders`)),e.forEach(e=>{b.warn(`Unknown node property ${e}`)})}return J(t,r),t.intersect=function(e){return K.rect(t,e)},n},`labelRect`);function Z(t,n,r,i){let a=[],o=e(e=>{a.push(e,0)},`addBorder`),s=e(e=>{a.push(0,e)},`skipBorder`);n.includes(`t`)?(b.debug(`add top border`),o(r)):s(r),n.includes(`r`)?(b.debug(`add right border`),o(i)):s(i),n.includes(`b`)?(b.debug(`add bottom border`),o(r)):s(r),n.includes(`l`)?(b.debug(`add left border`),o(i)):s(i),t.attr(`stroke-dasharray`,a.join(` `))}e(Z,`applyNodePropertyBorders`);var _t=e(async(e,t)=>{let n;n=t.classes?`node `+t.classes:`node default`;let r=e.insert(`g`).attr(`class`,n).attr(`id`,t.domId||t.id),i=r.insert(`rect`,`:first-child`),a=r.insert(`line`),o=r.insert(`g`).attr(`class`,`label`),s=t.labelText.flat?t.labelText.flat():t.labelText,c=``;c=typeof s==`object`?s[0]:s,b.info(`Label text abc79`,c,s,typeof s==`object`);let l=await H(o,c,t.labelStyle,!0,!0),d={width:0,height:0};if(y(_())){let e=l.children[0],t=u(l);d=e.getBoundingClientRect(),t.attr(`width`,d.width),t.attr(`height`,d.height)}b.info(`Text 2`,s);let f=s.slice(1,s.length),p=l.getBBox(),m=await H(o,f.join?f.join(`<br/>`):f,t.labelStyle,!0,!0);if(y(_())){let e=m.children[0],t=u(m);d=e.getBoundingClientRect(),t.attr(`width`,d.width),t.attr(`height`,d.height)}let h=t.padding/2;return u(m).attr(`transform`,`translate( `+(d.width>p.width?0:(p.width-d.width)/2)+`, `+(p.height+h+5)+`)`),u(l).attr(`transform`,`translate( `+(d.width<p.width?0:-(p.width-d.width)/2)+`, 0)`),d=o.node().getBBox(),o.attr(`transform`,`translate(`+-d.width/2+`, `+(-d.height/2-h+3)+`)`),i.attr(`class`,`outer title-state`).attr(`x`,-d.width/2-h).attr(`y`,-d.height/2-h).attr(`width`,d.width+t.padding).attr(`height`,d.height+t.padding),a.attr(`class`,`divider`).attr(`x1`,-d.width/2-h).attr(`x2`,d.width/2+h).attr(`y1`,-d.height/2-h+p.height+h).attr(`y2`,-d.height/2-h+p.height+h),J(t,i),t.intersect=function(e){return K.rect(t,e)},r},`rectWithTitle`),vt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.height+t.padding,a=r.width+i/4+t.padding;return J(t,n.insert(`rect`,`:first-child`).attr(`style`,t.style).attr(`rx`,i/2).attr(`ry`,i/2).attr(`x`,-a/2).attr(`y`,-i/2).attr(`width`,a).attr(`height`,i)),t.intersect=function(e){return K.rect(t,e)},n},`stadium`),yt=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,X(t,void 0),!0),a=n.insert(`circle`,`:first-child`);return a.attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`r`,r.width/2+i).attr(`width`,r.width+t.padding).attr(`height`,r.height+t.padding),b.info(`Circle main`),J(t,a),t.intersect=function(e){return b.info(`Circle intersect`,t,r.width/2+i,e),K.circle(t,r.width/2+i,e)},n},`circle`),bt=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,X(t,void 0),!0),a=n.insert(`g`,`:first-child`),o=a.insert(`circle`),s=a.insert(`circle`);return a.attr(`class`,t.class),o.attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`r`,r.width/2+i+5).attr(`width`,r.width+t.padding+10).attr(`height`,r.height+t.padding+10),s.attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`r`,r.width/2+i).attr(`width`,r.width+t.padding).attr(`height`,r.height+t.padding),b.info(`DoubleCircle main`),J(t,o),t.intersect=function(e){return b.info(`DoubleCircle intersect`,t,r.width/2+i+5,e),K.circle(t,r.width/2+i+5,e)},n},`doublecircle`),xt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`subroutine`),St=e((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),r=n.insert(`circle`,`:first-child`);return r.attr(`class`,`state-start`).attr(`r`,7).attr(`width`,14).attr(`height`,14),J(t,r),t.intersect=function(e){return K.circle(t,7,e)},n},`start`),Ct=e((e,t,n)=>{let r=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),i=70,a=10;return n===`LR`&&(i=10,a=70),J(t,r.append(`rect`).attr(`x`,-1*i/2).attr(`y`,-1*a/2).attr(`width`,i).attr(`height`,a).attr(`class`,`fork-join`)),t.height+=t.padding/2,t.width+=t.padding/2,t.intersect=function(e){return K.rect(t,e)},r},`forkJoin`),wt={rhombus:rt,composite:ht,question:rt,rect:mt,labelRect:gt,rectWithTitle:_t,choice:it,circle:yt,doublecircle:bt,stadium:vt,hexagon:at,block_arrow:ot,rect_left_inv_arrow:st,lean_right:ct,lean_left:lt,trapezoid:ut,inv_trapezoid:dt,rect_right_inv_arrow:ft,cylinder:pt,start:St,end:e((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),r=n.insert(`circle`,`:first-child`),i=n.insert(`circle`,`:first-child`);return i.attr(`class`,`state-start`).attr(`r`,7).attr(`width`,14).attr(`height`,14),r.attr(`class`,`state-end`).attr(`r`,5).attr(`width`,10).attr(`height`,10),J(t,i),t.intersect=function(e){return K.circle(t,7,e)},n},`end`),note:tt,subroutine:xt,fork:Ct,join:Ct,class_box:e(async(e,t)=>{let n=t.padding/2,r;r=t.classes?`node `+t.classes:`node default`;let i=e.insert(`g`).attr(`class`,r).attr(`id`,t.domId||t.id),a=i.insert(`rect`,`:first-child`),o=i.insert(`line`),s=i.insert(`line`),c=0,l=4,d=i.insert(`g`).attr(`class`,`label`),f=0,p=t.classData.annotations?.[0],m=await H(d,t.classData.annotations[0]?`«`+t.classData.annotations[0]+`»`:``,t.labelStyle,!0,!0),h=m.getBBox();if(y(_())){let e=m.children[0],t=u(m);h=e.getBoundingClientRect(),t.attr(`width`,h.width),t.attr(`height`,h.height)}t.classData.annotations[0]&&(l+=h.height+4,c+=h.width);let g=t.classData.label;t.classData.type!==void 0&&t.classData.type!==``&&(y(_())?g+=`<`+t.classData.type+`>`:g+=`<`+t.classData.type+`>`);let v=await H(d,g,t.labelStyle,!0,!0);u(v).attr(`class`,`classTitle`);let b=v.getBBox();if(y(_())){let e=v.children[0],t=u(v);b=e.getBoundingClientRect(),t.attr(`width`,b.width),t.attr(`height`,b.height)}l+=b.height+4,b.width>c&&(c=b.width);let x=[];t.classData.members.forEach(async e=>{let n=e.getDisplayDetails(),r=n.displayText;y(_())&&(r=r.replace(/</g,`<`).replace(/>/g,`>`));let i=await H(d,r,n.cssStyle?n.cssStyle:t.labelStyle,!0,!0),a=i.getBBox();if(y(_())){let e=i.children[0],t=u(i);a=e.getBoundingClientRect(),t.attr(`width`,a.width),t.attr(`height`,a.height)}a.width>c&&(c=a.width),l+=a.height+4,x.push(i)}),l+=8;let S=[];if(t.classData.methods.forEach(async e=>{let n=e.getDisplayDetails(),r=n.displayText;y(_())&&(r=r.replace(/</g,`<`).replace(/>/g,`>`));let i=await H(d,r,n.cssStyle?n.cssStyle:t.labelStyle,!0,!0),a=i.getBBox();if(y(_())){let e=i.children[0],t=u(i);a=e.getBoundingClientRect(),t.attr(`width`,a.width),t.attr(`height`,a.height)}a.width>c&&(c=a.width),l+=a.height+4,S.push(i)}),l+=8,p){let e=(c-h.width)/2;u(m).attr(`transform`,`translate( `+(-1*c/2+e)+`, `+-1*l/2+`)`),f=h.height+4}let C=(c-b.width)/2;return u(v).attr(`transform`,`translate( `+(-1*c/2+C)+`, `+(-1*l/2+f)+`)`),f+=b.height+4,o.attr(`class`,`divider`).attr(`x1`,-c/2-n).attr(`x2`,c/2+n).attr(`y1`,-l/2-n+8+f).attr(`y2`,-l/2-n+8+f),f+=8,x.forEach(e=>{u(e).attr(`transform`,`translate( `+-c/2+`, `+(-1*l/2+f+8/2)+`)`);let t=e?.getBBox();f+=(t?.height??0)+4}),f+=8,s.attr(`class`,`divider`).attr(`x1`,-c/2-n).attr(`x2`,c/2+n).attr(`y1`,-l/2-n+8+f).attr(`y2`,-l/2-n+8+f),f+=8,S.forEach(e=>{u(e).attr(`transform`,`translate( `+-c/2+`, `+(-1*l/2+f)+`)`);let t=e?.getBBox();f+=(t?.height??0)+4}),a.attr(`style`,t.style).attr(`class`,`outer title-state`).attr(`x`,-c/2-n).attr(`y`,-(l/2)-n).attr(`width`,c+t.padding).attr(`height`,l+t.padding),J(t,a),t.intersect=function(e){return K.rect(t,e)},i},`class_box`)},Q={},Tt=e(async(e,t,n)=>{let r,i;if(t.link){let a;_().securityLevel===`sandbox`?a=`_top`:t.linkTarget&&(a=t.linkTarget||`_blank`),r=e.insert(`svg:a`).attr(`xlink:href`,t.link).attr(`target`,a),i=await wt[t.shape](r,t,n)}else i=await wt[t.shape](e,t,n),r=i;return t.tooltip&&i.attr(`title`,t.tooltip),t.class&&i.attr(`class`,`node default `+t.class),Q[t.id]=r,t.haveCallback&&Q[t.id].attr(`class`,Q[t.id].attr(`class`)+` clickable`),r},`insertNode`),Et=e(e=>{let t=Q[e.id];b.trace(`Transforming node`,e.diff,e,`translate(`+(e.x-e.width/2-5)+`, `+e.width/2+`)`);let n=e.diff||0;return e.clusterNode?t.attr(`transform`,`translate(`+(e.x+n-e.width/2)+`, `+(e.y-e.height/2-8)+`)`):t.attr(`transform`,`translate(`+e.x+`, `+e.y+`)`),n},`positionNode`);function Dt(e,t,n=!1){let r=e,i=`default`;(r?.classes?.length||0)>0&&(i=(r?.classes??[]).join(` `)),i+=` flowchart-label`;let a=0,o=``,s;switch(r.type){case`round`:a=5,o=`rect`;break;case`composite`:a=0,o=`composite`,s=0;break;case`square`:o=`rect`;break;case`diamond`:o=`question`;break;case`hexagon`:o=`hexagon`;break;case`block_arrow`:o=`block_arrow`;break;case`odd`:o=`rect_left_inv_arrow`;break;case`lean_right`:o=`lean_right`;break;case`lean_left`:o=`lean_left`;break;case`trapezoid`:o=`trapezoid`;break;case`inv_trapezoid`:o=`inv_trapezoid`;break;case`rect_left_inv_arrow`:o=`rect_left_inv_arrow`;break;case`circle`:o=`circle`;break;case`ellipse`:o=`ellipse`;break;case`stadium`:o=`stadium`;break;case`subroutine`:o=`subroutine`;break;case`cylinder`:o=`cylinder`;break;case`group`:o=`rect`;break;case`doublecircle`:o=`doublecircle`;break;default:o=`rect`}let c=S(r?.styles??[]),u=r.label,d=r.size??{width:0,height:0,x:0,y:0},f=t.getDiagramId();return{labelStyle:c.labelStyle,shape:o,labelText:u,rx:a,ry:a,class:i,style:c.style,id:r.id,domId:f?`${f}-${r.id}`:r.id,directions:r.directions,width:d.width,height:d.height,x:d.x,y:d.y,positioned:n,intersect:void 0,type:r.type,padding:s??l()?.block?.padding??0}}e(Dt,`getNodeFromBlock`);async function Ot(e,t,n){let r=Dt(t,n,!1);if(r.type===`group`)return;let i=await Tt(e,r,{config:l()}),a=i.node().getBBox(),o=n.getBlock(r.id);o.size={width:a.width,height:a.height,x:0,y:0,node:i},n.setBlock(o),i.remove()}e(Ot,`calculateBlockSize`);async function kt(e,t,n){let r=Dt(t,n,!0);n.getBlock(r.id).type!==`space`&&(await Tt(e,r,{config:l()}),t.intersect=r?.intersect,Et(r))}e(kt,`insertBlockPositioned`);async function $(e,t,n,r){for(let i of t)await r(e,i,n),i.children&&await $(e,i.children,n,r)}e($,`performOperations`);async function At(e,t,n){await $(e,t,n,Ot)}e(At,`calculateBlockSizes`);async function jt(e,t,n){await $(e,t,n,kt)}e(jt,`insertBlocks`);async function Mt(e,t,n,r,i){let a=new w({multigraph:!0,compound:!0});a.setGraph({rankdir:`TB`,nodesep:10,ranksep:10,marginx:8,marginy:8});for(let e of n)e.size&&a.setNode(e.id,{width:e.size.width,height:e.size.height,intersect:e.intersect});for(let n of t)if(n.start&&n.end){let t=r.getBlock(n.start),o=r.getBlock(n.end);if(t?.size&&o?.size){let r=t.size,s=o.size,c=[{x:r.x,y:r.y},{x:r.x+(s.x-r.x)/2,y:r.y+(s.y-r.y)/2},{x:s.x,y:s.y}],l=i?`${i}-${n.id}`:n.id;Ve(e,{v:n.start,w:n.end,name:l},{...n,id:l,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:c,classes:`edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1`},void 0,`block`,a,i),n.label&&(await Ie(e,{...n,label:n.label,labelStyle:`stroke: #333; stroke-width: 1.5px;fill:none;`,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:c,classes:`edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1`}),Le({...n,x:c[1].x,y:c[1].y},{originalPath:c}))}}}e(Mt,`insertEdges`);var Nt=e(function(e,t){return t.db.getClasses()},`getClasses`),Pt={parser:D,db:Ee,renderer:{draw:e(async function(e,t,n,r){let{securityLevel:i,block:a}=l(),o=r.db;o.setDiagramId(t);let s;i===`sandbox`&&(s=u(`#i`+t));let c=u(i===`sandbox`?s.nodes()[0].contentDocument.body:`body`),d=i===`sandbox`?c.select(`[id="${t}"]`):u(`[id="${t}"]`);Ae(d,[`point`,`circle`,`cross`],r.type,t);let f=o.getBlocks(),p=o.getBlocksFlat(),m=o.getEdges(),h=d.insert(`g`).attr(`class`,`block`);await At(h,f,o);let g=Me(o);if(await jt(h,f,o),await Mt(h,m,p,o,t),g){let e=g,t=Math.max(1,Math.round(.125*(e.width/e.height))),n=e.height+t+10,r=e.width+10,{useMaxWidth:i}=a;x(d,n,r,!!i),b.debug(`Here Bounds`,g,e),d.attr(`viewBox`,`${e.x-5} ${e.y-5} ${e.width+10} ${e.height+10}`)}},`draw`),getClasses:Nt},styles:De};export{Pt as diagram};
|
|
132
|
+
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let r=e.x,i=e.y,o=Math.abs(r-n.x),s=e.width/2,c=n.x<t.x?s-o:s+o,l=e.height/2,u=Math.abs(t.y-n.y),d=Math.abs(t.x-n.x);if(Math.abs(i-t.y)*s>Math.abs(r-t.x)*l){let e=n.y<t.y?t.y-l-i:i-l-t.y;c=d*e/u;let r={x:n.x<t.x?n.x+c:n.x-d+c,y:n.y<t.y?n.y+u-e:n.y-u+e};return c===0&&(r.x=t.x,r.y=t.y),d===0&&(r.x=t.x),u===0&&(r.y=t.y),a.debug(`abc89 topp/bott calc, Q ${u}, q ${e}, R ${d}, r ${c}`,r),r}else{c=n.x<t.x?t.x-s-r:r-s-t.x;let e=u*c/d,i=n.x<t.x?n.x+d-c:n.x-d+c,o=n.y<t.y?n.y+e:n.y-e;return a.debug(`sides calc abc89, Q ${u}, q ${e}, R ${d}, r ${c}`,{_x:i,_y:o}),c===0&&(i=t.x,o=t.y),d===0&&(i=t.x),u===0&&(o=t.y),{x:i,y:o}}},`intersection`),Be=e((e,t)=>{a.debug(`abc88 cutPathAtIntersect`,e,t);let n=[],r=e[0],i=!1;return e.forEach(e=>{if(!Re(t,e)&&!i){let a=ze(t,r,e),o=!1;n.forEach(e=>{o||=e.x===a.x&&e.y===a.y}),n.some(e=>e.x===a.x&&e.y===a.y)||n.push(a),i=!0}else r=e,i||n.push(e)}),n},`cutPathAtIntersect`),Ve=e(function(e,t,r,i,o,s,c){let l=r.points;a.debug(`abc88 InsertEdge: edge=`,r,`e=`,t);let u=!1,d=s.node(t.v);var f=s.node(t.w);f?.intersect&&d?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(d.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(a.debug(`to cluster abc88`,i[r.toCluster]),l=Be(r.points,i[r.toCluster].node),u=!0),r.fromCluster&&(a.debug(`from cluster abc88`,i[r.fromCluster]),l=Be(l.reverse(),i[r.fromCluster].node).reverse(),u=!0);let g=l.filter(e=>!Number.isNaN(e.y)),_=x;r.curve&&(o===`graph`||o===`flowchart`)&&(_=r.curve);let{x:v,y}=n(r),b=p().x(v).y(y).curve(_),S;switch(r.thickness){case`normal`:S=`edge-thickness-normal`;break;case`thick`:S=`edge-thickness-thick`;break;case`invisible`:S=`edge-thickness-thick`;break;default:S=``}switch(r.pattern){case`solid`:S+=` edge-pattern-solid`;break;case`dotted`:S+=` edge-pattern-dotted`;break;case`dashed`:S+=` edge-pattern-dashed`;break}let C=e.append(`path`).attr(`d`,b(g)).attr(`id`,r.id).attr(`class`,` `+S+(r.classes?` `+r.classes:``)).attr(`style`,r.style),w=``;(h().flowchart.arrowMarkerAbsolute||h().state.arrowMarkerAbsolute)&&(w=m(!0)),Ne(C,r,w,c,o);let T={};return u&&(T.updatedPath=l),T.originalPath=r.points,T},`insertEdge`),He=e(e=>{let t=new Set;for(let n of e)switch(n){case`x`:t.add(`right`),t.add(`left`);break;case`y`:t.add(`up`),t.add(`down`);break;default:t.add(n);break}return t},`expandAndDeduplicateDirections`),Ue=e((e,t,n)=>{let r=He(e),i=t.height+2*n.padding,a=i/2,o=t.width+2*a+n.padding,s=n.padding/2;return r.has(`right`)&&r.has(`left`)&&r.has(`up`)&&r.has(`down`)?[{x:0,y:0},{x:a,y:0},{x:o/2,y:2*s},{x:o-a,y:0},{x:o,y:0},{x:o,y:-i/3},{x:o+2*s,y:-i/2},{x:o,y:-2*i/3},{x:o,y:-i},{x:o-a,y:-i},{x:o/2,y:-i-2*s},{x:a,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*s,y:-i/2},{x:0,y:-i/3}]:r.has(`right`)&&r.has(`left`)&&r.has(`up`)?[{x:a,y:0},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`right`)&&r.has(`left`)&&r.has(`down`)?[{x:0,y:0},{x:a,y:-i},{x:o-a,y:-i},{x:o,y:0}]:r.has(`right`)&&r.has(`up`)&&r.has(`down`)?[{x:0,y:0},{x:o,y:-a},{x:o,y:-i+a},{x:0,y:-i}]:r.has(`left`)&&r.has(`up`)&&r.has(`down`)?[{x:o,y:0},{x:0,y:-a},{x:0,y:-i+a},{x:o,y:-i}]:r.has(`right`)&&r.has(`left`)?[{x:a,y:0},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`up`)&&r.has(`down`)?[{x:o/2,y:0},{x:0,y:-s},{x:a,y:-s},{x:a,y:-i+s},{x:0,y:-i+s},{x:o/2,y:-i},{x:o,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s},{x:o,y:-s}]:r.has(`right`)&&r.has(`up`)?[{x:0,y:0},{x:o,y:-a},{x:0,y:-i}]:r.has(`right`)&&r.has(`down`)?[{x:0,y:0},{x:o,y:0},{x:0,y:-i}]:r.has(`left`)&&r.has(`up`)?[{x:o,y:0},{x:0,y:-a},{x:o,y:-i}]:r.has(`left`)&&r.has(`down`)?[{x:o,y:0},{x:0,y:0},{x:o,y:-i}]:r.has(`right`)?[{x:a,y:-s},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i+s}]:r.has(`left`)?[{x:a,y:0},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`up`)?[{x:a,y:-s},{x:a,y:-i+s},{x:0,y:-i+s},{x:o/2,y:-i},{x:o,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s}]:r.has(`down`)?[{x:o/2,y:0},{x:0,y:-s},{x:a,y:-s},{x:a,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s},{x:o,y:-s}]:[{x:0,y:0}]},`getArrowPoints`);function We(e,t){return e.intersect(t)}e(We,`intersectNode`);var Ge=We;function Ke(e,t,n,r){var i=e.x,a=e.y,o=i-r.x,s=a-r.y,c=Math.sqrt(t*t*s*s+n*n*o*o),l=Math.abs(t*n*o/c);r.x<i&&(l=-l);var u=Math.abs(t*n*s/c);return r.y<a&&(u=-u),{x:i+l,y:a+u}}e(Ke,`intersectEllipse`);var qe=Ke;function Je(e,t,n){return qe(e,t,t,n)}e(Je,`intersectCircle`);var Ye=Je;function Xe(e,t,n,r){var i,a,o,s,c,l,u,d,f,p,m,h,g,_,v;if(i=t.y-e.y,o=e.x-t.x,c=t.x*e.y-e.x*t.y,f=i*n.x+o*n.y+c,p=i*r.x+o*r.y+c,!(f!==0&&p!==0&&Ze(f,p))&&(a=r.y-n.y,s=n.x-r.x,l=r.x*n.y-n.x*r.y,u=a*e.x+s*e.y+l,d=a*t.x+s*t.y+l,!(u!==0&&d!==0&&Ze(u,d))&&(m=i*s-a*o,m!==0)))return h=Math.abs(m/2),g=o*l-s*c,_=g<0?(g-h)/m:(g+h)/m,g=a*c-i*l,v=g<0?(g-h)/m:(g+h)/m,{x:_,y:v}}e(Xe,`intersectLine`);function Ze(e,t){return e*t>0}e(Ze,`sameSign`);var Qe=Xe,$e=et;function et(e,t,n){var r=e.x,i=e.y,a=[],o=1/0,s=1/0;typeof t.forEach==`function`?t.forEach(function(e){o=Math.min(o,e.x),s=Math.min(s,e.y)}):(o=Math.min(o,t.x),s=Math.min(s,t.y));for(var c=r-e.width/2-o,l=i-e.height/2-s,u=0;u<t.length;u++){var d=t[u],f=t[u<t.length-1?u+1:0],p=Qe(e,n,{x:c+d.x,y:l+d.y},{x:c+f.x,y:l+f.y});p&&a.push(p)}return a.length?(a.length>1&&a.sort(function(e,t){var r=e.x-n.x,i=e.y-n.y,a=Math.sqrt(r*r+i*i),o=t.x-n.x,s=t.y-n.y,c=Math.sqrt(o*o+s*s);return a<c?-1:a===c?0:1}),a[0]):e}e(et,`intersectPolygon`);var K={node:Ge,circle:Ye,ellipse:qe,polygon:$e,rect:e((e,t)=>{var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2,c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=a===0?0:s*i/a,l=s):(i<0&&(o=-o),c=o,l=i===0?0:o*a/i),{x:n+c,y:r+l}},`intersectRect`)},q=e(async(e,t,n,r)=>{let a=h(),o,c=t.useHtmlLabels||g(a);o=n||`node default`;let l=e.insert(`g`).attr(`class`,o).attr(`id`,t.domId||t.id),u=l.insert(`g`).attr(`class`,`label`).attr(`style`,t.labelStyle),d;d=t.labelText===void 0?``:typeof t.labelText==`string`?t.labelText:t.labelText[0];let p;p=t.labelType===`markdown`?f(u,v(s(d),a),{useHtmlLabels:c,width:t.width||a.flowchart.wrappingWidth,classes:`markdown-node-label`},a):await H(u,v(s(d),a),t.labelStyle,!1,r);let m=p.getBBox(),_=t.padding/2;if(g(a)){let e=p.children[0],t=S(p);await i(e,d),m=e.getBoundingClientRect(),t.attr(`width`,m.width),t.attr(`height`,m.height)}return c?u.attr(`transform`,`translate(`+-m.width/2+`, `+-m.height/2+`)`):u.attr(`transform`,`translate(0, `+-m.height/2+`)`),t.centerLabel&&u.attr(`transform`,`translate(`+-m.width/2+`, `+-m.height/2+`)`),u.insert(`rect`,`:first-child`),{shapeSvg:l,bbox:m,halfPadding:_,label:u}},`labelHelper`),J=e((e,t)=>{let n=t.node().getBBox();e.width=n.width,e.height=n.height},`updateNodeBounds`);function Y(e,t,n,r){return e.insert(`polygon`,`:first-child`).attr(`points`,r.map(function(e){return e.x+`,`+e.y}).join(` `)).attr(`class`,`label-container`).attr(`transform`,`translate(`+-t/2+`,`+n/2+`)`)}e(Y,`insertPolygonShape`);var tt=e(async(e,t)=>{t.useHtmlLabels||g(h())||(t.centerLabel=!0);let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,`node `+t.classes,!0);a.info(`Classes = `,t.classes);let o=n.insert(`rect`,`:first-child`);return o.attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`x`,-r.width/2-i).attr(`y`,-r.height/2-i).attr(`width`,r.width+t.padding).attr(`height`,r.height+t.padding),J(t,o),t.intersect=function(e){return K.rect(t,e)},n},`note`),nt=e(e=>e?` `+e:``,`formatClass`),X=e((e,t)=>`${t||`node default`}${nt(e.classes)} ${nt(e.class)}`,`getClassesFromNode`),rt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding+(r.height+t.padding),o=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}];a.info(`Question main (Circle)`);let s=Y(n,i,i,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return a.warn(`Intersect called`),K.polygon(t,o,e)},n},`question`),it=e((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id);return n.insert(`polygon`,`:first-child`).attr(`points`,[{x:0,y:28/2},{x:28/2,y:0},{x:0,y:-28/2},{x:-28/2,y:0}].map(function(e){return e.x+`,`+e.y}).join(` `)).attr(`class`,`state-start`).attr(`r`,7).attr(`width`,28).attr(`height`,28),t.width=28,t.height=28,t.intersect=function(e){return K.circle(t,14,e)},n},`choice`),at=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.height+t.padding,a=i/4,o=r.width+2*a+t.padding,s=[{x:a,y:0},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}],c=Y(n,o,i,s);return c.attr(`style`,t.style),J(t,c),t.intersect=function(e){return K.polygon(t,s,e)},n},`hexagon`),ot=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,void 0,!0),i=r.height+2*t.padding,a=i/2,o=r.width+2*a+t.padding,s=Ue(t.directions,r,t),c=Y(n,o,i,s);return c.attr(`style`,t.style),J(t,c),t.intersect=function(e){return K.polygon(t,s,e)},n},`block_arrow`),st=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Y(n,i,a,o).attr(`style`,t.style),t.width=i+a,t.height=a,t.intersect=function(e){return K.polygon(t,o,e)},n},`rect_left_inv_arrow`),ct=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`lean_right`),lt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`lean_left`),ut=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`trapezoid`),dt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`inv_trapezoid`),ft=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`rect_right_inv_arrow`),pt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=i/2,o=a/(2.5+i/50),s=r.height+o+t.padding,c=`M 0,`+o+` a `+a+`,`+o+` 0,0,0 `+i+` 0 a `+a+`,`+o+` 0,0,0 `+-i+` 0 l 0,`+s+` a `+a+`,`+o+` 0,0,0 `+i+` 0 l 0,`+-s;return J(t,n.attr(`label-offset-y`,o).insert(`path`,`:first-child`).attr(`style`,t.style).attr(`d`,c).attr(`transform`,`translate(`+-i/2+`,`+-(s/2+o)+`)`)),t.intersect=function(e){let n=K.rect(t,e),r=n.x-t.x;if(a!=0&&(Math.abs(r)<t.width/2||Math.abs(r)==t.width/2&&Math.abs(n.y-t.y)>t.height/2-o)){let i=o*o*(1-r*r/(a*a));i!=0&&(i=Math.sqrt(i)),i=o-i,e.y-t.y>0&&(i=-i),n.y+=i}return n},n},`cylinder`),mt=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,`node `+t.classes+` `+t.class,!0),o=n.insert(`rect`,`:first-child`),s=t.positioned?t.width:r.width+t.padding,c=t.positioned?t.height:r.height+t.padding,l=t.positioned?-s/2:-r.width/2-i,u=t.positioned?-c/2:-r.height/2-i;if(o.attr(`class`,`basic label-container`).attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`x`,l).attr(`y`,u).attr(`width`,s).attr(`height`,c),t.props){let e=new Set(Object.keys(t.props));t.props.borders&&(Z(o,t.props.borders,s,c),e.delete(`borders`)),e.forEach(e=>{a.warn(`Unknown node property ${e}`)})}return J(t,o),t.intersect=function(e){return K.rect(t,e)},n},`rect`),ht=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,`node `+t.classes,!0),o=n.insert(`rect`,`:first-child`),s=t.positioned?t.width:r.width+t.padding,c=t.positioned?t.height:r.height+t.padding,l=t.positioned?-s/2:-r.width/2-i,u=t.positioned?-c/2:-r.height/2-i;if(o.attr(`class`,`basic cluster composite label-container`).attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`x`,l).attr(`y`,u).attr(`width`,s).attr(`height`,c),t.props){let e=new Set(Object.keys(t.props));t.props.borders&&(Z(o,t.props.borders,s,c),e.delete(`borders`)),e.forEach(e=>{a.warn(`Unknown node property ${e}`)})}return J(t,o),t.intersect=function(e){return K.rect(t,e)},n},`composite`),gt=e(async(e,t)=>{let{shapeSvg:n}=await q(e,t,`label`,!0);a.trace(`Classes = `,t.class);let r=n.insert(`rect`,`:first-child`);if(r.attr(`width`,0).attr(`height`,0),n.attr(`class`,`label edgeLabel`),t.props){let e=new Set(Object.keys(t.props));t.props.borders&&(Z(r,t.props.borders,0,0),e.delete(`borders`)),e.forEach(e=>{a.warn(`Unknown node property ${e}`)})}return J(t,r),t.intersect=function(e){return K.rect(t,e)},n},`labelRect`);function Z(t,n,r,i){let o=[],s=e(e=>{o.push(e,0)},`addBorder`),c=e(e=>{o.push(0,e)},`skipBorder`);n.includes(`t`)?(a.debug(`add top border`),s(r)):c(r),n.includes(`r`)?(a.debug(`add right border`),s(i)):c(i),n.includes(`b`)?(a.debug(`add bottom border`),s(r)):c(r),n.includes(`l`)?(a.debug(`add left border`),s(i)):c(i),t.attr(`stroke-dasharray`,o.join(` `))}e(Z,`applyNodePropertyBorders`);var _t=e(async(e,t)=>{let n;n=t.classes?`node `+t.classes:`node default`;let r=e.insert(`g`).attr(`class`,n).attr(`id`,t.domId||t.id),i=r.insert(`rect`,`:first-child`),o=r.insert(`line`),s=r.insert(`g`).attr(`class`,`label`),c=t.labelText.flat?t.labelText.flat():t.labelText,l=``;l=typeof c==`object`?c[0]:c,a.info(`Label text abc79`,l,c,typeof c==`object`);let u=await H(s,l,t.labelStyle,!0,!0),d={width:0,height:0};if(g(h())){let e=u.children[0],t=S(u);d=e.getBoundingClientRect(),t.attr(`width`,d.width),t.attr(`height`,d.height)}a.info(`Text 2`,c);let f=c.slice(1,c.length),p=u.getBBox(),m=await H(s,f.join?f.join(`<br/>`):f,t.labelStyle,!0,!0);if(g(h())){let e=m.children[0],t=S(m);d=e.getBoundingClientRect(),t.attr(`width`,d.width),t.attr(`height`,d.height)}let _=t.padding/2;return S(m).attr(`transform`,`translate( `+(d.width>p.width?0:(p.width-d.width)/2)+`, `+(p.height+_+5)+`)`),S(u).attr(`transform`,`translate( `+(d.width<p.width?0:-(p.width-d.width)/2)+`, 0)`),d=s.node().getBBox(),s.attr(`transform`,`translate(`+-d.width/2+`, `+(-d.height/2-_+3)+`)`),i.attr(`class`,`outer title-state`).attr(`x`,-d.width/2-_).attr(`y`,-d.height/2-_).attr(`width`,d.width+t.padding).attr(`height`,d.height+t.padding),o.attr(`class`,`divider`).attr(`x1`,-d.width/2-_).attr(`x2`,d.width/2+_).attr(`y1`,-d.height/2-_+p.height+_).attr(`y2`,-d.height/2-_+p.height+_),J(t,i),t.intersect=function(e){return K.rect(t,e)},r},`rectWithTitle`),vt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.height+t.padding,a=r.width+i/4+t.padding;return J(t,n.insert(`rect`,`:first-child`).attr(`style`,t.style).attr(`rx`,i/2).attr(`ry`,i/2).attr(`x`,-a/2).attr(`y`,-i/2).attr(`width`,a).attr(`height`,i)),t.intersect=function(e){return K.rect(t,e)},n},`stadium`),yt=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,X(t,void 0),!0),o=n.insert(`circle`,`:first-child`);return o.attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`r`,r.width/2+i).attr(`width`,r.width+t.padding).attr(`height`,r.height+t.padding),a.info(`Circle main`),J(t,o),t.intersect=function(e){return a.info(`Circle intersect`,t,r.width/2+i,e),K.circle(t,r.width/2+i,e)},n},`circle`),bt=e(async(e,t)=>{let{shapeSvg:n,bbox:r,halfPadding:i}=await q(e,t,X(t,void 0),!0),o=n.insert(`g`,`:first-child`),s=o.insert(`circle`),c=o.insert(`circle`);return o.attr(`class`,t.class),s.attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`r`,r.width/2+i+5).attr(`width`,r.width+t.padding+10).attr(`height`,r.height+t.padding+10),c.attr(`style`,t.style).attr(`rx`,t.rx).attr(`ry`,t.ry).attr(`r`,r.width/2+i).attr(`width`,r.width+t.padding).attr(`height`,r.height+t.padding),a.info(`DoubleCircle main`),J(t,s),t.intersect=function(e){return a.info(`DoubleCircle intersect`,t,r.width/2+i+5,e),K.circle(t,r.width/2+i+5,e)},n},`doublecircle`),xt=e(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`subroutine`),St=e((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),r=n.insert(`circle`,`:first-child`);return r.attr(`class`,`state-start`).attr(`r`,7).attr(`width`,14).attr(`height`,14),J(t,r),t.intersect=function(e){return K.circle(t,7,e)},n},`start`),Ct=e((e,t,n)=>{let r=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),i=70,a=10;return n===`LR`&&(i=10,a=70),J(t,r.append(`rect`).attr(`x`,-1*i/2).attr(`y`,-1*a/2).attr(`width`,i).attr(`height`,a).attr(`class`,`fork-join`)),t.height+=t.padding/2,t.width+=t.padding/2,t.intersect=function(e){return K.rect(t,e)},r},`forkJoin`),wt={rhombus:rt,composite:ht,question:rt,rect:mt,labelRect:gt,rectWithTitle:_t,choice:it,circle:yt,doublecircle:bt,stadium:vt,hexagon:at,block_arrow:ot,rect_left_inv_arrow:st,lean_right:ct,lean_left:lt,trapezoid:ut,inv_trapezoid:dt,rect_right_inv_arrow:ft,cylinder:pt,start:St,end:e((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),r=n.insert(`circle`,`:first-child`),i=n.insert(`circle`,`:first-child`);return i.attr(`class`,`state-start`).attr(`r`,7).attr(`width`,14).attr(`height`,14),r.attr(`class`,`state-end`).attr(`r`,5).attr(`width`,10).attr(`height`,10),J(t,i),t.intersect=function(e){return K.circle(t,7,e)},n},`end`),note:tt,subroutine:xt,fork:Ct,join:Ct,class_box:e(async(e,t)=>{let n=t.padding/2,r;r=t.classes?`node `+t.classes:`node default`;let i=e.insert(`g`).attr(`class`,r).attr(`id`,t.domId||t.id),a=i.insert(`rect`,`:first-child`),o=i.insert(`line`),s=i.insert(`line`),c=0,l=4,u=i.insert(`g`).attr(`class`,`label`),d=0,f=t.classData.annotations?.[0],p=await H(u,t.classData.annotations[0]?`«`+t.classData.annotations[0]+`»`:``,t.labelStyle,!0,!0),m=p.getBBox();if(g(h())){let e=p.children[0],t=S(p);m=e.getBoundingClientRect(),t.attr(`width`,m.width),t.attr(`height`,m.height)}t.classData.annotations[0]&&(l+=m.height+4,c+=m.width);let _=t.classData.label;t.classData.type!==void 0&&t.classData.type!==``&&(g(h())?_+=`<`+t.classData.type+`>`:_+=`<`+t.classData.type+`>`);let v=await H(u,_,t.labelStyle,!0,!0);S(v).attr(`class`,`classTitle`);let y=v.getBBox();if(g(h())){let e=v.children[0],t=S(v);y=e.getBoundingClientRect(),t.attr(`width`,y.width),t.attr(`height`,y.height)}l+=y.height+4,y.width>c&&(c=y.width);let b=[];t.classData.members.forEach(async e=>{let n=e.getDisplayDetails(),r=n.displayText;g(h())&&(r=r.replace(/</g,`<`).replace(/>/g,`>`));let i=await H(u,r,n.cssStyle?n.cssStyle:t.labelStyle,!0,!0),a=i.getBBox();if(g(h())){let e=i.children[0],t=S(i);a=e.getBoundingClientRect(),t.attr(`width`,a.width),t.attr(`height`,a.height)}a.width>c&&(c=a.width),l+=a.height+4,b.push(i)}),l+=8;let x=[];if(t.classData.methods.forEach(async e=>{let n=e.getDisplayDetails(),r=n.displayText;g(h())&&(r=r.replace(/</g,`<`).replace(/>/g,`>`));let i=await H(u,r,n.cssStyle?n.cssStyle:t.labelStyle,!0,!0),a=i.getBBox();if(g(h())){let e=i.children[0],t=S(i);a=e.getBoundingClientRect(),t.attr(`width`,a.width),t.attr(`height`,a.height)}a.width>c&&(c=a.width),l+=a.height+4,x.push(i)}),l+=8,f){let e=(c-m.width)/2;S(p).attr(`transform`,`translate( `+(-1*c/2+e)+`, `+-1*l/2+`)`),d=m.height+4}let C=(c-y.width)/2;return S(v).attr(`transform`,`translate( `+(-1*c/2+C)+`, `+(-1*l/2+d)+`)`),d+=y.height+4,o.attr(`class`,`divider`).attr(`x1`,-c/2-n).attr(`x2`,c/2+n).attr(`y1`,-l/2-n+8+d).attr(`y2`,-l/2-n+8+d),d+=8,b.forEach(e=>{S(e).attr(`transform`,`translate( `+-c/2+`, `+(-1*l/2+d+8/2)+`)`);let t=e?.getBBox();d+=(t?.height??0)+4}),d+=8,s.attr(`class`,`divider`).attr(`x1`,-c/2-n).attr(`x2`,c/2+n).attr(`y1`,-l/2-n+8+d).attr(`y2`,-l/2-n+8+d),d+=8,x.forEach(e=>{S(e).attr(`transform`,`translate( `+-c/2+`, `+(-1*l/2+d)+`)`);let t=e?.getBBox();d+=(t?.height??0)+4}),a.attr(`style`,t.style).attr(`class`,`outer title-state`).attr(`x`,-c/2-n).attr(`y`,-(l/2)-n).attr(`width`,c+t.padding).attr(`height`,l+t.padding),J(t,a),t.intersect=function(e){return K.rect(t,e)},i},`class_box`)},Q={},Tt=e(async(e,t,n)=>{let r,i;if(t.link){let a;h().securityLevel===`sandbox`?a=`_top`:t.linkTarget&&(a=t.linkTarget||`_blank`),r=e.insert(`svg:a`).attr(`xlink:href`,t.link).attr(`target`,a),i=await wt[t.shape](r,t,n)}else i=await wt[t.shape](e,t,n),r=i;return t.tooltip&&i.attr(`title`,t.tooltip),t.class&&i.attr(`class`,`node default `+t.class),Q[t.id]=r,t.haveCallback&&Q[t.id].attr(`class`,Q[t.id].attr(`class`)+` clickable`),r},`insertNode`),Et=e(e=>{let t=Q[e.id];a.trace(`Transforming node`,e.diff,e,`translate(`+(e.x-e.width/2-5)+`, `+e.width/2+`)`);let n=e.diff||0;return e.clusterNode?t.attr(`transform`,`translate(`+(e.x+n-e.width/2)+`, `+(e.y-e.height/2-8)+`)`):t.attr(`transform`,`translate(`+e.x+`, `+e.y+`)`),n},`positionNode`);function Dt(e,t,n=!1){let r=e,i=`default`;(r?.classes?.length||0)>0&&(i=(r?.classes??[]).join(` `)),i+=` flowchart-label`;let a=0,o=``,s;switch(r.type){case`round`:a=5,o=`rect`;break;case`composite`:a=0,o=`composite`,s=0;break;case`square`:o=`rect`;break;case`diamond`:o=`question`;break;case`hexagon`:o=`hexagon`;break;case`block_arrow`:o=`block_arrow`;break;case`odd`:o=`rect_left_inv_arrow`;break;case`lean_right`:o=`lean_right`;break;case`lean_left`:o=`lean_left`;break;case`trapezoid`:o=`trapezoid`;break;case`inv_trapezoid`:o=`inv_trapezoid`;break;case`rect_left_inv_arrow`:o=`rect_left_inv_arrow`;break;case`circle`:o=`circle`;break;case`ellipse`:o=`ellipse`;break;case`stadium`:o=`stadium`;break;case`subroutine`:o=`subroutine`;break;case`cylinder`:o=`cylinder`;break;case`group`:o=`rect`;break;case`doublecircle`:o=`doublecircle`;break;default:o=`rect`}let c=l(r?.styles??[]),u=r.label,f=r.size??{width:0,height:0,x:0,y:0},p=t.getDiagramId();return{labelStyle:c.labelStyle,shape:o,labelText:u,rx:a,ry:a,class:i,style:c.style,id:r.id,domId:p?`${p}-${r.id}`:r.id,directions:r.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:n,intersect:void 0,type:r.type,padding:s??d()?.block?.padding??0}}e(Dt,`getNodeFromBlock`);async function Ot(e,t,n){let r=Dt(t,n,!1);if(r.type===`group`)return;let i=await Tt(e,r,{config:d()}),a=i.node().getBBox(),o=n.getBlock(r.id);o.size={width:a.width,height:a.height,x:0,y:0,node:i},n.setBlock(o),i.remove()}e(Ot,`calculateBlockSize`);async function kt(e,t,n){let r=Dt(t,n,!0);n.getBlock(r.id).type!==`space`&&(await Tt(e,r,{config:d()}),t.intersect=r?.intersect,Et(r))}e(kt,`insertBlockPositioned`);async function $(e,t,n,r){for(let i of t)await r(e,i,n),i.children&&await $(e,i.children,n,r)}e($,`performOperations`);async function At(e,t,n){await $(e,t,n,Ot)}e(At,`calculateBlockSizes`);async function jt(e,t,n){await $(e,t,n,kt)}e(jt,`insertBlocks`);async function Mt(e,t,n,r,i){let a=new w({multigraph:!0,compound:!0});a.setGraph({rankdir:`TB`,nodesep:10,ranksep:10,marginx:8,marginy:8});for(let e of n)e.size&&a.setNode(e.id,{width:e.size.width,height:e.size.height,intersect:e.intersect});for(let n of t)if(n.start&&n.end){let t=r.getBlock(n.start),o=r.getBlock(n.end);if(t?.size&&o?.size){let r=t.size,s=o.size,c=[{x:r.x,y:r.y},{x:r.x+(s.x-r.x)/2,y:r.y+(s.y-r.y)/2},{x:s.x,y:s.y}],l=i?`${i}-${n.id}`:n.id;Ve(e,{v:n.start,w:n.end,name:l},{...n,id:l,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:c,classes:`edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1`},void 0,`block`,a,i),n.label&&(await Ie(e,{...n,label:n.label,labelStyle:`stroke: #333; stroke-width: 1.5px;fill:none;`,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:c,classes:`edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1`}),Le({...n,x:c[1].x,y:c[1].y},{originalPath:c}))}}}e(Mt,`insertEdges`);var Nt=e(function(e,t){return t.db.getClasses()},`getClasses`),Pt={parser:D,db:Ee,renderer:{draw:e(async function(e,n,r,i){let{securityLevel:o,block:s}=d(),c=i.db;c.setDiagramId(n);let l;o===`sandbox`&&(l=S(`#i`+n));let u=S(o===`sandbox`?l.nodes()[0].contentDocument.body:`body`),f=o===`sandbox`?u.select(`[id="${n}"]`):S(`[id="${n}"]`);Ae(f,[`point`,`circle`,`cross`],i.type,n);let p=c.getBlocks(),m=c.getBlocksFlat(),h=c.getEdges(),g=f.insert(`g`).attr(`class`,`block`);await At(g,p,c);let _=Me(c);if(await jt(g,p,c),await Mt(g,h,m,c,n),_){let e=_,n=Math.max(1,Math.round(.125*(e.width/e.height))),r=e.height+n+10,i=e.width+10,{useMaxWidth:o}=s;t(f,r,i,!!o),a.debug(`Here Bounds`,_,e),f.attr(`viewBox`,`${e.x-5} ${e.y-5} ${e.width+10} ${e.height+10}`)}},`draw`),getClasses:Nt},styles:De};export{Pt as diagram};
|