-
Notifications
You must be signed in to change notification settings - Fork 0
/
3.js.map
1 lines (1 loc) · 75 KB
/
3.js.map
1
{"version":3,"file":"3.js","mappings":"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","sources":["webpack:///../node_modules/mermaid/dist/timeline-definition-8e5a9bc6.js","webpack:///../node_modules/khroma/dist/methods/luminance.js","webpack:///../node_modules/khroma/dist/methods/is_light.js","webpack:///../node_modules/khroma/dist/methods/is_dark.js"],"sourcesContent":["import { j as commonDb, k as parseDirective$1, m as clear$1, g as getConfig, l as log, s as setupGraphViewbox } from \"./mermaid-ae477ddf.js\";\nimport { select, arc } from \"d3\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"uuid\";\nimport \"dagre-d3-es\";\nimport \"dagre-d3-es/src/dagre-js/util.js\";\nimport \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport \"dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js\";\nimport \"dagre-d3-es/src/dagre-js/intersect/intersect-rect.js\";\nimport \"dayjs/plugin/isoWeek.js\";\nimport \"dayjs/plugin/customParseFormat.js\";\nimport \"dayjs/plugin/advancedFormat.js\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"timeline\": 4, \"document\": 5, \"EOF\": 6, \"directive\": 7, \"line\": 8, \"SPACE\": 9, \"statement\": 10, \"NEWLINE\": 11, \"openDirective\": 12, \"typeDirective\": 13, \"closeDirective\": 14, \":\": 15, \"argDirective\": 16, \"title\": 17, \"acc_title\": 18, \"acc_title_value\": 19, \"acc_descr\": 20, \"acc_descr_value\": 21, \"acc_descr_multiline_value\": 22, \"section\": 23, \"period_statement\": 24, \"event_statement\": 25, \"period\": 26, \"event\": 27, \"open_directive\": 28, \"type_directive\": 29, \"arg_directive\": 30, \"close_directive\": 31, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"timeline\", 6: \"EOF\", 9: \"SPACE\", 11: \"NEWLINE\", 15: \":\", 17: \"title\", 18: \"acc_title\", 19: \"acc_title_value\", 20: \"acc_descr\", 21: \"acc_descr_value\", 22: \"acc_descr_multiline_value\", 23: \"section\", 26: \"period\", 27: \"event\", 28: \"open_directive\", 29: \"type_directive\", 30: \"arg_directive\", 31: \"close_directive\" },\n productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 3:\n this.$ = [];\n break;\n case 4:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 5:\n case 6:\n this.$ = $$[$0];\n break;\n case 7:\n case 8:\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 19:\n yy.addTask($$[$0], 0, \"\");\n this.$ = $$[$0];\n break;\n case 20:\n yy.addEvent($$[$0].substr(2));\n this.$ = $$[$0];\n break;\n case 21:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 22:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 23:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 24:\n yy.parseDirective(\"}%%\", \"close_directive\", \"timeline\");\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])],\n defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },\n parseError: 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 },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 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 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 var symbol, state, action, 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 {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\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 }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: 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 },\n // resets the lexer, sets new input\n setInput: 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 },\n // consumes and returns one char from the input\n input: 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 },\n // unshifts one char (or a string) into the input\n unput: 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 },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\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: 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 },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: 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 },\n // displays upcoming input, i.e. for error messages\n upcomingInput: 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 },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: 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 },\n // return next match in input\n next: 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 },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: 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 },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: 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 },\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: 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 },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 28;\n case 1:\n this.begin(\"type_directive\");\n return 29;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 15;\n case 3:\n this.popState();\n this.popState();\n return 31;\n case 4:\n return 30;\n case 5:\n break;\n case 6:\n break;\n case 7:\n return 11;\n case 8:\n break;\n case 9:\n break;\n case 10:\n return 4;\n case 11:\n return 17;\n case 12:\n this.begin(\"acc_title\");\n return 18;\n case 13:\n this.popState();\n return \"acc_title_value\";\n case 14:\n this.begin(\"acc_descr\");\n return 20;\n case 15:\n this.popState();\n return \"acc_descr_value\";\n case 16:\n this.begin(\"acc_descr_multiline\");\n break;\n case 17:\n this.popState();\n break;\n case 18:\n return \"acc_descr_multiline_value\";\n case 19:\n return 23;\n case 20:\n return 27;\n case 21:\n return 26;\n case 22:\n return 6;\n case 23:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/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;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [17, 18], \"inclusive\": false }, \"acc_descr\": { \"rules\": [15], \"inclusive\": false }, \"acc_title\": { \"rules\": [13], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nlet currentTaskId = 0;\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst getCommonDb = () => commonDb;\nconst parseDirective = (statement, context, type) => {\n parseDirective$1(globalThis, statement, context, type);\n};\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = 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};\nconst addTask = 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};\nconst addEvent = function(event) {\n const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n currentTask.events.push(event);\n};\nconst addTaskOrg = 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};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\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};\nconst timelineDb = {\n clear,\n getCommonDb,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n addEvent,\n parseDirective\n};\nconst db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addEvent,\n addSection,\n addTask,\n addTaskOrg,\n clear,\n default: timelineDb,\n getCommonDb,\n getSections,\n getTasks,\n parseDirective\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst MAX_SECTIONS = 12;\nconst drawRect = 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};\nconst drawFace = 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$1 = arc().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$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().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$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\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 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};\nconst drawCircle = 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};\nconst drawText = 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};\nconst drawLabel = 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 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};\nconst drawSection = function(elem, section, conf2) {\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 = conf2.width;\n rect.height = conf2.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf2)(\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 conf2,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf2) {\n const center = task.x + conf2.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"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 = conf2.width;\n rect.height = conf2.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n task.x + 14;\n _drawTextCandidateFunc(conf2)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf2,\n task.colour\n );\n};\nconst drawBackgroundRect = 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};\nconst getTextObj = 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};\nconst getNoteRect = 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};\nconst _drawTextCandidateFunc = 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 function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {\n const { taskFontSize, taskFontFamily } = conf2;\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 function byFo(content, g, x, y, width, height, textAttrs, conf2) {\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, conf2);\n _setTextAttrs(text, textAttrs);\n }\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 return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"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};\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}\nconst drawNode = function(elem, node, fullSection, conf2) {\n const section = fullSection % MAX_SECTIONS - 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 = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace(\"px\", \"\") : conf2.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 defaultBkg(bkgElem, node, section);\n return node;\n};\nconst getVirtualNodeHeight = function(elem, node, conf2) {\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 = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace(\"px\", \"\") : conf2.fontSize;\n textElem.remove();\n return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n};\nconst defaultBkg = function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\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};\nconst svgDraw = {\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};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n keys.forEach(function(key) {\n conf[key] = cnf[key];\n });\n};\nconst draw = function(text, id, version, diagObj) {\n const conf2 = getConfig();\n const LEFT_MARGIN = conf2.leftMargin ? conf2.leftMargin : 50;\n diagObj.db.clear();\n diagObj.parser.parse(text + \"\\n\");\n log.debug(\"timeline\", diagObj.db);\n const securityLevel = conf2.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"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.initGraphics(svg);\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.getVirtualNodeHeight(svg, sectionNode, conf2);\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.getVirtualNodeHeight(svg, taskNode, conf2);\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 (let j = 0; j < task.events.length; j++) {\n const event = task.events[j];\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.getVirtualNodeHeight(svg, eventNode, conf2);\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 sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 150,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf2);\n log.debug(\"sectionNode output\", node);\n sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n masterY += maxSectionHeight + 50;\n const tasksForSection = tasks2.filter((task) => task.section === section);\n if (tasksForSection.length > 0) {\n drawTasks(\n svg,\n tasksForSection,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf2,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n false\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 conf2,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n true\n );\n }\n const box = svg.node().getBBox();\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 }\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(#arrowhead)\");\n setupGraphViewbox(\n void 0,\n svg,\n conf2.timeline.padding ? conf2.timeline.padding : 50,\n conf2.timeline.useMaxWidth ? conf2.timeline.useMaxWidth : false\n );\n};\nconst drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf2, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {\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.drawNode(taskWrapper, taskNode, sectionColor, conf2);\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, conf2);\n masterY -= 100;\n lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\n \"y2\",\n masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120\n ).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n }\n masterX = masterX + 200;\n if (isWithoutSections && !getConfig().timeline.disableMulticolor) {\n sectionColor++;\n }\n }\n masterY = masterY - 10;\n};\nconst drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf2) {\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.drawNode(eventWrapper, eventNode, sectionColor, conf2);\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};\nconst renderer = {\n setConf,\n draw\n};\nconst genSections = (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: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections2;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\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`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser: parser$1,\n styles\n};\nexport {\n diagram\n};\n//# sourceMappingURL=timeline-definition-8e5a9bc6.js.map\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n","/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n","/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n"],"names":["parser","o","k","v","o2","l","length","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","parser2","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","this","$","push","getCommonDb","setDiagramTitle","substr","trim","setAccTitle","setAccDescription","addSection","addTask","addEvent","parseDirective","replace","table","defaultActions","parseError","str","hash","recoverable","error","Error","parse","input","self","stack","tstack","vstack","lstack","TERROR","EOF","args","slice","call","arguments","lexer2","Object","create","lexer","sharedState","prototype","hasOwnProperty","setInput","yylloc","yyloc","ranges","options","lex","token","pop","Array","getPrototypeOf","symbol","state","action","r","p","len","newState","expected","yyval","errStr","showPosition","join","text","match","line","loc","first_line","last_line","first_column","last_column","range","apply","concat","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","unput","lines","split","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","index","rules","_currentRules","i","flex","begin","condition","popState","conditions","topState","Math","abs","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","currentSection","currentTaskId","sections","tasks","rawTasks","statement","context","type","globalThis","clear","txt","getSections","getTasks","allItemsProcessed","compileTasks","iterationCount","period","event","rawTask","id","section","task","score","events","find","addTaskOrg","descr","newTask","description","classes","allProcessed","entries","processed","timelineDb","db","freeze","defineProperty","__proto__","default","Symbol","toStringTag","value","byText","content","g","x","y","width","height","textAttrs","colour","_setTextAttrs","append","attr","style","byTspan","conf2","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","wrap","each","word","text2","select","words","reverse","parseFloat","tspan","j","node","getComputedTextLength","lineHeight","defaultBkg","elem","svgDraw","graphics","fullSection","nodeElem","class","bkgElem","textElem","bbox","getBBox","fontSize","padding","max","maxHeight","remove","drawTasks","diagram2","tasks2","sectionColor","masterX","masterY","maxTaskHeight","maxEventCount","maxEventLineLength","maxSectionHeight","isWithoutSections","taskNode","number","taskWrapper","taskHeight","lineWrapper","linelength","drawEvents","timeline","disableMulticolor","maxEventHeight","eventBeginY","eventNode","eventWrapper","eventHeight","diagram","renderer","setConf","cnf","keys","forEach","conf","draw","version","diagObj","LEFT_MARGIN","leftMargin","securityLevel","sandboxElement","svg","nodes","contentDocument","title","getDiagramTitle","sections2","depthY","sectionBeginY","sectionNumber","hasSections","sectionHeight","maxEventLineLengthTemp","sectionNode","sectionNodeWrapper","tasksForSection","filter","box","s","useMaxWidth","styles","THEME_COLOR_LIMIT","sw","genSections","git0","gitBranchLabel0","color","b","luminance"],"sourceRoot":""}