Files
school-developer/public/bot/assets/blockDiagram-9f4a6865-60789eb9.js
吴红兵 94c3473958 fix
2026-03-07 01:34:48 +08:00

1725 lines
51 KiB
JavaScript

import { c as he, X as se, h as H, i as ye, l as S, C as Ee, z as we, j as De, o as ve } from './index-0e3b96e2.js';
import { c as Ne } from './clone-def30bb2.js';
import { i as ke, c as Ie, b as Oe, d as Te, a as ge, p as ze } from './edges-066a5561-0489abec.js';
import { G as Ce } from './graph-39d39682.js';
import { o as Ae } from './ordinal-ba9b4969.js';
import { s as Re } from './Tableau10-1b767f5e.js';
import { c as Be } from './channel-80f48b39.js';
import './index-9c042f98.js';
import './_plugin-vue_export-helper-c27b6911.js';
import './createText-ca0c5216-c3320e7a.js';
import './line-0981dc5a.js';
import './array-9f3ba611.js';
import './path-53f90ab3.js';
import './init-77b53fdd.js';
var le,
oe,
ee = (function () {
var e = function (D, o, s, i) {
for (s = s || {}, i = D.length; i--; s[D[i]] = o);
return s;
},
a = [1, 7],
d = [1, 13],
c = [1, 14],
n = [1, 15],
g = [1, 19],
l = [1, 16],
f = [1, 17],
b = [1, 18],
p = [8, 30],
x = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47],
y = [1, 23],
T = [1, 24],
v = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47],
N = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47],
E = [1, 49],
L = {
trace: function () {},
yy: {},
symbols_: {
error: 2,
spaceLines: 3,
SPACELINE: 4,
NL: 5,
separator: 6,
SPACE: 7,
EOF: 8,
start: 9,
BLOCK_DIAGRAM_KEY: 10,
document: 11,
stop: 12,
statement: 13,
link: 14,
LINK: 15,
START_LINK: 16,
LINK_LABEL: 17,
STR: 18,
nodeStatement: 19,
columnsStatement: 20,
SPACE_BLOCK: 21,
blockStatement: 22,
classDefStatement: 23,
cssClassStatement: 24,
styleStatement: 25,
node: 26,
SIZE: 27,
COLUMNS: 28,
'id-block': 29,
end: 30,
block: 31,
NODE_ID: 32,
nodeShapeNLabel: 33,
dirList: 34,
DIR: 35,
NODE_DSTART: 36,
NODE_DEND: 37,
BLOCK_ARROW_START: 38,
BLOCK_ARROW_END: 39,
classDef: 40,
CLASSDEF_ID: 41,
CLASSDEF_STYLEOPTS: 42,
DEFAULT: 43,
class: 44,
CLASSENTITY_IDS: 45,
STYLECLASS: 46,
style: 47,
STYLE_ENTITY_IDS: 48,
STYLE_DEFINITION_DATA: 49,
$accept: 0,
$end: 1,
},
terminals_: {
2: 'error',
4: 'SPACELINE',
5: 'NL',
7: 'SPACE',
8: 'EOF',
10: 'BLOCK_DIAGRAM_KEY',
15: 'LINK',
16: 'START_LINK',
17: 'LINK_LABEL',
18: 'STR',
21: 'SPACE_BLOCK',
27: 'SIZE',
28: 'COLUMNS',
29: 'id-block',
30: 'end',
31: 'block',
32: 'NODE_ID',
35: 'DIR',
36: 'NODE_DSTART',
37: 'NODE_DEND',
38: 'BLOCK_ARROW_START',
39: 'BLOCK_ARROW_END',
40: 'classDef',
41: 'CLASSDEF_ID',
42: 'CLASSDEF_STYLEOPTS',
43: 'DEFAULT',
44: 'class',
45: 'CLASSENTITY_IDS',
46: 'STYLECLASS',
47: 'style',
48: 'STYLE_ENTITY_IDS',
49: 'STYLE_DEFINITION_DATA',
},
productions_: [
0,
[3, 1],
[3, 2],
[3, 2],
[6, 1],
[6, 1],
[6, 1],
[9, 3],
[12, 1],
[12, 1],
[12, 2],
[12, 2],
[11, 1],
[11, 2],
[14, 1],
[14, 4],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[19, 3],
[19, 2],
[19, 1],
[20, 1],
[22, 4],
[22, 3],
[26, 1],
[26, 2],
[34, 1],
[34, 2],
[33, 3],
[33, 4],
[23, 3],
[23, 3],
[24, 3],
[25, 3],
],
performAction: function (o, s, i, u, h, t, m) {
var r = t.length - 1;
switch (h) {
case 4:
u.getLogger().debug('Rule: separator (NL) ');
break;
case 5:
u.getLogger().debug('Rule: separator (Space) ');
break;
case 6:
u.getLogger().debug('Rule: separator (EOF) ');
break;
case 7:
u.getLogger().debug('Rule: hierarchy: ', t[r - 1]), u.setHierarchy(t[r - 1]);
break;
case 8:
u.getLogger().debug('Stop NL ');
break;
case 9:
u.getLogger().debug('Stop EOF ');
break;
case 10:
u.getLogger().debug('Stop NL2 ');
break;
case 11:
u.getLogger().debug('Stop EOF2 ');
break;
case 12:
u.getLogger().debug('Rule: statement: ', t[r]), typeof t[r].length == 'number' ? (this.$ = t[r]) : (this.$ = [t[r]]);
break;
case 13:
u.getLogger().debug('Rule: statement #2: ', t[r - 1]), (this.$ = [t[r - 1]].concat(t[r]));
break;
case 14:
u.getLogger().debug('Rule: link: ', t[r], o), (this.$ = { edgeTypeStr: t[r], label: '' });
break;
case 15:
u.getLogger().debug('Rule: LABEL link: ', t[r - 3], t[r - 1], t[r]), (this.$ = { edgeTypeStr: t[r], label: t[r - 1] });
break;
case 18:
const R = parseInt(t[r]),
Y = u.generateId();
this.$ = { id: Y, type: 'space', label: '', width: R, children: [] };
break;
case 23:
u.getLogger().debug('Rule: (nodeStatement link node) ', t[r - 2], t[r - 1], t[r], ' typestr: ', t[r - 1].edgeTypeStr);
const F = u.edgeStrToEdgeData(t[r - 1].edgeTypeStr);
this.$ = [
{ id: t[r - 2].id, label: t[r - 2].label, type: t[r - 2].type, directions: t[r - 2].directions },
{
id: t[r - 2].id + '-' + t[r].id,
start: t[r - 2].id,
end: t[r].id,
label: t[r - 1].label,
type: 'edge',
directions: t[r].directions,
arrowTypeEnd: F,
arrowTypeStart: 'arrow_open',
},
{ id: t[r].id, label: t[r].label, type: u.typeStr2Type(t[r].typeStr), directions: t[r].directions },
];
break;
case 24:
u.getLogger().debug('Rule: nodeStatement (abc88 node size) ', t[r - 1], t[r]),
(this.$ = {
id: t[r - 1].id,
label: t[r - 1].label,
type: u.typeStr2Type(t[r - 1].typeStr),
directions: t[r - 1].directions,
widthInColumns: parseInt(t[r], 10),
});
break;
case 25:
u.getLogger().debug('Rule: nodeStatement (node) ', t[r]),
(this.$ = { id: t[r].id, label: t[r].label, type: u.typeStr2Type(t[r].typeStr), directions: t[r].directions, widthInColumns: 1 });
break;
case 26:
u.getLogger().debug('APA123', this ? this : 'na'),
u.getLogger().debug('COLUMNS: ', t[r]),
(this.$ = { type: 'column-setting', columns: t[r] === 'auto' ? -1 : parseInt(t[r]) });
break;
case 27:
u.getLogger().debug('Rule: id-block statement : ', t[r - 2], t[r - 1]),
u.generateId(),
(this.$ = { ...t[r - 2], type: 'composite', children: t[r - 1] });
break;
case 28:
u.getLogger().debug('Rule: blockStatement : ', t[r - 2], t[r - 1], t[r]);
const C = u.generateId();
this.$ = { id: C, type: 'composite', label: '', children: t[r - 1] };
break;
case 29:
u.getLogger().debug('Rule: node (NODE_ID separator): ', t[r]), (this.$ = { id: t[r] });
break;
case 30:
u.getLogger().debug('Rule: node (NODE_ID nodeShapeNLabel separator): ', t[r - 1], t[r]),
(this.$ = { id: t[r - 1], label: t[r].label, typeStr: t[r].typeStr, directions: t[r].directions });
break;
case 31:
u.getLogger().debug('Rule: dirList: ', t[r]), (this.$ = [t[r]]);
break;
case 32:
u.getLogger().debug('Rule: dirList: ', t[r - 1], t[r]), (this.$ = [t[r - 1]].concat(t[r]));
break;
case 33:
u.getLogger().debug('Rule: nodeShapeNLabel: ', t[r - 2], t[r - 1], t[r]), (this.$ = { typeStr: t[r - 2] + t[r], label: t[r - 1] });
break;
case 34:
u.getLogger().debug('Rule: BLOCK_ARROW nodeShapeNLabel: ', t[r - 3], t[r - 2], ' #3:', t[r - 1], t[r]),
(this.$ = { typeStr: t[r - 3] + t[r], label: t[r - 2], directions: t[r - 1] });
break;
case 35:
case 36:
this.$ = { type: 'classDef', id: t[r - 1].trim(), css: t[r].trim() };
break;
case 37:
this.$ = { type: 'applyClass', id: t[r - 1].trim(), styleClass: t[r].trim() };
break;
case 38:
this.$ = { type: 'applyStyles', id: t[r - 1].trim(), stylesStr: t[r].trim() };
break;
}
},
table: [
{ 9: 1, 10: [1, 2] },
{ 1: [3] },
{ 11: 3, 13: 4, 19: 5, 20: 6, 21: a, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: d, 29: c, 31: n, 32: g, 40: l, 44: f, 47: b },
{ 8: [1, 20] },
e(p, [2, 12], {
13: 4,
19: 5,
20: 6,
22: 8,
23: 9,
24: 10,
25: 11,
26: 12,
11: 21,
21: a,
28: d,
29: c,
31: n,
32: g,
40: l,
44: f,
47: b,
}),
e(x, [2, 16], { 14: 22, 15: y, 16: T }),
e(x, [2, 17]),
e(x, [2, 18]),
e(x, [2, 19]),
e(x, [2, 20]),
e(x, [2, 21]),
e(x, [2, 22]),
e(v, [2, 25], { 27: [1, 25] }),
e(x, [2, 26]),
{ 19: 26, 26: 12, 32: g },
{ 11: 27, 13: 4, 19: 5, 20: 6, 21: a, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: d, 29: c, 31: n, 32: g, 40: l, 44: f, 47: b },
{ 41: [1, 28], 43: [1, 29] },
{ 45: [1, 30] },
{ 48: [1, 31] },
e(N, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }),
{ 1: [2, 7] },
e(p, [2, 13]),
{ 26: 35, 32: g },
{ 32: [2, 14] },
{ 17: [1, 36] },
e(v, [2, 24]),
{
11: 37,
13: 4,
14: 22,
15: y,
16: T,
19: 5,
20: 6,
21: a,
22: 8,
23: 9,
24: 10,
25: 11,
26: 12,
28: d,
29: c,
31: n,
32: g,
40: l,
44: f,
47: b,
},
{ 30: [1, 38] },
{ 42: [1, 39] },
{ 42: [1, 40] },
{ 46: [1, 41] },
{ 49: [1, 42] },
e(N, [2, 30]),
{ 18: [1, 43] },
{ 18: [1, 44] },
e(v, [2, 23]),
{ 18: [1, 45] },
{ 30: [1, 46] },
e(x, [2, 28]),
e(x, [2, 35]),
e(x, [2, 36]),
e(x, [2, 37]),
e(x, [2, 38]),
{ 37: [1, 47] },
{ 34: 48, 35: E },
{ 15: [1, 50] },
e(x, [2, 27]),
e(N, [2, 33]),
{ 39: [1, 51] },
{ 34: 52, 35: E, 39: [2, 31] },
{ 32: [2, 15] },
e(N, [2, 34]),
{ 39: [2, 32] },
],
defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },
parseError: function (o, s) {
if (s.recoverable) this.trace(o);
else {
var i = new Error(o);
throw ((i.hash = s), i);
}
},
parse: function (o) {
var s = this,
i = [0],
u = [],
h = [null],
t = [],
m = this.table,
r = '',
R = 0,
Y = 0,
F = 2,
C = 1,
Le = t.slice.call(arguments, 1),
w = Object.create(this.lexer),
K = { yy: {} };
for (var Z in this.yy) Object.prototype.hasOwnProperty.call(this.yy, Z) && (K.yy[Z] = this.yy[Z]);
w.setInput(o, K.yy), (K.yy.lexer = w), (K.yy.parser = this), typeof w.yylloc > 'u' && (w.yylloc = {});
var J = w.yylloc;
t.push(J);
var me = w.options && w.options.ranges;
typeof K.yy.parseError == 'function' ? (this.parseError = K.yy.parseError) : (this.parseError = Object.getPrototypeOf(this).parseError);
function _e() {
var P;
return (
(P = u.pop() || w.lex() || C), typeof P != 'number' && (P instanceof Array && ((u = P), (P = u.pop())), (P = s.symbols_[P] || P)), P
);
}
for (var I, M, z, Q, W = {}, X, B, ae, G; ; ) {
if (
((M = i[i.length - 1]),
this.defaultActions[M] ? (z = this.defaultActions[M]) : ((I === null || typeof I > 'u') && (I = _e()), (z = m[M] && m[M][I])),
typeof z > 'u' || !z.length || !z[0])
) {
var $ = '';
G = [];
for (X in m[M]) this.terminals_[X] && X > F && G.push("'" + this.terminals_[X] + "'");
w.showPosition
? ($ =
'Parse error on line ' +
(R + 1) +
`:
` +
w.showPosition() +
`
Expecting ` +
G.join(', ') +
", got '" +
(this.terminals_[I] || I) +
"'")
: ($ = 'Parse error on line ' + (R + 1) + ': Unexpected ' + (I == C ? 'end of input' : "'" + (this.terminals_[I] || I) + "'")),
this.parseError($, { text: w.match, token: this.terminals_[I] || I, line: w.yylineno, loc: J, expected: G });
}
if (z[0] instanceof Array && z.length > 1) throw new Error('Parse Error: multiple actions possible at state: ' + M + ', token: ' + I);
switch (z[0]) {
case 1:
i.push(I),
h.push(w.yytext),
t.push(w.yylloc),
i.push(z[1]),
(I = null),
(Y = w.yyleng),
(r = w.yytext),
(R = w.yylineno),
(J = w.yylloc);
break;
case 2:
if (
((B = this.productions_[z[1]][1]),
(W.$ = h[h.length - B]),
(W._$ = {
first_line: t[t.length - (B || 1)].first_line,
last_line: t[t.length - 1].last_line,
first_column: t[t.length - (B || 1)].first_column,
last_column: t[t.length - 1].last_column,
}),
me && (W._$.range = [t[t.length - (B || 1)].range[0], t[t.length - 1].range[1]]),
(Q = this.performAction.apply(W, [r, Y, R, K.yy, z[1], h, t].concat(Le))),
typeof Q < 'u')
)
return Q;
B && ((i = i.slice(0, -1 * B * 2)), (h = h.slice(0, -1 * B)), (t = t.slice(0, -1 * B))),
i.push(this.productions_[z[1]][0]),
h.push(W.$),
t.push(W._$),
(ae = m[i[i.length - 2]][i[i.length - 1]]),
i.push(ae);
break;
case 3:
return !0;
}
}
return !0;
},
},
A = (function () {
var D = {
EOF: 1,
parseError: function (s, i) {
if (this.yy.parser) this.yy.parser.parseError(s, i);
else throw new Error(s);
},
setInput: function (o, s) {
return (
(this.yy = s || this.yy || {}),
(this._input = o),
(this._more = this._backtrack = this.done = !1),
(this.yylineno = this.yyleng = 0),
(this.yytext = this.matched = this.match = ''),
(this.conditionStack = ['INITIAL']),
(this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }),
this.options.ranges && (this.yylloc.range = [0, 0]),
(this.offset = 0),
this
);
},
input: function () {
var o = this._input[0];
(this.yytext += o), this.yyleng++, this.offset++, (this.match += o), (this.matched += o);
var s = o.match(/(?:\r\n?|\n).*/g);
return (
s ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++,
this.options.ranges && this.yylloc.range[1]++,
(this._input = this._input.slice(1)),
o
);
},
unput: function (o) {
var s = o.length,
i = o.split(/(?:\r\n?|\n)/g);
(this._input = o + this._input), (this.yytext = this.yytext.substr(0, this.yytext.length - s)), (this.offset -= s);
var u = this.match.split(/(?:\r\n?|\n)/g);
(this.match = this.match.substr(0, this.match.length - 1)),
(this.matched = this.matched.substr(0, this.matched.length - 1)),
i.length - 1 && (this.yylineno -= i.length - 1);
var h = this.yylloc.range;
return (
(this.yylloc = {
first_line: this.yylloc.first_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.first_column,
last_column: i
? (i.length === u.length ? this.yylloc.first_column : 0) + u[u.length - i.length].length - i[0].length
: this.yylloc.first_column - s,
}),
this.options.ranges && (this.yylloc.range = [h[0], h[0] + this.yyleng - s]),
(this.yyleng = this.yytext.length),
this
);
},
more: function () {
return (this._more = !0), this;
},
reject: function () {
if (this.options.backtrack_lexer) this._backtrack = !0;
else
return this.parseError(
'Lexical error on line ' +
(this.yylineno + 1) +
`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
` +
this.showPosition(),
{ text: '', token: null, line: this.yylineno }
);
return this;
},
less: function (o) {
this.unput(this.match.slice(o));
},
pastInput: function () {
var o = this.matched.substr(0, this.matched.length - this.match.length);
return (o.length > 20 ? '...' : '') + o.substr(-20).replace(/\n/g, '');
},
upcomingInput: function () {
var o = this.match;
return o.length < 20 && (o += this._input.substr(0, 20 - o.length)), (o.substr(0, 20) + (o.length > 20 ? '...' : '')).replace(/\n/g, '');
},
showPosition: function () {
var o = this.pastInput(),
s = new Array(o.length + 1).join('-');
return (
o +
this.upcomingInput() +
`
` +
s +
'^'
);
},
test_match: function (o, s) {
var i, u, h;
if (
(this.options.backtrack_lexer &&
((h = {
yylineno: this.yylineno,
yylloc: {
first_line: this.yylloc.first_line,
last_line: this.last_line,
first_column: this.yylloc.first_column,
last_column: this.yylloc.last_column,
},
yytext: this.yytext,
match: this.match,
matches: this.matches,
matched: this.matched,
yyleng: this.yyleng,
offset: this.offset,
_more: this._more,
_input: this._input,
yy: this.yy,
conditionStack: this.conditionStack.slice(0),
done: this.done,
}),
this.options.ranges && (h.yylloc.range = this.yylloc.range.slice(0))),
(u = o[0].match(/(?:\r\n?|\n).*/g)),
u && (this.yylineno += u.length),
(this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: u ? u[u.length - 1].length - u[u.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + o[0].length,
}),
(this.yytext += o[0]),
(this.match += o[0]),
(this.matches = o),
(this.yyleng = this.yytext.length),
this.options.ranges && (this.yylloc.range = [this.offset, (this.offset += this.yyleng)]),
(this._more = !1),
(this._backtrack = !1),
(this._input = this._input.slice(o[0].length)),
(this.matched += o[0]),
(i = this.performAction.call(this, this.yy, this, s, this.conditionStack[this.conditionStack.length - 1])),
this.done && this._input && (this.done = !1),
i)
)
return i;
if (this._backtrack) {
for (var t in h) this[t] = h[t];
return !1;
}
return !1;
},
next: function () {
if (this.done) return this.EOF;
this._input || (this.done = !0);
var o, s, i, u;
this._more || ((this.yytext = ''), (this.match = ''));
for (var h = this._currentRules(), t = 0; t < h.length; t++)
if (((i = this._input.match(this.rules[h[t]])), i && (!s || i[0].length > s[0].length))) {
if (((s = i), (u = t), this.options.backtrack_lexer)) {
if (((o = this.test_match(i, h[t])), o !== !1)) return o;
if (this._backtrack) {
s = !1;
continue;
} else return !1;
} else if (!this.options.flex) break;
}
return s
? ((o = this.test_match(s, h[u])), o !== !1 ? o : !1)
: this._input === ''
? this.EOF
: this.parseError(
'Lexical error on line ' +
(this.yylineno + 1) +
`. Unrecognized text.
` +
this.showPosition(),
{ text: '', token: null, line: this.yylineno }
);
},
lex: function () {
var s = this.next();
return s || this.lex();
},
begin: function (s) {
this.conditionStack.push(s);
},
popState: function () {
var s = this.conditionStack.length - 1;
return s > 0 ? this.conditionStack.pop() : this.conditionStack[0];
},
_currentRules: function () {
return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]
? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules
: this.conditions.INITIAL.rules;
},
topState: function (s) {
return (s = this.conditionStack.length - 1 - Math.abs(s || 0)), s >= 0 ? this.conditionStack[s] : 'INITIAL';
},
pushState: function (s) {
this.begin(s);
},
stateStackSize: function () {
return this.conditionStack.length;
},
options: {},
performAction: function (s, i, u, h) {
switch (u) {
case 0:
return 10;
case 1:
return s.getLogger().debug('Found space-block'), 31;
case 2:
return s.getLogger().debug('Found nl-block'), 31;
case 3:
return s.getLogger().debug('Found space-block'), 29;
case 4:
s.getLogger().debug('.', i.yytext);
break;
case 5:
s.getLogger().debug('_', i.yytext);
break;
case 6:
return 5;
case 7:
return (i.yytext = -1), 28;
case 8:
return (i.yytext = i.yytext.replace(/columns\s+/, '')), s.getLogger().debug('COLUMNS (LEX)', i.yytext), 28;
case 9:
this.pushState('md_string');
break;
case 10:
return 'MD_STR';
case 11:
this.popState();
break;
case 12:
this.pushState('string');
break;
case 13:
s.getLogger().debug('LEX: POPPING STR:', i.yytext), this.popState();
break;
case 14:
return s.getLogger().debug('LEX: STR end:', i.yytext), 'STR';
case 15:
return (i.yytext = i.yytext.replace(/space\:/, '')), s.getLogger().debug('SPACE NUM (LEX)', i.yytext), 21;
case 16:
return (i.yytext = '1'), s.getLogger().debug('COLUMNS (LEX)', i.yytext), 21;
case 17:
return 43;
case 18:
return 'LINKSTYLE';
case 19:
return 'INTERPOLATE';
case 20:
return this.pushState('CLASSDEF'), 40;
case 21:
return this.popState(), this.pushState('CLASSDEFID'), 'DEFAULT_CLASSDEF_ID';
case 22:
return this.popState(), this.pushState('CLASSDEFID'), 41;
case 23:
return this.popState(), 42;
case 24:
return this.pushState('CLASS'), 44;
case 25:
return this.popState(), this.pushState('CLASS_STYLE'), 45;
case 26:
return this.popState(), 46;
case 27:
return this.pushState('STYLE_STMNT'), 47;
case 28:
return this.popState(), this.pushState('STYLE_DEFINITION'), 48;
case 29:
return this.popState(), 49;
case 30:
return this.pushState('acc_title'), 'acc_title';
case 31:
return this.popState(), 'acc_title_value';
case 32:
return this.pushState('acc_descr'), 'acc_descr';
case 33:
return this.popState(), 'acc_descr_value';
case 34:
this.pushState('acc_descr_multiline');
break;
case 35:
this.popState();
break;
case 36:
return 'acc_descr_multiline_value';
case 37:
return 30;
case 38:
return this.popState(), s.getLogger().debug('Lex: (('), 'NODE_DEND';
case 39:
return this.popState(), s.getLogger().debug('Lex: (('), 'NODE_DEND';
case 40:
return this.popState(), s.getLogger().debug('Lex: ))'), 'NODE_DEND';
case 41:
return this.popState(), s.getLogger().debug('Lex: (('), 'NODE_DEND';
case 42:
return this.popState(), s.getLogger().debug('Lex: (('), 'NODE_DEND';
case 43:
return this.popState(), s.getLogger().debug('Lex: (-'), 'NODE_DEND';
case 44:
return this.popState(), s.getLogger().debug('Lex: -)'), 'NODE_DEND';
case 45:
return this.popState(), s.getLogger().debug('Lex: (('), 'NODE_DEND';
case 46:
return this.popState(), s.getLogger().debug('Lex: ]]'), 'NODE_DEND';
case 47:
return this.popState(), s.getLogger().debug('Lex: ('), 'NODE_DEND';
case 48:
return this.popState(), s.getLogger().debug('Lex: ])'), 'NODE_DEND';
case 49:
return this.popState(), s.getLogger().debug('Lex: /]'), 'NODE_DEND';
case 50:
return this.popState(), s.getLogger().debug('Lex: /]'), 'NODE_DEND';
case 51:
return this.popState(), s.getLogger().debug('Lex: )]'), 'NODE_DEND';
case 52:
return this.popState(), s.getLogger().debug('Lex: )'), 'NODE_DEND';
case 53:
return this.popState(), s.getLogger().debug('Lex: ]>'), 'NODE_DEND';
case 54:
return this.popState(), s.getLogger().debug('Lex: ]'), 'NODE_DEND';
case 55:
return s.getLogger().debug('Lexa: -)'), this.pushState('NODE'), 36;
case 56:
return s.getLogger().debug('Lexa: (-'), this.pushState('NODE'), 36;
case 57:
return s.getLogger().debug('Lexa: ))'), this.pushState('NODE'), 36;
case 58:
return s.getLogger().debug('Lexa: )'), this.pushState('NODE'), 36;
case 59:
return s.getLogger().debug('Lex: ((('), this.pushState('NODE'), 36;
case 60:
return s.getLogger().debug('Lexa: )'), this.pushState('NODE'), 36;
case 61:
return s.getLogger().debug('Lexa: )'), this.pushState('NODE'), 36;
case 62:
return s.getLogger().debug('Lexa: )'), this.pushState('NODE'), 36;
case 63:
return s.getLogger().debug('Lexc: >'), this.pushState('NODE'), 36;
case 64:
return s.getLogger().debug('Lexa: (['), this.pushState('NODE'), 36;
case 65:
return s.getLogger().debug('Lexa: )'), this.pushState('NODE'), 36;
case 66:
return this.pushState('NODE'), 36;
case 67:
return this.pushState('NODE'), 36;
case 68:
return this.pushState('NODE'), 36;
case 69:
return this.pushState('NODE'), 36;
case 70:
return this.pushState('NODE'), 36;
case 71:
return this.pushState('NODE'), 36;
case 72:
return this.pushState('NODE'), 36;
case 73:
return s.getLogger().debug('Lexa: ['), this.pushState('NODE'), 36;
case 74:
return this.pushState('BLOCK_ARROW'), s.getLogger().debug('LEX ARR START'), 38;
case 75:
return s.getLogger().debug('Lex: NODE_ID', i.yytext), 32;
case 76:
return s.getLogger().debug('Lex: EOF', i.yytext), 8;
case 77:
this.pushState('md_string');
break;
case 78:
this.pushState('md_string');
break;
case 79:
return 'NODE_DESCR';
case 80:
this.popState();
break;
case 81:
s.getLogger().debug('Lex: Starting string'), this.pushState('string');
break;
case 82:
s.getLogger().debug('LEX ARR: Starting string'), this.pushState('string');
break;
case 83:
return s.getLogger().debug('LEX: NODE_DESCR:', i.yytext), 'NODE_DESCR';
case 84:
s.getLogger().debug('LEX POPPING'), this.popState();
break;
case 85:
s.getLogger().debug('Lex: =>BAE'), this.pushState('ARROW_DIR');
break;
case 86:
return (i.yytext = i.yytext.replace(/^,\s*/, '')), s.getLogger().debug('Lex (right): dir:', i.yytext), 'DIR';
case 87:
return (i.yytext = i.yytext.replace(/^,\s*/, '')), s.getLogger().debug('Lex (left):', i.yytext), 'DIR';
case 88:
return (i.yytext = i.yytext.replace(/^,\s*/, '')), s.getLogger().debug('Lex (x):', i.yytext), 'DIR';
case 89:
return (i.yytext = i.yytext.replace(/^,\s*/, '')), s.getLogger().debug('Lex (y):', i.yytext), 'DIR';
case 90:
return (i.yytext = i.yytext.replace(/^,\s*/, '')), s.getLogger().debug('Lex (up):', i.yytext), 'DIR';
case 91:
return (i.yytext = i.yytext.replace(/^,\s*/, '')), s.getLogger().debug('Lex (down):', i.yytext), 'DIR';
case 92:
return (i.yytext = ']>'), s.getLogger().debug('Lex (ARROW_DIR end):', i.yytext), this.popState(), this.popState(), 'BLOCK_ARROW_END';
case 93:
return s.getLogger().debug('Lex: LINK', '#' + i.yytext + '#'), 15;
case 94:
return s.getLogger().debug('Lex: LINK', i.yytext), 15;
case 95:
return s.getLogger().debug('Lex: LINK', i.yytext), 15;
case 96:
return s.getLogger().debug('Lex: LINK', i.yytext), 15;
case 97:
return s.getLogger().debug('Lex: START_LINK', i.yytext), this.pushState('LLABEL'), 16;
case 98:
return s.getLogger().debug('Lex: START_LINK', i.yytext), this.pushState('LLABEL'), 16;
case 99:
return s.getLogger().debug('Lex: START_LINK', i.yytext), this.pushState('LLABEL'), 16;
case 100:
this.pushState('md_string');
break;
case 101:
return s.getLogger().debug('Lex: Starting string'), this.pushState('string'), 'LINK_LABEL';
case 102:
return this.popState(), s.getLogger().debug('Lex: LINK', '#' + i.yytext + '#'), 15;
case 103:
return this.popState(), s.getLogger().debug('Lex: LINK', i.yytext), 15;
case 104:
return this.popState(), s.getLogger().debug('Lex: LINK', i.yytext), 15;
case 105:
return s.getLogger().debug('Lex: COLON', i.yytext), (i.yytext = i.yytext.slice(1)), 27;
}
},
rules: [
/^(?:block-beta\b)/,
/^(?:block\s+)/,
/^(?:block\n+)/,
/^(?:block:)/,
/^(?:[\s]+)/,
/^(?:[\n]+)/,
/^(?:((\u000D\u000A)|(\u000A)))/,
/^(?:columns\s+auto\b)/,
/^(?:columns\s+[\d]+)/,
/^(?:["][`])/,
/^(?:[^`"]+)/,
/^(?:[`]["])/,
/^(?:["])/,
/^(?:["])/,
/^(?:[^"]*)/,
/^(?:space[:]\d+)/,
/^(?:space\b)/,
/^(?:default\b)/,
/^(?:linkStyle\b)/,
/^(?:interpolate\b)/,
/^(?:classDef\s+)/,
/^(?:DEFAULT\s+)/,
/^(?:\w+\s+)/,
/^(?:[^\n]*)/,
/^(?:class\s+)/,
/^(?:(\w+)+((,\s*\w+)*))/,
/^(?:[^\n]*)/,
/^(?:style\s+)/,
/^(?:(\w+)+((,\s*\w+)*))/,
/^(?:[^\n]*)/,
/^(?:accTitle\s*:\s*)/,
/^(?:(?!\n||)*[^\n]*)/,
/^(?:accDescr\s*:\s*)/,
/^(?:(?!\n||)*[^\n]*)/,
/^(?:accDescr\s*\{\s*)/,
/^(?:[\}])/,
/^(?:[^\}]*)/,
/^(?:end\b\s*)/,
/^(?:\(\(\()/,
/^(?:\)\)\))/,
/^(?:[\)]\))/,
/^(?:\}\})/,
/^(?:\})/,
/^(?:\(-)/,
/^(?:-\))/,
/^(?:\(\()/,
/^(?:\]\])/,
/^(?:\()/,
/^(?:\]\))/,
/^(?:\\\])/,
/^(?:\/\])/,
/^(?:\)\])/,
/^(?:[\)])/,
/^(?:\]>)/,
/^(?:[\]])/,
/^(?:-\))/,
/^(?:\(-)/,
/^(?:\)\))/,
/^(?:\))/,
/^(?:\(\(\()/,
/^(?:\(\()/,
/^(?:\{\{)/,
/^(?:\{)/,
/^(?:>)/,
/^(?:\(\[)/,
/^(?:\()/,
/^(?:\[\[)/,
/^(?:\[\|)/,
/^(?:\[\()/,
/^(?:\)\)\))/,
/^(?:\[\\)/,
/^(?:\[\/)/,
/^(?:\[\\)/,
/^(?:\[)/,
/^(?:<\[)/,
/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,
/^(?:$)/,
/^(?:["][`])/,
/^(?:["][`])/,
/^(?:[^`"]+)/,
/^(?:[`]["])/,
/^(?:["])/,
/^(?:["])/,
/^(?:[^"]+)/,
/^(?:["])/,
/^(?:\]>\s*\()/,
/^(?:,?\s*right\s*)/,
/^(?:,?\s*left\s*)/,
/^(?:,?\s*x\s*)/,
/^(?:,?\s*y\s*)/,
/^(?:,?\s*up\s*)/,
/^(?:,?\s*down\s*)/,
/^(?:\)\s*)/,
/^(?:\s*[xo<]?--+[-xo>]\s*)/,
/^(?:\s*[xo<]?==+[=xo>]\s*)/,
/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,
/^(?:\s*~~[\~]+\s*)/,
/^(?:\s*[xo<]?--\s*)/,
/^(?:\s*[xo<]?==\s*)/,
/^(?:\s*[xo<]?-\.\s*)/,
/^(?:["][`])/,
/^(?:["])/,
/^(?:\s*[xo<]?--+[-xo>]\s*)/,
/^(?:\s*[xo<]?==+[=xo>]\s*)/,
/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,
/^(?::\d+)/,
],
conditions: {
STYLE_DEFINITION: { rules: [29], inclusive: !1 },
STYLE_STMNT: { rules: [28], inclusive: !1 },
CLASSDEFID: { rules: [23], inclusive: !1 },
CLASSDEF: { rules: [21, 22], inclusive: !1 },
CLASS_STYLE: { rules: [26], inclusive: !1 },
CLASS: { rules: [25], inclusive: !1 },
LLABEL: { rules: [100, 101, 102, 103, 104], inclusive: !1 },
ARROW_DIR: { rules: [86, 87, 88, 89, 90, 91, 92], inclusive: !1 },
BLOCK_ARROW: { rules: [77, 82, 85], inclusive: !1 },
NODE: { rules: [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], inclusive: !1 },
md_string: { rules: [10, 11, 79, 80], inclusive: !1 },
space: { rules: [], inclusive: !1 },
string: { rules: [13, 14, 83, 84], inclusive: !1 },
acc_descr_multiline: { rules: [35, 36], inclusive: !1 },
acc_descr: { rules: [33], inclusive: !1 },
acc_title: { rules: [31], inclusive: !1 },
INITIAL: {
rules: [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105,
],
inclusive: !0,
},
},
};
return D;
})();
L.lexer = A;
function k() {
this.yy = {};
}
return (k.prototype = L), (L.Parser = k), new k();
})();
ee.parser = ee;
const Pe = ee;
let O = {},
ie = [],
j = {};
const ce = 'color',
ue = 'fill',
Fe = 'bgFill',
pe = ',',
Ke = he();
let V = {};
const Me = (e) => De.sanitizeText(e, Ke),
Ye = function (e, a = '') {
V[e] === void 0 && (V[e] = { id: e, styles: [], textStyles: [] });
const d = V[e];
a != null &&
a.split(pe).forEach((c) => {
const n = c.replace(/([^;]*);/, '$1').trim();
if (c.match(ce)) {
const l = n.replace(ue, Fe).replace(ce, ue);
d.textStyles.push(l);
}
d.styles.push(n);
});
},
We = function (e, a = '') {
const d = O[e];
a != null && (d.styles = a.split(pe));
},
je = function (e, a) {
e.split(',').forEach(function (d) {
let c = O[d];
if (c === void 0) {
const n = d.trim();
(O[n] = { id: n, type: 'na', children: [] }), (c = O[n]);
}
c.classes || (c.classes = []), c.classes.push(a);
});
},
fe = (e, a) => {
const d = e.flat(),
c = [];
for (const n of d) {
if ((n.label && (n.label = Me(n.label)), n.type === 'classDef')) {
Ye(n.id, n.css);
continue;
}
if (n.type === 'applyClass') {
je(n.id, (n == null ? void 0 : n.styleClass) || '');
continue;
}
if (n.type === 'applyStyles') {
n != null && n.stylesStr && We(n.id, n == null ? void 0 : n.stylesStr);
continue;
}
if (n.type === 'column-setting') a.columns = n.columns || -1;
else if (n.type === 'edge') j[n.id] ? j[n.id]++ : (j[n.id] = 1), (n.id = j[n.id] + '-' + n.id), ie.push(n);
else {
n.label || (n.type === 'composite' ? (n.label = '') : (n.label = n.id));
const g = !O[n.id];
if (
(g ? (O[n.id] = n) : (n.type !== 'na' && (O[n.id].type = n.type), n.label !== n.id && (O[n.id].label = n.label)),
n.children && fe(n.children, n),
n.type === 'space')
) {
const l = n.width || 1;
for (let f = 0; f < l; f++) {
const b = Ne(n);
(b.id = b.id + '-' + f), (O[b.id] = b), c.push(b);
}
} else g && c.push(n);
}
}
a.children = c;
};
let re = [],
U = { id: 'root', type: 'composite', children: [], columns: -1 };
const Ve = () => {
S.debug('Clear called'),
Ee(),
(U = { id: 'root', type: 'composite', children: [], columns: -1 }),
(O = { root: U }),
(re = []),
(V = {}),
(ie = []),
(j = {});
};
function Ue(e) {
switch ((S.debug('typeStr2Type', e), e)) {
case '[]':
return 'square';
case '()':
return S.debug('we have a round'), 'round';
case '(())':
return 'circle';
case '>]':
return 'rect_left_inv_arrow';
case '{}':
return 'diamond';
case '{{}}':
return 'hexagon';
case '([])':
return 'stadium';
case '[[]]':
return 'subroutine';
case '[()]':
return 'cylinder';
case '((()))':
return 'doublecircle';
case '[//]':
return 'lean_right';
case '[\\\\]':
return 'lean_left';
case '[/\\]':
return 'trapezoid';
case '[\\/]':
return 'inv_trapezoid';
case '<[]>':
return 'block_arrow';
default:
return 'na';
}
}
function Xe(e) {
switch ((S.debug('typeStr2Type', e), e)) {
case '==':
return 'thick';
default:
return 'normal';
}
}
function Ge(e) {
switch (e.trim()) {
case '--x':
return 'arrow_cross';
case '--o':
return 'arrow_circle';
default:
return 'arrow_point';
}
}
let de = 0;
const He = () => (de++, 'id-' + Math.random().toString(36).substr(2, 12) + '-' + de),
qe = (e) => {
(U.children = e), fe(e, U), (re = U.children);
},
Ze = (e) => {
const a = O[e];
return a ? (a.columns ? a.columns : a.children ? a.children.length : -1) : -1;
},
Je = () => [...Object.values(O)],
Qe = () => re || [],
$e = () => ie,
et = (e) => O[e],
tt = (e) => {
O[e.id] = e;
},
st = () => console,
it = function () {
return V;
},
rt = {
getConfig: () => se().block,
typeStr2Type: Ue,
edgeTypeStr2Type: Xe,
edgeStrToEdgeData: Ge,
getLogger: st,
getBlocksFlat: Je,
getBlocks: Qe,
getEdges: $e,
setHierarchy: qe,
getBlock: et,
setBlock: tt,
getColumns: Ze,
getClasses: it,
clear: Ve,
generateId: He,
},
nt = rt,
q = (e, a) => {
const d = Be,
c = d(e, 'r'),
n = d(e, 'g'),
g = d(e, 'b');
return we(c, n, g, a);
},
at = (e) => `.label {
font-family: ${e.fontFamily};
color: ${e.nodeTextColor || e.textColor};
}
.cluster-label text {
fill: ${e.titleColor};
}
.cluster-label span,p {
color: ${e.titleColor};
}
.label text,span,p {
fill: ${e.nodeTextColor || e.textColor};
color: ${e.nodeTextColor || e.textColor};
}
.node rect,
.node circle,
.node ellipse,
.node polygon,
.node path {
fill: ${e.mainBkg};
stroke: ${e.nodeBorder};
stroke-width: 1px;
}
.flowchart-label text {
text-anchor: middle;
}
// .flowchart-label .text-outer-tspan {
// text-anchor: middle;
// }
// .flowchart-label .text-inner-tspan {
// text-anchor: start;
// }
.node .label {
text-align: center;
}
.node.clickable {
cursor: pointer;
}
.arrowheadPath {
fill: ${e.arrowheadColor};
}
.edgePath .path {
stroke: ${e.lineColor};
stroke-width: 2.0px;
}
.flowchart-link {
stroke: ${e.lineColor};
fill: none;
}
.edgeLabel {
background-color: ${e.edgeLabelBackground};
rect {
opacity: 0.5;
background-color: ${e.edgeLabelBackground};
fill: ${e.edgeLabelBackground};
}
text-align: center;
}
/* For html labels only */
.labelBkg {
background-color: ${q(e.edgeLabelBackground, 0.5)};
// background-color:
}
.node .cluster {
// fill: ${q(e.mainBkg, 0.5)};
fill: ${q(e.clusterBkg, 0.5)};
stroke: ${q(e.clusterBorder, 0.2)};
box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
stroke-width: 1px;
}
.cluster text {
fill: ${e.titleColor};
}
.cluster span,p {
color: ${e.titleColor};
}
/* .cluster div {
color: ${e.titleColor};
} */
div.mermaidTooltip {
position: absolute;
text-align: center;
max-width: 200px;
padding: 2px;
font-family: ${e.fontFamily};
font-size: 12px;
background: ${e.tertiaryColor};
border: 1px solid ${e.border2};
border-radius: 2px;
pointer-events: none;
z-index: 100;
}
.flowchartTitleText {
text-anchor: middle;
font-size: 18px;
fill: ${e.textColor};
}
`,
lt = at;
function be(e, a, d = !1) {
var c, n, g;
const l = e;
let f = 'default';
(((c = l == null ? void 0 : l.classes) == null ? void 0 : c.length) || 0) > 0 && (f = ((l == null ? void 0 : l.classes) || []).join(' ')),
(f = f + ' flowchart-label');
let b = 0,
p = '',
x;
switch (l.type) {
case 'round':
(b = 5), (p = 'rect');
break;
case 'composite':
(b = 0), (p = 'composite'), (x = 0);
break;
case 'square':
p = 'rect';
break;
case 'diamond':
p = 'question';
break;
case 'hexagon':
p = 'hexagon';
break;
case 'block_arrow':
p = 'block_arrow';
break;
case 'odd':
p = 'rect_left_inv_arrow';
break;
case 'lean_right':
p = 'lean_right';
break;
case 'lean_left':
p = 'lean_left';
break;
case 'trapezoid':
p = 'trapezoid';
break;
case 'inv_trapezoid':
p = 'inv_trapezoid';
break;
case 'rect_left_inv_arrow':
p = 'rect_left_inv_arrow';
break;
case 'circle':
p = 'circle';
break;
case 'ellipse':
p = 'ellipse';
break;
case 'stadium':
p = 'stadium';
break;
case 'subroutine':
p = 'subroutine';
break;
case 'cylinder':
p = 'cylinder';
break;
case 'group':
p = 'rect';
break;
case 'doublecircle':
p = 'doublecircle';
break;
default:
p = 'rect';
}
const y = ve((l == null ? void 0 : l.styles) || []),
T = l.label,
v = l.size || { width: 0, height: 0, x: 0, y: 0 };
return {
labelStyle: y.labelStyle,
shape: p,
labelText: T,
rx: b,
ry: b,
class: f,
style: y.style,
id: l.id,
directions: l.directions,
width: v.width,
height: v.height,
x: v.x,
y: v.y,
positioned: d,
intersect: void 0,
type: l.type,
padding: x ?? (((g = (n = se()) == null ? void 0 : n.block) == null ? void 0 : g.padding) || 0),
};
}
async function ot(e, a, d) {
const c = be(a, d, !1);
if (c.type === 'group') return;
const n = await ge(e, c),
g = n.node().getBBox(),
l = d.getBlock(c.id);
(l.size = { width: g.width, height: g.height, x: 0, y: 0, node: n }), d.setBlock(l), n.remove();
}
async function ct(e, a, d) {
const c = be(a, d, !0);
d.getBlock(c.id).type !== 'space' && (await ge(e, c), (a.intersect = c == null ? void 0 : c.intersect), ze(c));
}
async function ne(e, a, d, c) {
for (const n of a) await c(e, n, d), n.children && (await ne(e, n.children, d, c));
}
async function ut(e, a, d) {
await ne(e, a, d, ot);
}
async function dt(e, a, d) {
await ne(e, a, d, ct);
}
async function ht(e, a, d, c, n) {
const g = new Ce({ multigraph: !0, compound: !0 });
g.setGraph({ rankdir: 'TB', nodesep: 10, ranksep: 10, marginx: 8, marginy: 8 });
for (const l of d) l.size && g.setNode(l.id, { width: l.size.width, height: l.size.height, intersect: l.intersect });
for (const l of a)
if (l.start && l.end) {
const f = c.getBlock(l.start),
b = c.getBlock(l.end);
if (f != null && f.size && b != null && b.size) {
const p = f.size,
x = b.size,
y = [
{ x: p.x, y: p.y },
{ x: p.x + (x.x - p.x) / 2, y: p.y + (x.y - p.y) / 2 },
{ x: x.x, y: x.y },
];
await Ie(
e,
{ v: l.start, w: l.end, name: l.id },
{
...l,
arrowTypeEnd: l.arrowTypeEnd,
arrowTypeStart: l.arrowTypeStart,
points: y,
classes: 'edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1',
},
void 0,
'block',
g,
n
),
l.label &&
(await Oe(e, {
...l,
label: l.label,
labelStyle: 'stroke: #333; stroke-width: 1.5px;fill:none;',
arrowTypeEnd: l.arrowTypeEnd,
arrowTypeStart: l.arrowTypeStart,
points: y,
classes: 'edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1',
}),
await Te({ ...l, x: y[1].x, y: y[1].y }, { originalPath: y }));
}
}
}
const _ = ((oe = (le = he()) == null ? void 0 : le.block) == null ? void 0 : oe.padding) || 8;
function gt(e, a) {
if (e === 0 || !Number.isInteger(e)) throw new Error('Columns must be an integer !== 0.');
if (a < 0 || !Number.isInteger(a)) throw new Error('Position must be a non-negative integer.' + a);
if (e < 0) return { px: a, py: 0 };
if (e === 1) return { px: 0, py: a };
const d = a % e,
c = Math.floor(a / e);
return { px: d, py: c };
}
const pt = (e) => {
let a = 0,
d = 0;
for (const c of e.children) {
const { width: n, height: g, x: l, y: f } = c.size || { width: 0, height: 0, x: 0, y: 0 };
S.debug('getMaxChildSize abc95 child:', c.id, 'width:', n, 'height:', g, 'x:', l, 'y:', f, c.type),
c.type !== 'space' && (n > a && (a = n / (e.widthInColumns || 1)), g > d && (d = g));
}
return { width: a, height: d };
};
function te(e, a, d = 0, c = 0) {
var n, g, l, f, b, p, x, y, T, v, N;
S.debug(
'setBlockSizes abc95 (start)',
e.id,
(n = e == null ? void 0 : e.size) == null ? void 0 : n.x,
'block width =',
e == null ? void 0 : e.size,
'sieblingWidth',
d
),
((g = e == null ? void 0 : e.size) != null && g.width) || (e.size = { width: d, height: c, x: 0, y: 0 });
let E = 0,
L = 0;
if (((l = e.children) == null ? void 0 : l.length) > 0) {
for (const h of e.children) te(h, a);
const A = pt(e);
(E = A.width), (L = A.height), S.debug('setBlockSizes abc95 maxWidth of', e.id, ':s children is ', E, L);
for (const h of e.children)
h.size &&
(S.debug(`abc95 Setting size of children of ${e.id} id=${h.id} ${E} ${L} ${h.size}`),
(h.size.width = E * (h.widthInColumns || 1) + _ * ((h.widthInColumns || 1) - 1)),
(h.size.height = L),
(h.size.x = 0),
(h.size.y = 0),
S.debug(`abc95 updating size of ${e.id} children child:${h.id} maxWidth:${E} maxHeight:${L}`));
for (const h of e.children) te(h, a, E, L);
const k = e.columns || -1;
let D = 0;
for (const h of e.children) D += h.widthInColumns || 1;
let o = e.children.length;
k > 0 && k < D && (o = k), e.widthInColumns;
const s = Math.ceil(D / o);
let i = o * (E + _) + _,
u = s * (L + _) + _;
if (i < d) {
S.debug(`Detected to small siebling: abc95 ${e.id} sieblingWidth ${d} sieblingHeight ${c} width ${i}`), (i = d), (u = c);
const h = (d - o * _ - _) / o,
t = (c - s * _ - _) / s;
S.debug('Size indata abc88', e.id, 'childWidth', h, 'maxWidth', E),
S.debug('Size indata abc88', e.id, 'childHeight', t, 'maxHeight', L),
S.debug('Size indata abc88 xSize', o, 'padding', _);
for (const m of e.children) m.size && ((m.size.width = h), (m.size.height = t), (m.size.x = 0), (m.size.y = 0));
}
if (
(S.debug(
`abc95 (finale calc) ${e.id} xSize ${o} ySize ${s} columns ${k}${e.children.length} width=${Math.max(
i,
((f = e.size) == null ? void 0 : f.width) || 0
)}`
),
i < (((b = e == null ? void 0 : e.size) == null ? void 0 : b.width) || 0))
) {
i = ((p = e == null ? void 0 : e.size) == null ? void 0 : p.width) || 0;
const h = k > 0 ? Math.min(e.children.length, k) : e.children.length;
if (h > 0) {
const t = (i - h * _ - _) / h;
S.debug('abc95 (growing to fit) width', e.id, i, (x = e.size) == null ? void 0 : x.width, t);
for (const m of e.children) m.size && (m.size.width = t);
}
}
e.size = { width: i, height: u, x: 0, y: 0 };
}
S.debug(
'setBlockSizes abc94 (done)',
e.id,
(y = e == null ? void 0 : e.size) == null ? void 0 : y.x,
(T = e == null ? void 0 : e.size) == null ? void 0 : T.width,
(v = e == null ? void 0 : e.size) == null ? void 0 : v.y,
(N = e == null ? void 0 : e.size) == null ? void 0 : N.height
);
}
function xe(e, a) {
var d, c, n, g, l, f, b, p, x, y, T, v, N, E, L, A, k;
S.debug(
`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(d = e == null ? void 0 : e.size) == null ? void 0 : d.x} y: ${
(c = e == null ? void 0 : e.size) == null ? void 0 : c.y
} width: ${(n = e == null ? void 0 : e.size) == null ? void 0 : n.width}`
);
const D = e.columns || -1;
if ((S.debug('layoutBlocks columns abc95', e.id, '=>', D, e), e.children && e.children.length > 0)) {
const o = ((l = (g = e == null ? void 0 : e.children[0]) == null ? void 0 : g.size) == null ? void 0 : l.width) || 0,
s = e.children.length * o + (e.children.length - 1) * _;
S.debug('widthOfChildren 88', s, 'posX');
let i = 0;
S.debug('abc91 block?.size?.x', e.id, (f = e == null ? void 0 : e.size) == null ? void 0 : f.x);
let u =
(b = e == null ? void 0 : e.size) != null && b.x
? ((p = e == null ? void 0 : e.size) == null ? void 0 : p.x) + (-((x = e == null ? void 0 : e.size) == null ? void 0 : x.width) / 2 || 0)
: -_,
h = 0;
for (const t of e.children) {
const m = e;
if (!t.size) continue;
const { width: r, height: R } = t.size,
{ px: Y, py: F } = gt(D, i);
if (
(F != h &&
((h = F),
(u =
(y = e == null ? void 0 : e.size) != null && y.x
? ((T = e == null ? void 0 : e.size) == null ? void 0 : T.x) +
(-((v = e == null ? void 0 : e.size) == null ? void 0 : v.width) / 2 || 0)
: -_),
S.debug('New row in layout for block', e.id, ' and child ', t.id, h)),
S.debug(
`abc89 layout blocks (child) id: ${t.id} Pos: ${i} (px, py) ${Y},${F} (${(N = m == null ? void 0 : m.size) == null ? void 0 : N.x},${
(E = m == null ? void 0 : m.size) == null ? void 0 : E.y
}) parent: ${m.id} width: ${r}${_}`
),
m.size)
) {
const C = r / 2;
(t.size.x = u + _ + C),
S.debug(
`abc91 layout blocks (calc) px, pyid:${t.id} startingPos=X${u} new startingPosX${
t.size.x
} ${C} padding=${_} width=${r} halfWidth=${C} => x:${t.size.x} y:${t.size.y} ${t.widthInColumns} (width * (child?.w || 1)) / 2 ${
(r * ((t == null ? void 0 : t.widthInColumns) || 1)) / 2
}`
),
(u = t.size.x + C),
(t.size.y = m.size.y - m.size.height / 2 + F * (R + _) + R / 2 + _),
S.debug(
`abc88 layout blocks (calc) px, pyid:${t.id}startingPosX${u}${_}${C}=>x:${t.size.x}y:${t.size.y}${
t.widthInColumns
}(width * (child?.w || 1)) / 2${(r * ((t == null ? void 0 : t.widthInColumns) || 1)) / 2}`
);
}
t.children && xe(t), (i += (t == null ? void 0 : t.widthInColumns) || 1), S.debug('abc88 columnsPos', t, i);
}
}
S.debug(
`layout blocks (<==layoutBlocks) ${e.id} x: ${(L = e == null ? void 0 : e.size) == null ? void 0 : L.x} y: ${
(A = e == null ? void 0 : e.size) == null ? void 0 : A.y
} width: ${(k = e == null ? void 0 : e.size) == null ? void 0 : k.width}`
);
}
function Se(e, { minX: a, minY: d, maxX: c, maxY: n } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {
if (e.size && e.id !== 'root') {
const { x: g, y: l, width: f, height: b } = e.size;
g - f / 2 < a && (a = g - f / 2), l - b / 2 < d && (d = l - b / 2), g + f / 2 > c && (c = g + f / 2), l + b / 2 > n && (n = l + b / 2);
}
if (e.children) for (const g of e.children) ({ minX: a, minY: d, maxX: c, maxY: n } = Se(g, { minX: a, minY: d, maxX: c, maxY: n }));
return { minX: a, minY: d, maxX: c, maxY: n };
}
function ft(e) {
const a = e.getBlock('root');
if (!a) return;
te(a, e, 0, 0), xe(a), S.debug('getBlocks', JSON.stringify(a, null, 2));
const { minX: d, minY: c, maxX: n, maxY: g } = Se(a),
l = g - c,
f = n - d;
return { x: d, y: c, width: f, height: l };
}
const bt = function (e, a) {
return a.db.getClasses();
},
xt = async function (e, a, d, c) {
const { securityLevel: n, block: g } = se(),
l = c.db;
let f;
n === 'sandbox' && (f = H('#i' + a));
const b = n === 'sandbox' ? H(f.nodes()[0].contentDocument.body) : H('body'),
p = n === 'sandbox' ? b.select(`[id="${a}"]`) : H(`[id="${a}"]`);
ke(p, ['point', 'circle', 'cross'], c.type, a);
const y = l.getBlocks(),
T = l.getBlocksFlat(),
v = l.getEdges(),
N = p.insert('g').attr('class', 'block');
await ut(N, y, l);
const E = ft(l);
if ((await dt(N, y, l), await ht(N, v, T, l, a), E)) {
const L = E,
A = Math.max(1, Math.round(0.125 * (L.width / L.height))),
k = L.height + A + 10,
D = L.width + 10,
{ useMaxWidth: o } = g;
ye(p, k, D, !!o), S.debug('Here Bounds', E, L), p.attr('viewBox', `${L.x - 5} ${L.y - 5} ${L.width + 10} ${L.height + 10}`);
}
Ae(Re);
},
St = { draw: xt, getClasses: bt },
Ct = { parser: Pe, db: nt, renderer: St, styles: lt };
export { Ct as diagram };