f7cloud_client/apps/whiteboard/js/mindmap-definition-fc14e90a-D7uqoyZo.chunk.mjs.map
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

1 line
72 KiB
Plaintext

{"version":3,"file":"mindmap-definition-fc14e90a-D7uqoyZo.chunk.mjs","sources":["../node_modules/@nextcloud/excalidraw/node_modules/mermaid/dist/mindmap-definition-fc14e90a.js"],"sourcesContent":["import { l as log, c as getConfig, B as defaultConfig, d as sanitizeText, D as parseFontSize, A as selectSvgElement, o as setupGraphViewbox } from \"./mermaid-b5860b54.js\";\nimport cytoscape from \"cytoscape\";\nimport coseBilkent from \"cytoscape-cose-bilkent\";\nimport { select } from \"d3\";\nimport { a as createText } from \"./createText-2e5e7dd3.js\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\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, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mindMap\": 4, \"spaceLines\": 5, \"SPACELINE\": 6, \"NL\": 7, \"MINDMAP\": 8, \"document\": 9, \"stop\": 10, \"EOF\": 11, \"statement\": 12, \"SPACELIST\": 13, \"node\": 14, \"ICON\": 15, \"CLASS\": 16, \"nodeWithId\": 17, \"nodeWithoutId\": 18, \"NODE_DSTART\": 19, \"NODE_DESCR\": 20, \"NODE_DEND\": 21, \"NODE_ID\": 22, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"SPACELINE\", 7: \"NL\", 8: \"MINDMAP\", 11: \"EOF\", 13: \"SPACELIST\", 15: \"ICON\", 16: \"CLASS\", 19: \"NODE_DSTART\", 20: \"NODE_DESCR\", 21: \"NODE_DEND\", 22: \"NODE_ID\" },\n productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n case 7:\n return yy;\n case 8:\n yy.getLogger().trace(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().trace(\"Stop EOF \");\n break;\n case 11:\n yy.getLogger().trace(\"Stop NL2 \");\n break;\n case 12:\n yy.getLogger().trace(\"Stop EOF2 \");\n break;\n case 15:\n yy.getLogger().info(\"Node: \", $$[$0].id);\n yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 16:\n yy.getLogger().trace(\"Icon: \", $$[$0]);\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 17:\n case 21:\n yy.decorateNode({ class: $$[$0] });\n break;\n case 18:\n yy.getLogger().trace(\"SPACELIST\");\n break;\n case 19:\n yy.getLogger().trace(\"Node: \", $$[$0].id);\n yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 20:\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 25:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 2]);\n this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 26:\n this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };\n break;\n case 27:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 3]);\n this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],\n defaultActions: { 2: [2, 1], 6: [2, 2] },\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 yy.getLogger().trace(\"Found comment\", yy_.yytext);\n return 6;\n case 1:\n return 8;\n case 2:\n this.begin(\"CLASS\");\n break;\n case 3:\n this.popState();\n return 16;\n case 4:\n this.popState();\n break;\n case 5:\n yy.getLogger().trace(\"Begin icon\");\n this.begin(\"ICON\");\n break;\n case 6:\n yy.getLogger().trace(\"SPACELINE\");\n return 6;\n case 7:\n return 7;\n case 8:\n return 15;\n case 9:\n yy.getLogger().trace(\"end icon\");\n this.popState();\n break;\n case 10:\n yy.getLogger().trace(\"Exploding node\");\n this.begin(\"NODE\");\n return 19;\n case 11:\n yy.getLogger().trace(\"Cloud\");\n this.begin(\"NODE\");\n return 19;\n case 12:\n yy.getLogger().trace(\"Explosion Bang\");\n this.begin(\"NODE\");\n return 19;\n case 13:\n yy.getLogger().trace(\"Cloud Bang\");\n this.begin(\"NODE\");\n return 19;\n case 14:\n this.begin(\"NODE\");\n return 19;\n case 15:\n this.begin(\"NODE\");\n return 19;\n case 16:\n this.begin(\"NODE\");\n return 19;\n case 17:\n this.begin(\"NODE\");\n return 19;\n case 18:\n return 13;\n case 19:\n return 22;\n case 20:\n return 11;\n case 21:\n this.begin(\"NSTR2\");\n break;\n case 22:\n return \"NODE_DESCR\";\n case 23:\n this.popState();\n break;\n case 24:\n yy.getLogger().trace(\"Starting NSTR\");\n this.begin(\"NSTR\");\n break;\n case 25:\n yy.getLogger().trace(\"description:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 26:\n this.popState();\n break;\n case 27:\n this.popState();\n yy.getLogger().trace(\"node end ))\");\n return \"NODE_DEND\";\n case 28:\n this.popState();\n yy.getLogger().trace(\"node end )\");\n return \"NODE_DEND\";\n case 29:\n this.popState();\n yy.getLogger().trace(\"node end ...\", yy_.yytext);\n return \"NODE_DEND\";\n case 30:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 31:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 32:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 33:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 34:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 35:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n case 36:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n }\n },\n rules: [/^(?:\\s*%%.*)/i, /^(?:mindmap\\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\\n)/i, /^(?:::icon\\()/i, /^(?:[\\s]+[\\n])/i, /^(?:[\\n]+)/i, /^(?:[^\\)]+)/i, /^(?:\\))/i, /^(?:-\\))/i, /^(?:\\(-)/i, /^(?:\\)\\))/i, /^(?:\\))/i, /^(?:\\(\\()/i, /^(?:\\{\\{)/i, /^(?:\\()/i, /^(?:\\[)/i, /^(?:[\\s]+)/i, /^(?:[^\\(\\[\\n\\)\\{\\}]+)/i, /^(?:$)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[^\"]+)/i, /^(?:[\"])/i, /^(?:[\\)]\\))/i, /^(?:[\\)])/i, /^(?:[\\]])/i, /^(?:\\}\\})/i, /^(?:\\(-)/i, /^(?:-\\))/i, /^(?:\\(\\()/i, /^(?:\\()/i, /^(?:[^\\)\\]\\(\\}]+)/i, /^(?:.+(?!\\(\\())/i],\n conditions: { \"CLASS\": { \"rules\": [3, 4], \"inclusive\": false }, \"ICON\": { \"rules\": [8, 9], \"inclusive\": false }, \"NSTR2\": { \"rules\": [22, 23], \"inclusive\": false }, \"NSTR\": { \"rules\": [25, 26], \"inclusive\": false }, \"NODE\": { \"rules\": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], \"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 nodes = [];\nlet cnt = 0;\nlet elements = {};\nconst clear = () => {\n nodes = [];\n cnt = 0;\n elements = {};\n};\nconst getParent = function(level) {\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].level < level) {\n return nodes[i];\n }\n }\n return null;\n};\nconst getMindmap = () => {\n return nodes.length > 0 ? nodes[0] : null;\n};\nconst addNode = (level, id, descr, type) => {\n var _a, _b;\n log.info(\"addNode\", level, id, descr, type);\n const conf = getConfig();\n let padding = ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding;\n switch (type) {\n case nodeType.ROUNDED_RECT:\n case nodeType.RECT:\n case nodeType.HEXAGON:\n padding *= 2;\n }\n const node = {\n id: cnt++,\n nodeId: sanitizeText(id, conf),\n level,\n descr: sanitizeText(descr, conf),\n type,\n children: [],\n width: ((_b = conf.mindmap) == null ? void 0 : _b.maxNodeWidth) ?? defaultConfig.mindmap.maxNodeWidth,\n padding\n };\n const parent = getParent(level);\n if (parent) {\n parent.children.push(node);\n nodes.push(node);\n } else {\n if (nodes.length === 0) {\n nodes.push(node);\n } else {\n throw new Error(\n 'There can be only one root. No parent could be found for (\"' + node.descr + '\")'\n );\n }\n }\n};\nconst nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6\n};\nconst getType = (startStr, endStr) => {\n log.debug(\"In get type\", startStr, endStr);\n switch (startStr) {\n case \"[\":\n return nodeType.RECT;\n case \"(\":\n return endStr === \")\" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;\n case \"((\":\n return nodeType.CIRCLE;\n case \")\":\n return nodeType.CLOUD;\n case \"))\":\n return nodeType.BANG;\n case \"{{\":\n return nodeType.HEXAGON;\n default:\n return nodeType.DEFAULT;\n }\n};\nconst setElementForId = (id, element) => {\n elements[id] = element;\n};\nconst decorateNode = (decoration) => {\n if (!decoration) {\n return;\n }\n const config = getConfig();\n const node = nodes[nodes.length - 1];\n if (decoration.icon) {\n node.icon = sanitizeText(decoration.icon, config);\n }\n if (decoration.class) {\n node.class = sanitizeText(decoration.class, config);\n }\n};\nconst type2Str = (type) => {\n switch (type) {\n case nodeType.DEFAULT:\n return \"no-border\";\n case nodeType.RECT:\n return \"rect\";\n case nodeType.ROUNDED_RECT:\n return \"rounded-rect\";\n case nodeType.CIRCLE:\n return \"circle\";\n case nodeType.CLOUD:\n return \"cloud\";\n case nodeType.BANG:\n return \"bang\";\n case nodeType.HEXAGON:\n return \"hexgon\";\n default:\n return \"no-border\";\n }\n};\nconst getLogger = () => log;\nconst getElementById = (id) => elements[id];\nconst db = {\n clear,\n addNode,\n getMindmap,\n nodeType,\n getType,\n setElementForId,\n decorateNode,\n type2Str,\n getLogger,\n getElementById\n};\nconst db$1 = db;\nconst MAX_SECTIONS = 12;\nconst defaultBkg = function(db2, elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(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 rectBkg = function(db2, elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\"height\", node.height).attr(\"width\", node.width);\n};\nconst cloudBkg = function(db2, elem, node) {\n const w = node.width;\n const h = node.height;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n\n H0 V0 Z`\n );\n};\nconst bangBkg = function(db2, elem, node) {\n const w = node.width;\n const h = node.height;\n const r = 0.15 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}\n\n a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}\n a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}\n a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}\n\n H0 V0 Z`\n );\n};\nconst circleBkg = function(db2, elem, node) {\n elem.append(\"circle\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\"r\", node.width / 2);\n};\nfunction insertPolygonShape(parent, w, h, points, node) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + (node.width - w) / 2 + \", \" + h + \")\");\n}\nconst hexagonBkg = function(_db, elem, node) {\n const h = node.height;\n const f = 4;\n const m = h / f;\n const w = node.width - node.padding + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n insertPolygonShape(elem, w, h, points, node);\n};\nconst roundedRectBkg = function(db2, elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\"height\", node.height).attr(\"rx\", node.padding).attr(\"ry\", node.padding).attr(\"width\", node.width);\n};\nconst drawNode = function(db2, elem, node, fullSection, conf) {\n const htmlLabels = conf.htmlLabels;\n const section = fullSection % (MAX_SECTIONS - 1);\n const nodeElem = elem.append(\"g\");\n node.section = section;\n let sectionClass = \"section-\" + section;\n if (section < 0) {\n sectionClass += \" section-root\";\n }\n nodeElem.attr(\"class\", (node.class ? node.class + \" \" : \"\") + \"mindmap-node \" + sectionClass);\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const description = node.descr.replace(/(<br\\/*>)/g, \"\\n\");\n createText(textElem, description, {\n useHtmlLabels: htmlLabels,\n width: node.width,\n classes: \"mindmap-node-label\"\n });\n if (!htmlLabels) {\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n }\n const bbox = textElem.node().getBBox();\n const [fontSize] = parseFontSize(conf.fontSize);\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.width = bbox.width + 2 * node.padding;\n if (node.icon) {\n if (node.type === db2.nodeType.CIRCLE) {\n node.height += 50;\n node.width += 50;\n const icon = nodeElem.append(\"foreignObject\").attr(\"height\", \"50px\").attr(\"width\", node.width).attr(\"style\", \"text-align: center;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + node.width / 2 + \", \" + (node.height / 2 - 1.5 * node.padding) + \")\"\n );\n } else {\n node.width += 50;\n const orgHeight = node.height;\n node.height = Math.max(orgHeight, 60);\n const heightDiff = Math.abs(node.height - orgHeight);\n const icon = nodeElem.append(\"foreignObject\").attr(\"width\", \"60px\").attr(\"height\", node.height).attr(\"style\", \"text-align: center;margin-top:\" + heightDiff / 2 + \"px;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + (25 + node.width / 2) + \", \" + (heightDiff / 2 + node.padding / 2) + \")\"\n );\n }\n } else {\n if (!htmlLabels) {\n const dx = node.width / 2;\n const dy = node.padding / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n } else {\n const dx = (node.width - bbox.width) / 2;\n const dy = (node.height - bbox.height) / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n }\n }\n switch (node.type) {\n case db2.nodeType.DEFAULT:\n defaultBkg(db2, bkgElem, node, section);\n break;\n case db2.nodeType.ROUNDED_RECT:\n roundedRectBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.RECT:\n rectBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.CIRCLE:\n bkgElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + +node.height / 2 + \")\");\n circleBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.CLOUD:\n cloudBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.BANG:\n bangBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.HEXAGON:\n hexagonBkg(db2, bkgElem, node);\n break;\n }\n db2.setElementForId(node.id, nodeElem);\n return node.height;\n};\nconst positionNode = function(db2, node) {\n const nodeElem = db2.getElementById(node.id);\n const x = node.x || 0;\n const y = node.y || 0;\n nodeElem.attr(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n};\ncytoscape.use(coseBilkent);\nfunction drawNodes(db2, svg, mindmap, section, conf) {\n drawNode(db2, svg, mindmap, section, conf);\n if (mindmap.children) {\n mindmap.children.forEach((child, index) => {\n drawNodes(db2, svg, child, section < 0 ? index : section, conf);\n });\n }\n}\nfunction drawEdges(edgesEl, cy) {\n cy.edges().map((edge, id) => {\n const data = edge.data();\n if (edge[0]._private.bodyBounds) {\n const bounds = edge[0]._private.rscratch;\n log.trace(\"Edge: \", id, data);\n edgesEl.insert(\"path\").attr(\n \"d\",\n `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `\n ).attr(\"class\", \"edge section-edge-\" + data.section + \" edge-depth-\" + data.depth);\n }\n });\n}\nfunction addNodes(mindmap, cy, conf, level) {\n cy.add({\n group: \"nodes\",\n data: {\n id: mindmap.id.toString(),\n labelText: mindmap.descr,\n height: mindmap.height,\n width: mindmap.width,\n level,\n nodeId: mindmap.id,\n padding: mindmap.padding,\n type: mindmap.type\n },\n position: {\n x: mindmap.x,\n y: mindmap.y\n }\n });\n if (mindmap.children) {\n mindmap.children.forEach((child) => {\n addNodes(child, cy, conf, level + 1);\n cy.add({\n group: \"edges\",\n data: {\n id: `${mindmap.id}_${child.id}`,\n source: mindmap.id,\n target: child.id,\n depth: level,\n section: child.section\n }\n });\n });\n }\n}\nfunction layoutMindmap(node, conf) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n // container to render in\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"bezier\"\n }\n }\n ]\n });\n renderEl.remove();\n addNodes(node, cy, conf, 0);\n cy.nodes().forEach(function(n) {\n n.layoutDimensions = () => {\n const data = n.data();\n return { w: data.width, h: data.height };\n };\n });\n cy.layout({\n name: \"cose-bilkent\",\n // @ts-ignore Types for cose-bilkent are not correct?\n quality: \"proof\",\n styleEnabled: false,\n animate: false\n }).run();\n cy.ready((e) => {\n log.info(\"Ready\", e);\n resolve(cy);\n });\n });\n}\nfunction positionNodes(db2, cy) {\n cy.nodes().map((node, id) => {\n const data = node.data();\n data.x = node.position().x;\n data.y = node.position().y;\n positionNode(db2, data);\n const el = db2.getElementById(data.nodeId);\n log.info(\"Id:\", id, \"Position: (\", node.position().x, \", \", node.position().y, \")\", data);\n el.attr(\n \"transform\",\n `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`\n );\n el.attr(\"attr\", `apa-${id})`);\n });\n}\nconst draw = async (text, id, _version, diagObj) => {\n var _a, _b;\n log.debug(\"Rendering mindmap diagram\\n\" + text);\n const db2 = diagObj.db;\n const mm = db2.getMindmap();\n if (!mm) {\n return;\n }\n const conf = getConfig();\n conf.htmlLabels = false;\n const svg = selectSvgElement(id);\n const edgesElem = svg.append(\"g\");\n edgesElem.attr(\"class\", \"mindmap-edges\");\n const nodesElem = svg.append(\"g\");\n nodesElem.attr(\"class\", \"mindmap-nodes\");\n drawNodes(db2, nodesElem, mm, -1, conf);\n const cy = await layoutMindmap(mm, conf);\n drawEdges(edgesElem, cy);\n positionNodes(db2, cy);\n setupGraphViewbox(\n void 0,\n svg,\n ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding,\n ((_b = conf.mindmap) == null ? void 0 : _b.useMaxWidth) ?? defaultConfig.mindmap.useMaxWidth\n );\n};\nconst renderer = {\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\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 sections += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .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 .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\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 .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n db: db$1,\n renderer,\n parser: parser$1,\n styles\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","nodes","cnt","elements","clear","getParent","level","getMindmap","addNode","id","descr","type","_a","_b","log","conf","getConfig","padding","defaultConfig","nodeType","node","sanitizeText","parent","getType","startStr","endStr","setElementForId","element","decorateNode","decoration","config","type2Str","getLogger","getElementById","db","db$1","MAX_SECTIONS","defaultBkg","db2","elem","section","rectBkg","cloudBkg","w","h","r1","r2","r3","r4","bangBkg","circleBkg","insertPolygonShape","points","d","hexagonBkg","_db","m","roundedRectBkg","drawNode","fullSection","htmlLabels","nodeElem","sectionClass","bkgElem","textElem","description","createText","bbox","fontSize","parseFontSize","orgHeight","heightDiff","dx","dy","positionNode","x","y","cytoscape","coseBilkent","drawNodes","svg","mindmap","child","drawEdges","edgesEl","cy","edge","data","bounds","addNodes","layoutMindmap","resolve","renderEl","select","e","positionNodes","el","draw","text","_version","diagObj","mm","selectSvgElement","edgesElem","nodesElem","setupGraphViewbox","renderer","genSections","options","sections","isDark","lighten","darken","sw","getStyles","styles","diagram"],"mappings":"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","x_google_ignoreList":[0]}