Files
school-developer/public/bot/assets/quadrantDiagram-c759a472-49fe3c01.js
吴红兵 94c3473958 fix
2026-03-07 01:34:48 +08:00

1456 lines
40 KiB
JavaScript

import {
W as vt,
c as yt,
T as D,
l as ot,
s as Lt,
g as Ct,
A as zt,
B as bt,
a as Et,
b as Dt,
C as It,
h as gt,
i as Bt,
d as wt,
} from './index-0e3b96e2.js';
import { l as _t } from './linear-c769df2f.js';
import './index-9c042f98.js';
import './_plugin-vue_export-helper-c27b6911.js';
import './init-77b53fdd.js';
var pt = (function () {
var e = function (K, n, r, l) {
for (r = r || {}, l = K.length; l--; r[K[l]] = n);
return r;
},
s = [1, 3],
h = [1, 4],
x = [1, 5],
f = [1, 6],
d = [1, 7],
c = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50],
g = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50],
i = [32, 33, 34],
y = [2, 7],
p = [1, 13],
B = [1, 17],
N = [1, 18],
V = [1, 19],
I = [1, 20],
b = [1, 21],
M = [1, 22],
X = [1, 23],
C = [1, 24],
it = [1, 25],
at = [1, 26],
nt = [1, 27],
U = [1, 30],
Q = [1, 31],
T = [1, 32],
_ = [1, 33],
m = [1, 34],
t = [1, 35],
A = [1, 36],
S = [1, 37],
k = [1, 38],
F = [1, 39],
P = [1, 40],
v = [1, 41],
L = [1, 42],
O = [1, 57],
Y = [1, 58],
z = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51],
ht = {
trace: function () {},
yy: {},
symbols_: {
error: 2,
start: 3,
eol: 4,
SPACE: 5,
QUADRANT: 6,
document: 7,
line: 8,
statement: 9,
axisDetails: 10,
quadrantDetails: 11,
points: 12,
title: 13,
title_value: 14,
acc_title: 15,
acc_title_value: 16,
acc_descr: 17,
acc_descr_value: 18,
acc_descr_multiline_value: 19,
section: 20,
text: 21,
point_start: 22,
point_x: 23,
point_y: 24,
'X-AXIS': 25,
'AXIS-TEXT-DELIMITER': 26,
'Y-AXIS': 27,
QUADRANT_1: 28,
QUADRANT_2: 29,
QUADRANT_3: 30,
QUADRANT_4: 31,
NEWLINE: 32,
SEMI: 33,
EOF: 34,
alphaNumToken: 35,
textNoTagsToken: 36,
STR: 37,
MD_STR: 38,
alphaNum: 39,
PUNCTUATION: 40,
AMP: 41,
NUM: 42,
ALPHA: 43,
COMMA: 44,
PLUS: 45,
EQUALS: 46,
MULT: 47,
DOT: 48,
BRKT: 49,
UNDERSCORE: 50,
MINUS: 51,
$accept: 0,
$end: 1,
},
terminals_: {
2: 'error',
5: 'SPACE',
6: 'QUADRANT',
13: 'title',
14: 'title_value',
15: 'acc_title',
16: 'acc_title_value',
17: 'acc_descr',
18: 'acc_descr_value',
19: 'acc_descr_multiline_value',
20: 'section',
22: 'point_start',
23: 'point_x',
24: 'point_y',
25: 'X-AXIS',
26: 'AXIS-TEXT-DELIMITER',
27: 'Y-AXIS',
28: 'QUADRANT_1',
29: 'QUADRANT_2',
30: 'QUADRANT_3',
31: 'QUADRANT_4',
32: 'NEWLINE',
33: 'SEMI',
34: 'EOF',
37: 'STR',
38: 'MD_STR',
40: 'PUNCTUATION',
41: 'AMP',
42: 'NUM',
43: 'ALPHA',
44: 'COMMA',
45: 'PLUS',
46: 'EQUALS',
47: 'MULT',
48: 'DOT',
49: 'BRKT',
50: 'UNDERSCORE',
51: 'MINUS',
},
productions_: [
0,
[3, 2],
[3, 2],
[3, 2],
[7, 0],
[7, 2],
[8, 2],
[9, 0],
[9, 2],
[9, 1],
[9, 1],
[9, 1],
[9, 2],
[9, 2],
[9, 2],
[9, 1],
[9, 1],
[12, 4],
[10, 4],
[10, 3],
[10, 2],
[10, 4],
[10, 3],
[10, 2],
[11, 2],
[11, 2],
[11, 2],
[11, 2],
[4, 1],
[4, 1],
[4, 1],
[21, 1],
[21, 2],
[21, 1],
[21, 1],
[39, 1],
[39, 2],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[35, 1],
[36, 1],
[36, 1],
[36, 1],
],
performAction: function (n, r, l, o, q, a, et) {
var u = a.length - 1;
switch (q) {
case 12:
(this.$ = a[u].trim()), o.setDiagramTitle(this.$);
break;
case 13:
(this.$ = a[u].trim()), o.setAccTitle(this.$);
break;
case 14:
case 15:
(this.$ = a[u].trim()), o.setAccDescription(this.$);
break;
case 16:
o.addSection(a[u].substr(8)), (this.$ = a[u].substr(8));
break;
case 17:
o.addPoint(a[u - 3], a[u - 1], a[u]);
break;
case 18:
o.setXAxisLeftText(a[u - 2]), o.setXAxisRightText(a[u]);
break;
case 19:
(a[u - 1].text += ' ⟶ '), o.setXAxisLeftText(a[u - 1]);
break;
case 20:
o.setXAxisLeftText(a[u]);
break;
case 21:
o.setYAxisBottomText(a[u - 2]), o.setYAxisTopText(a[u]);
break;
case 22:
(a[u - 1].text += ' ⟶ '), o.setYAxisBottomText(a[u - 1]);
break;
case 23:
o.setYAxisBottomText(a[u]);
break;
case 24:
o.setQuadrant1Text(a[u]);
break;
case 25:
o.setQuadrant2Text(a[u]);
break;
case 26:
o.setQuadrant3Text(a[u]);
break;
case 27:
o.setQuadrant4Text(a[u]);
break;
case 31:
this.$ = { text: a[u], type: 'text' };
break;
case 32:
this.$ = { text: a[u - 1].text + '' + a[u], type: a[u - 1].type };
break;
case 33:
this.$ = { text: a[u], type: 'text' };
break;
case 34:
this.$ = { text: a[u], type: 'markdown' };
break;
case 35:
this.$ = a[u];
break;
case 36:
this.$ = a[u - 1] + '' + a[u];
break;
}
},
table: [
{ 3: 1, 4: 2, 5: s, 6: h, 32: x, 33: f, 34: d },
{ 1: [3] },
{ 3: 8, 4: 2, 5: s, 6: h, 32: x, 33: f, 34: d },
{ 3: 9, 4: 2, 5: s, 6: h, 32: x, 33: f, 34: d },
e(c, [2, 4], { 7: 10 }),
e(g, [2, 28]),
e(g, [2, 29]),
e(g, [2, 30]),
{ 1: [2, 1] },
{ 1: [2, 2] },
e(i, y, {
8: 11,
9: 12,
10: 14,
11: 15,
12: 16,
21: 28,
35: 29,
1: [2, 3],
5: p,
13: B,
15: N,
17: V,
19: I,
20: b,
25: M,
27: X,
28: C,
29: it,
30: at,
31: nt,
37: U,
38: Q,
40: T,
41: _,
42: m,
43: t,
44: A,
45: S,
46: k,
47: F,
48: P,
49: v,
50: L,
}),
e(c, [2, 5]),
{ 4: 43, 32: x, 33: f, 34: d },
e(i, y, {
10: 14,
11: 15,
12: 16,
21: 28,
35: 29,
9: 44,
5: p,
13: B,
15: N,
17: V,
19: I,
20: b,
25: M,
27: X,
28: C,
29: it,
30: at,
31: nt,
37: U,
38: Q,
40: T,
41: _,
42: m,
43: t,
44: A,
45: S,
46: k,
47: F,
48: P,
49: v,
50: L,
}),
e(i, [2, 9]),
e(i, [2, 10]),
e(i, [2, 11]),
{ 14: [1, 45] },
{ 16: [1, 46] },
{ 18: [1, 47] },
e(i, [2, 15]),
e(i, [2, 16]),
{ 21: 48, 35: 29, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L },
{ 21: 49, 35: 29, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L },
{ 21: 50, 35: 29, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L },
{ 21: 51, 35: 29, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L },
{ 21: 52, 35: 29, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L },
{ 21: 53, 35: 29, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L },
{ 5: O, 22: [1, 54], 35: 56, 36: 55, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y },
e(z, [2, 31]),
e(z, [2, 33]),
e(z, [2, 34]),
e(z, [2, 37]),
e(z, [2, 38]),
e(z, [2, 39]),
e(z, [2, 40]),
e(z, [2, 41]),
e(z, [2, 42]),
e(z, [2, 43]),
e(z, [2, 44]),
e(z, [2, 45]),
e(z, [2, 46]),
e(z, [2, 47]),
e(c, [2, 6]),
e(i, [2, 8]),
e(i, [2, 12]),
e(i, [2, 13]),
e(i, [2, 14]),
e(i, [2, 20], { 36: 55, 35: 56, 5: O, 26: [1, 59], 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 23], { 36: 55, 35: 56, 5: O, 26: [1, 60], 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 24], { 36: 55, 35: 56, 5: O, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 25], { 36: 55, 35: 56, 5: O, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 26], { 36: 55, 35: 56, 5: O, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 27], { 36: 55, 35: 56, 5: O, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
{ 23: [1, 61] },
e(z, [2, 32]),
e(z, [2, 48]),
e(z, [2, 49]),
e(z, [2, 50]),
e(i, [2, 19], { 35: 29, 21: 62, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }),
e(i, [2, 22], { 35: 29, 21: 63, 37: U, 38: Q, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }),
{ 24: [1, 64] },
e(i, [2, 18], { 36: 55, 35: 56, 5: O, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 21], { 36: 55, 35: 56, 5: O, 40: T, 41: _, 42: m, 43: t, 44: A, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: Y }),
e(i, [2, 17]),
],
defaultActions: { 8: [2, 1], 9: [2, 2] },
parseError: function (n, r) {
if (r.recoverable) this.trace(n);
else {
var l = new Error(n);
throw ((l.hash = r), l);
}
},
parse: function (n) {
var r = this,
l = [0],
o = [],
q = [null],
a = [],
et = this.table,
u = '',
st = 0,
qt = 0,
St = 2,
Tt = 1,
kt = a.slice.call(arguments, 1),
E = Object.create(this.lexer),
Z = { yy: {} };
for (var dt in this.yy) Object.prototype.hasOwnProperty.call(this.yy, dt) && (Z.yy[dt] = this.yy[dt]);
E.setInput(n, Z.yy), (Z.yy.lexer = E), (Z.yy.parser = this), typeof E.yylloc > 'u' && (E.yylloc = {});
var ut = E.yylloc;
a.push(ut);
var Ft = E.options && E.options.ranges;
typeof Z.yy.parseError == 'function' ? (this.parseError = Z.yy.parseError) : (this.parseError = Object.getPrototypeOf(this).parseError);
function Pt() {
var j;
return (
(j = o.pop() || E.lex() || Tt), typeof j != 'number' && (j instanceof Array && ((o = j), (j = o.pop())), (j = r.symbols_[j] || j)), j
);
}
for (var W, J, H, xt, tt = {}, rt, $, mt, lt; ; ) {
if (
((J = l[l.length - 1]),
this.defaultActions[J] ? (H = this.defaultActions[J]) : ((W === null || typeof W > 'u') && (W = Pt()), (H = et[J] && et[J][W])),
typeof H > 'u' || !H.length || !H[0])
) {
var ft = '';
lt = [];
for (rt in et[J]) this.terminals_[rt] && rt > St && lt.push("'" + this.terminals_[rt] + "'");
E.showPosition
? (ft =
'Parse error on line ' +
(st + 1) +
`:
` +
E.showPosition() +
`
Expecting ` +
lt.join(', ') +
", got '" +
(this.terminals_[W] || W) +
"'")
: (ft = 'Parse error on line ' + (st + 1) + ': Unexpected ' + (W == Tt ? 'end of input' : "'" + (this.terminals_[W] || W) + "'")),
this.parseError(ft, { text: E.match, token: this.terminals_[W] || W, line: E.yylineno, loc: ut, expected: lt });
}
if (H[0] instanceof Array && H.length > 1) throw new Error('Parse Error: multiple actions possible at state: ' + J + ', token: ' + W);
switch (H[0]) {
case 1:
l.push(W),
q.push(E.yytext),
a.push(E.yylloc),
l.push(H[1]),
(W = null),
(qt = E.yyleng),
(u = E.yytext),
(st = E.yylineno),
(ut = E.yylloc);
break;
case 2:
if (
(($ = this.productions_[H[1]][1]),
(tt.$ = q[q.length - $]),
(tt._$ = {
first_line: a[a.length - ($ || 1)].first_line,
last_line: a[a.length - 1].last_line,
first_column: a[a.length - ($ || 1)].first_column,
last_column: a[a.length - 1].last_column,
}),
Ft && (tt._$.range = [a[a.length - ($ || 1)].range[0], a[a.length - 1].range[1]]),
(xt = this.performAction.apply(tt, [u, qt, st, Z.yy, H[1], q, a].concat(kt))),
typeof xt < 'u')
)
return xt;
$ && ((l = l.slice(0, -1 * $ * 2)), (q = q.slice(0, -1 * $)), (a = a.slice(0, -1 * $))),
l.push(this.productions_[H[1]][0]),
q.push(tt.$),
a.push(tt._$),
(mt = et[l[l.length - 2]][l[l.length - 1]]),
l.push(mt);
break;
case 3:
return !0;
}
}
return !0;
},
},
At = (function () {
var K = {
EOF: 1,
parseError: function (r, l) {
if (this.yy.parser) this.yy.parser.parseError(r, l);
else throw new Error(r);
},
setInput: function (n, r) {
return (
(this.yy = r || this.yy || {}),
(this._input = n),
(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 n = this._input[0];
(this.yytext += n), this.yyleng++, this.offset++, (this.match += n), (this.matched += n);
var r = n.match(/(?:\r\n?|\n).*/g);
return (
r ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++,
this.options.ranges && this.yylloc.range[1]++,
(this._input = this._input.slice(1)),
n
);
},
unput: function (n) {
var r = n.length,
l = n.split(/(?:\r\n?|\n)/g);
(this._input = n + this._input), (this.yytext = this.yytext.substr(0, this.yytext.length - r)), (this.offset -= r);
var o = 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)),
l.length - 1 && (this.yylineno -= l.length - 1);
var q = 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: l
? (l.length === o.length ? this.yylloc.first_column : 0) + o[o.length - l.length].length - l[0].length
: this.yylloc.first_column - r,
}),
this.options.ranges && (this.yylloc.range = [q[0], q[0] + this.yyleng - r]),
(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 (n) {
this.unput(this.match.slice(n));
},
pastInput: function () {
var n = this.matched.substr(0, this.matched.length - this.match.length);
return (n.length > 20 ? '...' : '') + n.substr(-20).replace(/\n/g, '');
},
upcomingInput: function () {
var n = this.match;
return n.length < 20 && (n += this._input.substr(0, 20 - n.length)), (n.substr(0, 20) + (n.length > 20 ? '...' : '')).replace(/\n/g, '');
},
showPosition: function () {
var n = this.pastInput(),
r = new Array(n.length + 1).join('-');
return (
n +
this.upcomingInput() +
`
` +
r +
'^'
);
},
test_match: function (n, r) {
var l, o, q;
if (
(this.options.backtrack_lexer &&
((q = {
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 && (q.yylloc.range = this.yylloc.range.slice(0))),
(o = n[0].match(/(?:\r\n?|\n).*/g)),
o && (this.yylineno += o.length),
(this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: o ? o[o.length - 1].length - o[o.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + n[0].length,
}),
(this.yytext += n[0]),
(this.match += n[0]),
(this.matches = n),
(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(n[0].length)),
(this.matched += n[0]),
(l = this.performAction.call(this, this.yy, this, r, this.conditionStack[this.conditionStack.length - 1])),
this.done && this._input && (this.done = !1),
l)
)
return l;
if (this._backtrack) {
for (var a in q) this[a] = q[a];
return !1;
}
return !1;
},
next: function () {
if (this.done) return this.EOF;
this._input || (this.done = !0);
var n, r, l, o;
this._more || ((this.yytext = ''), (this.match = ''));
for (var q = this._currentRules(), a = 0; a < q.length; a++)
if (((l = this._input.match(this.rules[q[a]])), l && (!r || l[0].length > r[0].length))) {
if (((r = l), (o = a), this.options.backtrack_lexer)) {
if (((n = this.test_match(l, q[a])), n !== !1)) return n;
if (this._backtrack) {
r = !1;
continue;
} else return !1;
} else if (!this.options.flex) break;
}
return r
? ((n = this.test_match(r, q[o])), n !== !1 ? n : !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 r = this.next();
return r || this.lex();
},
begin: function (r) {
this.conditionStack.push(r);
},
popState: function () {
var r = this.conditionStack.length - 1;
return r > 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 (r) {
return (r = this.conditionStack.length - 1 - Math.abs(r || 0)), r >= 0 ? this.conditionStack[r] : 'INITIAL';
},
pushState: function (r) {
this.begin(r);
},
stateStackSize: function () {
return this.conditionStack.length;
},
options: { 'case-insensitive': !0 },
performAction: function (r, l, o, q) {
switch (o) {
case 0:
break;
case 1:
break;
case 2:
return 32;
case 3:
break;
case 4:
return this.begin('title'), 13;
case 5:
return this.popState(), 'title_value';
case 6:
return this.begin('acc_title'), 15;
case 7:
return this.popState(), 'acc_title_value';
case 8:
return this.begin('acc_descr'), 17;
case 9:
return this.popState(), 'acc_descr_value';
case 10:
this.begin('acc_descr_multiline');
break;
case 11:
this.popState();
break;
case 12:
return 'acc_descr_multiline_value';
case 13:
return 25;
case 14:
return 27;
case 15:
return 26;
case 16:
return 28;
case 17:
return 29;
case 18:
return 30;
case 19:
return 31;
case 20:
this.begin('md_string');
break;
case 21:
return 'MD_STR';
case 22:
this.popState();
break;
case 23:
this.begin('string');
break;
case 24:
this.popState();
break;
case 25:
return 'STR';
case 26:
return this.begin('point_start'), 22;
case 27:
return this.begin('point_x'), 23;
case 28:
this.popState();
break;
case 29:
this.popState(), this.begin('point_y');
break;
case 30:
return this.popState(), 24;
case 31:
return 6;
case 32:
return 43;
case 33:
return 'COLON';
case 34:
return 45;
case 35:
return 44;
case 36:
return 46;
case 37:
return 46;
case 38:
return 47;
case 39:
return 49;
case 40:
return 50;
case 41:
return 48;
case 42:
return 41;
case 43:
return 51;
case 44:
return 42;
case 45:
return 5;
case 46:
return 33;
case 47:
return 40;
case 48:
return 34;
}
},
rules: [
/^(?:%%(?!\{)[^\n]*)/i,
/^(?:[^\}]%%[^\n]*)/i,
/^(?:[\n\r]+)/i,
/^(?:%%[^\n]*)/i,
/^(?:title\b)/i,
/^(?:(?!\n||)*[^\n]*)/i,
/^(?:accTitle\s*:\s*)/i,
/^(?:(?!\n||)*[^\n]*)/i,
/^(?:accDescr\s*:\s*)/i,
/^(?:(?!\n||)*[^\n]*)/i,
/^(?:accDescr\s*\{\s*)/i,
/^(?:[\}])/i,
/^(?:[^\}]*)/i,
/^(?: *x-axis *)/i,
/^(?: *y-axis *)/i,
/^(?: *--+> *)/i,
/^(?: *quadrant-1 *)/i,
/^(?: *quadrant-2 *)/i,
/^(?: *quadrant-3 *)/i,
/^(?: *quadrant-4 *)/i,
/^(?:["][`])/i,
/^(?:[^`"]+)/i,
/^(?:[`]["])/i,
/^(?:["])/i,
/^(?:["])/i,
/^(?:[^"]*)/i,
/^(?:\s*:\s*\[\s*)/i,
/^(?:(1)|(0(.\d+)?))/i,
/^(?:\s*\] *)/i,
/^(?:\s*,\s*)/i,
/^(?:(1)|(0(.\d+)?))/i,
/^(?: *quadrantChart *)/i,
/^(?:[A-Za-z]+)/i,
/^(?::)/i,
/^(?:\+)/i,
/^(?:,)/i,
/^(?:=)/i,
/^(?:=)/i,
/^(?:\*)/i,
/^(?:#)/i,
/^(?:[\_])/i,
/^(?:\.)/i,
/^(?:&)/i,
/^(?:-)/i,
/^(?:[0-9]+)/i,
/^(?:\s)/i,
/^(?:;)/i,
/^(?:[!"#$%&'*+,-.`?\\_/])/i,
/^(?:$)/i,
],
conditions: {
point_y: { rules: [30], inclusive: !1 },
point_x: { rules: [29], inclusive: !1 },
point_start: { rules: [27, 28], inclusive: !1 },
acc_descr_multiline: { rules: [11, 12], inclusive: !1 },
acc_descr: { rules: [9], inclusive: !1 },
acc_title: { rules: [7], inclusive: !1 },
title: { rules: [5], inclusive: !1 },
md_string: { rules: [21, 22], inclusive: !1 },
string: { rules: [24, 25], inclusive: !1 },
INITIAL: {
rules: [
0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
],
inclusive: !0,
},
},
};
return K;
})();
ht.lexer = At;
function ct() {
this.yy = {};
}
return (ct.prototype = ht), (ht.Parser = ct), new ct();
})();
pt.parser = pt;
const Rt = pt,
R = vt();
class Vt {
constructor() {
(this.config = this.getDefaultConfig()), (this.themeConfig = this.getDefaultThemeConfig()), (this.data = this.getDefaultData());
}
getDefaultData() {
return {
titleText: '',
quadrant1Text: '',
quadrant2Text: '',
quadrant3Text: '',
quadrant4Text: '',
xAxisLeftText: '',
xAxisRightText: '',
yAxisBottomText: '',
yAxisTopText: '',
points: [],
};
}
getDefaultConfig() {
var s, h, x, f, d, c, g, i, y, p, B, N, V, I, b, M, X, C;
return {
showXAxis: !0,
showYAxis: !0,
showTitle: !0,
chartHeight: ((s = D.quadrantChart) == null ? void 0 : s.chartWidth) || 500,
chartWidth: ((h = D.quadrantChart) == null ? void 0 : h.chartHeight) || 500,
titlePadding: ((x = D.quadrantChart) == null ? void 0 : x.titlePadding) || 10,
titleFontSize: ((f = D.quadrantChart) == null ? void 0 : f.titleFontSize) || 20,
quadrantPadding: ((d = D.quadrantChart) == null ? void 0 : d.quadrantPadding) || 5,
xAxisLabelPadding: ((c = D.quadrantChart) == null ? void 0 : c.xAxisLabelPadding) || 5,
yAxisLabelPadding: ((g = D.quadrantChart) == null ? void 0 : g.yAxisLabelPadding) || 5,
xAxisLabelFontSize: ((i = D.quadrantChart) == null ? void 0 : i.xAxisLabelFontSize) || 16,
yAxisLabelFontSize: ((y = D.quadrantChart) == null ? void 0 : y.yAxisLabelFontSize) || 16,
quadrantLabelFontSize: ((p = D.quadrantChart) == null ? void 0 : p.quadrantLabelFontSize) || 16,
quadrantTextTopPadding: ((B = D.quadrantChart) == null ? void 0 : B.quadrantTextTopPadding) || 5,
pointTextPadding: ((N = D.quadrantChart) == null ? void 0 : N.pointTextPadding) || 5,
pointLabelFontSize: ((V = D.quadrantChart) == null ? void 0 : V.pointLabelFontSize) || 12,
pointRadius: ((I = D.quadrantChart) == null ? void 0 : I.pointRadius) || 5,
xAxisPosition: ((b = D.quadrantChart) == null ? void 0 : b.xAxisPosition) || 'top',
yAxisPosition: ((M = D.quadrantChart) == null ? void 0 : M.yAxisPosition) || 'left',
quadrantInternalBorderStrokeWidth: ((X = D.quadrantChart) == null ? void 0 : X.quadrantInternalBorderStrokeWidth) || 1,
quadrantExternalBorderStrokeWidth: ((C = D.quadrantChart) == null ? void 0 : C.quadrantExternalBorderStrokeWidth) || 2,
};
}
getDefaultThemeConfig() {
return {
quadrant1Fill: R.quadrant1Fill,
quadrant2Fill: R.quadrant2Fill,
quadrant3Fill: R.quadrant3Fill,
quadrant4Fill: R.quadrant4Fill,
quadrant1TextFill: R.quadrant1TextFill,
quadrant2TextFill: R.quadrant2TextFill,
quadrant3TextFill: R.quadrant3TextFill,
quadrant4TextFill: R.quadrant4TextFill,
quadrantPointFill: R.quadrantPointFill,
quadrantPointTextFill: R.quadrantPointTextFill,
quadrantXAxisTextFill: R.quadrantXAxisTextFill,
quadrantYAxisTextFill: R.quadrantYAxisTextFill,
quadrantTitleFill: R.quadrantTitleFill,
quadrantInternalBorderStrokeFill: R.quadrantInternalBorderStrokeFill,
quadrantExternalBorderStrokeFill: R.quadrantExternalBorderStrokeFill,
};
}
clear() {
(this.config = this.getDefaultConfig()),
(this.themeConfig = this.getDefaultThemeConfig()),
(this.data = this.getDefaultData()),
ot.info('clear called');
}
setData(s) {
this.data = { ...this.data, ...s };
}
addPoints(s) {
this.data.points = [...s, ...this.data.points];
}
setConfig(s) {
ot.trace('setConfig called with: ', s), (this.config = { ...this.config, ...s });
}
setThemeConfig(s) {
ot.trace('setThemeConfig called with: ', s), (this.themeConfig = { ...this.themeConfig, ...s });
}
calculateSpace(s, h, x, f) {
const d = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize,
c = { top: s === 'top' && h ? d : 0, bottom: s === 'bottom' && h ? d : 0 },
g = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize,
i = { left: this.config.yAxisPosition === 'left' && x ? g : 0, right: this.config.yAxisPosition === 'right' && x ? g : 0 },
y = this.config.titleFontSize + this.config.titlePadding * 2,
p = { top: f ? y : 0 },
B = this.config.quadrantPadding + i.left,
N = this.config.quadrantPadding + c.top + p.top,
V = this.config.chartWidth - this.config.quadrantPadding * 2 - i.left - i.right,
I = this.config.chartHeight - this.config.quadrantPadding * 2 - c.top - c.bottom - p.top,
b = V / 2,
M = I / 2;
return {
xAxisSpace: c,
yAxisSpace: i,
titleSpace: p,
quadrantSpace: { quadrantLeft: B, quadrantTop: N, quadrantWidth: V, quadrantHalfWidth: b, quadrantHeight: I, quadrantHalfHeight: M },
};
}
getAxisLabels(s, h, x, f) {
const { quadrantSpace: d, titleSpace: c } = f,
{ quadrantHalfHeight: g, quadrantHeight: i, quadrantLeft: y, quadrantHalfWidth: p, quadrantTop: B, quadrantWidth: N } = d,
V = !!this.data.xAxisRightText,
I = !!this.data.yAxisTopText,
b = [];
return (
this.data.xAxisLeftText &&
h &&
b.push({
text: this.data.xAxisLeftText,
fill: this.themeConfig.quadrantXAxisTextFill,
x: y + (V ? p / 2 : 0),
y: s === 'top' ? this.config.xAxisLabelPadding + c.top : this.config.xAxisLabelPadding + B + i + this.config.quadrantPadding,
fontSize: this.config.xAxisLabelFontSize,
verticalPos: V ? 'center' : 'left',
horizontalPos: 'top',
rotation: 0,
}),
this.data.xAxisRightText &&
h &&
b.push({
text: this.data.xAxisRightText,
fill: this.themeConfig.quadrantXAxisTextFill,
x: y + p + (V ? p / 2 : 0),
y: s === 'top' ? this.config.xAxisLabelPadding + c.top : this.config.xAxisLabelPadding + B + i + this.config.quadrantPadding,
fontSize: this.config.xAxisLabelFontSize,
verticalPos: V ? 'center' : 'left',
horizontalPos: 'top',
rotation: 0,
}),
this.data.yAxisBottomText &&
x &&
b.push({
text: this.data.yAxisBottomText,
fill: this.themeConfig.quadrantYAxisTextFill,
x:
this.config.yAxisPosition === 'left'
? this.config.yAxisLabelPadding
: this.config.yAxisLabelPadding + y + N + this.config.quadrantPadding,
y: B + i - (I ? g / 2 : 0),
fontSize: this.config.yAxisLabelFontSize,
verticalPos: I ? 'center' : 'left',
horizontalPos: 'top',
rotation: -90,
}),
this.data.yAxisTopText &&
x &&
b.push({
text: this.data.yAxisTopText,
fill: this.themeConfig.quadrantYAxisTextFill,
x:
this.config.yAxisPosition === 'left'
? this.config.yAxisLabelPadding
: this.config.yAxisLabelPadding + y + N + this.config.quadrantPadding,
y: B + g - (I ? g / 2 : 0),
fontSize: this.config.yAxisLabelFontSize,
verticalPos: I ? 'center' : 'left',
horizontalPos: 'top',
rotation: -90,
}),
b
);
}
getQuadrants(s) {
const { quadrantSpace: h } = s,
{ quadrantHalfHeight: x, quadrantLeft: f, quadrantHalfWidth: d, quadrantTop: c } = h,
g = [
{
text: {
text: this.data.quadrant1Text,
fill: this.themeConfig.quadrant1TextFill,
x: 0,
y: 0,
fontSize: this.config.quadrantLabelFontSize,
verticalPos: 'center',
horizontalPos: 'middle',
rotation: 0,
},
x: f + d,
y: c,
width: d,
height: x,
fill: this.themeConfig.quadrant1Fill,
},
{
text: {
text: this.data.quadrant2Text,
fill: this.themeConfig.quadrant2TextFill,
x: 0,
y: 0,
fontSize: this.config.quadrantLabelFontSize,
verticalPos: 'center',
horizontalPos: 'middle',
rotation: 0,
},
x: f,
y: c,
width: d,
height: x,
fill: this.themeConfig.quadrant2Fill,
},
{
text: {
text: this.data.quadrant3Text,
fill: this.themeConfig.quadrant3TextFill,
x: 0,
y: 0,
fontSize: this.config.quadrantLabelFontSize,
verticalPos: 'center',
horizontalPos: 'middle',
rotation: 0,
},
x: f,
y: c + x,
width: d,
height: x,
fill: this.themeConfig.quadrant3Fill,
},
{
text: {
text: this.data.quadrant4Text,
fill: this.themeConfig.quadrant4TextFill,
x: 0,
y: 0,
fontSize: this.config.quadrantLabelFontSize,
verticalPos: 'center',
horizontalPos: 'middle',
rotation: 0,
},
x: f + d,
y: c + x,
width: d,
height: x,
fill: this.themeConfig.quadrant4Fill,
},
];
for (const i of g)
(i.text.x = i.x + i.width / 2),
this.data.points.length === 0
? ((i.text.y = i.y + i.height / 2), (i.text.horizontalPos = 'middle'))
: ((i.text.y = i.y + this.config.quadrantTextTopPadding), (i.text.horizontalPos = 'top'));
return g;
}
getQuadrantPoints(s) {
const { quadrantSpace: h } = s,
{ quadrantHeight: x, quadrantLeft: f, quadrantTop: d, quadrantWidth: c } = h,
g = _t()
.domain([0, 1])
.range([f, c + f]),
i = _t()
.domain([0, 1])
.range([x + d, d]);
return this.data.points.map((p) => ({
x: g(p.x),
y: i(p.y),
fill: this.themeConfig.quadrantPointFill,
radius: this.config.pointRadius,
text: {
text: p.text,
fill: this.themeConfig.quadrantPointTextFill,
x: g(p.x),
y: i(p.y) + this.config.pointTextPadding,
verticalPos: 'center',
horizontalPos: 'top',
fontSize: this.config.pointLabelFontSize,
rotation: 0,
},
}));
}
getBorders(s) {
const h = this.config.quadrantExternalBorderStrokeWidth / 2,
{ quadrantSpace: x } = s,
{ quadrantHalfHeight: f, quadrantHeight: d, quadrantLeft: c, quadrantHalfWidth: g, quadrantTop: i, quadrantWidth: y } = x;
return [
{
strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
x1: c - h,
y1: i,
x2: c + y + h,
y2: i,
},
{
strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
x1: c + y,
y1: i + h,
x2: c + y,
y2: i + d - h,
},
{
strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
x1: c - h,
y1: i + d,
x2: c + y + h,
y2: i + d,
},
{
strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
x1: c,
y1: i + h,
x2: c,
y2: i + d - h,
},
{
strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,
strokeWidth: this.config.quadrantInternalBorderStrokeWidth,
x1: c + g,
y1: i + h,
x2: c + g,
y2: i + d - h,
},
{
strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,
strokeWidth: this.config.quadrantInternalBorderStrokeWidth,
x1: c + h,
y1: i + f,
x2: c + y - h,
y2: i + f,
},
];
}
getTitle(s) {
if (s)
return {
text: this.data.titleText,
fill: this.themeConfig.quadrantTitleFill,
fontSize: this.config.titleFontSize,
horizontalPos: 'top',
verticalPos: 'center',
rotation: 0,
y: this.config.titlePadding,
x: this.config.chartWidth / 2,
};
}
build() {
const s = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText),
h = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText),
x = this.config.showTitle && !!this.data.titleText,
f = this.data.points.length > 0 ? 'bottom' : this.config.xAxisPosition,
d = this.calculateSpace(f, s, h, x);
return {
points: this.getQuadrantPoints(d),
quadrants: this.getQuadrants(d),
axisLabels: this.getAxisLabels(f, s, h, d),
borderLines: this.getBorders(d),
title: this.getTitle(x),
};
}
}
const Wt = yt();
function G(e) {
return wt(e.trim(), Wt);
}
const w = new Vt();
function Nt(e) {
w.setData({ quadrant1Text: G(e.text) });
}
function Ut(e) {
w.setData({ quadrant2Text: G(e.text) });
}
function Qt(e) {
w.setData({ quadrant3Text: G(e.text) });
}
function Ht(e) {
w.setData({ quadrant4Text: G(e.text) });
}
function Mt(e) {
w.setData({ xAxisLeftText: G(e.text) });
}
function Xt(e) {
w.setData({ xAxisRightText: G(e.text) });
}
function Ot(e) {
w.setData({ yAxisTopText: G(e.text) });
}
function Yt(e) {
w.setData({ yAxisBottomText: G(e.text) });
}
function $t(e, s, h) {
w.addPoints([{ x: s, y: h, text: G(e.text) }]);
}
function jt(e) {
w.setConfig({ chartWidth: e });
}
function Gt(e) {
w.setConfig({ chartHeight: e });
}
function Kt() {
const e = yt(),
{ themeVariables: s, quadrantChart: h } = e;
return (
h && w.setConfig(h),
w.setThemeConfig({
quadrant1Fill: s.quadrant1Fill,
quadrant2Fill: s.quadrant2Fill,
quadrant3Fill: s.quadrant3Fill,
quadrant4Fill: s.quadrant4Fill,
quadrant1TextFill: s.quadrant1TextFill,
quadrant2TextFill: s.quadrant2TextFill,
quadrant3TextFill: s.quadrant3TextFill,
quadrant4TextFill: s.quadrant4TextFill,
quadrantPointFill: s.quadrantPointFill,
quadrantPointTextFill: s.quadrantPointTextFill,
quadrantXAxisTextFill: s.quadrantXAxisTextFill,
quadrantYAxisTextFill: s.quadrantYAxisTextFill,
quadrantExternalBorderStrokeFill: s.quadrantExternalBorderStrokeFill,
quadrantInternalBorderStrokeFill: s.quadrantInternalBorderStrokeFill,
quadrantTitleFill: s.quadrantTitleFill,
}),
w.setData({ titleText: bt() }),
w.build()
);
}
const Zt = function () {
w.clear(), It();
},
Jt = {
setWidth: jt,
setHeight: Gt,
setQuadrant1Text: Nt,
setQuadrant2Text: Ut,
setQuadrant3Text: Qt,
setQuadrant4Text: Ht,
setXAxisLeftText: Mt,
setXAxisRightText: Xt,
setYAxisTopText: Ot,
setYAxisBottomText: Yt,
addPoint: $t,
getQuadrantData: Kt,
clear: Zt,
setAccTitle: Lt,
getAccTitle: Ct,
setDiagramTitle: zt,
getDiagramTitle: bt,
getAccDescription: Et,
setAccDescription: Dt,
},
te = (e, s, h, x) => {
var f, d, c;
function g(t) {
return t === 'top' ? 'hanging' : 'middle';
}
function i(t) {
return t === 'left' ? 'start' : 'middle';
}
function y(t) {
return `translate(${t.x}, ${t.y}) rotate(${t.rotation || 0})`;
}
const p = yt();
ot.debug(
`Rendering quadrant chart
` + e
);
const B = p.securityLevel;
let N;
B === 'sandbox' && (N = gt('#i' + s));
const I = (B === 'sandbox' ? gt(N.nodes()[0].contentDocument.body) : gt('body')).select(`[id="${s}"]`),
b = I.append('g').attr('class', 'main'),
M = ((f = p.quadrantChart) == null ? void 0 : f.chartWidth) || 500,
X = ((d = p.quadrantChart) == null ? void 0 : d.chartHeight) || 500;
Bt(I, X, M, ((c = p.quadrantChart) == null ? void 0 : c.useMaxWidth) || !0),
I.attr('viewBox', '0 0 ' + M + ' ' + X),
x.db.setHeight(X),
x.db.setWidth(M);
const C = x.db.getQuadrantData(),
it = b.append('g').attr('class', 'quadrants'),
at = b.append('g').attr('class', 'border'),
nt = b.append('g').attr('class', 'data-points'),
U = b.append('g').attr('class', 'labels'),
Q = b.append('g').attr('class', 'title');
C.title &&
Q.append('text')
.attr('x', 0)
.attr('y', 0)
.attr('fill', C.title.fill)
.attr('font-size', C.title.fontSize)
.attr('dominant-baseline', g(C.title.horizontalPos))
.attr('text-anchor', i(C.title.verticalPos))
.attr('transform', y(C.title))
.text(C.title.text),
C.borderLines &&
at
.selectAll('line')
.data(C.borderLines)
.enter()
.append('line')
.attr('x1', (t) => t.x1)
.attr('y1', (t) => t.y1)
.attr('x2', (t) => t.x2)
.attr('y2', (t) => t.y2)
.style('stroke', (t) => t.strokeFill)
.style('stroke-width', (t) => t.strokeWidth);
const T = it.selectAll('g.quadrant').data(C.quadrants).enter().append('g').attr('class', 'quadrant');
T.append('rect')
.attr('x', (t) => t.x)
.attr('y', (t) => t.y)
.attr('width', (t) => t.width)
.attr('height', (t) => t.height)
.attr('fill', (t) => t.fill),
T.append('text')
.attr('x', 0)
.attr('y', 0)
.attr('fill', (t) => t.text.fill)
.attr('font-size', (t) => t.text.fontSize)
.attr('dominant-baseline', (t) => g(t.text.horizontalPos))
.attr('text-anchor', (t) => i(t.text.verticalPos))
.attr('transform', (t) => y(t.text))
.text((t) => t.text.text),
U.selectAll('g.label')
.data(C.axisLabels)
.enter()
.append('g')
.attr('class', 'label')
.append('text')
.attr('x', 0)
.attr('y', 0)
.text((t) => t.text)
.attr('fill', (t) => t.fill)
.attr('font-size', (t) => t.fontSize)
.attr('dominant-baseline', (t) => g(t.horizontalPos))
.attr('text-anchor', (t) => i(t.verticalPos))
.attr('transform', (t) => y(t));
const m = nt.selectAll('g.data-point').data(C.points).enter().append('g').attr('class', 'data-point');
m
.append('circle')
.attr('cx', (t) => t.x)
.attr('cy', (t) => t.y)
.attr('r', (t) => t.radius)
.attr('fill', (t) => t.fill),
m
.append('text')
.attr('x', 0)
.attr('y', 0)
.text((t) => t.text.text)
.attr('fill', (t) => t.text.fill)
.attr('font-size', (t) => t.text.fontSize)
.attr('dominant-baseline', (t) => g(t.text.horizontalPos))
.attr('text-anchor', (t) => i(t.text.verticalPos))
.attr('transform', (t) => y(t.text));
},
ee = { draw: te },
le = { parser: Rt, db: Jt, renderer: ee, styles: () => '' };
export { le as diagram };