namillum
Version:
Bubble Protocol SDK
5,488 lines • 195 kB
JavaScript
/*! LeaderLine v1.0.5 (c) anseki https://anseki.github.io/leader-line/ */
var LeaderLine = (function () {
"use strict";
var te,
g,
y,
S,
_,
o,
t,
h,
f,
p,
a,
i,
l,
v = "leader-line",
M = 1,
I = 2,
C = 3,
L = 4,
n = { top: M, right: I, bottom: C, left: L },
A = 1,
V = 2,
P = 3,
N = 4,
T = 5,
m = { straight: A, arc: V, fluid: P, magnet: N, grid: T },
ne = "behind",
r = v + "-defs",
s =
'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="leader-line-defs"><style><![CDATA[.leader-line{position:absolute;overflow:visible!important;pointer-events:none!important;font-size:16px}#leader-line-defs{width:0;height:0;position:absolute;left:0;top:0}.leader-line-line-path{fill:none}.leader-line-mask-bg-rect{fill:#fff}.leader-line-caps-mask-anchor,.leader-line-caps-mask-marker-shape{fill:#000}.leader-line-caps-mask-anchor{stroke:#000}.leader-line-caps-mask-line,.leader-line-plugs-face{stroke:transparent}.leader-line-line-mask-shape{stroke:#fff}.leader-line-line-outline-mask-shape{stroke:#000}.leader-line-plug-mask-shape{fill:#fff;stroke:#000}.leader-line-plug-outline-mask-shape{fill:#000;stroke:#fff}.leader-line-areaAnchor{position:absolute;overflow:visible!important}]]></style><defs><circle id="leader-line-disc" cx="0" cy="0" r="5"/><rect id="leader-line-square" x="-5" y="-5" width="10" height="10"/><polygon id="leader-line-arrow1" points="-8,-8 8,0 -8,8 -5,0"/><polygon id="leader-line-arrow2" points="-4,-8 4,0 -4,8 -7,5 -2,0 -7,-5"/><polygon id="leader-line-arrow3" points="-4,-5 8,0 -4,5"/><g id="leader-line-hand"><path style="fill: #fcfcfc" d="M9.19 11.14h4.75c1.38 0 2.49-1.11 2.49-2.49 0-.51-.15-.98-.41-1.37h1.3c1.38 0 2.49-1.11 2.49-2.49s-1.11-2.53-2.49-2.53h1.02c1.38 0 2.49-1.11 2.49-2.49s-1.11-2.49-2.49-2.49h14.96c1.37 0 2.49-1.11 2.49-2.49s-1.11-2.49-2.49-2.49H16.58C16-9.86 14.28-11.14 9.7-11.14c-4.79 0-6.55 3.42-7.87 4.73H-2.14v13.23h3.68C3.29 9.97 5.47 11.14 9.19 11.14L9.19 11.14Z"/><path style="fill: black" d="M13.95 12c1.85 0 3.35-1.5 3.35-3.35 0-.17-.02-.34-.04-.51h.07c1.85 0 3.35-1.5 3.35-3.35 0-.79-.27-1.51-.72-2.08 1.03-.57 1.74-1.67 1.74-2.93 0-.59-.16-1.15-.43-1.63h12.04c1.85 0 3.35-1.5 3.35-3.35 0-1.85-1.5-3.35-3.35-3.35H17.2C16.26-10.93 13.91-12 9.7-12 5.36-12 3.22-9.4 1.94-7.84c0 0-.29.33-.5.57-.63 0-3.58 0-3.58 0C-2.61-7.27-3-6.88-3-6.41v13.23c0 .47.39.86.86.86 0 0 2.48 0 3.2 0C2.9 10.73 5.29 12 9.19 12L13.95 12ZM9.19 10.28c-3.46 0-5.33-1.05-6.9-3.87-.15-.27-.44-.44-.75-.44 0 0-1.81 0-2.82 0V-5.55c1.06 0 3.11 0 3.11 0 .25 0 .44-.06.61-.25l.83-.95c1.23-1.49 2.91-3.53 6.43-3.53 3.45 0 4.9.74 5.57 1.72h-4.3c-.48 0-.86.38-.86.86s.39.86.86.86h22.34c.9 0 1.63.73 1.63 1.63 0 .9-.73 1.63-1.63 1.63H15.83c-.48 0-.86.38-.86.86 0 .47.39.86.86.86h2.52c.9 0 1.63.73 1.63 1.63s-.73 1.63-1.63 1.63h-3.12c-.48 0-.86.38-.86.86 0 .47.39.86.86.86h2.11c.88 0 1.63.76 1.63 1.67 0 .9-.73 1.63-1.63 1.63h-3.2c-.48 0-.86.39-.86.86 0 .47.39.86.86.86h1.36c.05.16.09.34.09.51 0 .9-.73 1.63-1.63 1.63C13.95 10.28 9.19 10.28 9.19 10.28Z"/></g><g id="leader-line-crosshair"><path d="M0-78.97c-43.54 0-78.97 35.43-78.97 78.97 0 43.54 35.43 78.97 78.97 78.97s78.97-35.43 78.97-78.97C78.97-43.54 43.55-78.97 0-78.97ZM76.51-1.21h-9.91v-9.11h-2.43v9.11h-11.45c-.64-28.12-23.38-50.86-51.5-51.5V-64.17h9.11V-66.6h-9.11v-9.91C42.46-75.86 75.86-42.45 76.51-1.21ZM-1.21-30.76h-9.11v2.43h9.11V-4.2c-1.44.42-2.57 1.54-2.98 2.98H-28.33v-9.11h-2.43v9.11H-50.29C-49.65-28-27.99-49.65-1.21-50.29V-30.76ZM-30.76 1.21v9.11h2.43v-9.11H-4.2c.42 1.44 1.54 2.57 2.98 2.98v24.13h-9.11v2.43h9.11v19.53C-27.99 49.65-49.65 28-50.29 1.21H-30.76ZM1.22 30.75h9.11v-2.43h-9.11V4.2c1.44-.42 2.56-1.54 2.98-2.98h24.13v9.11h2.43v-9.11h19.53C49.65 28 28 49.65 1.22 50.29V30.75ZM30.76-1.21v-9.11h-2.43v9.11H4.2c-.42-1.44-1.54-2.56-2.98-2.98V-28.33h9.11v-2.43h-9.11V-50.29C28-49.65 49.65-28 50.29-1.21H30.76ZM-1.21-76.51v9.91h-9.11v2.43h9.11v11.45c-28.12.64-50.86 23.38-51.5 51.5H-64.17v-9.11H-66.6v9.11h-9.91C-75.86-42.45-42.45-75.86-1.21-76.51ZM-76.51 1.21h9.91v9.11h2.43v-9.11h11.45c.64 28.12 23.38 50.86 51.5 51.5v11.45h-9.11v2.43h9.11v9.91C-42.45 75.86-75.86 42.45-76.51 1.21ZM1.22 76.51v-9.91h9.11v-2.43h-9.11v-11.45c28.12-.64 50.86-23.38 51.5-51.5h11.45v9.11h2.43v-9.11h9.91C75.86 42.45 42.45 75.86 1.22 76.51Z"/><path d="M0 83.58-7.1 96 7.1 96Z"/><path d="M0-83.58 7.1-96-7.1-96"/><path d="M83.58 0 96 7.1 96-7.1Z"/><path d="M-83.58 0-96-7.1-96 7.1Z"/></g></defs></svg>',
ae = {
disc: {
elmId: "leader-line-disc",
noRotate: !0,
bBox: { left: -5, top: -5, width: 10, height: 10, right: 5, bottom: 5 },
widthR: 2.5,
heightR: 2.5,
bCircle: 5,
sideLen: 5,
backLen: 5,
overhead: 0,
outlineBase: 1,
outlineMax: 4,
},
square: {
elmId: "leader-line-square",
noRotate: !0,
bBox: { left: -5, top: -5, width: 10, height: 10, right: 5, bottom: 5 },
widthR: 2.5,
heightR: 2.5,
bCircle: 5,
sideLen: 5,
backLen: 5,
overhead: 0,
outlineBase: 1,
outlineMax: 4,
},
arrow1: {
elmId: "leader-line-arrow1",
bBox: { left: -8, top: -8, width: 16, height: 16, right: 8, bottom: 8 },
widthR: 4,
heightR: 4,
bCircle: 8,
sideLen: 8,
backLen: 8,
overhead: 8,
outlineBase: 2,
outlineMax: 1.5,
},
arrow2: {
elmId: "leader-line-arrow2",
bBox: { left: -7, top: -8, width: 11, height: 16, right: 4, bottom: 8 },
widthR: 2.75,
heightR: 4,
bCircle: 8,
sideLen: 8,
backLen: 7,
overhead: 4,
outlineBase: 1,
outlineMax: 1.75,
},
arrow3: {
elmId: "leader-line-arrow3",
bBox: { left: -4, top: -5, width: 12, height: 10, right: 8, bottom: 5 },
widthR: 3,
heightR: 2.5,
bCircle: 8,
sideLen: 5,
backLen: 4,
overhead: 8,
outlineBase: 1,
outlineMax: 2.5,
},
hand: {
elmId: "leader-line-hand",
bBox: {
left: -3,
top: -12,
width: 40,
height: 24,
right: 37,
bottom: 12,
},
widthR: 10,
heightR: 6,
bCircle: 37,
sideLen: 12,
backLen: 3,
overhead: 37,
},
crosshair: {
elmId: "leader-line-crosshair",
noRotate: !0,
bBox: {
left: -96,
top: -96,
width: 192,
height: 192,
right: 96,
bottom: 96,
},
widthR: 48,
heightR: 48,
bCircle: 96,
sideLen: 96,
backLen: 96,
overhead: 0,
},
},
E = {
behind: ne,
disc: "disc",
square: "square",
arrow1: "arrow1",
arrow2: "arrow2",
arrow3: "arrow3",
hand: "hand",
crosshair: "crosshair",
},
ie = {
disc: "disc",
square: "square",
arrow1: "arrow1",
arrow2: "arrow2",
arrow3: "arrow3",
hand: "hand",
crosshair: "crosshair",
},
W = [M, I, C, L],
x = "auto",
oe = { x: "left", y: "top", width: "width", height: "height" },
B = 80,
R = 4,
F = 5,
G = 120,
D = 8,
z = 3.75,
j = 10,
H = 30,
U = 0.5522847,
Z = 0.25 * Math.PI,
u = /^\s*(\-?[\d\.]+)\s*(\%)?\s*$/,
b = "http://www.w3.org/2000/svg",
e =
"-ms-scroll-limit" in document.documentElement.style &&
"-ms-ime-align" in document.documentElement.style &&
!window.navigator.msPointerEnabled,
le = !e && !!document.uniqueID,
re = "MozAppearance" in document.documentElement.style,
se = !(e || re || !window.chrome || !window.CSS),
ue =
!e &&
!le &&
!re &&
!se &&
!window.chrome &&
"WebkitAppearance" in document.documentElement.style,
he = le || e ? 0.2 : 0.1,
pe = {
path: P,
lineColor: "coral",
lineSize: 4,
plugSE: [ne, "arrow1"],
plugSizeSE: [1, 1],
lineOutlineEnabled: !1,
lineOutlineColor: "indianred",
lineOutlineSize: 0.25,
plugOutlineEnabledSE: [!1, !1],
plugOutlineSizeSE: [1, 1],
},
k =
((a = {}.toString),
(i = {}.hasOwnProperty.toString),
(l = i.call(Object)),
function (e) {
var t, n;
return (
e &&
"[object Object]" === a.call(e) &&
(!(t = Object.getPrototypeOf(e)) ||
((n = t.hasOwnProperty("constructor") && t.constructor) &&
"function" === typeof n &&
i.call(n) === l))
);
}),
w =
Number.isFinite ||
function (e) {
return "number" === typeof e && window.isFinite(e);
},
c = (function () {
var e,
x = {
ease: [0.25, 0.1, 0.25, 1],
linear: [0, 0, 1, 1],
"ease-in": [0.42, 0, 1, 1],
"ease-out": [0, 0, 0.58, 1],
"ease-in-out": [0.42, 0, 0.58, 1],
},
b = 1e3 / 60 / 2,
t =
window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (e) {
setTimeout(e, b);
},
n =
window.cancelAnimationFrame ||
window.mozCancelAnimationFrame ||
window.webkitCancelAnimationFrame ||
window.msCancelAnimationFrame ||
function (e) {
clearTimeout(e);
},
a =
Number.isFinite ||
function (e) {
return "number" === typeof e && window.isFinite(e);
},
k = [],
w = 0;
function l() {
var i = Date.now(),
o = !1;
e && (n.call(window, e), (e = null)),
k.forEach(function (e) {
var t, n, a;
if (e.framesStart) {
if (
(t = i - e.framesStart) >= e.duration &&
e.count &&
e.loopsLeft <= 1
)
return (
(a =
e.frames[
(e.lastFrame = e.reverse ? 0 : e.frames.length - 1)
]),
e.frameCallback(a.value, !0, a.timeRatio, a.outputRatio),
void (e.framesStart = null)
);
if (t > e.duration) {
if (((n = Math.floor(t / e.duration)), e.count)) {
if (n >= e.loopsLeft)
return (
(a =
e.frames[
(e.lastFrame = e.reverse ? 0 : e.frames.length - 1)
]),
e.frameCallback(a.value, !0, a.timeRatio, a.outputRatio),
void (e.framesStart = null)
);
e.loopsLeft -= n;
}
(e.framesStart += e.duration * n), (t = i - e.framesStart);
}
e.reverse && (t = e.duration - t),
(a = e.frames[(e.lastFrame = Math.round(t / b))]),
!1 !== e.frameCallback(a.value, !1, a.timeRatio, a.outputRatio)
? (o = !0)
: (e.framesStart = null);
}
}),
o && (e = t.call(window, l));
}
function O(e, t) {
(e.framesStart = Date.now()),
null != t && (e.framesStart -= e.duration * (e.reverse ? 1 - t : t)),
(e.loopsLeft = e.count),
(e.lastFrame = null),
l();
}
return {
add: function (n, e, t, a, i, o, l) {
var r,
s,
u,
h,
p,
c,
d,
f,
y,
S,
m,
g,
_,
v = ++w;
function E(e, t) {
return { value: n(t), timeRatio: e, outputRatio: t };
}
if (
("string" === typeof i && (i = x[i]),
(n = n || function () {}),
t < b)
)
s = [E(0, 0), E(1, 1)];
else {
if (
((u = b / t),
(s = [E(0, 0)]),
0 === i[0] && 0 === i[1] && 1 === i[2] && 1 === i[3])
)
for (p = u; p <= 1; p += u) s.push(E(p, p));
else
for (c = h = (p = u) / 10; c <= 1; c += h)
void 0,
(S = (y = (f = c) * f) * f),
(_ = 3 * (m = 1 - f) * y),
p <=
(d = {
x: (g = 3 * (m * m) * f) * i[0] + _ * i[2] + S,
y: g * i[1] + _ * i[3] + S,
}).x && (s.push(E(d.x, d.y)), (p += u));
s.push(E(1, 1));
}
return (
(r = {
animId: v,
frameCallback: e,
duration: t,
count: a,
frames: s,
reverse: !!o,
}),
k.push(r),
!1 !== l && O(r, l),
v
);
},
remove: function (n) {
var a;
k.some(function (e, t) {
return e.animId === n && ((a = t), !(e.framesStart = null));
}) && k.splice(a, 1);
},
start: function (t, n, a) {
k.some(function (e) {
return e.animId === t && ((e.reverse = !!n), O(e, a), !0);
});
},
stop: function (t, n) {
var a;
return (
k.some(function (e) {
return (
e.animId === t &&
(n
? null != e.lastFrame && (a = e.frames[e.lastFrame].timeRatio)
: ((a = (Date.now() - e.framesStart) / e.duration),
e.reverse && (a = 1 - a),
a < 0 ? (a = 0) : 1 < a && (a = 1)),
!(e.framesStart = null))
);
}),
a
);
},
validTiming: function (t) {
return "string" === typeof t
? x[t]
: Array.isArray(t) &&
[0, 1, 2, 3].every(function (e) {
return a(t[e]) && 0 <= t[e] && t[e] <= 1;
})
? [t[0], t[1], t[2], t[3]]
: null;
},
};
})(),
d = function (e) {
(e.SVGPathElement.prototype.getPathData &&
e.SVGPathElement.prototype.setPathData) ||
(function () {
var i = {
Z: "Z",
M: "M",
L: "L",
C: "C",
Q: "Q",
A: "A",
H: "H",
V: "V",
S: "S",
T: "T",
z: "Z",
m: "m",
l: "l",
c: "c",
q: "q",
a: "a",
h: "h",
v: "v",
s: "s",
t: "t",
},
o = function (e) {
(this._string = e),
(this._currentIndex = 0),
(this._endIndex = this._string.length),
(this._prevCommand = null),
this._skipOptionalSpaces();
},
l = -1 !== e.navigator.userAgent.indexOf("MSIE ");
o.prototype = {
parseSegment: function () {
var e = this._string[this._currentIndex],
t = i[e] ? i[e] : null;
if (null === t) {
if (null === this._prevCommand) return null;
if (
null ===
(t =
("+" === e ||
"-" === e ||
"." === e ||
("0" <= e && e <= "9")) &&
"Z" !== this._prevCommand
? "M" === this._prevCommand
? "L"
: "m" === this._prevCommand
? "l"
: this._prevCommand
: null)
)
return null;
} else this._currentIndex += 1;
var n = null,
a = (this._prevCommand = t).toUpperCase();
return (
"H" === a || "V" === a
? (n = [this._parseNumber()])
: "M" === a || "L" === a || "T" === a
? (n = [this._parseNumber(), this._parseNumber()])
: "S" === a || "Q" === a
? (n = [
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
])
: "C" === a
? (n = [
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
])
: "A" === a
? (n = [
this._parseNumber(),
this._parseNumber(),
this._parseNumber(),
this._parseArcFlag(),
this._parseArcFlag(),
this._parseNumber(),
this._parseNumber(),
])
: "Z" === a && (this._skipOptionalSpaces(), (n = [])),
null === n || 0 <= n.indexOf(null)
? null
: { type: t, values: n }
);
},
hasMoreData: function () {
return this._currentIndex < this._endIndex;
},
peekSegmentType: function () {
var e = this._string[this._currentIndex];
return i[e] ? i[e] : null;
},
initialCommandIsMoveTo: function () {
if (!this.hasMoreData()) return !0;
var e = this.peekSegmentType();
return "M" === e || "m" === e;
},
_isCurrentSpace: function () {
var e = this._string[this._currentIndex];
return (
e <= " " &&
(" " === e ||
"\n" === e ||
"\t" === e ||
"\r" === e ||
"\f" === e)
);
},
_skipOptionalSpaces: function () {
for (
;
this._currentIndex < this._endIndex && this._isCurrentSpace();
)
this._currentIndex += 1;
return this._currentIndex < this._endIndex;
},
_skipOptionalSpacesOrDelimiter: function () {
return (
!(
this._currentIndex < this._endIndex &&
!this._isCurrentSpace() &&
"," !== this._string[this._currentIndex]
) &&
(this._skipOptionalSpaces() &&
this._currentIndex < this._endIndex &&
"," === this._string[this._currentIndex] &&
((this._currentIndex += 1), this._skipOptionalSpaces()),
this._currentIndex < this._endIndex)
);
},
_parseNumber: function () {
var e = 0,
t = 0,
n = 1,
a = 0,
i = 1,
o = 1,
l = this._currentIndex;
if (
(this._skipOptionalSpaces(),
this._currentIndex < this._endIndex &&
"+" === this._string[this._currentIndex]
? (this._currentIndex += 1)
: this._currentIndex < this._endIndex &&
"-" === this._string[this._currentIndex] &&
((this._currentIndex += 1), (i = -1)),
this._currentIndex === this._endIndex ||
((this._string[this._currentIndex] < "0" ||
"9" < this._string[this._currentIndex]) &&
"." !== this._string[this._currentIndex]))
)
return null;
for (
var r = this._currentIndex;
this._currentIndex < this._endIndex &&
"0" <= this._string[this._currentIndex] &&
this._string[this._currentIndex] <= "9";
)
this._currentIndex += 1;
if (this._currentIndex !== r)
for (var s = this._currentIndex - 1, u = 1; r <= s; )
(t += u * (this._string[s] - "0")), (s -= 1), (u *= 10);
if (
this._currentIndex < this._endIndex &&
"." === this._string[this._currentIndex]
) {
if (
((this._currentIndex += 1),
this._currentIndex >= this._endIndex ||
this._string[this._currentIndex] < "0" ||
"9" < this._string[this._currentIndex])
)
return null;
for (
;
this._currentIndex < this._endIndex &&
"0" <= this._string[this._currentIndex] &&
this._string[this._currentIndex] <= "9";
)
(n *= 10),
(a += (this._string.charAt(this._currentIndex) - "0") / n),
(this._currentIndex += 1);
}
if (
this._currentIndex !== l &&
this._currentIndex + 1 < this._endIndex &&
("e" === this._string[this._currentIndex] ||
"E" === this._string[this._currentIndex]) &&
"x" !== this._string[this._currentIndex + 1] &&
"m" !== this._string[this._currentIndex + 1]
) {
if (
((this._currentIndex += 1),
"+" === this._string[this._currentIndex]
? (this._currentIndex += 1)
: "-" === this._string[this._currentIndex] &&
((this._currentIndex += 1), (o = -1)),
this._currentIndex >= this._endIndex ||
this._string[this._currentIndex] < "0" ||
"9" < this._string[this._currentIndex])
)
return null;
for (
;
this._currentIndex < this._endIndex &&
"0" <= this._string[this._currentIndex] &&
this._string[this._currentIndex] <= "9";
)
(e *= 10),
(e += this._string[this._currentIndex] - "0"),
(this._currentIndex += 1);
}
var h = t + a;
return (
(h *= i),
e && (h *= Math.pow(10, o * e)),
l === this._currentIndex
? null
: (this._skipOptionalSpacesOrDelimiter(), h)
);
},
_parseArcFlag: function () {
if (this._currentIndex >= this._endIndex) return null;
var e = null,
t = this._string[this._currentIndex];
if (((this._currentIndex += 1), "0" === t)) e = 0;
else {
if ("1" !== t) return null;
e = 1;
}
return this._skipOptionalSpacesOrDelimiter(), e;
},
};
var a = function (e) {
if (!e || 0 === e.length) return [];
var t = new o(e),
n = [];
if (t.initialCommandIsMoveTo())
for (; t.hasMoreData(); ) {
var a = t.parseSegment();
if (null === a) break;
n.push(a);
}
return n;
},
n = e.SVGPathElement.prototype.setAttribute,
r = e.SVGPathElement.prototype.removeAttribute,
d = e.Symbol ? e.Symbol() : "__cachedPathData",
f = e.Symbol ? e.Symbol() : "__cachedNormalizedPathData",
U = function (e, t, n, a, i, o, l, r, s, u) {
var h,
p,
c,
d,
f,
y = function (e, t, n) {
return {
x: e * Math.cos(n) - t * Math.sin(n),
y: e * Math.sin(n) + t * Math.cos(n),
};
},
S = ((h = l), (Math.PI * h) / 180),
m = [];
if (u) (p = u[0]), (c = u[1]), (d = u[2]), (f = u[3]);
else {
var g = y(e, t, -S);
(e = g.x), (t = g.y);
var _ = y(n, a, -S),
v = (e - (n = _.x)) / 2,
E = (t - (a = _.y)) / 2,
x = (v * v) / (i * i) + (E * E) / (o * o);
1 < x && ((i *= x = Math.sqrt(x)), (o *= x));
var b = i * i,
k = o * o,
w = b * k - b * E * E - k * v * v,
O = b * E * E + k * v * v,
M = (r === s ? -1 : 1) * Math.sqrt(Math.abs(w / O));
(d = (M * i * E) / o + (e + n) / 2),
(f = (M * -o * v) / i + (t + a) / 2),
(p = Math.asin(parseFloat(((t - f) / o).toFixed(9)))),
(c = Math.asin(parseFloat(((a - f) / o).toFixed(9)))),
e < d && (p = Math.PI - p),
n < d && (c = Math.PI - c),
p < 0 && (p = 2 * Math.PI + p),
c < 0 && (c = 2 * Math.PI + c),
s && c < p && (p -= 2 * Math.PI),
!s && p < c && (c -= 2 * Math.PI);
}
var I = c - p;
if (Math.abs(I) > (120 * Math.PI) / 180) {
var C = c,
L = n,
A = a;
(c =
s && p < c
? p + ((120 * Math.PI) / 180) * 1
: p + ((120 * Math.PI) / 180) * -1),
(n = d + i * Math.cos(c)),
(a = f + o * Math.sin(c)),
(m = U(n, a, L, A, i, o, l, 0, s, [c, C, d, f]));
}
I = c - p;
var V = Math.cos(p),
P = Math.sin(p),
N = Math.cos(c),
T = Math.sin(c),
W = Math.tan(I / 4),
B = (4 / 3) * i * W,
R = (4 / 3) * o * W,
F = [e, t],
G = [e + B * P, t - R * V],
D = [n + B * T, a - R * N],
z = [n, a];
if (((G[0] = 2 * F[0] - G[0]), (G[1] = 2 * F[1] - G[1]), u))
return [G, D, z].concat(m);
m = [G, D, z].concat(m).join().split(",");
var j = [],
H = [];
return (
m.forEach(function (e, t) {
t % 2
? H.push(y(m[t - 1], m[t], S).y)
: H.push(y(m[t], m[t + 1], S).x),
6 === H.length && (j.push(H), (H = []));
}),
j
);
},
y = function (e) {
return e.map(function (e) {
return {
type: e.type,
values: Array.prototype.slice.call(e.values),
};
});
},
S = function (e) {
var S = [],
m = null,
g = null,
_ = null,
v = null,
E = null,
x = null,
b = null;
return (
e.forEach(function (e) {
if ("M" === e.type) {
var t = e.values[0],
n = e.values[1];
S.push({ type: "M", values: [t, n] }),
(v = x = t),
(E = b = n);
} else if ("C" === e.type) {
var a = e.values[0],
i = e.values[1],
o = e.values[2],
l = e.values[3];
(t = e.values[4]), (n = e.values[5]);
S.push({ type: "C", values: [a, i, o, l, t, n] }),
(g = o),
(_ = l),
(v = t),
(E = n);
} else if ("L" === e.type) {
(t = e.values[0]), (n = e.values[1]);
S.push({ type: "L", values: [t, n] }), (v = t), (E = n);
} else if ("H" === e.type) {
t = e.values[0];
S.push({ type: "L", values: [t, E] }), (v = t);
} else if ("V" === e.type) {
n = e.values[0];
S.push({ type: "L", values: [v, n] }), (E = n);
} else if ("S" === e.type) {
(o = e.values[0]),
(l = e.values[1]),
(t = e.values[2]),
(n = e.values[3]);
"C" === m || "S" === m
? ((r = v + (v - g)), (s = E + (E - _)))
: ((r = v), (s = E)),
S.push({ type: "C", values: [r, s, o, l, t, n] }),
(g = o),
(_ = l),
(v = t),
(E = n);
} else if ("T" === e.type) {
(t = e.values[0]), (n = e.values[1]);
"Q" === m || "T" === m
? ((a = v + (v - g)), (i = E + (E - _)))
: ((a = v), (i = E));
var r = v + (2 * (a - v)) / 3,
s = E + (2 * (i - E)) / 3,
u = t + (2 * (a - t)) / 3,
h = n + (2 * (i - n)) / 3;
S.push({ type: "C", values: [r, s, u, h, t, n] }),
(g = a),
(_ = i),
(v = t),
(E = n);
} else if ("Q" === e.type) {
(a = e.values[0]),
(i = e.values[1]),
(t = e.values[2]),
(n = e.values[3]),
(r = v + (2 * (a - v)) / 3),
(s = E + (2 * (i - E)) / 3),
(u = t + (2 * (a - t)) / 3),
(h = n + (2 * (i - n)) / 3);
S.push({ type: "C", values: [r, s, u, h, t, n] }),
(g = a),
(_ = i),
(v = t),
(E = n);
} else if ("A" === e.type) {
var p = e.values[0],
c = e.values[1],
d = e.values[2],
f = e.values[3],
y = e.values[4];
(t = e.values[5]), (n = e.values[6]);
if (0 === p || 0 === c)
S.push({ type: "C", values: [v, E, t, n, t, n] }),
(v = t),
(E = n);
else if (v !== t || E !== n)
U(v, E, t, n, p, c, d, f, y).forEach(function (e) {
S.push({ type: "C", values: e }), (v = t), (E = n);
});
} else "Z" === e.type && (S.push(e), (v = x), (E = b));
m = e.type;
}),
S
);
};
(e.SVGPathElement.prototype.setAttribute = function (e, t) {
"d" === e && ((this[d] = null), (this[f] = null)),
n.call(this, e, t);
}),
(e.SVGPathElement.prototype.removeAttribute = function (e, t) {
"d" === e && ((this[d] = null), (this[f] = null)),
r.call(this, e);
}),
(e.SVGPathElement.prototype.getPathData = function (e) {
if (e && e.normalize) {
if (this[f]) return y(this[f]);
this[d]
? (n = y(this[d]))
: ((n = a(this.getAttribute("d") || "")), (this[d] = y(n)));
var t = S(
((s = []),
(c = p = h = u = null),
n.forEach(function (e) {
var t = e.type;
if ("M" === t) {
var n = e.values[0],
a = e.values[1];
s.push({ type: "M", values: [n, a] }),
(u = p = n),
(h = c = a);
} else if ("m" === t)
(n = u + e.values[0]),
(a = h + e.values[1]),
s.push({ type: "M", values: [n, a] }),
(u = p = n),
(h = c = a);
else if ("L" === t)
(n = e.values[0]),
(a = e.values[1]),
s.push({ type: "L", values: [n, a] }),
(u = n),
(h = a);
else if ("l" === t)
(n = u + e.values[0]),
(a = h + e.values[1]),
s.push({ type: "L", values: [n, a] }),
(u = n),
(h = a);
else if ("C" === t) {
var i = e.values[0],
o = e.values[1],
l = e.values[2],
r = e.values[3];
(n = e.values[4]),
(a = e.values[5]),
s.push({ type: "C", values: [i, o, l, r, n, a] }),
(u = n),
(h = a);
} else
"c" === t
? ((i = u + e.values[0]),
(o = h + e.values[1]),
(l = u + e.values[2]),
(r = h + e.values[3]),
(n = u + e.values[4]),
(a = h + e.values[5]),
s.push({ type: "C", values: [i, o, l, r, n, a] }),
(u = n),
(h = a))
: "Q" === t
? ((i = e.values[0]),
(o = e.values[1]),
(n = e.values[2]),
(a = e.values[3]),
s.push({ type: "Q", values: [i, o, n, a] }),
(u = n),
(h = a))
: "q" === t
? ((i = u + e.values[0]),
(o = h + e.values[1]),
(n = u + e.values[2]),
(a = h + e.values[3]),
s.push({ type: "Q", values: [i, o, n, a] }),
(u = n),
(h = a))
: "A" === t
? ((n = e.values[5]),
(a = e.values[6]),
s.push({
type: "A",
values: [
e.values[0],
e.values[1],
e.values[2],
e.values[3],
e.values[4],
n,
a,
],
}),
(u = n),
(h = a))
: "a" === t
? ((n = u + e.values[5]),
(a = h + e.values[6]),
s.push({
type: "A",
values: [
e.values[0],
e.values[1],
e.values[2],
e.values[3],
e.values[4],
n,
a,
],
}),
(u = n),
(h = a))
: "H" === t
? ((n = e.values[0]),
s.push({ type: "H", values: [n] }),
(u = n))
: "h" === t
? ((n = u + e.values[0]),
s.push({ type: "H", values: [n] }),
(u = n))
: "V" === t
? ((a = e.values[0]),
s.push({ type: "V", values: [a] }),
(h = a))
: "v" === t
? ((a = h + e.values[0]),
s.push({ type: "V", values: [a] }),
(h = a))
: "S" === t
? ((l = e.values[0]),
(r = e.values[1]),
(n = e.values[2]),
(a = e.values[3]),
s.push({ type: "S", values: [l, r, n, a] }),
(u = n),
(h = a))
: "s" === t
? ((l = u + e.values[0]),
(r = h + e.values[1]),
(n = u + e.values[2]),
(a = h + e.values[3]),
s.push({ type: "S", values: [l, r, n, a] }),
(u = n),
(h = a))
: "T" === t
? ((n = e.values[0]),
(a = e.values[1]),
s.push({ type: "T", values: [n, a] }),
(u = n),
(h = a))
: "t" === t
? ((n = u + e.values[0]),
(a = h + e.values[1]),
s.push({ type: "T", values: [n, a] }),
(u = n),
(h = a))
: ("Z" !== t && "z" !== t) ||
(s.push({ type: "Z", values: [] }), (u = p), (h = c));
}),
s)
);
return (this[f] = y(t)), t;
}
if (this[d]) return y(this[d]);
var s,
u,
h,
p,
c,
n = a(this.getAttribute("d") || "");
return (this[d] = y(n)), n;
}),
(e.SVGPathElement.prototype.setPathData = function (e) {
if (0 === e.length)
l ? this.setAttribute("d", "") : this.removeAttribute("d");
else {
for (var t = "", n = 0, a = e.length; n < a; n += 1) {
var i = e[n];
0 < n && (t += " "),
(t += i.type),
i.values &&
0 < i.values.length &&
(t += " " + i.values.join(" "));
}
this.setAttribute("d", t);
}
}),
(e.SVGRectElement.prototype.getPathData = function (e) {
var t = this.x.baseVal.value,
n = this.y.baseVal.value,
a = this.width.baseVal.value,
i = this.height.baseVal.value,
o = this.hasAttribute("rx")
? this.rx.baseVal.value
: this.ry.baseVal.value,
l = this.hasAttribute("ry")
? this.ry.baseVal.value
: this.rx.baseVal.value;
a / 2 < o && (o = a / 2), i / 2 < l && (l = i / 2);
var r = [
{ type: "M", values: [t + o, n] },
{ type: "H", values: [t + a - o] },
{ type: "A", values: [o, l, 0, 0, 1, t + a, n + l] },
{ type: "V", values: [n + i - l] },
{ type: "A", values: [o, l, 0, 0, 1, t + a - o, n + i] },
{ type: "H", values: [t + o] },
{ type: "A", values: [o, l, 0, 0, 1, t, n + i - l] },
{ type: "V", values: [n + l] },
{ type: "A", values: [o, l, 0, 0, 1, t + o, n] },
{ type: "Z", values: [] },
];
return (
(r = r.filter(function (e) {
return (
"A" !== e.type || (0 !== e.values[0] && 0 !== e.values[1])
);
})),
e && !0 === e.normalize && (r = S(r)),
r
);
}),
(e.SVGCircleElement.prototype.getPathData = function (e) {
var t = this.cx.baseVal.value,
n = this.cy.baseVal.value,
a = this.r.baseVal.value,
i = [
{ type: "M", values: [t + a, n] },
{ type: "A", values: [a, a, 0, 0, 1, t, n + a] },
{ type: "A", values: [a, a, 0, 0, 1, t - a, n] },
{ type: "A", values: [a, a, 0, 0, 1, t, n - a] },
{ type: "A", values: [a, a, 0, 0, 1, t + a, n] },
{ type: "Z", values: [] },
];
return e && !0 === e.normalize && (i = S(i)), i;
}),
(e.SVGEllipseElement.prototype.getPathData = function (e) {
var t = this.cx.baseVal.value,
n = this.cy.baseVal.value,
a = this.rx.baseVal.value,
i = this.ry.baseVal.value,
o = [
{ type: "M", values: [t + a, n] },
{ type: "A", values: [a, i, 0, 0, 1, t, n + i] },
{ type: "A", values: [a, i, 0, 0, 1, t - a, n] },
{ type: "A", values: [a, i, 0, 0, 1, t, n - i] },
{ type: "A", values: [a, i, 0, 0, 1, t + a, n] },
{ type: "Z", values: [] },
];
return e && !0 === e.normalize && (o = S(o)), o;
}),
(e.SVGLineElement.prototype.getPathData = function () {
return [
{
type: "M",
values: [this.x1.baseVal.value, this.y1.baseVal.value],
},
{
type: "L",
values: [this.x2.baseVal.value, this.y2.baseVal.value],
},
];
}),
(e.SVGPolylineElement.prototype.getPathData = function () {
for (var e = [], t = 0; t < this.points.numberOfItems; t += 1) {
var n = this.points.getItem(t);
e.push({ type: 0 === t ? "M" : "L", values: [n.x, n.y] });
}
return e;
}),
(e.SVGPolygonElement.prototype.getPathData = function () {
for (var e = [], t = 0; t < this.points.numberOfItems; t += 1) {
var n = this.points.getItem(t);
e.push({ type: 0 === t ? "M" : "L", values: [n.x, n.y] });
}
return e.push({ type: "Z", values: [] }), e;
});
})();
},
O = (function (n) {
var a = {};
function i(e) {
if (a[e]) return a[e].exports;
var t = (a[e] = { i: e, l: !1, exports: {} });
return n[e].call(t.exports, t, t.exports, i), (t.l = !0), t.exports;
}
return (
(i.m = n),
(i.c = a),
(i.d = function (e, t, n) {
i.o(e, t) ||
Object.defineProperty(e, t, {
configurable: !1,
enumerable: !0,
get: n,
});
}),
(i.r = function (e) {
Object.defineProperty(e, "__esModule", { value: !0 });
}),
(i.n = function (e) {
var t =
e && e.__esModule
? function () {
return e.default;
}
: function () {
return e;
};
return i.d(t, "a", t), t;
}),
(i.o = function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}),
(i.p = ""),
i((i.s = 0))
);
})([
function (e, t, n) {
n.r(t);
var a = 500,
i = [],
o =
window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (e) {
return setTimeout(e, 1e3 / 60);
},
l =
window.cancelAnimationFrame ||
window.mozCancelAnimationFrame ||
window.webkitCancelAnimationFrame ||
window.msCancelAnimationFrame ||
function (e) {
return clearTimeout(e);
},
r = void 0,
s = Date.now();
function u() {
var t = void 0,
e = void 0;
r && (l.call(window, r), (r = null)),
i.forEach(function (e) {
e.event && (e.listener(e.event), (e.event = null), (t = !0));
}),
t ? ((s = Date.now()), (e = !0)) : Date.now() - s < a && (e = !0),
e && (r = o.call(window, u));
}
function h(n) {
var a = -1;
return (
i.some(function (e, t) {
return e.listener === n && ((a = t), !0);
}),
a
);
}
var p = {
add: function (e) {
var t = void 0;
return -1 === h(e)
? (i.push((t = { listener: e })),
function (e) {
(t.event = e), r || u();
})
: null;
},
remove: function (e) {
var t;
-1 < (t = h(e)) &&
(i.splice(t, 1),
!i.length && r && (l.call(window, r), (r = null)));
},
};
t.default = p;
},
]).default,
Y = {
line_altColor: { iniValue: !1 },
line_color: {},
line_colorTra: { iniValue: !1 },
line_strokeWidth: {},
plug_enabled: { iniValue: !1 },
plug_enabledSE: { hasSE: !0, iniValue: !1 },
plug_plugSE: { hasSE: !0, iniValue: ne },
plug_colorSE: { hasSE: !0 },
plug_colorTraSE: { hasSE: !0, iniValue: !1 },
plug_markerWidthSE: { hasSE: !0 },
plug_markerHeightSE: { hasSE: !0 },
lineOutline_enabled: { iniValue: !1 },
lineOutline_color: {},
lineOutline_colorTra: { iniValue: !1 },
lineOutline_strokeWidth: {},
lineOutline_inStrokeWidth: {},
plugOutline_enabledSE: { hasSE: !0, iniValue: !1 },
plugOutline_plugSE: { hasSE: !0, iniValue: ne },
plugOutline_colorSE: { hasSE: !0 },
plugOutline_colorTraSE: { hasSE: !0, iniValue: !1 },
plugOutline_strokeWidthSE: { hasSE: !0 },
plugOutline_inStrokeWidthSE: { hasSE: !0 },
position_socketXYSE: { hasSE: !0, hasProps: !0 },
position_plugOverheadSE: { hasSE: !0 },
position_path: {},
position_lineStrokeWidth: {},
position_socketGravitySE: { hasSE: !0 },
path_pathData: {},
path_edge: { hasProps: !0 },
viewBox_bBox: { hasProps: !0 },
viewBox_plugBCircleSE: { hasSE: !0 },
lineMask_enabled: { iniValue: !1 },
lineMask_outlineMode: { iniValue: !1 },
lineMask_x: {},
lineMask_y: {},
lineOutlineMask_x: {},
lineOutlineMask_y: {},
maskBGRect_x: {},
maskBGRect_y: {},
capsMaskAnchor_enabledSE: { hasSE: !0, iniValue: !1 },
capsMaskAnchor_pathDataSE: { hasSE: !0 },
capsMaskAnchor_strokeWidthSE: { hasSE: !0 },
capsMaskMarker_enabled: { iniValue: !1 },
capsMaskMarker_enabledSE: { hasSE: !0, iniValue: !1 },
capsMaskMarker_plugSE: { hasSE: !0, iniValue: ne },
capsMaskMarker_markerWidthSE: { hasSE: !0 },
capsMaskMarker_markerHeightSE: { hasSE: !0 },
caps_enabled: { iniValue: !1 },
attach_plugSideLenSE: { hasSE: !0 },
attach_plugBackLenSE: { hasSE: !0 },
},
X = {
show_on: {},
show_effect: {},
show_animOptions: {},
show_animId: {},
show_inAnim: {},
},
q = "fade",
Q = [],
K = {},
J = 0,
$ = {},
ee = 0;
function ce(t, n) {
var e, a;
return (
typeof t !== typeof n ||
(e = k(t) ? "obj" : Array.isArray(t) ? "array" : "") !=
(k(n) ? "obj" : Array.isArray(n) ? "array" : "") ||
("obj" === e
? ce((a = Object.keys(t).sort()), Object.keys(n).sort()) ||
a.some(function (e) {
return ce(t[e], n[e]);
})
: "array" === e
? t.length !== n.length ||
t.some(function (e, t) {
return ce(e, n[t]);
})
: t !== n)
);
}
function de(n) {
return n
? k(n)
? Object.keys(n).reduce(function (e, t) {
return (e[t] = de(n[t])), e;
}, {})
: Array.isArray(n)
? n.map(de)
: n
: n;
}
function fe(e) {
var t,
n,
a,
i = 1,
o = (e = (e + "").trim());
function l(e) {
var t = 1,
n = u.exec(e);
return (
n &&
((t = parseFloat(n[1])),
n[2]
? (t = 0 <= t && t <= 100 ? t / 100 : 1)
: (t < 0 || 1 < t) && (t = 1)),
t
);
}
return (
(t = /^(rgba|hsla|hwb|gray|device\-cmyk)\s*\(([\s\S]+)\)$/i.exec(e))
? ((n = t[1].toLowerCase()),
(a = t[2].trim().split(/\s*,\s*/)),
"rgba" === n && 4 === a.length
? ((i = l(a[3])), (o = "rgb(" + a.slice(0, 3).join(", ") + ")"))
: "hsla" === n && 4 === a.length
? ((i = l(a[3])), (o = "hsl(" + a.slice(0, 3).join(", ") + ")"))
: "hwb" === n && 4 === a.length
? ((i = l(a[3])), (o = "hwb(" + a.slice(0, 3).join(", ") + ")"))
: "gray" === n && 2 === a.length
? ((i = l(a[1])), (o = "gray(" + a[0] + ")"))
: "device-cmyk" === n &&
5 <= a.length &&
((i = l(a[4])),
(o = "device-cmyk(" + a.slice(0, 4).join(", ") + ")")))
: (t = /^\#(?:([\da-f]{6})([\da-f]{2})|([\da-f]{3})([\da-f]))$/i.exec(
e
))
? t[1]
? ((i = parseInt(t[2], 16) / 255), (o = "#" + t[1]))
: ((i = parseInt(t[4] + t[4], 16) / 255), (o = "#" + t[3]))
: "transparent" === e.toLocaleLowerCase() && (i = 0),
[i, o]
);
}
function ye(e) {
return !(
!e ||
e.nodeType !== Node.ELEMENT_NODE ||
"function" !== typeof e.getBoundingClientRect
);
}
function Se(e, t) {
var n,
a,
i,
o,
l = {};
if (!(i = e.ownerDocument))
return (
console.error("Cannot get document that contains the element."), null
);
if (e.compareDocumentPosition(i) & Node.DOCUMENT_POSITION_DISCONNECTED)
return console.error("A disconnected element was passed."), null;
for (a in (n = e.getBoundingClientRect())) l[a] = n[a];
if (!t) {
if (!(o = i.defaultView))
return (
console.error("Cannot get window that contains the element."), null
);
(l.left += o.pageXOffset),
(l.right += o.pageXOffset),
(l.top += o.pageYOffset),
(l.bottom += o.pageYOffset);
}
return l;
}
function me(e, t) {
var n,
a,
i = [],
o = e;
for (t = t || window; ; ) {
if (!(n = o.ownerDocument))
return (
console.error("Cannot get document that contains the element."), null
);
if (!(a = n.defaultView))
return (
console.error("Cannot get window that contains the element."), null
);
if (a === t) break;
if (!(o = a.frameElement))
return console.error("`baseWindow` was not found."), null;
i.unshift(o);
}
return i;
}
function ge(e, t) {
var n,
a,
o = 0,
l = 0;
return (a = me(e, (t = t || window)))
? a.length
? (a.forEach(function (e, t) {
var n,
a,
i = Se(e, 0 < t);
(o += i.left),
(l += i.top),
(a = (n = e).ownerDocument.defaultView.getComputedStyle(n, "")),
(i = {
left: n.clientLeft + parseFloat(a.paddingLeft),
top: n.clientTop + parseFloat(a.paddingTop),
}),
(o += i.left),
(l += i.top);
}),
((n = Se(e, !0)).left += o),
(n.right += o),
(n.top += l),
(n.bottom += l),
n)
: Se(e)
: null;
}
function _e(e, t) {
var n = e.x - t.x,
a = e.y - t.y;
return Math.sqrt(n * n + a * a);
}
function ve(e, t, n) {
var a = t.x - e.x,
i = t.y - e.y;
return {
x: e.x + a * n,
y: e.y + i * n,
angle: Math.atan2(i, a) / (Math.PI / 180),
};
}
function Ee(e, t, n) {
var a = Math.atan2(e.y - t.y, t.x - e.x);
return { x: t.x + Math.cos(a) * n, y: t.y + Math.sin(a) * n * -1 };
}
function xe(e, t, n, a, i) {
var o = i * i,
l = o * i,
r = 1 - i,
s = r * r,
u = s * r,
h = u * e.x + 3 * s * i * t.x + 3 * r * o * n.x + l * a.x,
p = u * e.y + 3 * s * i * t.y + 3 * r * o * n.y + l * a.y,
c = e.x + 2 * i * (t.x - e.x) + o * (n.x - 2 * t.x + e.x),
d = e.y + 2 * i * (t.y - e.y) + o * (n.y - 2 * t.y + e.y),
f = t.x + 2 * i * (n.x - t.x) + o * (a.x - 2 * n.x + t.x),
y = t.y + 2 * i * (n.y - t.y) + o * (a.y - 2 * n.y + t.y),
S = r * e.x + i * t.x,
m = r * e.y + i * t.y,
g = r * n.x + i * a.x,
_ = r * n.y + i * a.y,
v = 90 - (180 * Math.atan2(c - f, d - y)) / Math.PI;
return {
x: h,
y: p,
fromP2: { x: c, y: d },
toP1: { x: f, y: y },
fromP1: { x: S, y: m },
toP2: { x: g, y: _ },
angle: (v += 180 < v ? -180 : 180),
};
}
function be(n, a, i, o, e) {
function l(e, t, n, a, i) {
return (
e * (e * (-3 * t + 9 * n - 9 * a + 3 * i) + 6 * t - 12 * n + 6 * a) -
3 * t +
3 * n
);
}
var r,
s,
u,
h,
p,
c = [
0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069,
0.1069, 0.0472, 0.0472,
],
d = 0;
return (
(r = (e = null == e || 1 < e ? 1 : e < 0 ? 0 : e) / 2),
[
-0.1252, 0.1252, -0.3678, 0.3678, -0.5873, 0.5873, -0.7699, 0.7699,
-0.9041, 0.9041, -0.9816, 0.9816,
].forEach(function (e, t) {
(u = l((s = r * e + r), n.x, a.x, i.x, o.x)),
(h = l(s, n.y, a.y, i.y, o.y)),
(p = u * u + h * h),
(d += c[t] * Math.sqrt(p));
}),
r * d
);
}
function ke(e, t, n, a, i) {
for (
var o, l = 0.5, r = 1 - l;
(o = be(e, t, n, a, r)), !(Math.abs(o - i) <= 0.01);
)
r += (o < i ? 1 : -1) * (l /= 2);
return r;
}
function we(e, n) {
var a;
return (
e.forEach(function (e) {
var t = n
? e.map(function (e) {
var t = { x: e.x, y: e.y };
return n(t), t;
})
: e;
a || (a = [{ type: "M", values: [t[0].x, t[0].y] }]),
a.push(
t.length
? 2 === t.length
? { type: "L", values: [t[1].x, t[1].y] }
: {
type: "C",
values: [t[1].x, t[1].y, t[2].x, t[2].y, t[3].x, t[3].y],
}
: { type: "Z", values: [] }
);
}),
a
);
}
function Oe(e) {
var n = [],
a = 0;
return (
e.forEach(function (e) {
var t = (2 === e.length ? _e : be).apply(null, e);
n.push(t), (a += t);
}),
{ segsLen: n, lenAll: a }
);
}
function Me(e, a) {
return (
null == e ||
null == a ||
e.length !== a.length ||
e.some(function (e, t) {
var n = a[t];
return (
e.type !== n.type ||
e.values.some(function (e, t) {
return e !== n.values[t];
})
);
})
);
}
function Ie(e, t, n) {
e.events[t]
? e.events[t].indexOf(n) < 0 && e.events[t].push(n)
: (e.events[t] = [n]);
}
function Ce(e, t, n) {
var a;
e.events[t] &&
-1 < (a = e.events[t].indexOf(n)) &&
e.events[t].splice(a, 1);
}
function Le(e) {
t && clearTimeout(t),
Q.push(e),
(t = setTimeout(function () {
Q.forEach(function (e) {
e();
}),
(Q = []);
}, 0));
}
function Ae(e, t) {
e.reflowTargets.indexOf(t) < 0 && e.reflowTargets.push(t);
}
function Ve(e) {
e.reflowTargets.forEach(function (e) {
var n;
(n = e),
setTimeout(function () {
var e = n.parentNode,
t = n.nextSibling;
e.insertBefore(e.removeChild(n), t);
}, 0);
}),
(e.reflowTargets = []);
}
function Pe(e, t, n, a, i, o, l) {
var r, s, u;
"auto-start-reverse" === n
? ("boolean" !== typeof h &&
(t.setAttribute("orient", "auto-start-reverse"),
(h =
t.orientType.baseVal ===
SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN)),
h
? t.setAttribute("orient", n)
: ((r = i.createSVGTransform()).setRotate(180, 0, 0),
o.transform.baseVal.appendItem(r),
t.setAttribute("orient", "auto"),
(u = !0)))
: (t.setAttribute("orient", n), !1 === h && o.transform.baseVal.clear()),
(s = t.viewBox.baseVal),
u
? ((s.x = -a.right), (s.y = -a.bottom))
: ((s.x = a.left), (s.y = a.top)),
(s.width = a.width),
(s.height = a.height),
le && Ae(e, l);
}
function Ne(e, t) {
return {
prop: e ? "markerEnd" : "markerStart",
orient: t ? (t.noRotate ? "0" : e ? "auto" : "auto-start-reverse") : null,
};
}
function Te(n, a) {
Object.keys(a).forEach(function (e) {
var t = a[e];
n[e] =
null != t.iniValue
? t.hasSE
? [t.iniValue, t.iniValue]
: t.iniValue
: t.hasSE
? t.hasProps
? [{}, {}]
: []
: t.hasProps
? {}
: null;
});
}
function We(t, e, n, a, i) {
return (
a !== e[n] &&
((e[n] = a),
i &&
i.forEach(function (e) {
e(t, a, n);
}),
!0)
);
}
function Be(e) {
function t(e, t) {
return e + parseFloat(t);
}
var n = e.document,
a = e.getComputedStyle(n.documentElement, ""),
i = e.getComputedStyle(n.body, ""),
o = { x: 0, y: 0 };
return (
"static" !== i.position
? ((o.x -= [
a.marginLeft,
a.borderLeftWidth,
a.paddingLeft,
i.marginLeft,
i.borderLeftWidth,
].reduce(t, 0)),
(o.y -= [
a.marginTop,
a.borderTopWidth,
a.paddingTop,
i.marginTop,
i.borderTopWidth,
].reduce(t, 0)))
: "static" !== a.position &&
((o.x -= [a.marginLeft, a.borderLeftWidth].reduce(t, 0)),
(o.y -= [a.marginTop, a.borderTopWidth].reduce(t, 0))),
o
);
}
function Re(e) {
var t,
n = e.document;
n.getElementById(r) ||
((t = new e.DOMParser().parseFromString(s, "image/svg+xml")),
n.body.appendChild(t.documentElement),
d(e));
}
function Fe(u) {
var _,
f,
v,
e,
n,
a,
i,
y,
s,
h,
p,
t,
o,
l,
r,
c,
d,
S,
m,
g = u.options,
E = u.curStats,
x = u.aplStats,
b = E.position_socketXYSE,
k = !1;
function w(e, t) {
var n =
t === M
? { x: e.left + e.width / 2, y: e.top }
: t === I
? { x: e.right, y: e.top + e.height / 2 }
: t === C
? { x: e.left + e.width / 2, y: e.bottom }
: { x: e.left, y: e.top + e.height / 2 };
return (n.socketId = t), n;
}
function O(e) {
return { x: e.x, y: e.y };
}
if (
((E.position_path = g.path),
(E.position_lineStrokeWidth = E.line_strokeWidth),
(E.position_socketGravitySE = _ = de(g.socketGravitySE)),
(f = [0, 1].map(function (e) {
var t,
n,
a,
i = g.anchorSE[e],
o = u.optionIsAttach.anchorSE[e],
l = !1 !== o ? $[i._id] : null,
r =
!1 !== o && l.conf.getStrokeWidth ? l.conf.getStrokeWidth(l, u) : 0,
s =
!1 !== o && l.conf.getBBoxNest
? l.conf.getBBoxNest(l, u, r)
: ge(i, u.baseWindow);
return (
(E.capsMaskAnchor_pathDataSE[e] =
!1 !== o && l.conf.getPathData
? l.conf.getPathData(l, u, r)
: ((n = null != (t = s).right ? t.right : t.left + t.width),
(a = null != t.bottom ? t.bottom : t.top + t.height),
[
{ type: "M", values: [t.left, t.top] },
{ type: "L", values: [n, t.top] },
{ type: "L", values: [n, a] },
{ type: "L", values: [t.left, a] },
{ type: "Z", values: [] },
])),
(E.capsMaskAnchor_strokeWidthSE[e] = r),
s
);
})),
(i = -1),
g.socketSE[0] && g.socketSE[1]
? ((b[0] = w(f[0], g.socketSE[0])), (b[1] = w(f[1], g.socketSE[1])))
: (g.socketSE[0] || g.socketSE[1]
? (g.socketSE[0] ? ((n = 0), (a = 1)) : ((n = 1), (a = 0)),
(b[n] = w(f[n], g.socketSE[n])),
(e = W.map(function (e) {
return w(f[a], e);
})).forEach(function (e) {
var t = _e(e, b[n]);
(t < i || -1 === i) && ((b[a] = e), (i = t));
}))
: ((e = W.map(function (e) {
return w(f[1], e);
})),
W.map(function (e) {
return w(f[0], e);
}).forEach(function (n) {
e.forEach(function (e) {
var t = _e(n, e);
(t < i || -1 === i) && ((b[0] = n), (b[1] = e), (i = t));
});
})),
[0, 1].forEach(function (e) {
var t, n;
g.socketSE[e] ||
(f[e].width || f[e].height
? f[e].width || (b[e].socketId !== L && b[e].socketId !== I)
? f[e].height ||
(b[e].socketId !== M && b[e].socketId !== C) ||
(b[e].socketId = 0 <= b[e ? 0 : 1].y - f[e].top ? C : M)
: (b[e].socketId = 0 <= b[e ? 0 : 1].x - f[e].left ? I : L)
: ((t = b[e ? 0 : 1].x - f[e].left),
(n = b[e ? 0 : 1].y - f[e].top),
(b[e].socketId =
Math.abs(t) >= Math.abs(n)
? 0 <= t
? I
: L
: 0 <= n
? C
: M)));
})),
E.position_path !== x.position_path ||
E.position_lineStrokeWidth !== x.position_lineStrokeWidth ||
[0, 1].some(function (e) {
return (
E.position_plugOverheadSE[e] !== x.position_plugOverheadSE[e] ||
((i = b[e]),
(o = x.position_socketXYSE[e]),
i.x !== o.x || i.y !== o.y || i.socketId !== o.socketId) ||
((t = _[e]),
(n = x.position_socketGravitySE[e]),
(a = null == t ? "auto" : Array.isArray(t) ? "array" : "number") !==
(null == n ? "auto" : Array.isArray(n) ? "array" : "number") ||
("array" === a ? t[0] !== n[0] || t[1] !== n[1] : t !== n))
);
var t, n, a, i, o;
}))
) {
switch (
((u.pathList.baseVal = v = []),
(u.pathList.animVal = null),
E.position_path)
) {
case A:
v.push([O(b[0]), O(b[1])]);
break;
case V:
(t =
("number" === typeof _[0] && 0 < _[0]) ||
("number" === typeof _[1] && 0 < _[1])),
(o = Z * (t ? -1 : 1)),
(l = Math.atan2(b[1].y - b[0].y, b[1].x - b[0].x)),
(r = -l + o),
(c = Math.PI - l - o),
(d = (_e(b[0], b[1]) / Math.sqrt(2)) * U),
(S = {
x: b[0].x + Math.cos(r) * d,
y: b[0].y + Math.sin(r) * d * -1,
}),
(m = {
x: b[1].x + Math.cos(c) * d,
y: b[1].y + Math.sin(c) * d * -1,
}),
v.push([O(b[0]), S, m, O(b[1])]);
break;
case P:
case N:
(s = [_[0], E.position_path === N ? 0 : _[1]]),
(h = []),
(p = []),
b.forEach(function (e, t) {
var n,
a,
i,
o,
l,
r = s[t];
Array.isArray(r)
? (n = { x: r[0], y: r[1] })
: "number" === typeof r
? (n =
e.socketId === M
? { x: 0, y: -r }
: e.socketId === I
? { x: r, y: 0 }
: e.socketId === C
? { x: 0, y: r }
: { x: -r, y: 0 })
: ((a = b[t ? 0 : 1]),
(o =
0 < (i = E.position_plugOverheadSE[t])
? G + (D < i ? (i - D) * z : 0)
: B +
(E.position_lineStrokeWidth > R
? (E.position_lineStrokeWidth - R) * F
: 0)),
e.socketId === M
? ((l = (e.y - a.y) / 2) < o && (l = o),
(n = { x: 0, y: -l }))
: e.socketId === I
? ((l = (a.x - e.x) / 2) < o && (l = o),
(n = { x: l, y: 0 }))
: e.socketId === C
? ((l = (a.y - e.y) / 2) < o && (l = o),
(n = { x: 0, y: l }))
: ((l = (e.x - a.x) / 2) < o && (l = o),
(n = { x: -l, y: 0 }))),
(h[t] = e.x + n.x),
(p[t] = e.y + n.y);
}),
v.push([
O(b[0]),
{ x: h[0], y: p[0] },
{ x: h[1], y: p[1] },
O(b[1]),
]);
break;
case T:
!(function () {
var a,
o = 1,
l = 2,
r = 3,
s = 4,
u = [[], []],
h = [];
function p(e) {
return e === o ? r : e === l ? s : e === r ? o : l;
}
function c(e) {
return e === l || e === s ? "x" : "y";
}
function d(e, t, n) {
var a = { x: e.x, y: e.y };
if (n) {
if (n === p(e.dirId)) throw new Error("Invalid dirId: " + n);
a.dirId = n;
} else a.dirId = e.dirId;
return (
a.dirId === o
? (a.y -= t)
: a.dirId === l
? (a.x += t)
: a.dirId === r
? (a.y += t)
: (a.x -= t),
a
);
}
function f(e, t) {
return t.dirId === o
? e.y <= t.y
: t.dirId === l
? e.x >= t.x
: t.dirId === r
? e.y >= t.y
: e.x <= t.x;
}
function y(e, t) {
return t.dirId === o || t.dirId === r ? e.x === t.x : e.y === t.y;
}
function S(e) {
return e[0]
? { contain: 0, notContain: 1 }
: { contain: 1, notContain: 0 };
}
function m(e, t, n) {
return Math.abs(t[n] - e[n]);
}
function g(e, t, n) {
return "x" === n ? (e.x < t.x ? l : s) : e.y < t.y ? r : o;
}
function e() {
var e,
t,
a,
i,
n = [f(h[1], h[0]), f(h[0], h[1])],
o = [c(h[0].dirId), c(h[1].dirId)];
if (o[0] === o[1]) {
if (n[0] && n[1])
return (
y(h[1], h[0]) ||
(h[0][o[0]] === h[1][o[1]]
? (u[0].push(h[0]), u[1].push(h[1]))
: ((e = h[0][o[0]] + (h[1][o[1]] - h[0][o[0]]) / 2),
u[0].push(d(h[0], Math.abs(e - h[0][o[0]]))),
u[1].push(d(h[1], Math.abs(e - h[1][o[1]]))))),
!1
);
n[0] !== n[1]
? ((t = S(n)),
(a = m(h[t.notContain], h[t.contain], o[t.notContain])) <
H && (h[t.notContain] = d(h[t.notContain], H - a)),
u[t.notContain].push(h[t.notContain]),
(h[t.notContain] = d(
h[t.notContain],
H,
y(h[t.contain], h[t.notContain])
? "x" === o[t.notContain]
? r
: l
: g(
h[t.notContain],
h[t.contain],
"x" === o[t.notContain] ? "y" : "x"
)
)))
: ((a = m(h[0], h[1], "x" === o[0] ? "y" : "x")),
u.forEach(function (e, t) {
var n = 0 === t ? 1 : 0;
e.push(h[t]),
(h[t] = d(
h[t],
H,
2 * H <= a
? g(h[t], h[n], "x" === o[t] ? "y" : "x")
: "x" === o[t]
? r
: l
));
}));
} else {
if (n[0] && n[1])
return (
y(h[1], h[0])
? u[1].push(h[1])
: y(h[0], h[1])
? u[0].push(h[0])
: u[0].push(
"x" === o[0]
? { x: h[1].x, y: h[0].y }
: { x: h[0].x, y: h[1].y }
),
!1
);
n[0] !== n[1]
? ((t = S(n)),
u[t.notContain].push(h[t.notContain]),
(h[t.notContain] = d(
h[t.notContain],
H,
m(h[t.notContain], h[t.contain], o[t.contain]) >= H
? g(h[t.notContain], h[t.contain], o[t.contain])
: h[t.contain].dirId
)))
: ((i = [
{ x: h[0].x, y: h[0].y },
{ x: h[1].x, y: h[1].y },
]),
u.forEach(function (e, t) {
var n = 0 === t ? 1 : 0,
a = m(i[t], i[n], o[t]);
a < H && (h[t] = d(h[t], H - a)),
e.push(h[t]),
(h[t] = d(h[t], H, g(h[t], h[n], o[n])));
}));
}
return !0;
}
for (
b.forEach(function (e, t) {
var n,
a = O(e),
i = _[t];
(n = Array.isArray(i)
? i[0] < 0
? [s, -i[0]]
: 0 < i[0]
? [l, i[0]]
: i[1] < 0
? [o, -i[1]]
: 0 < i[1]
? [r, i[1]]
: [e.socketId, 0]
: "number" !== typeof i
? [e.socketId, H]
: 0 <= i
? [e.socketId, i]
: [p(e.socketId), -i]),
(a.dirId = n[0]),
(i = n[1]),
u[t].push(a),
(h[t] = d(a, i));
});
e();
);
u[1].reverse(),
u[0].concat(u[1]).forEach(function (e, t) {
var n = { x: e.x, y: e.y };
0 < t && v.push([a, n]), (a = n);
});
})();
}
(y = []),
E.position_plugOverheadSE.forEach(function (e, t) {
var n,
a,
i,
o,
l,
r,
s,
u,
h,
p,
c,
d = !t;
0 < e
? 2 === (n = v[(a = d ? 0 : v.length - 1)]).length
? ((y[a] = y[a] || _e.apply(null, n)),
y[a] > j &&
(y[a] - e < j && (e = y[a] - j),
(i = ve(n[0], n[1], (d ? e : y[a] - e) / y[a])),
(v[a] = d ? [i, n[1]] : [n[0], i]),
(y[a] -= e)))
: ((y[a] = y[a] || be.apply(null, n)),
y[a] > j &&
(y[a] - e < j && (e = y[a] - j),
(i = xe(
n[0],
n[1],
n[2],
n[3],
ke(n[0], n[1], n[2], n[3], d ? e : y[a] - e)
)),
d ? ((o = n[0]), (l = i.toP1)) : ((o = n[3]), (l = i.fromP2)),
(r = Math.atan2(o.y - i.y, i.x - o.x)),
(s = _e(i, l)),
(i.x = o.x + Math.cos(r) * e),
(i.y = o.y + Math.sin(r) * e * -1),
(l.x = i.x + Math.cos(r) * s),
(l.y = i.y + Math.sin(r) * s * -1),
(v[a] = d
? [i, i.toP1, i.toP2, n[3]]
: [n[0], i.fromP1, i.fromP2, i]),
(y[a] = null)))
: e < 0 &&
((n = v[(a = d ? 0 : v.length - 1)]),
(u = b[t].socketId),
(h = u === L || u === I ? "x" : "y"),
e < (c = -f[t]["x" === h ? "width" : "height"]) && (e = c),
(p = e * (u === L || u === M ? -1 : 1)),
2 === n.length
? (n[d ? 0 : n.length - 1][h] += p)
: (d ? [0, 1] : [n.length - 2, n.length - 1]).forEach(function (
e
) {
n[e][h] += p;
}),
(y[a] = null));
}),
(x.position_socketXYSE = de(b)),
(x.position_plugOverheadSE = de(E.position_plugOverheadSE)),
(x.position_path = E.position_path),
(x.position_lineStrokeWidth = E.position_lineStrokeWidth),
(x.position_socketGravitySE = de(_)),
(k = !0),
u.events.apl_position &&
u.events.apl_position.forEach(function (e) {
e(u, v);
});
}
return k;
}
function Ge(t, n) {
n !== t.isShown &&
(!!n != !!t.isShown && (t.svg.style.visibility = n ? "" : "hidden"),
(t.isShown = n),
t.events &&
t.events.svgShow &&
t.events.svgShow.forEach(function (e) {
e(t, n);
}));
}
function De(e, t) {
var n,
a,
i,
o,
l,
h,
p,
c,
d,
f,
r,
s,
u,
y,
S,
m,
g,
_,
v,
E,
x,
b,
k,
w,
O,
M,
I,
C,
L,
A,
V,
P,
N,
T,
W,
B,
R,
F,
G,
D,
z,
j,
H,
U,
Z,
Y,
X,
q,
Q,
K,
J,
$,
ee = {};
t.line &&
(ee.line =
((a = (n = e).options),
(i = n.curStats),
(o = n.events),
(l = !1),
(l = We(n, i, "line_color", a.lineColor, o.cur_line_color) || l),
(l = We(n, i, "line_colorTra", fe(i.line_color)[0] < 1) || l),
(l =
We(n, i, "line_strokeWidth", a.lineSize, o.cur_line_strokeWidth) ||
l))),
(t.plug || ee.line) &&
(ee.plug =
((p = (h = e).options),
(c = h.curStats),
(d = h.events),
(f = !1),
[0, 1].forEach(function (e) {
var t,
n,
a,
i,
o,
l,
r,
s,
u = p.plugSE[e];
(f = We(h, c.plug_enabledSE, e, u !== ne) || f),
(f = We(h, c.plug_plugSE, e, u) || f),
(f =
We(
h,
c.plug_colorSE,
e,
(s = p.plugColorSE[e] || c.line_color),
d.cur_plug_colorSE
) || f),
(f = We(h, c.plug_colorTraSE, e, fe(s)[0] < 1) || f),
u !== ne &&
((i = n = (t = ae[ie[u]]).widthR * p.plugSizeSE[e]),
(o = a = t.heightR * p.plugSizeSE[e]),
ue && ((i *= c.line_strokeWidth), (o *= c.line_strokeWidth)),
(f = We(h, c.plug_markerWidthSE, e, i) || f),
(f = We(h, c.plug_markerHeightSE, e, o) || f),
(c.capsMaskMarker_markerWidthSE[e] = n),
(c.capsMaskMarker_markerHeightSE[e] = a)),
(c.plugOutline_plugSE[e] = c.capsMaskMarker_plugSE[e] = u),
c.plug_enabledSE[e]
? ((s = (c.line_strokeWidth / pe.lineSize) * p.plugSizeSE[e]),
(c.position_plugOverheadSE[e] = t.overhead * s),
(c.viewBox_plugBCircleSE[e] = t.bCircle * s),
(l = t.sideLen * s),
(r = t.backLen * s))
: ((c.position_plugOverheadSE[e] = -c.line_strokeWidth / 2),
(c.viewBox_plugBCircleSE[e] = l = r = 0)),
We(h, c.attach_plugSideLenSE, e, l, d.cur_attach_plugSideLenSE),
We(h, c.attach_plugBackLenSE, e, r, d.cur_attach_plugBackLenSE),
(c.capsMaskAnchor_enabledSE[e] = !c.plug_enabledSE[e]);
}),
(f =
We(
h,
c,
"plug_enabled",
c.plug_enabledSE[0] || c.plug_enabledSE[1]
) || f))),
(t.lineOutline || ee.line) &&
(ee.lineOutline =
((u = (r = e).options),
(y = r.curStats),
(S = !1),
(S = We(r, y, "lineOutline_enabled", u.lineOutlineEnabled) || S),
(S = We(r, y, "lineOutline_color", u.lineOutlineColor) || S),
(S =
We(r, y, "lineOutline_colorTra", fe(y.lineOutline_color)[0] < 1) ||
S),
(s = y.line_strokeWidth * u.lineOutlineSize),
(S =
We(r, y, "lineOutline_strokeWidth", y.line_strokeWidth - 2 * s) ||
S),
(S =
We(
r,
y,
"lineOutline_inStrokeWidth",
y.lineOutline_colorTra
? y.lineOutline_strokeWidth + 2 * he
: y.line_strokeWidth - s
) || S))),
(t.plugOutline || ee.line || ee.plug || ee.lineOutline) &&
(ee.plugOutline =
((g = (m = e).options),
(_ = m.curStats),
(v = !1),
[0, 1].forEach(function (e) {
var t,
n = _.plugOutline_plugSE[e],
a = n !== ne ? ae[ie[n]] : null;
(v =
We(
m,
_.plugOutline_enabledSE,
e,
g.plugOutlineEnabledSE[e] &&
_.plug_enabled &&
_.plug_enabledSE[e] &&
!!a &&
!!a.outlineBase
) || v),
(v =
We(
m,
_.plugOutline_colorSE,
e,
(t = g.plugOutlineColorSE[e] || _.lineOutline_color)
) || v),
(v = We(m, _.plugOutline_colorTraSE, e, fe(t)[0] < 1) || v),
a &&
a.outlineBase &&
((t = g.plugOutlineSizeSE[e]) > a.outlineMax &&
(t = a.outlineMax),
(t *= 2 * a.outlineBase),
(v = We(m, _.plugOutline_strokeWidthSE, e, t) || v),
(v =
We(
m,
_.plugOutline_inStrokeWidthSE,
e,
_.plugOutline_colorTraSE[e]
? t -
(he /
(_.line_strokeWidth / pe.lineSize) /
g.plugSizeSE[e]) *
2
: t / 2
) || v));
}),
v)),
(t.faces || ee.line || ee.plug || ee.lineOutline || ee.plugOutline) &&
(ee.faces =
((b = (E = e).curStats),
(k = E.aplStats),
(w = E.events),
(O = !1),
!b.line_altColor &&
We(E, k, "line_color", (x = b.line_color), w.apl_line_color) &&
((E.lineFace.style.stroke = x), (O = !0)),
We(
E,
k,
"line_strokeWidth",
(x = b.line_strokeWidth),
w.apl_line_strokeWidth
) &&
((E.lineShape.style.strokeWidth = x + "px"),
(O = !0),
(re || le) &&
(Ae(E, E.lineShape),
le && (Ae(E, E.lineFace), Ae(E, E.lineMaskCaps)))),
We(
E,
k,
"lineOutline_enabled",
(x = b.lineOutline_enabled),
w.apl_lineOutline_enabled
) &&
((E.lineOutlineFace.style.display = x ? "inline" : "none"),
(O = !0)),
b.lineOutline_enabled &&
(We(
E,
k,
"lineOutline_color",
(x = b.lineOutline_color),
w.apl_lineOutline_color
) && ((E.lineOutlineFace.style.stroke = x), (O = !0)),
We(
E,
k,
"lineOutline_strokeWidth",
(x = b.lineOutline_strokeWidth),
w.apl_lineOutline_strokeWidth
) &&
((E.lineOutlineMaskShape.style.strokeWidth = x + "px"),
(O = !0),
le && (Ae(E, E.lineOutlineMaskCaps), Ae(E, E.lineOutlineFace))),
We(
E,
k,
"lineOutline_inStrokeWidth",
(x = b.lineOutline_inStrokeWidth),
w.apl_lineOutline_inStrokeWidth
) &&
((E.lineMaskShape.style.strokeWidth = x + "px"),
(O = !0),
le && (Ae(E, E.lineOutlineMaskCaps), Ae(E, E.lineOutlineFace)))),
We(E, k, "plug_enabled", (x = b.plug_enabled), w.apl_plug_enabled) &&
((E.plugsFace.style.display = x ? "inline" : "none"), (O = !0)),
b.plug_enabled &&
[0, 1].forEach(function (n) {
var e = b.plug_plugSE[n],
t = e !== ne ? ae[ie[e]] : null,
a = Ne(n, t);
We(
E,
k.plug_enabledSE,
n,
(x = b.plug_enabledSE[n]),
w.apl_plug_enabledSE
) &&
((E.plugsFace.style[a.prop] = x
? "url(#" + E.plugMarkerIdSE[n] + ")"
: "none"),
(O = !0)),
b.plug_enabledSE[n] &&
(We(E, k.plug_plugSE, n, e, w.apl_plug_plugSE) &&
((E.plugFaceSE[n].href.baseVal = "#" + t.elmId),
Pe(
E,
E.plugMarkerSE[n],
a.orient,
t.bBox,
E.svg,
E.plugMarkerShapeSE[n],
E.plugsFace
),
(O = !0),
re && Ae(E, E.plugsFace)),
We(
E,
k.plug_colorSE,
n,
(x = b.plug_colorSE[n]),
w.apl_plug_colorSE
) &&
((E.plugFaceSE[n].style.fill = x),
(O = !0),
(se || ue || le) &&
!b.line_colorTra &&
Ae(E, le ? E.lineMaskCaps : E.capsMaskLine)),
["markerWidth", "markerHeight"].forEach(function (e) {
var t = "plug_" + e + "SE";
We(E, k[t], n, (x = b[t][n]), w["apl_" + t]) &&
((E.plugMarkerSE[n][e].baseVal.value = x), (O = !0));
}),
We(
E,
k.plugOutline_enabledSE,
n,
(x = b.plugOutline_enabledSE[n]),
w.apl_plugOutline_enabledSE
) &&
(x
? ((E.plugFaceSE[n].style.mask =
"url(#" + E.plugMaskIdSE[n] + ")"),
(E.plugOutlineFaceSE[n].style.display = "inline"))
: ((E.plugFaceSE[n].style.mask = "none"),
(E.plugOutlineFaceSE[n].style.display = "none")),
(O = !0)),
b.plugOutline_enabledSE[n] &&
(We(
E,
k.plugOutline_plugSE,
n,
e,
w.apl_plugOutline_plugSE
) &&
((E.plugOutlineFaceSE[n].href.baseVal =
E.plugMaskShapeSE[n].href.baseVal =
E.plugOutlineMaskShapeSE[n].href.baseVal =
"#" + t.elmId),
[E.plugMaskSE[n], E.plugOutlineMaskSE[n]].forEach(
function (e) {
(e.x.baseVal.value = t.bBox.left),
(e.y.baseVal.value = t.bBox.top),
(e.width.baseVal.value = t.bBox.width),
(e.height.baseVal.value = t.bBox.height);
}
),
(O = !0)),
We(
E,
k.plugOutline_colorSE,
n,
(x = b.plugOutline_colorSE[n]),
w.apl_plugOutline_colorSE
) &&
((E.plugOutlineFaceSE[n].style.fill = x),
(O = !0),
le &&
(Ae(E, E.lineMaskCaps), Ae(E, E.lineOutlineMaskCaps))),
We(
E,
k.plugOutline_strokeWidthSE,
n,
(x = b.plugOutline_strokeWidthSE[n]),
w.apl_plugOutline_strokeWidthSE
) &&
((E.plugOutlineMaskShapeSE[n].style.strokeWidth =
x + "px"),
(O = !0)),
We(
E,
k.plugOutline_inStrokeWidthSE,
n,
(x = b.plugOutline_inStrokeWidthSE[n]),
w.apl_plugOutline_inStrokeWidthSE
) &&
((E.plugMaskShapeSE[n].style.strokeWidth = x + "px"),
(O = !0))));
}),
O)),
(t.position || ee.line || ee.plug) && (ee.position = Fe(e)),
(t.path || ee.position) &&
(ee.path =
((C = (M = e).curStats),
(L = M.aplStats),
(A = M.pathList.animVal || M.pathList.baseVal),
(V = C.path_edge),
(P = !1),
A &&
((V.x1 = V.x2 = A[0][0].x),
(V.y1 = V.y2 = A[0][0].y),
(C.path_pathData = I =
we(A, function (e) {
e.x < V.x1 && (V.x1 = e.x),
e.y < V.y1 && (V.y1 = e.y),
e.x > V.x2 && (V.x2 = e.x),
e.y > V.y2 && (V.y2 = e.y);
})),
Me(I, L.path_pathData) &&
(M.linePath.setPathData(I),
(L.path_pathData = I),
(P = !0),
le
? (Ae(M, M.plugsFace), Ae(M, M.lineMaskCaps))
: re && Ae(M, M.linePath),
M.events.apl_path &&
M.events.apl_path.forEach(function (e) {
e(M, I);
}))),
P)),
(ee.viewBox =
((B = (N = e).curStats),
(R = N.aplStats),
(F = B.path_edge),
(G = B.viewBox_bBox),
(D = R.viewBox_bBox),
(z = N.svg.viewBox.baseVal),
(j = N.svg.style),
(H = !1),
(T = Math.max(
B.line_strokeWidth / 2,
B.viewBox_plugBCircleSE[0] || 0,
B.viewBox_plugBCircleSE[1] || 0
)),
(W = { x1: F.x1 - T, y1: F.y1 - T, x2: F.x2 + T, y2: F.y2 + T }),
N.events.new_edge4viewBox &&
N.events.new_edge4viewBox.forEach(function (e) {
e(N, W);
}),
(G.x = B.lineMask_x = B.lineOutlineMask_x = B.maskBGRect_x = W.x1),
(G.y = B.lineMask_y = B.lineOutlineMask_y = B.maskBGRect_y = W.y1),
(G.width = W.x2 - W.x1),
(G.height = W.y2 - W.y1),
["x", "y", "width", "height"].forEach(function (e) {
var t;
(t = G[e]) !== D[e] &&
((z[e] = D[e] = t),
(j[oe[e]] =
t + ("x" === e || "y" === e ? N.bodyOffset[e] : 0) + "px"),
(H = !0));
}),
H)),
(ee.mask =
((Y = (U = e).curStats),
(X = U.aplStats),
(q = !1),
Y.plug_enabled
? [0, 1].forEach(function (e) {
Y.capsMaskMarker_enabledSE[e] =
(Y.plug_enabledSE[e] && Y.plug_colorTraSE[e]) ||
(Y.plugOutline_enabledSE[e] && Y.plugOutline_colorTraSE[e]);
})
: (Y.capsMaskMarker_enabledSE[0] = Y.capsMaskMarker_enabledSE[1] =
!1),
(Y.capsMaskMarker_enabled =
Y.capsMaskMarker_enabledSE[0] || Y.capsMaskMarker_enabledSE[1]),
(Y.lineMask_outlineMode = Y.lineOutline_enabled),
(Y.caps_enabled =
Y.capsMaskMarker_enabled ||
Y.capsMaskAnchor_enabledSE[0] ||
Y.capsMaskAnchor_enabledSE[1]),
(Y.lineMask_enabled = Y.caps_enabled || Y.lineMask_outlineMode),
((Y.lineMask_enabled && !Y.lineMask_outlineMode) ||
Y.lineOutline_enabled) &&
["x", "y"].forEach(function (e) {
var t = "maskBGRect_" + e;
We(U, X, t, (Z = Y[t])) &&
((U.maskBGRect[e].baseVal.value = Z), (q = !0));
}),
We(U, X, "lineMask_enabled", (Z = Y.lineMask_enabled)) &&
((U.lineFace.style.mask = Z ? "url(#" + U.lineMaskId + ")" : "none"),
(q = !0),
ue && Ae(U, U.lineMask)),
Y.lineMask_enabled &&
(We(U, X, "lineMask_outlineMode", (Z = Y.lineMask_outlineMode)) &&
(Z
? ((U.lineMaskBG.style.display = "none"),
(U.lineMaskShape.style.display = "inline"))
: ((U.lineMaskBG.style.display = "inline"),
(U.lineMaskShape.style.display = "none")),
(q = !0)),
["x", "y"].forEach(function (e) {
var t = "lineMask_" + e;
We(U, X, t, (Z = Y[t])) &&
((U.lineMask[e].baseVal.value = Z), (q = !0));
}),
We(U, X, "caps_enabled", (Z = Y.caps_enabled)) &&
((U.lineMaskCaps.style.display =
U.lineOutlineMaskCaps.style.display =
Z ? "inline" : "none"),
(q = !0),
ue && Ae(U, U.capsMaskLine)),
Y.caps_enabled &&
([0, 1].forEach(function (e) {
var t;
We(
U,
X.capsMaskAnchor_enabledSE,
e,
(Z = Y.capsMaskAnchor_enabledSE[e])
) &&
((U.capsMaskAnchorSE[e].style.display = Z ? "inline" : "none"),
(q = !0),
ue && Ae(U, U.lineMask)),
Y.capsMaskAnchor_enabledSE[e] &&
(Me(
(t = Y.capsMaskAnchor_pathDataSE[e]),
X.capsMaskAnchor_pathDataSE[e]
) &&
(U.capsMaskAnchorSE[e].setPathData(t),
(X.capsMaskAnchor_pathDataSE[e] = t),
(q = !0)),
We(
U,
X.capsMaskAnchor_strokeWidthSE,
e,
(Z = Y.capsMaskAnchor_strokeWidthSE[e])
) &&
((U.capsMaskAnchorSE[e].style.strokeWidth = Z + "px"),
(q = !0)));
}),
We(
U,
X,
"capsMaskMarker_enabled",
(Z = Y.capsMaskMarker_enabled)
) &&
((U.capsMaskLine.style.display = Z ? "inline" : "none"),
(q = !0)),
Y.capsMaskMarker_enabled &&
[0, 1].forEach(function (n) {
var e = Y.capsMaskMarker_plugSE[n],
t = e !== ne ? ae[ie[e]] : null,
a = Ne(n, t);
We(
U,
X.capsMaskMarker_enabledSE,
n,
(Z = Y.capsMaskMarker_enabledSE[n])
) &&
((U.capsMaskLine.style[a.prop] = Z
? "url(#" + U.lineMaskMarkerIdSE[n] + ")"
: "none"),
(q = !0)),
Y.capsMaskMarker_enabledSE[n] &&
(We(U, X.capsMaskMarker_plugSE, n, e) &&
((U.capsMaskMarkerShapeSE[n].href.baseVal =
"#" + t.elmId),
Pe(
U,
U.capsMaskMarkerSE[n],
a.orient,
t.bBox,
U.svg,
U.capsMaskMarkerShapeSE[n],
U.capsMaskLine
),
(q = !0),
re && (Ae(U, U.capsMaskLine), Ae(U, U.lineFace))),
["markerWidth", "markerHeight"].forEach(function (e) {
var t = "capsMaskMarker_" + e + "SE";
We(U, X[t], n, (Z = Y[t][n])) &&
((U.capsMaskMarkerSE[n][e].baseVal.value = Z),
(q = !0));
}));
}))),
Y.lineOutline_enabled &&
["x", "y"].forEach(function (e) {
var t = "lineOutlineMask_" + e;
We(U, X, t, (Z = Y[t])) &&
((U.lineOutlineMask[e].baseVal.value = Z), (q = !0));
}),
q)),
t.effect &&
((J = (Q = e).curStats),
($ = Q.aplStats),
Object.keys(te).forEach(function (e) {
var t = te[e],
n = e + "_enabled",
a = e + "_options",
i = J[a];
We(Q, $, n, (K = J[n]))
? (K && ($[a] = de(i)), t[K ? "init" : "remove"](Q))
: K &&
ce(i, $[a]) &&
(t.remove(Q), ($[n] = !0), ($[a] = de(i)), t.init(Q));
})),
(se || ue) && ee.line && !ee.path && Ae(e, e.lineShape),
se && ee.plug && !ee.line && Ae(e, e.plugsFace),
Ve(e);
}
function ze(e, t) {
return {
duration: w(e.duration) && 0 < e.duration ? e.duration : t.duration,
timing: c.validTiming(e.timing) ? e.timing : de(t.timing),
};
}
function je(e, t, n, a) {
var i,
o = e.curStats,
l = e.aplStats,
r = {};
function s() {
["show_on", "show_effect", "show_animOptions"].forEach(function (e) {
l[e] = o[e];
});
}
(o.show_on = t),
n &&
g[n] &&
((o.show_effect = n),
(o.show_animOptions = ze(k(a) ? a : {}, g[n].defaultAnimOptions))),
(r.show_on = o.show_on !== l.show_on),
(r.show_effect = o.show_effect !== l.show_effect),
(r.show_animOptions = ce(o.show_animOptions, l.show_animOptions)),
r.show_effect || r.show_animOptions
? o.show_inAnim
? ((i = r.show_effect
? g[l.show_effect].stop(e, !0, !0)
: g[l.show_effect].stop(e)),
s(),
g[l.show_effect].init(e, i))
: r.show_on &&
(l.show_effect && r.show_effect && g[l.show_effect].stop(e, !0, !0),
s(),
g[l.show_effect].init(e))
: r.show_on && (s(), g[l.show_effect].start(e));
}
function He(e, t, n) {
var a = { props: e, optionName: n };
return (
!(
!(e.attachments.indexOf(t) < 0) ||
(t.conf.bind && !t.conf.bind(t, a))
) && (e.attachments.push(t), t.boundTargets.push(a), !0)
);
}
function Ue(n, a, e) {
var i = n.attachments.indexOf(a);
-1 < i && n.attachments.splice(i, 1),
a.boundTargets.some(function (e, t) {
return (
e.props === n && (a.conf.unbind && a.conf.unbind(a, e), (i = t), !0)
);
}) &&
(a.boundTargets.splice(i, 1),
e ||
Le(function () {
a.boundTargets.length || o(a);
}));
}
function Ze(s, u) {
var e,
i,
h = s.options,
p = {};
function f(e, t, n, a, i) {
var o = {};
return (
n
? null != a
? ((o.container = e[n]), (o.key = a))
: ((o.container = e), (o.key = n))
: ((o.container = e), (o.key = t)),
(o.default = i),
(o.acceptsAuto = null == o.default),
o
);
}
function c(e, t, n, a, i, o, l) {
var r,
s,
u,
h = f(e, n, i, o, l);
return (
null != t[n] &&
(s = (t[n] + "").toLowerCase()) &&
((h.acceptsAuto && s === x) || (u = a[s])) &&
u !== h.container[h.key] &&
((h.container[h.key] = u), (r = !0)),
null != h.container[h.key] ||
h.acceptsAuto ||
((h.container[h.key] = h.default), (r = !0)),
r
);
}
function d(e, t, n, a, i, o, l, r, s) {
var u,
h,
p,
c,
d = f(e, n, i, o, l);
if (!a) {
if (null == d.default) throw new Error("Invalid `type`: " + n);
a = typeof d.default;
}
return (
null != t[n] &&
((d.acceptsAuto && (t[n] + "").toLowerCase() === x) ||
((p = h = t[n]),
("number" === (c = a) ? w(p) : typeof p === c) &&
((h = s && "string" === a && h ? h.trim() : h), 1) &&
(!r || r(h)))) &&
h !== d.container[d.key] &&
((d.container[d.key] = h), (u = !0)),
null != d.container[d.key] ||
d.acceptsAuto ||
((d.container[d.key] = d.default), (u = !0)),
u
);
}
if (
((u = u || {}),
["start", "end"].forEach(function (e, t) {
var n = u[e],
a = !1;
if (n && (ye(n) || (a = _(n, "anchor"))) && n !== h.anchorSE[t]) {
if (
(!1 !== s.optionIsAttach.anchorSE[t] && Ue(s, $[h.anchorSE[t]._id]),
a && !He(s, $[n._id], e))
)
throw new Error("Can't bind attachment");
(h.anchorSE[t] = n),
(s.optionIsAttach.anchorSE[t] = a),
(i = p.position = !0);
}
}),
!h.anchorSE[0] || !h.anchorSE[1] || h.anchorSE[0] === h.anchorSE[1])
)
throw new Error("`start` and `end` are required.");
i &&
(e = (function (e, t) {
var n, a, i;
if (!(n = me(e)) || !(a = me(t))) throw new Error("Cannot get frames.");
return (
n.length &&
a.length &&
(n.reverse(),
a.reverse(),
n.some(function (t) {
return a.some(function (e) {
return e === t && ((i = e.contentWindow), !0);
});
})),
i || window
);
})(
!1 !== s.optionIsAttach.anchorSE[0]
? $[h.anchorSE[0]._id].element
: h.anchorSE[0],
!1 !== s.optionIsAttach.anchorSE[1]
? $[h.anchorSE[1]._id].element
: h.anchorSE[1]
)) !== s.baseWindow &&
(!(function (a, e) {
var t,
n,
i,
o,
l,
r,
s,
u,
h,
p,
c = a.aplStats,
d = e.document,
f = v + "-" + a._id;
function y(e) {
var t = n.appendChild(d.createElementNS(b, "mask"));
return (
(t.id = e),
(t.maskUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE),
[t.x, t.y, t.width, t.height].forEach(function (e) {
e.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX, 0);
}),
t
);
}
function S(e) {
var t = n.appendChild(d.createElementNS(b, "marker"));
return (
(t.id = e),
(t.markerUnits.baseVal =
SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH),
t.viewBox.baseVal || t.setAttribute("viewBox", "0 0 0 0"),
t
);
}
function m(e) {
return (
[e.width, e.height].forEach(function (e) {
e.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PERCENTAGE,
100
);
}),
e
);
}
(a.pathList = {}),
Te(c, Y),
Object.keys(te).forEach(function (e) {
var t = e + "_enabled";
c[t] && (te[e].remove(a), (c[t] = !1));
}),
a.baseWindow &&
a.svg &&
a.baseWindow.document.body.removeChild(a.svg),
Re((a.baseWindow = e)),
(a.bodyOffset = Be(e)),
(a.svg = t = d.createElementNS(b, "svg")),
(t.className.baseVal = v),
t.viewBox.baseVal || t.setAttribute("viewBox", "0 0 0 0"),
(a.defs = n = t.appendChild(d.createElementNS(b, "defs"))),
(a.linePath = o = n.appendChild(d.createElementNS(b, "path"))),
(o.id = l = f + "-line-path"),
(o.className.baseVal = v + "-line-path"),
ue && (o.style.fill = "none"),
(a.lineShape = o = n.appendChild(d.createElementNS(b, "use"))),
(o.id = r = f + "-line-shape"),
(o.href.baseVal = "#" + l),
((i = n.appendChild(d.createElementNS(b, "g"))).id = s = f + "-caps"),
(a.capsMaskAnchorSE = [0, 1].map(function () {
var e = i.appendChild(d.createElementNS(b, "path"));
return (e.className.baseVal = v + "-caps-mask-anchor"), e;
})),
(a.lineMaskMarkerIdSE = [
f + "-caps-mask-marker-0",
f + "-caps-mask-marker-1",
]),
(a.capsMaskMarkerSE = [0, 1].map(function (e) {
return S(a.lineMaskMarkerIdSE[e]);
})),
(a.capsMaskMarkerShapeSE = [0, 1].map(function (e) {
var t = a.capsMaskMarkerSE[e].appendChild(
d.createElementNS(b, "use")
);
return (t.className.baseVal = v + "-caps-mask-marker-shape"), t;
})),
(a.capsMaskLine = o = i.appendChild(d.createElementNS(b, "use"))),
(o.className.baseVal = v + "-caps-mask-line"),
(o.href.baseVal = "#" + r),
(a.maskBGRect = o = m(n.appendChild(d.createElementNS(b, "rect")))),
(o.id = u = f + "-mask-bg-rect"),
(o.className.baseVal = v + "-mask-bg-rect"),
ue && (o.style.fill = "white"),
(a.lineMask = m(y((a.lineMaskId = f + "-line-mask")))),
(a.lineMaskBG = o =
a.lineMask.appendChild(d.createElementNS(b, "use"))),
(o.href.baseVal = "#" + u),
(a.lineMaskShape = o =
a.lineMask.appendChild(d.createElementNS(b, "use"))),
(o.className.baseVal = v + "-line-mask-shape"),
(o.href.baseVal = "#" + l),
(o.style.display = "none"),
(a.lineMaskCaps = o =
a.lineMask.appendChild(d.createElementNS(b, "use"))),
(o.href.baseVal = "#" + s),
(a.lineOutlineMask = m(y((h = f + "-line-outline-mask")))),
((o = a.lineOutlineMask.appendChild(
d.createElementNS(b, "use")
)).href.baseVal = "#" + u),
(a.lineOutlineMaskShape = o =
a.lineOutlineMask.appendChild(d.createElementNS(b, "use"))),
(o.className.baseVal = v + "-line-outline-mask-shape"),
(o.href.baseVal = "#" + l),
(a.lineOutlineMaskCaps = o =
a.lineOutlineMask.appendChild(d.createElementNS(b, "use"))),
(o.href.baseVal = "#" + s),
(a.face = t.appendChild(d.createElementNS(b, "g"))),
(a.lineFace = o = a.face.appendChild(d.createElementNS(b, "use"))),
(o.href.baseVal = "#" + r),
(a.lineOutlineFace = o =
a.face.appendChild(d.createElementNS(b, "use"))),
(o.href.baseVal = "#" + r),
(o.style.mask = "url(#" + h + ")"),
(o.style.display = "none"),
(a.plugMaskIdSE = [f + "-plug-mask-0", f + "-plug-mask-1"]),
(a.plugMaskSE = [0, 1].map(function (e) {
return y(a.plugMaskIdSE[e]);
})),
(a.plugMaskShapeSE = [0, 1].map(function (e) {
var t = a.plugMaskSE[e].appendChild(d.createElementNS(b, "use"));
return (t.className.baseVal = v + "-plug-mask-shape"), t;
})),
(p = []),
(a.plugOutlineMaskSE = [0, 1].map(function (e) {
return y((p[e] = f + "-plug-outline-mask-" + e));
})),
(a.plugOutlineMaskShapeSE = [0, 1].map(function (e) {
var t = a.plugOutlineMaskSE[e].appendChild(
d.createElementNS(b, "use")
);
return (t.className.baseVal = v + "-plug-outline-mask-shape"), t;
})),
(a.plugMarkerIdSE = [f + "-plug-marker-0", f + "-plug-marker-1"]),
(a.plugMarkerSE = [0, 1].map(function (e) {
var t = S(a.plugMarkerIdSE[e]);
return (
ue &&
(t.markerUnits.baseVal =
SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE),
t
);
})),
(a.plugMarkerShapeSE = [0, 1].map(function (e) {
return a.plugMarkerSE[e].appendChild(d.createElementNS(b, "g"));
})),
(a.plugFaceSE = [0, 1].map(function (e) {
return a.plugMarkerShapeSE[e].appendChild(
d.createElementNS(b, "use")
);
})),
(a.plugOutlineFaceSE = [0, 1].map(function (e) {
var t = a.plugMarkerShapeSE[e].appendChild(
d.createElementNS(b, "use")
);
return (
(t.style.mask = "url(#" + p[e] + ")"),
(t.style.display = "none"),
t
);
})),
(a.plugsFace = o = a.face.appendChild(d.createElementNS(b, "use"))),
(o.className.baseVal = v + "-plugs-face"),
(o.href.baseVal = "#" + r),
(o.style.display = "none"),
a.curStats.show_inAnim
? ((a.isShown = 1), g[c.show_effect].stop(a, !0))
: a.isShown || (t.style.visibility = "hidden"),
d.body.appendChild(t),
[0, 1, 2].forEach(function (e) {
var t,
n = a.options.labelSEM[e];
n &&
_(n, "label") &&
(t = $[n._id]).conf.initSvg &&
t.conf.initSvg(t, a);
});
})(s, e),
(p.line =
p.plug =
p.lineOutline =
p.plugOutline =
p.faces =
p.effect =
!0)),
(p.position = c(h, u, "path", m, null, null, pe.path) || p.position),
(p.position = c(h, u, "startSocket", n, "socketSE", 0) || p.position),
(p.position = c(h, u, "endSocket", n, "socketSE", 1) || p.position),
[u.startSocketGravity, u.endSocketGravity].forEach(function (e, t) {
var n,
a,
i = !1;
null != e &&
(Array.isArray(e)
? w(e[0]) &&
w(e[1]) &&
((i = [e[0], e[1]]),
Array.isArray(h.socketGravitySE[t]) &&
((n = i),
(a = h.socketGravitySE[t]),
n.length === a.length &&
n.every(function (e, t) {
return e === a[t];
})) &&
(i = !1))
: ((e + "").toLowerCase() === x
? (i = null)
: w(e) && 0 <= e && (i = e),
i === h.socketGravitySE[t] && (i = !1)),
!1 !== i && ((h.socketGravitySE[t] = i), (p.position = !0)));
}),
(p.line =
d(h, u, "color", null, "lineColor", null, pe.lineColor, null, !0) ||
p.line),
(p.line =
d(h, u, "size", null, "lineSize", null, pe.lineSize, function (e) {
return 0 < e;
}) || p.line),
["startPlug", "endPlug"].forEach(function (e, t) {
(p.plug = c(h, u, e, E, "plugSE", t, pe.plugSE[t]) || p.plug),
(p.plug =
d(h, u, e + "Color", "string", "plugColorSE", t, null, null, !0) ||
p.plug),
(p.plug =
d(
h,
u,
e + "Size",
null,
"plugSizeSE",
t,
pe.plugSizeSE[t],
function (e) {
return 0 < e;
}
) || p.plug);
}),
(p.lineOutline =
d(
h,
u,
"outline",
null,
"lineOutlineEnabled",
null,
pe.lineOutlineEnabled
) || p.lineOutline),
(p.lineOutline =
d(
h,
u,
"outlineColor",
null,
"lineOutlineColor",
null,
pe.lineOutlineColor,
null,
!0
) || p.lineOutline),
(p.lineOutline =
d(
h,
u,
"outlineSize",
null,
"lineOutlineSize",
null,
pe.lineOutlineSize,
function (e) {
return 0 < e && e <= 0.48;
}
) || p.lineOutline),
["startPlugOutline", "endPlugOutline"].forEach(function (e, t) {
(p.plugOutline =
d(
h,
u,
e,
null,
"plugOutlineEnabledSE",
t,
pe.plugOutlineEnabledSE[t]
) || p.plugOutline),
(p.plugOutline =
d(
h,
u,
e + "Color",
"string",
"plugOutlineColorSE",
t,
null,
null,
!0
) || p.plugOutline),
(p.plugOutline =
d(
h,
u,
e + "Size",
null,
"plugOutlineSizeSE",
t,
pe.plugOutlineSizeSE[t],
function (e) {
return 1 <= e;
}
) || p.plugOutline);
}),
["startLabel", "endLabel", "middleLabel"].forEach(function (e, t) {
var n,
a,
i,
o = u[e],
l =
h.labelSEM[t] && !s.optionIsAttach.labelSEM[t]
? $[h.labelSEM[t]._id].text
: h.labelSEM[t],
r = !1;
if (
((n = "string" === typeof o) && (o = o.trim()),
(n || (o && (r = _(o, "label")))) && o !== l)
) {
if (
(h.labelSEM[t] &&
(Ue(s, $[h.labelSEM[t]._id]), (h.labelSEM[t] = "")),
o)
) {
if (
(r
? (a = $[(i = o)._id]).boundTargets
.slice()
.forEach(function (e) {
a.conf.removeOption(a, e);
})
: (i = new S(y.captionLabel, [o])),
!He(s, $[i._id], e))
)
throw new Error("Can't bind attachment");
h.labelSEM[t] = i;
}
s.optionIsAttach.labelSEM[t] = r;
}
}),
Object.keys(te).forEach(function (a) {
var e,
t,
o = te[a],
n = a + "_enabled",
i = a + "_options";
function l(a) {
var i = {};
return (
o.optionsConf.forEach(function (e) {
var t = e[0],
n = e[3];
null == e[4] || i[n] || (i[n] = []),
("function" === typeof t ? t : "id" === t ? c : d).apply(
null,
[i, a].concat(e.slice(1))
);
}),
i
);
}
function r(e) {
var t,
n = a + "_animOptions";
return (
e.hasOwnProperty("animation")
? k(e.animation)
? (t = s.curStats[n] = ze(e.animation, o.defaultAnimOptions))
: ((t = !!e.animation),
(s.curStats[n] = t ? ze({}, o.defaultAnimOptions) : null))
: ((t = !!o.defaultEnabled),
(s.curStats[n] = t ? ze({}, o.defaultAnimOptions) : null)),
t
);
}
u.hasOwnProperty(a) &&
((e = u[a]),
k(e)
? ((s.curStats[n] = !0),
(t = s.curStats[i] = l(e)),
o.anim && (s.curStats[i].animation = r(e)))
: (t = s.curStats[n] = !!e) &&
((s.curStats[i] = l({})),
o.anim && (s.curStats[i].animation = r({}))),
ce(t, h[a]) && ((h[a] = t), (p.effect = !0)));
}),
De(s, p);
}
function Ye(e, t, n) {
var a = {
options: {
anchorSE: [],
socketSE: [],
socketGravitySE: [],
plugSE: [],
plugColorSE: [],
plugSizeSE: [],
plugOutlineEnabledSE: [],
plugOutlineColorSE: [],
plugOutlineSizeSE: [],
labelSEM: ["", "", ""],
},
optionIsAttach: { anchorSE: [!1, !1], labelSEM: [!1, !1, !1] },
curStats: {},
aplStats: {},
attachments: [],
events: {},
reflowTargets: [],
};
Te(a.curStats, Y),
Te(a.aplStats, Y),
Object.keys(te).forEach(function (e) {
var t = te[e].stats;
Te(a.curStats, t), Te(a.aplStats, t), (a.options[e] = !1);
}),
Te(a.curStats, X),
Te(a.aplStats, X),
(a.curStats.show_effect = q),
(a.curStats.show_animOptions = de(g[q].defaultAnimOptions)),
Object.defineProperty(this, "_id", { value: ++J }),
(a._id = this._id),
(K[this._id] = a),
1 === arguments.length && ((n = e), (e = null)),
(n = n || {}),
(e || t) && ((n = de(n)), e && (n.start = e), t && (n.end = t)),
(a.isShown = a.aplStats.show_on = !n.hide),
this.setOptions(n);
}
return (
(te = {
dash: {
stats: { dash_len: {}, dash_gap: {}, dash_maxOffset: {} },
anim: !0,
defaultAnimOptions: { duration: 1e3, timing: "linear" },
optionsConf: [
[
"type",
"len",
"number",
null,
null,
null,
function (e) {
return 0 < e;
},
],
[
"type",
"gap",
"number",
null,
null,
null,
function (e) {
return 0 < e;
},
],
],
init: function (e) {
Ie(e, "apl_line_strokeWidth", te.dash.update),
(e.lineFace.style.strokeDashoffset = 0),
te.dash.update(e);
},
remove: function (e) {
var t = e.curStats;
Ce(e, "apl_line_strokeWidth", te.dash.update),
t.dash_animId && (c.remove(t.dash_animId), (t.dash_animId = null)),
(e.lineFace.style.strokeDasharray = "none"),
(e.lineFace.style.strokeDashoffset = 0),
Te(e.aplStats, te.dash.stats);
},
update: function (t) {
var e,
n = t.curStats,
a = t.aplStats,
i = a.dash_options,
o = !1;
(n.dash_len = i.len || 2 * a.line_strokeWidth),
(n.dash_gap = i.gap || a.line_strokeWidth),
(n.dash_maxOffset = n.dash_len + n.dash_gap),
(o = We(t, a, "dash_len", n.dash_len) || o),
(o = We(t, a, "dash_gap", n.dash_gap) || o) &&
(t.lineFace.style.strokeDasharray =
a.dash_len + "," + a.dash_gap),
n.dash_animOptions
? ((o = We(t, a, "dash_maxOffset", n.dash_maxOffset)),
a.dash_animOptions &&
(o || ce(n.dash_animOptions, a.dash_animOptions)) &&
(n.dash_animId &&
((e = c.stop(n.dash_animId)), c.remove(n.dash_animId)),
(a.dash_animOptions = null)),
a.dash_animOptions ||
((n.dash_animId = c.add(
function (e) {
return (1 - e) * a.dash_maxOffset + "px";
},
function (e) {
t.lineFace.style.strokeDashoffset = e;
},
n.dash_animOptions.duration,
0,
n.dash_animOptions.timing,
!1,
e
)),
(a.dash_animOptions = de(n.dash_animOptions))))
: a.dash_animOptions &&
(n.dash_animId &&
(c.remove(n.dash_animId), (n.dash_animId = null)),
(t.lineFace.style.strokeDashoffset = 0),
(a.dash_animOptions = null));
},
},
gradient: {
stats: {
gradient_colorSE: { hasSE: !0 },
gradient_pointSE: { hasSE: !0, hasProps: !0 },
},
optionsConf: [
["type", "startColor", "string", "colorSE", 0, null, null, !0],
["type", "endColor", "string", "colorSE", 1, null, null, !0],
],
init: function (e) {
var t,
a = e.baseWindow.document,
n = e.defs,
i = v + "-" + e._id + "-gradient";
(e.efc_gradient_gradient = t =
n.appendChild(a.createElementNS(b, "linearGradient"))),
(t.id = i),
(t.gradientUnits.baseVal =
SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE),
[t.x1, t.y1, t.x2, t.y2].forEach(function (e) {
e.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX, 0);
}),
(e.efc_gradient_stopSE = [0, 1].map(function (t) {
var n = e.efc_gradient_gradient.appendChild(
a.createElementNS(b, "stop")
);
try {
n.offset.baseVal = t;
} catch (e) {
if (e.code !== DOMException.NO_MODIFICATION_ALLOWED_ERR)
throw e;
n.setAttribute("offset", t);
}
return n;
})),
Ie(e, "cur_plug_colorSE", te.gradient.update),
Ie(e, "apl_path", te.gradient.update),
(e.curStats.line_altColor = !0),
(e.lineFace.style.stroke = "url(#" + i + ")"),
te.gradient.update(e);
},
remove: function (e) {
e.efc_gradient_gradient &&
(e.defs.removeChild(e.efc_gradient_gradient),
(e.efc_gradient_gradient = e.efc_gradient_stopSE = null)),
Ce(e, "cur_plug_colorSE", te.gradient.update),
Ce(e, "apl_path", te.gradient.update),
(e.curStats.line_altColor = !1),
(e.lineFace.style.stroke = e.curStats.line_color),
Te(e.aplStats, te.gradient.stats);
},
update: function (a) {
var e,
t,
i = a.curStats,
o = a.aplStats,
n = o.gradient_options,
l = a.pathList.animVal || a.pathList.baseVal;
[0, 1].forEach(function (e) {
i.gradient_colorSE[e] = n.colorSE[e] || i.plug_colorSE[e];
}),
(t = l[0][0]),
(i.gradient_pointSE[0] = { x: t.x, y: t.y }),
(t = (e = l[l.length - 1])[e.length - 1]),
(i.gradient_pointSE[1] = { x: t.x, y: t.y }),
[0, 1].forEach(function (t) {
var n;
We(a, o.gradient_colorSE, t, (n = i.gradient_colorSE[t])) &&
(ue
? ((n = fe(n)),
(a.efc_gradient_stopSE[t].style.stopColor = n[1]),
(a.efc_gradient_stopSE[t].style.stopOpacity = n[0]))
: (a.efc_gradient_stopSE[t].style.stopColor = n)),
["x", "y"].forEach(function (e) {
(n = i.gradient_pointSE[t][e]) !== o.gradient_pointSE[t][e] &&
(a.efc_gradient_gradient[e + (t + 1)].baseVal.value =
o.gradient_pointSE[t][e] =
n);
});
});
},
},
dropShadow: {
stats: {
dropShadow_dx: {},
dropShadow_dy: {},
dropShadow_blur: {},
dropShadow_color: {},
dropShadow_opacity: {},
dropShadow_x: {},
dropShadow_y: {},
},
optionsConf: [
["type", "dx", null, null, null, 2],
["type", "dy", null, null, null, 4],
[
"type",
"blur",
null,
null,
null,
3,
function (e) {
return 0 <= e;
},
],
["type", "color", null, null, null, "#000", null, !0],
[
"type",
"opacity",
null,
null,
null,
0.8,
function (e) {
return 0 <= e && e <= 1;
},
],
],
init: function (t) {
var e,
n,
a,
i,
o,
l = t.baseWindow.document,
r = t.defs,
s = v + "-" + t._id + "-dropShadow",
u =
((e = l),
(n = s),
(o = {}),
"boolean" !== typeof p &&
(p = !!window.SVGFEDropShadowElement && !ue),
(o.elmsAppend = [
(o.elmFilter = a = e.createElementNS(b, "filter")),
]),
(a.filterUnits.baseVal =
SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE),
a.x.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PX,
0
),
a.y.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PX,
0
),
a.width.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PERCENTAGE,
100
),
a.height.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PERCENTAGE,
100
),
(a.id = n),
p
? ((o.elmOffset =
o.elmBlur =
i =
a.appendChild(e.createElementNS(b, "feDropShadow"))),
(o.styleFlood = i.style))
: ((o.elmBlur = a.appendChild(
e.createElementNS(b, "feGaussianBlur")
)),
(o.elmOffset = i =
a.appendChild(e.createElementNS(b, "feOffset"))),
(i.result.baseVal = "offsetblur"),
(i = a.appendChild(e.createElementNS(b, "feFlood"))),
(o.styleFlood = i.style),
((i = a.appendChild(
e.createElementNS(b, "feComposite")
)).in2.baseVal = "offsetblur"),
(i.operator.baseVal =
SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN),
(i = a.appendChild(
e.createElementNS(b, "feMerge")
)).appendChild(e.createElementNS(b, "feMergeNode")),
(i.appendChild(
e.createElementNS(b, "feMergeNode")
).in1.baseVal = "SourceGraphic")),
o);
[
"elmFilter",
"elmOffset",
"elmBlur",
"styleFlood",
"elmsAppend",
].forEach(function (e) {
t["efc_dropShadow_" + e] = u[e];
}),
u.elmsAppend.forEach(function (e) {
r.appendChild(e);
}),
t.face.setAttribute("filter", "url(#" + s + ")"),
Ie(t, "new_edge4viewBox", te.dropShadow.adjustEdge),
te.dropShadow.update(t);
},
remove: function (e) {
var t = e.defs;
e.efc_dropShadow_elmsAppend &&
(e.efc_dropShadow_elmsAppend.forEach(function (e) {
t.removeChild(e);
}),
(e.efc_dropShadow_elmFilter =
e.efc_dropShadow_elmOffset =
e.efc_dropShadow_elmBlur =
e.efc_dropShadow_styleFlood =
e.efc_dropShadow_elmsAppend =
null)),
Ce(e, "new_edge4viewBox", te.dropShadow.adjustEdge),
De(e, {}),
e.face.removeAttribute("filter"),
Te(e.aplStats, te.dropShadow.stats);
},
update: function (e) {
var t,
n,
a = e.curStats,
i = e.aplStats,
o = i.dropShadow_options;
(a.dropShadow_dx = t = o.dx),
We(e, i, "dropShadow_dx", t) &&
((e.efc_dropShadow_elmOffset.dx.baseVal = t), (n = !0)),
(a.dropShadow_dy = t = o.dy),
We(e, i, "dropShadow_dy", t) &&
((e.efc_dropShadow_elmOffset.dy.baseVal = t), (n = !0)),
(a.dropShadow_blur = t = o.blur),
We(e, i, "dropShadow_blur", t) &&
(e.efc_dropShadow_elmBlur.setStdDeviation(t, t), (n = !0)),
n && De(e, {}),
(a.dropShadow_color = t = o.color),
We(e, i, "dropShadow_color", t) &&
(e.efc_dropShadow_styleFlood.floodColor = t),
(a.dropShadow_opacity = t = o.opacity),
We(e, i, "dropShadow_opacity", t) &&
(e.efc_dropShadow_styleFlood.floodOpacity = t);
},
adjustEdge: function (a, i) {
var e,
t,
o = a.curStats,
l = a.aplStats;
null != o.dropShadow_dx &&
((e = 3 * o.dropShadow_blur),
(t = {
x1: i.x1 - e + o.dropShadow_dx,
y1: i.y1 - e + o.dropShadow_dy,
x2: i.x2 + e + o.dropShadow_dx,
y2: i.y2 + e + o.dropShadow_dy,
}).x1 < i.x1 && (i.x1 = t.x1),
t.y1 < i.y1 && (i.y1 = t.y1),
t.x2 > i.x2 && (i.x2 = t.x2),
t.y2 > i.y2 && (i.y2 = t.y2),
["x", "y"].forEach(function (e) {
var t,
n = "dropShadow_" + e;
(o[n] = t = i[e + "1"]),
We(a, l, n, t) &&
(a.efc_dropShadow_elmFilter[e].baseVal.value = t);
}));
},
},
}),
Object.keys(te).forEach(function (e) {
var t = te[e],
n = t.stats;
(n[e + "_enabled"] = { iniValue: !1 }),
(n[e + "_options"] = { hasProps: !0 }),
t.anim && ((n[e + "_animOptions"] = {}), (n[e + "_animId"] = {}));
}),
(g = {
none: {
defaultAnimOptions: {},
init: function (e, t) {
var n = e.curStats;
n.show_animId && (c.remove(n.show_animId), (n.show_animId = null)),
g.none.start(e, t);
},
start: function (e, t) {
g.none.stop(e, !0);
},
stop: function (e, t, n) {
var a = e.curStats;
return (
(n = null != n ? n : e.aplStats.show_on),
(a.show_inAnim = !1),
t && Ge(e, n),
n ? 1 : 0
);
},
},
fade: {
defaultAnimOptions: { duration: 300, timing: "linear" },
init: function (n, e) {
var t = n.curStats,
a = n.aplStats;
t.show_animId && c.remove(t.show_animId),
(t.show_animId = c.add(
function (e) {
return e;
},
function (e, t) {
t
? g.fade.stop(n, !0)
: ((n.svg.style.opacity = e + ""),
le && (Ae(n, n.svg), Ve(n)));
},
a.show_animOptions.duration,
1,
a.show_animOptions.timing,
null,
!1
)),
g.fade.start(n, e);
},
start: function (e, t) {
var n,
a = e.curStats;
a.show_inAnim && (n = c.stop(a.show_animId)),
Ge(e, 1),
(a.show_inAnim = !0),
c.start(a.show_animId, !e.aplStats.show_on, null != t ? t : n);
},
stop: function (e, t, n) {
var a,
i = e.curStats;
return (
(n = null != n ? n : e.aplStats.show_on),
(a = i.show_inAnim ? c.stop(i.show_animId) : n ? 1 : 0),
(i.show_inAnim = !1),
t && ((e.svg.style.opacity = n ? "" : "0"), Ge(e, n)),
a
);
},
},
draw: {
defaultAnimOptions: { duration: 500, timing: [0.58, 0, 0.42, 1] },
init: function (n, e) {
var t = n.curStats,
a = n.aplStats,
l = n.pathList.baseVal,
i = Oe(l),
r = i.segsLen,
s = i.lenAll;
t.show_animId && c.remove(t.show_animId),
(t.show_animId = c.add(
function (e) {
var t,
n,
a,
i,
o = -1;
if (0 === e) n = [[l[0][0], l[0][0]]];
else if (1 === e) n = l;
else {
for (t = s * e, n = []; t >= r[++o]; )
n.push(l[o]), (t -= r[o]);
t &&
(2 === (a = l[o]).length
? n.push([a[0], ve(a[0], a[1], t / r[o])])
: ((i = xe(
a[0],
a[1],
a[2],
a[3],
ke(a[0], a[1], a[2], a[3], t)
)),
n.push([a[0], i.fromP1, i.fromP2, i])));
}
return n;
},
function (e, t) {
t
? g.draw.stop(n, !0)
: ((n.pathList.animVal = e), De(n, { path: !0 }));
},
a.show_animOptions.duration,
1,
a.show_animOptions.timing,
null,
!1
)),
g.draw.start(n, e);
},
start: function (e, t) {
var n,
a = e.curStats;
a.show_inAnim && (n = c.stop(a.show_animId)),
Ge(e, 1),
(a.show_inAnim = !0),
Ie(e, "apl_position", g.draw.update),
c.start(a.show_animId, !e.aplStats.show_on, null != t ? t : n);
},
stop: function (e, t, n) {
var a,
i = e.curStats;
return (
(n = null != n ? n : e.aplStats.show_on),
(a = i.show_inAnim ? c.stop(i.show_animId) : n ? 1 : 0),
(i.show_inAnim = !1),
t &&
((e.pathList.animVal = n
? null
: [[e.pathList.baseVal[0][0], e.pathList.baseVal[0][0]]]),
De(e, { path: !0 }),
Ge(e, n)),
a
);
},
update: function (e) {
Ce(e, "apl_position", g.draw.update),
e.curStats.show_inAnim
? g.draw.init(e, g.draw.stop(e))
: (e.aplStats.show_animOptions = {});
},
},
}),
(function () {
function r(n) {
return function (e) {
var t = {};
(t[n] = e), this.setOptions(t);
};
}
[
["start", "anchorSE", 0],
["end", "anchorSE", 1],
["color", "lineColor"],
["size", "lineSize"],
["startSocketGravity", "socketGravitySE", 0],
["endSocketGravity", "socketGravitySE", 1],
["startPlugColor", "plugColorSE", 0],
["endPlugColor", "plugColorSE", 1],
["startPlugSize", "plugSizeSE", 0],
["endPlugSize", "plugSizeSE", 1],
["outline", "lineOutlineEnabled"],
["outlineColor", "lineOutlineColor"],
["outlineSize", "lineOutlineSize"],
["startPlugOutline", "plugOutlineEnabledSE", 0],
["endPlugOutline", "plugOutlineEnabledSE", 1],
["startPlugOutlineColor", "plugOutlineColorSE", 0],
["endPlugOutlineColor", "plugOutlineColorSE", 1],
["startPlugOutlineSize", "plugOutlineSizeSE", 0],
["endPlugOutlineSize", "plugOutlineSizeSE", 1],
].forEach(function (e) {
var t = e[0],
n = e[1],
a = e[2];
Object.defineProperty(Ye.prototype, t, {
get: function () {
var e =
null != a
? K[this._id].options[n][a]
: n
? K[this._id].options[n]
: K[this._id].options[t];
return null == e ? x : de(e);
},
set: r(t),
enumerable: !0,
});
}),
[
["path", m],
["startSocket", n, "socketSE", 0],
["endSocket", n, "socketSE", 1],
["startPlug", E, "plugSE", 0],
["endPlug", E, "plugSE", 1],
].forEach(function (e) {
var a = e[0],
i = e[1],
o = e[2],
l = e[3];
Object.defineProperty(Ye.prototype, a, {
get: function () {
var t,
n =
null != l
? K[this._id].options[o][l]
: o
? K[this._id].options[o]
: K[this._id].options[a];
return n
? Object.keys(i).some(function (e) {
return i[e] === n && ((t = e), !0);
})
? t
: new Error("It's broken")
: x;
},
set: r(a),
enumerable: !0,
});
}),
Object.keys(te).forEach(function (n) {
var a = te[n];
Object.defineProperty(Ye.prototype, n, {
get: function () {
var u,
e,
t = K[this._id].options[n];
return k(t)
? ((u = t),
(e = a.optionsConf.reduce(function (e, t) {
var n,
a = t[0],
i = t[1],
o = t[2],
l = t[3],
r = t[4],
s = null != r ? u[l][r] : l ? u[l] : u[i];
return (
(e[i] =
"id" === a
? s
? Object.keys(o).some(function (e) {
return o[e] === s && ((n = e), !0);
})
? n
: new Error("It's broken")
: x
: null == s
? x
: de(s)),
e
);
}, {})),
a.anim && (e.animation = de(u.animation)),
e)
: t;
},
set: r(n),
enumerable: !0,
});
}),
["startLabel", "endLabel", "middleLabel"].forEach(function (e, n) {
Object.defineProperty(Ye.prototype, e, {
get: function () {
var e = K[this._id],
t = e.options;
return t.labelSEM[n] && !e.optionIsAttach.labelSEM[n]
? $[t.labelSEM[n]._id].text
: t.labelSEM[n] || "";
},
set: r(e),
enumerable: !0,
});
});
})(),
(Ye.prototype.setOptions = function (e) {
return Ze(K[this._id], e), this;
}),
(Ye.prototype.position = function () {
return De(K[this._id], { position: !0 }), this;
}),
(Ye.prototype.remove = function () {
var t = K[this._id],
n = t.curStats;
Object.keys(te).forEach(function (e) {
var t = e + "_animId";
n[t] && c.remove(n[t]);
}),
n.show_animId && c.remove(n.show_animId),
t.attachments.slice().forEach(function (e) {
Ue(t, e);
}),
t.baseWindow && t.svg && t.baseWindow.document.body.removeChild(t.svg),
delete K[this._id];
}),
(Ye.prototype.show = function (e, t) {
return je(K[this._id], !0, e, t), this;
}),
(Ye.prototype.hide = function (e, t) {
return je(K[this._id], !1, e, t), this;
}),
(o = function (t) {
t &&
$[t._id] &&
(t.boundTargets.slice().forEach(function (e) {
Ue(e.props, t, !0);
}),
t.conf.remove && t.conf.remove(t),
delete $[t._id]);
}),
(S = (function () {
function e(e, t) {
var n,
a = { conf: e, curStats: {}, aplStats: {}, boundTargets: [] },
i = {};
e.argOptions.every(function (e) {
return (
!(
!t.length ||
("string" === typeof e.type
? typeof t[0] !== e.type
: "function" !== typeof e.type || !e.type(t[0]))
) && ((i[e.optionName] = t.shift()), !0)
);
}),
(n = t.length && k(t[0]) ? de(t[0]) : {}),
Object.keys(i).forEach(function (e) {
n[e] = i[e];
}),
e.stats && (Te(a.curStats, e.stats), Te(a.aplStats, e.stats)),
Object.defineProperty(this, "_id", { value: ++ee }),
Object.defineProperty(this, "isRemoved", {
get: function () {
return !$[this._id];
},
}),
(a._id = this._id),
(e.init && !e.init(a, n)) || ($[this._id] = a);
}
return (
(e.prototype.remove = function () {
var t = this,
n = $[t._id];
n &&
(n.boundTargets.slice().forEach(function (e) {
n.conf.removeOption(n, e);
}),
Le(function () {
var e = $[t._id];
e &&
(console.error(
"LeaderLineAttachment was not removed by removeOption"
),
o(e));
}));
}),
e
);
})()),
(window.LeaderLineAttachment = S),
(_ = function (e, t) {
return (
e instanceof S &&
(!(e.isRemoved || (t && $[e._id].conf.type !== t)) || null)
);
}),
(y = {
pointAnchor: {
type: "anchor",
argOptions: [{ optionName: "element", type: ye }],
init: function (e, t) {
return (
(e.element = y.pointAnchor.checkElement(t.element)),
(e.x = y.pointAnchor.parsePercent(t.x, !0) || [0.5, !0]),
(e.y = y.pointAnchor.parsePercent(t.y, !0) || [0.5, !0]),
!0
);
},
removeOption: function (e, t) {
var n = t.props,
a = {},
i = e.element,
o = n.options.anchorSE["start" === t.optionName ? 1 : 0];
i === o &&
(i =
o === document.body ? new S(y.pointAnchor, [i]) : document.body),
(a[t.optionName] = i),
Ze(n, a);
},
getBBoxNest: function (e, t) {
var n = ge(e.element, t.baseWindow),
a = n.width,
i = n.height;
return (
(n.width = n.height = 0),
(n.left = n.right = n.left + e.x[0] * (e.x[1] ? a : 1)),
(n.top = n.bottom = n.top + e.y[0] * (e.y[1] ? i : 1)),
n
);
},
parsePercent: function (e, t) {
var n,
a,
i = !1;
return (
w(e)
? (a = e)
: "string" === typeof e &&
(n = u.exec(e)) &&
n[2] &&
(i = 0 !== (a = parseFloat(n[1]) / 100)),
null != a && (t || 0 <= a) ? [a, i] : null
);
},
checkElement: function (e) {
if (null == e) e = document.body;
else if (!ye(e)) throw new Error("`element` must be Element");
return e;
},
},
areaAnchor: {
type: "anchor",
argOptions: [
{ optionName: "element", type: ye },
{ optionName: "shape", type: "string" },
],
stats: {
color: {},
strokeWidth: {},
elementWidth: {},
elementHeight: {},
elementLeft: {},
elementTop: {},
pathListRel: {},
bBoxRel: {},
pathData: {},
viewBoxBBox: { hasProps: !0 },
dashLen: {},
dashGap: {},
},
init: function (i, e) {
var t,
n,
a,
o = [];
return (
(i.element = y.pointAnchor.checkElement(e.element)),
"string" === typeof e.color && (i.color = e.color.trim()),
"string" === typeof e.fillColor && (i.fill = e.fillColor.trim()),
w(e.size) && 0 <= e.size && (i.size = e.size),
e.dash &&
((i.dash = !0),
w(e.dash.len) && 0 < e.dash.len && (i.dashLen = e.dash.len),
w(e.dash.gap) && 0 < e.dash.gap && (i.dashGap = e.dash.gap)),
"circle" === e.shape
? (i.shape = e.shape)
: "polygon" === e.shape &&
Array.isArray(e.points) &&
3 <= e.points.length &&
e.points.every(function (e) {
var t = {};
return (
!(
!(t.x = y.pointAnchor.parsePercent(e[0], !0)) ||
!(t.y = y.pointAnchor.parsePercent(e[1], !0))
) &&
(o.push(t), (t.x[1] || t.y[1]) && (i.hasRatio = !0), !0)
);
})
? ((i.shape = e.shape), (i.points = o))
: ((i.shape = "rect"),
(i.radius = w(e.radius) && 0 <= e.radius ? e.radius : 0)),
("rect" !== i.shape && "circle" !== i.shape) ||
((i.x = y.pointAnchor.parsePercent(e.x, !0) || [-0.05, !0]),
(i.y = y.pointAnchor.parsePercent(e.y, !0) || [-0.05, !0]),
(i.width = y.pointAnchor.parsePercent(e.width) || [1.1, !0]),
(i.height = y.pointAnchor.parsePercent(e.height) || [1.1, !0]),
(i.x[1] || i.y[1] || i.width[1] || i.height[1]) &&
(i.hasRatio = !0)),
(t = i.element.ownerDocument),
(i.svg = n = t.createElementNS(b, "svg")),
(n.className.baseVal = v + "-areaAnchor"),
n.viewBox.baseVal || n.setAttribute("viewBox", "0 0 0 0"),
(i.path = n.appendChild(t.createElementNS(b, "path"))),
(i.path.style.fill = i.fill || "none"),
(i.isShown = !1),
(n.style.visibility = "hidden"),
t.body.appendChild(n),
Re((a = t.defaultView)),
(i.bodyOffset = Be(a)),
(i.updateColor = function () {
var e,
t = i.curStats,
n = i.aplStats,
a = i.boundTargets.length
? i.boundTargets[0].props.curStats
: null;
(t.color = e = i.color || (a ? a.line_color : pe.lineColor)),
We(i, n, "color", e) && (i.path.style.stroke = e);
}),
(i.updateShow = function () {
Ge(
i,
i.boundTargets.some(function (e) {
return !0 === e.props.isShown;
})
);
}),
!0
);
},
bind: function (e, t) {
var n = t.props;
return (
e.color || Ie(n, "cur_line_color", e.updateColor),
Ie(n, "svgShow", e.updateShow),
Le(function () {
e.updateColor(), e.updateShow();
}),
!0
);
},
unbind: function (e, t) {
var n = t.props;
e.color || Ce(n, "cur_line_color", e.updateColor),
Ce(n, "svgShow", e.updateShow),
1 < e.boundTargets.length &&
Le(function () {
e.updateColor(),
e.updateShow(),
y.areaAnchor.update(e) &&
e.boundTargets.forEach(function (e) {
De(e.props, { position: !0 });
});
});
},
removeOption: function (e, t) {
y.pointAnchor.removeOption(e, t);
},
remove: function (t) {
t.boundTargets.length &&
(console.error("LeaderLineAttachment was not unbound by remove"),
t.boundTargets.forEach(function (e) {
y.areaAnchor.unbind(t, e);
})),
t.svg.parentNode.removeChild(t.svg);
},
getStrokeWidth: function (e, t) {
return (
y.areaAnchor.update(e) &&
1 < e.boundTargets.length &&
Le(function () {
e.boundTargets.forEach(function (e) {
e.props !== t && De(e.props, { position: !0 });
});
}),
e.curStats.strokeWidth
);
},
getPathData: function (e, t) {
var n = ge(e.element, t.baseWindow);
return we(e.curStats.pathListRel, function (e) {
(e.x += n.left), (e.y += n.top);
});
},
getBBoxNest: function (e, t) {
var n = ge(e.element, t.baseWindow),
a = e.curStats.bBoxRel;
return {
left: a.left + n.left,
top: a.top + n.top,
right: a.right + n.left,
bottom: a.bottom + n.top,
width: a.width,
height: a.height,
};
},
update: function (t) {
var a,
n,
i,
o,
e,
l,
r,
s,
u,
h,
p,
c,
d,
f,
y,
S,
m,
g,
_,
v,
E,
x,
b,
k,
w,
O,
M,
I,
C,
L,
A,
V,
P = t.curStats,
N = t.aplStats,
T = t.boundTargets.length ? t.boundTargets[0].props.curStats : null,
W = {};
if (
((W.strokeWidth = We(
t,
P,
"strokeWidth",
null != t.size ? t.size : T ? T.line_strokeWidth : pe.lineSize
)),
(a = Se(t.element)),
(W.elementWidth = We(t, P, "elementWidth", a.width)),
(W.elementHeight = We(t, P, "elementHeight", a.height)),
(W.elementLeft = We(t, P, "elementLeft", a.left)),
(W.elementTop = We(t, P, "elementTop", a.top)),
W.strokeWidth ||
(t.hasRatio && (W.elementWidth || W.elementHeight)))
) {
switch (t.shape) {
case "rect":
((v = {
left: t.x[0] * (t.x[1] ? a.width : 1),
top: t.y[0] * (t.y[1] ? a.height : 1),
width: t.width[0] * (t.width[1] ? a.width : 1),
height: t.height[0] * (t.height[1] ? a.height : 1),
}).right = v.left + v.width),
(v.bottom = v.top + v.height),
(k = P.strokeWidth / 2),
(x = (b = Math.min(v.width, v.height))
? (b / 2) * Math.SQRT2 + k
: 0),
(E = t.radius ? (t.radius <= x ? t.radius : x) : 0)
? ((O = E - (w = (E - k) / Math.SQRT2)),
(I = E * U),
(M = [
{ x: v.left - O, y: v.top + w },
{ x: v.left + w, y: v.top - O },
{ x: v.right - w, y: v.top - O },
{ x: v.right + O, y: v.top + w },
{ x: v.right + O, y: v.bottom - w },
{ x: v.right - w, y: v.bottom + O },
{ x: v.left + w, y: v.bottom + O },
{ x: v.left - O, y: v.bottom - w },
]),
(P.pathListRel = [
[
M[0],
{ x: M[0].x, y: M[0].y - I },
{ x: M[1].x - I, y: M[1].y },
M[1],
],
]),
M[1].x !== M[2].x && P.pathListRel.push([M[1], M[2]]),
P.pathListRel.push([
M[2],
{ x: M[2].x + I, y: M[2].y },
{ x: M[3].x, y: M[3].y - I },
M[3],
]),
M[3].y !== M[4].y && P.pathListRel.push([M[3], M[4]]),
P.pathListRel.push([
M[4],
{ x: M[4].x, y: M[4].y + I },
{ x: M[5].x + I, y: M[5].y },
M[5],
]),
M[5].x !== M[6].x && P.pathListRel.push([M[5], M[6]]),
P.pathListRel.push([
M[6],
{ x: M[6].x - I, y: M[6].y },
{ x: M[7].x, y: M[7].y + I },
M[7],
]),
M[7].y !== M[0].y && P.pathListRel.push([M[7], M[0]]),
P.pathListRel.push([]),
(O = E - w + P.strokeWidth / 2),
(M = [
{ x: v.left - O, y: v.top - O },
{ x: v.right + O, y: v.bottom + O },
]))
: ((O = P.strokeWidth / 2),
(M = [
{ x: v.left - O, y: v.top - O },
{ x: v.right + O, y: v.bottom + O },
]),
(P.pathListRel = [
[M[0], { x: M[1].x, y: M[0].y }],
[{ x: M[1].x, y: M[0].y }, M[1]],
[M[1], { x: M[0].x, y: M[1].y }],
[],
]),
(M = [
{ x: v.left - P.strokeWidth, y: v.top - P.strokeWidth },
{
x: v.right + P.strokeWidth,
y: v.bottom + P.strokeWidth,
},
])),
(P.bBoxRel = {
left: M[0].x,
top: M[0].y,
right: M[1].x,
bottom: M[1].y,
width: M[1].x - M[0].x,
height: M[1].y - M[0].y,
});
break;
case "circle":
(r = {
left: t.x[0] * (t.x[1] ? a.width : 1),
top: t.y[0] * (t.y[1] ? a.height : 1),
width: t.width[0] * (t.width[1] ? a.width : 1),
height: t.height[0] * (t.height[1] ? a.height : 1),
}).width ||
r.height ||
(r.width = r.height = 10),
r.width || (r.width = r.height),
r.height || (r.height = r.width),
(r.right = r.left + r.width),
(r.bottom = r.top + r.height),
(s = r.left + r.width / 2),
(u = r.top + r.height / 2),
(f = P.strokeWidth / 2),
(y = r.width / 2),
(S = r.height / 2),
(h = y * Math.SQRT2 + f),
(p = S * Math.SQRT2 + f),
(c = h * U),
(d = p * U),
(_ = [
{ x: s - h, y: u },
{ x: s, y: u - p },
{ x: s + h, y: u },
{ x: s, y: u + p },
]),
(P.pathListRel = [
[
_[0],
{ x: _[0].x, y: _[0].y - d },
{ x: _[1].x - c, y: _[1].y },
_[1],
],
[
_[1],
{ x: _[1].x + c, y: _[1].y },
{ x: _[2].x, y: _[2].y - d },
_[2],
],
[
_[2],
{ x: _[2].x, y: _[2].y + d },
{ x: _[3].x + c, y: _[3].y },
_[3],
],
[
_[3],
{ x: _[3].x - c, y: _[3].y },
{ x: _[0].x, y: _[0].y + d },
_[0],
],
[],
]),
(m = h - y + P.strokeWidth / 2),
(g = p - S + P.strokeWidth / 2),
(_ = [
{ x: r.left - m, y: r.top - g },
{ x: r.right + m, y: r.bottom + g },
]),
(P.bBoxRel = {
left: _[0].x,
top: _[0].y,
right: _[1].x,
bottom: _[1].y,
width: _[1].x - _[0].x,
height: _[1].y - _[0].y,
});
break;
case "polygon":
t.points.forEach(function (e) {
var t = e.x[0] * (e.x[1] ? a.width : 1),
n = e.y[0] * (e.y[1] ? a.height : 1);
i
? (t < i.left && (i.left = t),
t > i.right && (i.right = t),
n < i.top && (i.top = n),
n > i.bottom && (i.bottom = n))
: (i = { left: t, right: t, top: n, bottom: n }),
o
? P.pathListRel.push([o, { x: t, y: n }])
: (P.pathListRel = []),
(o = { x: t, y: n });
}),
P.pathListRel.push([]),
(e = P.strokeWidth / 2),
(l = [
{ x: i.left - e, y: i.top - e },
{ x: i.right + e, y: i.bottom + e },
]),
(P.bBoxRel = {
left: l[0].x,
top: l[0].y,
right: l[1].x,
bottom: l[1].y,
width: l[1].x - l[0].x,
height: l[1].y - l[0].y,
});
}
W.pathListRel = W.bBoxRel = !0;
}
return (
(W.pathListRel || W.elementLeft || W.elementTop) &&
(P.pathData = we(P.pathListRel, function (e) {
(e.x += a.left), (e.y += a.top);
})),
We(t, N, "strokeWidth", (n = P.strokeWidth)) &&
(t.path.style.strokeWidth = n + "px"),
Me((n = P.pathData), N.pathData) &&
(t.path.setPathData(n), (N.pathData = n), (W.pathData = !0)),
t.dash &&
((!W.pathData && (!W.strokeWidth || (t.dashLen && t.dashGap))) ||
((P.dashLen = t.dashLen || 2 * P.strokeWidth),
(P.dashGap = t.dashGap || P.strokeWidth)),
(W.dash = We(t, N, "dashLen", P.dashLen) || W.dash),
(W.dash = We(t, N, "dashGap", P.dashGap) || W.dash),
W.dash &&
(t.path.style.strokeDasharray = N.dashLen + "," + N.dashGap)),
(C = P.viewBoxBBox),
(L = N.viewBoxBBox),
(A = t.svg.viewBox.baseVal),
(V = t.svg.style),
(C.x = P.bBoxRel.left + a.left),
(C.y = P.bBoxRel.top + a.top),
(C.width = P.bBoxRel.width),
(C.height = P.bBoxRel.height),
["x", "y", "width", "height"].forEach(function (e) {
(n = C[e]) !== L[e] &&
((A[e] = L[e] = n),
(V[oe[e]] =
n + ("x" === e || "y" === e ? t.bodyOffset[e] : 0) + "px"));
}),
W.strokeWidth || W.pathListRel || W.bBoxRel
);
},
},
mouseHoverAnchor: {
type: "anchor",
argOptions: [
{ optionName: "element", type: ye },
{ optionName: "showEffectName", type: "string" },
],
style: {
backgroundImage:
"url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg==')",
backgroundSize: "",
backgroundRepeat: "no-repeat",
backgroundColor: "#f8f881",
cursor: "default",
},
hoverStyle: { backgroundImage: "none", backgroundColor: "#fadf8f" },
padding: { top: 1, right: 15, bottom: 1, left: 2 },
minHeight: 15,
backgroundPosition: { right: 2, top: 2 },
backgroundSize: { width: 12, height: 12 },
dirKeys: [
["top", "Top"],
["right", "Right"],
["bottom", "Bottom"],
["left", "Left"],
],
init: function (a, i) {
var o,
t,
e,
n,
l,
r,
s,
u,
h,
p,
c,
d = y.mouseHoverAnchor,
f = {};
if (
((a.element = y.pointAnchor.checkElement(i.element)),
(u = a.element),
!(
(p = u.ownerDocument) &&
(h = p.defaultView) &&
h.HTMLElement &&
u instanceof h.HTMLElement
))
)
throw new Error("`element` must be HTML element");
return (
(d.style.backgroundSize =
d.backgroundSize.width + "px " + d.backgroundSize.height + "px"),
["style", "hoverStyle"].forEach(function (e) {
var n = d[e];
a[e] = Object.keys(n).reduce(function (e, t) {
return (e[t] = n[t]), e;
}, {});
}),
"inline" ===
(o = a.element.ownerDocument.defaultView.getComputedStyle(
a.element,
""
)).display
? (a.style.display = "inline-block")
: "none" === o.display && (a.style.display = "block"),
y.mouseHoverAnchor.dirKeys.forEach(function (e) {
var t = e[0],
n = "padding" + e[1];
parseFloat(o[n]) < d.padding[t] &&
(a.style[n] = d.padding[t] + "px");
}),
a.style.display &&
((n = a.element.style.display),
(a.element.style.display = a.style.display)),
y.mouseHoverAnchor.dirKeys.forEach(function (e) {
var t = "padding" + e[1];
a.style[t] &&
((f[t] = a.element.style[t]),
(a.element.style[t] = a.style[t]));
}),
(e = a.element.getBoundingClientRect()).height < d.minHeight &&
(le
? ((c = d.minHeight),
"content-box" === o.boxSizing
? (c -=
parseFloat(o.borderTopWidth) +
parseFloat(o.borderBottomWidth) +
parseFloat(o.paddingTop) +
parseFloat(o.paddingBottom))
: "padding-box" === o.boxSizing &&
(c -=
parseFloat(o.borderTopWidth) +
parseFloat(o.borderBottomWidth)),
(a.style.height = c + "px"))
: (a.style.height =
parseFloat(o.height) + (d.minHeight - e.height) + "px")),
(a.style.backgroundPosition = ue
? e.width -
d.backgroundSize.width -
d.backgroundPosition.right +
"px " +
d.backgroundPosition.top +
"px"
: "right " +
d.backgroundPosition.right +
"px top " +
d.backgroundPosition.top +
"px"),
a.style.display && (a.element.style.display = n),
y.mouseHoverAnchor.dirKeys.forEach(function (e) {
var t = "padding" + e[1];
a.style[t] && (a.element.style[t] = f[t]);
}),
["style", "hoverStyle"].forEach(function (e) {
var t = a[e],
n = i[e];
k(n) &&
Object.keys(n).forEach(function (e) {
"string" === typeof n[e] || w(n[e])
? (t[e] = n[e])
: null == n[e] && delete t[e];
});
}),
"function" === typeof i.onSwitch && (s = i.onSwitch),
i.showEffectName &&
g[i.showEffectName] &&
(a.showEffectName = l = i.showEffectName),
(r = i.animOptions),
(a.elmStyle = t = a.element.style),
(a.mouseenter = function (e) {
(a.hoverStyleSave = d.getStyles(t, Object.keys(a.hoverStyle))),
d.setStyles(t, a.hoverStyle),
a.boundTargets.forEach(function (e) {
je(e.props, !0, l, r);
}),
s && s(e);
}),
(a.mouseleave = function (e) {
d.setStyles(t, a.hoverStyleSave),
a.boundTargets.forEach(function (e) {
je(e.props, !1, l, r);
}),
s && s(e);
}),
!0
);
},
bind: function (e, t) {
var n, a, i, o, l;
return (
t.props.svg
? y.mouseHoverAnchor.llShow(t.props, !1, e.showEffectName)
: Le(function () {
y.mouseHoverAnchor.llShow(t.props, !1, e.showEffectName);
}),
e.enabled ||
((e.styleSave = y.mouseHoverAnchor.getStyles(
e.elmStyle,
Object.keys(e.style)
)),
y.mouseHoverAnchor.setStyles(e.elmStyle, e.style),
(e.removeEventListener =
((n = e.element),
(a = e.mouseenter),
(i = e.mouseleave),
"onmouseenter" in n && "onmouseleave" in n
? (n.addEventListener("mouseenter", a, !1),
n.addEventListener("mouseleave", i, !1),
function () {
n.removeEventListener("mouseenter", a, !1),
n.removeEventListener("mouseleave", i, !1);
})
: (console.warn(
"mouseenter and mouseleave events polyfill is enabled."
),
(o = function (e) {
(e.relatedTarget &&
(e.relatedTarget === this ||
this.compareDocumentPosition(e.relatedTarget) &
Node.DOCUMENT_POSITION_CONTAINED_BY)) ||
a.apply(this, arguments);
}),
n.addEventListener("mouseover", o),
(l = function (e) {
(e.relatedTarget &&
(e.relatedTarget === this ||
this.compareDocumentPosition(e.relatedTarget) &
Node.DOCUMENT_POSITION_CONTAINED_BY)) ||
i.apply(this, arguments);
}),
n.addEventListener("mouseout", l),
function () {
n.removeEventListener("mouseover", o, !1),
n.removeEventListener("mouseout", l, !1);
}))),
(e.enabled = !0)),
!0
);
},
unbind: function (e, t) {
e.enabled &&
e.boundTargets.length <= 1 &&
(e.removeEventListener(),
y.mouseHoverAnchor.setStyles(e.elmStyle, e.styleSave),
(e.enabled = !1)),
y.mouseHoverAnchor.llShow(t.props, !0, e.showEffectName);
},
removeOption: function (e, t) {
y.pointAnchor.removeOption(e, t);
},
remove: function (t) {
t.boundTargets.length &&
(console.error("LeaderLineAttachment was not unbound by remove"),
t.boundTargets.forEach(function (e) {
y.mouseHoverAnchor.unbind(t, e);
}));
},
getBBoxNest: function (e, t) {
return ge(e.element, t.baseWindow);
},
llShow: function (e, t, n) {
g[n || e.curStats.show_effect].stop(e, !0, t),
(e.aplStats.show_on = t);
},
getStyles: function (n, e) {
return e.reduce(function (e, t) {
return (e[t] = n[t]), e;
}, {});
},
setStyles: function (t, n) {
Object.keys(n).forEach(function (e) {
t[e] = n[e];
});
},
},
captionLabel: {
type: "label",
argOptions: [{ optionName: "text", type: "string" }],
stats: { color: {}, x: {}, y: {} },
textStyleProps: [
"fontFamily",
"fontStyle",
"fontVariant",
"fontWeight",
"fontStretch",
"fontSize",
"fontSizeAdjust",
"kerning",
"letterSpacing",
"wordSpacing",
"textDecoration",
],
init: function (u, t) {
return (
"string" === typeof t.text && (u.text = t.text.trim()),
!!u.text &&
("string" === typeof t.color && (u.color = t.color.trim()),
(u.outlineColor =
"string" === typeof t.outlineColor
? t.outlineColor.trim()
: "#fff"),
Array.isArray(t.offset) &&
w(t.offset[0]) &&
w(t.offset[1]) &&
(u.offset = { x: t.offset[0], y: t.offset[1] }),
w(t.lineOffset) && (u.lineOffset = t.lineOffset),
y.captionLabel.textStyleProps.forEach(function (e) {
null != t[e] && (u[e] = t[e]);
}),
(u.updateColor = function (e) {
y.captionLabel.updateColor(u, e);
}),
(u.updateSocketXY = function (e) {
var t,
n,
a,
i,
o = u.curStats,
l = u.aplStats,
r = e.curStats,
s = r.position_socketXYSE[u.socketIndex];
null != s.x &&
(u.offset
? ((o.x = s.x + u.offset.x), (o.y = s.y + u.offset.y))
: ((t = u.height / 2),
(n = Math.max(
r.attach_plugSideLenSE[u.socketIndex] || 0,
r.line_strokeWidth / 2
)),
(a = r.position_socketXYSE[u.socketIndex ? 0 : 1]),
s.socketId === L || s.socketId === I
? ((o.x =
s.socketId === L ? s.x - t - u.width : s.x + t),
(o.y =
a.y < s.y ? s.y + n + t : s.y - n - t - u.height))
: ((o.x =
a.x < s.x ? s.x + n + t : s.x - n - t - u.width),
(o.y =
s.socketId === M ? s.y - t - u.height : s.y + t))),
We(u, l, "x", (i = o.x)) &&
(u.elmPosition.x.baseVal.getItem(0).value = i),
We(u, l, "y", (i = o.y)) &&
(u.elmPosition.y.baseVal.getItem(0).value = i + u.height));
}),
(u.updatePath = function (e) {
var t,
n,
a = u.curStats,
i = u.aplStats,
o = e.pathList.animVal || e.pathList.baseVal;
o &&
((t = y.captionLabel.getMidPoint(o, u.lineOffset)),
(a.x = t.x - u.width / 2),
(a.y = t.y - u.height / 2),
We(u, i, "x", (n = a.x)) &&
(u.elmPosition.x.baseVal.getItem(0).value = n),
We(u, i, "y", (n = a.y)) &&
(u.elmPosition.y.baseVal.getItem(0).value = n + u.height));
}),
(u.updateShow = function (e) {
y.captionLabel.updateShow(u, e);
}),
ue &&
(u.adjustEdge = function (e, t) {
var n = u.curStats;
null != n.x &&
y.captionLabel.adjustEdge(
t,
{ x: n.x, y: n.y, width: u.width, height: u.height },
u.strokeWidth / 2
);
}),
!0)
);
},
updateColor: function (e, t) {
var n,
a = e.curStats,
i = e.aplStats,
o = t.curStats;
(a.color = n = e.color || o.line_color),
We(e, i, "color", n) && (e.styleFill.fill = n);
},
updateShow: function (e, t) {
var n = !0 === t.isShown;
n !== e.isShown &&
((e.styleShow.visibility = n ? "" : "hidden"), (e.isShown = n));
},
adjustEdge: function (e, t, n) {
var a = {
x1: t.x - n,
y1: t.y - n,
x2: t.x + t.width + n,
y2: t.y + t.height + n,
};
a.x1 < e.x1 && (e.x1 = a.x1),
a.y1 < e.y1 && (e.y1 = a.y1),
a.x2 > e.x2 && (e.x2 = a.x2),
a.y2 > e.y2 && (e.y2 = a.y2);
},
newText: function (e, t, n, a, i) {
var o, l, r, s, u, h;
return (
((o = t.createElementNS(b, "text")).textContent = e),
[o.x, o.y].forEach(function (e) {
var t = n.createSVGLength();
t.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX, 0),
e.baseVal.initialize(t);
}),
"boolean" !== typeof f && (f = "paintOrder" in o.style),
i && !f
? ((r = t.createElementNS(b, "defs")),
(o.id = a),
r.appendChild(o),
((u = (l = t.createElementNS(b, "g")).appendChild(
t.createElementNS(b, "use")
)).href.baseVal = "#" + a),
((s = l.appendChild(t.createElementNS(b, "use"))).href.baseVal =
"#" + a),
((h = u.style).strokeLinejoin = "round"),
{
elmPosition: o,
styleText: o.style,
styleFill: s.style,
styleStroke: h,
styleShow: l.style,
elmsAppend: [r, l],
})
: ((h = o.style),
i && ((h.strokeLinejoin = "round"), (h.paintOrder = "stroke")),
{
elmPosition: o,
styleText: h,
styleFill: h,
styleStroke: i ? h : null,
styleShow: h,
elmsAppend: [o],
})
);
},
getMidPoint: function (e, t) {
var n,
a,
i,
o = Oe(e),
l = o.segsLen,
r = o.lenAll,
s = -1;
if ((n = r / 2 + (t || 0)) <= 0)
return 2 === (a = e[0]).length
? ve(a[0], a[1], 0)
: xe(a[0], a[1], a[2], a[3], 0);
if (r <= n)
return 2 === (a = e[e.length - 1]).length
? ve(a[0], a[1], 1)
: xe(a[0], a[1], a[2], a[3], 1);
for (i = []; n > l[++s]; ) i.push(e[s]), (n -= l[s]);
return 2 === (a = e[s]).length
? ve(a[0], a[1], n / l[s])
: xe(a[0], a[1], a[2], a[3], ke(a[0], a[1], a[2], a[3], n));
},
initSvg: function (t, n) {
var e,
a,
i = y.captionLabel.newText(
t.text,
n.baseWindow.document,
n.svg,
v + "-captionLabel-" + t._id,
t.outlineColor
);
["elmPosition", "styleFill", "styleShow", "elmsAppend"].forEach(
function (e) {
t[e] = i[e];
}
),
(t.isShown = !1),
(t.styleShow.visibility = "hidden"),
y.captionLabel.textStyleProps.forEach(function (e) {
null != t[e] && (i.styleText[e] = t[e]);
}),
i.elmsAppend.forEach(function (e) {
n.svg.appendChild(e);
}),
(e = i.elmPosition.getBBox()),
(t.width = e.width),
(t.height = e.height),
t.outlineColor &&
((a = 10 < (a = e.height / 9) ? 10 : a < 2 ? 2 : a),
(i.styleStroke.strokeWidth = a + "px"),
(i.styleStroke.stroke = t.outlineColor)),
(t.strokeWidth = a || 0),
Te(t.aplStats, y.captionLabel.stats),
t.updateColor(n),
t.refSocketXY ? t.updateSocketXY(n) : t.updatePath(n),
ue && De(n, {}),
t.updateShow(n);
},
bind: function (e, t) {
var n = t.props;
return (
e.color || Ie(n, "cur_line_color", e.updateColor),
(e.refSocketXY =
"startLabel" === t.optionName || "endLabel" === t.optionName)
? ((e.socketIndex = "startLabel" === t.optionName ? 0 : 1),
Ie(n, "apl_position", e.updateSocketXY),
e.offset ||
(Ie(n, "cur_attach_plugSideLenSE", e.updateSocketXY),
Ie(n, "cur_line_strokeWidth", e.updateSocketXY)))
: Ie(n, "apl_path", e.updatePath),
Ie(n, "svgShow", e.updateShow),
ue && Ie(n, "new_edge4viewBox", e.adjustEdge),
y.captionLabel.initSvg(e, n),
!0
);
},
unbind: function (e, t) {
var n = t.props;
e.elmsAppend &&
(e.elmsAppend.forEach(function (e) {
n.svg.removeChild(e);
}),
(e.elmPosition = e.styleFill = e.styleShow = e.elmsAppend = null)),
Te(e.curStats, y.captionLabel.stats),
Te(e.aplStats, y.captionLabel.stats),
e.color || Ce(n, "cur_line_color", e.updateColor),
e.refSocketXY
? (Ce(n, "apl_position", e.updateSocketXY),
e.offset ||
(Ce(n, "cur_attach_plugSideLenSE", e.updateSocketXY),
Ce(n, "cur_line_strokeWidth", e.updateSocketXY)))
: Ce(n, "apl_path", e.updatePath),
Ce(n, "svgShow", e.updateShow),
ue && (Ce(n, "new_edge4viewBox", e.adjustEdge), De(n, {}));
},
removeOption: function (e, t) {
var n = t.props,
a = {};
(a[t.optionName] = ""), Ze(n, a);
},
remove: function (t) {
t.boundTargets.length &&
(console.error("LeaderLineAttachment was not unbound by remove"),
t.boundTargets.forEach(function (e) {
y.captionLabel.unbind(t, e);
}));
},
},
pathLabel: {
type: "label",
argOptions: [{ optionName: "text", type: "string" }],
stats: { color: {}, startOffset: {}, pathData: {} },
init: function (s, t) {
return (
"string" === typeof t.text && (s.text = t.text.trim()),
!!s.text &&
("string" === typeof t.color && (s.color = t.color.trim()),
(s.outlineColor =
"string" === typeof t.outlineColor
? t.outlineColor.trim()
: "#fff"),
w(t.lineOffset) && (s.lineOffset = t.lineOffset),
y.captionLabel.textStyleProps.forEach(function (e) {
null != t[e] && (s[e] = t[e]);
}),
(s.updateColor = function (e) {
y.captionLabel.updateColor(s, e);
}),
(s.updatePath = function (e) {
var t,
n = s.curStats,
a = s.aplStats,
i = e.curStats,
o = e.pathList.animVal || e.pathList.baseVal;
o &&
((n.pathData = t =
y.pathLabel.getOffsetPathData(
o,
i.line_strokeWidth / 2 + s.strokeWidth / 2 + s.height / 4,
1.25 * s.height
)),
Me(t, a.pathData) &&
(s.elmPath.setPathData(t),
(a.pathData = t),
(s.bBox = s.elmPosition.getBBox()),
s.updateStartOffset(e)));
}),
(s.updateStartOffset = function (e) {
var t,
n,
a,
i,
o = s.curStats,
l = s.aplStats,
r = e.curStats;
o.pathData &&
(2 !== s.semIndex || s.lineOffset) &&
((t = o.pathData.reduce(function (e, t) {
var n,
a = t.values;
switch (t.type) {
case "M":
i = { x: a[0], y: a[1] };
break;
case "L":
(n = { x: a[0], y: a[1] }),
i && (e += _e(i, n)),
(i = n);
break;
case "C":
(n = { x: a[4], y: a[5] }),
i &&
(e += be(
i,
{ x: a[0], y: a[1] },
{ x: a[2], y: a[3] },
n
)),
(i = n);
}
return e;
}, 0)),
(a = 0 === s.semIndex ? 0 : 1 === s.semIndex ? t : t / 2),
2 !== s.semIndex &&
((n =
Math.max(
r.attach_plugBackLenSE[s.semIndex] || 0,
r.line_strokeWidth / 2
) +
s.strokeWidth / 2 +
s.height / 4),
(a =
(a += 0 === s.semIndex ? n : -n) < 0
? 0
: t < a
? t
: a)),
s.lineOffset &&
(a = (a += s.lineOffset) < 0 ? 0 : t < a ? t : a),
(o.startOffset = a),
We(s, l, "startOffset", a) &&
(s.elmOffset.startOffset.baseVal.value = a));
}),
(s.updateShow = function (e) {
y.captionLabel.updateShow(s, e);
}),
ue &&
(s.adjustEdge = function (e, t) {
s.bBox &&
y.captionLabel.adjustEdge(t, s.bBox, s.strokeWidth / 2);
}),
!0)
);
},
getOffsetPathData: function (e, x, n) {
var b,
a,
i = 3,
k = [];
function w(e, t) {
return Math.abs(e.x - t.x) < i && Math.abs(e.y - t.y) < i;
}
return (
e.forEach(function (e) {
var t, n, a, i, o, l, r, s, u, h, p, c, d, f, y, S, m, g, _, v, E;
2 === e.length
? ((g = e[0]),
(_ = e[1]),
(v = x),
(E = Math.atan2(g.y - _.y, _.x - g.x) + 0.5 * Math.PI),
(t = [
{ x: g.x + Math.cos(E) * v, y: g.y + Math.sin(E) * v * -1 },
{ x: _.x + Math.cos(E) * v, y: _.y + Math.sin(E) * v * -1 },
]),
b
? ((a = b.points),
0 <=
(i =
Math.atan2(a[1].y - a[0].y, a[0].x - a[1].x) -
Math.atan2(e[0].y - e[1].y, e[1].x - e[0].x)) &&
i <= Math.PI
? (n = { type: "line", points: t, inside: !0 })
: ((l = Ee(a[0], a[1], x)),
(o = Ee(t[1], t[0], x)),
(s = a[0]),
(h = o),
(p = t[1]),
(c = (u = l).x - s.x),
(d = u.y - s.y),
(f = p.x - h.x),
(y = p.y - h.y),
(S =
(-d * (s.x - h.x) + c * (s.y - h.y)) /
(-f * d + c * y)),
(m =
(f * (s.y - h.y) - y * (s.x - h.x)) /
(-f * d + c * y)),
(r =
0 <= S && S <= 1 && 0 <= m && m <= 1
? { x: s.x + m * c, y: s.y + m * d }
: null)
? (n = { type: "line", points: [(a[1] = r), t[1]] })
: ((a[1] = w(o, l) ? o : l),
(n = { type: "line", points: [o, t[1]] })),
(b.len = _e(a[0], a[1]))))
: (n = { type: "line", points: t }),
(n.len = _e(n.points[0], n.points[1])),
k.push((b = n)))
: (k.push({
type: "cubic",
points: (function (e, t, n, a, i, o) {
for (
var l,
r,
s = be(e, t, n, a) / o,
u = 1 / (o < i ? s * (i / o) : s),
h = [],
p = 0;
(r =
(90 - (l = xe(e, t, n, a, p)).angle) *
(Math.PI / 180)),
h.push({
x: l.x + Math.cos(r) * i,
y: l.y + Math.sin(r) * i * -1,
}),
!(1 <= p);
)
1 < (p += u) && (p = 1);
return h;
})(e[0], e[1], e[2], e[3], x, 16),
}),
(b = null));
}),
(b = null),
k.forEach(function (e) {
var t;
"line" === e.type
? (e.inside &&
(b.len > x
? (((t = b.points)[1] = Ee(t[0], t[1], -x)),
(b.len = _e(t[0], t[1])))
: ((b.points = null), (b.len = 0)),
e.len > x + n
? (((t = e.points)[0] = Ee(t[1], t[0], -(x + n))),
(e.len = _e(t[0], t[1])))
: ((e.points = null), (e.len = 0))),
(b = e))
: (b = null);
}),
k.reduce(function (t, e) {
var n = e.points;
return (
n &&
((a && w(n[0], a)) ||
t.push({ type: "M", values: [n[0].x, n[0].y] }),
"line" === e.type
? t.push({ type: "L", values: [n[1].x, n[1].y] })
: (n.shift(),
n.forEach(function (e) {
t.push({ type: "L", values: [e.x, e.y] });
})),
(a = n[n.length - 1])),
t
);
}, [])
);
},
newText: function (e, t, n, a) {
var i, o, l, r, s, u, h, p, c, d;
return (
((r = (l = t.createElementNS(b, "defs")).appendChild(
t.createElementNS(b, "path")
)).id = i =
n + "-path"),
((u = (s = t.createElementNS(b, "text")).appendChild(
t.createElementNS(b, "textPath")
)).href.baseVal = "#" + i),
u.startOffset.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PX,
0
),
(u.textContent = e),
"boolean" !== typeof f && (f = "paintOrder" in s.style),
a && !f
? ((s.id = o = n + "-text"),
l.appendChild(s),
((c = (h = t.createElementNS(b, "g")).appendChild(
t.createElementNS(b, "use")
)).href.baseVal = "#" + o),
((p = h.appendChild(t.createElementNS(b, "use"))).href.baseVal =
"#" + o),
((d = c.style).strokeLinejoin = "round"),
{
elmPosition: s,
elmPath: r,
elmOffset: u,
styleText: s.style,
styleFill: p.style,
styleStroke: d,
styleShow: h.style,
elmsAppend: [l, h],
})
: ((d = s.style),
a && ((d.strokeLinejoin = "round"), (d.paintOrder = "stroke")),
{
elmPosition: s,
elmPath: r,
elmOffset: u,
styleText: d,
styleFill: d,
styleStroke: a ? d : null,
styleShow: d,
elmsAppend: [l, s],
})
);
},
initSvg: function (t, n) {
var e,
a,
i = y.pathLabel.newText(
t.text,
n.baseWindow.document,
v + "-pathLabel-" + t._id,
t.outlineColor
);
[
"elmPosition",
"elmPath",
"elmOffset",
"styleFill",
"styleShow",
"elmsAppend",
].forEach(function (e) {
t[e] = i[e];
}),
(t.isShown = !1),
(t.styleShow.visibility = "hidden"),
y.captionLabel.textStyleProps.forEach(function (e) {
null != t[e] && (i.styleText[e] = t[e]);
}),
i.elmsAppend.forEach(function (e) {
n.svg.appendChild(e);
}),
i.elmPath.setPathData([
{ type: "M", values: [0, 100] },
{ type: "h", values: [100] },
]),
(e = i.elmPosition.getBBox()),
(i.styleText.textAnchor = ["start", "end", "middle"][t.semIndex]),
2 !== t.semIndex ||
t.lineOffset ||
i.elmOffset.startOffset.baseVal.newValueSpecifiedUnits(
SVGLength.SVG_LENGTHTYPE_PERCENTAGE,
50
),
(t.height = e.height),
t.outlineColor &&
((a = 10 < (a = e.height / 9) ? 10 : a < 2 ? 2 : a),
(i.styleStroke.strokeWidth = a + "px"),
(i.styleStroke.stroke = t.outlineColor)),
(t.strokeWidth = a || 0),
Te(t.aplStats, y.pathLabel.stats),
t.updateColor(n),
t.updatePath(n),
t.updateStartOffset(n),
ue && De(n, {}),
t.updateShow(n);
},
bind: function (e, t) {
var n = t.props;
return (
e.color || Ie(n, "cur_line_color", e.updateColor),
Ie(n, "cur_line_strokeWidth", e.updatePath),
Ie(n, "apl_path", e.updatePath),
(e.semIndex =
"startLabel" === t.optionName
? 0
: "endLabel" === t.optionName
? 1
: 2),
(2 !== e.semIndex || e.lineOffset) &&
Ie(n, "cur_attach_plugBackLenSE", e.updateStartOffset),
Ie(n, "svgShow", e.updateShow),
ue && Ie(n, "new_edge4viewBox", e.adjustEdge),
y.pathLabel.initSvg(e, n),
!0
);
},
unbind: function (e, t) {
var n = t.props;
e.elmsAppend &&
(e.elmsAppend.forEach(function (e) {
n.svg.removeChild(e);
}),
(e.elmPosition =
e.elmPath =
e.elmOffset =
e.styleFill =
e.styleShow =
e.elmsAppend =
null)),
Te(e.curStats, y.pathLabel.stats),
Te(e.aplStats, y.pathLabel.stats),
e.color || Ce(n, "cur_line_color", e.updateColor),
Ce(n, "cur_line_strokeWidth", e.updatePath),
Ce(n, "apl_path", e.updatePath),
(2 !== e.semIndex || e.lineOffset) &&
Ce(n, "cur_attach_plugBackLenSE", e.updateStartOffset),
Ce(n, "svgShow", e.updateShow),
ue && (Ce(n, "new_edge4viewBox", e.adjustEdge), De(n, {}));
},
removeOption: function (e, t) {
var n = t.props,
a = {};
(a[t.optionName] = ""), Ze(n, a);
},
remove: function (t) {
t.boundTargets.length &&
(console.error("LeaderLineAttachment was not unbound by remove"),
t.boundTargets.forEach(function (e) {
y.pathLabel.unbind(t, e);
}));
},
},
}),
Object.keys(y).forEach(function (e) {
Ye[e] = function () {
return new S(y[e], Array.prototype.slice.call(arguments));
};
}),
(Ye.positionByWindowResize = !0),
window.addEventListener(
"resize",
O.add(function () {
Ye.positionByWindowResize &&
Object.keys(K).forEach(function (e) {
De(K[e], { position: !0 });
});
}),
!1
),
Ye
);
})();