@render-harness/ui 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/static/assets/{architectureDiagram-3BPJPVTR-DLNRxqTW.js → architectureDiagram-3BPJPVTR-CFD3Y1kc.js} +2 -2
  2. package/dist/static/assets/{architectureDiagram-3BPJPVTR-DLNRxqTW.js.map → architectureDiagram-3BPJPVTR-CFD3Y1kc.js.map} +1 -1
  3. package/dist/static/assets/{blockDiagram-GPEHLZMM-CCWTkWe6.js → blockDiagram-GPEHLZMM-Elf3j5Yp.js} +3 -3
  4. package/dist/static/assets/{blockDiagram-GPEHLZMM-CCWTkWe6.js.map → blockDiagram-GPEHLZMM-Elf3j5Yp.js.map} +1 -1
  5. package/dist/static/assets/{c4Diagram-AAUBKEIU-qO0tZRXO.js → c4Diagram-AAUBKEIU-COPyA4Y2.js} +2 -2
  6. package/dist/static/assets/{c4Diagram-AAUBKEIU-qO0tZRXO.js.map → c4Diagram-AAUBKEIU-COPyA4Y2.js.map} +1 -1
  7. package/dist/static/assets/{chunk-3OPIFGDE-xcRWDOrg.js → chunk-3OPIFGDE-P0oLihOV.js} +2 -2
  8. package/dist/static/assets/{chunk-3OPIFGDE-xcRWDOrg.js.map → chunk-3OPIFGDE-P0oLihOV.js.map} +1 -1
  9. package/dist/static/assets/{chunk-5ZQYHXKU-B_3UEJ_q.js → chunk-5ZQYHXKU-CCVDVWrS.js} +2 -2
  10. package/dist/static/assets/{chunk-5ZQYHXKU-B_3UEJ_q.js.map → chunk-5ZQYHXKU-CCVDVWrS.js.map} +1 -1
  11. package/dist/static/assets/{chunk-727SXJPM-c1bbIj6N.js → chunk-727SXJPM-CNNkFQDE.js} +2 -2
  12. package/dist/static/assets/{chunk-727SXJPM-c1bbIj6N.js.map → chunk-727SXJPM-CNNkFQDE.js.map} +1 -1
  13. package/dist/static/assets/{chunk-AQP2D5EJ-Wv0w6wvH.js → chunk-AQP2D5EJ-BmW_1ljM.js} +2 -2
  14. package/dist/static/assets/{chunk-AQP2D5EJ-Wv0w6wvH.js.map → chunk-AQP2D5EJ-BmW_1ljM.js.map} +1 -1
  15. package/dist/static/assets/{chunk-KSCS5N6A-BZrceHGX.js → chunk-KSCS5N6A-B2emJsw5.js} +3 -3
  16. package/dist/static/assets/{chunk-KSCS5N6A-BZrceHGX.js.map → chunk-KSCS5N6A-B2emJsw5.js.map} +1 -1
  17. package/dist/static/assets/{chunk-L5ZTLDWV-BAcjEn3C.js → chunk-L5ZTLDWV-DZfwPtSD.js} +2 -2
  18. package/dist/static/assets/{chunk-L5ZTLDWV-BAcjEn3C.js.map → chunk-L5ZTLDWV-DZfwPtSD.js.map} +1 -1
  19. package/dist/static/assets/{chunk-O5CBEL6O-KRO56hHQ.js → chunk-O5CBEL6O-CNfA3Ek9.js} +2 -2
  20. package/dist/static/assets/{chunk-O5CBEL6O-KRO56hHQ.js.map → chunk-O5CBEL6O-CNfA3Ek9.js.map} +1 -1
  21. package/dist/static/assets/classDiagram-4FO5ZUOK-BRBJdDvt.js +2 -0
  22. package/dist/static/assets/{classDiagram-4FO5ZUOK-oexPF7ww.js.map → classDiagram-4FO5ZUOK-BRBJdDvt.js.map} +1 -1
  23. package/dist/static/assets/classDiagram-v2-Q7XG4LA2-CQjk9kLc.js +2 -0
  24. package/dist/static/assets/{classDiagram-v2-Q7XG4LA2-Dc4jeSLj.js.map → classDiagram-v2-Q7XG4LA2-CQjk9kLc.js.map} +1 -1
  25. package/dist/static/assets/{dagre-BM42HDAG-au4dCVgC.js → dagre-BM42HDAG-DovnSGTF.js} +2 -2
  26. package/dist/static/assets/{dagre-BM42HDAG-au4dCVgC.js.map → dagre-BM42HDAG-DovnSGTF.js.map} +1 -1
  27. package/dist/static/assets/{diagram-2AECGRRQ-rJMnDhBW.js → diagram-2AECGRRQ-DL9VAGtd.js} +2 -2
  28. package/dist/static/assets/{diagram-2AECGRRQ-rJMnDhBW.js.map → diagram-2AECGRRQ-DL9VAGtd.js.map} +1 -1
  29. package/dist/static/assets/{diagram-5GNKFQAL-diIxjA-v.js → diagram-5GNKFQAL-Crr9YjF6.js} +2 -2
  30. package/dist/static/assets/{diagram-5GNKFQAL-diIxjA-v.js.map → diagram-5GNKFQAL-Crr9YjF6.js.map} +1 -1
  31. package/dist/static/assets/{diagram-KO2AKTUF-D9IYocVR.js → diagram-KO2AKTUF-B3yOnGTs.js} +2 -2
  32. package/dist/static/assets/{diagram-KO2AKTUF-D9IYocVR.js.map → diagram-KO2AKTUF-B3yOnGTs.js.map} +1 -1
  33. package/dist/static/assets/{diagram-LMA3HP47-BtdvpqaH.js → diagram-LMA3HP47-KALO7OjG.js} +2 -2
  34. package/dist/static/assets/{diagram-LMA3HP47-BtdvpqaH.js.map → diagram-LMA3HP47-KALO7OjG.js.map} +1 -1
  35. package/dist/static/assets/{diagram-OG6HWLK6-CaRkxDoj.js → diagram-OG6HWLK6-D0GPjAxV.js} +2 -2
  36. package/dist/static/assets/{diagram-OG6HWLK6-CaRkxDoj.js.map → diagram-OG6HWLK6-D0GPjAxV.js.map} +1 -1
  37. package/dist/static/assets/{erDiagram-TEJ5UH35-CgifrqeZ.js → erDiagram-TEJ5UH35-ksCvepnP.js} +2 -2
  38. package/dist/static/assets/{erDiagram-TEJ5UH35-CgifrqeZ.js.map → erDiagram-TEJ5UH35-ksCvepnP.js.map} +1 -1
  39. package/dist/static/assets/{flowDiagram-I6XJVG4X-DaguIeM_.js → flowDiagram-I6XJVG4X-BT1bpfq2.js} +2 -2
  40. package/dist/static/assets/{flowDiagram-I6XJVG4X-DaguIeM_.js.map → flowDiagram-I6XJVG4X-BT1bpfq2.js.map} +1 -1
  41. package/dist/static/assets/ganttDiagram-6RSMTGT7-Cg3QTIl7.js +293 -0
  42. package/dist/static/assets/ganttDiagram-6RSMTGT7-Cg3QTIl7.js.map +1 -0
  43. package/dist/static/assets/{gitGraphDiagram-PVQCEYII-Ht-SDjxh.js → gitGraphDiagram-PVQCEYII-AW-DbGHw.js} +2 -2
  44. package/dist/static/assets/{gitGraphDiagram-PVQCEYII-Ht-SDjxh.js.map → gitGraphDiagram-PVQCEYII-AW-DbGHw.js.map} +1 -1
  45. package/dist/static/assets/index-B1CSiQFH.js +260 -0
  46. package/dist/static/assets/index-B1CSiQFH.js.map +1 -0
  47. package/dist/static/assets/{index-luXiT-gK.css → index-BJZaWHUt.css} +1 -1
  48. package/dist/static/assets/{infoDiagram-5YYISTIA-CwLGA7Zu.js → infoDiagram-5YYISTIA-DZzRjoNy.js} +2 -2
  49. package/dist/static/assets/{infoDiagram-5YYISTIA-CwLGA7Zu.js.map → infoDiagram-5YYISTIA-DZzRjoNy.js.map} +1 -1
  50. package/dist/static/assets/init-D6CV0rqX.js +2 -0
  51. package/dist/static/assets/{init-Dfd1k18d.js.map → init-D6CV0rqX.js.map} +1 -1
  52. package/dist/static/assets/{ishikawaDiagram-YF4QCWOH-CaZCrUUR.js → ishikawaDiagram-YF4QCWOH-A-bX4Zu0.js} +2 -2
  53. package/dist/static/assets/{ishikawaDiagram-YF4QCWOH-CaZCrUUR.js.map → ishikawaDiagram-YF4QCWOH-A-bX4Zu0.js.map} +1 -1
  54. package/dist/static/assets/{kanban-definition-UN3LZRKU-DlYha85J.js → kanban-definition-UN3LZRKU-ibATe6sx.js} +2 -2
  55. package/dist/static/assets/{kanban-definition-UN3LZRKU-DlYha85J.js.map → kanban-definition-UN3LZRKU-ibATe6sx.js.map} +1 -1
  56. package/dist/static/assets/{line-GCwXS1Fi.js → line-DvIoplHa.js} +2 -2
  57. package/dist/static/assets/{line-GCwXS1Fi.js.map → line-DvIoplHa.js.map} +1 -1
  58. package/dist/static/assets/linear-D0P02-YR.js +2 -0
  59. package/dist/static/assets/{linear-CTnL8jvu.js.map → linear-D0P02-YR.js.map} +1 -1
  60. package/dist/static/assets/{mindmap-definition-RKZ34NQL-CPJIWJdQ.js → mindmap-definition-RKZ34NQL-BYhA5Frb.js} +2 -2
  61. package/dist/static/assets/{mindmap-definition-RKZ34NQL-CPJIWJdQ.js.map → mindmap-definition-RKZ34NQL-BYhA5Frb.js.map} +1 -1
  62. package/dist/static/assets/{ordinal-DjeI0KOh.js → ordinal-D-PEDSg4.js} +2 -2
  63. package/dist/static/assets/{ordinal-DjeI0KOh.js.map → ordinal-D-PEDSg4.js.map} +1 -1
  64. package/dist/static/assets/{pieDiagram-4H26LBE5-DTVmF_CH.js → pieDiagram-4H26LBE5-qud9ZeDs.js} +2 -2
  65. package/dist/static/assets/{pieDiagram-4H26LBE5-DTVmF_CH.js.map → pieDiagram-4H26LBE5-qud9ZeDs.js.map} +1 -1
  66. package/dist/static/assets/{quadrantDiagram-W4KKPZXB-Bho6zy_y.js → quadrantDiagram-W4KKPZXB-B5lPA7rJ.js} +2 -2
  67. package/dist/static/assets/{quadrantDiagram-W4KKPZXB-Bho6zy_y.js.map → quadrantDiagram-W4KKPZXB-B5lPA7rJ.js.map} +1 -1
  68. package/dist/static/assets/{requirementDiagram-4Y6WPE33-CLyoVwlh.js → requirementDiagram-4Y6WPE33-C0mLADne.js} +2 -2
  69. package/dist/static/assets/{requirementDiagram-4Y6WPE33-CLyoVwlh.js.map → requirementDiagram-4Y6WPE33-C0mLADne.js.map} +1 -1
  70. package/dist/static/assets/{sankeyDiagram-5OEKKPKP-V2yvk-0Z.js → sankeyDiagram-5OEKKPKP-vwfoPxTH.js} +2 -2
  71. package/dist/static/assets/{sankeyDiagram-5OEKKPKP-V2yvk-0Z.js.map → sankeyDiagram-5OEKKPKP-vwfoPxTH.js.map} +1 -1
  72. package/dist/static/assets/{sequenceDiagram-3UESZ5HK-Dp03aXVk.js → sequenceDiagram-3UESZ5HK-DtPUE6ba.js} +2 -2
  73. package/dist/static/assets/{sequenceDiagram-3UESZ5HK-Dp03aXVk.js.map → sequenceDiagram-3UESZ5HK-DtPUE6ba.js.map} +1 -1
  74. package/dist/static/assets/{stateDiagram-AJRCARHV-BEJW-_HK.js → stateDiagram-AJRCARHV-BaeNtGLJ.js} +2 -2
  75. package/dist/static/assets/{stateDiagram-AJRCARHV-BEJW-_HK.js.map → stateDiagram-AJRCARHV-BaeNtGLJ.js.map} +1 -1
  76. package/dist/static/assets/stateDiagram-v2-BHNVJYJU-DbTX_m6G.js +2 -0
  77. package/dist/static/assets/{stateDiagram-v2-BHNVJYJU-Bo19-vKE.js.map → stateDiagram-v2-BHNVJYJU-DbTX_m6G.js.map} +1 -1
  78. package/dist/static/assets/{timeline-definition-PNZ67QCA-C4KTq0mQ.js → timeline-definition-PNZ67QCA-C9H1UzNY.js} +2 -2
  79. package/dist/static/assets/{timeline-definition-PNZ67QCA-C4KTq0mQ.js.map → timeline-definition-PNZ67QCA-C9H1UzNY.js.map} +1 -1
  80. package/dist/static/assets/{vennDiagram-CIIHVFJN-1jmBZPSZ.js → vennDiagram-CIIHVFJN-BpQ2qCN5.js} +2 -2
  81. package/dist/static/assets/{vennDiagram-CIIHVFJN-1jmBZPSZ.js.map → vennDiagram-CIIHVFJN-BpQ2qCN5.js.map} +1 -1
  82. package/dist/static/assets/{wardleyDiagram-YWT4CUSO-A8XYzYTW.js → wardleyDiagram-YWT4CUSO-CQ8dLujr.js} +2 -2
  83. package/dist/static/assets/{wardleyDiagram-YWT4CUSO-A8XYzYTW.js.map → wardleyDiagram-YWT4CUSO-CQ8dLujr.js.map} +1 -1
  84. package/dist/static/assets/{xychartDiagram-2RQKCTM6-CuyUQvFt.js → xychartDiagram-2RQKCTM6-BCRK_Cs-.js} +4 -4
  85. package/dist/static/assets/xychartDiagram-2RQKCTM6-BCRK_Cs-.js.map +1 -0
  86. package/dist/static/index.html +14 -10
  87. package/package.json +14 -13
  88. package/dist/static/assets/classDiagram-4FO5ZUOK-oexPF7ww.js +0 -2
  89. package/dist/static/assets/classDiagram-v2-Q7XG4LA2-Dc4jeSLj.js +0 -2
  90. package/dist/static/assets/ganttDiagram-6RSMTGT7-DIFubQTa.js +0 -293
  91. package/dist/static/assets/ganttDiagram-6RSMTGT7-DIFubQTa.js.map +0 -1
  92. package/dist/static/assets/index-D5tmHkO_.js +0 -228
  93. package/dist/static/assets/index-D5tmHkO_.js.map +0 -1
  94. package/dist/static/assets/init-Dfd1k18d.js +0 -2
  95. package/dist/static/assets/linear-CTnL8jvu.js +0 -2
  96. package/dist/static/assets/stateDiagram-v2-BHNVJYJU-Bo19-vKE.js +0 -2
  97. package/dist/static/assets/xychartDiagram-2RQKCTM6-CuyUQvFt.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-definition-PNZ67QCA-C4KTq0mQ.js","names":["d3arc","select","select2"],"sources":["../../../../../node_modules/.pnpm/mermaid@11.15.0/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-PNZ67QCA.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-WU5MYG2G.mjs\";\nimport {\n parseFontSize\n} from \"./chunk-5ZQYHXKU.mjs\";\nimport {\n clear,\n commonDb_exports,\n getConfig,\n getConfig2,\n setupGraphViewbox\n} from \"./chunk-CSCIHK7Q.mjs\";\nimport {\n __export,\n __name,\n log\n} from \"./chunk-AGHRB4JF.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"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"timeline-definition-PNZ67QCA-C9H1UzNY.js","names":["d3arc","select","select2"],"sources":["../../../../../node_modules/.pnpm/mermaid@11.15.0/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-PNZ67QCA.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-WU5MYG2G.mjs\";\nimport {\n parseFontSize\n} from \"./chunk-5ZQYHXKU.mjs\";\nimport {\n clear,\n commonDb_exports,\n getConfig,\n getConfig2,\n setupGraphViewbox\n} from \"./chunk-CSCIHK7Q.mjs\";\nimport {\n __export,\n __name,\n log\n} from \"./chunk-AGHRB4JF.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"],"x_google_ignoreList":[0],"mappings":"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"}