@mir-code/specs-platform 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +460 -0
- package/assets/specs-usage-statusline.sh +77 -0
- package/assets/template/.agents/README.md +123 -0
- package/assets/template/.agents/RUNTIME.md +64 -0
- package/assets/template/.agents/agents/discovery-agent.md +15 -0
- package/assets/template/.agents/agents/drawing-agent.md +15 -0
- package/assets/template/.agents/agents/feature-runner.md +15 -0
- package/assets/template/.agents/agents/refinement-runner.md +15 -0
- package/assets/template/.agents/agents/refinement.md +15 -0
- package/assets/template/.agents/project.md +158 -0
- package/assets/template/.agents/scripts/check-commit.mjs +70 -0
- package/assets/template/.agents/scripts/validate-spec.mjs +345 -0
- package/assets/template/.agents/skills/discovery-agent/SKILL.md +80 -0
- package/assets/template/.agents/skills/discovery-writing/SKILL.md +76 -0
- package/assets/template/.agents/skills/drawing-agent/SKILL.md +85 -0
- package/assets/template/.agents/skills/drawing-writing/SKILL.md +100 -0
- package/assets/template/.agents/skills/execution-protocol/SKILL.md +110 -0
- package/assets/template/.agents/skills/execution-protocol/references/git.md +104 -0
- package/assets/template/.agents/skills/execution-protocol/references/relatorio-halt.md +103 -0
- package/assets/template/.agents/skills/feature-runner/SKILL.md +81 -0
- package/assets/template/.agents/skills/feature-runner/references/divergencias.md +38 -0
- package/assets/template/.agents/skills/feature-runner/references/implementar.md +80 -0
- package/assets/template/.agents/skills/feature-runner/references/localizar.md +46 -0
- package/assets/template/.agents/skills/mermaid-diagramming/SKILL.md +198 -0
- package/assets/template/.agents/skills/prototype-check/SKILL.md +90 -0
- package/assets/template/.agents/skills/refinement/SKILL.md +136 -0
- package/assets/template/.agents/skills/refinement/references/estrutura.md +27 -0
- package/assets/template/.agents/skills/refinement/references/mapear-terreno.md +46 -0
- package/assets/template/.agents/skills/refinement/references/validar-renderizacao.md +29 -0
- package/assets/template/.agents/skills/refinement-runner/SKILL.md +145 -0
- package/assets/template/.agents/skills/requirements-closure/SKILL.md +236 -0
- package/assets/template/.agents/skills/spec-writing/SKILL.md +258 -0
- package/assets/template/.agents/skills/test-strategy/SKILL.md +176 -0
- package/assets/template/.agents/skills/verification/SKILL.md +143 -0
- package/assets/template/.specs/config.json +39 -0
- package/assets/template/.specs/discoveries/meta.json +4 -0
- package/assets/template/.specs/drawings/meta.json +4 -0
- package/assets/template/.specs/specs/_templates/task-backend.md +75 -0
- package/assets/template/.specs/specs/_templates/task-frontend.md +89 -0
- package/assets/template/.specs/specs/_templates/task-integracao.md +72 -0
- package/assets/template/.specs/specs/exemplo/feat-exemplo-primeira-task.md +82 -0
- package/assets/template/.specs/specs/exemplo/meta.json +8 -0
- package/assets/template/.specs/specs/exemplo/overview.md +45 -0
- package/assets/template/.specs/specs/meta.json +4 -0
- package/assets/template/SPECS.md +213 -0
- package/dist/chunk-SOOETS3N.js +3490 -0
- package/dist/chunk-SOOETS3N.js.map +1 -0
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/assets/abnfDiagram-VCTEODGH-DYXtkHNq.js +2 -0
- package/dist/ui/assets/abnfDiagram-VCTEODGH-DYXtkHNq.js.map +1 -0
- package/dist/ui/assets/arc-CJs0gz4E.js +2 -0
- package/dist/ui/assets/arc-CJs0gz4E.js.map +1 -0
- package/dist/ui/assets/architectureDiagram-5GKGNRK7-Br7ZNRfe.js +37 -0
- package/dist/ui/assets/architectureDiagram-5GKGNRK7-Br7ZNRfe.js.map +1 -0
- package/dist/ui/assets/blockDiagram-I7D4REHJ-172V7R5o.js +130 -0
- package/dist/ui/assets/blockDiagram-I7D4REHJ-172V7R5o.js.map +1 -0
- package/dist/ui/assets/c4Diagram-7LVT6UL2-B4AYFhRs.js +39 -0
- package/dist/ui/assets/c4Diagram-7LVT6UL2-B4AYFhRs.js.map +1 -0
- package/dist/ui/assets/channel-BfWO3B41.js +2 -0
- package/dist/ui/assets/channel-BfWO3B41.js.map +1 -0
- package/dist/ui/assets/chunk-2Q5K7J3B-B-u7gtZN.js +2 -0
- package/dist/ui/assets/chunk-2Q5K7J3B-B-u7gtZN.js.map +1 -0
- package/dist/ui/assets/chunk-5VM5RSS4-CjFDq_cq.js +16 -0
- package/dist/ui/assets/chunk-5VM5RSS4-CjFDq_cq.js.map +1 -0
- package/dist/ui/assets/chunk-F27PBJKO-BDYeB7B8.js +2 -0
- package/dist/ui/assets/chunk-F27PBJKO-BDYeB7B8.js.map +1 -0
- package/dist/ui/assets/chunk-IMKFNOWR-y2kXPnac.js +232 -0
- package/dist/ui/assets/chunk-IMKFNOWR-y2kXPnac.js.map +1 -0
- package/dist/ui/assets/chunk-JWPE2WC7-DyCryvDN.js +2 -0
- package/dist/ui/assets/chunk-JWPE2WC7-DyCryvDN.js.map +1 -0
- package/dist/ui/assets/chunk-POPQ4Y6H-DeaxKHvR.js +2 -0
- package/dist/ui/assets/chunk-POPQ4Y6H-DeaxKHvR.js.map +1 -0
- package/dist/ui/assets/chunk-SVP7TREG-CmcZEncL.js +89 -0
- package/dist/ui/assets/chunk-SVP7TREG-CmcZEncL.js.map +1 -0
- package/dist/ui/assets/chunk-TICWLB2K-Df1RRXWR.js +207 -0
- package/dist/ui/assets/chunk-TICWLB2K-Df1RRXWR.js.map +1 -0
- package/dist/ui/assets/chunk-XXDRQBXY-ClTat8Q0.js +2 -0
- package/dist/ui/assets/chunk-XXDRQBXY-ClTat8Q0.js.map +1 -0
- package/dist/ui/assets/classDiagram-ZZMXUADV-YTUiu8rF.js +2 -0
- package/dist/ui/assets/classDiagram-ZZMXUADV-YTUiu8rF.js.map +1 -0
- package/dist/ui/assets/classDiagram-v2-VYDZK3BY-YTUiu8rF.js +2 -0
- package/dist/ui/assets/classDiagram-v2-VYDZK3BY-YTUiu8rF.js.map +1 -0
- package/dist/ui/assets/cose-bilkent-JH36ORCC-QvqQLoy5.js +2 -0
- package/dist/ui/assets/cose-bilkent-JH36ORCC-QvqQLoy5.js.map +1 -0
- package/dist/ui/assets/cynefin-OW5HDTMX-BY6w3pAQ.js +179 -0
- package/dist/ui/assets/cynefin-OW5HDTMX-BY6w3pAQ.js.map +1 -0
- package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-luPP4ha1.js +63 -0
- package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-luPP4ha1.js.map +1 -0
- package/dist/ui/assets/cytoscape.esm-Ix0LnXOy.js +332 -0
- package/dist/ui/assets/cytoscape.esm-Ix0LnXOy.js.map +1 -0
- package/dist/ui/assets/dagre-GXQ25YYZ-DhpPwKqq.js +5 -0
- package/dist/ui/assets/dagre-GXQ25YYZ-DhpPwKqq.js.map +1 -0
- package/dist/ui/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/dist/ui/assets/defaultLocale-DX6XiGOO.js.map +1 -0
- package/dist/ui/assets/diagram-S7CK7UJ4-B9wvQM0w.js +31 -0
- package/dist/ui/assets/diagram-S7CK7UJ4-B9wvQM0w.js.map +1 -0
- package/dist/ui/assets/diagram-UQ7AKVKN-gm1M_iZS.js +42 -0
- package/dist/ui/assets/diagram-UQ7AKVKN-gm1M_iZS.js.map +1 -0
- package/dist/ui/assets/diagram-VSXAHHWV-DkEB6nEx.js +4 -0
- package/dist/ui/assets/diagram-VSXAHHWV-DkEB6nEx.js.map +1 -0
- package/dist/ui/assets/diagram-VX7I27RA-Ce2F1bHi.js +25 -0
- package/dist/ui/assets/diagram-VX7I27RA-Ce2F1bHi.js.map +1 -0
- package/dist/ui/assets/diagram-Z3DM3KII-B5ArCh-E.js +25 -0
- package/dist/ui/assets/diagram-Z3DM3KII-B5ArCh-E.js.map +1 -0
- package/dist/ui/assets/ebnfDiagram-PWID7BFC-DgBM80MD.js +2 -0
- package/dist/ui/assets/ebnfDiagram-PWID7BFC-DgBM80MD.js.map +1 -0
- package/dist/ui/assets/erDiagram-RLTQ6QDP-C161af8G.js +100 -0
- package/dist/ui/assets/erDiagram-RLTQ6QDP-C161af8G.js.map +1 -0
- package/dist/ui/assets/flowDiagram-HODETNUW-B8N_WyW5.js +169 -0
- package/dist/ui/assets/flowDiagram-HODETNUW-B8N_WyW5.js.map +1 -0
- package/dist/ui/assets/ganttDiagram-EL5Y4UJY-CD2RJpTb.js +293 -0
- package/dist/ui/assets/ganttDiagram-EL5Y4UJY-CD2RJpTb.js.map +1 -0
- package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-BrDAzeFT.js +107 -0
- package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-BrDAzeFT.js.map +1 -0
- package/dist/ui/assets/index-CVWRdirI.css +32 -0
- package/dist/ui/assets/index-DoR97Zqf.js +408 -0
- package/dist/ui/assets/index-DoR97Zqf.js.map +1 -0
- package/dist/ui/assets/infoDiagram-27XIBGKW-HYGaMzrA.js +3 -0
- package/dist/ui/assets/infoDiagram-27XIBGKW-HYGaMzrA.js.map +1 -0
- package/dist/ui/assets/init-Gi6I4Gst.js +2 -0
- package/dist/ui/assets/init-Gi6I4Gst.js.map +1 -0
- package/dist/ui/assets/ishikawaDiagram-5VMMS53U-DXTLlBiw.js +71 -0
- package/dist/ui/assets/ishikawaDiagram-5VMMS53U-DXTLlBiw.js.map +1 -0
- package/dist/ui/assets/journeyDiagram-3NMN7TZE-DSJ8QN1S.js +140 -0
- package/dist/ui/assets/journeyDiagram-3NMN7TZE-DSJ8QN1S.js.map +1 -0
- package/dist/ui/assets/kanban-definition-UXKFOSKX-Bm5iz0k3.js +90 -0
- package/dist/ui/assets/kanban-definition-UXKFOSKX-Bm5iz0k3.js.map +1 -0
- package/dist/ui/assets/katex-C5jXJg4s.js +258 -0
- package/dist/ui/assets/katex-C5jXJg4s.js.map +1 -0
- package/dist/ui/assets/layout-DfJgW6eG.js +2 -0
- package/dist/ui/assets/layout-DfJgW6eG.js.map +1 -0
- package/dist/ui/assets/linear-B_kyVotV.js +2 -0
- package/dist/ui/assets/linear-B_kyVotV.js.map +1 -0
- package/dist/ui/assets/mermaid-block-CUJSBQFx.js +2 -0
- package/dist/ui/assets/mermaid-block-CUJSBQFx.js.map +1 -0
- package/dist/ui/assets/mermaid.core-ExHG1WnM.js +313 -0
- package/dist/ui/assets/mermaid.core-ExHG1WnM.js.map +1 -0
- package/dist/ui/assets/mindmap-definition-YA3MSWOX-B1Hh9dQz.js +97 -0
- package/dist/ui/assets/mindmap-definition-YA3MSWOX-B1Hh9dQz.js.map +1 -0
- package/dist/ui/assets/ordinal-Cboi1Yqb.js +2 -0
- package/dist/ui/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/dist/ui/assets/pegDiagram-XKGWAZYB-x242yOd7.js +2 -0
- package/dist/ui/assets/pegDiagram-XKGWAZYB-x242yOd7.js.map +1 -0
- package/dist/ui/assets/pieDiagram-E7YTZNPT-Dl-YP7Xs.js +40 -0
- package/dist/ui/assets/pieDiagram-E7YTZNPT-Dl-YP7Xs.js.map +1 -0
- package/dist/ui/assets/quadrantDiagram-AXDQQJYC-CMJ920V9.js +8 -0
- package/dist/ui/assets/quadrantDiagram-AXDQQJYC-CMJ920V9.js.map +1 -0
- package/dist/ui/assets/railroadDiagram-O6MQD6OU-1kV83y5t.js +2 -0
- package/dist/ui/assets/railroadDiagram-O6MQD6OU-1kV83y5t.js.map +1 -0
- package/dist/ui/assets/requirementDiagram-BXWQKSXE-BFd8ZZD3.js +85 -0
- package/dist/ui/assets/requirementDiagram-BXWQKSXE-BFd8ZZD3.js.map +1 -0
- package/dist/ui/assets/sankeyDiagram-P5KCCOFB-C0LZevnf.js +41 -0
- package/dist/ui/assets/sankeyDiagram-P5KCCOFB-C0LZevnf.js.map +1 -0
- package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-BasIXLJ0.js +163 -0
- package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-BasIXLJ0.js.map +1 -0
- package/dist/ui/assets/sizeCapture-INFHLROL-qAtnqB7N.js +2 -0
- package/dist/ui/assets/sizeCapture-INFHLROL-qAtnqB7N.js.map +1 -0
- package/dist/ui/assets/stateDiagram-D77RDMKH-CllWDWZP.js +2 -0
- package/dist/ui/assets/stateDiagram-D77RDMKH-CllWDWZP.js.map +1 -0
- package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-Dwntf8Tk.js +2 -0
- package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-Dwntf8Tk.js.map +1 -0
- package/dist/ui/assets/swimlanes-42K2YHIH-Bgt0KslH.js +2 -0
- package/dist/ui/assets/swimlanes-42K2YHIH-Bgt0KslH.js.map +1 -0
- package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-C9abicdw.js +9 -0
- package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-C9abicdw.js.map +1 -0
- package/dist/ui/assets/timeline-definition-24CTP7MA-BYO2h9Qr.js +121 -0
- package/dist/ui/assets/timeline-definition-24CTP7MA-BYO2h9Qr.js.map +1 -0
- package/dist/ui/assets/vennDiagram-4TSXK5OY-ZzyiwIUi.js +35 -0
- package/dist/ui/assets/vennDiagram-4TSXK5OY-ZzyiwIUi.js.map +1 -0
- package/dist/ui/assets/wardleyDiagram-VM6X3IG4-DfjKCK0N.js +79 -0
- package/dist/ui/assets/wardleyDiagram-VM6X3IG4-DfjKCK0N.js.map +1 -0
- package/dist/ui/assets/xychartDiagram-S5SC5T6Z-Z7daOfmM.js +8 -0
- package/dist/ui/assets/xychartDiagram-S5SC5T6Z-Z7daOfmM.js.map +1 -0
- package/dist/ui/favicon.svg +6 -0
- package/dist/ui/index.html +21 -0
- package/package.json +70 -0
- package/scripts/copy-ui.mjs +21 -0
- package/scripts/fix-node-pty-perms.cjs +73 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{c as r,s as e}from"./flowDiagram-HODETNUW-B8N_WyW5.js";import{_ as a}from"./mermaid.core-ExHG1WnM.js";import"./chunk-5VM5RSS4-CjFDq_cq.js";import"./chunk-XXDRQBXY-ClTat8Q0.js";import"./chunk-POPQ4Y6H-DeaxKHvR.js";import"./chunk-F27PBJKO-BDYeB7B8.js";import"./channel-BfWO3B41.js";import"./index-DoR97Zqf.js";var o=a(t=>`${e(t)}
|
|
2
|
+
.swimlane.cluster rect {
|
|
3
|
+
stroke: ${t.clusterBorder} !important;
|
|
4
|
+
}
|
|
5
|
+
[data-look="neo"].cluster rect {
|
|
6
|
+
filter: none;
|
|
7
|
+
}
|
|
8
|
+
`,"getStyles"),s=o,n=r({defaultLayout:"swimlane",styles:s});export{n as diagram};
|
|
9
|
+
//# sourceMappingURL=swimlanesDiagram-VR7AAH4N-C9abicdw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swimlanesDiagram-VR7AAH4N-C9abicdw.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/swimlanesDiagram-VR7AAH4N.mjs"],"sourcesContent":["import {\n createFlowDiagram,\n styles_default\n} from \"./chunk-SHT3W25Y.mjs\";\nimport \"./chunk-5VM5RSS4.mjs\";\nimport \"./chunk-XXDRQBXY.mjs\";\nimport \"./chunk-POPQ4Y6H.mjs\";\nimport \"./chunk-LNGE3PJU.mjs\";\nimport \"./chunk-TLUHSLCS.mjs\";\nimport \"./chunk-F27PBJKO.mjs\";\nimport \"./chunk-L3NEJ4N5.mjs\";\nimport \"./chunk-OSK3NFVY.mjs\";\nimport \"./chunk-GVQU2GXP.mjs\";\nimport \"./chunk-4HAMMTFA.mjs\";\nimport \"./chunk-P2QGCYS3.mjs\";\nimport \"./chunk-GMAD6QVW.mjs\";\nimport \"./chunk-PWAF6VOD.mjs\";\nimport \"./chunk-75Z2AOVW.mjs\";\nimport \"./chunk-DU6HZSFF.mjs\";\nimport \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/swimlanes/styles.ts\nvar getStyles = /* @__PURE__ */ __name((options) => `${styles_default(options)}\n .swimlane.cluster rect {\n stroke: ${options.clusterBorder} !important;\n }\n [data-look=\"neo\"].cluster rect {\n filter: none;\n }\n`, \"getStyles\");\nvar styles_default2 = getStyles;\n\n// src/diagrams/swimlanes/swimlanesDiagram.ts\nvar diagram = createFlowDiagram({ defaultLayout: \"swimlane\", styles: styles_default2 });\nexport {\n diagram\n};\n"],"names":["getStyles","__name","options","styles_default","styles_default2","diagram","createFlowDiagram"],"mappings":"2TAyBA,IAAIA,EAA4BC,EAAQC,GAAY,GAAGC,EAAeD,CAAO,CAAC;AAAA;AAAA,cAEhEA,EAAQ,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhC,WAAW,EACVE,EAAkBJ,EAGlBK,EAAUC,EAAkB,CAAE,cAAe,WAAY,OAAQF,CAAe,CAAE","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import{_ as l,y as pt,V as Wt,W as Pt,X as Bt,c as gt,l as S,D as Vt,L as Ft,Y as ft,j as J,t as zt,$ as Gt,p as Ot}from"./mermaid.core-ExHG1WnM.js";import{d as ot}from"./arc-CJs0gz4E.js";import"./index-DoR97Zqf.js";var tt=(function(){var e=l(function(k,s,d,h){for(d=d||{},h=k.length;h--;d[k[h]]=s);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],o=[1,15],c=[1,16],a=[1,19],p=[1,20],y={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:l(function(s,d,h,g,m,u,w){var v=u.length-1;switch(m){case 1:return u[v-1];case 3:g.setDirection("LR");break;case 4:g.setDirection("TD");break;case 5:this.$=[];break;case 6:u[v-1].push(u[v]),this.$=u[v-1];break;case 7:case 8:this.$=u[v];break;case 9:case 10:this.$=[];break;case 11:g.getCommonDb().setDiagramTitle(u[v].substr(6)),this.$=u[v].substr(6);break;case 12:this.$=u[v].trim(),g.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[v].trim(),g.getCommonDb().setAccDescription(this.$);break;case 15:g.addSection(u[v].substr(8)),this.$=u[v].substr(8);break;case 18:g.addTask(u[v],0,""),this.$=u[v];break;case 19:g.addEvent(u[v].substr(2)),this.$=u[v];break}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(t,[2,5],{5:6}),e(t,[2,2]),e(t,[2,3]),e(t,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:n,15:i,17:r,19:o,20:c,21:17,22:18,23:a,24:p},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:n,15:i,17:r,19:o,20:c,21:17,22:18,23:a,24:p},e(t,[2,8]),e(t,[2,9]),e(t,[2,11]),{16:[1,22]},{18:[1,23]},e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,7]),e(t,[2,12]),e(t,[2,13])],defaultActions:{},parseError:l(function(s,d){if(d.recoverable)this.trace(s);else{var h=new Error(s);throw h.hash=d,h}},"parseError"),parse:l(function(s){var d=this,h=[0],g=[],m=[null],u=[],w=this.table,v="",M=0,C=0,P=2,V=1,L=u.slice.call(arguments,1),_=Object.create(this.lexer),R={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(R.yy[F]=this.yy[F]);_.setInput(s,R.yy),R.yy.lexer=_,R.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var z=_.yylloc;u.push(z);var q=_.options&&_.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X(A){h.length=h.length-2*A,m.length=m.length-A,u.length=u.length-A}l(X,"popStack");function O(){var A;return A=g.pop()||_.lex()||V,typeof A!="number"&&(A instanceof Array&&(g=A,A=g.pop()),A=d.symbols_[A]||A),A}l(O,"lex");for(var $,N,b,T,E={},H,I,B,D;;){if(N=h[h.length-1],this.defaultActions[N]?b=this.defaultActions[N]:(($===null||typeof $>"u")&&($=O()),b=w[N]&&w[N][$]),typeof b>"u"||!b.length||!b[0]){var K="";D=[];for(H in w[N])this.terminals_[H]&&H>P&&D.push("'"+this.terminals_[H]+"'");_.showPosition?K="Parse error on line "+(M+1)+`:
|
|
2
|
+
`+_.showPosition()+`
|
|
3
|
+
Expecting `+D.join(", ")+", got '"+(this.terminals_[$]||$)+"'":K="Parse error on line "+(M+1)+": Unexpected "+($==V?"end of input":"'"+(this.terminals_[$]||$)+"'"),this.parseError(K,{text:_.match,token:this.terminals_[$]||$,line:_.yylineno,loc:z,expected:D})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+N+", token: "+$);switch(b[0]){case 1:h.push($),m.push(_.yytext),u.push(_.yylloc),h.push(b[1]),$=null,C=_.yyleng,v=_.yytext,M=_.yylineno,z=_.yylloc;break;case 2:if(I=this.productions_[b[1]][1],E.$=m[m.length-I],E._$={first_line:u[u.length-(I||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(I||1)].first_column,last_column:u[u.length-1].last_column},q&&(E._$.range=[u[u.length-(I||1)].range[0],u[u.length-1].range[1]]),T=this.performAction.apply(E,[v,C,M,R.yy,b[1],m,u].concat(L)),typeof T<"u")return T;I&&(h=h.slice(0,-1*I*2),m=m.slice(0,-1*I),u=u.slice(0,-1*I)),h.push(this.productions_[b[1]][0]),m.push(E.$),u.push(E._$),B=w[h[h.length-2]][h[h.length-1]],h.push(B);break;case 3:return!0}}return!0},"parse")},x=(function(){var k={EOF:1,parseError:l(function(d,h){if(this.yy.parser)this.yy.parser.parseError(d,h);else throw new Error(d)},"parseError"),setInput:l(function(s,d){return this.yy=d||this.yy||{},this._input=s,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:l(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var d=s.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:l(function(s){var d=s.length,h=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var g=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),h.length-1&&(this.yylineno-=h.length-1);var m=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:h?(h.length===g.length?this.yylloc.first_column:0)+g[g.length-h.length].length-h[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-d]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(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
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:l(function(s){this.unput(this.match.slice(s))},"less"),pastInput:l(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var s=this.pastInput(),d=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
|
|
5
|
+
`+d+"^"},"showPosition"),test_match:l(function(s,d){var h,g,m;if(this.options.backtrack_lexer&&(m={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&&(m.yylloc.range=this.yylloc.range.slice(0))),g=s[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,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(s[0].length),this.matched+=s[0],h=this.performAction.call(this,this.yy,this,d,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var u in m)this[u]=m[u];return!1}return!1},"test_match"),next:l(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,d,h,g;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),u=0;u<m.length;u++)if(h=this._input.match(this.rules[m[u]]),h&&(!d||h[0].length>d[0].length)){if(d=h,g=u,this.options.backtrack_lexer){if(s=this.test_match(h,m[u]),s!==!1)return s;if(this._backtrack){d=!1;continue}else return!1}else if(!this.options.flex)break}return d?(s=this.test_match(d,m[g]),s!==!1?s:!1):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:l(function(){var d=this.next();return d||this.lex()},"lex"),begin:l(function(d){this.conditionStack.push(d)},"begin"),popState:l(function(){var d=this.conditionStack.length-1;return d>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:l(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:l(function(d){return d=this.conditionStack.length-1-Math.abs(d||0),d>=0?this.conditionStack[d]:"INITIAL"},"topState"),pushState:l(function(d){this.begin(d)},"pushState"),stateStackSize:l(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:l(function(d,h,g,m){switch(g){case 0:break;case 1:break;case 2:return 13;case 3:break;case 4:break;case 5:return 8;case 6:return 9;case 7:return 7;case 8:return 14;case 9:return this.begin("acc_title"),15;case 10:return this.popState(),"acc_title_value";case 11:return this.begin("acc_descr"),17;case 12:return this.popState(),"acc_descr_value";case 13:this.begin("acc_descr_multiline");break;case 14:this.popState();break;case 15:return"acc_descr_multiline_value";case 16:return 20;case 17:return 24;case 18:return 23;case 19:return 6;case 20:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline[ \t]+LR\b)/i,/^(?:timeline[ \t]+TD\b)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[14,15],inclusive:!1},acc_descr:{rules:[12],inclusive:!1},acc_title:{rules:[10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,13,16,17,18,19,20],inclusive:!0}}};return k})();y.lexer=x;function f(){this.yy={}}return l(f,"Parser"),f.prototype=y,y.Parser=f,new f})();tt.parser=tt;var Dt=tt,yt={};zt(yt,{addEvent:()=>Tt,addSection:()=>_t,addTask:()=>Et,addTaskOrg:()=>$t,clear:()=>kt,default:()=>Xt,getCommonDb:()=>xt,getDirection:()=>bt,getSections:()=>wt,getTasks:()=>St,setDirection:()=>vt});var U="",mt=0,nt="LR",rt=[],Q=[],Z=[],xt=l(()=>Gt,"getCommonDb"),kt=l(function(){rt.length=0,Q.length=0,U="",Z.length=0,nt="LR",Ot()},"clear"),vt=l(function(e){nt=e},"setDirection"),bt=l(function(){return nt},"getDirection"),_t=l(function(e){U=e,rt.push(e)},"addSection"),wt=l(function(){return rt},"getSections"),St=l(function(){let e=ct();const t=100;let n=0;for(;!e&&n<t;)e=ct(),n++;return Q.push(...Z),Q},"getTasks"),Et=l(function(e,t,n){const i={id:mt++,section:U,type:U,task:e,score:t||0,events:n?[n]:[]};Z.push(i)},"addTask"),Tt=l(function(e){Z.find(n=>n.id===mt-1).events.push(e)},"addEvent"),$t=l(function(e){const t={section:U,type:U,description:e,task:e,classes:[]};Q.push(t)},"addTaskOrg"),ct=l(function(){const e=l(function(n){return Z[n].processed},"compileTask");let t=!0;for(const[n,i]of Z.entries())e(n),t=t&&i.processed;return t},"compileTasks"),Xt={clear:kt,getCommonDb:xt,getDirection:bt,setDirection:vt,addSection:_t,getSections:wt,getTasks:St,addTask:Et,addTaskOrg:$t,addEvent:Tt},Nt=0,j=l(function(e,t){const n=e.append("rect");return n.attr("x",t.x),n.attr("y",t.y),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("width",t.width),n.attr("height",t.height),n.attr("rx",t.rx),n.attr("ry",t.ry),t.class!==void 0&&n.attr("class",t.class),n},"drawRect"),Kt=l(function(e,t){const i=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=e.append("g");r.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function o(p){const y=ot().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);p.append("path").attr("class","mouth").attr("d",y).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}l(o,"smile");function c(p){const y=ot().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);p.append("path").attr("class","mouth").attr("d",y).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}l(c,"sad");function a(p){p.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return l(a,"ambivalent"),t.score>3?o(r):t.score<3?c(r):a(r),i},"drawFace"),Ut=l(function(e,t){const n=e.append("circle");return n.attr("cx",t.cx),n.attr("cy",t.cy),n.attr("class","actor-"+t.pos),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("r",t.r),n.class!==void 0&&n.attr("class",n.class),t.title!==void 0&&n.append("title").text(t.title),n},"drawCircle"),It=l(function(e,t){const n=t.text.replace(/<br\s*\/?>/gi," "),i=e.append("text");i.attr("x",t.x),i.attr("y",t.y),i.attr("class","legend"),i.style("text-anchor",t.anchor),t.class!==void 0&&i.attr("class",t.class);const r=i.append("tspan");return r.attr("x",t.x+t.textMargin*2),r.text(n),i},"drawText"),Zt=l(function(e,t){function n(r,o,c,a,p){return r+","+o+" "+(r+c)+","+o+" "+(r+c)+","+(o+a-p)+" "+(r+c-p*1.2)+","+(o+a)+" "+r+","+(o+a)}l(n,"genPoints");const i=e.append("polygon");i.attr("points",n(t.x,t.y,50,20,7)),i.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,It(e,t)},"drawLabel"),qt=l(function(e,t,n){const i=e.append("g"),r=st();r.x=t.x,r.y=t.y,r.fill=t.fill,r.width=n.width,r.height=n.height,r.class="journey-section section-type-"+t.num,r.rx=3,r.ry=3,j(i,r),Ht(n)(t.text,i,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+t.num},n,t.colour)},"drawSection"),et=-1,Jt=l(function(e,t,n,i){const r=t.x+n.width/2,o=e.append("g");et++,o.append("line").attr("id",i+"-task"+et).attr("x1",r).attr("y1",t.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Kt(o,{cx:r,cy:300+(5-t.score)*30,score:t.score});const a=st();a.x=t.x,a.y=t.y,a.fill=t.fill,a.width=n.width,a.height=n.height,a.class="task task-type-"+t.num,a.rx=3,a.ry=3,j(o,a),Ht(n)(t.task,o,a.x,a.y,a.width,a.height,{class:"task"},n,t.colour)},"drawTask"),Qt=l(function(e,t){j(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),jt=l(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),st=l(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Ht=(function(){function e(r,o,c,a,p,y,x,f){const k=o.append("text").attr("x",c+p/2).attr("y",a+y/2+5).style("font-color",f).style("text-anchor","middle").text(r);i(k,x)}l(e,"byText");function t(r,o,c,a,p,y,x,f,k){const{taskFontSize:s,taskFontFamily:d}=f,h=r.split(/<br\s*\/?>/gi);for(let g=0;g<h.length;g++){const m=g*s-s*(h.length-1)/2,u=o.append("text").attr("x",c+p/2).attr("y",a).attr("fill",k).style("text-anchor","middle").style("font-size",s).style("font-family",d);u.append("tspan").attr("x",c+p/2).attr("dy",m).text(h[g]),u.attr("y",a+y/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(u,x)}}l(t,"byTspan");function n(r,o,c,a,p,y,x,f){const k=o.append("switch"),d=k.append("foreignObject").attr("x",c).attr("y",a).attr("width",p).attr("height",y).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(r),t(r,k,c,a,p,y,x,f),i(d,x)}l(n,"byFo");function i(r,o){for(const c in o)c in o&&r.attr(c,o[c])}return l(i,"_setTextAttrs"),function(r){return r.textPlacement==="fo"?n:r.textPlacement==="old"?e:t}})(),Yt=l(function(e,t){Nt=0,et=-1,e.append("defs").append("marker").attr("id",t+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function it(e,t){e.each(function(){var n=J(this),i=n.text().split(/(\s+|<br>)/).reverse(),r,o=[],c=1.1,a=n.attr("y"),p=parseFloat(n.attr("dy")),y=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",p+"em");for(let x=0;x<i.length;x++)r=i[i.length-1-x],o.push(r),y.text(o.join(" ").trim()),(y.node().getComputedTextLength()>t||r==="<br>")&&(o.pop(),y.text(o.join(" ").trim()),r==="<br>"?o=[""]:o=[r],y=n.append("tspan").attr("x",0).attr("y",a).attr("dy",c+"em").text(r))})}l(it,"wrap");var te=l(function(e,t,n,i,r,o=!1){var m,u,w;const{theme:c,look:a}=i,p=c==null?void 0:c.includes("redux"),y=((m=i==null?void 0:i.themeVariables)==null?void 0:m.THEME_COLOR_LIMIT)??12,x=n%y-1,f=e.append("g");t.section=x,f.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+x));const k=f.append("g"),s=f.append("g"),h=s.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),g=(u=i.fontSize)!=null&&u.replace?i.fontSize.replace("px",""):i.fontSize;if(t.height=h.height+g*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,s.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),p&&s.attr("transform",`translate(${t.width/2}, ${o?t.padding/2+3:t.padding})`),ne(k,t,x,r,i),a==="neo"&&(f.attr("data-look","neo"),p)){const v=c.includes("dark"),M=((w=e.node())==null?void 0:w.ownerSVGElement)??e.node(),C=J(M),P=C.attr("id")??"",V=P?`${P}-drop-shadow`:"drop-shadow";if(C.select(`#${V}`).empty()){const L=C.select("defs");(L.empty()?C.append("defs"):L).append("filter").attr("id",V).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",v?"0.2":"0.06").attr("flood-color",v?"#FFFFFF":"#000000")}}return t},"drawNode"),ee=l(function(e,t,n){var a;const i=e.append("g"),o=i.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),c=(a=n.fontSize)!=null&&a.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),o.height+c*1.1*.5+t.padding},"getVirtualNodeHeight"),ne=l(function(e,t,n,i,r){const{theme:o}=r,c=o!=null&&o.includes("redux")?0:5,a=5,p=c>0?`M0 ${t.height-a} v${-t.height+2*a} q0,-${c},${c},-${c} h${t.width-2*a} q${c},0,${c},${c} v${t.height-a} H0 Z`:`M0 ${t.height-a} v${-(t.height-a)} h${t.width} v${t.height} H0 Z`;e.append("path").attr("id",i+"-node-"+Nt++).attr("class","node-bkg node-"+t.type).attr("d",p),o!=null&&o.includes("redux")||e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),W={drawRect:j,drawCircle:Ut,drawSection:qt,drawText:It,drawLabel:Zt,drawTask:Jt,drawBackgroundRect:Qt,getTextObj:jt,getNoteRect:st,initGraphics:Yt,drawNode:te,getVirtualNodeHeight:ee},re=l(function(e,t,n,i){var X,O,$;const r=gt(),{look:o,theme:c,themeVariables:a}=r,{useGradient:p,gradientStart:y,gradientStop:x}=a,f=((X=r.timeline)==null?void 0:X.leftMargin)??50;S.debug("timeline",i.db);const k=r.securityLevel;let s;k==="sandbox"&&(s=J("#i"+t));const h=(k==="sandbox"?J(s.nodes()[0].contentDocument.body):J("body")).select("#"+t);h.append("g");const g=i.db.getTasks(),m=i.db.getCommonDb().getDiagramTitle();S.debug("task",g),W.initGraphics(h,t);const u=i.db.getSections();S.debug("sections",u);let w=0,v=0,M=0,C=0,P=50+f,V=50;C=50;let L=0,_=!0;u.forEach(function(N){const b={number:L,descr:N,section:L,width:150,padding:20,maxHeight:w},T=W.getVirtualNodeHeight(h,b,r);S.debug("sectionHeight before draw",T),w=Math.max(w,T+20)});let R=0,F=0;S.debug("tasks.length",g.length);for(const[N,b]of g.entries()){const T={number:N,descr:b,section:b.section,width:150,padding:20,maxHeight:v},E=W.getVirtualNodeHeight(h,T,r);S.debug("taskHeight before draw",E),v=Math.max(v,E+20),R=Math.max(R,b.events.length);let H=0;for(const I of b.events){const B={descr:I,section:b.section,number:b.section,width:150,padding:20,maxHeight:50};H+=W.getVirtualNodeHeight(h,B,r)}b.events.length>0&&(H+=(b.events.length-1)*10),F=Math.max(F,H)}S.debug("maxSectionHeight before draw",w),S.debug("maxTaskHeight before draw",v),u&&u.length>0?u.forEach(N=>{const b=g.filter(I=>I.section===N),T={number:L,descr:N,section:L,width:200*Math.max(b.length,1)-50,padding:20,maxHeight:w};S.debug("sectionNode",T);const E=h.append("g"),H=W.drawNode(E,T,L,r,t);S.debug("sectionNode output",H),E.attr("transform",`translate(${P}, ${C})`),V+=w+50,b.length>0&<(h,b,L,P,V,v,r,R,F,w,!1,t),P+=200*Math.max(b.length,1),V=C,L++}):(_=!1,lt(h,g,L,P,V,v,r,R,F,w,!0,t));const z=h.node().getBBox();if(S.debug("bounds",z),m&&h.append("text").text(m).attr("x",o==="neo"?z.x*2+f:z.width/2-f).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),M=_?w+v+150:v+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",f).attr("y1",M).attr("x2",z.width+3*f).attr("y2",M).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${t}-arrowhead)`),o==="neo"&&p&&c!=="neutral"){const N=h.select("defs"),T=(N.empty()?h.append("defs"):N).append("linearGradient").attr("id",h.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");T.append("stop").attr("offset","0%").attr("stop-color",y).attr("stop-opacity",1),T.append("stop").attr("offset","100%").attr("stop-color",x).attr("stop-opacity",1)}ft(void 0,h,((O=r.timeline)==null?void 0:O.padding)??50,(($=r.timeline)==null?void 0:$.useMaxWidth)??!1)},"draw"),lt=l(function(e,t,n,i,r,o,c,a,p,y,x,f){var k;for(const s of t){const d={descr:s.task,section:n,number:n,width:150,padding:20,maxHeight:o};S.debug("taskNode",d);const h=e.append("g").attr("class","taskWrapper"),m=W.drawNode(h,d,n,c,f).height;if(S.debug("taskHeight after draw",m),h.attr("transform",`translate(${i}, ${r})`),o=Math.max(o,m),s.events){const u=e.append("g").attr("class","lineWrapper");let w=o;r+=100,w=w+se(e,s.events,n,i,r,c,f),r-=100,u.append("line").attr("x1",i+190/2).attr("y1",r+o).attr("x2",i+190/2).attr("y2",r+o+100+p+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${f}-arrowhead)`).attr("stroke-dasharray","5,5")}i=i+200,x&&!((k=c.timeline)!=null&&k.disableMulticolor)&&n++}r=r-10},"drawTasks"),se=l(function(e,t,n,i,r,o,c){let a=0;const p=r;r=r+100;for(const y of t){const x={descr:y,section:n,number:n,width:150,padding:20,maxHeight:50};S.debug("eventNode",x);const f=e.append("g").attr("class","eventWrapper"),s=W.drawNode(f,x,n,o,c,!0).height;a=a+s,f.attr("transform",`translate(${i}, ${r})`),r=r+10+s}return r=p,a},"drawEvents"),ie={setConf:l(()=>{},"setConf"),draw:re},Y=200,G=5,ae=Y+G*2,at=Y+100,oe=at+G*2,Lt=10,ce=0,ht=20,Mt=20,dt=30,At=50,le=l(function(e,t,n,i){var X,O,$,N,b;const r=gt(),o=((X=r.timeline)==null?void 0:X.leftMargin)??50;S.debug("timeline",i.db);const c=Vt(t);c.append("g");const a=i.db.getTasks(),p=i.db.getCommonDb().getDiagramTitle();S.debug("task",a),W.initGraphics(c);const y=i.db.getSections();S.debug("sections",y);let x=0,f=0;const k=50+o;let s=50;const d=s,h=k,g=ae+Mt,m=oe+At,u=h+g;let w=0;const v=y&&y.length>0,M=v?u:k+g,C=Math.max(50,g+m-G*2);y.forEach(function(T){const E={number:w,descr:T,section:w,width:C,padding:G,maxHeight:x},H=W.getVirtualNodeHeight(c,E,r);S.debug("sectionHeight before draw",H),x=Math.max(x,H)});let P=0;S.debug("tasks.length",a.length);for(const[T,E]of a.entries()){const H={number:T,descr:E,section:E.section,width:Y,padding:G,maxHeight:f},I=W.getVirtualNodeHeight(c,H,r);S.debug("taskHeight before draw",I),f=Math.max(f,I);let B=0;for(const D of E.events){const K={descr:D,section:E.section,number:E.section,width:at,padding:G,maxHeight:50};B+=W.getVirtualNodeHeight(c,K,r)}E.events.length>0&&(B+=(E.events.length-1)*Lt),P=Math.max(P,B)+ce}S.debug("maxSectionHeight before draw",x),S.debug("maxTaskHeight before draw",f);const L=Math.max(f,P)+dt;v?y.forEach(T=>{const E=a.filter(Ct=>Ct.section===T),H={number:w,descr:T,section:w,width:C,padding:G,maxHeight:x};S.debug("sectionNode",H);const I=c.append("g"),B=W.drawNode(I,H,w,r);S.debug("sectionNode output",B);const D=M-g;I.attr("transform",`translate(${D}, ${s})`);const K=s+B.height+ht;E.length>0&&ut(c,E,w,M,K,f,r,L,!1);const A=E.length,Rt=B.height+ht+L*Math.max(A,1)-(A>0?dt*2:0);s+=Rt,w++}):ut(c,a,w,M,s,f,r,L,!0);let _=(O=c.node())==null?void 0:O.getBBox();if(!_)throw new Error("bbox not found");if(S.debug("bounds",_),p){if(c.append("text").text(p).attr("x",_.width/2-o).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),_=($=c.node())==null?void 0:$.getBBox(),!_)throw new Error("bbox not found");S.debug("bounds after title",_)}const[R]=Ft(r.fontSize),F=(R??16)*2,z=(R??16)*.5+20,q=c.append("g").attr("class","lineWrapper");q.append("line").attr("x1",M).attr("y1",d-F).attr("x2",M).attr("y2",_.y+_.height+z).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),q.lower(),ft(void 0,c,((N=r.timeline)==null?void 0:N.padding)??50,((b=r.timeline)==null?void 0:b.useMaxWidth)??!1)},"draw"),ut=l(function(e,t,n,i,r,o,c,a,p){var y;for(const x of t){const f={descr:x.task,section:n,number:n,width:Y,padding:G,maxHeight:o};S.debug("taskNode",f);const k=e.append("g").attr("class","taskWrapper"),s=W.drawNode(k,f,n,c),d=s.height;S.debug("taskHeight after draw",d);const h=i-Mt-s.width;if(k.attr("transform",`translate(${h}, ${r})`),o=Math.max(o,d),x.events&&x.events.length>0){const g=r,m=i+At;he(e,x.events,n,i,m,g,c)}r=r+a,p&&!((y=c.timeline)!=null&&y.disableMulticolor)&&n++}},"drawTasks"),he=l(function(e,t,n,i,r,o,c){let a=o;for(const p of t){const y={descr:p,section:n,number:n,width:at,padding:G,maxHeight:0};S.debug("eventNode",y);const x=e.append("g").attr("class","eventWrapper"),k=W.drawNode(x,y,n,c).height;x.attr("transform",`translate(${r}, ${a})`);const s=e.append("g").attr("class","lineWrapper"),d=a+k/2;s.append("line").attr("x1",i).attr("y1",d).attr("x2",r).attr("y2",d).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),a=a+k+Lt}return a-o},"drawEvents"),de={setConf:l(()=>{},"setConf"),draw:le},ue=l(e=>{var a;const{theme:t}=pt(),n=t==null?void 0:t.includes("dark"),i=t==null?void 0:t.includes("color"),r=((a=e.svgId)==null?void 0:a.replace(/^#/,""))??"",o=r?`url(#${r}-drop-shadow)`:e.dropShadow??"none";let c="";for(let p=0;p<e.THEME_COLOR_LIMIT;p++){const y=`${17-3*p}`,x=i?e.borderColorArray[p]:e.mainBkg,f=i?e.borderColorArray[p]:e.nodeBorder;c+=`
|
|
7
|
+
.section-${p-1} rect,
|
|
8
|
+
.section-${p-1} path,
|
|
9
|
+
.section-${p-1} circle {
|
|
10
|
+
fill: ${n&&i?e.mainBkg:x};
|
|
11
|
+
stroke: ${f};
|
|
12
|
+
stroke-width: ${e.strokeWidth};
|
|
13
|
+
filter: ${o};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.section-${p-1} text {
|
|
17
|
+
fill: ${e.nodeBorder};
|
|
18
|
+
font-weight: ${e.fontWeight}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.node-icon-${p-1} {
|
|
22
|
+
font-size: 40px;
|
|
23
|
+
color: ${e["cScaleLabel"+p]};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.section-edge-${p-1} {
|
|
27
|
+
stroke: ${e["cScale"+p]};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.edge-depth-${p-1} {
|
|
31
|
+
stroke-width: ${y};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.section-${p-1} line {
|
|
35
|
+
stroke: ${e["cScaleInv"+p]};
|
|
36
|
+
stroke-width: 3;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.lineWrapper line {
|
|
40
|
+
stroke: ${e.nodeBorder};
|
|
41
|
+
stroke-width:${e.strokeWidth}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.disabled,
|
|
45
|
+
.disabled circle,
|
|
46
|
+
.disabled text {
|
|
47
|
+
fill: ${e.tertiaryColor??"lightgray"};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.disabled text {
|
|
51
|
+
fill: ${e.clusterBorder??"#efefef"};
|
|
52
|
+
}
|
|
53
|
+
`}return c},"genReduxSections"),pe=l(e=>{let t="";for(let n=0;n<e.THEME_COLOR_LIMIT;n++)e["lineColor"+n]=e["lineColor"+n]||e["cScaleInv"+n],Wt(e["lineColor"+n])?e["lineColor"+n]=Pt(e["lineColor"+n],20):e["lineColor"+n]=Bt(e["lineColor"+n],20);for(let n=0;n<e.THEME_COLOR_LIMIT;n++){const i=""+(17-3*n);t+=`
|
|
54
|
+
.section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} path {
|
|
55
|
+
fill: ${e["cScale"+n]};
|
|
56
|
+
}
|
|
57
|
+
.section-${n-1} text {
|
|
58
|
+
fill: ${e["cScaleLabel"+n]};
|
|
59
|
+
}
|
|
60
|
+
.node-icon-${n-1} {
|
|
61
|
+
font-size: 40px;
|
|
62
|
+
color: ${e["cScaleLabel"+n]};
|
|
63
|
+
}
|
|
64
|
+
.section-edge-${n-1}{
|
|
65
|
+
stroke: ${e["cScale"+n]};
|
|
66
|
+
}
|
|
67
|
+
.edge-depth-${n-1}{
|
|
68
|
+
stroke-width: ${i};
|
|
69
|
+
}
|
|
70
|
+
.section-${n-1} line {
|
|
71
|
+
stroke: ${e["cScaleInv"+n]} ;
|
|
72
|
+
stroke-width: 3;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.lineWrapper line{
|
|
76
|
+
stroke: ${e["cScaleLabel"+n]} ;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.disabled, .disabled circle, .disabled text {
|
|
80
|
+
fill: ${e.tertiaryColor??"lightgray"};
|
|
81
|
+
}
|
|
82
|
+
.disabled text {
|
|
83
|
+
fill: ${e.clusterBorder??"#efefef"};
|
|
84
|
+
}
|
|
85
|
+
`}return t},"genSections"),ge=l(e=>{var c;const{theme:t}=pt(),n=t==null?void 0:t.includes("redux"),i=t==="neutral",r=((c=e.svgId)==null?void 0:c.replace(/^#/,""))??"";let o="";if(e.useGradient&&r&&e.THEME_COLOR_LIMIT&&!i)for(let a=0;a<e.THEME_COLOR_LIMIT;a++)o+=`
|
|
86
|
+
.section-${a-1}[data-look="neo"] rect,
|
|
87
|
+
.section-${a-1}[data-look="neo"] path,
|
|
88
|
+
.section-${a-1}[data-look="neo"] circle {
|
|
89
|
+
fill: ${e.mainBkg};
|
|
90
|
+
stroke: url(#${r}-gradient);
|
|
91
|
+
stroke-width: 2;
|
|
92
|
+
}
|
|
93
|
+
.section-${a-1}[data-look="neo"] line {
|
|
94
|
+
stroke: url(#${r}-gradient);
|
|
95
|
+
stroke-width: 2;
|
|
96
|
+
}`;return`
|
|
97
|
+
.edge {
|
|
98
|
+
stroke-width: 3;
|
|
99
|
+
}
|
|
100
|
+
${n?ue(e):pe(e)}
|
|
101
|
+
${o}
|
|
102
|
+
.section-root rect, .section-root path, .section-root circle {
|
|
103
|
+
fill: ${e.git0};
|
|
104
|
+
}
|
|
105
|
+
.section-root text {
|
|
106
|
+
fill: ${e.gitBranchLabel0};
|
|
107
|
+
}
|
|
108
|
+
.icon-container {
|
|
109
|
+
height:100%;
|
|
110
|
+
display: flex;
|
|
111
|
+
justify-content: center;
|
|
112
|
+
align-items: center;
|
|
113
|
+
}
|
|
114
|
+
.edge {
|
|
115
|
+
fill: none;
|
|
116
|
+
}
|
|
117
|
+
.eventWrapper {
|
|
118
|
+
filter: brightness(120%);
|
|
119
|
+
}
|
|
120
|
+
`},"getStyles"),fe=ge,ye={setConf:l(()=>{},"setConf"),draw:l((e,t,n,i)=>{var o,c;return(((c=(o=i==null?void 0:i.db)==null?void 0:o.getDirection)==null?void 0:c.call(o))??"LR")==="TD"?de.draw(e,t,n,i):ie.draw(e,t,n,i)},"draw")},ve={db:yt,renderer:ye,parser:Dt,styles:fe};export{ve as diagram};
|
|
121
|
+
//# sourceMappingURL=timeline-definition-24CTP7MA-BYO2h9Qr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-definition-24CTP7MA-BYO2h9Qr.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-24CTP7MA.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-CLGD4ZFX.mjs\";\nimport {\n parseFontSize\n} from \"./chunk-75Z2AOVW.mjs\";\nimport {\n clear,\n commonDb_exports,\n getConfig,\n getConfig2,\n setupGraphViewbox\n} from \"./chunk-DU6HZSFF.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __export,\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/timeline/parser/timeline.jison\nvar parser = (function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [6, 11, 13, 14, 15, 17, 19, 20, 23, 24], $V1 = [1, 12], $V2 = [1, 13], $V3 = [1, 14], $V4 = [1, 15], $V5 = [1, 16], $V6 = [1, 19], $V7 = [1, 20];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"timeline_header\": 4, \"document\": 5, \"EOF\": 6, \"timeline\": 7, \"timeline_lr\": 8, \"timeline_td\": 9, \"line\": 10, \"SPACE\": 11, \"statement\": 12, \"NEWLINE\": 13, \"title\": 14, \"acc_title\": 15, \"acc_title_value\": 16, \"acc_descr\": 17, \"acc_descr_value\": 18, \"acc_descr_multiline_value\": 19, \"section\": 20, \"period_statement\": 21, \"event_statement\": 22, \"period\": 23, \"event\": 24, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"EOF\", 7: \"timeline\", 8: \"timeline_lr\", 9: \"timeline_td\", 11: \"SPACE\", 13: \"NEWLINE\", 14: \"title\", 15: \"acc_title\", 16: \"acc_title_value\", 17: \"acc_descr\", 18: \"acc_descr_value\", 19: \"acc_descr_multiline_value\", 20: \"section\", 23: \"period\", 24: \"event\" },\n productions_: [0, [3, 3], [4, 1], [4, 1], [4, 1], [5, 0], [5, 2], [10, 2], [10, 1], [10, 1], [10, 1], [12, 1], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [21, 1], [22, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n case 3:\n yy.setDirection(\"LR\");\n break;\n case 4:\n yy.setDirection(\"TD\");\n break;\n case 5:\n this.$ = [];\n break;\n case 6:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 7:\n case 8:\n this.$ = $$[$0];\n break;\n case 9:\n case 10:\n this.$ = [];\n break;\n case 11:\n yy.getCommonDb().setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 12:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccTitle(this.$);\n break;\n case 13:\n case 14:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccDescription(this.$);\n break;\n case 15:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 18:\n yy.addTask($$[$0], 0, \"\");\n this.$ = $$[$0];\n break;\n case 19:\n yy.addEvent($$[$0].substr(2));\n this.$ = $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 7: [1, 3], 8: [1, 4], 9: [1, 5] }, { 1: [3] }, o($V0, [2, 5], { 5: 6 }), o($V0, [2, 2]), o($V0, [2, 3]), o($V0, [2, 4]), { 6: [1, 7], 10: 8, 11: [1, 9], 12: 10, 13: [1, 11], 14: $V1, 15: $V2, 17: $V3, 19: $V4, 20: $V5, 21: 17, 22: 18, 23: $V6, 24: $V7 }, o($V0, [2, 10], { 1: [2, 1] }), o($V0, [2, 6]), { 12: 21, 14: $V1, 15: $V2, 17: $V3, 19: $V4, 20: $V5, 21: 17, 22: 18, 23: $V6, 24: $V7 }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 11]), { 16: [1, 22] }, { 18: [1, 23] }, o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 7]), o($V0, [2, 12]), o($V0, [2, 13])],\n defaultActions: {},\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ (function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 13;\n break;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 8;\n break;\n case 6:\n return 9;\n break;\n case 7:\n return 7;\n break;\n case 8:\n return 14;\n break;\n case 9:\n this.begin(\"acc_title\");\n return 15;\n break;\n case 10:\n this.popState();\n return \"acc_title_value\";\n break;\n case 11:\n this.begin(\"acc_descr\");\n return 17;\n break;\n case 12:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 13:\n this.begin(\"acc_descr_multiline\");\n break;\n case 14:\n this.popState();\n break;\n case 15:\n return \"acc_descr_multiline_value\";\n break;\n case 16:\n return 20;\n break;\n case 17:\n return 24;\n break;\n case 18:\n return 23;\n break;\n case 19:\n return 6;\n break;\n case 20:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:timeline[ \\t]+LR\\b)/i, /^(?:timeline[ \\t]+TD\\b)/i, /^(?:timeline\\b)/i, /^(?:title\\s[^\\n]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^:\\n]+)/i, /^(?::\\s(?:[^:\\n]|:(?!\\s))+)/i, /^(?:[^#:\\n]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [14, 15], \"inclusive\": false }, \"acc_descr\": { \"rules\": [12], \"inclusive\": false }, \"acc_title\": { \"rules\": [10], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n })();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n})();\nparser.parser = parser;\nvar timeline_default = parser;\n\n// src/diagrams/timeline/timelineDb.js\nvar timelineDb_exports = {};\n__export(timelineDb_exports, {\n addEvent: () => addEvent,\n addSection: () => addSection,\n addTask: () => addTask,\n addTaskOrg: () => addTaskOrg,\n clear: () => clear2,\n default: () => timelineDb_default,\n getCommonDb: () => getCommonDb,\n getDirection: () => getDirection,\n getSections: () => getSections,\n getTasks: () => getTasks,\n setDirection: () => setDirection\n});\nvar currentSection = \"\";\nvar currentTaskId = 0;\nvar direction = \"LR\";\nvar sections = [];\nvar tasks = [];\nvar rawTasks = [];\nvar getCommonDb = /* @__PURE__ */ __name(() => commonDb_exports, \"getCommonDb\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n direction = \"LR\";\n clear();\n}, \"clear\");\nvar setDirection = /* @__PURE__ */ __name(function(dir) {\n direction = dir;\n}, \"setDirection\");\nvar getDirection = /* @__PURE__ */ __name(function() {\n return direction;\n}, \"getDirection\");\nvar addSection = /* @__PURE__ */ __name(function(txt) {\n currentSection = txt;\n sections.push(txt);\n}, \"addSection\");\nvar getSections = /* @__PURE__ */ __name(function() {\n return sections;\n}, \"getSections\");\nvar getTasks = /* @__PURE__ */ __name(function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n}, \"getTasks\");\nvar addTask = /* @__PURE__ */ __name(function(period, length, event) {\n const rawTask = {\n id: currentTaskId++,\n section: currentSection,\n type: currentSection,\n task: period,\n score: length ? length : 0,\n //if event is defined, then add it the events array\n events: event ? [event] : []\n };\n rawTasks.push(rawTask);\n}, \"addTask\");\nvar addEvent = /* @__PURE__ */ __name(function(event) {\n const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n currentTask.events.push(event);\n}, \"addEvent\");\nvar addTaskOrg = /* @__PURE__ */ __name(function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n}, \"addTaskOrg\");\nvar compileTasks = /* @__PURE__ */ __name(function() {\n const compileTask = /* @__PURE__ */ __name(function(pos) {\n return rawTasks[pos].processed;\n }, \"compileTask\");\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n}, \"compileTasks\");\nvar timelineDb_default = {\n clear: clear2,\n getCommonDb,\n getDirection,\n setDirection,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n addEvent\n};\n\n// src/diagrams/timeline/timelineRenderer.ts\nimport { select as select2 } from \"d3\";\n\n// src/diagrams/timeline/svgDraw.js\nimport { arc as d3arc, select } from \"d3\";\nvar nodeCount = 0;\nvar drawRect = /* @__PURE__ */ __name(function(elem, rectData) {\n const rectElem = elem.append(\"rect\");\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.y);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", rectData.width);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (rectData.class !== void 0) {\n rectElem.attr(\"class\", rectData.class);\n }\n return rectElem;\n}, \"drawRect\");\nvar drawFace = /* @__PURE__ */ __name(function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n __name(smile, \"smile\");\n function sad(face2) {\n const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n __name(sad, \"sad\");\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n __name(ambivalent, \"ambivalent\");\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n}, \"drawFace\");\nvar drawCircle = /* @__PURE__ */ __name(function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n}, \"drawCircle\");\nvar drawText = /* @__PURE__ */ __name(function(elem, textData) {\n const nText = textData.text.replace(/<br\\s*\\/?>/gi, \" \");\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.text(nText);\n return textElem;\n}, \"drawText\");\nvar drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n __name(genPoints, \"genPoints\");\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n}, \"drawLabel\");\nvar drawSection = /* @__PURE__ */ __name(function(elem, section, conf) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf,\n section.colour\n );\n}, \"drawSection\");\nvar taskCount = -1;\nvar drawTask = /* @__PURE__ */ __name(function(elem, task, conf, diagramId) {\n const center = task.x + conf.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", diagramId + \"-task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf,\n task.colour\n );\n}, \"drawTask\");\nvar drawBackgroundRect = /* @__PURE__ */ __name(function(elem, bounds) {\n const rectElem = drawRect(elem, {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n class: \"rect\"\n });\n rectElem.lower();\n}, \"drawBackgroundRect\");\nvar getTextObj = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n \"text-anchor\": \"start\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0\n };\n}, \"getTextObj\");\nvar getNoteRect = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n}, \"getNoteRect\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ (function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {\n const { taskFontSize, taskFontFamily } = conf;\n const lines = content.split(/<br\\s*\\/?>/gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf) {\n return conf.textPlacement === \"fo\" ? byFo : conf.textPlacement === \"old\" ? byText : byTspan;\n };\n})();\nvar initGraphics = /* @__PURE__ */ __name(function(graphics, id) {\n nodeCount = 0;\n taskCount = -1;\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", id + \"-arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n}, \"initGraphics\");\nfunction wrap(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/(\\s+|<br>)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr(\"y\"), dy = parseFloat(text2.attr(\"dy\")), tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\");\n for (let j = 0; j < words.length; j++) {\n word = words[words.length - 1 - j];\n line.push(word);\n tspan.text(line.join(\" \").trim());\n if (tspan.node().getComputedTextLength() > width || word === \"<br>\") {\n line.pop();\n tspan.text(line.join(\" \").trim());\n if (word === \"<br>\") {\n line = [\"\"];\n } else {\n line = [word];\n }\n tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").text(word);\n }\n }\n });\n}\n__name(wrap, \"wrap\");\nvar drawNode = /* @__PURE__ */ __name(function(elem, node, fullSection, conf, diagramId, isEvent = false) {\n const { theme, look } = conf;\n const isReduxTheme = theme?.includes(\"redux\");\n const maxSections = conf?.themeVariables?.THEME_COLOR_LIMIT ?? 12;\n const section = fullSection % maxSections - 1;\n const nodeElem = elem.append(\"g\");\n node.section = section;\n nodeElem.attr(\n \"class\",\n (node.class ? node.class + \" \" : \"\") + \"timeline-node \" + (\"section-\" + section)\n );\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize?.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.height = Math.max(node.height, node.maxHeight);\n node.width = node.width + 2 * node.padding;\n textElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + node.padding / 2 + \")\");\n if (isReduxTheme) {\n textElem.attr(\n \"transform\",\n `translate(${node.width / 2}, ${isEvent ? node.padding / 2 + 3 : node.padding})`\n );\n }\n defaultBkg(bkgElem, node, section, diagramId, conf);\n if (look === \"neo\") {\n nodeElem.attr(\"data-look\", `neo`);\n if (isReduxTheme) {\n const isDark2 = theme.includes(\"dark\");\n const rootSvgNode = elem.node()?.ownerSVGElement ?? elem.node();\n const rootSvg = select(rootSvgNode);\n const svgId = rootSvg.attr(\"id\") ?? \"\";\n const dropShadowId = svgId ? `${svgId}-drop-shadow` : \"drop-shadow\";\n if (rootSvg.select(`#${dropShadowId}`).empty()) {\n const existingDefs = rootSvg.select(\"defs\");\n const defsEl = existingDefs.empty() ? rootSvg.append(\"defs\") : existingDefs;\n defsEl.append(\"filter\").attr(\"id\", dropShadowId).attr(\"height\", \"130%\").attr(\"width\", \"130%\").append(\"feDropShadow\").attr(\"dx\", \"4\").attr(\"dy\", \"4\").attr(\"stdDeviation\", 0).attr(\"flood-opacity\", isDark2 ? \"0.2\" : \"0.06\").attr(\"flood-color\", isDark2 ? \"#FFFFFF\" : \"#000000\");\n }\n }\n }\n return node;\n}, \"drawNode\");\nvar getVirtualNodeHeight = /* @__PURE__ */ __name(function(elem, node, conf) {\n const textElem = elem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize?.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n textElem.remove();\n return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n}, \"getVirtualNodeHeight\");\nvar defaultBkg = /* @__PURE__ */ __name(function(elem, node, section, diagramId, config) {\n const { theme } = config;\n const r = theme?.includes(\"redux\") ? 0 : 5;\n const rd = 5;\n const d = r > 0 ? `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-${r},${r},-${r} h${node.width - 2 * rd} q${r},0,${r},${r} v${node.height - rd} H0 Z` : `M0 ${node.height - rd} v${-(node.height - rd)} h${node.width} v${node.height} H0 Z`;\n elem.append(\"path\").attr(\"id\", diagramId + \"-node-\" + nodeCount++).attr(\"class\", \"node-bkg node-\" + node.type).attr(\"d\", d);\n if (!theme?.includes(\"redux\")) {\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n }\n}, \"defaultBkg\");\nvar svgDraw_default = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n getTextObj,\n getNoteRect,\n initGraphics,\n drawNode,\n getVirtualNodeHeight\n};\n\n// src/diagrams/timeline/timelineRenderer.ts\nvar draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {\n const conf = getConfig2();\n const { look, theme, themeVariables } = conf;\n const { useGradient, gradientStart, gradientStop } = themeVariables;\n const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;\n log.debug(\"timeline\", diagObj.db);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select2(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select2(sandboxElement.nodes()[0].contentDocument.body) : select2(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getCommonDb().getDiagramTitle();\n log.debug(\"task\", tasks2);\n svgDraw_default.initGraphics(svg, id);\n const sections2 = diagObj.db.getSections();\n log.debug(\"sections\", sections2);\n let maxSectionHeight = 0;\n let maxTaskHeight = 0;\n let depthY = 0;\n let sectionBeginY = 0;\n let masterX = 50 + LEFT_MARGIN;\n let masterY = 50;\n sectionBeginY = 50;\n let sectionNumber = 0;\n let hasSections = true;\n sections2.forEach(function(section) {\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 150,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n const sectionHeight = svgDraw_default.getVirtualNodeHeight(svg, sectionNode, conf);\n log.debug(\"sectionHeight before draw\", sectionHeight);\n maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);\n });\n let maxEventCount = 0;\n let maxEventLineLength = 0;\n log.debug(\"tasks.length\", tasks2.length);\n for (const [i, task] of tasks2.entries()) {\n const taskNode = {\n number: i,\n descr: task,\n section: task.section,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n const taskHeight = svgDraw_default.getVirtualNodeHeight(svg, taskNode, conf);\n log.debug(\"taskHeight before draw\", taskHeight);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);\n maxEventCount = Math.max(maxEventCount, task.events.length);\n let maxEventLineLengthTemp = 0;\n for (const event of task.events) {\n const eventNode = {\n descr: event,\n section: task.section,\n number: task.section,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n maxEventLineLengthTemp += svgDraw_default.getVirtualNodeHeight(svg, eventNode, conf);\n }\n if (task.events.length > 0) {\n maxEventLineLengthTemp += (task.events.length - 1) * 10;\n }\n maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);\n }\n log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n if (sections2 && sections2.length > 0) {\n sections2.forEach((section) => {\n const tasksForSection = tasks2.filter((task) => task.section === section);\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 200 * Math.max(tasksForSection.length, 1) - 50,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf, id);\n log.debug(\"sectionNode output\", node);\n sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n masterY += maxSectionHeight + 50;\n if (tasksForSection.length > 0) {\n drawTasks(\n svg,\n tasksForSection,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n false,\n id\n );\n }\n masterX += 200 * Math.max(tasksForSection.length, 1);\n masterY = sectionBeginY;\n sectionNumber++;\n });\n } else {\n hasSections = false;\n drawTasks(\n svg,\n tasks2,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n true,\n id\n );\n }\n const box = svg.node().getBBox();\n log.debug(\"bounds\", box);\n if (title) {\n svg.append(\"text\").text(title).attr(\"x\", look === \"neo\" ? box.x * 2 + LEFT_MARGIN : box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n }\n depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;\n const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n lineWrapper.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", depthY).attr(\"x2\", box.width + 3 * LEFT_MARGIN).attr(\"y2\", depthY).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", `url(#${id}-arrowhead)`);\n if (look === \"neo\" && useGradient && theme !== \"neutral\") {\n const existingDefs = svg.select(\"defs\");\n const defsEl = existingDefs.empty() ? svg.append(\"defs\") : existingDefs;\n const gradient = defsEl.append(\"linearGradient\").attr(\"id\", svg.attr(\"id\") + \"-gradient\").attr(\"gradientUnits\", \"objectBoundingBox\").attr(\"x1\", \"0%\").attr(\"y1\", \"0%\").attr(\"x2\", \"100%\").attr(\"y2\", \"0%\");\n gradient.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", gradientStart).attr(\"stop-opacity\", 1);\n gradient.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", gradientStop).attr(\"stop-opacity\", 1);\n }\n setupGraphViewbox(\n void 0,\n svg,\n conf.timeline?.padding ?? 50,\n conf.timeline?.useMaxWidth ?? false\n );\n}, \"draw\");\nvar drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections, diagramId) {\n for (const task of tasks2) {\n const taskNode = {\n descr: task.task,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n log.debug(\"taskNode\", taskNode);\n const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf, diagramId);\n const taskHeight = node.height;\n log.debug(\"taskHeight after draw\", taskHeight);\n taskWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n if (task.events) {\n const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n let lineLength = maxTaskHeight;\n masterY += 100;\n lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf, diagramId);\n masterY -= 100;\n lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\"y2\", masterY + maxTaskHeight + 100 + maxEventLineLength + 100).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", `url(#${diagramId}-arrowhead)`).attr(\"stroke-dasharray\", \"5,5\");\n }\n masterX = masterX + 200;\n if (isWithoutSections && !conf.timeline?.disableMulticolor) {\n sectionColor++;\n }\n }\n masterY = masterY - 10;\n}, \"drawTasks\");\nvar drawEvents = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, masterX, masterY, conf, diagramId) {\n let maxEventHeight = 0;\n const eventBeginY = masterY;\n masterY = masterY + 100;\n for (const event of events) {\n const eventNode = {\n descr: event,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n log.debug(\"eventNode\", eventNode);\n const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf, diagramId, true);\n const eventHeight = node.height;\n maxEventHeight = maxEventHeight + eventHeight;\n eventWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n masterY = masterY + 10 + eventHeight;\n }\n masterY = eventBeginY;\n return maxEventHeight;\n}, \"drawEvents\");\nvar timelineRenderer_default = {\n setConf: /* @__PURE__ */ __name(() => {\n }, \"setConf\"),\n draw\n};\n\n// src/diagrams/timeline/timelineRendererVertical.ts\nvar NODE_WIDTH = 200;\nvar NODE_PADDING = 5;\nvar NODE_TOTAL_WIDTH = NODE_WIDTH + NODE_PADDING * 2;\nvar EVENT_WIDTH = NODE_WIDTH + 100;\nvar EVENT_TOTAL_WIDTH = EVENT_WIDTH + NODE_PADDING * 2;\nvar EVENT_SPACING = 10;\nvar EVENT_VERTICAL_GAP = 0;\nvar SECTION_TASK_GAP = 20;\nvar TASK_AXIS_GAP = 20;\nvar TASK_VERTICAL_GAP = 30;\nvar EVENT_AXIS_GAP = 50;\nvar draw2 = /* @__PURE__ */ __name(function(text, id, version, diagObj) {\n const conf = getConfig2();\n const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;\n log.debug(\"timeline\", diagObj.db);\n const svg = selectSvgElement(id);\n svg.append(\"g\");\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getCommonDb().getDiagramTitle();\n log.debug(\"task\", tasks2);\n svgDraw_default.initGraphics(svg);\n const sections2 = diagObj.db.getSections();\n log.debug(\"sections\", sections2);\n let maxSectionHeight = 0;\n let maxTaskHeight = 0;\n const masterX = 50 + LEFT_MARGIN;\n let masterY = 50;\n const contentTopY = masterY;\n const sectionBeginX = masterX;\n const leftWidth = NODE_TOTAL_WIDTH + TASK_AXIS_GAP;\n const rightWidth = EVENT_TOTAL_WIDTH + EVENT_AXIS_GAP;\n const axisX = sectionBeginX + leftWidth;\n let sectionNumber = 0;\n const hasSections = sections2 && sections2.length > 0;\n const timelineX = hasSections ? axisX : masterX + leftWidth;\n const sectionWidth = Math.max(50, leftWidth + rightWidth - NODE_PADDING * 2);\n sections2.forEach(function(section) {\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: sectionWidth,\n padding: NODE_PADDING,\n maxHeight: maxSectionHeight\n };\n const sectionHeight = svgDraw_default.getVirtualNodeHeight(svg, sectionNode, conf);\n log.debug(\"sectionHeight before draw\", sectionHeight);\n maxSectionHeight = Math.max(maxSectionHeight, sectionHeight);\n });\n let maxEventStackHeight = 0;\n log.debug(\"tasks.length\", tasks2.length);\n for (const [i, task] of tasks2.entries()) {\n const taskNode = {\n number: i,\n descr: task,\n section: task.section,\n width: NODE_WIDTH,\n padding: NODE_PADDING,\n maxHeight: maxTaskHeight\n };\n const taskHeight = svgDraw_default.getVirtualNodeHeight(svg, taskNode, conf);\n log.debug(\"taskHeight before draw\", taskHeight);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n let maxEventStackHeightTemp = 0;\n for (const event of task.events) {\n const eventNode = {\n descr: event,\n section: task.section,\n number: task.section,\n width: EVENT_WIDTH,\n padding: NODE_PADDING,\n maxHeight: 50\n };\n maxEventStackHeightTemp += svgDraw_default.getVirtualNodeHeight(svg, eventNode, conf);\n }\n if (task.events.length > 0) {\n maxEventStackHeightTemp += (task.events.length - 1) * EVENT_SPACING;\n }\n maxEventStackHeight = Math.max(maxEventStackHeight, maxEventStackHeightTemp) + EVENT_VERTICAL_GAP;\n }\n log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n const taskBlockHeight = Math.max(maxTaskHeight, maxEventStackHeight);\n const taskSpacing = taskBlockHeight + TASK_VERTICAL_GAP;\n if (hasSections) {\n sections2.forEach((section) => {\n const tasksForSection = tasks2.filter((task) => task.section === section);\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: sectionWidth,\n padding: NODE_PADDING,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);\n log.debug(\"sectionNode output\", node);\n const sectionX = timelineX - leftWidth;\n sectionNodeWrapper.attr(\"transform\", `translate(${sectionX}, ${masterY})`);\n const taskStartY = masterY + node.height + SECTION_TASK_GAP;\n if (tasksForSection.length > 0) {\n drawTasks2(\n svg,\n tasksForSection,\n sectionNumber,\n timelineX,\n taskStartY,\n maxTaskHeight,\n conf,\n taskSpacing,\n false\n );\n }\n const taskCount2 = tasksForSection.length;\n const sectionHeight = node.height + SECTION_TASK_GAP + taskSpacing * Math.max(taskCount2, 1) - (taskCount2 > 0 ? TASK_VERTICAL_GAP * 2 : 0);\n masterY += sectionHeight;\n sectionNumber++;\n });\n } else {\n drawTasks2(\n svg,\n tasks2,\n sectionNumber,\n timelineX,\n masterY,\n maxTaskHeight,\n conf,\n taskSpacing,\n true\n );\n }\n let box = svg.node()?.getBBox();\n if (!box) {\n throw new Error(\"bbox not found\");\n }\n log.debug(\"bounds\", box);\n if (title) {\n svg.append(\"text\").text(title).attr(\"x\", box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n box = svg.node()?.getBBox();\n if (!box) {\n throw new Error(\"bbox not found\");\n }\n log.debug(\"bounds after title\", box);\n }\n const [fontSize] = parseFontSize(conf.fontSize);\n const arrowTopOffset = (fontSize ?? 16) * 2;\n const arrowBottomPadding = (fontSize ?? 16) * 0.5 + 20;\n const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n lineWrapper.append(\"line\").attr(\"x1\", timelineX).attr(\"y1\", contentTopY - arrowTopOffset).attr(\"x2\", timelineX).attr(\"y2\", box.y + box.height + arrowBottomPadding).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n lineWrapper.lower();\n setupGraphViewbox(\n void 0,\n svg,\n conf.timeline?.padding ?? 50,\n conf.timeline?.useMaxWidth ?? false\n );\n}, \"draw\");\nvar drawTasks2 = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, timelineX, masterY, maxTaskHeight, conf, taskSpacing, isWithoutSections) {\n for (const task of tasks2) {\n const taskNode = {\n descr: task.task,\n section: sectionColor,\n number: sectionColor,\n width: NODE_WIDTH,\n padding: NODE_PADDING,\n maxHeight: maxTaskHeight\n };\n log.debug(\"taskNode\", taskNode);\n const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf);\n const taskHeight = node.height;\n log.debug(\"taskHeight after draw\", taskHeight);\n const taskX = timelineX - TASK_AXIS_GAP - node.width;\n taskWrapper.attr(\"transform\", `translate(${taskX}, ${masterY})`);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n if (task.events && task.events.length > 0) {\n const eventsStartY = masterY;\n const eventsX = timelineX + EVENT_AXIS_GAP;\n drawEvents2(diagram2, task.events, sectionColor, timelineX, eventsX, eventsStartY, conf);\n }\n masterY = masterY + taskSpacing;\n if (isWithoutSections && !conf.timeline?.disableMulticolor) {\n sectionColor++;\n }\n }\n}, \"drawTasks\");\nvar drawEvents2 = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, axisX, eventsX, startY, conf) {\n let currentY = startY;\n for (const event of events) {\n const eventNode = {\n descr: event,\n section: sectionColor,\n number: sectionColor,\n width: EVENT_WIDTH,\n padding: NODE_PADDING,\n maxHeight: 0\n };\n log.debug(\"eventNode\", eventNode);\n const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf);\n const eventHeight = node.height;\n eventWrapper.attr(\"transform\", `translate(${eventsX}, ${currentY})`);\n const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n const lineY = currentY + eventHeight / 2;\n lineWrapper.append(\"line\").attr(\"x1\", axisX).attr(\"y1\", lineY).attr(\"x2\", eventsX).attr(\"y2\", lineY).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n currentY = currentY + eventHeight + EVENT_SPACING;\n }\n return currentY - startY;\n}, \"drawEvents\");\nvar timelineRendererVertical_default = {\n setConf: /* @__PURE__ */ __name(() => {\n }, \"setConf\"),\n draw: draw2\n};\n\n// src/diagrams/timeline/styles.js\nimport { darken, lighten, isDark } from \"khroma\";\nvar genReduxSections = /* @__PURE__ */ __name((options) => {\n const { theme } = getConfig();\n const isDarkTheme = theme?.includes(\"dark\");\n const isColorTheme = theme?.includes(\"color\");\n const rawSvgId = options.svgId?.replace(/^#/, \"\") ?? \"\";\n const scopedDropShadow = rawSvgId ? `url(#${rawSvgId}-drop-shadow)` : options.dropShadow ?? \"none\";\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = `${17 - 3 * i}`;\n const color = isColorTheme ? options.borderColorArray[i] : options.mainBkg;\n const stroke = isColorTheme ? options.borderColorArray[i] : options.nodeBorder;\n sections2 += `\n .section-${i - 1} rect,\n .section-${i - 1} path,\n .section-${i - 1} circle {\n fill: ${isDarkTheme && isColorTheme ? options.mainBkg : color};\n stroke: ${stroke};\n stroke-width: ${options.strokeWidth};\n filter: ${scopedDropShadow};\n }\n\n .section-${i - 1} text {\n fill: ${options.nodeBorder};\n font-weight: ${options.fontWeight}\n }\n\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n\n .section-edge-${i - 1} {\n stroke: ${options[\"cScale\" + i]};\n }\n\n .edge-depth-${i - 1} {\n stroke-width: ${sw};\n }\n\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]};\n stroke-width: 3;\n }\n\n .lineWrapper line {\n stroke: ${options.nodeBorder};\n stroke-width:${options.strokeWidth}\n }\n\n .disabled,\n .disabled circle,\n .disabled text {\n fill: ${options.tertiaryColor ?? \"lightgray\"};\n }\n\n .disabled text {\n fill: ${options.clusterBorder ?? \"#efefef\"};\n }\n `;\n }\n return sections2;\n}, \"genReduxSections\");\nvar genSections = /* @__PURE__ */ __name((options) => {\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections2 += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${options[\"cScaleLabel\" + i]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: ${options.tertiaryColor ?? \"lightgray\"};\n }\n .disabled text {\n fill: ${options.clusterBorder ?? \"#efefef\"};\n }\n `;\n }\n return sections2;\n}, \"genSections\");\nvar getStyles = /* @__PURE__ */ __name((options) => {\n const { theme } = getConfig();\n const isReduxTheme = theme?.includes(\"redux\");\n const isNeutralTheme = theme === \"neutral\";\n const rawSvgId = options.svgId?.replace(/^#/, \"\") ?? \"\";\n let gradientSections = \"\";\n if (options.useGradient && rawSvgId && options.THEME_COLOR_LIMIT && !isNeutralTheme) {\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n gradientSections += `\n .section-${i - 1}[data-look=\"neo\"] rect,\n .section-${i - 1}[data-look=\"neo\"] path,\n .section-${i - 1}[data-look=\"neo\"] circle {\n fill: ${options.mainBkg};\n stroke: url(#${rawSvgId}-gradient);\n stroke-width: 2;\n }\n .section-${i - 1}[data-look=\"neo\"] line {\n stroke: url(#${rawSvgId}-gradient);\n stroke-width: 2;\n }`;\n }\n }\n return `\n .edge {\n stroke-width: 3;\n }\n ${isReduxTheme ? genReduxSections(options) : genSections(options)}\n ${gradientSections}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/timeline/timeline-definition.ts\nvar rendererSelector = {\n setConf: /* @__PURE__ */ __name(() => {\n }, \"setConf\"),\n draw: /* @__PURE__ */ __name((text, id, version, diagObj) => {\n const direction2 = diagObj?.db?.getDirection?.() ?? \"LR\";\n if (direction2 === \"TD\") {\n return timelineRendererVertical_default.draw(text, id, version, diagObj);\n }\n return timelineRenderer_default.draw(text, id, version, diagObj);\n }, \"draw\")\n};\nvar diagram = {\n db: timelineDb_exports,\n renderer: rendererSelector,\n parser: timeline_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","k","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","timeline_default","timelineDb_exports","__export","addEvent","addSection","addTask","addTaskOrg","clear2","timelineDb_default","getCommonDb","getDirection","getSections","getTasks","setDirection","currentSection","currentTaskId","direction","sections","tasks","rawTasks","commonDb_exports","clear","dir","txt","allItemsProcessed","compileTasks","maxDepth","iterationCount","period","length","event","rawTask","task","descr","newTask","compileTask","pos","allProcessed","nodeCount","drawRect","elem","rectData","rectElem","drawFace","element","faceData","circleElement","face","smile","face2","arc","d3arc","sad","ambivalent","drawCircle","circleData","drawText","textData","nText","textElem","span","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","drawSection","section","conf","g","rect","getNoteRect","_drawTextCandidateFunc","taskCount","drawTask","diagramId","center","drawBackgroundRect","bounds","getTextObj","byText","content","textAttrs","colour","text","_setTextAttrs","byTspan","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","initGraphics","graphics","id","wrap","text2","select","words","word","line","lineHeight","tspan","j","drawNode","node","fullSection","isEvent","theme","look","isReduxTheme","maxSections","_a","nodeElem","bkgElem","bbox","fontSize","_b","defaultBkg","isDark2","rootSvgNode","_c","rootSvg","svgId","dropShadowId","existingDefs","getVirtualNodeHeight","config","rd","d","svgDraw_default","draw","version","diagObj","getConfig2","themeVariables","useGradient","gradientStart","gradientStop","LEFT_MARGIN","log","securityLevel","sandboxElement","select2","svg","tasks2","title","sections2","maxSectionHeight","maxTaskHeight","depthY","sectionBeginY","masterX","masterY","sectionNumber","hasSections","sectionNode","sectionHeight","maxEventCount","maxEventLineLength","taskNode","taskHeight","maxEventLineLengthTemp","eventNode","tasksForSection","sectionNodeWrapper","drawTasks","box","gradient","setupGraphViewbox","diagram2","sectionColor","isWithoutSections","taskWrapper","lineWrapper","lineLength","drawEvents","events","maxEventHeight","eventBeginY","eventWrapper","eventHeight","timelineRenderer_default","NODE_WIDTH","NODE_PADDING","NODE_TOTAL_WIDTH","EVENT_WIDTH","EVENT_TOTAL_WIDTH","EVENT_SPACING","EVENT_VERTICAL_GAP","SECTION_TASK_GAP","TASK_AXIS_GAP","TASK_VERTICAL_GAP","EVENT_AXIS_GAP","draw2","selectSvgElement","contentTopY","sectionBeginX","leftWidth","rightWidth","axisX","timelineX","sectionWidth","maxEventStackHeight","maxEventStackHeightTemp","taskSpacing","sectionX","taskStartY","drawTasks2","taskCount2","parseFontSize","arrowTopOffset","arrowBottomPadding","_d","_e","taskX","eventsStartY","eventsX","drawEvents2","startY","currentY","lineY","timelineRendererVertical_default","genReduxSections","options","getConfig","isDarkTheme","isColorTheme","rawSvgId","scopedDropShadow","sw","color","stroke","genSections","isDark","lighten","darken","getStyles","isNeutralTheme","gradientSections","styles_default","rendererSelector","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|