1767 lines
47 KiB
JavaScript
1767 lines
47 KiB
JavaScript
import { p as H, c as b, d as q, ar as Q, h as E, l as g, y as j, D as lt } from './index-0e3b96e2.js';
|
|
import { a as st } from './createText-ca0c5216-c3320e7a.js';
|
|
import { l as ct } from './line-0981dc5a.js';
|
|
const ht = (e, t, a, i) => {
|
|
t.forEach((l) => {
|
|
wt[l](e, a, i);
|
|
});
|
|
},
|
|
ot = (e, t, a) => {
|
|
g.trace('Making markers for ', a),
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-extensionStart')
|
|
.attr('class', 'marker extension ' + t)
|
|
.attr('refX', 18)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 190)
|
|
.attr('markerHeight', 240)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 1,7 L18,13 V 1 Z'),
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-extensionEnd')
|
|
.attr('class', 'marker extension ' + t)
|
|
.attr('refX', 1)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 20)
|
|
.attr('markerHeight', 28)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 1,1 V 13 L18,7 Z');
|
|
},
|
|
yt = (e, t, a) => {
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-compositionStart')
|
|
.attr('class', 'marker composition ' + t)
|
|
.attr('refX', 18)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 190)
|
|
.attr('markerHeight', 240)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-compositionEnd')
|
|
.attr('class', 'marker composition ' + t)
|
|
.attr('refX', 1)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 20)
|
|
.attr('markerHeight', 28)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
|
|
},
|
|
pt = (e, t, a) => {
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-aggregationStart')
|
|
.attr('class', 'marker aggregation ' + t)
|
|
.attr('refX', 18)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 190)
|
|
.attr('markerHeight', 240)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-aggregationEnd')
|
|
.attr('class', 'marker aggregation ' + t)
|
|
.attr('refX', 1)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 20)
|
|
.attr('markerHeight', 28)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
|
|
},
|
|
ft = (e, t, a) => {
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-dependencyStart')
|
|
.attr('class', 'marker dependency ' + t)
|
|
.attr('refX', 6)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 190)
|
|
.attr('markerHeight', 240)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z'),
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-dependencyEnd')
|
|
.attr('class', 'marker dependency ' + t)
|
|
.attr('refX', 13)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 20)
|
|
.attr('markerHeight', 28)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');
|
|
},
|
|
xt = (e, t, a) => {
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-lollipopStart')
|
|
.attr('class', 'marker lollipop ' + t)
|
|
.attr('refX', 13)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 190)
|
|
.attr('markerHeight', 240)
|
|
.attr('orient', 'auto')
|
|
.append('circle')
|
|
.attr('stroke', 'black')
|
|
.attr('fill', 'transparent')
|
|
.attr('cx', 7)
|
|
.attr('cy', 7)
|
|
.attr('r', 6),
|
|
e
|
|
.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-lollipopEnd')
|
|
.attr('class', 'marker lollipop ' + t)
|
|
.attr('refX', 1)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 190)
|
|
.attr('markerHeight', 240)
|
|
.attr('orient', 'auto')
|
|
.append('circle')
|
|
.attr('stroke', 'black')
|
|
.attr('fill', 'transparent')
|
|
.attr('cx', 7)
|
|
.attr('cy', 7)
|
|
.attr('r', 6);
|
|
},
|
|
dt = (e, t, a) => {
|
|
e
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-pointEnd')
|
|
.attr('class', 'marker ' + t)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', 6)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'userSpaceOnUse')
|
|
.attr('markerWidth', 12)
|
|
.attr('markerHeight', 12)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 0 0 L 10 5 L 0 10 z')
|
|
.attr('class', 'arrowMarkerPath')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0'),
|
|
e
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-pointStart')
|
|
.attr('class', 'marker ' + t)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', 4.5)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'userSpaceOnUse')
|
|
.attr('markerWidth', 12)
|
|
.attr('markerHeight', 12)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 0 5 L 10 10 L 10 0 z')
|
|
.attr('class', 'arrowMarkerPath')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0');
|
|
},
|
|
gt = (e, t, a) => {
|
|
e
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-circleEnd')
|
|
.attr('class', 'marker ' + t)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', 11)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'userSpaceOnUse')
|
|
.attr('markerWidth', 11)
|
|
.attr('markerHeight', 11)
|
|
.attr('orient', 'auto')
|
|
.append('circle')
|
|
.attr('cx', '5')
|
|
.attr('cy', '5')
|
|
.attr('r', '5')
|
|
.attr('class', 'arrowMarkerPath')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0'),
|
|
e
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-circleStart')
|
|
.attr('class', 'marker ' + t)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', -1)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'userSpaceOnUse')
|
|
.attr('markerWidth', 11)
|
|
.attr('markerHeight', 11)
|
|
.attr('orient', 'auto')
|
|
.append('circle')
|
|
.attr('cx', '5')
|
|
.attr('cy', '5')
|
|
.attr('r', '5')
|
|
.attr('class', 'arrowMarkerPath')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0');
|
|
},
|
|
ut = (e, t, a) => {
|
|
e
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-crossEnd')
|
|
.attr('class', 'marker cross ' + t)
|
|
.attr('viewBox', '0 0 11 11')
|
|
.attr('refX', 12)
|
|
.attr('refY', 5.2)
|
|
.attr('markerUnits', 'userSpaceOnUse')
|
|
.attr('markerWidth', 11)
|
|
.attr('markerHeight', 11)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')
|
|
.attr('class', 'arrowMarkerPath')
|
|
.style('stroke-width', 2)
|
|
.style('stroke-dasharray', '1,0'),
|
|
e
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-crossStart')
|
|
.attr('class', 'marker cross ' + t)
|
|
.attr('viewBox', '0 0 11 11')
|
|
.attr('refX', -1)
|
|
.attr('refY', 5.2)
|
|
.attr('markerUnits', 'userSpaceOnUse')
|
|
.attr('markerWidth', 11)
|
|
.attr('markerHeight', 11)
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')
|
|
.attr('class', 'arrowMarkerPath')
|
|
.style('stroke-width', 2)
|
|
.style('stroke-dasharray', '1,0');
|
|
},
|
|
bt = (e, t, a) => {
|
|
e.append('defs')
|
|
.append('marker')
|
|
.attr('id', a + '_' + t + '-barbEnd')
|
|
.attr('refX', 19)
|
|
.attr('refY', 7)
|
|
.attr('markerWidth', 20)
|
|
.attr('markerHeight', 14)
|
|
.attr('markerUnits', 'strokeWidth')
|
|
.attr('orient', 'auto')
|
|
.append('path')
|
|
.attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');
|
|
},
|
|
wt = { extension: ot, composition: yt, aggregation: pt, dependency: ft, lollipop: xt, point: dt, circle: gt, cross: ut, barb: bt },
|
|
hr = ht;
|
|
function mt(e, t) {
|
|
t && e.attr('style', t);
|
|
}
|
|
function kt(e) {
|
|
const t = E(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject')),
|
|
a = t.append('xhtml:div'),
|
|
i = e.label,
|
|
l = e.isNode ? 'nodeLabel' : 'edgeLabel';
|
|
return (
|
|
a.html('<span class="' + l + '" ' + (e.labelStyle ? 'style="' + e.labelStyle + '"' : '') + '>' + i + '</span>'),
|
|
mt(a, e.labelStyle),
|
|
a.style('display', 'inline-block'),
|
|
a.style('white-space', 'nowrap'),
|
|
a.attr('xmlns', 'http://www.w3.org/1999/xhtml'),
|
|
t.node()
|
|
);
|
|
}
|
|
const vt = (e, t, a, i) => {
|
|
let l = e || '';
|
|
if ((typeof l == 'object' && (l = l[0]), H(b().flowchart.htmlLabels))) {
|
|
(l = l.replace(/\\n|\n/g, '<br />')), g.debug('vertexText' + l);
|
|
const r = {
|
|
isNode: i,
|
|
label: Q(l).replace(/fa[blrs]?:fa-[\w-]+/g, (n) => `<i class='${n.replace(':', ' ')}'></i>`),
|
|
labelStyle: t.replace('fill:', 'color:'),
|
|
};
|
|
return kt(r);
|
|
} else {
|
|
const r = document.createElementNS('http://www.w3.org/2000/svg', 'text');
|
|
r.setAttribute('style', t.replace('color:', 'fill:'));
|
|
let s = [];
|
|
typeof l == 'string' ? (s = l.split(/\\n|\n|<br\s*\/?>/gi)) : Array.isArray(l) ? (s = l) : (s = []);
|
|
for (const n of s) {
|
|
const c = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
|
|
c.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve'),
|
|
c.setAttribute('dy', '1em'),
|
|
c.setAttribute('x', '0'),
|
|
a ? c.setAttribute('class', 'title-row') : c.setAttribute('class', 'row'),
|
|
(c.textContent = n.trim()),
|
|
r.appendChild(c);
|
|
}
|
|
return r;
|
|
}
|
|
},
|
|
R = vt,
|
|
M = async (e, t, a, i) => {
|
|
let l;
|
|
const r = t.useHtmlLabels || H(b().flowchart.htmlLabels);
|
|
a ? (l = a) : (l = 'node default');
|
|
const s = e
|
|
.insert('g')
|
|
.attr('class', l)
|
|
.attr('id', t.domId || t.id),
|
|
n = s.insert('g').attr('class', 'label').attr('style', t.labelStyle);
|
|
let c;
|
|
t.labelText === void 0 ? (c = '') : (c = typeof t.labelText == 'string' ? t.labelText : t.labelText[0]);
|
|
const o = n.node();
|
|
let h;
|
|
t.labelType === 'markdown'
|
|
? (h = st(n, q(Q(c), b()), { useHtmlLabels: r, width: t.width || b().flowchart.wrappingWidth, classes: 'markdown-node-label' }))
|
|
: (h = o.appendChild(R(q(Q(c), b()), t.labelStyle, !1, i)));
|
|
let y = h.getBBox();
|
|
const f = t.padding / 2;
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const p = h.children[0],
|
|
d = E(h),
|
|
k = p.getElementsByTagName('img');
|
|
if (k) {
|
|
const x = c.replace(/<img[^>]*>/g, '').trim() === '';
|
|
await Promise.all(
|
|
[...k].map(
|
|
(u) =>
|
|
new Promise((S) => {
|
|
function B() {
|
|
if (((u.style.display = 'flex'), (u.style.flexDirection = 'column'), x)) {
|
|
const C = b().fontSize ? b().fontSize : window.getComputedStyle(document.body).fontSize,
|
|
W = 5,
|
|
D = parseInt(C, 10) * W + 'px';
|
|
(u.style.minWidth = D), (u.style.maxWidth = D);
|
|
} else u.style.width = '100%';
|
|
S(u);
|
|
}
|
|
setTimeout(() => {
|
|
u.complete && B();
|
|
}),
|
|
u.addEventListener('error', B),
|
|
u.addEventListener('load', B);
|
|
})
|
|
)
|
|
);
|
|
}
|
|
(y = p.getBoundingClientRect()), d.attr('width', y.width), d.attr('height', y.height);
|
|
}
|
|
return (
|
|
r ? n.attr('transform', 'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')') : n.attr('transform', 'translate(0, ' + -y.height / 2 + ')'),
|
|
t.centerLabel && n.attr('transform', 'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')'),
|
|
n.insert('rect', ':first-child'),
|
|
{ shapeSvg: s, bbox: y, halfPadding: f, label: n }
|
|
);
|
|
},
|
|
m = (e, t) => {
|
|
const a = t.node().getBBox();
|
|
(e.width = a.width), (e.height = a.height);
|
|
};
|
|
function I(e, t, a, i) {
|
|
return e
|
|
.insert('polygon', ':first-child')
|
|
.attr(
|
|
'points',
|
|
i
|
|
.map(function (l) {
|
|
return l.x + ',' + l.y;
|
|
})
|
|
.join(' ')
|
|
)
|
|
.attr('class', 'label-container')
|
|
.attr('transform', 'translate(' + -t / 2 + ',' + a / 2 + ')');
|
|
}
|
|
function Lt(e, t) {
|
|
return e.intersect(t);
|
|
}
|
|
function it(e, t, a, i) {
|
|
var l = e.x,
|
|
r = e.y,
|
|
s = l - i.x,
|
|
n = r - i.y,
|
|
c = Math.sqrt(t * t * n * n + a * a * s * s),
|
|
o = Math.abs((t * a * s) / c);
|
|
i.x < l && (o = -o);
|
|
var h = Math.abs((t * a * n) / c);
|
|
return i.y < r && (h = -h), { x: l + o, y: r + h };
|
|
}
|
|
function St(e, t, a) {
|
|
return it(e, t, t, a);
|
|
}
|
|
function Mt(e, t, a, i) {
|
|
var l, r, s, n, c, o, h, y, f, p, d, k, x, u, S;
|
|
if (
|
|
((l = t.y - e.y),
|
|
(s = e.x - t.x),
|
|
(c = t.x * e.y - e.x * t.y),
|
|
(f = l * a.x + s * a.y + c),
|
|
(p = l * i.x + s * i.y + c),
|
|
!(f !== 0 && p !== 0 && J(f, p)) &&
|
|
((r = i.y - a.y),
|
|
(n = a.x - i.x),
|
|
(o = i.x * a.y - a.x * i.y),
|
|
(h = r * e.x + n * e.y + o),
|
|
(y = r * t.x + n * t.y + o),
|
|
!(h !== 0 && y !== 0 && J(h, y)) && ((d = l * n - r * s), d !== 0)))
|
|
)
|
|
return (
|
|
(k = Math.abs(d / 2)),
|
|
(x = s * o - n * c),
|
|
(u = x < 0 ? (x - k) / d : (x + k) / d),
|
|
(x = r * c - l * o),
|
|
(S = x < 0 ? (x - k) / d : (x + k) / d),
|
|
{ x: u, y: S }
|
|
);
|
|
}
|
|
function J(e, t) {
|
|
return e * t > 0;
|
|
}
|
|
function Tt(e, t, a) {
|
|
var i = e.x,
|
|
l = e.y,
|
|
r = [],
|
|
s = Number.POSITIVE_INFINITY,
|
|
n = Number.POSITIVE_INFINITY;
|
|
typeof t.forEach == 'function'
|
|
? t.forEach(function (d) {
|
|
(s = Math.min(s, d.x)), (n = Math.min(n, d.y));
|
|
})
|
|
: ((s = Math.min(s, t.x)), (n = Math.min(n, t.y)));
|
|
for (var c = i - e.width / 2 - s, o = l - e.height / 2 - n, h = 0; h < t.length; h++) {
|
|
var y = t[h],
|
|
f = t[h < t.length - 1 ? h + 1 : 0],
|
|
p = Mt(e, a, { x: c + y.x, y: o + y.y }, { x: c + f.x, y: o + f.y });
|
|
p && r.push(p);
|
|
}
|
|
return r.length
|
|
? (r.length > 1 &&
|
|
r.sort(function (d, k) {
|
|
var x = d.x - a.x,
|
|
u = d.y - a.y,
|
|
S = Math.sqrt(x * x + u * u),
|
|
B = k.x - a.x,
|
|
C = k.y - a.y,
|
|
W = Math.sqrt(B * B + C * C);
|
|
return S < W ? -1 : S === W ? 0 : 1;
|
|
}),
|
|
r[0])
|
|
: e;
|
|
}
|
|
const Bt = (e, t) => {
|
|
var a = e.x,
|
|
i = e.y,
|
|
l = t.x - a,
|
|
r = t.y - i,
|
|
s = e.width / 2,
|
|
n = e.height / 2,
|
|
c,
|
|
o;
|
|
return (
|
|
Math.abs(r) * s > Math.abs(l) * n
|
|
? (r < 0 && (n = -n), (c = r === 0 ? 0 : (n * l) / r), (o = n))
|
|
: (l < 0 && (s = -s), (c = s), (o = l === 0 ? 0 : (s * r) / l)),
|
|
{ x: a + c, y: i + o }
|
|
);
|
|
},
|
|
Et = Bt,
|
|
w = { node: Lt, circle: St, ellipse: it, polygon: Tt, rect: Et },
|
|
Ct = async (e, t) => {
|
|
t.useHtmlLabels || b().flowchart.htmlLabels || (t.centerLabel = !0);
|
|
const { shapeSvg: i, bbox: l, halfPadding: r } = await M(e, t, 'node ' + t.classes, !0);
|
|
g.info('Classes = ', t.classes);
|
|
const s = i.insert('rect', ':first-child');
|
|
return (
|
|
s
|
|
.attr('rx', t.rx)
|
|
.attr('ry', t.ry)
|
|
.attr('x', -l.width / 2 - r)
|
|
.attr('y', -l.height / 2 - r)
|
|
.attr('width', l.width + t.padding)
|
|
.attr('height', l.height + t.padding),
|
|
m(t, s),
|
|
(t.intersect = function (n) {
|
|
return w.rect(t, n);
|
|
}),
|
|
i
|
|
);
|
|
},
|
|
$t = Ct,
|
|
_t = (e) => {
|
|
const t = new Set();
|
|
for (const a of e)
|
|
switch (a) {
|
|
case 'x':
|
|
t.add('right'), t.add('left');
|
|
break;
|
|
case 'y':
|
|
t.add('up'), t.add('down');
|
|
break;
|
|
default:
|
|
t.add(a);
|
|
break;
|
|
}
|
|
return t;
|
|
},
|
|
Rt = (e, t, a) => {
|
|
const i = _t(e),
|
|
l = 2,
|
|
r = t.height + 2 * a.padding,
|
|
s = r / l,
|
|
n = t.width + 2 * s + a.padding,
|
|
c = a.padding / 2;
|
|
return i.has('right') && i.has('left') && i.has('up') && i.has('down')
|
|
? [
|
|
{ x: 0, y: 0 },
|
|
{ x: s, y: 0 },
|
|
{ x: n / 2, y: 2 * c },
|
|
{ x: n - s, y: 0 },
|
|
{ x: n, y: 0 },
|
|
{ x: n, y: -r / 3 },
|
|
{ x: n + 2 * c, y: -r / 2 },
|
|
{ x: n, y: (-2 * r) / 3 },
|
|
{ x: n, y: -r },
|
|
{ x: n - s, y: -r },
|
|
{ x: n / 2, y: -r - 2 * c },
|
|
{ x: s, y: -r },
|
|
{ x: 0, y: -r },
|
|
{ x: 0, y: (-2 * r) / 3 },
|
|
{ x: -2 * c, y: -r / 2 },
|
|
{ x: 0, y: -r / 3 },
|
|
]
|
|
: i.has('right') && i.has('left') && i.has('up')
|
|
? [
|
|
{ x: s, y: 0 },
|
|
{ x: n - s, y: 0 },
|
|
{ x: n, y: -r / 2 },
|
|
{ x: n - s, y: -r },
|
|
{ x: s, y: -r },
|
|
{ x: 0, y: -r / 2 },
|
|
]
|
|
: i.has('right') && i.has('left') && i.has('down')
|
|
? [
|
|
{ x: 0, y: 0 },
|
|
{ x: s, y: -r },
|
|
{ x: n - s, y: -r },
|
|
{ x: n, y: 0 },
|
|
]
|
|
: i.has('right') && i.has('up') && i.has('down')
|
|
? [
|
|
{ x: 0, y: 0 },
|
|
{ x: n, y: -s },
|
|
{ x: n, y: -r + s },
|
|
{ x: 0, y: -r },
|
|
]
|
|
: i.has('left') && i.has('up') && i.has('down')
|
|
? [
|
|
{ x: n, y: 0 },
|
|
{ x: 0, y: -s },
|
|
{ x: 0, y: -r + s },
|
|
{ x: n, y: -r },
|
|
]
|
|
: i.has('right') && i.has('left')
|
|
? [
|
|
{ x: s, y: 0 },
|
|
{ x: s, y: -c },
|
|
{ x: n - s, y: -c },
|
|
{ x: n - s, y: 0 },
|
|
{ x: n, y: -r / 2 },
|
|
{ x: n - s, y: -r },
|
|
{ x: n - s, y: -r + c },
|
|
{ x: s, y: -r + c },
|
|
{ x: s, y: -r },
|
|
{ x: 0, y: -r / 2 },
|
|
]
|
|
: i.has('up') && i.has('down')
|
|
? [
|
|
{ x: n / 2, y: 0 },
|
|
{ x: 0, y: -c },
|
|
{ x: s, y: -c },
|
|
{ x: s, y: -r + c },
|
|
{ x: 0, y: -r + c },
|
|
{ x: n / 2, y: -r },
|
|
{ x: n, y: -r + c },
|
|
{ x: n - s, y: -r + c },
|
|
{ x: n - s, y: -c },
|
|
{ x: n, y: -c },
|
|
]
|
|
: i.has('right') && i.has('up')
|
|
? [
|
|
{ x: 0, y: 0 },
|
|
{ x: n, y: -s },
|
|
{ x: 0, y: -r },
|
|
]
|
|
: i.has('right') && i.has('down')
|
|
? [
|
|
{ x: 0, y: 0 },
|
|
{ x: n, y: 0 },
|
|
{ x: 0, y: -r },
|
|
]
|
|
: i.has('left') && i.has('up')
|
|
? [
|
|
{ x: n, y: 0 },
|
|
{ x: 0, y: -s },
|
|
{ x: n, y: -r },
|
|
]
|
|
: i.has('left') && i.has('down')
|
|
? [
|
|
{ x: n, y: 0 },
|
|
{ x: 0, y: 0 },
|
|
{ x: n, y: -r },
|
|
]
|
|
: i.has('right')
|
|
? [
|
|
{ x: s, y: -c },
|
|
{ x: s, y: -c },
|
|
{ x: n - s, y: -c },
|
|
{ x: n - s, y: 0 },
|
|
{ x: n, y: -r / 2 },
|
|
{ x: n - s, y: -r },
|
|
{ x: n - s, y: -r + c },
|
|
{ x: s, y: -r + c },
|
|
{ x: s, y: -r + c },
|
|
]
|
|
: i.has('left')
|
|
? [
|
|
{ x: s, y: 0 },
|
|
{ x: s, y: -c },
|
|
{ x: n - s, y: -c },
|
|
{ x: n - s, y: -r + c },
|
|
{ x: s, y: -r + c },
|
|
{ x: s, y: -r },
|
|
{ x: 0, y: -r / 2 },
|
|
]
|
|
: i.has('up')
|
|
? [
|
|
{ x: s, y: -c },
|
|
{ x: s, y: -r + c },
|
|
{ x: 0, y: -r + c },
|
|
{ x: n / 2, y: -r },
|
|
{ x: n, y: -r + c },
|
|
{ x: n - s, y: -r + c },
|
|
{ x: n - s, y: -c },
|
|
]
|
|
: i.has('down')
|
|
? [
|
|
{ x: n / 2, y: 0 },
|
|
{ x: 0, y: -c },
|
|
{ x: s, y: -c },
|
|
{ x: s, y: -r + c },
|
|
{ x: n - s, y: -r + c },
|
|
{ x: n - s, y: -c },
|
|
{ x: n, y: -c },
|
|
]
|
|
: [{ x: 0, y: 0 }];
|
|
},
|
|
K = (e) => (e ? ' ' + e : ''),
|
|
_ = (e, t) => `${t || 'node default'}${K(e.classes)} ${K(e.class)}`,
|
|
P = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = l + r,
|
|
n = [
|
|
{ x: s / 2, y: 0 },
|
|
{ x: s, y: -s / 2 },
|
|
{ x: s / 2, y: -s },
|
|
{ x: 0, y: -s / 2 },
|
|
];
|
|
g.info('Question main (Circle)');
|
|
const c = I(a, s, s, n);
|
|
return (
|
|
c.attr('style', t.style),
|
|
m(t, c),
|
|
(t.intersect = function (o) {
|
|
return g.warn('Intersect called'), w.polygon(t, n, o);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Ht = (e, t) => {
|
|
const a = e
|
|
.insert('g')
|
|
.attr('class', 'node default')
|
|
.attr('id', t.domId || t.id),
|
|
i = 28,
|
|
l = [
|
|
{ x: 0, y: i / 2 },
|
|
{ x: i / 2, y: 0 },
|
|
{ x: 0, y: -i / 2 },
|
|
{ x: -i / 2, y: 0 },
|
|
];
|
|
return (
|
|
a
|
|
.insert('polygon', ':first-child')
|
|
.attr(
|
|
'points',
|
|
l
|
|
.map(function (s) {
|
|
return s.x + ',' + s.y;
|
|
})
|
|
.join(' ')
|
|
)
|
|
.attr('class', 'state-start')
|
|
.attr('r', 7)
|
|
.attr('width', 28)
|
|
.attr('height', 28),
|
|
(t.width = 28),
|
|
(t.height = 28),
|
|
(t.intersect = function (s) {
|
|
return w.circle(t, 14, s);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
It = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = 4,
|
|
r = i.height + t.padding,
|
|
s = r / l,
|
|
n = i.width + 2 * s + t.padding,
|
|
c = [
|
|
{ x: s, y: 0 },
|
|
{ x: n - s, y: 0 },
|
|
{ x: n, y: -r / 2 },
|
|
{ x: n - s, y: -r },
|
|
{ x: s, y: -r },
|
|
{ x: 0, y: -r / 2 },
|
|
],
|
|
o = I(a, n, r, c);
|
|
return (
|
|
o.attr('style', t.style),
|
|
m(t, o),
|
|
(t.intersect = function (h) {
|
|
return w.polygon(t, c, h);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Nt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, void 0, !0),
|
|
l = 2,
|
|
r = i.height + 2 * t.padding,
|
|
s = r / l,
|
|
n = i.width + 2 * s + t.padding,
|
|
c = Rt(t.directions, i, t),
|
|
o = I(a, n, r, c);
|
|
return (
|
|
o.attr('style', t.style),
|
|
m(t, o),
|
|
(t.intersect = function (h) {
|
|
return w.polygon(t, c, h);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Ot = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: -r / 2, y: 0 },
|
|
{ x: l, y: 0 },
|
|
{ x: l, y: -r },
|
|
{ x: -r / 2, y: -r },
|
|
{ x: 0, y: -r / 2 },
|
|
];
|
|
return (
|
|
I(a, l, r, s).attr('style', t.style),
|
|
(t.width = l + r),
|
|
(t.height = r),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Wt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: (-2 * r) / 6, y: 0 },
|
|
{ x: l - r / 6, y: 0 },
|
|
{ x: l + (2 * r) / 6, y: -r },
|
|
{ x: r / 6, y: -r },
|
|
],
|
|
n = I(a, l, r, s);
|
|
return (
|
|
n.attr('style', t.style),
|
|
m(t, n),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Xt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: (2 * r) / 6, y: 0 },
|
|
{ x: l + r / 6, y: 0 },
|
|
{ x: l - (2 * r) / 6, y: -r },
|
|
{ x: -r / 6, y: -r },
|
|
],
|
|
n = I(a, l, r, s);
|
|
return (
|
|
n.attr('style', t.style),
|
|
m(t, n),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Yt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: (-2 * r) / 6, y: 0 },
|
|
{ x: l + (2 * r) / 6, y: 0 },
|
|
{ x: l - r / 6, y: -r },
|
|
{ x: r / 6, y: -r },
|
|
],
|
|
n = I(a, l, r, s);
|
|
return (
|
|
n.attr('style', t.style),
|
|
m(t, n),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Dt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: r / 6, y: 0 },
|
|
{ x: l - r / 6, y: 0 },
|
|
{ x: l + (2 * r) / 6, y: -r },
|
|
{ x: (-2 * r) / 6, y: -r },
|
|
],
|
|
n = I(a, l, r, s);
|
|
return (
|
|
n.attr('style', t.style),
|
|
m(t, n),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
At = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: 0, y: 0 },
|
|
{ x: l + r / 2, y: 0 },
|
|
{ x: l, y: -r / 2 },
|
|
{ x: l + r / 2, y: -r },
|
|
{ x: 0, y: -r },
|
|
],
|
|
n = I(a, l, r, s);
|
|
return (
|
|
n.attr('style', t.style),
|
|
m(t, n),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
jt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = l / 2,
|
|
s = r / (2.5 + l / 50),
|
|
n = i.height + s + t.padding,
|
|
c =
|
|
'M 0,' +
|
|
s +
|
|
' a ' +
|
|
r +
|
|
',' +
|
|
s +
|
|
' 0,0,0 ' +
|
|
l +
|
|
' 0 a ' +
|
|
r +
|
|
',' +
|
|
s +
|
|
' 0,0,0 ' +
|
|
-l +
|
|
' 0 l 0,' +
|
|
n +
|
|
' a ' +
|
|
r +
|
|
',' +
|
|
s +
|
|
' 0,0,0 ' +
|
|
l +
|
|
' 0 l 0,' +
|
|
-n,
|
|
o = a
|
|
.attr('label-offset-y', s)
|
|
.insert('path', ':first-child')
|
|
.attr('style', t.style)
|
|
.attr('d', c)
|
|
.attr('transform', 'translate(' + -l / 2 + ',' + -(n / 2 + s) + ')');
|
|
return (
|
|
m(t, o),
|
|
(t.intersect = function (h) {
|
|
const y = w.rect(t, h),
|
|
f = y.x - t.x;
|
|
if (r != 0 && (Math.abs(f) < t.width / 2 || (Math.abs(f) == t.width / 2 && Math.abs(y.y - t.y) > t.height / 2 - s))) {
|
|
let p = s * s * (1 - (f * f) / (r * r));
|
|
p != 0 && (p = Math.sqrt(p)), (p = s - p), h.y - t.y > 0 && (p = -p), (y.y += p);
|
|
}
|
|
return y;
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Ut = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i, halfPadding: l } = await M(e, t, 'node ' + t.classes + ' ' + t.class, !0),
|
|
r = a.insert('rect', ':first-child'),
|
|
s = t.positioned ? t.width : i.width + t.padding,
|
|
n = t.positioned ? t.height : i.height + t.padding,
|
|
c = t.positioned ? -s / 2 : -i.width / 2 - l,
|
|
o = t.positioned ? -n / 2 : -i.height / 2 - l;
|
|
if (
|
|
(r
|
|
.attr('class', 'basic label-container')
|
|
.attr('style', t.style)
|
|
.attr('rx', t.rx)
|
|
.attr('ry', t.ry)
|
|
.attr('x', c)
|
|
.attr('y', o)
|
|
.attr('width', s)
|
|
.attr('height', n),
|
|
t.props)
|
|
) {
|
|
const h = new Set(Object.keys(t.props));
|
|
t.props.borders && (V(r, t.props.borders, s, n), h.delete('borders')),
|
|
h.forEach((y) => {
|
|
g.warn(`Unknown node property ${y}`);
|
|
});
|
|
}
|
|
return (
|
|
m(t, r),
|
|
(t.intersect = function (h) {
|
|
return w.rect(t, h);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
zt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i, halfPadding: l } = await M(e, t, 'node ' + t.classes, !0),
|
|
r = a.insert('rect', ':first-child'),
|
|
s = t.positioned ? t.width : i.width + t.padding,
|
|
n = t.positioned ? t.height : i.height + t.padding,
|
|
c = t.positioned ? -s / 2 : -i.width / 2 - l,
|
|
o = t.positioned ? -n / 2 : -i.height / 2 - l;
|
|
if (
|
|
(r
|
|
.attr('class', 'basic cluster composite label-container')
|
|
.attr('style', t.style)
|
|
.attr('rx', t.rx)
|
|
.attr('ry', t.ry)
|
|
.attr('x', c)
|
|
.attr('y', o)
|
|
.attr('width', s)
|
|
.attr('height', n),
|
|
t.props)
|
|
) {
|
|
const h = new Set(Object.keys(t.props));
|
|
t.props.borders && (V(r, t.props.borders, s, n), h.delete('borders')),
|
|
h.forEach((y) => {
|
|
g.warn(`Unknown node property ${y}`);
|
|
});
|
|
}
|
|
return (
|
|
m(t, r),
|
|
(t.intersect = function (h) {
|
|
return w.rect(t, h);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Zt = async (e, t) => {
|
|
const { shapeSvg: a } = await M(e, t, 'label', !0);
|
|
g.trace('Classes = ', t.class);
|
|
const i = a.insert('rect', ':first-child'),
|
|
l = 0,
|
|
r = 0;
|
|
if ((i.attr('width', l).attr('height', r), a.attr('class', 'label edgeLabel'), t.props)) {
|
|
const s = new Set(Object.keys(t.props));
|
|
t.props.borders && (V(i, t.props.borders, l, r), s.delete('borders')),
|
|
s.forEach((n) => {
|
|
g.warn(`Unknown node property ${n}`);
|
|
});
|
|
}
|
|
return (
|
|
m(t, i),
|
|
(t.intersect = function (s) {
|
|
return w.rect(t, s);
|
|
}),
|
|
a
|
|
);
|
|
};
|
|
function V(e, t, a, i) {
|
|
const l = [],
|
|
r = (n) => {
|
|
l.push(n, 0);
|
|
},
|
|
s = (n) => {
|
|
l.push(0, n);
|
|
};
|
|
t.includes('t') ? (g.debug('add top border'), r(a)) : s(a),
|
|
t.includes('r') ? (g.debug('add right border'), r(i)) : s(i),
|
|
t.includes('b') ? (g.debug('add bottom border'), r(a)) : s(a),
|
|
t.includes('l') ? (g.debug('add left border'), r(i)) : s(i),
|
|
e.attr('stroke-dasharray', l.join(' '));
|
|
}
|
|
const Gt = (e, t) => {
|
|
let a;
|
|
t.classes ? (a = 'node ' + t.classes) : (a = 'node default');
|
|
const i = e
|
|
.insert('g')
|
|
.attr('class', a)
|
|
.attr('id', t.domId || t.id),
|
|
l = i.insert('rect', ':first-child'),
|
|
r = i.insert('line'),
|
|
s = i.insert('g').attr('class', 'label'),
|
|
n = t.labelText.flat ? t.labelText.flat() : t.labelText;
|
|
let c = '';
|
|
typeof n == 'object' ? (c = n[0]) : (c = n), g.info('Label text abc79', c, n, typeof n == 'object');
|
|
const o = s.node().appendChild(R(c, t.labelStyle, !0, !0));
|
|
let h = { width: 0, height: 0 };
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const k = o.children[0],
|
|
x = E(o);
|
|
(h = k.getBoundingClientRect()), x.attr('width', h.width), x.attr('height', h.height);
|
|
}
|
|
g.info('Text 2', n);
|
|
const y = n.slice(1, n.length);
|
|
let f = o.getBBox();
|
|
const p = s.node().appendChild(R(y.join ? y.join('<br/>') : y, t.labelStyle, !0, !0));
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const k = p.children[0],
|
|
x = E(p);
|
|
(h = k.getBoundingClientRect()), x.attr('width', h.width), x.attr('height', h.height);
|
|
}
|
|
const d = t.padding / 2;
|
|
return (
|
|
E(p).attr('transform', 'translate( ' + (h.width > f.width ? 0 : (f.width - h.width) / 2) + ', ' + (f.height + d + 5) + ')'),
|
|
E(o).attr('transform', 'translate( ' + (h.width < f.width ? 0 : -(f.width - h.width) / 2) + ', 0)'),
|
|
(h = s.node().getBBox()),
|
|
s.attr('transform', 'translate(' + -h.width / 2 + ', ' + (-h.height / 2 - d + 3) + ')'),
|
|
l
|
|
.attr('class', 'outer title-state')
|
|
.attr('x', -h.width / 2 - d)
|
|
.attr('y', -h.height / 2 - d)
|
|
.attr('width', h.width + t.padding)
|
|
.attr('height', h.height + t.padding),
|
|
r
|
|
.attr('class', 'divider')
|
|
.attr('x1', -h.width / 2 - d)
|
|
.attr('x2', h.width / 2 + d)
|
|
.attr('y1', -h.height / 2 - d + f.height + d)
|
|
.attr('y2', -h.height / 2 - d + f.height + d),
|
|
m(t, l),
|
|
(t.intersect = function (k) {
|
|
return w.rect(t, k);
|
|
}),
|
|
i
|
|
);
|
|
},
|
|
Ft = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.height + t.padding,
|
|
r = i.width + l / 4 + t.padding,
|
|
s = a
|
|
.insert('rect', ':first-child')
|
|
.attr('style', t.style)
|
|
.attr('rx', l / 2)
|
|
.attr('ry', l / 2)
|
|
.attr('x', -r / 2)
|
|
.attr('y', -l / 2)
|
|
.attr('width', r)
|
|
.attr('height', l);
|
|
return (
|
|
m(t, s),
|
|
(t.intersect = function (n) {
|
|
return w.rect(t, n);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Qt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i, halfPadding: l } = await M(e, t, _(t, void 0), !0),
|
|
r = a.insert('circle', ':first-child');
|
|
return (
|
|
r
|
|
.attr('style', t.style)
|
|
.attr('rx', t.rx)
|
|
.attr('ry', t.ry)
|
|
.attr('r', i.width / 2 + l)
|
|
.attr('width', i.width + t.padding)
|
|
.attr('height', i.height + t.padding),
|
|
g.info('Circle main'),
|
|
m(t, r),
|
|
(t.intersect = function (s) {
|
|
return g.info('Circle intersect', t, i.width / 2 + l, s), w.circle(t, i.width / 2 + l, s);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Vt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i, halfPadding: l } = await M(e, t, _(t, void 0), !0),
|
|
r = 5,
|
|
s = a.insert('g', ':first-child'),
|
|
n = s.insert('circle'),
|
|
c = s.insert('circle');
|
|
return (
|
|
s.attr('class', t.class),
|
|
n
|
|
.attr('style', t.style)
|
|
.attr('rx', t.rx)
|
|
.attr('ry', t.ry)
|
|
.attr('r', i.width / 2 + l + r)
|
|
.attr('width', i.width + t.padding + r * 2)
|
|
.attr('height', i.height + t.padding + r * 2),
|
|
c
|
|
.attr('style', t.style)
|
|
.attr('rx', t.rx)
|
|
.attr('ry', t.ry)
|
|
.attr('r', i.width / 2 + l)
|
|
.attr('width', i.width + t.padding)
|
|
.attr('height', i.height + t.padding),
|
|
g.info('DoubleCircle main'),
|
|
m(t, n),
|
|
(t.intersect = function (o) {
|
|
return g.info('DoubleCircle intersect', t, i.width / 2 + l + r, o), w.circle(t, i.width / 2 + l + r, o);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
qt = async (e, t) => {
|
|
const { shapeSvg: a, bbox: i } = await M(e, t, _(t, void 0), !0),
|
|
l = i.width + t.padding,
|
|
r = i.height + t.padding,
|
|
s = [
|
|
{ x: 0, y: 0 },
|
|
{ x: l, y: 0 },
|
|
{ x: l, y: -r },
|
|
{ x: 0, y: -r },
|
|
{ x: 0, y: 0 },
|
|
{ x: -8, y: 0 },
|
|
{ x: l + 8, y: 0 },
|
|
{ x: l + 8, y: -r },
|
|
{ x: -8, y: -r },
|
|
{ x: -8, y: 0 },
|
|
],
|
|
n = I(a, l, r, s);
|
|
return (
|
|
n.attr('style', t.style),
|
|
m(t, n),
|
|
(t.intersect = function (c) {
|
|
return w.polygon(t, s, c);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Jt = (e, t) => {
|
|
const a = e
|
|
.insert('g')
|
|
.attr('class', 'node default')
|
|
.attr('id', t.domId || t.id),
|
|
i = a.insert('circle', ':first-child');
|
|
return (
|
|
i.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14),
|
|
m(t, i),
|
|
(t.intersect = function (l) {
|
|
return w.circle(t, 7, l);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
tt = (e, t, a) => {
|
|
const i = e
|
|
.insert('g')
|
|
.attr('class', 'node default')
|
|
.attr('id', t.domId || t.id);
|
|
let l = 70,
|
|
r = 10;
|
|
a === 'LR' && ((l = 10), (r = 70));
|
|
const s = i
|
|
.append('rect')
|
|
.attr('x', (-1 * l) / 2)
|
|
.attr('y', (-1 * r) / 2)
|
|
.attr('width', l)
|
|
.attr('height', r)
|
|
.attr('class', 'fork-join');
|
|
return (
|
|
m(t, s),
|
|
(t.height = t.height + t.padding / 2),
|
|
(t.width = t.width + t.padding / 2),
|
|
(t.intersect = function (n) {
|
|
return w.rect(t, n);
|
|
}),
|
|
i
|
|
);
|
|
},
|
|
Kt = (e, t) => {
|
|
const a = e
|
|
.insert('g')
|
|
.attr('class', 'node default')
|
|
.attr('id', t.domId || t.id),
|
|
i = a.insert('circle', ':first-child'),
|
|
l = a.insert('circle', ':first-child');
|
|
return (
|
|
l.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14),
|
|
i.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10),
|
|
m(t, l),
|
|
(t.intersect = function (r) {
|
|
return w.circle(t, 7, r);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
Pt = (e, t) => {
|
|
const a = t.padding / 2,
|
|
i = 4,
|
|
l = 8;
|
|
let r;
|
|
t.classes ? (r = 'node ' + t.classes) : (r = 'node default');
|
|
const s = e
|
|
.insert('g')
|
|
.attr('class', r)
|
|
.attr('id', t.domId || t.id),
|
|
n = s.insert('rect', ':first-child'),
|
|
c = s.insert('line'),
|
|
o = s.insert('line');
|
|
let h = 0,
|
|
y = i;
|
|
const f = s.insert('g').attr('class', 'label');
|
|
let p = 0;
|
|
const d = t.classData.annotations && t.classData.annotations[0],
|
|
k = t.classData.annotations[0] ? '«' + t.classData.annotations[0] + '»' : '',
|
|
x = f.node().appendChild(R(k, t.labelStyle, !0, !0));
|
|
let u = x.getBBox();
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const v = x.children[0],
|
|
L = E(x);
|
|
(u = v.getBoundingClientRect()), L.attr('width', u.width), L.attr('height', u.height);
|
|
}
|
|
t.classData.annotations[0] && ((y += u.height + i), (h += u.width));
|
|
let S = t.classData.label;
|
|
t.classData.type !== void 0 &&
|
|
t.classData.type !== '' &&
|
|
(b().flowchart.htmlLabels ? (S += '<' + t.classData.type + '>') : (S += '<' + t.classData.type + '>'));
|
|
const B = f.node().appendChild(R(S, t.labelStyle, !0, !0));
|
|
E(B).attr('class', 'classTitle');
|
|
let C = B.getBBox();
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const v = B.children[0],
|
|
L = E(B);
|
|
(C = v.getBoundingClientRect()), L.attr('width', C.width), L.attr('height', C.height);
|
|
}
|
|
(y += C.height + i), C.width > h && (h = C.width);
|
|
const W = [];
|
|
t.classData.members.forEach((v) => {
|
|
const L = v.getDisplayDetails();
|
|
let X = L.displayText;
|
|
b().flowchart.htmlLabels && (X = X.replace(/</g, '<').replace(/>/g, '>'));
|
|
const N = f.node().appendChild(R(X, L.cssStyle ? L.cssStyle : t.labelStyle, !0, !0));
|
|
let $ = N.getBBox();
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const F = N.children[0],
|
|
A = E(N);
|
|
($ = F.getBoundingClientRect()), A.attr('width', $.width), A.attr('height', $.height);
|
|
}
|
|
$.width > h && (h = $.width), (y += $.height + i), W.push(N);
|
|
}),
|
|
(y += l);
|
|
const D = [];
|
|
if (
|
|
(t.classData.methods.forEach((v) => {
|
|
const L = v.getDisplayDetails();
|
|
let X = L.displayText;
|
|
b().flowchart.htmlLabels && (X = X.replace(/</g, '<').replace(/>/g, '>'));
|
|
const N = f.node().appendChild(R(X, L.cssStyle ? L.cssStyle : t.labelStyle, !0, !0));
|
|
let $ = N.getBBox();
|
|
if (H(b().flowchart.htmlLabels)) {
|
|
const F = N.children[0],
|
|
A = E(N);
|
|
($ = F.getBoundingClientRect()), A.attr('width', $.width), A.attr('height', $.height);
|
|
}
|
|
$.width > h && (h = $.width), (y += $.height + i), D.push(N);
|
|
}),
|
|
(y += l),
|
|
d)
|
|
) {
|
|
let v = (h - u.width) / 2;
|
|
E(x).attr('transform', 'translate( ' + ((-1 * h) / 2 + v) + ', ' + (-1 * y) / 2 + ')'), (p = u.height + i);
|
|
}
|
|
let nt = (h - C.width) / 2;
|
|
return (
|
|
E(B).attr('transform', 'translate( ' + ((-1 * h) / 2 + nt) + ', ' + ((-1 * y) / 2 + p) + ')'),
|
|
(p += C.height + i),
|
|
c
|
|
.attr('class', 'divider')
|
|
.attr('x1', -h / 2 - a)
|
|
.attr('x2', h / 2 + a)
|
|
.attr('y1', -y / 2 - a + l + p)
|
|
.attr('y2', -y / 2 - a + l + p),
|
|
(p += l),
|
|
W.forEach((v) => {
|
|
E(v).attr('transform', 'translate( ' + -h / 2 + ', ' + ((-1 * y) / 2 + p + l / 2) + ')');
|
|
const L = v == null ? void 0 : v.getBBox();
|
|
p += ((L == null ? void 0 : L.height) ?? 0) + i;
|
|
}),
|
|
(p += l),
|
|
o
|
|
.attr('class', 'divider')
|
|
.attr('x1', -h / 2 - a)
|
|
.attr('x2', h / 2 + a)
|
|
.attr('y1', -y / 2 - a + l + p)
|
|
.attr('y2', -y / 2 - a + l + p),
|
|
(p += l),
|
|
D.forEach((v) => {
|
|
E(v).attr('transform', 'translate( ' + -h / 2 + ', ' + ((-1 * y) / 2 + p) + ')');
|
|
const L = v == null ? void 0 : v.getBBox();
|
|
p += ((L == null ? void 0 : L.height) ?? 0) + i;
|
|
}),
|
|
n
|
|
.attr('style', t.style)
|
|
.attr('class', 'outer title-state')
|
|
.attr('x', -h / 2 - a)
|
|
.attr('y', -(y / 2) - a)
|
|
.attr('width', h + t.padding)
|
|
.attr('height', y + t.padding),
|
|
m(t, n),
|
|
(t.intersect = function (v) {
|
|
return w.rect(t, v);
|
|
}),
|
|
s
|
|
);
|
|
},
|
|
rt = {
|
|
rhombus: P,
|
|
composite: zt,
|
|
question: P,
|
|
rect: Ut,
|
|
labelRect: Zt,
|
|
rectWithTitle: Gt,
|
|
choice: Ht,
|
|
circle: Qt,
|
|
doublecircle: Vt,
|
|
stadium: Ft,
|
|
hexagon: It,
|
|
block_arrow: Nt,
|
|
rect_left_inv_arrow: Ot,
|
|
lean_right: Wt,
|
|
lean_left: Xt,
|
|
trapezoid: Yt,
|
|
inv_trapezoid: Dt,
|
|
rect_right_inv_arrow: At,
|
|
cylinder: jt,
|
|
start: Jt,
|
|
end: Kt,
|
|
note: $t,
|
|
subroutine: qt,
|
|
fork: tt,
|
|
join: tt,
|
|
class_box: Pt,
|
|
};
|
|
let Y = {};
|
|
const or = async (e, t, a) => {
|
|
let i, l;
|
|
if (t.link) {
|
|
let r;
|
|
b().securityLevel === 'sandbox' ? (r = '_top') : t.linkTarget && (r = t.linkTarget || '_blank'),
|
|
(i = e.insert('svg:a').attr('xlink:href', t.link).attr('target', r)),
|
|
(l = await rt[t.shape](i, t, a));
|
|
} else (l = await rt[t.shape](e, t, a)), (i = l);
|
|
return (
|
|
t.tooltip && l.attr('title', t.tooltip),
|
|
t.class && l.attr('class', 'node default ' + t.class),
|
|
i.attr('data-node', 'true'),
|
|
i.attr('data-id', t.id),
|
|
(Y[t.id] = i),
|
|
t.haveCallback && Y[t.id].attr('class', Y[t.id].attr('class') + ' clickable'),
|
|
i
|
|
);
|
|
},
|
|
yr = (e, t) => {
|
|
Y[t.id] = e;
|
|
},
|
|
pr = () => {
|
|
Y = {};
|
|
},
|
|
fr = (e) => {
|
|
const t = Y[e.id];
|
|
g.trace('Transforming node', e.diff, e, 'translate(' + (e.x - e.width / 2 - 5) + ', ' + e.width / 2 + ')');
|
|
const a = 8,
|
|
i = e.diff || 0;
|
|
return (
|
|
e.clusterNode
|
|
? t.attr('transform', 'translate(' + (e.x + i - e.width / 2) + ', ' + (e.y - e.height / 2 - a) + ')')
|
|
: t.attr('transform', 'translate(' + e.x + ', ' + e.y + ')'),
|
|
i
|
|
);
|
|
},
|
|
tr = ({ flowchart: e }) => {
|
|
var t, a;
|
|
const i = ((t = e == null ? void 0 : e.subGraphTitleMargin) == null ? void 0 : t.top) ?? 0,
|
|
l = ((a = e == null ? void 0 : e.subGraphTitleMargin) == null ? void 0 : a.bottom) ?? 0,
|
|
r = i + l;
|
|
return { subGraphTitleTopMargin: i, subGraphTitleBottomMargin: l, subGraphTitleTotalMargin: r };
|
|
},
|
|
O = { aggregation: 18, extension: 18, composition: 18, dependency: 6, lollipop: 13.5, arrow_point: 5.3 };
|
|
function U(e, t) {
|
|
if (e === void 0 || t === void 0) return { angle: 0, deltaX: 0, deltaY: 0 };
|
|
(e = Z(e)), (t = Z(t));
|
|
const [a, i] = [e.x, e.y],
|
|
[l, r] = [t.x, t.y],
|
|
s = l - a,
|
|
n = r - i;
|
|
return { angle: Math.atan(n / s), deltaX: s, deltaY: n };
|
|
}
|
|
const Z = (e) => (Array.isArray(e) ? { x: e[0], y: e[1] } : e),
|
|
rr = (e) => ({
|
|
x: function (t, a, i) {
|
|
let l = 0;
|
|
if (a === 0 && Object.hasOwn(O, e.arrowTypeStart)) {
|
|
const { angle: r, deltaX: s } = U(i[0], i[1]);
|
|
l = O[e.arrowTypeStart] * Math.cos(r) * (s >= 0 ? 1 : -1);
|
|
} else if (a === i.length - 1 && Object.hasOwn(O, e.arrowTypeEnd)) {
|
|
const { angle: r, deltaX: s } = U(i[i.length - 1], i[i.length - 2]);
|
|
l = O[e.arrowTypeEnd] * Math.cos(r) * (s >= 0 ? 1 : -1);
|
|
}
|
|
return Z(t).x + l;
|
|
},
|
|
y: function (t, a, i) {
|
|
let l = 0;
|
|
if (a === 0 && Object.hasOwn(O, e.arrowTypeStart)) {
|
|
const { angle: r, deltaY: s } = U(i[0], i[1]);
|
|
l = O[e.arrowTypeStart] * Math.abs(Math.sin(r)) * (s >= 0 ? 1 : -1);
|
|
} else if (a === i.length - 1 && Object.hasOwn(O, e.arrowTypeEnd)) {
|
|
const { angle: r, deltaY: s } = U(i[i.length - 1], i[i.length - 2]);
|
|
l = O[e.arrowTypeEnd] * Math.abs(Math.sin(r)) * (s >= 0 ? 1 : -1);
|
|
}
|
|
return Z(t).y + l;
|
|
},
|
|
}),
|
|
ar = (e, t, a, i, l) => {
|
|
t.arrowTypeStart && at(e, 'start', t.arrowTypeStart, a, i, l), t.arrowTypeEnd && at(e, 'end', t.arrowTypeEnd, a, i, l);
|
|
},
|
|
er = {
|
|
arrow_cross: 'cross',
|
|
arrow_point: 'point',
|
|
arrow_barb: 'barb',
|
|
arrow_circle: 'circle',
|
|
aggregation: 'aggregation',
|
|
extension: 'extension',
|
|
composition: 'composition',
|
|
dependency: 'dependency',
|
|
lollipop: 'lollipop',
|
|
},
|
|
at = (e, t, a, i, l, r) => {
|
|
const s = er[a];
|
|
if (!s) {
|
|
g.warn(`Unknown arrow type: ${a}`);
|
|
return;
|
|
}
|
|
const n = t === 'start' ? 'Start' : 'End';
|
|
e.attr(`marker-${t}`, `url(${i}#${l}_${r}-${s}${n})`);
|
|
};
|
|
let G = {},
|
|
T = {};
|
|
const xr = () => {
|
|
(G = {}), (T = {});
|
|
},
|
|
dr = (e, t) => {
|
|
const a = H(b().flowchart.htmlLabels),
|
|
i = t.labelType === 'markdown' ? st(e, t.label, { style: t.labelStyle, useHtmlLabels: a, addSvgBackground: !0 }) : R(t.label, t.labelStyle),
|
|
l = e.insert('g').attr('class', 'edgeLabel'),
|
|
r = l.insert('g').attr('class', 'label');
|
|
r.node().appendChild(i);
|
|
let s = i.getBBox();
|
|
if (a) {
|
|
const c = i.children[0],
|
|
o = E(i);
|
|
(s = c.getBoundingClientRect()), o.attr('width', s.width), o.attr('height', s.height);
|
|
}
|
|
r.attr('transform', 'translate(' + -s.width / 2 + ', ' + -s.height / 2 + ')'), (G[t.id] = l), (t.width = s.width), (t.height = s.height);
|
|
let n;
|
|
if (t.startLabelLeft) {
|
|
const c = R(t.startLabelLeft, t.labelStyle),
|
|
o = e.insert('g').attr('class', 'edgeTerminals'),
|
|
h = o.insert('g').attr('class', 'inner');
|
|
n = h.node().appendChild(c);
|
|
const y = c.getBBox();
|
|
h.attr('transform', 'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')'),
|
|
T[t.id] || (T[t.id] = {}),
|
|
(T[t.id].startLeft = o),
|
|
z(n, t.startLabelLeft);
|
|
}
|
|
if (t.startLabelRight) {
|
|
const c = R(t.startLabelRight, t.labelStyle),
|
|
o = e.insert('g').attr('class', 'edgeTerminals'),
|
|
h = o.insert('g').attr('class', 'inner');
|
|
(n = o.node().appendChild(c)), h.node().appendChild(c);
|
|
const y = c.getBBox();
|
|
h.attr('transform', 'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')'),
|
|
T[t.id] || (T[t.id] = {}),
|
|
(T[t.id].startRight = o),
|
|
z(n, t.startLabelRight);
|
|
}
|
|
if (t.endLabelLeft) {
|
|
const c = R(t.endLabelLeft, t.labelStyle),
|
|
o = e.insert('g').attr('class', 'edgeTerminals'),
|
|
h = o.insert('g').attr('class', 'inner');
|
|
n = h.node().appendChild(c);
|
|
const y = c.getBBox();
|
|
h.attr('transform', 'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')'),
|
|
o.node().appendChild(c),
|
|
T[t.id] || (T[t.id] = {}),
|
|
(T[t.id].endLeft = o),
|
|
z(n, t.endLabelLeft);
|
|
}
|
|
if (t.endLabelRight) {
|
|
const c = R(t.endLabelRight, t.labelStyle),
|
|
o = e.insert('g').attr('class', 'edgeTerminals'),
|
|
h = o.insert('g').attr('class', 'inner');
|
|
n = h.node().appendChild(c);
|
|
const y = c.getBBox();
|
|
h.attr('transform', 'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')'),
|
|
o.node().appendChild(c),
|
|
T[t.id] || (T[t.id] = {}),
|
|
(T[t.id].endRight = o),
|
|
z(n, t.endLabelRight);
|
|
}
|
|
return i;
|
|
};
|
|
function z(e, t) {
|
|
b().flowchart.htmlLabels && e && ((e.style.width = t.length * 9 + 'px'), (e.style.height = '12px'));
|
|
}
|
|
const gr = (e, t) => {
|
|
g.debug('Moving label abc88 ', e.id, e.label, G[e.id], t);
|
|
let a = t.updatedPath ? t.updatedPath : t.originalPath;
|
|
const i = b(),
|
|
{ subGraphTitleTotalMargin: l } = tr(i);
|
|
if (e.label) {
|
|
const r = G[e.id];
|
|
let s = e.x,
|
|
n = e.y;
|
|
if (a) {
|
|
const c = j.calcLabelPosition(a);
|
|
g.debug('Moving label ' + e.label + ' from (', s, ',', n, ') to (', c.x, ',', c.y, ') abc88'), t.updatedPath && ((s = c.x), (n = c.y));
|
|
}
|
|
r.attr('transform', `translate(${s}, ${n + l / 2})`);
|
|
}
|
|
if (e.startLabelLeft) {
|
|
const r = T[e.id].startLeft;
|
|
let s = e.x,
|
|
n = e.y;
|
|
if (a) {
|
|
const c = j.calcTerminalLabelPosition(e.arrowTypeStart ? 10 : 0, 'start_left', a);
|
|
(s = c.x), (n = c.y);
|
|
}
|
|
r.attr('transform', `translate(${s}, ${n})`);
|
|
}
|
|
if (e.startLabelRight) {
|
|
const r = T[e.id].startRight;
|
|
let s = e.x,
|
|
n = e.y;
|
|
if (a) {
|
|
const c = j.calcTerminalLabelPosition(e.arrowTypeStart ? 10 : 0, 'start_right', a);
|
|
(s = c.x), (n = c.y);
|
|
}
|
|
r.attr('transform', `translate(${s}, ${n})`);
|
|
}
|
|
if (e.endLabelLeft) {
|
|
const r = T[e.id].endLeft;
|
|
let s = e.x,
|
|
n = e.y;
|
|
if (a) {
|
|
const c = j.calcTerminalLabelPosition(e.arrowTypeEnd ? 10 : 0, 'end_left', a);
|
|
(s = c.x), (n = c.y);
|
|
}
|
|
r.attr('transform', `translate(${s}, ${n})`);
|
|
}
|
|
if (e.endLabelRight) {
|
|
const r = T[e.id].endRight;
|
|
let s = e.x,
|
|
n = e.y;
|
|
if (a) {
|
|
const c = j.calcTerminalLabelPosition(e.arrowTypeEnd ? 10 : 0, 'end_right', a);
|
|
(s = c.x), (n = c.y);
|
|
}
|
|
r.attr('transform', `translate(${s}, ${n})`);
|
|
}
|
|
},
|
|
sr = (e, t) => {
|
|
const a = e.x,
|
|
i = e.y,
|
|
l = Math.abs(t.x - a),
|
|
r = Math.abs(t.y - i),
|
|
s = e.width / 2,
|
|
n = e.height / 2;
|
|
return l >= s || r >= n;
|
|
},
|
|
ir = (e, t, a) => {
|
|
g.debug(`intersection calc abc89:
|
|
outsidePoint: ${JSON.stringify(t)}
|
|
insidePoint : ${JSON.stringify(a)}
|
|
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);
|
|
const i = e.x,
|
|
l = e.y,
|
|
r = Math.abs(i - a.x),
|
|
s = e.width / 2;
|
|
let n = a.x < t.x ? s - r : s + r;
|
|
const c = e.height / 2,
|
|
o = Math.abs(t.y - a.y),
|
|
h = Math.abs(t.x - a.x);
|
|
if (Math.abs(l - t.y) * s > Math.abs(i - t.x) * c) {
|
|
let y = a.y < t.y ? t.y - c - l : l - c - t.y;
|
|
n = (h * y) / o;
|
|
const f = { x: a.x < t.x ? a.x + n : a.x - h + n, y: a.y < t.y ? a.y + o - y : a.y - o + y };
|
|
return (
|
|
n === 0 && ((f.x = t.x), (f.y = t.y)),
|
|
h === 0 && (f.x = t.x),
|
|
o === 0 && (f.y = t.y),
|
|
g.debug(`abc89 topp/bott calc, Q ${o}, q ${y}, R ${h}, r ${n}`, f),
|
|
f
|
|
);
|
|
} else {
|
|
a.x < t.x ? (n = t.x - s - i) : (n = i - s - t.x);
|
|
let y = (o * n) / h,
|
|
f = a.x < t.x ? a.x + h - n : a.x - h + n,
|
|
p = a.y < t.y ? a.y + y : a.y - y;
|
|
return (
|
|
g.debug(`sides calc abc89, Q ${o}, q ${y}, R ${h}, r ${n}`, { _x: f, _y: p }),
|
|
n === 0 && ((f = t.x), (p = t.y)),
|
|
h === 0 && (f = t.x),
|
|
o === 0 && (p = t.y),
|
|
{ x: f, y: p }
|
|
);
|
|
}
|
|
},
|
|
et = (e, t) => {
|
|
g.debug('abc88 cutPathAtIntersect', e, t);
|
|
let a = [],
|
|
i = e[0],
|
|
l = !1;
|
|
return (
|
|
e.forEach((r) => {
|
|
if (!sr(t, r) && !l) {
|
|
const s = ir(t, i, r);
|
|
let n = !1;
|
|
a.forEach((c) => {
|
|
n = n || (c.x === s.x && c.y === s.y);
|
|
}),
|
|
a.some((c) => c.x === s.x && c.y === s.y) || a.push(s),
|
|
(l = !0);
|
|
} else (i = r), l || a.push(r);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
ur = function (e, t, a, i, l, r, s) {
|
|
let n = a.points;
|
|
g.debug('abc88 InsertEdge: edge=', a, 'e=', t);
|
|
let c = !1;
|
|
const o = r.node(t.v);
|
|
var h = r.node(t.w);
|
|
h != null &&
|
|
h.intersect &&
|
|
o != null &&
|
|
o.intersect &&
|
|
((n = n.slice(1, a.points.length - 1)), n.unshift(o.intersect(n[0])), n.push(h.intersect(n[n.length - 1]))),
|
|
a.toCluster && (g.debug('to cluster abc88', i[a.toCluster]), (n = et(a.points, i[a.toCluster].node)), (c = !0)),
|
|
a.fromCluster && (g.debug('from cluster abc88', i[a.fromCluster]), (n = et(n.reverse(), i[a.fromCluster].node).reverse()), (c = !0));
|
|
const y = n.filter((C) => !Number.isNaN(C.y));
|
|
let f = lt;
|
|
a.curve && (l === 'graph' || l === 'flowchart') && (f = a.curve);
|
|
const { x: p, y: d } = rr(a),
|
|
k = ct().x(p).y(d).curve(f);
|
|
let x;
|
|
switch (a.thickness) {
|
|
case 'normal':
|
|
x = 'edge-thickness-normal';
|
|
break;
|
|
case 'thick':
|
|
x = 'edge-thickness-thick';
|
|
break;
|
|
case 'invisible':
|
|
x = 'edge-thickness-thick';
|
|
break;
|
|
default:
|
|
x = '';
|
|
}
|
|
switch (a.pattern) {
|
|
case 'solid':
|
|
x += ' edge-pattern-solid';
|
|
break;
|
|
case 'dotted':
|
|
x += ' edge-pattern-dotted';
|
|
break;
|
|
case 'dashed':
|
|
x += ' edge-pattern-dashed';
|
|
break;
|
|
}
|
|
const u = e
|
|
.append('path')
|
|
.attr('d', k(y))
|
|
.attr('id', a.id)
|
|
.attr('class', ' ' + x + (a.classes ? ' ' + a.classes : ''))
|
|
.attr('style', a.style);
|
|
let S = '';
|
|
(b().flowchart.arrowMarkerAbsolute || b().state.arrowMarkerAbsolute) &&
|
|
((S = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search),
|
|
(S = S.replace(/\(/g, '\\(')),
|
|
(S = S.replace(/\)/g, '\\)'))),
|
|
ar(u, a, S, s, l);
|
|
let B = {};
|
|
return c && (B.updatedPath = n), (B.originalPath = a.points), B;
|
|
};
|
|
export {
|
|
or as a,
|
|
dr as b,
|
|
ur as c,
|
|
gr as d,
|
|
pr as e,
|
|
xr as f,
|
|
tr as g,
|
|
R as h,
|
|
hr as i,
|
|
Et as j,
|
|
rr as k,
|
|
M as l,
|
|
ar as m,
|
|
fr as p,
|
|
yr as s,
|
|
m as u,
|
|
};
|