5768 lines
206 KiB
JavaScript
5768 lines
206 KiB
JavaScript
import { _ as Ya } from "./index-d950fc13.js";
|
||
import "vue";
|
||
import "pinia";
|
||
var gr = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Gt = function(a) {
|
||
return a && a.Math == Math && a;
|
||
}, z = (
|
||
// eslint-disable-next-line es/no-global-this -- safe
|
||
Gt(typeof globalThis == "object" && globalThis) || Gt(typeof window == "object" && window) || // eslint-disable-next-line no-restricted-globals -- safe
|
||
Gt(typeof self == "object" && self) || Gt(typeof gr == "object" && gr) || // eslint-disable-next-line no-new-func -- fallback
|
||
function() {
|
||
return this;
|
||
}() || Function("return this")()
|
||
), ut = {}, L = function(a) {
|
||
try {
|
||
return !!a();
|
||
} catch {
|
||
return !0;
|
||
}
|
||
}, Pl = L, ce = !Pl(function() {
|
||
return Object.defineProperty({}, 1, { get: function() {
|
||
return 7;
|
||
} })[1] != 7;
|
||
}), Rl = L, Sr = !Rl(function() {
|
||
var a = function() {
|
||
}.bind();
|
||
return typeof a != "function" || a.hasOwnProperty("prototype");
|
||
}), Il = Sr, Ht = Function.prototype.call, Y = Il ? Ht.bind(Ht) : function() {
|
||
return Ht.apply(Ht, arguments);
|
||
}, Lo = {}, ko = {}.propertyIsEnumerable, Bo = Object.getOwnPropertyDescriptor, Nl = Bo && !ko.call({ 1: 2 }, 1);
|
||
Lo.f = Nl ? function(e) {
|
||
var t = Bo(this, e);
|
||
return !!t && t.enumerable;
|
||
} : ko;
|
||
var Or = function(a, e) {
|
||
return {
|
||
enumerable: !(a & 1),
|
||
configurable: !(a & 2),
|
||
writable: !(a & 4),
|
||
value: e
|
||
};
|
||
}, Fo = Sr, jo = Function.prototype, Xa = jo.call, Ml = Fo && jo.bind.bind(Xa, Xa), k = Fo ? Ml : function(a) {
|
||
return function() {
|
||
return Xa.apply(a, arguments);
|
||
};
|
||
}, Uo = k, _l = Uo({}.toString), Dl = Uo("".slice), je = function(a) {
|
||
return Dl(_l(a), 8, -1);
|
||
}, Vl = k, Ll = L, kl = je, ea = Object, Bl = Vl("".split), zo = Ll(function() {
|
||
return !ea("z").propertyIsEnumerable(0);
|
||
}) ? function(a) {
|
||
return kl(a) == "String" ? Bl(a, "") : ea(a);
|
||
} : ea, Ue = function(a) {
|
||
return a == null;
|
||
}, Fl = Ue, jl = TypeError, ge = function(a) {
|
||
if (Fl(a))
|
||
throw jl("Can't call method on " + a);
|
||
return a;
|
||
}, Ul = zo, zl = ge, Ct = function(a) {
|
||
return Ul(zl(a));
|
||
}, Wa = typeof document == "object" && document.all, Gl = typeof Wa > "u" && Wa !== void 0, Go = {
|
||
all: Wa,
|
||
IS_HTMLDDA: Gl
|
||
}, Ho = Go, Hl = Ho.all, D = Ho.IS_HTMLDDA ? function(a) {
|
||
return typeof a == "function" || a === Hl;
|
||
} : function(a) {
|
||
return typeof a == "function";
|
||
}, bn = D, Yo = Go, Yl = Yo.all, Te = Yo.IS_HTMLDDA ? function(a) {
|
||
return typeof a == "object" ? a !== null : bn(a) || a === Yl;
|
||
} : function(a) {
|
||
return typeof a == "object" ? a !== null : bn(a);
|
||
}, ta = z, Xl = D, Wl = function(a) {
|
||
return Xl(a) ? a : void 0;
|
||
}, ze = function(a, e) {
|
||
return arguments.length < 2 ? Wl(ta[a]) : ta[a] && ta[a][e];
|
||
}, ql = k, Er = ql({}.isPrototypeOf), $r = typeof navigator < "u" && String(navigator.userAgent) || "", Xo = z, ra = $r, xn = Xo.process, Tn = Xo.Deno, Sn = xn && xn.versions || Tn && Tn.version, On = Sn && Sn.v8, ue, dr;
|
||
On && (ue = On.split("."), dr = ue[0] > 0 && ue[0] < 4 ? 1 : +(ue[0] + ue[1]));
|
||
!dr && ra && (ue = ra.match(/Edge\/(\d+)/), (!ue || ue[1] >= 74) && (ue = ra.match(/Chrome\/(\d+)/), ue && (dr = +ue[1])));
|
||
var $i = dr, En = $i, Ql = L, Wo = !!Object.getOwnPropertySymbols && !Ql(function() {
|
||
var a = Symbol();
|
||
return !String(a) || !(Object(a) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
|
||
!Symbol.sham && En && En < 41;
|
||
}), Kl = Wo, qo = Kl && !Symbol.sham && typeof Symbol.iterator == "symbol", Zl = ze, Jl = D, eh = Er, th = qo, rh = Object, Qo = th ? function(a) {
|
||
return typeof a == "symbol";
|
||
} : function(a) {
|
||
var e = Zl("Symbol");
|
||
return Jl(e) && eh(e.prototype, rh(a));
|
||
}, ah = String, wr = function(a) {
|
||
try {
|
||
return ah(a);
|
||
} catch {
|
||
return "Object";
|
||
}
|
||
}, ih = D, nh = wr, sh = TypeError, Se = function(a) {
|
||
if (ih(a))
|
||
return a;
|
||
throw sh(nh(a) + " is not a function");
|
||
}, oh = Se, uh = Ue, lt = function(a, e) {
|
||
var t = a[e];
|
||
return uh(t) ? void 0 : oh(t);
|
||
}, aa = Y, ia = D, na = Te, lh = TypeError, hh = function(a, e) {
|
||
var t, r;
|
||
if (e === "string" && ia(t = a.toString) && !na(r = aa(t, a)) || ia(t = a.valueOf) && !na(r = aa(t, a)) || e !== "string" && ia(t = a.toString) && !na(r = aa(t, a)))
|
||
return r;
|
||
throw lh("Can't convert object to primitive value");
|
||
}, Ot = {}, vh = {
|
||
get exports() {
|
||
return Ot;
|
||
},
|
||
set exports(a) {
|
||
Ot = a;
|
||
}
|
||
}, $n = z, fh = Object.defineProperty, wi = function(a, e) {
|
||
try {
|
||
fh($n, a, { value: e, configurable: !0, writable: !0 });
|
||
} catch {
|
||
$n[a] = e;
|
||
}
|
||
return e;
|
||
}, ch = z, gh = wi, wn = "__core-js_shared__", dh = ch[wn] || gh(wn, {}), Ci = dh, Cn = Ci;
|
||
(vh.exports = function(a, e) {
|
||
return Cn[a] || (Cn[a] = e !== void 0 ? e : {});
|
||
})("versions", []).push({
|
||
version: "3.30.1",
|
||
mode: "global",
|
||
copyright: "© 2014-2023 Denis Pushkarev (zloirock.ru)",
|
||
license: "https://github.com/zloirock/core-js/blob/v3.30.1/LICENSE",
|
||
source: "https://github.com/zloirock/core-js"
|
||
});
|
||
var ph = ge, yh = Object, Cr = function(a) {
|
||
return yh(ph(a));
|
||
}, mh = k, bh = Cr, xh = mh({}.hasOwnProperty), le = Object.hasOwn || function(e, t) {
|
||
return xh(bh(e), t);
|
||
}, Th = k, Sh = 0, Oh = Math.random(), Eh = Th(1 .toString), Ko = function(a) {
|
||
return "Symbol(" + (a === void 0 ? "" : a) + ")_" + Eh(++Sh + Oh, 36);
|
||
}, $h = z, wh = Ot, An = le, Ch = Ko, Ah = Wo, Ph = qo, et = $h.Symbol, sa = wh("wks"), Rh = Ph ? et.for || et : et && et.withoutSetter || Ch, G = function(a) {
|
||
return An(sa, a) || (sa[a] = Ah && An(et, a) ? et[a] : Rh("Symbol." + a)), sa[a];
|
||
}, Ih = Y, Pn = Te, Rn = Qo, Nh = lt, Mh = hh, _h = G, Dh = TypeError, Vh = _h("toPrimitive"), Lh = function(a, e) {
|
||
if (!Pn(a) || Rn(a))
|
||
return a;
|
||
var t = Nh(a, Vh), r;
|
||
if (t) {
|
||
if (e === void 0 && (e = "default"), r = Ih(t, a, e), !Pn(r) || Rn(r))
|
||
return r;
|
||
throw Dh("Can't convert object to primitive value");
|
||
}
|
||
return e === void 0 && (e = "number"), Mh(a, e);
|
||
}, kh = Lh, Bh = Qo, Ai = function(a) {
|
||
var e = kh(a, "string");
|
||
return Bh(e) ? e : e + "";
|
||
}, Fh = z, In = Te, qa = Fh.document, jh = In(qa) && In(qa.createElement), Ar = function(a) {
|
||
return jh ? qa.createElement(a) : {};
|
||
}, Uh = ce, zh = L, Gh = Ar, Zo = !Uh && !zh(function() {
|
||
return Object.defineProperty(Gh("div"), "a", {
|
||
get: function() {
|
||
return 7;
|
||
}
|
||
}).a != 7;
|
||
}), Hh = ce, Yh = Y, Xh = Lo, Wh = Or, qh = Ct, Qh = Ai, Kh = le, Zh = Zo, Nn = Object.getOwnPropertyDescriptor;
|
||
ut.f = Hh ? Nn : function(e, t) {
|
||
if (e = qh(e), t = Qh(t), Zh)
|
||
try {
|
||
return Nn(e, t);
|
||
} catch {
|
||
}
|
||
if (Kh(e, t))
|
||
return Wh(!Yh(Xh.f, e, t), e[t]);
|
||
};
|
||
var de = {}, Jh = ce, ev = L, Jo = Jh && ev(function() {
|
||
return Object.defineProperty(function() {
|
||
}, "prototype", {
|
||
value: 42,
|
||
writable: !1
|
||
}).prototype != 42;
|
||
}), tv = Te, rv = String, av = TypeError, K = function(a) {
|
||
if (tv(a))
|
||
return a;
|
||
throw av(rv(a) + " is not an object");
|
||
}, iv = ce, nv = Zo, sv = Jo, Yt = K, Mn = Ai, ov = TypeError, oa = Object.defineProperty, uv = Object.getOwnPropertyDescriptor, ua = "enumerable", la = "configurable", ha = "writable";
|
||
de.f = iv ? sv ? function(e, t, r) {
|
||
if (Yt(e), t = Mn(t), Yt(r), typeof e == "function" && t === "prototype" && "value" in r && ha in r && !r[ha]) {
|
||
var i = uv(e, t);
|
||
i && i[ha] && (e[t] = r.value, r = {
|
||
configurable: la in r ? r[la] : i[la],
|
||
enumerable: ua in r ? r[ua] : i[ua],
|
||
writable: !1
|
||
});
|
||
}
|
||
return oa(e, t, r);
|
||
} : oa : function(e, t, r) {
|
||
if (Yt(e), t = Mn(t), Yt(r), nv)
|
||
try {
|
||
return oa(e, t, r);
|
||
} catch {
|
||
}
|
||
if ("get" in r || "set" in r)
|
||
throw ov("Accessors not supported");
|
||
return "value" in r && (e[t] = r.value), e;
|
||
};
|
||
var lv = ce, hv = de, vv = Or, At = lv ? function(a, e, t) {
|
||
return hv.f(a, e, vv(1, t));
|
||
} : function(a, e, t) {
|
||
return a[e] = t, a;
|
||
}, pr = {}, fv = {
|
||
get exports() {
|
||
return pr;
|
||
},
|
||
set exports(a) {
|
||
pr = a;
|
||
}
|
||
}, Qa = ce, cv = le, eu = Function.prototype, gv = Qa && Object.getOwnPropertyDescriptor, Pi = cv(eu, "name"), dv = Pi && function() {
|
||
}.name === "something", pv = Pi && (!Qa || Qa && gv(eu, "name").configurable), Pr = {
|
||
EXISTS: Pi,
|
||
PROPER: dv,
|
||
CONFIGURABLE: pv
|
||
}, yv = k, mv = D, Ka = Ci, bv = yv(Function.toString);
|
||
mv(Ka.inspectSource) || (Ka.inspectSource = function(a) {
|
||
return bv(a);
|
||
});
|
||
var Ri = Ka.inspectSource, xv = z, Tv = D, _n = xv.WeakMap, Sv = Tv(_n) && /native code/.test(String(_n)), Ov = Ot, Ev = Ko, Dn = Ov("keys"), Ii = function(a) {
|
||
return Dn[a] || (Dn[a] = Ev(a));
|
||
}, Ni = {}, $v = Sv, tu = z, wv = Te, Cv = At, va = le, fa = Ci, Av = Ii, Pv = Ni, Vn = "Object already initialized", Za = tu.TypeError, Rv = tu.WeakMap, yr, Et, mr, Iv = function(a) {
|
||
return mr(a) ? Et(a) : yr(a, {});
|
||
}, Nv = function(a) {
|
||
return function(e) {
|
||
var t;
|
||
if (!wv(e) || (t = Et(e)).type !== a)
|
||
throw Za("Incompatible receiver, " + a + " required");
|
||
return t;
|
||
};
|
||
};
|
||
if ($v || fa.state) {
|
||
var fe = fa.state || (fa.state = new Rv());
|
||
fe.get = fe.get, fe.has = fe.has, fe.set = fe.set, yr = function(a, e) {
|
||
if (fe.has(a))
|
||
throw Za(Vn);
|
||
return e.facade = a, fe.set(a, e), e;
|
||
}, Et = function(a) {
|
||
return fe.get(a) || {};
|
||
}, mr = function(a) {
|
||
return fe.has(a);
|
||
};
|
||
} else {
|
||
var We = Av("state");
|
||
Pv[We] = !0, yr = function(a, e) {
|
||
if (va(a, We))
|
||
throw Za(Vn);
|
||
return e.facade = a, Cv(a, We, e), e;
|
||
}, Et = function(a) {
|
||
return va(a, We) ? a[We] : {};
|
||
}, mr = function(a) {
|
||
return va(a, We);
|
||
};
|
||
}
|
||
var Rr = {
|
||
set: yr,
|
||
get: Et,
|
||
has: mr,
|
||
enforce: Iv,
|
||
getterFor: Nv
|
||
}, Mi = k, Mv = L, _v = D, Xt = le, Ja = ce, Dv = Pr.CONFIGURABLE, Vv = Ri, ru = Rr, Lv = ru.enforce, kv = ru.get, Ln = String, ur = Object.defineProperty, Bv = Mi("".slice), Fv = Mi("".replace), jv = Mi([].join), Uv = Ja && !Mv(function() {
|
||
return ur(function() {
|
||
}, "length", { value: 8 }).length !== 8;
|
||
}), zv = String(String).split("String"), Gv = fv.exports = function(a, e, t) {
|
||
Bv(Ln(e), 0, 7) === "Symbol(" && (e = "[" + Fv(Ln(e), /^Symbol\(([^)]*)\)/, "$1") + "]"), t && t.getter && (e = "get " + e), t && t.setter && (e = "set " + e), (!Xt(a, "name") || Dv && a.name !== e) && (Ja ? ur(a, "name", { value: e, configurable: !0 }) : a.name = e), Uv && t && Xt(t, "arity") && a.length !== t.arity && ur(a, "length", { value: t.arity });
|
||
try {
|
||
t && Xt(t, "constructor") && t.constructor ? Ja && ur(a, "prototype", { writable: !1 }) : a.prototype && (a.prototype = void 0);
|
||
} catch {
|
||
}
|
||
var r = Lv(a);
|
||
return Xt(r, "source") || (r.source = jv(zv, typeof e == "string" ? e : "")), a;
|
||
};
|
||
Function.prototype.toString = Gv(function() {
|
||
return _v(this) && kv(this).source || Vv(this);
|
||
}, "toString");
|
||
var Hv = D, Yv = de, Xv = pr, Wv = wi, Ge = function(a, e, t, r) {
|
||
r || (r = {});
|
||
var i = r.enumerable, n = r.name !== void 0 ? r.name : e;
|
||
if (Hv(t) && Xv(t, n, r), r.global)
|
||
i ? a[e] = t : Wv(e, t);
|
||
else {
|
||
try {
|
||
r.unsafe ? a[e] && (i = !0) : delete a[e];
|
||
} catch {
|
||
}
|
||
i ? a[e] = t : Yv.f(a, e, {
|
||
value: t,
|
||
enumerable: !1,
|
||
configurable: !r.nonConfigurable,
|
||
writable: !r.nonWritable
|
||
});
|
||
}
|
||
return a;
|
||
}, au = {}, qv = Math.ceil, Qv = Math.floor, Kv = Math.trunc || function(e) {
|
||
var t = +e;
|
||
return (t > 0 ? Qv : qv)(t);
|
||
}, Zv = Kv, Ir = function(a) {
|
||
var e = +a;
|
||
return e !== e || e === 0 ? 0 : Zv(e);
|
||
}, Jv = Ir, ef = Math.max, tf = Math.min, iu = function(a, e) {
|
||
var t = Jv(a);
|
||
return t < 0 ? ef(t + e, 0) : tf(t, e);
|
||
}, rf = Ir, af = Math.min, ht = function(a) {
|
||
return a > 0 ? af(rf(a), 9007199254740991) : 0;
|
||
}, nf = ht, Nr = function(a) {
|
||
return nf(a.length);
|
||
}, sf = Ct, of = iu, uf = Nr, kn = function(a) {
|
||
return function(e, t, r) {
|
||
var i = sf(e), n = uf(i), o = of(r, n), s;
|
||
if (a && t != t) {
|
||
for (; n > o; )
|
||
if (s = i[o++], s != s)
|
||
return !0;
|
||
} else
|
||
for (; n > o; o++)
|
||
if ((a || o in i) && i[o] === t)
|
||
return a || o || 0;
|
||
return !a && -1;
|
||
};
|
||
}, nu = {
|
||
// `Array.prototype.includes` method
|
||
// https://tc39.es/ecma262/#sec-array.prototype.includes
|
||
includes: kn(!0),
|
||
// `Array.prototype.indexOf` method
|
||
// https://tc39.es/ecma262/#sec-array.prototype.indexof
|
||
indexOf: kn(!1)
|
||
}, lf = k, ca = le, hf = Ct, vf = nu.indexOf, ff = Ni, Bn = lf([].push), su = function(a, e) {
|
||
var t = hf(a), r = 0, i = [], n;
|
||
for (n in t)
|
||
!ca(ff, n) && ca(t, n) && Bn(i, n);
|
||
for (; e.length > r; )
|
||
ca(t, n = e[r++]) && (~vf(i, n) || Bn(i, n));
|
||
return i;
|
||
}, _i = [
|
||
"constructor",
|
||
"hasOwnProperty",
|
||
"isPrototypeOf",
|
||
"propertyIsEnumerable",
|
||
"toLocaleString",
|
||
"toString",
|
||
"valueOf"
|
||
], cf = su, gf = _i, df = gf.concat("length", "prototype");
|
||
au.f = Object.getOwnPropertyNames || function(e) {
|
||
return cf(e, df);
|
||
};
|
||
var ou = {};
|
||
ou.f = Object.getOwnPropertySymbols;
|
||
var pf = ze, yf = k, mf = au, bf = ou, xf = K, Tf = yf([].concat), Sf = pf("Reflect", "ownKeys") || function(e) {
|
||
var t = mf.f(xf(e)), r = bf.f;
|
||
return r ? Tf(t, r(e)) : t;
|
||
}, Fn = le, Of = Sf, Ef = ut, $f = de, wf = function(a, e, t) {
|
||
for (var r = Of(e), i = $f.f, n = Ef.f, o = 0; o < r.length; o++) {
|
||
var s = r[o];
|
||
!Fn(a, s) && !(t && Fn(t, s)) && i(a, s, n(e, s));
|
||
}
|
||
}, Cf = L, Af = D, Pf = /#|\.prototype\./, Pt = function(a, e) {
|
||
var t = If[Rf(a)];
|
||
return t == Mf ? !0 : t == Nf ? !1 : Af(e) ? Cf(e) : !!e;
|
||
}, Rf = Pt.normalize = function(a) {
|
||
return String(a).replace(Pf, ".").toLowerCase();
|
||
}, If = Pt.data = {}, Nf = Pt.NATIVE = "N", Mf = Pt.POLYFILL = "P", uu = Pt, ga = z, _f = ut.f, Df = At, Vf = Ge, Lf = wi, kf = wf, Bf = uu, ee = function(a, e) {
|
||
var t = a.target, r = a.global, i = a.stat, n, o, s, u, l, h;
|
||
if (r ? o = ga : i ? o = ga[t] || Lf(t, {}) : o = (ga[t] || {}).prototype, o)
|
||
for (s in e) {
|
||
if (l = e[s], a.dontCallGetSet ? (h = _f(o, s), u = h && h.value) : u = o[s], n = Bf(r ? s : t + (i ? "." : "#") + s, a.forced), !n && u !== void 0) {
|
||
if (typeof l == typeof u)
|
||
continue;
|
||
kf(l, u);
|
||
}
|
||
(a.sham || u && u.sham) && Df(l, "sham", !0), Vf(o, s, l, a);
|
||
}
|
||
}, Ff = je, Rt = typeof process < "u" && Ff(process) == "process", jf = k, Uf = Se, zf = function(a, e, t) {
|
||
try {
|
||
return jf(Uf(Object.getOwnPropertyDescriptor(a, e)[t]));
|
||
} catch {
|
||
}
|
||
}, Gf = D, Hf = String, Yf = TypeError, Xf = function(a) {
|
||
if (typeof a == "object" || Gf(a))
|
||
return a;
|
||
throw Yf("Can't set " + Hf(a) + " as a prototype");
|
||
}, Wf = zf, qf = K, Qf = Xf, lu = Object.setPrototypeOf || ("__proto__" in {} ? function() {
|
||
var a = !1, e = {}, t;
|
||
try {
|
||
t = Wf(Object.prototype, "__proto__", "set"), t(e, []), a = e instanceof Array;
|
||
} catch {
|
||
}
|
||
return function(i, n) {
|
||
return qf(i), Qf(n), a ? t(i, n) : i.__proto__ = n, i;
|
||
};
|
||
}() : void 0), Kf = de.f, Zf = le, Jf = G, jn = Jf("toStringTag"), Di = function(a, e, t) {
|
||
a && !t && (a = a.prototype), a && !Zf(a, jn) && Kf(a, jn, { configurable: !0, value: e });
|
||
}, Un = pr, ec = de, tc = function(a, e, t) {
|
||
return t.get && Un(t.get, e, { getter: !0 }), t.set && Un(t.set, e, { setter: !0 }), ec.f(a, e, t);
|
||
}, rc = ze, ac = tc, ic = G, nc = ce, zn = ic("species"), sc = function(a) {
|
||
var e = rc(a);
|
||
nc && e && !e[zn] && ac(e, zn, {
|
||
configurable: !0,
|
||
get: function() {
|
||
return this;
|
||
}
|
||
});
|
||
}, oc = Er, uc = TypeError, lc = function(a, e) {
|
||
if (oc(e, a))
|
||
return a;
|
||
throw uc("Incorrect invocation");
|
||
}, hc = G, vc = hc("toStringTag"), hu = {};
|
||
hu[vc] = "z";
|
||
var fc = String(hu) === "[object z]", cc = fc, gc = D, lr = je, dc = G, pc = dc("toStringTag"), yc = Object, mc = lr(function() {
|
||
return arguments;
|
||
}()) == "Arguments", bc = function(a, e) {
|
||
try {
|
||
return a[e];
|
||
} catch {
|
||
}
|
||
}, Vi = cc ? lr : function(a) {
|
||
var e, t, r;
|
||
return a === void 0 ? "Undefined" : a === null ? "Null" : typeof (t = bc(e = yc(a), pc)) == "string" ? t : mc ? lr(e) : (r = lr(e)) == "Object" && gc(e.callee) ? "Arguments" : r;
|
||
}, xc = k, Tc = L, vu = D, Sc = Vi, Oc = ze, Ec = Ri, fu = function() {
|
||
}, $c = [], cu = Oc("Reflect", "construct"), Li = /^\s*(?:class|function)\b/, wc = xc(Li.exec), Cc = !Li.exec(fu), ct = function(e) {
|
||
if (!vu(e))
|
||
return !1;
|
||
try {
|
||
return cu(fu, $c, e), !0;
|
||
} catch {
|
||
return !1;
|
||
}
|
||
}, gu = function(e) {
|
||
if (!vu(e))
|
||
return !1;
|
||
switch (Sc(e)) {
|
||
case "AsyncFunction":
|
||
case "GeneratorFunction":
|
||
case "AsyncGeneratorFunction":
|
||
return !1;
|
||
}
|
||
try {
|
||
return Cc || !!wc(Li, Ec(e));
|
||
} catch {
|
||
return !0;
|
||
}
|
||
};
|
||
gu.sham = !0;
|
||
var Ac = !cu || Tc(function() {
|
||
var a;
|
||
return ct(ct.call) || !ct(Object) || !ct(function() {
|
||
a = !0;
|
||
}) || a;
|
||
}) ? gu : ct, Pc = Ac, Rc = wr, Ic = TypeError, Nc = function(a) {
|
||
if (Pc(a))
|
||
return a;
|
||
throw Ic(Rc(a) + " is not a constructor");
|
||
}, Gn = K, Mc = Nc, _c = Ue, Dc = G, Vc = Dc("species"), du = function(a, e) {
|
||
var t = Gn(a).constructor, r;
|
||
return t === void 0 || _c(r = Gn(t)[Vc]) ? e : Mc(r);
|
||
}, Lc = Sr, pu = Function.prototype, Hn = pu.apply, Yn = pu.call, ki = typeof Reflect == "object" && Reflect.apply || (Lc ? Yn.bind(Hn) : function() {
|
||
return Yn.apply(Hn, arguments);
|
||
}), kc = je, Bc = k, It = function(a) {
|
||
if (kc(a) === "Function")
|
||
return Bc(a);
|
||
}, Xn = It, Fc = Se, jc = Sr, Uc = Xn(Xn.bind), Bi = function(a, e) {
|
||
return Fc(a), e === void 0 ? a : jc ? Uc(a, e) : function() {
|
||
return a.apply(e, arguments);
|
||
};
|
||
}, zc = ze, yu = zc("document", "documentElement"), Gc = k, Hc = Gc([].slice), Yc = TypeError, Xc = function(a, e) {
|
||
if (a < e)
|
||
throw Yc("Not enough arguments");
|
||
return a;
|
||
}, Wc = $r, mu = /(?:ipad|iphone|ipod).*applewebkit/i.test(Wc), ae = z, qc = ki, Qc = Bi, Wn = D, Kc = le, bu = L, qn = yu, Zc = Hc, Qn = Ar, Jc = Xc, eg = mu, tg = Rt, ei = ae.setImmediate, ti = ae.clearImmediate, rg = ae.process, da = ae.Dispatch, ag = ae.Function, Kn = ae.MessageChannel, ig = ae.String, pa = 0, Tt = {}, Zn = "onreadystatechange", $t, Ne, ya, ma;
|
||
bu(function() {
|
||
$t = ae.location;
|
||
});
|
||
var Fi = function(a) {
|
||
if (Kc(Tt, a)) {
|
||
var e = Tt[a];
|
||
delete Tt[a], e();
|
||
}
|
||
}, ba = function(a) {
|
||
return function() {
|
||
Fi(a);
|
||
};
|
||
}, Jn = function(a) {
|
||
Fi(a.data);
|
||
}, es = function(a) {
|
||
ae.postMessage(ig(a), $t.protocol + "//" + $t.host);
|
||
};
|
||
(!ei || !ti) && (ei = function(e) {
|
||
Jc(arguments.length, 1);
|
||
var t = Wn(e) ? e : ag(e), r = Zc(arguments, 1);
|
||
return Tt[++pa] = function() {
|
||
qc(t, void 0, r);
|
||
}, Ne(pa), pa;
|
||
}, ti = function(e) {
|
||
delete Tt[e];
|
||
}, tg ? Ne = function(a) {
|
||
rg.nextTick(ba(a));
|
||
} : da && da.now ? Ne = function(a) {
|
||
da.now(ba(a));
|
||
} : Kn && !eg ? (ya = new Kn(), ma = ya.port2, ya.port1.onmessage = Jn, Ne = Qc(ma.postMessage, ma)) : ae.addEventListener && Wn(ae.postMessage) && !ae.importScripts && $t && $t.protocol !== "file:" && !bu(es) ? (Ne = es, ae.addEventListener("message", Jn, !1)) : Zn in Qn("script") ? Ne = function(a) {
|
||
qn.appendChild(Qn("script"))[Zn] = function() {
|
||
qn.removeChild(this), Fi(a);
|
||
};
|
||
} : Ne = function(a) {
|
||
setTimeout(ba(a), 0);
|
||
});
|
||
var xu = {
|
||
set: ei,
|
||
clear: ti
|
||
}, Tu = function() {
|
||
this.head = null, this.tail = null;
|
||
};
|
||
Tu.prototype = {
|
||
add: function(a) {
|
||
var e = { item: a, next: null }, t = this.tail;
|
||
t ? t.next = e : this.head = e, this.tail = e;
|
||
},
|
||
get: function() {
|
||
var a = this.head;
|
||
if (a) {
|
||
var e = this.head = a.next;
|
||
return e === null && (this.tail = null), a.item;
|
||
}
|
||
}
|
||
};
|
||
var Su = Tu, ng = $r, sg = /ipad|iphone|ipod/i.test(ng) && typeof Pebble < "u", og = $r, ug = /web0s(?!.*chrome)/i.test(og), ke = z, ts = Bi, lg = ut.f, xa = xu.set, hg = Su, vg = mu, fg = sg, cg = ug, Ta = Rt, rs = ke.MutationObserver || ke.WebKitMutationObserver, as = ke.document, is = ke.process, Wt = ke.Promise, ns = lg(ke, "queueMicrotask"), ri = ns && ns.value, qe, Sa, Oa, qt, ss;
|
||
if (!ri) {
|
||
var Qt = new hg(), Kt = function() {
|
||
var a, e;
|
||
for (Ta && (a = is.domain) && a.exit(); e = Qt.get(); )
|
||
try {
|
||
e();
|
||
} catch (t) {
|
||
throw Qt.head && qe(), t;
|
||
}
|
||
a && a.enter();
|
||
};
|
||
!vg && !Ta && !cg && rs && as ? (Sa = !0, Oa = as.createTextNode(""), new rs(Kt).observe(Oa, { characterData: !0 }), qe = function() {
|
||
Oa.data = Sa = !Sa;
|
||
}) : !fg && Wt && Wt.resolve ? (qt = Wt.resolve(void 0), qt.constructor = Wt, ss = ts(qt.then, qt), qe = function() {
|
||
ss(Kt);
|
||
}) : Ta ? qe = function() {
|
||
is.nextTick(Kt);
|
||
} : (xa = ts(xa, ke), qe = function() {
|
||
xa(Kt);
|
||
}), ri = function(a) {
|
||
Qt.head || qe(), Qt.add(a);
|
||
};
|
||
}
|
||
var gg = ri, dg = function(a, e) {
|
||
try {
|
||
arguments.length == 1 ? console.error(a) : console.error(a, e);
|
||
} catch {
|
||
}
|
||
}, ji = function(a) {
|
||
try {
|
||
return { error: !1, value: a() };
|
||
} catch (e) {
|
||
return { error: !0, value: e };
|
||
}
|
||
}, pg = z, Mr = pg.Promise, Ou = typeof Deno == "object" && Deno && typeof Deno.version == "object", yg = Ou, mg = Rt, bg = !yg && !mg && typeof window == "object" && typeof document == "object", xg = z, St = Mr, Tg = D, Sg = uu, Og = Ri, Eg = G, $g = bg, wg = Ou, Ea = $i;
|
||
St && St.prototype;
|
||
var Cg = Eg("species"), ai = !1, Eu = Tg(xg.PromiseRejectionEvent), Ag = Sg("Promise", function() {
|
||
var a = Og(St), e = a !== String(St);
|
||
if (!e && Ea === 66)
|
||
return !0;
|
||
if (!Ea || Ea < 51 || !/native code/.test(a)) {
|
||
var t = new St(function(n) {
|
||
n(1);
|
||
}), r = function(n) {
|
||
n(function() {
|
||
}, function() {
|
||
});
|
||
}, i = t.constructor = {};
|
||
if (i[Cg] = r, ai = t.then(function() {
|
||
}) instanceof r, !ai)
|
||
return !0;
|
||
}
|
||
return !e && ($g || wg) && !Eu;
|
||
}), Nt = {
|
||
CONSTRUCTOR: Ag,
|
||
REJECTION_EVENT: Eu,
|
||
SUBCLASSING: ai
|
||
}, vt = {}, os = Se, Pg = TypeError, Rg = function(a) {
|
||
var e, t;
|
||
this.promise = new a(function(r, i) {
|
||
if (e !== void 0 || t !== void 0)
|
||
throw Pg("Bad Promise constructor");
|
||
e = r, t = i;
|
||
}), this.resolve = os(e), this.reject = os(t);
|
||
};
|
||
vt.f = function(a) {
|
||
return new Rg(a);
|
||
};
|
||
var Ig = ee, br = Rt, we = z, st = Y, us = Ge, ls = lu, Ng = Di, Mg = sc, _g = Se, hr = D, Dg = Te, Vg = lc, Lg = du, $u = xu.set, Ui = gg, kg = dg, Bg = ji, Fg = Su, wu = Rr, xr = Mr, zi = Nt, Cu = vt, _r = "Promise", Au = zi.CONSTRUCTOR, jg = zi.REJECTION_EVENT, Ug = zi.SUBCLASSING, $a = wu.getterFor(_r), zg = wu.set, Je = xr && xr.prototype, Ve = xr, Zt = Je, Pu = we.TypeError, ii = we.document, Gi = we.process, ni = Cu.f, Gg = ni, Hg = !!(ii && ii.createEvent && we.dispatchEvent), Ru = "unhandledrejection", Yg = "rejectionhandled", hs = 0, Iu = 1, Xg = 2, Hi = 1, Nu = 2, Jt, vs, Wg, fs, Mu = function(a) {
|
||
var e;
|
||
return Dg(a) && hr(e = a.then) ? e : !1;
|
||
}, _u = function(a, e) {
|
||
var t = e.value, r = e.state == Iu, i = r ? a.ok : a.fail, n = a.resolve, o = a.reject, s = a.domain, u, l, h;
|
||
try {
|
||
i ? (r || (e.rejection === Nu && Qg(e), e.rejection = Hi), i === !0 ? u = t : (s && s.enter(), u = i(t), s && (s.exit(), h = !0)), u === a.promise ? o(Pu("Promise-chain cycle")) : (l = Mu(u)) ? st(l, u, n, o) : n(u)) : o(t);
|
||
} catch (f) {
|
||
s && !h && s.exit(), o(f);
|
||
}
|
||
}, Du = function(a, e) {
|
||
a.notified || (a.notified = !0, Ui(function() {
|
||
for (var t = a.reactions, r; r = t.get(); )
|
||
_u(r, a);
|
||
a.notified = !1, e && !a.rejection && qg(a);
|
||
}));
|
||
}, Vu = function(a, e, t) {
|
||
var r, i;
|
||
Hg ? (r = ii.createEvent("Event"), r.promise = e, r.reason = t, r.initEvent(a, !1, !0), we.dispatchEvent(r)) : r = { promise: e, reason: t }, !jg && (i = we["on" + a]) ? i(r) : a === Ru && kg("Unhandled promise rejection", t);
|
||
}, qg = function(a) {
|
||
st($u, we, function() {
|
||
var e = a.facade, t = a.value, r = cs(a), i;
|
||
if (r && (i = Bg(function() {
|
||
br ? Gi.emit("unhandledRejection", t, e) : Vu(Ru, e, t);
|
||
}), a.rejection = br || cs(a) ? Nu : Hi, i.error))
|
||
throw i.value;
|
||
});
|
||
}, cs = function(a) {
|
||
return a.rejection !== Hi && !a.parent;
|
||
}, Qg = function(a) {
|
||
st($u, we, function() {
|
||
var e = a.facade;
|
||
br ? Gi.emit("rejectionHandled", e) : Vu(Yg, e, a.value);
|
||
});
|
||
}, tt = function(a, e, t) {
|
||
return function(r) {
|
||
a(e, r, t);
|
||
};
|
||
}, at = function(a, e, t) {
|
||
a.done || (a.done = !0, t && (a = t), a.value = e, a.state = Xg, Du(a, !0));
|
||
}, si = function(a, e, t) {
|
||
if (!a.done) {
|
||
a.done = !0, t && (a = t);
|
||
try {
|
||
if (a.facade === e)
|
||
throw Pu("Promise can't be resolved itself");
|
||
var r = Mu(e);
|
||
r ? Ui(function() {
|
||
var i = { done: !1 };
|
||
try {
|
||
st(
|
||
r,
|
||
e,
|
||
tt(si, i, a),
|
||
tt(at, i, a)
|
||
);
|
||
} catch (n) {
|
||
at(i, n, a);
|
||
}
|
||
}) : (a.value = e, a.state = Iu, Du(a, !1));
|
||
} catch (i) {
|
||
at({ done: !1 }, i, a);
|
||
}
|
||
}
|
||
};
|
||
if (Au && (Ve = function(e) {
|
||
Vg(this, Zt), _g(e), st(Jt, this);
|
||
var t = $a(this);
|
||
try {
|
||
e(tt(si, t), tt(at, t));
|
||
} catch (r) {
|
||
at(t, r);
|
||
}
|
||
}, Zt = Ve.prototype, Jt = function(e) {
|
||
zg(this, {
|
||
type: _r,
|
||
done: !1,
|
||
notified: !1,
|
||
parent: !1,
|
||
reactions: new Fg(),
|
||
rejection: !1,
|
||
state: hs,
|
||
value: void 0
|
||
});
|
||
}, Jt.prototype = us(Zt, "then", function(e, t) {
|
||
var r = $a(this), i = ni(Lg(this, Ve));
|
||
return r.parent = !0, i.ok = hr(e) ? e : !0, i.fail = hr(t) && t, i.domain = br ? Gi.domain : void 0, r.state == hs ? r.reactions.add(i) : Ui(function() {
|
||
_u(i, r);
|
||
}), i.promise;
|
||
}), vs = function() {
|
||
var a = new Jt(), e = $a(a);
|
||
this.promise = a, this.resolve = tt(si, e), this.reject = tt(at, e);
|
||
}, Cu.f = ni = function(a) {
|
||
return a === Ve || a === Wg ? new vs(a) : Gg(a);
|
||
}, hr(xr) && Je !== Object.prototype)) {
|
||
fs = Je.then, Ug || us(Je, "then", function(e, t) {
|
||
var r = this;
|
||
return new Ve(function(i, n) {
|
||
st(fs, r, i, n);
|
||
}).then(e, t);
|
||
}, { unsafe: !0 });
|
||
try {
|
||
delete Je.constructor;
|
||
} catch {
|
||
}
|
||
ls && ls(Je, Zt);
|
||
}
|
||
Ig({ global: !0, constructor: !0, wrap: !0, forced: Au }, {
|
||
Promise: Ve
|
||
});
|
||
Ng(Ve, _r, !1);
|
||
Mg(_r);
|
||
var Mt = {}, Kg = G, Zg = Mt, Jg = Kg("iterator"), ed = Array.prototype, td = function(a) {
|
||
return a !== void 0 && (Zg.Array === a || ed[Jg] === a);
|
||
}, rd = Vi, gs = lt, ad = Ue, id = Mt, nd = G, sd = nd("iterator"), Lu = function(a) {
|
||
if (!ad(a))
|
||
return gs(a, sd) || gs(a, "@@iterator") || id[rd(a)];
|
||
}, od = Y, ud = Se, ld = K, hd = wr, vd = Lu, fd = TypeError, cd = function(a, e) {
|
||
var t = arguments.length < 2 ? vd(a) : e;
|
||
if (ud(t))
|
||
return ld(od(t, a));
|
||
throw fd(hd(a) + " is not iterable");
|
||
}, gd = Y, ds = K, dd = lt, pd = function(a, e, t) {
|
||
var r, i;
|
||
ds(a);
|
||
try {
|
||
if (r = dd(a, "return"), !r) {
|
||
if (e === "throw")
|
||
throw t;
|
||
return t;
|
||
}
|
||
r = gd(r, a);
|
||
} catch (n) {
|
||
i = !0, r = n;
|
||
}
|
||
if (e === "throw")
|
||
throw t;
|
||
if (i)
|
||
throw r;
|
||
return ds(r), t;
|
||
}, yd = Bi, md = Y, bd = K, xd = wr, Td = td, Sd = Nr, ps = Er, Od = cd, Ed = Lu, ys = pd, $d = TypeError, vr = function(a, e) {
|
||
this.stopped = a, this.result = e;
|
||
}, ms = vr.prototype, ku = function(a, e, t) {
|
||
var r = t && t.that, i = !!(t && t.AS_ENTRIES), n = !!(t && t.IS_RECORD), o = !!(t && t.IS_ITERATOR), s = !!(t && t.INTERRUPTED), u = yd(e, r), l, h, f, c, v, d, g, p = function(x) {
|
||
return l && ys(l, "normal", x), new vr(!0, x);
|
||
}, y = function(x) {
|
||
return i ? (bd(x), s ? u(x[0], x[1], p) : u(x[0], x[1])) : s ? u(x, p) : u(x);
|
||
};
|
||
if (n)
|
||
l = a.iterator;
|
||
else if (o)
|
||
l = a;
|
||
else {
|
||
if (h = Ed(a), !h)
|
||
throw $d(xd(a) + " is not iterable");
|
||
if (Td(h)) {
|
||
for (f = 0, c = Sd(a); c > f; f++)
|
||
if (v = y(a[f]), v && ps(ms, v))
|
||
return v;
|
||
return new vr(!1);
|
||
}
|
||
l = Od(a, h);
|
||
}
|
||
for (d = n ? a.next : l.next; !(g = md(d, l)).done; ) {
|
||
try {
|
||
v = y(g.value);
|
||
} catch (x) {
|
||
ys(l, "throw", x);
|
||
}
|
||
if (typeof v == "object" && v && ps(ms, v))
|
||
return v;
|
||
}
|
||
return new vr(!1);
|
||
}, wd = G, Bu = wd("iterator"), Fu = !1;
|
||
try {
|
||
var Cd = 0, bs = {
|
||
next: function() {
|
||
return { done: !!Cd++ };
|
||
},
|
||
return: function() {
|
||
Fu = !0;
|
||
}
|
||
};
|
||
bs[Bu] = function() {
|
||
return this;
|
||
}, Array.from(bs, function() {
|
||
throw 2;
|
||
});
|
||
} catch {
|
||
}
|
||
var Ad = function(a, e) {
|
||
if (!e && !Fu)
|
||
return !1;
|
||
var t = !1;
|
||
try {
|
||
var r = {};
|
||
r[Bu] = function() {
|
||
return {
|
||
next: function() {
|
||
return { done: t = !0 };
|
||
}
|
||
};
|
||
}, a(r);
|
||
} catch {
|
||
}
|
||
return t;
|
||
}, Pd = Mr, Rd = Ad, Id = Nt.CONSTRUCTOR, ju = Id || !Rd(function(a) {
|
||
Pd.all(a).then(void 0, function() {
|
||
});
|
||
}), Nd = ee, Md = Y, _d = Se, Dd = vt, Vd = ji, Ld = ku, kd = ju;
|
||
Nd({ target: "Promise", stat: !0, forced: kd }, {
|
||
all: function(e) {
|
||
var t = this, r = Dd.f(t), i = r.resolve, n = r.reject, o = Vd(function() {
|
||
var s = _d(t.resolve), u = [], l = 0, h = 1;
|
||
Ld(e, function(f) {
|
||
var c = l++, v = !1;
|
||
h++, Md(s, t, f).then(function(d) {
|
||
v || (v = !0, u[c] = d, --h || i(u));
|
||
}, n);
|
||
}), --h || i(u);
|
||
});
|
||
return o.error && n(o.value), r.promise;
|
||
}
|
||
});
|
||
var Bd = ee, Fd = Nt.CONSTRUCTOR, oi = Mr, jd = ze, Ud = D, zd = Ge, xs = oi && oi.prototype;
|
||
Bd({ target: "Promise", proto: !0, forced: Fd, real: !0 }, {
|
||
catch: function(a) {
|
||
return this.then(void 0, a);
|
||
}
|
||
});
|
||
if (Ud(oi)) {
|
||
var Ts = jd("Promise").prototype.catch;
|
||
xs.catch !== Ts && zd(xs, "catch", Ts, { unsafe: !0 });
|
||
}
|
||
var Gd = ee, Hd = Y, Yd = Se, Xd = vt, Wd = ji, qd = ku, Qd = ju;
|
||
Gd({ target: "Promise", stat: !0, forced: Qd }, {
|
||
race: function(e) {
|
||
var t = this, r = Xd.f(t), i = r.reject, n = Wd(function() {
|
||
var o = Yd(t.resolve);
|
||
qd(e, function(s) {
|
||
Hd(o, t, s).then(r.resolve, i);
|
||
});
|
||
});
|
||
return n.error && i(n.value), r.promise;
|
||
}
|
||
});
|
||
var Kd = ee, Zd = Y, Jd = vt, ep = Nt.CONSTRUCTOR;
|
||
Kd({ target: "Promise", stat: !0, forced: ep }, {
|
||
reject: function(e) {
|
||
var t = Jd.f(this);
|
||
return Zd(t.reject, void 0, e), t.promise;
|
||
}
|
||
});
|
||
var tp = K, rp = Te, ap = vt, ip = function(a, e) {
|
||
if (tp(a), rp(e) && e.constructor === a)
|
||
return e;
|
||
var t = ap.f(a), r = t.resolve;
|
||
return r(e), t.promise;
|
||
}, np = ee, sp = ze, op = Nt.CONSTRUCTOR, up = ip;
|
||
sp("Promise");
|
||
np({ target: "Promise", stat: !0, forced: op }, {
|
||
resolve: function(e) {
|
||
return up(this, e);
|
||
}
|
||
});
|
||
function Ss(a, e, t, r, i, n, o) {
|
||
try {
|
||
var s = a[n](o), u = s.value;
|
||
} catch (l) {
|
||
t(l);
|
||
return;
|
||
}
|
||
s.done ? e(u) : Promise.resolve(u).then(r, i);
|
||
}
|
||
function xe(a) {
|
||
return function() {
|
||
var e = this, t = arguments;
|
||
return new Promise(function(r, i) {
|
||
var n = a.apply(e, t);
|
||
function o(u) {
|
||
Ss(n, r, i, o, s, "next", u);
|
||
}
|
||
function s(u) {
|
||
Ss(n, r, i, o, s, "throw", u);
|
||
}
|
||
o(void 0);
|
||
});
|
||
};
|
||
}
|
||
var lp = Vi, hp = String, pe = function(a) {
|
||
if (lp(a) === "Symbol")
|
||
throw TypeError("Cannot convert a Symbol value to a string");
|
||
return hp(a);
|
||
}, vp = K, Uu = function() {
|
||
var a = vp(this), e = "";
|
||
return a.hasIndices && (e += "d"), a.global && (e += "g"), a.ignoreCase && (e += "i"), a.multiline && (e += "m"), a.dotAll && (e += "s"), a.unicode && (e += "u"), a.unicodeSets && (e += "v"), a.sticky && (e += "y"), e;
|
||
}, Yi = L, fp = z, Xi = fp.RegExp, Wi = Yi(function() {
|
||
var a = Xi("a", "y");
|
||
return a.lastIndex = 2, a.exec("abcd") != null;
|
||
}), cp = Wi || Yi(function() {
|
||
return !Xi("a", "y").sticky;
|
||
}), gp = Wi || Yi(function() {
|
||
var a = Xi("^r", "gy");
|
||
return a.lastIndex = 2, a.exec("str") != null;
|
||
}), zu = {
|
||
BROKEN_CARET: gp,
|
||
MISSED_STICKY: cp,
|
||
UNSUPPORTED_Y: Wi
|
||
}, Gu = {}, dp = su, pp = _i, yp = Object.keys || function(e) {
|
||
return dp(e, pp);
|
||
}, mp = ce, bp = Jo, xp = de, Tp = K, Sp = Ct, Op = yp;
|
||
Gu.f = mp && !bp ? Object.defineProperties : function(e, t) {
|
||
Tp(e);
|
||
for (var r = Sp(t), i = Op(t), n = i.length, o = 0, s; n > o; )
|
||
xp.f(e, s = i[o++], r[s]);
|
||
return e;
|
||
};
|
||
var Ep = K, $p = Gu, Os = _i, wp = Ni, Cp = yu, Ap = Ar, Pp = Ii, Es = ">", $s = "<", ui = "prototype", li = "script", Hu = Pp("IE_PROTO"), wa = function() {
|
||
}, Yu = function(a) {
|
||
return $s + li + Es + a + $s + "/" + li + Es;
|
||
}, ws = function(a) {
|
||
a.write(Yu("")), a.close();
|
||
var e = a.parentWindow.Object;
|
||
return a = null, e;
|
||
}, Rp = function() {
|
||
var a = Ap("iframe"), e = "java" + li + ":", t;
|
||
return a.style.display = "none", Cp.appendChild(a), a.src = String(e), t = a.contentWindow.document, t.open(), t.write(Yu("document.F=Object")), t.close(), t.F;
|
||
}, er, fr = function() {
|
||
try {
|
||
er = new ActiveXObject("htmlfile");
|
||
} catch {
|
||
}
|
||
fr = typeof document < "u" ? document.domain && er ? ws(er) : Rp() : ws(er);
|
||
for (var a = Os.length; a--; )
|
||
delete fr[ui][Os[a]];
|
||
return fr();
|
||
};
|
||
wp[Hu] = !0;
|
||
var qi = Object.create || function(e, t) {
|
||
var r;
|
||
return e !== null ? (wa[ui] = Ep(e), r = new wa(), wa[ui] = null, r[Hu] = e) : r = fr(), t === void 0 ? r : $p.f(r, t);
|
||
}, Ip = L, Np = z, Mp = Np.RegExp, _p = Ip(function() {
|
||
var a = Mp(".", "s");
|
||
return !(a.dotAll && a.exec(`
|
||
`) && a.flags === "s");
|
||
}), Dp = L, Vp = z, Lp = Vp.RegExp, kp = Dp(function() {
|
||
var a = Lp("(?<a>b)", "g");
|
||
return a.exec("b").groups.a !== "b" || "b".replace(a, "$<a>c") !== "bc";
|
||
}), rt = Y, Dr = k, Bp = pe, Fp = Uu, jp = zu, Up = Ot, zp = qi, Gp = Rr.get, Hp = _p, Yp = kp, Xp = Up("native-string-replace", String.prototype.replace), Tr = RegExp.prototype.exec, hi = Tr, Wp = Dr("".charAt), qp = Dr("".indexOf), Qp = Dr("".replace), Ca = Dr("".slice), vi = function() {
|
||
var a = /a/, e = /b*/g;
|
||
return rt(Tr, a, "a"), rt(Tr, e, "a"), a.lastIndex !== 0 || e.lastIndex !== 0;
|
||
}(), Xu = jp.BROKEN_CARET, fi = /()??/.exec("")[1] !== void 0, Kp = vi || fi || Xu || Hp || Yp;
|
||
Kp && (hi = function(e) {
|
||
var t = this, r = Gp(t), i = Bp(e), n = r.raw, o, s, u, l, h, f, c;
|
||
if (n)
|
||
return n.lastIndex = t.lastIndex, o = rt(hi, n, i), t.lastIndex = n.lastIndex, o;
|
||
var v = r.groups, d = Xu && t.sticky, g = rt(Fp, t), p = t.source, y = 0, x = i;
|
||
if (d && (g = Qp(g, "y", ""), qp(g, "g") === -1 && (g += "g"), x = Ca(i, t.lastIndex), t.lastIndex > 0 && (!t.multiline || t.multiline && Wp(i, t.lastIndex - 1) !== `
|
||
`) && (p = "(?: " + p + ")", x = " " + x, y++), s = new RegExp("^(?:" + p + ")", g)), fi && (s = new RegExp("^" + p + "$(?!\\s)", g)), vi && (u = t.lastIndex), l = rt(Tr, d ? s : t, x), d ? l ? (l.input = Ca(l.input, y), l[0] = Ca(l[0], y), l.index = t.lastIndex, t.lastIndex += l[0].length) : t.lastIndex = 0 : vi && l && (t.lastIndex = t.global ? l.index + l[0].length : u), fi && l && l.length > 1 && rt(Xp, l[0], s, function() {
|
||
for (h = 1; h < arguments.length - 2; h++)
|
||
arguments[h] === void 0 && (l[h] = void 0);
|
||
}), l && v)
|
||
for (l.groups = f = zp(null), h = 0; h < v.length; h++)
|
||
c = v[h], f[c[0]] = l[c[1]];
|
||
return l;
|
||
});
|
||
var Vr = hi, Zp = ee, Cs = Vr;
|
||
Zp({ target: "RegExp", proto: !0, forced: /./.exec !== Cs }, {
|
||
exec: Cs
|
||
});
|
||
var As = It, Ps = Ge, Jp = Vr, Rs = L, Wu = G, ey = At, ty = Wu("species"), Aa = RegExp.prototype, Qi = function(a, e, t, r) {
|
||
var i = Wu(a), n = !Rs(function() {
|
||
var l = {};
|
||
return l[i] = function() {
|
||
return 7;
|
||
}, ""[a](l) != 7;
|
||
}), o = n && !Rs(function() {
|
||
var l = !1, h = /a/;
|
||
return a === "split" && (h = {}, h.constructor = {}, h.constructor[ty] = function() {
|
||
return h;
|
||
}, h.flags = "", h[i] = /./[i]), h.exec = function() {
|
||
return l = !0, null;
|
||
}, h[i](""), !l;
|
||
});
|
||
if (!n || !o || t) {
|
||
var s = As(/./[i]), u = e(i, ""[a], function(l, h, f, c, v) {
|
||
var d = As(l), g = h.exec;
|
||
return g === Jp || g === Aa.exec ? n && !v ? { done: !0, value: s(h, f, c) } : { done: !0, value: d(f, h, c) } : { done: !1 };
|
||
});
|
||
Ps(String.prototype, a, u[0]), Ps(Aa, i, u[1]);
|
||
}
|
||
r && ey(Aa[i], "sham", !0);
|
||
}, Ki = k, ry = Ir, ay = pe, iy = ge, ny = Ki("".charAt), Is = Ki("".charCodeAt), sy = Ki("".slice), Ns = function(a) {
|
||
return function(e, t) {
|
||
var r = ay(iy(e)), i = ry(t), n = r.length, o, s;
|
||
return i < 0 || i >= n ? a ? "" : void 0 : (o = Is(r, i), o < 55296 || o > 56319 || i + 1 === n || (s = Is(r, i + 1)) < 56320 || s > 57343 ? a ? ny(r, i) : o : a ? sy(r, i, i + 2) : (o - 55296 << 10) + (s - 56320) + 65536);
|
||
};
|
||
}, oy = {
|
||
// `String.prototype.codePointAt` method
|
||
// https://tc39.es/ecma262/#sec-string.prototype.codepointat
|
||
codeAt: Ns(!1),
|
||
// `String.prototype.at` method
|
||
// https://github.com/mathiasbynens/String.prototype.at
|
||
charAt: Ns(!0)
|
||
}, uy = oy.charAt, Zi = function(a, e, t) {
|
||
return e + (t ? uy(a, e).length : 1);
|
||
}, Ms = Y, ly = K, hy = D, vy = je, fy = Vr, cy = TypeError, Ji = function(a, e) {
|
||
var t = a.exec;
|
||
if (hy(t)) {
|
||
var r = Ms(t, a, e);
|
||
return r !== null && ly(r), r;
|
||
}
|
||
if (vy(a) === "RegExp")
|
||
return Ms(fy, a, e);
|
||
throw cy("RegExp#exec called on incompatible receiver");
|
||
}, gy = Y, dy = Qi, py = K, yy = Ue, my = ht, Pa = pe, by = ge, xy = lt, Ty = Zi, _s = Ji;
|
||
dy("match", function(a, e, t) {
|
||
return [
|
||
// `String.prototype.match` method
|
||
// https://tc39.es/ecma262/#sec-string.prototype.match
|
||
function(i) {
|
||
var n = by(this), o = yy(i) ? void 0 : xy(i, a);
|
||
return o ? gy(o, i, n) : new RegExp(i)[a](Pa(n));
|
||
},
|
||
// `RegExp.prototype[@@match]` method
|
||
// https://tc39.es/ecma262/#sec-regexp.prototype-@@match
|
||
function(r) {
|
||
var i = py(this), n = Pa(r), o = t(e, i, n);
|
||
if (o.done)
|
||
return o.value;
|
||
if (!i.global)
|
||
return _s(i, n);
|
||
var s = i.unicode;
|
||
i.lastIndex = 0;
|
||
for (var u = [], l = 0, h; (h = _s(i, n)) !== null; ) {
|
||
var f = Pa(h[0]);
|
||
u[l] = f, f === "" && (i.lastIndex = Ty(n, my(i.lastIndex), s)), l++;
|
||
}
|
||
return l === 0 ? null : u;
|
||
}
|
||
];
|
||
});
|
||
var en = k, Sy = Cr, Oy = Math.floor, Ra = en("".charAt), Ey = en("".replace), Ia = en("".slice), $y = /\$([$&'`]|\d{1,2}|<[^>]*>)/g, wy = /\$([$&'`]|\d{1,2})/g, Cy = function(a, e, t, r, i, n) {
|
||
var o = t + a.length, s = r.length, u = wy;
|
||
return i !== void 0 && (i = Sy(i), u = $y), Ey(n, u, function(l, h) {
|
||
var f;
|
||
switch (Ra(h, 0)) {
|
||
case "$":
|
||
return "$";
|
||
case "&":
|
||
return a;
|
||
case "`":
|
||
return Ia(e, 0, t);
|
||
case "'":
|
||
return Ia(e, o);
|
||
case "<":
|
||
f = i[Ia(h, 1, -1)];
|
||
break;
|
||
default:
|
||
var c = +h;
|
||
if (c === 0)
|
||
return l;
|
||
if (c > s) {
|
||
var v = Oy(c / 10);
|
||
return v === 0 ? l : v <= s ? r[v - 1] === void 0 ? Ra(h, 1) : r[v - 1] + Ra(h, 1) : l;
|
||
}
|
||
f = r[c - 1];
|
||
}
|
||
return f === void 0 ? "" : f;
|
||
});
|
||
}, Ay = ki, Ds = Y, Lr = k, Py = Qi, Ry = L, Iy = K, Ny = D, My = Ue, _y = Ir, Dy = ht, Qe = pe, Vy = ge, Ly = Zi, ky = lt, By = Cy, Fy = Ji, jy = G, ci = jy("replace"), Uy = Math.max, zy = Math.min, Gy = Lr([].concat), Na = Lr([].push), Vs = Lr("".indexOf), Ls = Lr("".slice), Hy = function(a) {
|
||
return a === void 0 ? a : String(a);
|
||
}, Yy = function() {
|
||
return "a".replace(/./, "$0") === "$0";
|
||
}(), ks = function() {
|
||
return /./[ci] ? /./[ci]("a", "$0") === "" : !1;
|
||
}(), Xy = !Ry(function() {
|
||
var a = /./;
|
||
return a.exec = function() {
|
||
var e = [];
|
||
return e.groups = { a: "7" }, e;
|
||
}, "".replace(a, "$<a>") !== "7";
|
||
});
|
||
Py("replace", function(a, e, t) {
|
||
var r = ks ? "$" : "$0";
|
||
return [
|
||
// `String.prototype.replace` method
|
||
// https://tc39.es/ecma262/#sec-string.prototype.replace
|
||
function(n, o) {
|
||
var s = Vy(this), u = My(n) ? void 0 : ky(n, ci);
|
||
return u ? Ds(u, n, s, o) : Ds(e, Qe(s), n, o);
|
||
},
|
||
// `RegExp.prototype[@@replace]` method
|
||
// https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
|
||
function(i, n) {
|
||
var o = Iy(this), s = Qe(i);
|
||
if (typeof n == "string" && Vs(n, r) === -1 && Vs(n, "$<") === -1) {
|
||
var u = t(e, o, s, n);
|
||
if (u.done)
|
||
return u.value;
|
||
}
|
||
var l = Ny(n);
|
||
l || (n = Qe(n));
|
||
var h = o.global;
|
||
if (h) {
|
||
var f = o.unicode;
|
||
o.lastIndex = 0;
|
||
}
|
||
for (var c = []; ; ) {
|
||
var v = Fy(o, s);
|
||
if (v === null || (Na(c, v), !h))
|
||
break;
|
||
var d = Qe(v[0]);
|
||
d === "" && (o.lastIndex = Ly(s, Dy(o.lastIndex), f));
|
||
}
|
||
for (var g = "", p = 0, y = 0; y < c.length; y++) {
|
||
v = c[y];
|
||
for (var x = Qe(v[0]), b = Uy(zy(_y(v.index), s.length), 0), T = [], $ = 1; $ < v.length; $++)
|
||
Na(T, Hy(v[$]));
|
||
var E = v.groups;
|
||
if (l) {
|
||
var S = Gy([x], T, b, s);
|
||
E !== void 0 && Na(S, E);
|
||
var C = Qe(Ay(n, void 0, S));
|
||
} else
|
||
C = By(x, s, b, T, E, n);
|
||
b >= p && (g += Ls(s, p, b) + C, p = b + x.length);
|
||
}
|
||
return g + Ls(s, p);
|
||
}
|
||
];
|
||
}, !Xy || !Yy || ks);
|
||
var Wy = Te, qy = je, Qy = G, Ky = Qy("match"), qu = function(a) {
|
||
var e;
|
||
return Wy(a) && ((e = a[Ky]) !== void 0 ? !!e : qy(a) == "RegExp");
|
||
}, Zy = qu, Jy = TypeError, tn = function(a) {
|
||
if (Zy(a))
|
||
throw Jy("The method doesn't accept regular expressions");
|
||
return a;
|
||
}, em = G, tm = em("match"), rn = function(a) {
|
||
var e = /./;
|
||
try {
|
||
"/./"[a](e);
|
||
} catch {
|
||
try {
|
||
return e[tm] = !1, "/./"[a](e);
|
||
} catch {
|
||
}
|
||
}
|
||
return !1;
|
||
}, rm = ee, Qu = It, am = ut.f, im = ht, Bs = pe, nm = tn, sm = ge, om = rn, Fs = Qu("".startsWith), um = Qu("".slice), lm = Math.min, Ku = om("startsWith"), hm = !Ku && !!function() {
|
||
var a = am(String.prototype, "startsWith");
|
||
return a && !a.writable;
|
||
}();
|
||
rm({ target: "String", proto: !0, forced: !hm && !Ku }, {
|
||
startsWith: function(e) {
|
||
var t = Bs(sm(this));
|
||
nm(e);
|
||
var r = im(lm(arguments.length > 1 ? arguments[1] : void 0, t.length)), i = Bs(e);
|
||
return Fs ? Fs(t, i, r) : um(t, r, r + i.length) === i;
|
||
}
|
||
});
|
||
var vm = G, fm = qi, cm = de.f, gi = vm("unscopables"), di = Array.prototype;
|
||
di[gi] == null && cm(di, gi, {
|
||
configurable: !0,
|
||
value: fm(null)
|
||
});
|
||
var gm = function(a) {
|
||
di[gi][a] = !0;
|
||
}, dm = L, pm = !dm(function() {
|
||
function a() {
|
||
}
|
||
return a.prototype.constructor = null, Object.getPrototypeOf(new a()) !== a.prototype;
|
||
}), ym = le, mm = D, bm = Cr, xm = Ii, Tm = pm, js = xm("IE_PROTO"), pi = Object, Sm = pi.prototype, Zu = Tm ? pi.getPrototypeOf : function(a) {
|
||
var e = bm(a);
|
||
if (ym(e, js))
|
||
return e[js];
|
||
var t = e.constructor;
|
||
return mm(t) && e instanceof t ? t.prototype : e instanceof pi ? Sm : null;
|
||
}, Om = L, Em = D, $m = Te, Us = Zu, wm = Ge, Cm = G, yi = Cm("iterator"), Ju = !1, Be, Ma, _a;
|
||
[].keys && (_a = [].keys(), "next" in _a ? (Ma = Us(Us(_a)), Ma !== Object.prototype && (Be = Ma)) : Ju = !0);
|
||
var Am = !$m(Be) || Om(function() {
|
||
var a = {};
|
||
return Be[yi].call(a) !== a;
|
||
});
|
||
Am && (Be = {});
|
||
Em(Be[yi]) || wm(Be, yi, function() {
|
||
return this;
|
||
});
|
||
var el = {
|
||
IteratorPrototype: Be,
|
||
BUGGY_SAFARI_ITERATORS: Ju
|
||
}, Pm = el.IteratorPrototype, Rm = qi, Im = Or, Nm = Di, Mm = Mt, _m = function() {
|
||
return this;
|
||
}, Dm = function(a, e, t, r) {
|
||
var i = e + " Iterator";
|
||
return a.prototype = Rm(Pm, { next: Im(+!r, t) }), Nm(a, i, !1), Mm[i] = _m, a;
|
||
}, Vm = ee, Lm = Y, tl = Pr, km = D, Bm = Dm, zs = Zu, Gs = lu, Fm = Di, jm = At, Da = Ge, Um = G, zm = Mt, rl = el, Gm = tl.PROPER, Hm = tl.CONFIGURABLE, Hs = rl.IteratorPrototype, tr = rl.BUGGY_SAFARI_ITERATORS, gt = Um("iterator"), Ys = "keys", dt = "values", Xs = "entries", Ym = function() {
|
||
return this;
|
||
}, Xm = function(a, e, t, r, i, n, o) {
|
||
Bm(t, e, r);
|
||
var s = function(y) {
|
||
if (y === i && c)
|
||
return c;
|
||
if (!tr && y in h)
|
||
return h[y];
|
||
switch (y) {
|
||
case Ys:
|
||
return function() {
|
||
return new t(this, y);
|
||
};
|
||
case dt:
|
||
return function() {
|
||
return new t(this, y);
|
||
};
|
||
case Xs:
|
||
return function() {
|
||
return new t(this, y);
|
||
};
|
||
}
|
||
return function() {
|
||
return new t(this);
|
||
};
|
||
}, u = e + " Iterator", l = !1, h = a.prototype, f = h[gt] || h["@@iterator"] || i && h[i], c = !tr && f || s(i), v = e == "Array" && h.entries || f, d, g, p;
|
||
if (v && (d = zs(v.call(new a())), d !== Object.prototype && d.next && (zs(d) !== Hs && (Gs ? Gs(d, Hs) : km(d[gt]) || Da(d, gt, Ym)), Fm(d, u, !0))), Gm && i == dt && f && f.name !== dt && (Hm ? jm(h, "name", dt) : (l = !0, c = function() {
|
||
return Lm(f, this);
|
||
})), i)
|
||
if (g = {
|
||
values: s(dt),
|
||
keys: n ? c : s(Ys),
|
||
entries: s(Xs)
|
||
}, o)
|
||
for (p in g)
|
||
(tr || l || !(p in h)) && Da(h, p, g[p]);
|
||
else
|
||
Vm({ target: e, proto: !0, forced: tr || l }, g);
|
||
return h[gt] !== c && Da(h, gt, c, { name: i }), zm[e] = c, g;
|
||
}, Wm = function(a, e) {
|
||
return { value: a, done: e };
|
||
}, qm = Ct, an = gm, Ws = Mt, al = Rr, Qm = de.f, Km = Xm, rr = Wm, Zm = ce, il = "Array Iterator", Jm = al.set, e0 = al.getterFor(il), t0 = Km(Array, "Array", function(a, e) {
|
||
Jm(this, {
|
||
type: il,
|
||
target: qm(a),
|
||
// target
|
||
index: 0,
|
||
// next index
|
||
kind: e
|
||
// kind
|
||
});
|
||
}, function() {
|
||
var a = e0(this), e = a.target, t = a.kind, r = a.index++;
|
||
return !e || r >= e.length ? (a.target = void 0, rr(void 0, !0)) : t == "keys" ? rr(r, !1) : t == "values" ? rr(e[r], !1) : rr([r, e[r]], !1);
|
||
}, "values"), qs = Ws.Arguments = Ws.Array;
|
||
an("keys");
|
||
an("values");
|
||
an("entries");
|
||
if (Zm && qs.name !== "values")
|
||
try {
|
||
Qm(qs, "name", { value: "values" });
|
||
} catch {
|
||
}
|
||
var r0 = {
|
||
CSSRuleList: 0,
|
||
CSSStyleDeclaration: 0,
|
||
CSSValueList: 0,
|
||
ClientRectList: 0,
|
||
DOMRectList: 0,
|
||
DOMStringList: 0,
|
||
DOMTokenList: 1,
|
||
DataTransferItemList: 0,
|
||
FileList: 0,
|
||
HTMLAllCollection: 0,
|
||
HTMLCollection: 0,
|
||
HTMLFormElement: 0,
|
||
HTMLSelectElement: 0,
|
||
MediaList: 0,
|
||
MimeTypeArray: 0,
|
||
NamedNodeMap: 0,
|
||
NodeList: 1,
|
||
PaintRequestList: 0,
|
||
Plugin: 0,
|
||
PluginArray: 0,
|
||
SVGLengthList: 0,
|
||
SVGNumberList: 0,
|
||
SVGPathSegList: 0,
|
||
SVGPointList: 0,
|
||
SVGStringList: 0,
|
||
SVGTransformList: 0,
|
||
SourceBufferList: 0,
|
||
StyleSheetList: 0,
|
||
TextTrackCueList: 0,
|
||
TextTrackList: 0,
|
||
TouchList: 0
|
||
}, a0 = Ar, Va = a0("span").classList, Qs = Va && Va.constructor && Va.constructor.prototype, i0 = Qs === Object.prototype ? void 0 : Qs, Ks = z, nl = r0, n0 = i0, bt = t0, La = At, sl = G, ka = sl("iterator"), Zs = sl("toStringTag"), Ba = bt.values, ol = function(a, e) {
|
||
if (a) {
|
||
if (a[ka] !== Ba)
|
||
try {
|
||
La(a, ka, Ba);
|
||
} catch {
|
||
a[ka] = Ba;
|
||
}
|
||
if (a[Zs] || La(a, Zs, e), nl[e]) {
|
||
for (var t in bt)
|
||
if (a[t] !== bt[t])
|
||
try {
|
||
La(a, t, bt[t]);
|
||
} catch {
|
||
a[t] = bt[t];
|
||
}
|
||
}
|
||
}
|
||
};
|
||
for (var Fa in nl)
|
||
ol(Ks[Fa] && Ks[Fa].prototype, Fa);
|
||
ol(n0, "DOMTokenList");
|
||
function s0(a, e) {
|
||
if (Ya(a) !== "object" || a === null)
|
||
return a;
|
||
var t = a[Symbol.toPrimitive];
|
||
if (t !== void 0) {
|
||
var r = t.call(a, e || "default");
|
||
if (Ya(r) !== "object")
|
||
return r;
|
||
throw new TypeError("@@toPrimitive must return a primitive value.");
|
||
}
|
||
return (e === "string" ? String : Number)(a);
|
||
}
|
||
function o0(a) {
|
||
var e = s0(a, "string");
|
||
return Ya(e) === "symbol" ? e : String(e);
|
||
}
|
||
function nn(a, e, t) {
|
||
return e = o0(e), e in a ? Object.defineProperty(a, e, {
|
||
value: t,
|
||
enumerable: !0,
|
||
configurable: !0,
|
||
writable: !0
|
||
}) : a[e] = t, a;
|
||
}
|
||
var u0 = Se, l0 = Cr, h0 = zo, v0 = Nr, f0 = TypeError, Js = function(a) {
|
||
return function(e, t, r, i) {
|
||
u0(t);
|
||
var n = l0(e), o = h0(n), s = v0(n), u = a ? s - 1 : 0, l = a ? -1 : 1;
|
||
if (r < 2)
|
||
for (; ; ) {
|
||
if (u in o) {
|
||
i = o[u], u += l;
|
||
break;
|
||
}
|
||
if (u += l, a ? u < 0 : s <= u)
|
||
throw f0("Reduce of empty array with no initial value");
|
||
}
|
||
for (; a ? u >= 0 : s > u; u += l)
|
||
u in o && (i = t(i, o[u], u, n));
|
||
return i;
|
||
};
|
||
}, c0 = {
|
||
// `Array.prototype.reduce` method
|
||
// https://tc39.es/ecma262/#sec-array.prototype.reduce
|
||
left: Js(!1),
|
||
// `Array.prototype.reduceRight` method
|
||
// https://tc39.es/ecma262/#sec-array.prototype.reduceright
|
||
right: Js(!0)
|
||
}, g0 = L, ul = function(a, e) {
|
||
var t = [][a];
|
||
return !!t && g0(function() {
|
||
t.call(null, e || function() {
|
||
return 1;
|
||
}, 1);
|
||
});
|
||
}, d0 = ee, p0 = c0.left, y0 = ul, eo = $i, m0 = Rt, b0 = !m0 && eo > 79 && eo < 83, x0 = b0 || !y0("reduce");
|
||
d0({ target: "Array", proto: !0, forced: x0 }, {
|
||
reduce: function(e) {
|
||
var t = arguments.length;
|
||
return p0(this, e, t, t > 1 ? arguments[1] : void 0);
|
||
}
|
||
});
|
||
var T0 = ee, ll = It, S0 = ut.f, O0 = ht, to = pe, E0 = tn, $0 = ge, w0 = rn, ro = ll("".endsWith), C0 = ll("".slice), A0 = Math.min, hl = w0("endsWith"), P0 = !hl && !!function() {
|
||
var a = S0(String.prototype, "endsWith");
|
||
return a && !a.writable;
|
||
}();
|
||
T0({ target: "String", proto: !0, forced: !P0 && !hl }, {
|
||
endsWith: function(e) {
|
||
var t = to($0(this));
|
||
E0(e);
|
||
var r = arguments.length > 1 ? arguments[1] : void 0, i = t.length, n = r === void 0 ? i : A0(O0(r), i), o = to(e);
|
||
return ro ? ro(t, o, n) : C0(t, n - o.length, n) === o;
|
||
}
|
||
});
|
||
var R0 = Ai, I0 = de, N0 = Or, M0 = function(a, e, t) {
|
||
var r = R0(e);
|
||
r in a ? I0.f(a, r, N0(0, t)) : a[r] = t;
|
||
}, ao = iu, _0 = Nr, D0 = M0, V0 = Array, L0 = Math.max, k0 = function(a, e, t) {
|
||
for (var r = _0(a), i = ao(e, r), n = ao(t === void 0 ? r : t, r), o = V0(L0(n - i, 0)), s = 0; i < n; i++, s++)
|
||
D0(o, s, a[i]);
|
||
return o.length = s, o;
|
||
}, B0 = ki, pt = Y, sn = k, F0 = Qi, j0 = K, U0 = Ue, z0 = qu, io = ge, G0 = du, H0 = Zi, Y0 = ht, ja = pe, X0 = lt, no = k0, so = Ji, W0 = Vr, q0 = zu, Q0 = L, Ke = q0.UNSUPPORTED_Y, oo = 4294967295, K0 = Math.min, vl = [].push, Z0 = sn(/./.exec), Ze = sn(vl), yt = sn("".slice), J0 = !Q0(function() {
|
||
var a = /(?:)/, e = a.exec;
|
||
a.exec = function() {
|
||
return e.apply(this, arguments);
|
||
};
|
||
var t = "ab".split(a);
|
||
return t.length !== 2 || t[0] !== "a" || t[1] !== "b";
|
||
});
|
||
F0("split", function(a, e, t) {
|
||
var r;
|
||
return "abbc".split(/(b)*/)[1] == "c" || // eslint-disable-next-line regexp/no-empty-group -- required for testing
|
||
"test".split(/(?:)/, -1).length != 4 || "ab".split(/(?:ab)*/).length != 2 || ".".split(/(.?)(.?)/).length != 4 || // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
|
||
".".split(/()()/).length > 1 || "".split(/.?/).length ? r = function(i, n) {
|
||
var o = ja(io(this)), s = n === void 0 ? oo : n >>> 0;
|
||
if (s === 0)
|
||
return [];
|
||
if (i === void 0)
|
||
return [o];
|
||
if (!z0(i))
|
||
return pt(e, o, i, s);
|
||
for (var u = [], l = (i.ignoreCase ? "i" : "") + (i.multiline ? "m" : "") + (i.unicode ? "u" : "") + (i.sticky ? "y" : ""), h = 0, f = new RegExp(i.source, l + "g"), c, v, d; (c = pt(W0, f, o)) && (v = f.lastIndex, !(v > h && (Ze(u, yt(o, h, c.index)), c.length > 1 && c.index < o.length && B0(vl, u, no(c, 1)), d = c[0].length, h = v, u.length >= s))); )
|
||
f.lastIndex === c.index && f.lastIndex++;
|
||
return h === o.length ? (d || !Z0(f, "")) && Ze(u, "") : Ze(u, yt(o, h)), u.length > s ? no(u, 0, s) : u;
|
||
} : "0".split(void 0, 0).length ? r = function(i, n) {
|
||
return i === void 0 && n === 0 ? [] : pt(e, this, i, n);
|
||
} : r = e, [
|
||
// `String.prototype.split` method
|
||
// https://tc39.es/ecma262/#sec-string.prototype.split
|
||
function(n, o) {
|
||
var s = io(this), u = U0(n) ? void 0 : X0(n, a);
|
||
return u ? pt(u, n, s, o) : pt(r, ja(s), n, o);
|
||
},
|
||
// `RegExp.prototype[@@split]` method
|
||
// https://tc39.es/ecma262/#sec-regexp.prototype-@@split
|
||
//
|
||
// NOTE: This cannot be properly polyfilled in engines that don't support
|
||
// the 'y' flag.
|
||
function(i, n) {
|
||
var o = j0(this), s = ja(i), u = t(r, o, s, n, r !== e);
|
||
if (u.done)
|
||
return u.value;
|
||
var l = G0(o, RegExp), h = o.unicode, f = (o.ignoreCase ? "i" : "") + (o.multiline ? "m" : "") + (o.unicode ? "u" : "") + (Ke ? "g" : "y"), c = new l(Ke ? "^(?:" + o.source + ")" : o, f), v = n === void 0 ? oo : n >>> 0;
|
||
if (v === 0)
|
||
return [];
|
||
if (s.length === 0)
|
||
return so(c, s) === null ? [s] : [];
|
||
for (var d = 0, g = 0, p = []; g < s.length; ) {
|
||
c.lastIndex = Ke ? 0 : g;
|
||
var y = so(c, Ke ? yt(s, g) : s), x;
|
||
if (y === null || (x = K0(Y0(c.lastIndex + (Ke ? g : 0)), s.length)) === d)
|
||
g = H0(s, g, h);
|
||
else {
|
||
if (Ze(p, yt(s, d, g)), p.length === v)
|
||
return p;
|
||
for (var b = 1; b <= y.length - 1; b++)
|
||
if (Ze(p, y[b]), p.length === v)
|
||
return p;
|
||
g = d = x;
|
||
}
|
||
}
|
||
return Ze(p, yt(s, d)), p;
|
||
}
|
||
];
|
||
}, !J0, Ke);
|
||
var Le = {}, eb = {
|
||
get exports() {
|
||
return Le;
|
||
},
|
||
set exports(a) {
|
||
Le = a;
|
||
}
|
||
}, mi = {}, ar = {
|
||
get exports() {
|
||
return mi;
|
||
},
|
||
set exports(a) {
|
||
mi = a;
|
||
}
|
||
};
|
||
(function() {
|
||
var a, e, t, r, i, n;
|
||
typeof performance < "u" && performance !== null && performance.now ? ar.exports = function() {
|
||
return performance.now();
|
||
} : typeof process < "u" && process !== null && process.hrtime ? (ar.exports = function() {
|
||
return (a() - i) / 1e6;
|
||
}, e = process.hrtime, a = function() {
|
||
var o;
|
||
return o = e(), o[0] * 1e9 + o[1];
|
||
}, r = a(), n = process.uptime() * 1e9, i = r - n) : Date.now ? (ar.exports = function() {
|
||
return Date.now() - t;
|
||
}, t = Date.now()) : (ar.exports = function() {
|
||
return (/* @__PURE__ */ new Date()).getTime() - t;
|
||
}, t = (/* @__PURE__ */ new Date()).getTime());
|
||
}).call(gr);
|
||
var tb = mi, be = typeof window > "u" ? gr : window, ir = ["moz", "webkit"], it = "AnimationFrame", ot = be["request" + it], wt = be["cancel" + it] || be["cancelRequest" + it];
|
||
for (var mt = 0; !ot && mt < ir.length; mt++)
|
||
ot = be[ir[mt] + "Request" + it], wt = be[ir[mt] + "Cancel" + it] || be[ir[mt] + "CancelRequest" + it];
|
||
if (!ot || !wt) {
|
||
var Ua = 0, uo = 0, Me = [], rb = 1e3 / 60;
|
||
ot = function(a) {
|
||
if (Me.length === 0) {
|
||
var e = tb(), t = Math.max(0, rb - (e - Ua));
|
||
Ua = t + e, setTimeout(function() {
|
||
var r = Me.slice(0);
|
||
Me.length = 0;
|
||
for (var i = 0; i < r.length; i++)
|
||
if (!r[i].cancelled)
|
||
try {
|
||
r[i].callback(Ua);
|
||
} catch (n) {
|
||
setTimeout(function() {
|
||
throw n;
|
||
}, 0);
|
||
}
|
||
}, Math.round(t));
|
||
}
|
||
return Me.push({
|
||
handle: ++uo,
|
||
callback: a,
|
||
cancelled: !1
|
||
}), uo;
|
||
}, wt = function(a) {
|
||
for (var e = 0; e < Me.length; e++)
|
||
Me[e].handle === a && (Me[e].cancelled = !0);
|
||
};
|
||
}
|
||
eb.exports = function(a) {
|
||
return ot.call(be, a);
|
||
};
|
||
Le.cancel = function() {
|
||
wt.apply(be, arguments);
|
||
};
|
||
Le.polyfill = function(a) {
|
||
a || (a = be), a.requestAnimationFrame = ot, a.cancelAnimationFrame = wt;
|
||
};
|
||
var fl = `
|
||
\v\f\r \u2028\u2029\uFEFF`, ab = k, ib = ge, nb = pe, bi = fl, lo = ab("".replace), sb = RegExp("^[" + bi + "]+"), ob = RegExp("(^|[^" + bi + "])[" + bi + "]+$"), za = function(a) {
|
||
return function(e) {
|
||
var t = nb(ib(e));
|
||
return a & 1 && (t = lo(t, sb, "")), a & 2 && (t = lo(t, ob, "$1")), t;
|
||
};
|
||
}, ub = {
|
||
// `String.prototype.{ trimLeft, trimStart }` methods
|
||
// https://tc39.es/ecma262/#sec-string.prototype.trimstart
|
||
start: za(1),
|
||
// `String.prototype.{ trimRight, trimEnd }` methods
|
||
// https://tc39.es/ecma262/#sec-string.prototype.trimend
|
||
end: za(2),
|
||
// `String.prototype.trim` method
|
||
// https://tc39.es/ecma262/#sec-string.prototype.trim
|
||
trim: za(3)
|
||
}, lb = Pr.PROPER, hb = L, ho = fl, vo = "
", vb = function(a) {
|
||
return hb(function() {
|
||
return !!ho[a]() || vo[a]() !== vo || lb && ho[a].name !== a;
|
||
});
|
||
}, fb = ee, cb = ub.trim, gb = vb;
|
||
fb({ target: "String", proto: !0, forced: gb("trim") }, {
|
||
trim: function() {
|
||
return cb(this);
|
||
}
|
||
});
|
||
var xi = function(a) {
|
||
this.ok = !1, this.alpha = 1, a.charAt(0) == "#" && (a = a.substr(1, 6)), a = a.replace(/ /g, ""), a = a.toLowerCase();
|
||
var e = {
|
||
aliceblue: "f0f8ff",
|
||
antiquewhite: "faebd7",
|
||
aqua: "00ffff",
|
||
aquamarine: "7fffd4",
|
||
azure: "f0ffff",
|
||
beige: "f5f5dc",
|
||
bisque: "ffe4c4",
|
||
black: "000000",
|
||
blanchedalmond: "ffebcd",
|
||
blue: "0000ff",
|
||
blueviolet: "8a2be2",
|
||
brown: "a52a2a",
|
||
burlywood: "deb887",
|
||
cadetblue: "5f9ea0",
|
||
chartreuse: "7fff00",
|
||
chocolate: "d2691e",
|
||
coral: "ff7f50",
|
||
cornflowerblue: "6495ed",
|
||
cornsilk: "fff8dc",
|
||
crimson: "dc143c",
|
||
cyan: "00ffff",
|
||
darkblue: "00008b",
|
||
darkcyan: "008b8b",
|
||
darkgoldenrod: "b8860b",
|
||
darkgray: "a9a9a9",
|
||
darkgreen: "006400",
|
||
darkkhaki: "bdb76b",
|
||
darkmagenta: "8b008b",
|
||
darkolivegreen: "556b2f",
|
||
darkorange: "ff8c00",
|
||
darkorchid: "9932cc",
|
||
darkred: "8b0000",
|
||
darksalmon: "e9967a",
|
||
darkseagreen: "8fbc8f",
|
||
darkslateblue: "483d8b",
|
||
darkslategray: "2f4f4f",
|
||
darkturquoise: "00ced1",
|
||
darkviolet: "9400d3",
|
||
deeppink: "ff1493",
|
||
deepskyblue: "00bfff",
|
||
dimgray: "696969",
|
||
dodgerblue: "1e90ff",
|
||
feldspar: "d19275",
|
||
firebrick: "b22222",
|
||
floralwhite: "fffaf0",
|
||
forestgreen: "228b22",
|
||
fuchsia: "ff00ff",
|
||
gainsboro: "dcdcdc",
|
||
ghostwhite: "f8f8ff",
|
||
gold: "ffd700",
|
||
goldenrod: "daa520",
|
||
gray: "808080",
|
||
green: "008000",
|
||
greenyellow: "adff2f",
|
||
honeydew: "f0fff0",
|
||
hotpink: "ff69b4",
|
||
indianred: "cd5c5c",
|
||
indigo: "4b0082",
|
||
ivory: "fffff0",
|
||
khaki: "f0e68c",
|
||
lavender: "e6e6fa",
|
||
lavenderblush: "fff0f5",
|
||
lawngreen: "7cfc00",
|
||
lemonchiffon: "fffacd",
|
||
lightblue: "add8e6",
|
||
lightcoral: "f08080",
|
||
lightcyan: "e0ffff",
|
||
lightgoldenrodyellow: "fafad2",
|
||
lightgrey: "d3d3d3",
|
||
lightgreen: "90ee90",
|
||
lightpink: "ffb6c1",
|
||
lightsalmon: "ffa07a",
|
||
lightseagreen: "20b2aa",
|
||
lightskyblue: "87cefa",
|
||
lightslateblue: "8470ff",
|
||
lightslategray: "778899",
|
||
lightsteelblue: "b0c4de",
|
||
lightyellow: "ffffe0",
|
||
lime: "00ff00",
|
||
limegreen: "32cd32",
|
||
linen: "faf0e6",
|
||
magenta: "ff00ff",
|
||
maroon: "800000",
|
||
mediumaquamarine: "66cdaa",
|
||
mediumblue: "0000cd",
|
||
mediumorchid: "ba55d3",
|
||
mediumpurple: "9370d8",
|
||
mediumseagreen: "3cb371",
|
||
mediumslateblue: "7b68ee",
|
||
mediumspringgreen: "00fa9a",
|
||
mediumturquoise: "48d1cc",
|
||
mediumvioletred: "c71585",
|
||
midnightblue: "191970",
|
||
mintcream: "f5fffa",
|
||
mistyrose: "ffe4e1",
|
||
moccasin: "ffe4b5",
|
||
navajowhite: "ffdead",
|
||
navy: "000080",
|
||
oldlace: "fdf5e6",
|
||
olive: "808000",
|
||
olivedrab: "6b8e23",
|
||
orange: "ffa500",
|
||
orangered: "ff4500",
|
||
orchid: "da70d6",
|
||
palegoldenrod: "eee8aa",
|
||
palegreen: "98fb98",
|
||
paleturquoise: "afeeee",
|
||
palevioletred: "d87093",
|
||
papayawhip: "ffefd5",
|
||
peachpuff: "ffdab9",
|
||
peru: "cd853f",
|
||
pink: "ffc0cb",
|
||
plum: "dda0dd",
|
||
powderblue: "b0e0e6",
|
||
purple: "800080",
|
||
rebeccapurple: "663399",
|
||
red: "ff0000",
|
||
rosybrown: "bc8f8f",
|
||
royalblue: "4169e1",
|
||
saddlebrown: "8b4513",
|
||
salmon: "fa8072",
|
||
sandybrown: "f4a460",
|
||
seagreen: "2e8b57",
|
||
seashell: "fff5ee",
|
||
sienna: "a0522d",
|
||
silver: "c0c0c0",
|
||
skyblue: "87ceeb",
|
||
slateblue: "6a5acd",
|
||
slategray: "708090",
|
||
snow: "fffafa",
|
||
springgreen: "00ff7f",
|
||
steelblue: "4682b4",
|
||
tan: "d2b48c",
|
||
teal: "008080",
|
||
thistle: "d8bfd8",
|
||
tomato: "ff6347",
|
||
turquoise: "40e0d0",
|
||
violet: "ee82ee",
|
||
violetred: "d02090",
|
||
wheat: "f5deb3",
|
||
white: "ffffff",
|
||
whitesmoke: "f5f5f5",
|
||
yellow: "ffff00",
|
||
yellowgreen: "9acd32"
|
||
};
|
||
a = e[a] || a;
|
||
for (var t = [
|
||
{
|
||
re: /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,
|
||
example: ["rgba(123, 234, 45, 0.8)", "rgba(255,234,245,1.0)"],
|
||
process: function(u) {
|
||
return [
|
||
parseInt(u[1]),
|
||
parseInt(u[2]),
|
||
parseInt(u[3]),
|
||
parseFloat(u[4])
|
||
];
|
||
}
|
||
},
|
||
{
|
||
re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
|
||
example: ["rgb(123, 234, 45)", "rgb(255,234,245)"],
|
||
process: function(u) {
|
||
return [
|
||
parseInt(u[1]),
|
||
parseInt(u[2]),
|
||
parseInt(u[3])
|
||
];
|
||
}
|
||
},
|
||
{
|
||
re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
|
||
example: ["#00ff00", "336699"],
|
||
process: function(u) {
|
||
return [
|
||
parseInt(u[1], 16),
|
||
parseInt(u[2], 16),
|
||
parseInt(u[3], 16)
|
||
];
|
||
}
|
||
},
|
||
{
|
||
re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
||
example: ["#fb0", "f0f"],
|
||
process: function(u) {
|
||
return [
|
||
parseInt(u[1] + u[1], 16),
|
||
parseInt(u[2] + u[2], 16),
|
||
parseInt(u[3] + u[3], 16)
|
||
];
|
||
}
|
||
}
|
||
], r = 0; r < t.length; r++) {
|
||
var i = t[r].re, n = t[r].process, o = i.exec(a);
|
||
if (o) {
|
||
var s = n(o);
|
||
this.r = s[0], this.g = s[1], this.b = s[2], s.length > 3 && (this.alpha = s[3]), this.ok = !0;
|
||
}
|
||
}
|
||
this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.alpha = this.alpha < 0 ? 0 : this.alpha > 1 || isNaN(this.alpha) ? 1 : this.alpha, this.toRGB = function() {
|
||
return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
|
||
}, this.toRGBA = function() {
|
||
return "rgba(" + this.r + ", " + this.g + ", " + this.b + ", " + this.alpha + ")";
|
||
}, this.toHex = function() {
|
||
var u = this.r.toString(16), l = this.g.toString(16), h = this.b.toString(16);
|
||
return u.length == 1 && (u = "0" + u), l.length == 1 && (l = "0" + l), h.length == 1 && (h = "0" + h), "#" + u + l + h;
|
||
}, this.getHelpXML = function() {
|
||
for (var u = new Array(), l = 0; l < t.length; l++)
|
||
for (var h = t[l].example, f = 0; f < h.length; f++)
|
||
u[u.length] = h[f];
|
||
for (var c in e)
|
||
u[u.length] = c;
|
||
var v = document.createElement("ul");
|
||
v.setAttribute("id", "rgbcolor-examples");
|
||
for (var l = 0; l < u.length; l++)
|
||
try {
|
||
var d = document.createElement("li"), g = new RGBColor(u[l]), p = document.createElement("div");
|
||
p.style.cssText = "margin: 3px; border: 1px solid black; background:" + g.toHex() + "; color:" + g.toHex(), p.appendChild(document.createTextNode("test"));
|
||
var y = document.createTextNode(
|
||
" " + u[l] + " -> " + g.toRGB() + " -> " + g.toHex()
|
||
);
|
||
d.appendChild(p), d.appendChild(y), v.appendChild(d);
|
||
} catch {
|
||
}
|
||
return v;
|
||
};
|
||
}, db = ee, pb = It, yb = nu.indexOf, mb = ul, Ti = pb([].indexOf), cl = !!Ti && 1 / Ti([1], 1, -0) < 0, bb = cl || !mb("indexOf");
|
||
db({ target: "Array", proto: !0, forced: bb }, {
|
||
indexOf: function(e) {
|
||
var t = arguments.length > 1 ? arguments[1] : void 0;
|
||
return cl ? Ti(this, e, t) || 0 : yb(this, e, t);
|
||
}
|
||
});
|
||
var xb = ee, Tb = k, Sb = tn, Ob = ge, fo = pe, Eb = rn, $b = Tb("".indexOf);
|
||
xb({ target: "String", proto: !0, forced: !Eb("includes") }, {
|
||
includes: function(e) {
|
||
return !!~$b(
|
||
fo(Ob(this)),
|
||
fo(Sb(e)),
|
||
arguments.length > 1 ? arguments[1] : void 0
|
||
);
|
||
}
|
||
});
|
||
var wb = je, Cb = Array.isArray || function(e) {
|
||
return wb(e) == "Array";
|
||
}, Ab = ee, Pb = k, Rb = Cb, Ib = Pb([].reverse), co = [1, 2];
|
||
Ab({ target: "Array", proto: !0, forced: String(co) === String(co.reverse()) }, {
|
||
reverse: function() {
|
||
return Rb(this) && (this.length = this.length), Ib(this);
|
||
}
|
||
});
|
||
/*! *****************************************************************************
|
||
Copyright (c) Microsoft Corporation.
|
||
|
||
Permission to use, copy, modify, and/or distribute this software for any
|
||
purpose with or without fee is hereby granted.
|
||
|
||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||
PERFORMANCE OF THIS SOFTWARE.
|
||
***************************************************************************** */
|
||
var gl = function(a, e) {
|
||
return (gl = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, r) {
|
||
t.__proto__ = r;
|
||
} || function(t, r) {
|
||
for (var i in r)
|
||
Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i]);
|
||
})(a, e);
|
||
};
|
||
function dl(a, e) {
|
||
if (typeof e != "function" && e !== null)
|
||
throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
|
||
function t() {
|
||
this.constructor = a;
|
||
}
|
||
gl(a, e), a.prototype = e === null ? Object.create(e) : (t.prototype = e.prototype, new t());
|
||
}
|
||
function Nb(a) {
|
||
var e = "";
|
||
Array.isArray(a) || (a = [a]);
|
||
for (var t = 0; t < a.length; t++) {
|
||
var r = a[t];
|
||
if (r.type === m.CLOSE_PATH)
|
||
e += "z";
|
||
else if (r.type === m.HORIZ_LINE_TO)
|
||
e += (r.relative ? "h" : "H") + r.x;
|
||
else if (r.type === m.VERT_LINE_TO)
|
||
e += (r.relative ? "v" : "V") + r.y;
|
||
else if (r.type === m.MOVE_TO)
|
||
e += (r.relative ? "m" : "M") + r.x + " " + r.y;
|
||
else if (r.type === m.LINE_TO)
|
||
e += (r.relative ? "l" : "L") + r.x + " " + r.y;
|
||
else if (r.type === m.CURVE_TO)
|
||
e += (r.relative ? "c" : "C") + r.x1 + " " + r.y1 + " " + r.x2 + " " + r.y2 + " " + r.x + " " + r.y;
|
||
else if (r.type === m.SMOOTH_CURVE_TO)
|
||
e += (r.relative ? "s" : "S") + r.x2 + " " + r.y2 + " " + r.x + " " + r.y;
|
||
else if (r.type === m.QUAD_TO)
|
||
e += (r.relative ? "q" : "Q") + r.x1 + " " + r.y1 + " " + r.x + " " + r.y;
|
||
else if (r.type === m.SMOOTH_QUAD_TO)
|
||
e += (r.relative ? "t" : "T") + r.x + " " + r.y;
|
||
else {
|
||
if (r.type !== m.ARC)
|
||
throw new Error('Unexpected command type "' + r.type + '" at index ' + t + ".");
|
||
e += (r.relative ? "a" : "A") + r.rX + " " + r.rY + " " + r.xRot + " " + +r.lArcFlag + " " + +r.sweepFlag + " " + r.x + " " + r.y;
|
||
}
|
||
}
|
||
return e;
|
||
}
|
||
function Si(a, e) {
|
||
var t = a[0], r = a[1];
|
||
return [t * Math.cos(e) - r * Math.sin(e), t * Math.sin(e) + r * Math.cos(e)];
|
||
}
|
||
function oe() {
|
||
for (var a = [], e = 0; e < arguments.length; e++)
|
||
a[e] = arguments[e];
|
||
for (var t = 0; t < a.length; t++)
|
||
if (typeof a[t] != "number")
|
||
throw new Error("assertNumbers arguments[" + t + "] is not a number. " + typeof a[t] + " == typeof " + a[t]);
|
||
return !0;
|
||
}
|
||
var Ee = Math.PI;
|
||
function Ga(a, e, t) {
|
||
a.lArcFlag = a.lArcFlag === 0 ? 0 : 1, a.sweepFlag = a.sweepFlag === 0 ? 0 : 1;
|
||
var r = a.rX, i = a.rY, n = a.x, o = a.y;
|
||
r = Math.abs(a.rX), i = Math.abs(a.rY);
|
||
var s = Si([(e - n) / 2, (t - o) / 2], -a.xRot / 180 * Ee), u = s[0], l = s[1], h = Math.pow(u, 2) / Math.pow(r, 2) + Math.pow(l, 2) / Math.pow(i, 2);
|
||
1 < h && (r *= Math.sqrt(h), i *= Math.sqrt(h)), a.rX = r, a.rY = i;
|
||
var f = Math.pow(r, 2) * Math.pow(l, 2) + Math.pow(i, 2) * Math.pow(u, 2), c = (a.lArcFlag !== a.sweepFlag ? 1 : -1) * Math.sqrt(Math.max(0, (Math.pow(r, 2) * Math.pow(i, 2) - f) / f)), v = r * l / i * c, d = -i * u / r * c, g = Si([v, d], a.xRot / 180 * Ee);
|
||
a.cX = g[0] + (e + n) / 2, a.cY = g[1] + (t + o) / 2, a.phi1 = Math.atan2((l - d) / i, (u - v) / r), a.phi2 = Math.atan2((-l - d) / i, (-u - v) / r), a.sweepFlag === 0 && a.phi2 > a.phi1 && (a.phi2 -= 2 * Ee), a.sweepFlag === 1 && a.phi2 < a.phi1 && (a.phi2 += 2 * Ee), a.phi1 *= 180 / Ee, a.phi2 *= 180 / Ee;
|
||
}
|
||
function go(a, e, t) {
|
||
oe(a, e, t);
|
||
var r = a * a + e * e - t * t;
|
||
if (0 > r)
|
||
return [];
|
||
if (r === 0)
|
||
return [[a * t / (a * a + e * e), e * t / (a * a + e * e)]];
|
||
var i = Math.sqrt(r);
|
||
return [[(a * t + e * i) / (a * a + e * e), (e * t - a * i) / (a * a + e * e)], [(a * t - e * i) / (a * a + e * e), (e * t + a * i) / (a * a + e * e)]];
|
||
}
|
||
var j, ye = Math.PI / 180;
|
||
function po(a, e, t) {
|
||
return (1 - t) * a + t * e;
|
||
}
|
||
function yo(a, e, t, r) {
|
||
return a + Math.cos(r / 180 * Ee) * e + Math.sin(r / 180 * Ee) * t;
|
||
}
|
||
function mo(a, e, t, r) {
|
||
var i = 1e-6, n = e - a, o = t - e, s = 3 * n + 3 * (r - t) - 6 * o, u = 6 * (o - n), l = 3 * n;
|
||
return Math.abs(s) < i ? [-l / u] : function(h, f, c) {
|
||
c === void 0 && (c = 1e-6);
|
||
var v = h * h / 4 - f;
|
||
if (v < -c)
|
||
return [];
|
||
if (v <= c)
|
||
return [-h / 2];
|
||
var d = Math.sqrt(v);
|
||
return [-h / 2 - d, -h / 2 + d];
|
||
}(u / s, l / s, i);
|
||
}
|
||
function bo(a, e, t, r, i) {
|
||
var n = 1 - i;
|
||
return a * (n * n * n) + e * (3 * n * n * i) + t * (3 * n * i * i) + r * (i * i * i);
|
||
}
|
||
(function(a) {
|
||
function e() {
|
||
return i(function(s, u, l) {
|
||
return s.relative && (s.x1 !== void 0 && (s.x1 += u), s.y1 !== void 0 && (s.y1 += l), s.x2 !== void 0 && (s.x2 += u), s.y2 !== void 0 && (s.y2 += l), s.x !== void 0 && (s.x += u), s.y !== void 0 && (s.y += l), s.relative = !1), s;
|
||
});
|
||
}
|
||
function t() {
|
||
var s = NaN, u = NaN, l = NaN, h = NaN;
|
||
return i(function(f, c, v) {
|
||
return f.type & m.SMOOTH_CURVE_TO && (f.type = m.CURVE_TO, s = isNaN(s) ? c : s, u = isNaN(u) ? v : u, f.x1 = f.relative ? c - s : 2 * c - s, f.y1 = f.relative ? v - u : 2 * v - u), f.type & m.CURVE_TO ? (s = f.relative ? c + f.x2 : f.x2, u = f.relative ? v + f.y2 : f.y2) : (s = NaN, u = NaN), f.type & m.SMOOTH_QUAD_TO && (f.type = m.QUAD_TO, l = isNaN(l) ? c : l, h = isNaN(h) ? v : h, f.x1 = f.relative ? c - l : 2 * c - l, f.y1 = f.relative ? v - h : 2 * v - h), f.type & m.QUAD_TO ? (l = f.relative ? c + f.x1 : f.x1, h = f.relative ? v + f.y1 : f.y1) : (l = NaN, h = NaN), f;
|
||
});
|
||
}
|
||
function r() {
|
||
var s = NaN, u = NaN;
|
||
return i(function(l, h, f) {
|
||
if (l.type & m.SMOOTH_QUAD_TO && (l.type = m.QUAD_TO, s = isNaN(s) ? h : s, u = isNaN(u) ? f : u, l.x1 = l.relative ? h - s : 2 * h - s, l.y1 = l.relative ? f - u : 2 * f - u), l.type & m.QUAD_TO) {
|
||
s = l.relative ? h + l.x1 : l.x1, u = l.relative ? f + l.y1 : l.y1;
|
||
var c = l.x1, v = l.y1;
|
||
l.type = m.CURVE_TO, l.x1 = ((l.relative ? 0 : h) + 2 * c) / 3, l.y1 = ((l.relative ? 0 : f) + 2 * v) / 3, l.x2 = (l.x + 2 * c) / 3, l.y2 = (l.y + 2 * v) / 3;
|
||
} else
|
||
s = NaN, u = NaN;
|
||
return l;
|
||
});
|
||
}
|
||
function i(s) {
|
||
var u = 0, l = 0, h = NaN, f = NaN;
|
||
return function(c) {
|
||
if (isNaN(h) && !(c.type & m.MOVE_TO))
|
||
throw new Error("path must start with moveto");
|
||
var v = s(c, u, l, h, f);
|
||
return c.type & m.CLOSE_PATH && (u = h, l = f), c.x !== void 0 && (u = c.relative ? u + c.x : c.x), c.y !== void 0 && (l = c.relative ? l + c.y : c.y), c.type & m.MOVE_TO && (h = u, f = l), v;
|
||
};
|
||
}
|
||
function n(s, u, l, h, f, c) {
|
||
return oe(s, u, l, h, f, c), i(function(v, d, g, p) {
|
||
var y = v.x1, x = v.x2, b = v.relative && !isNaN(p), T = v.x !== void 0 ? v.x : b ? 0 : d, $ = v.y !== void 0 ? v.y : b ? 0 : g;
|
||
function E(ne) {
|
||
return ne * ne;
|
||
}
|
||
v.type & m.HORIZ_LINE_TO && u !== 0 && (v.type = m.LINE_TO, v.y = v.relative ? 0 : g), v.type & m.VERT_LINE_TO && l !== 0 && (v.type = m.LINE_TO, v.x = v.relative ? 0 : d), v.x !== void 0 && (v.x = v.x * s + $ * l + (b ? 0 : f)), v.y !== void 0 && (v.y = T * u + v.y * h + (b ? 0 : c)), v.x1 !== void 0 && (v.x1 = v.x1 * s + v.y1 * l + (b ? 0 : f)), v.y1 !== void 0 && (v.y1 = y * u + v.y1 * h + (b ? 0 : c)), v.x2 !== void 0 && (v.x2 = v.x2 * s + v.y2 * l + (b ? 0 : f)), v.y2 !== void 0 && (v.y2 = x * u + v.y2 * h + (b ? 0 : c));
|
||
var S = s * h - u * l;
|
||
if (v.xRot !== void 0 && (s !== 1 || u !== 0 || l !== 0 || h !== 1))
|
||
if (S === 0)
|
||
delete v.rX, delete v.rY, delete v.xRot, delete v.lArcFlag, delete v.sweepFlag, v.type = m.LINE_TO;
|
||
else {
|
||
var C = v.xRot * Math.PI / 180, N = Math.sin(C), _ = Math.cos(C), B = 1 / E(v.rX), P = 1 / E(v.rY), X = E(_) * B + E(N) * P, W = 2 * N * _ * (B - P), U = E(N) * B + E(_) * P, q = X * h * h - W * u * h + U * u * u, H = W * (s * h + u * l) - 2 * (X * l * h + U * s * u), Q = X * l * l - W * s * l + U * s * s, R = (Math.atan2(H, q - Q) + Math.PI) % Math.PI / 2, M = Math.sin(R), Z = Math.cos(R);
|
||
v.rX = Math.abs(S) / Math.sqrt(q * E(Z) + H * M * Z + Q * E(M)), v.rY = Math.abs(S) / Math.sqrt(q * E(M) - H * M * Z + Q * E(Z)), v.xRot = 180 * R / Math.PI;
|
||
}
|
||
return v.sweepFlag !== void 0 && 0 > S && (v.sweepFlag = +!v.sweepFlag), v;
|
||
});
|
||
}
|
||
function o() {
|
||
return function(s) {
|
||
var u = {};
|
||
for (var l in s)
|
||
u[l] = s[l];
|
||
return u;
|
||
};
|
||
}
|
||
a.ROUND = function(s) {
|
||
function u(l) {
|
||
return Math.round(l * s) / s;
|
||
}
|
||
return s === void 0 && (s = 1e13), oe(s), function(l) {
|
||
return l.x1 !== void 0 && (l.x1 = u(l.x1)), l.y1 !== void 0 && (l.y1 = u(l.y1)), l.x2 !== void 0 && (l.x2 = u(l.x2)), l.y2 !== void 0 && (l.y2 = u(l.y2)), l.x !== void 0 && (l.x = u(l.x)), l.y !== void 0 && (l.y = u(l.y)), l.rX !== void 0 && (l.rX = u(l.rX)), l.rY !== void 0 && (l.rY = u(l.rY)), l;
|
||
};
|
||
}, a.TO_ABS = e, a.TO_REL = function() {
|
||
return i(function(s, u, l) {
|
||
return s.relative || (s.x1 !== void 0 && (s.x1 -= u), s.y1 !== void 0 && (s.y1 -= l), s.x2 !== void 0 && (s.x2 -= u), s.y2 !== void 0 && (s.y2 -= l), s.x !== void 0 && (s.x -= u), s.y !== void 0 && (s.y -= l), s.relative = !0), s;
|
||
});
|
||
}, a.NORMALIZE_HVZ = function(s, u, l) {
|
||
return s === void 0 && (s = !0), u === void 0 && (u = !0), l === void 0 && (l = !0), i(function(h, f, c, v, d) {
|
||
if (isNaN(v) && !(h.type & m.MOVE_TO))
|
||
throw new Error("path must start with moveto");
|
||
return u && h.type & m.HORIZ_LINE_TO && (h.type = m.LINE_TO, h.y = h.relative ? 0 : c), l && h.type & m.VERT_LINE_TO && (h.type = m.LINE_TO, h.x = h.relative ? 0 : f), s && h.type & m.CLOSE_PATH && (h.type = m.LINE_TO, h.x = h.relative ? v - f : v, h.y = h.relative ? d - c : d), h.type & m.ARC && (h.rX === 0 || h.rY === 0) && (h.type = m.LINE_TO, delete h.rX, delete h.rY, delete h.xRot, delete h.lArcFlag, delete h.sweepFlag), h;
|
||
});
|
||
}, a.NORMALIZE_ST = t, a.QT_TO_C = r, a.INFO = i, a.SANITIZE = function(s) {
|
||
s === void 0 && (s = 0), oe(s);
|
||
var u = NaN, l = NaN, h = NaN, f = NaN;
|
||
return i(function(c, v, d, g, p) {
|
||
var y = Math.abs, x = !1, b = 0, T = 0;
|
||
if (c.type & m.SMOOTH_CURVE_TO && (b = isNaN(u) ? 0 : v - u, T = isNaN(l) ? 0 : d - l), c.type & (m.CURVE_TO | m.SMOOTH_CURVE_TO) ? (u = c.relative ? v + c.x2 : c.x2, l = c.relative ? d + c.y2 : c.y2) : (u = NaN, l = NaN), c.type & m.SMOOTH_QUAD_TO ? (h = isNaN(h) ? v : 2 * v - h, f = isNaN(f) ? d : 2 * d - f) : c.type & m.QUAD_TO ? (h = c.relative ? v + c.x1 : c.x1, f = c.relative ? d + c.y1 : c.y2) : (h = NaN, f = NaN), c.type & m.LINE_COMMANDS || c.type & m.ARC && (c.rX === 0 || c.rY === 0 || !c.lArcFlag) || c.type & m.CURVE_TO || c.type & m.SMOOTH_CURVE_TO || c.type & m.QUAD_TO || c.type & m.SMOOTH_QUAD_TO) {
|
||
var $ = c.x === void 0 ? 0 : c.relative ? c.x : c.x - v, E = c.y === void 0 ? 0 : c.relative ? c.y : c.y - d;
|
||
b = isNaN(h) ? c.x1 === void 0 ? b : c.relative ? c.x : c.x1 - v : h - v, T = isNaN(f) ? c.y1 === void 0 ? T : c.relative ? c.y : c.y1 - d : f - d;
|
||
var S = c.x2 === void 0 ? 0 : c.relative ? c.x : c.x2 - v, C = c.y2 === void 0 ? 0 : c.relative ? c.y : c.y2 - d;
|
||
y($) <= s && y(E) <= s && y(b) <= s && y(T) <= s && y(S) <= s && y(C) <= s && (x = !0);
|
||
}
|
||
return c.type & m.CLOSE_PATH && y(v - g) <= s && y(d - p) <= s && (x = !0), x ? [] : c;
|
||
});
|
||
}, a.MATRIX = n, a.ROTATE = function(s, u, l) {
|
||
u === void 0 && (u = 0), l === void 0 && (l = 0), oe(s, u, l);
|
||
var h = Math.sin(s), f = Math.cos(s);
|
||
return n(f, h, -h, f, u - u * f + l * h, l - u * h - l * f);
|
||
}, a.TRANSLATE = function(s, u) {
|
||
return u === void 0 && (u = 0), oe(s, u), n(1, 0, 0, 1, s, u);
|
||
}, a.SCALE = function(s, u) {
|
||
return u === void 0 && (u = s), oe(s, u), n(s, 0, 0, u, 0, 0);
|
||
}, a.SKEW_X = function(s) {
|
||
return oe(s), n(1, 0, Math.atan(s), 1, 0, 0);
|
||
}, a.SKEW_Y = function(s) {
|
||
return oe(s), n(1, Math.atan(s), 0, 1, 0, 0);
|
||
}, a.X_AXIS_SYMMETRY = function(s) {
|
||
return s === void 0 && (s = 0), oe(s), n(-1, 0, 0, 1, s, 0);
|
||
}, a.Y_AXIS_SYMMETRY = function(s) {
|
||
return s === void 0 && (s = 0), oe(s), n(1, 0, 0, -1, 0, s);
|
||
}, a.A_TO_C = function() {
|
||
return i(function(s, u, l) {
|
||
return m.ARC === s.type ? function(h, f, c) {
|
||
var v, d, g, p;
|
||
h.cX || Ga(h, f, c);
|
||
for (var y = Math.min(h.phi1, h.phi2), x = Math.max(h.phi1, h.phi2) - y, b = Math.ceil(x / 90), T = new Array(b), $ = f, E = c, S = 0; S < b; S++) {
|
||
var C = po(h.phi1, h.phi2, S / b), N = po(h.phi1, h.phi2, (S + 1) / b), _ = N - C, B = 4 / 3 * Math.tan(_ * ye / 4), P = [Math.cos(C * ye) - B * Math.sin(C * ye), Math.sin(C * ye) + B * Math.cos(C * ye)], X = P[0], W = P[1], U = [Math.cos(N * ye), Math.sin(N * ye)], q = U[0], H = U[1], Q = [q + B * Math.sin(N * ye), H - B * Math.cos(N * ye)], R = Q[0], M = Q[1];
|
||
T[S] = { relative: h.relative, type: m.CURVE_TO };
|
||
var Z = function(ne, ve) {
|
||
var Oe = Si([ne * h.rX, ve * h.rY], h.xRot), Ye = Oe[0], Dt = Oe[1];
|
||
return [h.cX + Ye, h.cY + Dt];
|
||
};
|
||
v = Z(X, W), T[S].x1 = v[0], T[S].y1 = v[1], d = Z(R, M), T[S].x2 = d[0], T[S].y2 = d[1], g = Z(q, H), T[S].x = g[0], T[S].y = g[1], h.relative && (T[S].x1 -= $, T[S].y1 -= E, T[S].x2 -= $, T[S].y2 -= E, T[S].x -= $, T[S].y -= E), $ = (p = [T[S].x, T[S].y])[0], E = p[1];
|
||
}
|
||
return T;
|
||
}(s, s.relative ? 0 : u, s.relative ? 0 : l) : s;
|
||
});
|
||
}, a.ANNOTATE_ARCS = function() {
|
||
return i(function(s, u, l) {
|
||
return s.relative && (u = 0, l = 0), m.ARC === s.type && Ga(s, u, l), s;
|
||
});
|
||
}, a.CLONE = o, a.CALCULATE_BOUNDS = function() {
|
||
var s = function(c) {
|
||
var v = {};
|
||
for (var d in c)
|
||
v[d] = c[d];
|
||
return v;
|
||
}, u = e(), l = r(), h = t(), f = i(function(c, v, d) {
|
||
var g = h(l(u(s(c))));
|
||
function p(M) {
|
||
M > f.maxX && (f.maxX = M), M < f.minX && (f.minX = M);
|
||
}
|
||
function y(M) {
|
||
M > f.maxY && (f.maxY = M), M < f.minY && (f.minY = M);
|
||
}
|
||
if (g.type & m.DRAWING_COMMANDS && (p(v), y(d)), g.type & m.HORIZ_LINE_TO && p(g.x), g.type & m.VERT_LINE_TO && y(g.y), g.type & m.LINE_TO && (p(g.x), y(g.y)), g.type & m.CURVE_TO) {
|
||
p(g.x), y(g.y);
|
||
for (var x = 0, b = mo(v, g.x1, g.x2, g.x); x < b.length; x++)
|
||
0 < (R = b[x]) && 1 > R && p(bo(v, g.x1, g.x2, g.x, R));
|
||
for (var T = 0, $ = mo(d, g.y1, g.y2, g.y); T < $.length; T++)
|
||
0 < (R = $[T]) && 1 > R && y(bo(d, g.y1, g.y2, g.y, R));
|
||
}
|
||
if (g.type & m.ARC) {
|
||
p(g.x), y(g.y), Ga(g, v, d);
|
||
for (var E = g.xRot / 180 * Math.PI, S = Math.cos(E) * g.rX, C = Math.sin(E) * g.rX, N = -Math.sin(E) * g.rY, _ = Math.cos(E) * g.rY, B = g.phi1 < g.phi2 ? [g.phi1, g.phi2] : -180 > g.phi2 ? [g.phi2 + 360, g.phi1 + 360] : [g.phi2, g.phi1], P = B[0], X = B[1], W = function(M) {
|
||
var Z = M[0], ne = M[1], ve = 180 * Math.atan2(ne, Z) / Math.PI;
|
||
return ve < P ? ve + 360 : ve;
|
||
}, U = 0, q = go(N, -S, 0).map(W); U < q.length; U++)
|
||
(R = q[U]) > P && R < X && p(yo(g.cX, S, N, R));
|
||
for (var H = 0, Q = go(_, -C, 0).map(W); H < Q.length; H++) {
|
||
var R;
|
||
(R = Q[H]) > P && R < X && y(yo(g.cY, C, _, R));
|
||
}
|
||
}
|
||
return c;
|
||
});
|
||
return f.minX = 1 / 0, f.maxX = -1 / 0, f.minY = 1 / 0, f.maxY = -1 / 0, f;
|
||
};
|
||
})(j || (j = {}));
|
||
var se, pl = function() {
|
||
function a() {
|
||
}
|
||
return a.prototype.round = function(e) {
|
||
return this.transform(j.ROUND(e));
|
||
}, a.prototype.toAbs = function() {
|
||
return this.transform(j.TO_ABS());
|
||
}, a.prototype.toRel = function() {
|
||
return this.transform(j.TO_REL());
|
||
}, a.prototype.normalizeHVZ = function(e, t, r) {
|
||
return this.transform(j.NORMALIZE_HVZ(e, t, r));
|
||
}, a.prototype.normalizeST = function() {
|
||
return this.transform(j.NORMALIZE_ST());
|
||
}, a.prototype.qtToC = function() {
|
||
return this.transform(j.QT_TO_C());
|
||
}, a.prototype.aToC = function() {
|
||
return this.transform(j.A_TO_C());
|
||
}, a.prototype.sanitize = function(e) {
|
||
return this.transform(j.SANITIZE(e));
|
||
}, a.prototype.translate = function(e, t) {
|
||
return this.transform(j.TRANSLATE(e, t));
|
||
}, a.prototype.scale = function(e, t) {
|
||
return this.transform(j.SCALE(e, t));
|
||
}, a.prototype.rotate = function(e, t, r) {
|
||
return this.transform(j.ROTATE(e, t, r));
|
||
}, a.prototype.matrix = function(e, t, r, i, n, o) {
|
||
return this.transform(j.MATRIX(e, t, r, i, n, o));
|
||
}, a.prototype.skewX = function(e) {
|
||
return this.transform(j.SKEW_X(e));
|
||
}, a.prototype.skewY = function(e) {
|
||
return this.transform(j.SKEW_Y(e));
|
||
}, a.prototype.xSymmetry = function(e) {
|
||
return this.transform(j.X_AXIS_SYMMETRY(e));
|
||
}, a.prototype.ySymmetry = function(e) {
|
||
return this.transform(j.Y_AXIS_SYMMETRY(e));
|
||
}, a.prototype.annotateArcs = function() {
|
||
return this.transform(j.ANNOTATE_ARCS());
|
||
}, a;
|
||
}(), Mb = function(a) {
|
||
return a === " " || a === " " || a === "\r" || a === `
|
||
`;
|
||
}, xo = function(a) {
|
||
return "0".charCodeAt(0) <= a.charCodeAt(0) && a.charCodeAt(0) <= "9".charCodeAt(0);
|
||
}, _b = function(a) {
|
||
function e() {
|
||
var t = a.call(this) || this;
|
||
return t.curNumber = "", t.curCommandType = -1, t.curCommandRelative = !1, t.canParseCommandOrComma = !0, t.curNumberHasExp = !1, t.curNumberHasExpDigits = !1, t.curNumberHasDecimal = !1, t.curArgs = [], t;
|
||
}
|
||
return dl(e, a), e.prototype.finish = function(t) {
|
||
if (t === void 0 && (t = []), this.parse(" ", t), this.curArgs.length !== 0 || !this.canParseCommandOrComma)
|
||
throw new SyntaxError("Unterminated command at the path end.");
|
||
return t;
|
||
}, e.prototype.parse = function(t, r) {
|
||
var i = this;
|
||
r === void 0 && (r = []);
|
||
for (var n = function(f) {
|
||
r.push(f), i.curArgs.length = 0, i.canParseCommandOrComma = !0;
|
||
}, o = 0; o < t.length; o++) {
|
||
var s = t[o], u = !(this.curCommandType !== m.ARC || this.curArgs.length !== 3 && this.curArgs.length !== 4 || this.curNumber.length !== 1 || this.curNumber !== "0" && this.curNumber !== "1"), l = xo(s) && (this.curNumber === "0" && s === "0" || u);
|
||
if (!xo(s) || l)
|
||
if (s !== "e" && s !== "E")
|
||
if (s !== "-" && s !== "+" || !this.curNumberHasExp || this.curNumberHasExpDigits)
|
||
if (s !== "." || this.curNumberHasExp || this.curNumberHasDecimal || u) {
|
||
if (this.curNumber && this.curCommandType !== -1) {
|
||
var h = Number(this.curNumber);
|
||
if (isNaN(h))
|
||
throw new SyntaxError("Invalid number ending at " + o);
|
||
if (this.curCommandType === m.ARC) {
|
||
if (this.curArgs.length === 0 || this.curArgs.length === 1) {
|
||
if (0 > h)
|
||
throw new SyntaxError('Expected positive number, got "' + h + '" at index "' + o + '"');
|
||
} else if ((this.curArgs.length === 3 || this.curArgs.length === 4) && this.curNumber !== "0" && this.curNumber !== "1")
|
||
throw new SyntaxError('Expected a flag, got "' + this.curNumber + '" at index "' + o + '"');
|
||
}
|
||
this.curArgs.push(h), this.curArgs.length === Db[this.curCommandType] && (m.HORIZ_LINE_TO === this.curCommandType ? n({ type: m.HORIZ_LINE_TO, relative: this.curCommandRelative, x: h }) : m.VERT_LINE_TO === this.curCommandType ? n({ type: m.VERT_LINE_TO, relative: this.curCommandRelative, y: h }) : this.curCommandType === m.MOVE_TO || this.curCommandType === m.LINE_TO || this.curCommandType === m.SMOOTH_QUAD_TO ? (n({ type: this.curCommandType, relative: this.curCommandRelative, x: this.curArgs[0], y: this.curArgs[1] }), m.MOVE_TO === this.curCommandType && (this.curCommandType = m.LINE_TO)) : this.curCommandType === m.CURVE_TO ? n({ type: m.CURVE_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x2: this.curArgs[2], y2: this.curArgs[3], x: this.curArgs[4], y: this.curArgs[5] }) : this.curCommandType === m.SMOOTH_CURVE_TO ? n({ type: m.SMOOTH_CURVE_TO, relative: this.curCommandRelative, x2: this.curArgs[0], y2: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === m.QUAD_TO ? n({ type: m.QUAD_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === m.ARC && n({ type: m.ARC, relative: this.curCommandRelative, rX: this.curArgs[0], rY: this.curArgs[1], xRot: this.curArgs[2], lArcFlag: this.curArgs[3], sweepFlag: this.curArgs[4], x: this.curArgs[5], y: this.curArgs[6] })), this.curNumber = "", this.curNumberHasExpDigits = !1, this.curNumberHasExp = !1, this.curNumberHasDecimal = !1, this.canParseCommandOrComma = !0;
|
||
}
|
||
if (!Mb(s))
|
||
if (s === "," && this.canParseCommandOrComma)
|
||
this.canParseCommandOrComma = !1;
|
||
else if (s !== "+" && s !== "-" && s !== ".")
|
||
if (l)
|
||
this.curNumber = s, this.curNumberHasDecimal = !1;
|
||
else {
|
||
if (this.curArgs.length !== 0)
|
||
throw new SyntaxError("Unterminated command at index " + o + ".");
|
||
if (!this.canParseCommandOrComma)
|
||
throw new SyntaxError('Unexpected character "' + s + '" at index ' + o + ". Command cannot follow comma");
|
||
if (this.canParseCommandOrComma = !1, s !== "z" && s !== "Z")
|
||
if (s === "h" || s === "H")
|
||
this.curCommandType = m.HORIZ_LINE_TO, this.curCommandRelative = s === "h";
|
||
else if (s === "v" || s === "V")
|
||
this.curCommandType = m.VERT_LINE_TO, this.curCommandRelative = s === "v";
|
||
else if (s === "m" || s === "M")
|
||
this.curCommandType = m.MOVE_TO, this.curCommandRelative = s === "m";
|
||
else if (s === "l" || s === "L")
|
||
this.curCommandType = m.LINE_TO, this.curCommandRelative = s === "l";
|
||
else if (s === "c" || s === "C")
|
||
this.curCommandType = m.CURVE_TO, this.curCommandRelative = s === "c";
|
||
else if (s === "s" || s === "S")
|
||
this.curCommandType = m.SMOOTH_CURVE_TO, this.curCommandRelative = s === "s";
|
||
else if (s === "q" || s === "Q")
|
||
this.curCommandType = m.QUAD_TO, this.curCommandRelative = s === "q";
|
||
else if (s === "t" || s === "T")
|
||
this.curCommandType = m.SMOOTH_QUAD_TO, this.curCommandRelative = s === "t";
|
||
else {
|
||
if (s !== "a" && s !== "A")
|
||
throw new SyntaxError('Unexpected character "' + s + '" at index ' + o + ".");
|
||
this.curCommandType = m.ARC, this.curCommandRelative = s === "a";
|
||
}
|
||
else
|
||
r.push({ type: m.CLOSE_PATH }), this.canParseCommandOrComma = !0, this.curCommandType = -1;
|
||
}
|
||
else
|
||
this.curNumber = s, this.curNumberHasDecimal = s === ".";
|
||
} else
|
||
this.curNumber += s, this.curNumberHasDecimal = !0;
|
||
else
|
||
this.curNumber += s;
|
||
else
|
||
this.curNumber += s, this.curNumberHasExp = !0;
|
||
else
|
||
this.curNumber += s, this.curNumberHasExpDigits = this.curNumberHasExp;
|
||
}
|
||
return r;
|
||
}, e.prototype.transform = function(t) {
|
||
return Object.create(this, { parse: { value: function(r, i) {
|
||
i === void 0 && (i = []);
|
||
for (var n = 0, o = Object.getPrototypeOf(this).parse.call(this, r); n < o.length; n++) {
|
||
var s = o[n], u = t(s);
|
||
Array.isArray(u) ? i.push.apply(i, u) : i.push(u);
|
||
}
|
||
return i;
|
||
} } });
|
||
}, e;
|
||
}(pl), m = function(a) {
|
||
function e(t) {
|
||
var r = a.call(this) || this;
|
||
return r.commands = typeof t == "string" ? e.parse(t) : t, r;
|
||
}
|
||
return dl(e, a), e.prototype.encode = function() {
|
||
return e.encode(this.commands);
|
||
}, e.prototype.getBounds = function() {
|
||
var t = j.CALCULATE_BOUNDS();
|
||
return this.transform(t), t;
|
||
}, e.prototype.transform = function(t) {
|
||
for (var r = [], i = 0, n = this.commands; i < n.length; i++) {
|
||
var o = t(n[i]);
|
||
Array.isArray(o) ? r.push.apply(r, o) : r.push(o);
|
||
}
|
||
return this.commands = r, this;
|
||
}, e.encode = function(t) {
|
||
return Nb(t);
|
||
}, e.parse = function(t) {
|
||
var r = new _b(), i = [];
|
||
return r.parse(t, i), r.finish(i), i;
|
||
}, e.CLOSE_PATH = 1, e.MOVE_TO = 2, e.HORIZ_LINE_TO = 4, e.VERT_LINE_TO = 8, e.LINE_TO = 16, e.CURVE_TO = 32, e.SMOOTH_CURVE_TO = 64, e.QUAD_TO = 128, e.SMOOTH_QUAD_TO = 256, e.ARC = 512, e.LINE_COMMANDS = e.LINE_TO | e.HORIZ_LINE_TO | e.VERT_LINE_TO, e.DRAWING_COMMANDS = e.HORIZ_LINE_TO | e.VERT_LINE_TO | e.LINE_TO | e.CURVE_TO | e.SMOOTH_CURVE_TO | e.QUAD_TO | e.SMOOTH_QUAD_TO | e.ARC, e;
|
||
}(pl), Db = ((se = {})[m.MOVE_TO] = 2, se[m.LINE_TO] = 2, se[m.HORIZ_LINE_TO] = 1, se[m.VERT_LINE_TO] = 1, se[m.CLOSE_PATH] = 0, se[m.QUAD_TO] = 4, se[m.SMOOTH_QUAD_TO] = 2, se[m.CURVE_TO] = 6, se[m.SMOOTH_CURVE_TO] = 4, se[m.ARC] = 7, se), Vb = Y, Lb = le, kb = Er, Bb = Uu, To = RegExp.prototype, Fb = function(a) {
|
||
var e = a.flags;
|
||
return e === void 0 && !("flags" in To) && !Lb(a, "flags") && kb(To, a) ? Vb(Bb, a) : e;
|
||
}, jb = Pr.PROPER, Ub = Ge, zb = K, So = pe, Gb = L, Hb = Fb, on = "toString", Yb = RegExp.prototype, yl = Yb[on], Xb = Gb(function() {
|
||
return yl.call({ source: "a", flags: "b" }) != "/a/b";
|
||
}), Wb = jb && yl.name != on;
|
||
(Xb || Wb) && Ub(RegExp.prototype, on, function() {
|
||
var e = zb(this), t = So(e.source), r = So(Hb(e));
|
||
return "/" + t + "/" + r;
|
||
}, { unsafe: !0 });
|
||
function cr(a) {
|
||
return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? cr = function(e) {
|
||
return typeof e;
|
||
} : cr = function(e) {
|
||
return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
||
}, cr(a);
|
||
}
|
||
function qb(a, e) {
|
||
if (!(a instanceof e))
|
||
throw new TypeError("Cannot call a class as a function");
|
||
}
|
||
var Qb = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259], Kb = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];
|
||
function Zb(a, e, t, r, i) {
|
||
if (typeof a == "string" && (a = document.getElementById(a)), !a || cr(a) !== "object" || !("getContext" in a))
|
||
throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");
|
||
var n = a.getContext("2d");
|
||
try {
|
||
return n.getImageData(e, t, r, i);
|
||
} catch (o) {
|
||
throw new Error("unable to access image data: " + o);
|
||
}
|
||
}
|
||
function Jb(a, e, t, r, i, n) {
|
||
if (!(isNaN(n) || n < 1)) {
|
||
n |= 0;
|
||
var o = Zb(a, e, t, r, i);
|
||
o = e1(o, e, t, r, i, n), a.getContext("2d").putImageData(o, e, t);
|
||
}
|
||
}
|
||
function e1(a, e, t, r, i, n) {
|
||
for (var o = a.data, s = 2 * n + 1, u = r - 1, l = i - 1, h = n + 1, f = h * (h + 1) / 2, c = new Oo(), v = c, d, g = 1; g < s; g++)
|
||
v = v.next = new Oo(), g === h && (d = v);
|
||
v.next = c;
|
||
for (var p = null, y = null, x = 0, b = 0, T = Qb[n], $ = Kb[n], E = 0; E < i; E++) {
|
||
v = c;
|
||
for (var S = o[b], C = o[b + 1], N = o[b + 2], _ = o[b + 3], B = 0; B < h; B++)
|
||
v.r = S, v.g = C, v.b = N, v.a = _, v = v.next;
|
||
for (var P = 0, X = 0, W = 0, U = 0, q = h * S, H = h * C, Q = h * N, R = h * _, M = f * S, Z = f * C, ne = f * N, ve = f * _, Oe = 1; Oe < h; Oe++) {
|
||
var Ye = b + ((u < Oe ? u : Oe) << 2), Dt = o[Ye], hn = o[Ye + 1], vn = o[Ye + 2], fn = o[Ye + 3], Vt = h - Oe;
|
||
M += (v.r = Dt) * Vt, Z += (v.g = hn) * Vt, ne += (v.b = vn) * Vt, ve += (v.a = fn) * Vt, P += Dt, X += hn, W += vn, U += fn, v = v.next;
|
||
}
|
||
p = c, y = d;
|
||
for (var Ur = 0; Ur < r; Ur++) {
|
||
var zr = ve * T >> $;
|
||
if (o[b + 3] = zr, zr !== 0) {
|
||
var Gr = 255 / zr;
|
||
o[b] = (M * T >> $) * Gr, o[b + 1] = (Z * T >> $) * Gr, o[b + 2] = (ne * T >> $) * Gr;
|
||
} else
|
||
o[b] = o[b + 1] = o[b + 2] = 0;
|
||
M -= q, Z -= H, ne -= Q, ve -= R, q -= p.r, H -= p.g, Q -= p.b, R -= p.a;
|
||
var Ae = Ur + n + 1;
|
||
Ae = x + (Ae < u ? Ae : u) << 2, P += p.r = o[Ae], X += p.g = o[Ae + 1], W += p.b = o[Ae + 2], U += p.a = o[Ae + 3], M += P, Z += X, ne += W, ve += U, p = p.next;
|
||
var Lt = y, cn = Lt.r, gn = Lt.g, dn = Lt.b, pn = Lt.a;
|
||
q += cn, H += gn, Q += dn, R += pn, P -= cn, X -= gn, W -= dn, U -= pn, y = y.next, b += 4;
|
||
}
|
||
x += r;
|
||
}
|
||
for (var Xe = 0; Xe < r; Xe++) {
|
||
b = Xe << 2;
|
||
var Pe = o[b], Re = o[b + 1], Ie = o[b + 2], te = o[b + 3], Hr = h * Pe, Yr = h * Re, Xr = h * Ie, Wr = h * te, kt = f * Pe, Bt = f * Re, Ft = f * Ie, jt = f * te;
|
||
v = c;
|
||
for (var yn = 0; yn < h; yn++)
|
||
v.r = Pe, v.g = Re, v.b = Ie, v.a = te, v = v.next;
|
||
for (var mn = r, qr = 0, Qr = 0, Kr = 0, Zr = 0, Ut = 1; Ut <= n; Ut++) {
|
||
b = mn + Xe << 2;
|
||
var zt = h - Ut;
|
||
kt += (v.r = Pe = o[b]) * zt, Bt += (v.g = Re = o[b + 1]) * zt, Ft += (v.b = Ie = o[b + 2]) * zt, jt += (v.a = te = o[b + 3]) * zt, Zr += Pe, qr += Re, Qr += Ie, Kr += te, v = v.next, Ut < l && (mn += r);
|
||
}
|
||
b = Xe, p = c, y = d;
|
||
for (var Jr = 0; Jr < i; Jr++) {
|
||
var re = b << 2;
|
||
o[re + 3] = te = jt * T >> $, te > 0 ? (te = 255 / te, o[re] = (kt * T >> $) * te, o[re + 1] = (Bt * T >> $) * te, o[re + 2] = (Ft * T >> $) * te) : o[re] = o[re + 1] = o[re + 2] = 0, kt -= Hr, Bt -= Yr, Ft -= Xr, jt -= Wr, Hr -= p.r, Yr -= p.g, Xr -= p.b, Wr -= p.a, re = Xe + ((re = Jr + h) < l ? re : l) * r << 2, kt += Zr += p.r = o[re], Bt += qr += p.g = o[re + 1], Ft += Qr += p.b = o[re + 2], jt += Kr += p.a = o[re + 3], p = p.next, Hr += Pe = y.r, Yr += Re = y.g, Xr += Ie = y.b, Wr += te = y.a, Zr -= Pe, qr -= Re, Qr -= Ie, Kr -= te, y = y.next, b += r;
|
||
}
|
||
}
|
||
return a;
|
||
}
|
||
var Oo = (
|
||
/**
|
||
* Set properties.
|
||
*/
|
||
function a() {
|
||
qb(this, a), this.r = 0, this.g = 0, this.b = 0, this.a = 0, this.next = null;
|
||
}
|
||
);
|
||
function t1() {
|
||
var {
|
||
DOMParser: a
|
||
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, e = {
|
||
window: null,
|
||
ignoreAnimation: !0,
|
||
ignoreMouse: !0,
|
||
DOMParser: a,
|
||
createCanvas(t, r) {
|
||
return new OffscreenCanvas(t, r);
|
||
},
|
||
createImage(t) {
|
||
return xe(function* () {
|
||
var r = yield fetch(t), i = yield r.blob(), n = yield createImageBitmap(i);
|
||
return n;
|
||
})();
|
||
}
|
||
};
|
||
return (typeof DOMParser < "u" || typeof a > "u") && Reflect.deleteProperty(e, "DOMParser"), e;
|
||
}
|
||
function r1(a) {
|
||
var {
|
||
DOMParser: e,
|
||
canvas: t,
|
||
fetch: r
|
||
} = a;
|
||
return {
|
||
window: null,
|
||
ignoreAnimation: !0,
|
||
ignoreMouse: !0,
|
||
DOMParser: e,
|
||
fetch: r,
|
||
createCanvas: t.createCanvas,
|
||
createImage: t.loadImage
|
||
};
|
||
}
|
||
var p2 = /* @__PURE__ */ Object.freeze({
|
||
__proto__: null,
|
||
offscreen: t1,
|
||
node: r1
|
||
});
|
||
function ft(a) {
|
||
return a.replace(/(?!\u3000)\s+/gm, " ");
|
||
}
|
||
function a1(a) {
|
||
return a.replace(/^[\n \t]+/, "");
|
||
}
|
||
function i1(a) {
|
||
return a.replace(/[\n \t]+$/, "");
|
||
}
|
||
function ie(a) {
|
||
var e = (a || "").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm) || [];
|
||
return e.map(parseFloat);
|
||
}
|
||
var n1 = /^[A-Z-]+$/;
|
||
function s1(a) {
|
||
return n1.test(a) ? a.toLowerCase() : a;
|
||
}
|
||
function ml(a) {
|
||
var e = /url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(a) || [];
|
||
return e[2] || e[3] || e[4];
|
||
}
|
||
function o1(a) {
|
||
if (!a.startsWith("rgb"))
|
||
return a;
|
||
var e = 3, t = a.replace(/\d+(\.\d+)?/g, (r, i) => e-- && i ? String(Math.round(parseFloat(r))) : r);
|
||
return t;
|
||
}
|
||
var u1 = /(\[[^\]]+\])/g, l1 = /(#[^\s+>~.[:]+)/g, h1 = /(\.[^\s+>~.[:]+)/g, v1 = /(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi, f1 = /(:[\w-]+\([^)]*\))/gi, c1 = /(:[^\s+>~.[:]+)/g, g1 = /([^\s+>~.[:]+)/g;
|
||
function _e(a, e) {
|
||
var t = e.exec(a);
|
||
return t ? [a.replace(e, " "), t.length] : [a, 0];
|
||
}
|
||
function d1(a) {
|
||
var e = [0, 0, 0], t = a.replace(/:not\(([^)]*)\)/g, " $1 ").replace(/{[\s\S]*/gm, " "), r = 0;
|
||
return [t, r] = _e(t, u1), e[1] += r, [t, r] = _e(t, l1), e[0] += r, [t, r] = _e(t, h1), e[1] += r, [t, r] = _e(t, v1), e[2] += r, [t, r] = _e(t, f1), e[1] += r, [t, r] = _e(t, c1), e[1] += r, t = t.replace(/[*\s+>~]/g, " ").replace(/[#.]/g, " "), [t, r] = _e(t, g1), e[2] += r, e.join("");
|
||
}
|
||
var nt = 1e-8;
|
||
function Eo(a) {
|
||
return Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2));
|
||
}
|
||
function Oi(a, e) {
|
||
return (a[0] * e[0] + a[1] * e[1]) / (Eo(a) * Eo(e));
|
||
}
|
||
function $o(a, e) {
|
||
return (a[0] * e[1] < a[1] * e[0] ? -1 : 1) * Math.acos(Oi(a, e));
|
||
}
|
||
function wo(a) {
|
||
return a * a * a;
|
||
}
|
||
function Co(a) {
|
||
return 3 * a * a * (1 - a);
|
||
}
|
||
function Ao(a) {
|
||
return 3 * a * (1 - a) * (1 - a);
|
||
}
|
||
function Po(a) {
|
||
return (1 - a) * (1 - a) * (1 - a);
|
||
}
|
||
function Ro(a) {
|
||
return a * a;
|
||
}
|
||
function Io(a) {
|
||
return 2 * a * (1 - a);
|
||
}
|
||
function No(a) {
|
||
return (1 - a) * (1 - a);
|
||
}
|
||
class O {
|
||
constructor(e, t, r) {
|
||
this.document = e, this.name = t, this.value = r, this.isNormalizedColor = !1;
|
||
}
|
||
static empty(e) {
|
||
return new O(e, "EMPTY", "");
|
||
}
|
||
split() {
|
||
var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : " ", {
|
||
document: t,
|
||
name: r
|
||
} = this;
|
||
return ft(this.getString()).trim().split(e).map((i) => new O(t, r, i));
|
||
}
|
||
hasValue(e) {
|
||
var {
|
||
value: t
|
||
} = this;
|
||
return t !== null && t !== "" && (e || t !== 0) && typeof t < "u";
|
||
}
|
||
isString(e) {
|
||
var {
|
||
value: t
|
||
} = this, r = typeof t == "string";
|
||
return !r || !e ? r : e.test(t);
|
||
}
|
||
isUrlDefinition() {
|
||
return this.isString(/^url\(/);
|
||
}
|
||
isPixels() {
|
||
if (!this.hasValue())
|
||
return !1;
|
||
var e = this.getString();
|
||
switch (!0) {
|
||
case e.endsWith("px"):
|
||
case /^[0-9]+$/.test(e):
|
||
return !0;
|
||
default:
|
||
return !1;
|
||
}
|
||
}
|
||
setValue(e) {
|
||
return this.value = e, this;
|
||
}
|
||
getValue(e) {
|
||
return typeof e > "u" || this.hasValue() ? this.value : e;
|
||
}
|
||
getNumber(e) {
|
||
if (!this.hasValue())
|
||
return typeof e > "u" ? 0 : parseFloat(e);
|
||
var {
|
||
value: t
|
||
} = this, r = parseFloat(t);
|
||
return this.isString(/%$/) && (r /= 100), r;
|
||
}
|
||
getString(e) {
|
||
return typeof e > "u" || this.hasValue() ? typeof this.value > "u" ? "" : String(this.value) : String(e);
|
||
}
|
||
getColor(e) {
|
||
var t = this.getString(e);
|
||
return this.isNormalizedColor || (this.isNormalizedColor = !0, t = o1(t), this.value = t), t;
|
||
}
|
||
getDpi() {
|
||
return 96;
|
||
}
|
||
getRem() {
|
||
return this.document.rootEmSize;
|
||
}
|
||
getEm() {
|
||
return this.document.emSize;
|
||
}
|
||
getUnits() {
|
||
return this.getString().replace(/[0-9.-]/g, "");
|
||
}
|
||
getPixels(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
|
||
if (!this.hasValue())
|
||
return 0;
|
||
var [r, i] = typeof e == "boolean" ? [void 0, e] : [e], {
|
||
viewPort: n
|
||
} = this.document.screen;
|
||
switch (!0) {
|
||
case this.isString(/vmin$/):
|
||
return this.getNumber() / 100 * Math.min(n.computeSize("x"), n.computeSize("y"));
|
||
case this.isString(/vmax$/):
|
||
return this.getNumber() / 100 * Math.max(n.computeSize("x"), n.computeSize("y"));
|
||
case this.isString(/vw$/):
|
||
return this.getNumber() / 100 * n.computeSize("x");
|
||
case this.isString(/vh$/):
|
||
return this.getNumber() / 100 * n.computeSize("y");
|
||
case this.isString(/rem$/):
|
||
return this.getNumber() * this.getRem();
|
||
case this.isString(/em$/):
|
||
return this.getNumber() * this.getEm();
|
||
case this.isString(/ex$/):
|
||
return this.getNumber() * this.getEm() / 2;
|
||
case this.isString(/px$/):
|
||
return this.getNumber();
|
||
case this.isString(/pt$/):
|
||
return this.getNumber() * this.getDpi() * (1 / 72);
|
||
case this.isString(/pc$/):
|
||
return this.getNumber() * 15;
|
||
case this.isString(/cm$/):
|
||
return this.getNumber() * this.getDpi() / 2.54;
|
||
case this.isString(/mm$/):
|
||
return this.getNumber() * this.getDpi() / 25.4;
|
||
case this.isString(/in$/):
|
||
return this.getNumber() * this.getDpi();
|
||
case (this.isString(/%$/) && i):
|
||
return this.getNumber() * this.getEm();
|
||
case this.isString(/%$/):
|
||
return this.getNumber() * n.computeSize(r);
|
||
default: {
|
||
var o = this.getNumber();
|
||
return t && o < 1 ? o * n.computeSize(r) : o;
|
||
}
|
||
}
|
||
}
|
||
getMilliseconds() {
|
||
return this.hasValue() ? this.isString(/ms$/) ? this.getNumber() : this.getNumber() * 1e3 : 0;
|
||
}
|
||
getRadians() {
|
||
if (!this.hasValue())
|
||
return 0;
|
||
switch (!0) {
|
||
case this.isString(/deg$/):
|
||
return this.getNumber() * (Math.PI / 180);
|
||
case this.isString(/grad$/):
|
||
return this.getNumber() * (Math.PI / 200);
|
||
case this.isString(/rad$/):
|
||
return this.getNumber();
|
||
default:
|
||
return this.getNumber() * (Math.PI / 180);
|
||
}
|
||
}
|
||
getDefinition() {
|
||
var e = this.getString(), t = /#([^)'"]+)/.exec(e);
|
||
return t && (t = t[1]), t || (t = e), this.document.definitions[t];
|
||
}
|
||
getFillStyleDefinition(e, t) {
|
||
var r = this.getDefinition();
|
||
if (!r)
|
||
return null;
|
||
if (typeof r.createGradient == "function")
|
||
return r.createGradient(this.document.ctx, e, t);
|
||
if (typeof r.createPattern == "function") {
|
||
if (r.getHrefAttribute().hasValue()) {
|
||
var i = r.getAttribute("patternTransform");
|
||
r = r.getHrefAttribute().getDefinition(), i.hasValue() && r.getAttribute("patternTransform", !0).setValue(i.value);
|
||
}
|
||
return r.createPattern(this.document.ctx, e, t);
|
||
}
|
||
return null;
|
||
}
|
||
getTextBaseline() {
|
||
return this.hasValue() ? O.textBaselineMapping[this.getString()] : null;
|
||
}
|
||
addOpacity(e) {
|
||
for (var t = this.getColor(), r = t.length, i = 0, n = 0; n < r && (t[n] === "," && i++, i !== 3); n++)
|
||
;
|
||
if (e.hasValue() && this.isString() && i !== 3) {
|
||
var o = new xi(t);
|
||
o.ok && (o.alpha = e.getNumber(), t = o.toRGBA());
|
||
}
|
||
return new O(this.document, this.name, t);
|
||
}
|
||
}
|
||
O.textBaselineMapping = {
|
||
baseline: "alphabetic",
|
||
"before-edge": "top",
|
||
"text-before-edge": "top",
|
||
middle: "middle",
|
||
central: "middle",
|
||
"after-edge": "bottom",
|
||
"text-after-edge": "bottom",
|
||
ideographic: "ideographic",
|
||
alphabetic: "alphabetic",
|
||
hanging: "hanging",
|
||
mathematical: "alphabetic"
|
||
};
|
||
class p1 {
|
||
constructor() {
|
||
this.viewPorts = [];
|
||
}
|
||
clear() {
|
||
this.viewPorts = [];
|
||
}
|
||
setCurrent(e, t) {
|
||
this.viewPorts.push({
|
||
width: e,
|
||
height: t
|
||
});
|
||
}
|
||
removeCurrent() {
|
||
this.viewPorts.pop();
|
||
}
|
||
getCurrent() {
|
||
var {
|
||
viewPorts: e
|
||
} = this;
|
||
return e[e.length - 1];
|
||
}
|
||
get width() {
|
||
return this.getCurrent().width;
|
||
}
|
||
get height() {
|
||
return this.getCurrent().height;
|
||
}
|
||
computeSize(e) {
|
||
return typeof e == "number" ? e : e === "x" ? this.width : e === "y" ? this.height : Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);
|
||
}
|
||
}
|
||
class V {
|
||
constructor(e, t) {
|
||
this.x = e, this.y = t;
|
||
}
|
||
static parse(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, [r = t, i = t] = ie(e);
|
||
return new V(r, i);
|
||
}
|
||
static parseScale(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1, [r = t, i = r] = ie(e);
|
||
return new V(r, i);
|
||
}
|
||
static parsePath(e) {
|
||
for (var t = ie(e), r = t.length, i = [], n = 0; n < r; n += 2)
|
||
i.push(new V(t[n], t[n + 1]));
|
||
return i;
|
||
}
|
||
angleTo(e) {
|
||
return Math.atan2(e.y - this.y, e.x - this.x);
|
||
}
|
||
applyTransform(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this, i = t * e[0] + r * e[2] + e[4], n = t * e[1] + r * e[3] + e[5];
|
||
this.x = i, this.y = n;
|
||
}
|
||
}
|
||
class y1 {
|
||
constructor(e) {
|
||
this.screen = e, this.working = !1, this.events = [], this.eventElements = [], this.onClick = this.onClick.bind(this), this.onMouseMove = this.onMouseMove.bind(this);
|
||
}
|
||
isWorking() {
|
||
return this.working;
|
||
}
|
||
start() {
|
||
if (!this.working) {
|
||
var {
|
||
screen: e,
|
||
onClick: t,
|
||
onMouseMove: r
|
||
} = this, i = e.ctx.canvas;
|
||
i.onclick = t, i.onmousemove = r, this.working = !0;
|
||
}
|
||
}
|
||
stop() {
|
||
if (this.working) {
|
||
var e = this.screen.ctx.canvas;
|
||
this.working = !1, e.onclick = null, e.onmousemove = null;
|
||
}
|
||
}
|
||
hasEvents() {
|
||
return this.working && this.events.length > 0;
|
||
}
|
||
runEvents() {
|
||
if (this.working) {
|
||
var {
|
||
screen: e,
|
||
events: t,
|
||
eventElements: r
|
||
} = this, {
|
||
style: i
|
||
} = e.ctx.canvas;
|
||
i && (i.cursor = ""), t.forEach((n, o) => {
|
||
for (var {
|
||
run: s
|
||
} = n, u = r[o]; u; )
|
||
s(u), u = u.parent;
|
||
}), this.events = [], this.eventElements = [];
|
||
}
|
||
}
|
||
checkPath(e, t) {
|
||
if (!(!this.working || !t)) {
|
||
var {
|
||
events: r,
|
||
eventElements: i
|
||
} = this;
|
||
r.forEach((n, o) => {
|
||
var {
|
||
x: s,
|
||
y: u
|
||
} = n;
|
||
!i[o] && t.isPointInPath && t.isPointInPath(s, u) && (i[o] = e);
|
||
});
|
||
}
|
||
}
|
||
checkBoundingBox(e, t) {
|
||
if (!(!this.working || !t)) {
|
||
var {
|
||
events: r,
|
||
eventElements: i
|
||
} = this;
|
||
r.forEach((n, o) => {
|
||
var {
|
||
x: s,
|
||
y: u
|
||
} = n;
|
||
!i[o] && t.isPointInBox(s, u) && (i[o] = e);
|
||
});
|
||
}
|
||
}
|
||
mapXY(e, t) {
|
||
for (var {
|
||
window: r,
|
||
ctx: i
|
||
} = this.screen, n = new V(e, t), o = i.canvas; o; )
|
||
n.x -= o.offsetLeft, n.y -= o.offsetTop, o = o.offsetParent;
|
||
return r.scrollX && (n.x += r.scrollX), r.scrollY && (n.y += r.scrollY), n;
|
||
}
|
||
onClick(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.mapXY(e.clientX, e.clientY);
|
||
this.events.push({
|
||
type: "onclick",
|
||
x: t,
|
||
y: r,
|
||
run(i) {
|
||
i.onClick && i.onClick();
|
||
}
|
||
});
|
||
}
|
||
onMouseMove(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.mapXY(e.clientX, e.clientY);
|
||
this.events.push({
|
||
type: "onmousemove",
|
||
x: t,
|
||
y: r,
|
||
run(i) {
|
||
i.onMouseMove && i.onMouseMove();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
var bl = typeof window < "u" ? window : null, xl = typeof fetch < "u" ? fetch.bind(void 0) : null;
|
||
class kr {
|
||
constructor(e) {
|
||
var {
|
||
fetch: t = xl,
|
||
window: r = bl
|
||
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
||
this.ctx = e, this.FRAMERATE = 30, this.MAX_VIRTUAL_PIXELS = 3e4, this.CLIENT_WIDTH = 800, this.CLIENT_HEIGHT = 600, this.viewPort = new p1(), this.mouse = new y1(this), this.animations = [], this.waits = [], this.frameDuration = 0, this.isReadyLock = !1, this.isFirstRender = !0, this.intervalId = null, this.window = r, this.fetch = t;
|
||
}
|
||
wait(e) {
|
||
this.waits.push(e);
|
||
}
|
||
ready() {
|
||
return this.readyPromise ? this.readyPromise : Promise.resolve();
|
||
}
|
||
isReady() {
|
||
if (this.isReadyLock)
|
||
return !0;
|
||
var e = this.waits.every((t) => t());
|
||
return e && (this.waits = [], this.resolveReady && this.resolveReady()), this.isReadyLock = e, e;
|
||
}
|
||
setDefaults(e) {
|
||
e.strokeStyle = "rgba(0,0,0,0)", e.lineCap = "butt", e.lineJoin = "miter", e.miterLimit = 4;
|
||
}
|
||
setViewBox(e) {
|
||
var {
|
||
document: t,
|
||
ctx: r,
|
||
aspectRatio: i,
|
||
width: n,
|
||
desiredWidth: o,
|
||
height: s,
|
||
desiredHeight: u,
|
||
minX: l = 0,
|
||
minY: h = 0,
|
||
refX: f,
|
||
refY: c,
|
||
clip: v = !1,
|
||
clipX: d = 0,
|
||
clipY: g = 0
|
||
} = e, p = ft(i).replace(/^defer\s/, ""), [y, x] = p.split(" "), b = y || "xMidYMid", T = x || "meet", $ = n / o, E = s / u, S = Math.min($, E), C = Math.max($, E), N = o, _ = u;
|
||
T === "meet" && (N *= S, _ *= S), T === "slice" && (N *= C, _ *= C);
|
||
var B = new O(t, "refX", f), P = new O(t, "refY", c), X = B.hasValue() && P.hasValue();
|
||
if (X && r.translate(-S * B.getPixels("x"), -S * P.getPixels("y")), v) {
|
||
var W = S * d, U = S * g;
|
||
r.beginPath(), r.moveTo(W, U), r.lineTo(n, U), r.lineTo(n, s), r.lineTo(W, s), r.closePath(), r.clip();
|
||
}
|
||
if (!X) {
|
||
var q = T === "meet" && S === E, H = T === "slice" && C === E, Q = T === "meet" && S === $, R = T === "slice" && C === $;
|
||
b.startsWith("xMid") && (q || H) && r.translate(n / 2 - N / 2, 0), b.endsWith("YMid") && (Q || R) && r.translate(0, s / 2 - _ / 2), b.startsWith("xMax") && (q || H) && r.translate(n - N, 0), b.endsWith("YMax") && (Q || R) && r.translate(0, s - _);
|
||
}
|
||
switch (!0) {
|
||
case b === "none":
|
||
r.scale($, E);
|
||
break;
|
||
case T === "meet":
|
||
r.scale(S, S);
|
||
break;
|
||
case T === "slice":
|
||
r.scale(C, C);
|
||
break;
|
||
}
|
||
r.translate(-l, -h);
|
||
}
|
||
start(e) {
|
||
var {
|
||
enableRedraw: t = !1,
|
||
ignoreMouse: r = !1,
|
||
ignoreAnimation: i = !1,
|
||
ignoreDimensions: n = !1,
|
||
ignoreClear: o = !1,
|
||
forceRedraw: s,
|
||
scaleWidth: u,
|
||
scaleHeight: l,
|
||
offsetX: h,
|
||
offsetY: f
|
||
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
|
||
FRAMERATE: c,
|
||
mouse: v
|
||
} = this, d = 1e3 / c;
|
||
if (this.frameDuration = d, this.readyPromise = new Promise((b) => {
|
||
this.resolveReady = b;
|
||
}), this.isReady() && this.render(e, n, o, u, l, h, f), !!t) {
|
||
var g = Date.now(), p = g, y = 0, x = () => {
|
||
g = Date.now(), y = g - p, y >= d && (p = g - y % d, this.shouldUpdate(i, s) && (this.render(e, n, o, u, l, h, f), v.runEvents())), this.intervalId = Le(x);
|
||
};
|
||
r || v.start(), this.intervalId = Le(x);
|
||
}
|
||
}
|
||
stop() {
|
||
this.intervalId && (Le.cancel(this.intervalId), this.intervalId = null), this.mouse.stop();
|
||
}
|
||
shouldUpdate(e, t) {
|
||
if (!e) {
|
||
var {
|
||
frameDuration: r
|
||
} = this, i = this.animations.reduce((n, o) => o.update(r) || n, !1);
|
||
if (i)
|
||
return !0;
|
||
}
|
||
return !!(typeof t == "function" && t() || !this.isReadyLock && this.isReady() || this.mouse.hasEvents());
|
||
}
|
||
render(e, t, r, i, n, o, s) {
|
||
var {
|
||
CLIENT_WIDTH: u,
|
||
CLIENT_HEIGHT: l,
|
||
viewPort: h,
|
||
ctx: f,
|
||
isFirstRender: c
|
||
} = this, v = f.canvas;
|
||
h.clear(), v.width && v.height ? h.setCurrent(v.width, v.height) : h.setCurrent(u, l);
|
||
var d = e.getStyle("width"), g = e.getStyle("height");
|
||
!t && (c || typeof i != "number" && typeof n != "number") && (d.hasValue() && (v.width = d.getPixels("x"), v.style && (v.style.width = "".concat(v.width, "px"))), g.hasValue() && (v.height = g.getPixels("y"), v.style && (v.style.height = "".concat(v.height, "px"))));
|
||
var p = v.clientWidth || v.width, y = v.clientHeight || v.height;
|
||
if (t && d.hasValue() && g.hasValue() && (p = d.getPixels("x"), y = g.getPixels("y")), h.setCurrent(p, y), typeof o == "number" && e.getAttribute("x", !0).setValue(o), typeof s == "number" && e.getAttribute("y", !0).setValue(s), typeof i == "number" || typeof n == "number") {
|
||
var x = ie(e.getAttribute("viewBox").getString()), b = 0, T = 0;
|
||
if (typeof i == "number") {
|
||
var $ = e.getStyle("width");
|
||
$.hasValue() ? b = $.getPixels("x") / i : isNaN(x[2]) || (b = x[2] / i);
|
||
}
|
||
if (typeof n == "number") {
|
||
var E = e.getStyle("height");
|
||
E.hasValue() ? T = E.getPixels("y") / n : isNaN(x[3]) || (T = x[3] / n);
|
||
}
|
||
b || (b = T), T || (T = b), e.getAttribute("width", !0).setValue(i), e.getAttribute("height", !0).setValue(n);
|
||
var S = e.getStyle("transform", !0, !0);
|
||
S.setValue("".concat(S.getString(), " scale(").concat(1 / b, ", ").concat(1 / T, ")"));
|
||
}
|
||
r || f.clearRect(0, 0, p, y), e.render(f), c && (this.isFirstRender = !1);
|
||
}
|
||
}
|
||
kr.defaultWindow = bl;
|
||
kr.defaultFetch = xl;
|
||
var {
|
||
defaultFetch: m1
|
||
} = kr, b1 = typeof DOMParser < "u" ? DOMParser : null;
|
||
class Ha {
|
||
constructor() {
|
||
var {
|
||
fetch: e = m1,
|
||
DOMParser: t = b1
|
||
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
||
this.fetch = e, this.DOMParser = t;
|
||
}
|
||
parse(e) {
|
||
var t = this;
|
||
return xe(function* () {
|
||
return e.startsWith("<") ? t.parseFromString(e) : t.load(e);
|
||
})();
|
||
}
|
||
parseFromString(e) {
|
||
var t = new this.DOMParser();
|
||
try {
|
||
return this.checkDocument(t.parseFromString(e, "image/svg+xml"));
|
||
} catch {
|
||
return this.checkDocument(t.parseFromString(e, "text/xml"));
|
||
}
|
||
}
|
||
checkDocument(e) {
|
||
var t = e.getElementsByTagName("parsererror")[0];
|
||
if (t)
|
||
throw new Error(t.textContent);
|
||
return e;
|
||
}
|
||
load(e) {
|
||
var t = this;
|
||
return xe(function* () {
|
||
var r = yield t.fetch(e), i = yield r.text();
|
||
return t.parseFromString(i);
|
||
})();
|
||
}
|
||
}
|
||
class x1 {
|
||
constructor(e, t) {
|
||
this.type = "translate", this.point = null, this.point = V.parse(t);
|
||
}
|
||
apply(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.point;
|
||
e.translate(t || 0, r || 0);
|
||
}
|
||
unapply(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.point;
|
||
e.translate(-1 * t || 0, -1 * r || 0);
|
||
}
|
||
applyToPoint(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.point;
|
||
e.applyTransform([1, 0, 0, 1, t || 0, r || 0]);
|
||
}
|
||
}
|
||
class T1 {
|
||
constructor(e, t, r) {
|
||
this.type = "rotate", this.angle = null, this.originX = null, this.originY = null, this.cx = 0, this.cy = 0;
|
||
var i = ie(t);
|
||
this.angle = new O(e, "angle", i[0]), this.originX = r[0], this.originY = r[1], this.cx = i[1] || 0, this.cy = i[2] || 0;
|
||
}
|
||
apply(e) {
|
||
var {
|
||
cx: t,
|
||
cy: r,
|
||
originX: i,
|
||
originY: n,
|
||
angle: o
|
||
} = this, s = t + i.getPixels("x"), u = r + n.getPixels("y");
|
||
e.translate(s, u), e.rotate(o.getRadians()), e.translate(-s, -u);
|
||
}
|
||
unapply(e) {
|
||
var {
|
||
cx: t,
|
||
cy: r,
|
||
originX: i,
|
||
originY: n,
|
||
angle: o
|
||
} = this, s = t + i.getPixels("x"), u = r + n.getPixels("y");
|
||
e.translate(s, u), e.rotate(-1 * o.getRadians()), e.translate(-s, -u);
|
||
}
|
||
applyToPoint(e) {
|
||
var {
|
||
cx: t,
|
||
cy: r,
|
||
angle: i
|
||
} = this, n = i.getRadians();
|
||
e.applyTransform([
|
||
1,
|
||
0,
|
||
0,
|
||
1,
|
||
t || 0,
|
||
r || 0
|
||
// this.p.y
|
||
]), e.applyTransform([Math.cos(n), Math.sin(n), -Math.sin(n), Math.cos(n), 0, 0]), e.applyTransform([
|
||
1,
|
||
0,
|
||
0,
|
||
1,
|
||
-t || 0,
|
||
-r || 0
|
||
// -this.p.y
|
||
]);
|
||
}
|
||
}
|
||
class S1 {
|
||
constructor(e, t, r) {
|
||
this.type = "scale", this.scale = null, this.originX = null, this.originY = null;
|
||
var i = V.parseScale(t);
|
||
(i.x === 0 || i.y === 0) && (i.x = nt, i.y = nt), this.scale = i, this.originX = r[0], this.originY = r[1];
|
||
}
|
||
apply(e) {
|
||
var {
|
||
scale: {
|
||
x: t,
|
||
y: r
|
||
},
|
||
originX: i,
|
||
originY: n
|
||
} = this, o = i.getPixels("x"), s = n.getPixels("y");
|
||
e.translate(o, s), e.scale(t, r || t), e.translate(-o, -s);
|
||
}
|
||
unapply(e) {
|
||
var {
|
||
scale: {
|
||
x: t,
|
||
y: r
|
||
},
|
||
originX: i,
|
||
originY: n
|
||
} = this, o = i.getPixels("x"), s = n.getPixels("y");
|
||
e.translate(o, s), e.scale(1 / t, 1 / r || t), e.translate(-o, -s);
|
||
}
|
||
applyToPoint(e) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.scale;
|
||
e.applyTransform([t || 0, 0, 0, r || 0, 0, 0]);
|
||
}
|
||
}
|
||
class Tl {
|
||
constructor(e, t, r) {
|
||
this.type = "matrix", this.matrix = [], this.originX = null, this.originY = null, this.matrix = ie(t), this.originX = r[0], this.originY = r[1];
|
||
}
|
||
apply(e) {
|
||
var {
|
||
originX: t,
|
||
originY: r,
|
||
matrix: i
|
||
} = this, n = t.getPixels("x"), o = r.getPixels("y");
|
||
e.translate(n, o), e.transform(i[0], i[1], i[2], i[3], i[4], i[5]), e.translate(-n, -o);
|
||
}
|
||
unapply(e) {
|
||
var {
|
||
originX: t,
|
||
originY: r,
|
||
matrix: i
|
||
} = this, n = i[0], o = i[2], s = i[4], u = i[1], l = i[3], h = i[5], f = 0, c = 0, v = 1, d = 1 / (n * (l * v - h * c) - o * (u * v - h * f) + s * (u * c - l * f)), g = t.getPixels("x"), p = r.getPixels("y");
|
||
e.translate(g, p), e.transform(d * (l * v - h * c), d * (h * f - u * v), d * (s * c - o * v), d * (n * v - s * f), d * (o * h - s * l), d * (s * u - n * h)), e.translate(-g, -p);
|
||
}
|
||
applyToPoint(e) {
|
||
e.applyTransform(this.matrix);
|
||
}
|
||
}
|
||
class Sl extends Tl {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "skew", this.angle = null, this.angle = new O(e, "angle", t);
|
||
}
|
||
}
|
||
class O1 extends Sl {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "skewX", this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];
|
||
}
|
||
}
|
||
class E1 extends Sl {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "skewY", this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];
|
||
}
|
||
}
|
||
function $1(a) {
|
||
return ft(a).trim().replace(/\)([a-zA-Z])/g, ") $1").replace(/\)(\s?,\s?)/g, ") ").split(/\s(?=[a-z])/);
|
||
}
|
||
function w1(a) {
|
||
var [e, t] = a.split("(");
|
||
return [e.trim(), t.trim().replace(")", "")];
|
||
}
|
||
class Fe {
|
||
constructor(e, t, r) {
|
||
this.document = e, this.transforms = [];
|
||
var i = $1(t);
|
||
i.forEach((n) => {
|
||
if (n !== "none") {
|
||
var [o, s] = w1(n), u = Fe.transformTypes[o];
|
||
typeof u < "u" && this.transforms.push(new u(this.document, s, r));
|
||
}
|
||
});
|
||
}
|
||
static fromElement(e, t) {
|
||
var r = t.getStyle("transform", !1, !0), [i, n = i] = t.getStyle("transform-origin", !1, !0).split(), o = [i, n];
|
||
return r.hasValue() ? new Fe(e, r.getString(), o) : null;
|
||
}
|
||
apply(e) {
|
||
for (var {
|
||
transforms: t
|
||
} = this, r = t.length, i = 0; i < r; i++)
|
||
t[i].apply(e);
|
||
}
|
||
unapply(e) {
|
||
for (var {
|
||
transforms: t
|
||
} = this, r = t.length, i = r - 1; i >= 0; i--)
|
||
t[i].unapply(e);
|
||
}
|
||
// TODO: applyToPoint unused ... remove?
|
||
applyToPoint(e) {
|
||
for (var {
|
||
transforms: t
|
||
} = this, r = t.length, i = 0; i < r; i++)
|
||
t[i].applyToPoint(e);
|
||
}
|
||
}
|
||
Fe.transformTypes = {
|
||
translate: x1,
|
||
rotate: T1,
|
||
scale: S1,
|
||
matrix: Tl,
|
||
skewX: O1,
|
||
skewY: E1
|
||
};
|
||
class I {
|
||
constructor(e, t) {
|
||
var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
|
||
if (this.document = e, this.node = t, this.captureTextNodes = r, this.attributes = {}, this.styles = {}, this.stylesSpecificity = {}, this.animationFrozen = !1, this.animationFrozenValue = "", this.parent = null, this.children = [], !(!t || t.nodeType !== 1)) {
|
||
if (Array.from(t.attributes).forEach((s) => {
|
||
var u = s1(s.nodeName);
|
||
this.attributes[u] = new O(e, u, s.value);
|
||
}), this.addStylesFromStyleDefinition(), this.getAttribute("style").hasValue()) {
|
||
var i = this.getAttribute("style").getString().split(";").map((s) => s.trim());
|
||
i.forEach((s) => {
|
||
if (s) {
|
||
var [u, l] = s.split(":").map((h) => h.trim());
|
||
this.styles[u] = new O(e, u, l);
|
||
}
|
||
});
|
||
}
|
||
var {
|
||
definitions: n
|
||
} = e, o = this.getAttribute("id");
|
||
o.hasValue() && (n[o.getString()] || (n[o.getString()] = this)), Array.from(t.childNodes).forEach((s) => {
|
||
if (s.nodeType === 1)
|
||
this.addChild(s);
|
||
else if (r && (s.nodeType === 3 || s.nodeType === 4)) {
|
||
var u = e.createTextNode(s);
|
||
u.getText().length > 0 && this.addChild(u);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
getAttribute(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, r = this.attributes[e];
|
||
if (!r && t) {
|
||
var i = new O(this.document, e, "");
|
||
return this.attributes[e] = i, i;
|
||
}
|
||
return r || O.empty(this.document);
|
||
}
|
||
getHrefAttribute() {
|
||
for (var e in this.attributes)
|
||
if (e === "href" || e.endsWith(":href"))
|
||
return this.attributes[e];
|
||
return O.empty(this.document);
|
||
}
|
||
getStyle(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, i = this.styles[e];
|
||
if (i)
|
||
return i;
|
||
var n = this.getAttribute(e);
|
||
if (n != null && n.hasValue())
|
||
return this.styles[e] = n, n;
|
||
if (!r) {
|
||
var {
|
||
parent: o
|
||
} = this;
|
||
if (o) {
|
||
var s = o.getStyle(e);
|
||
if (s != null && s.hasValue())
|
||
return s;
|
||
}
|
||
}
|
||
if (t) {
|
||
var u = new O(this.document, e, "");
|
||
return this.styles[e] = u, u;
|
||
}
|
||
return i || O.empty(this.document);
|
||
}
|
||
render(e) {
|
||
if (!(this.getStyle("display").getString() === "none" || this.getStyle("visibility").getString() === "hidden")) {
|
||
if (e.save(), this.getStyle("mask").hasValue()) {
|
||
var t = this.getStyle("mask").getDefinition();
|
||
t && (this.applyEffects(e), t.apply(e, this));
|
||
} else if (this.getStyle("filter").getValue("none") !== "none") {
|
||
var r = this.getStyle("filter").getDefinition();
|
||
r && (this.applyEffects(e), r.apply(e, this));
|
||
} else
|
||
this.setContext(e), this.renderChildren(e), this.clearContext(e);
|
||
e.restore();
|
||
}
|
||
}
|
||
setContext(e) {
|
||
}
|
||
applyEffects(e) {
|
||
var t = Fe.fromElement(this.document, this);
|
||
t && t.apply(e);
|
||
var r = this.getStyle("clip-path", !1, !0);
|
||
if (r.hasValue()) {
|
||
var i = r.getDefinition();
|
||
i && i.apply(e);
|
||
}
|
||
}
|
||
clearContext(e) {
|
||
}
|
||
renderChildren(e) {
|
||
this.children.forEach((t) => {
|
||
t.render(e);
|
||
});
|
||
}
|
||
addChild(e) {
|
||
var t = e instanceof I ? e : this.document.createElement(e);
|
||
t.parent = this, I.ignoreChildTypes.includes(t.type) || this.children.push(t);
|
||
}
|
||
matchesSelector(e) {
|
||
var t, {
|
||
node: r
|
||
} = this;
|
||
if (typeof r.matches == "function")
|
||
return r.matches(e);
|
||
var i = (t = r.getAttribute) === null || t === void 0 ? void 0 : t.call(r, "class");
|
||
return !i || i === "" ? !1 : i.split(" ").some((n) => ".".concat(n) === e);
|
||
}
|
||
addStylesFromStyleDefinition() {
|
||
var {
|
||
styles: e,
|
||
stylesSpecificity: t
|
||
} = this.document;
|
||
for (var r in e)
|
||
if (!r.startsWith("@") && this.matchesSelector(r)) {
|
||
var i = e[r], n = t[r];
|
||
if (i)
|
||
for (var o in i) {
|
||
var s = this.stylesSpecificity[o];
|
||
typeof s > "u" && (s = "000"), n >= s && (this.styles[o] = i[o], this.stylesSpecificity[o] = n);
|
||
}
|
||
}
|
||
}
|
||
removeStyles(e, t) {
|
||
var r = t.reduce((i, n) => {
|
||
var o = e.getStyle(n);
|
||
if (!o.hasValue())
|
||
return i;
|
||
var s = o.getString();
|
||
return o.setValue(""), [...i, [n, s]];
|
||
}, []);
|
||
return r;
|
||
}
|
||
restoreStyles(e, t) {
|
||
t.forEach((r) => {
|
||
var [i, n] = r;
|
||
e.getStyle(i, !0).setValue(n);
|
||
});
|
||
}
|
||
isFirstChild() {
|
||
var e;
|
||
return ((e = this.parent) === null || e === void 0 ? void 0 : e.children.indexOf(this)) === 0;
|
||
}
|
||
}
|
||
I.ignoreChildTypes = ["title"];
|
||
class C1 extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r);
|
||
}
|
||
}
|
||
function A1(a) {
|
||
var e = a.trim();
|
||
return /^('|")/.test(e) ? e : '"'.concat(e, '"');
|
||
}
|
||
function P1(a) {
|
||
return typeof process > "u" ? a : a.trim().split(",").map(A1).join(",");
|
||
}
|
||
function R1(a) {
|
||
if (!a)
|
||
return "";
|
||
var e = a.trim().toLowerCase();
|
||
switch (e) {
|
||
case "normal":
|
||
case "italic":
|
||
case "oblique":
|
||
case "inherit":
|
||
case "initial":
|
||
case "unset":
|
||
return e;
|
||
default:
|
||
return /^oblique\s+(-|)\d+deg$/.test(e) ? e : "";
|
||
}
|
||
}
|
||
function I1(a) {
|
||
if (!a)
|
||
return "";
|
||
var e = a.trim().toLowerCase();
|
||
switch (e) {
|
||
case "normal":
|
||
case "bold":
|
||
case "lighter":
|
||
case "bolder":
|
||
case "inherit":
|
||
case "initial":
|
||
case "unset":
|
||
return e;
|
||
default:
|
||
return /^[\d.]+$/.test(e) ? e : "";
|
||
}
|
||
}
|
||
class J {
|
||
constructor(e, t, r, i, n, o) {
|
||
var s = o ? typeof o == "string" ? J.parse(o) : o : {};
|
||
this.fontFamily = n || s.fontFamily, this.fontSize = i || s.fontSize, this.fontStyle = e || s.fontStyle, this.fontWeight = r || s.fontWeight, this.fontVariant = t || s.fontVariant;
|
||
}
|
||
static parse() {
|
||
var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = arguments.length > 1 ? arguments[1] : void 0, r = "", i = "", n = "", o = "", s = "", u = ft(e).trim().split(" "), l = {
|
||
fontSize: !1,
|
||
fontStyle: !1,
|
||
fontWeight: !1,
|
||
fontVariant: !1
|
||
};
|
||
return u.forEach((h) => {
|
||
switch (!0) {
|
||
case (!l.fontStyle && J.styles.includes(h)):
|
||
h !== "inherit" && (r = h), l.fontStyle = !0;
|
||
break;
|
||
case (!l.fontVariant && J.variants.includes(h)):
|
||
h !== "inherit" && (i = h), l.fontStyle = !0, l.fontVariant = !0;
|
||
break;
|
||
case (!l.fontWeight && J.weights.includes(h)):
|
||
h !== "inherit" && (n = h), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0;
|
||
break;
|
||
case !l.fontSize:
|
||
h !== "inherit" && ([o] = h.split("/")), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0, l.fontSize = !0;
|
||
break;
|
||
default:
|
||
h !== "inherit" && (s += h);
|
||
}
|
||
}), new J(r, i, n, o, s, t);
|
||
}
|
||
toString() {
|
||
return [
|
||
R1(this.fontStyle),
|
||
this.fontVariant,
|
||
I1(this.fontWeight),
|
||
this.fontSize,
|
||
// Wrap fontFamily only on nodejs and only for canvas.ctx
|
||
P1(this.fontFamily)
|
||
].join(" ").trim();
|
||
}
|
||
}
|
||
J.styles = "normal|italic|oblique|inherit";
|
||
J.variants = "normal|small-caps|inherit";
|
||
J.weights = "normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";
|
||
class he {
|
||
constructor() {
|
||
var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Number.NaN, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.NaN, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.NaN, i = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Number.NaN;
|
||
this.x1 = e, this.y1 = t, this.x2 = r, this.y2 = i, this.addPoint(e, t), this.addPoint(r, i);
|
||
}
|
||
get x() {
|
||
return this.x1;
|
||
}
|
||
get y() {
|
||
return this.y1;
|
||
}
|
||
get width() {
|
||
return this.x2 - this.x1;
|
||
}
|
||
get height() {
|
||
return this.y2 - this.y1;
|
||
}
|
||
addPoint(e, t) {
|
||
typeof e < "u" && ((isNaN(this.x1) || isNaN(this.x2)) && (this.x1 = e, this.x2 = e), e < this.x1 && (this.x1 = e), e > this.x2 && (this.x2 = e)), typeof t < "u" && ((isNaN(this.y1) || isNaN(this.y2)) && (this.y1 = t, this.y2 = t), t < this.y1 && (this.y1 = t), t > this.y2 && (this.y2 = t));
|
||
}
|
||
addX(e) {
|
||
this.addPoint(e, null);
|
||
}
|
||
addY(e) {
|
||
this.addPoint(null, e);
|
||
}
|
||
addBoundingBox(e) {
|
||
if (e) {
|
||
var {
|
||
x1: t,
|
||
y1: r,
|
||
x2: i,
|
||
y2: n
|
||
} = e;
|
||
this.addPoint(t, r), this.addPoint(i, n);
|
||
}
|
||
}
|
||
sumCubic(e, t, r, i, n) {
|
||
return Math.pow(1 - e, 3) * t + 3 * Math.pow(1 - e, 2) * e * r + 3 * (1 - e) * Math.pow(e, 2) * i + Math.pow(e, 3) * n;
|
||
}
|
||
bezierCurveAdd(e, t, r, i, n) {
|
||
var o = 6 * t - 12 * r + 6 * i, s = -3 * t + 9 * r - 9 * i + 3 * n, u = 3 * r - 3 * t;
|
||
if (s === 0) {
|
||
if (o === 0)
|
||
return;
|
||
var l = -u / o;
|
||
0 < l && l < 1 && (e ? this.addX(this.sumCubic(l, t, r, i, n)) : this.addY(this.sumCubic(l, t, r, i, n)));
|
||
return;
|
||
}
|
||
var h = Math.pow(o, 2) - 4 * u * s;
|
||
if (!(h < 0)) {
|
||
var f = (-o + Math.sqrt(h)) / (2 * s);
|
||
0 < f && f < 1 && (e ? this.addX(this.sumCubic(f, t, r, i, n)) : this.addY(this.sumCubic(f, t, r, i, n)));
|
||
var c = (-o - Math.sqrt(h)) / (2 * s);
|
||
0 < c && c < 1 && (e ? this.addX(this.sumCubic(c, t, r, i, n)) : this.addY(this.sumCubic(c, t, r, i, n)));
|
||
}
|
||
}
|
||
// from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
|
||
addBezierCurve(e, t, r, i, n, o, s, u) {
|
||
this.addPoint(e, t), this.addPoint(s, u), this.bezierCurveAdd(!0, e, r, n, s), this.bezierCurveAdd(!1, t, i, o, u);
|
||
}
|
||
addQuadraticCurve(e, t, r, i, n, o) {
|
||
var s = e + 0.6666666666666666 * (r - e), u = t + 2 / 3 * (i - t), l = s + 1 / 3 * (n - e), h = u + 1 / 3 * (o - t);
|
||
this.addBezierCurve(e, t, s, l, u, h, n, o);
|
||
}
|
||
isPointInBox(e, t) {
|
||
var {
|
||
x1: r,
|
||
y1: i,
|
||
x2: n,
|
||
y2: o
|
||
} = this;
|
||
return r <= e && e <= n && i <= t && t <= o;
|
||
}
|
||
}
|
||
class w extends m {
|
||
constructor(e) {
|
||
super(e.replace(/([+\-.])\s+/gm, "$1").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g, "")), this.control = null, this.start = null, this.current = null, this.command = null, this.commands = this.commands, this.i = -1, this.previousCommand = null, this.points = [], this.angles = [];
|
||
}
|
||
reset() {
|
||
this.i = -1, this.command = null, this.previousCommand = null, this.start = new V(0, 0), this.control = new V(0, 0), this.current = new V(0, 0), this.points = [], this.angles = [];
|
||
}
|
||
isEnd() {
|
||
var {
|
||
i: e,
|
||
commands: t
|
||
} = this;
|
||
return e >= t.length - 1;
|
||
}
|
||
next() {
|
||
var e = this.commands[++this.i];
|
||
return this.previousCommand = this.command, this.command = e, e;
|
||
}
|
||
getPoint() {
|
||
var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "x", t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "y", r = new V(this.command[e], this.command[t]);
|
||
return this.makeAbsolute(r);
|
||
}
|
||
getAsControlPoint(e, t) {
|
||
var r = this.getPoint(e, t);
|
||
return this.control = r, r;
|
||
}
|
||
getAsCurrentPoint(e, t) {
|
||
var r = this.getPoint(e, t);
|
||
return this.current = r, r;
|
||
}
|
||
getReflectedControlPoint() {
|
||
var e = this.previousCommand.type;
|
||
if (e !== m.CURVE_TO && e !== m.SMOOTH_CURVE_TO && e !== m.QUAD_TO && e !== m.SMOOTH_QUAD_TO)
|
||
return this.current;
|
||
var {
|
||
current: {
|
||
x: t,
|
||
y: r
|
||
},
|
||
control: {
|
||
x: i,
|
||
y: n
|
||
}
|
||
} = this, o = new V(2 * t - i, 2 * r - n);
|
||
return o;
|
||
}
|
||
makeAbsolute(e) {
|
||
if (this.command.relative) {
|
||
var {
|
||
x: t,
|
||
y: r
|
||
} = this.current;
|
||
e.x += t, e.y += r;
|
||
}
|
||
return e;
|
||
}
|
||
addMarker(e, t, r) {
|
||
var {
|
||
points: i,
|
||
angles: n
|
||
} = this;
|
||
r && n.length > 0 && !n[n.length - 1] && (n[n.length - 1] = i[i.length - 1].angleTo(r)), this.addMarkerAngle(e, t ? t.angleTo(e) : null);
|
||
}
|
||
addMarkerAngle(e, t) {
|
||
this.points.push(e), this.angles.push(t);
|
||
}
|
||
getMarkerPoints() {
|
||
return this.points;
|
||
}
|
||
getMarkerAngles() {
|
||
for (var {
|
||
angles: e
|
||
} = this, t = e.length, r = 0; r < t; r++)
|
||
if (!e[r]) {
|
||
for (var i = r + 1; i < t; i++)
|
||
if (e[i]) {
|
||
e[r] = e[i];
|
||
break;
|
||
}
|
||
}
|
||
return e;
|
||
}
|
||
}
|
||
class He extends I {
|
||
constructor() {
|
||
super(...arguments), this.modifiedEmSizeStack = !1;
|
||
}
|
||
calculateOpacity() {
|
||
for (var e = 1, t = this; t; ) {
|
||
var r = t.getStyle("opacity", !1, !0);
|
||
r.hasValue(!0) && (e *= r.getNumber()), t = t.parent;
|
||
}
|
||
return e;
|
||
}
|
||
setContext(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
|
||
if (!t) {
|
||
var r = this.getStyle("fill"), i = this.getStyle("fill-opacity"), n = this.getStyle("stroke"), o = this.getStyle("stroke-opacity");
|
||
if (r.isUrlDefinition()) {
|
||
var s = r.getFillStyleDefinition(this, i);
|
||
s && (e.fillStyle = s);
|
||
} else if (r.hasValue()) {
|
||
r.getString() === "currentColor" && r.setValue(this.getStyle("color").getColor());
|
||
var u = r.getColor();
|
||
u !== "inherit" && (e.fillStyle = u === "none" ? "rgba(0,0,0,0)" : u);
|
||
}
|
||
if (i.hasValue()) {
|
||
var l = new O(this.document, "fill", e.fillStyle).addOpacity(i).getColor();
|
||
e.fillStyle = l;
|
||
}
|
||
if (n.isUrlDefinition()) {
|
||
var h = n.getFillStyleDefinition(this, o);
|
||
h && (e.strokeStyle = h);
|
||
} else if (n.hasValue()) {
|
||
n.getString() === "currentColor" && n.setValue(this.getStyle("color").getColor());
|
||
var f = n.getString();
|
||
f !== "inherit" && (e.strokeStyle = f === "none" ? "rgba(0,0,0,0)" : f);
|
||
}
|
||
if (o.hasValue()) {
|
||
var c = new O(this.document, "stroke", e.strokeStyle).addOpacity(o).getString();
|
||
e.strokeStyle = c;
|
||
}
|
||
var v = this.getStyle("stroke-width");
|
||
if (v.hasValue()) {
|
||
var d = v.getPixels();
|
||
e.lineWidth = d || nt;
|
||
}
|
||
var g = this.getStyle("stroke-linecap"), p = this.getStyle("stroke-linejoin"), y = this.getStyle("stroke-miterlimit"), x = this.getStyle("stroke-dasharray"), b = this.getStyle("stroke-dashoffset");
|
||
if (g.hasValue() && (e.lineCap = g.getString()), p.hasValue() && (e.lineJoin = p.getString()), y.hasValue() && (e.miterLimit = y.getNumber()), x.hasValue() && x.getString() !== "none") {
|
||
var T = ie(x.getString());
|
||
typeof e.setLineDash < "u" ? e.setLineDash(T) : typeof e.webkitLineDash < "u" ? e.webkitLineDash = T : typeof e.mozDash < "u" && !(T.length === 1 && T[0] === 0) && (e.mozDash = T);
|
||
var $ = b.getPixels();
|
||
typeof e.lineDashOffset < "u" ? e.lineDashOffset = $ : typeof e.webkitLineDashOffset < "u" ? e.webkitLineDashOffset = $ : typeof e.mozDashOffset < "u" && (e.mozDashOffset = $);
|
||
}
|
||
}
|
||
if (this.modifiedEmSizeStack = !1, typeof e.font < "u") {
|
||
var E = this.getStyle("font"), S = this.getStyle("font-style"), C = this.getStyle("font-variant"), N = this.getStyle("font-weight"), _ = this.getStyle("font-size"), B = this.getStyle("font-family"), P = new J(S.getString(), C.getString(), N.getString(), _.hasValue() ? "".concat(_.getPixels(!0), "px") : "", B.getString(), J.parse(E.getString(), e.font));
|
||
S.setValue(P.fontStyle), C.setValue(P.fontVariant), N.setValue(P.fontWeight), _.setValue(P.fontSize), B.setValue(P.fontFamily), e.font = P.toString(), _.isPixels() && (this.document.emSize = _.getPixels(), this.modifiedEmSizeStack = !0);
|
||
}
|
||
t || (this.applyEffects(e), e.globalAlpha = this.calculateOpacity());
|
||
}
|
||
clearContext(e) {
|
||
super.clearContext(e), this.modifiedEmSizeStack && this.document.popEmSize();
|
||
}
|
||
}
|
||
class A extends He {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "path", this.pathParser = null, this.pathParser = new w(this.getAttribute("d").getString());
|
||
}
|
||
path(e) {
|
||
var {
|
||
pathParser: t
|
||
} = this, r = new he();
|
||
for (t.reset(), e && e.beginPath(); !t.isEnd(); )
|
||
switch (t.next().type) {
|
||
case w.MOVE_TO:
|
||
this.pathM(e, r);
|
||
break;
|
||
case w.LINE_TO:
|
||
this.pathL(e, r);
|
||
break;
|
||
case w.HORIZ_LINE_TO:
|
||
this.pathH(e, r);
|
||
break;
|
||
case w.VERT_LINE_TO:
|
||
this.pathV(e, r);
|
||
break;
|
||
case w.CURVE_TO:
|
||
this.pathC(e, r);
|
||
break;
|
||
case w.SMOOTH_CURVE_TO:
|
||
this.pathS(e, r);
|
||
break;
|
||
case w.QUAD_TO:
|
||
this.pathQ(e, r);
|
||
break;
|
||
case w.SMOOTH_QUAD_TO:
|
||
this.pathT(e, r);
|
||
break;
|
||
case w.ARC:
|
||
this.pathA(e, r);
|
||
break;
|
||
case w.CLOSE_PATH:
|
||
this.pathZ(e, r);
|
||
break;
|
||
}
|
||
return r;
|
||
}
|
||
getBoundingBox(e) {
|
||
return this.path();
|
||
}
|
||
getMarkers() {
|
||
var {
|
||
pathParser: e
|
||
} = this, t = e.getMarkerPoints(), r = e.getMarkerAngles(), i = t.map((n, o) => [n, r[o]]);
|
||
return i;
|
||
}
|
||
renderChildren(e) {
|
||
this.path(e), this.document.screen.mouse.checkPath(this, e);
|
||
var t = this.getStyle("fill-rule");
|
||
e.fillStyle !== "" && (t.getString("inherit") !== "inherit" ? e.fill(t.getString()) : e.fill()), e.strokeStyle !== "" && (this.getAttribute("vector-effect").getString() === "non-scaling-stroke" ? (e.save(), e.setTransform(1, 0, 0, 1, 0, 0), e.stroke(), e.restore()) : e.stroke());
|
||
var r = this.getMarkers();
|
||
if (r) {
|
||
var i = r.length - 1, n = this.getStyle("marker-start"), o = this.getStyle("marker-mid"), s = this.getStyle("marker-end");
|
||
if (n.isUrlDefinition()) {
|
||
var u = n.getDefinition(), [l, h] = r[0];
|
||
u.render(e, l, h);
|
||
}
|
||
if (o.isUrlDefinition())
|
||
for (var f = o.getDefinition(), c = 1; c < i; c++) {
|
||
var [v, d] = r[c];
|
||
f.render(e, v, d);
|
||
}
|
||
if (s.isUrlDefinition()) {
|
||
var g = s.getDefinition(), [p, y] = r[i];
|
||
g.render(e, p, y);
|
||
}
|
||
}
|
||
}
|
||
static pathM(e) {
|
||
var t = e.getAsCurrentPoint();
|
||
return e.start = e.current, {
|
||
point: t
|
||
};
|
||
}
|
||
pathM(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
point: i
|
||
} = A.pathM(r), {
|
||
x: n,
|
||
y: o
|
||
} = i;
|
||
r.addMarker(i), t.addPoint(n, o), e && e.moveTo(n, o);
|
||
}
|
||
static pathL(e) {
|
||
var {
|
||
current: t
|
||
} = e, r = e.getAsCurrentPoint();
|
||
return {
|
||
current: t,
|
||
point: r
|
||
};
|
||
}
|
||
pathL(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
point: n
|
||
} = A.pathL(r), {
|
||
x: o,
|
||
y: s
|
||
} = n;
|
||
r.addMarker(n, i), t.addPoint(o, s), e && e.lineTo(o, s);
|
||
}
|
||
static pathH(e) {
|
||
var {
|
||
current: t,
|
||
command: r
|
||
} = e, i = new V((r.relative ? t.x : 0) + r.x, t.y);
|
||
return e.current = i, {
|
||
current: t,
|
||
point: i
|
||
};
|
||
}
|
||
pathH(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
point: n
|
||
} = A.pathH(r), {
|
||
x: o,
|
||
y: s
|
||
} = n;
|
||
r.addMarker(n, i), t.addPoint(o, s), e && e.lineTo(o, s);
|
||
}
|
||
static pathV(e) {
|
||
var {
|
||
current: t,
|
||
command: r
|
||
} = e, i = new V(t.x, (r.relative ? t.y : 0) + r.y);
|
||
return e.current = i, {
|
||
current: t,
|
||
point: i
|
||
};
|
||
}
|
||
pathV(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
point: n
|
||
} = A.pathV(r), {
|
||
x: o,
|
||
y: s
|
||
} = n;
|
||
r.addMarker(n, i), t.addPoint(o, s), e && e.lineTo(o, s);
|
||
}
|
||
static pathC(e) {
|
||
var {
|
||
current: t
|
||
} = e, r = e.getPoint("x1", "y1"), i = e.getAsControlPoint("x2", "y2"), n = e.getAsCurrentPoint();
|
||
return {
|
||
current: t,
|
||
point: r,
|
||
controlPoint: i,
|
||
currentPoint: n
|
||
};
|
||
}
|
||
pathC(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
point: n,
|
||
controlPoint: o,
|
||
currentPoint: s
|
||
} = A.pathC(r);
|
||
r.addMarker(s, o, n), t.addBezierCurve(i.x, i.y, n.x, n.y, o.x, o.y, s.x, s.y), e && e.bezierCurveTo(n.x, n.y, o.x, o.y, s.x, s.y);
|
||
}
|
||
static pathS(e) {
|
||
var {
|
||
current: t
|
||
} = e, r = e.getReflectedControlPoint(), i = e.getAsControlPoint("x2", "y2"), n = e.getAsCurrentPoint();
|
||
return {
|
||
current: t,
|
||
point: r,
|
||
controlPoint: i,
|
||
currentPoint: n
|
||
};
|
||
}
|
||
pathS(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
point: n,
|
||
controlPoint: o,
|
||
currentPoint: s
|
||
} = A.pathS(r);
|
||
r.addMarker(s, o, n), t.addBezierCurve(i.x, i.y, n.x, n.y, o.x, o.y, s.x, s.y), e && e.bezierCurveTo(n.x, n.y, o.x, o.y, s.x, s.y);
|
||
}
|
||
static pathQ(e) {
|
||
var {
|
||
current: t
|
||
} = e, r = e.getAsControlPoint("x1", "y1"), i = e.getAsCurrentPoint();
|
||
return {
|
||
current: t,
|
||
controlPoint: r,
|
||
currentPoint: i
|
||
};
|
||
}
|
||
pathQ(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
controlPoint: n,
|
||
currentPoint: o
|
||
} = A.pathQ(r);
|
||
r.addMarker(o, n, n), t.addQuadraticCurve(i.x, i.y, n.x, n.y, o.x, o.y), e && e.quadraticCurveTo(n.x, n.y, o.x, o.y);
|
||
}
|
||
static pathT(e) {
|
||
var {
|
||
current: t
|
||
} = e, r = e.getReflectedControlPoint();
|
||
e.control = r;
|
||
var i = e.getAsCurrentPoint();
|
||
return {
|
||
current: t,
|
||
controlPoint: r,
|
||
currentPoint: i
|
||
};
|
||
}
|
||
pathT(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
current: i,
|
||
controlPoint: n,
|
||
currentPoint: o
|
||
} = A.pathT(r);
|
||
r.addMarker(o, n, n), t.addQuadraticCurve(i.x, i.y, n.x, n.y, o.x, o.y), e && e.quadraticCurveTo(n.x, n.y, o.x, o.y);
|
||
}
|
||
static pathA(e) {
|
||
var {
|
||
current: t,
|
||
command: r
|
||
} = e, {
|
||
rX: i,
|
||
rY: n,
|
||
xRot: o,
|
||
lArcFlag: s,
|
||
sweepFlag: u
|
||
} = r, l = o * (Math.PI / 180), h = e.getAsCurrentPoint(), f = new V(Math.cos(l) * (t.x - h.x) / 2 + Math.sin(l) * (t.y - h.y) / 2, -Math.sin(l) * (t.x - h.x) / 2 + Math.cos(l) * (t.y - h.y) / 2), c = Math.pow(f.x, 2) / Math.pow(i, 2) + Math.pow(f.y, 2) / Math.pow(n, 2);
|
||
c > 1 && (i *= Math.sqrt(c), n *= Math.sqrt(c));
|
||
var v = (s === u ? -1 : 1) * Math.sqrt((Math.pow(i, 2) * Math.pow(n, 2) - Math.pow(i, 2) * Math.pow(f.y, 2) - Math.pow(n, 2) * Math.pow(f.x, 2)) / (Math.pow(i, 2) * Math.pow(f.y, 2) + Math.pow(n, 2) * Math.pow(f.x, 2)));
|
||
isNaN(v) && (v = 0);
|
||
var d = new V(v * i * f.y / n, v * -n * f.x / i), g = new V((t.x + h.x) / 2 + Math.cos(l) * d.x - Math.sin(l) * d.y, (t.y + h.y) / 2 + Math.sin(l) * d.x + Math.cos(l) * d.y), p = $o([1, 0], [(f.x - d.x) / i, (f.y - d.y) / n]), y = [(f.x - d.x) / i, (f.y - d.y) / n], x = [(-f.x - d.x) / i, (-f.y - d.y) / n], b = $o(y, x);
|
||
return Oi(y, x) <= -1 && (b = Math.PI), Oi(y, x) >= 1 && (b = 0), {
|
||
currentPoint: h,
|
||
rX: i,
|
||
rY: n,
|
||
sweepFlag: u,
|
||
xAxisRotation: l,
|
||
centp: g,
|
||
a1: p,
|
||
ad: b
|
||
};
|
||
}
|
||
pathA(e, t) {
|
||
var {
|
||
pathParser: r
|
||
} = this, {
|
||
currentPoint: i,
|
||
rX: n,
|
||
rY: o,
|
||
sweepFlag: s,
|
||
xAxisRotation: u,
|
||
centp: l,
|
||
a1: h,
|
||
ad: f
|
||
} = A.pathA(r), c = 1 - s ? 1 : -1, v = h + c * (f / 2), d = new V(l.x + n * Math.cos(v), l.y + o * Math.sin(v));
|
||
if (r.addMarkerAngle(d, v - c * Math.PI / 2), r.addMarkerAngle(i, v - c * Math.PI), t.addPoint(i.x, i.y), e && !isNaN(h) && !isNaN(f)) {
|
||
var g = n > o ? n : o, p = n > o ? 1 : n / o, y = n > o ? o / n : 1;
|
||
e.translate(l.x, l.y), e.rotate(u), e.scale(p, y), e.arc(0, 0, g, h, h + f, !!(1 - s)), e.scale(1 / p, 1 / y), e.rotate(-u), e.translate(-l.x, -l.y);
|
||
}
|
||
}
|
||
static pathZ(e) {
|
||
e.current = e.start;
|
||
}
|
||
pathZ(e, t) {
|
||
A.pathZ(this.pathParser), e && t.x1 !== t.x2 && t.y1 !== t.y2 && e.closePath();
|
||
}
|
||
}
|
||
class Ol extends A {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "glyph", this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber(), this.unicode = this.getAttribute("unicode").getString(), this.arabicForm = this.getAttribute("arabic-form").getString();
|
||
}
|
||
}
|
||
class Ce extends He {
|
||
constructor(e, t, r) {
|
||
super(e, t, new.target === Ce ? !0 : r), this.type = "text", this.x = 0, this.y = 0, this.measureCache = -1;
|
||
}
|
||
setContext(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
|
||
super.setContext(e, t);
|
||
var r = this.getStyle("dominant-baseline").getTextBaseline() || this.getStyle("alignment-baseline").getTextBaseline();
|
||
r && (e.textBaseline = r);
|
||
}
|
||
initializeCoordinates() {
|
||
this.x = 0, this.y = 0, this.leafTexts = [], this.textChunkStart = 0, this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY;
|
||
}
|
||
getBoundingBox(e) {
|
||
if (this.type !== "text")
|
||
return this.getTElementBoundingBox(e);
|
||
this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(e);
|
||
var t = null;
|
||
return this.children.forEach((r, i) => {
|
||
var n = this.getChildBoundingBox(e, this, this, i);
|
||
t ? t.addBoundingBox(n) : t = n;
|
||
}), t;
|
||
}
|
||
getFontSize() {
|
||
var {
|
||
document: e,
|
||
parent: t
|
||
} = this, r = J.parse(e.ctx.font).fontSize, i = t.getStyle("font-size").getNumber(r);
|
||
return i;
|
||
}
|
||
getTElementBoundingBox(e) {
|
||
var t = this.getFontSize();
|
||
return new he(this.x, this.y - t, this.x + this.measureText(e), this.y);
|
||
}
|
||
getGlyph(e, t, r) {
|
||
var i = t[r], n = null;
|
||
if (e.isArabic) {
|
||
var o = t.length, s = t[r - 1], u = t[r + 1], l = "isolated";
|
||
if ((r === 0 || s === " ") && r < o - 1 && u !== " " && (l = "terminal"), r > 0 && s !== " " && r < o - 1 && u !== " " && (l = "medial"), r > 0 && s !== " " && (r === o - 1 || u === " ") && (l = "initial"), typeof e.glyphs[i] < "u") {
|
||
var h = e.glyphs[i];
|
||
n = h instanceof Ol ? h : h[l];
|
||
}
|
||
} else
|
||
n = e.glyphs[i];
|
||
return n || (n = e.missingGlyph), n;
|
||
}
|
||
getText() {
|
||
return "";
|
||
}
|
||
getTextFromNode(e) {
|
||
var t = e || this.node, r = Array.from(t.parentNode.childNodes), i = r.indexOf(t), n = r.length - 1, o = ft(
|
||
// textNode.value
|
||
// || textNode.text
|
||
t.textContent || ""
|
||
);
|
||
return i === 0 && (o = a1(o)), i === n && (o = i1(o)), o;
|
||
}
|
||
renderChildren(e) {
|
||
if (this.type !== "text") {
|
||
this.renderTElementChildren(e);
|
||
return;
|
||
}
|
||
this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(e), this.children.forEach((r, i) => {
|
||
this.renderChild(e, this, this, i);
|
||
});
|
||
var {
|
||
mouse: t
|
||
} = this.document.screen;
|
||
t.isWorking() && t.checkBoundingBox(this, this.getBoundingBox(e));
|
||
}
|
||
renderTElementChildren(e) {
|
||
var {
|
||
document: t,
|
||
parent: r
|
||
} = this, i = this.getText(), n = r.getStyle("font-family").getDefinition();
|
||
if (n) {
|
||
for (var {
|
||
unitsPerEm: o
|
||
} = n.fontFace, s = J.parse(t.ctx.font), u = r.getStyle("font-size").getNumber(s.fontSize), l = r.getStyle("font-style").getString(s.fontStyle), h = u / o, f = n.isRTL ? i.split("").reverse().join("") : i, c = ie(r.getAttribute("dx").getString()), v = f.length, d = 0; d < v; d++) {
|
||
var g = this.getGlyph(n, f, d);
|
||
e.translate(this.x, this.y), e.scale(h, -h);
|
||
var p = e.lineWidth;
|
||
e.lineWidth = e.lineWidth * o / u, l === "italic" && e.transform(1, 0, 0.4, 1, 0, 0), g.render(e), l === "italic" && e.transform(1, 0, -0.4, 1, 0, 0), e.lineWidth = p, e.scale(1 / h, -1 / h), e.translate(-this.x, -this.y), this.x += u * (g.horizAdvX || n.horizAdvX) / o, typeof c[d] < "u" && !isNaN(c[d]) && (this.x += c[d]);
|
||
}
|
||
return;
|
||
}
|
||
var {
|
||
x: y,
|
||
y: x
|
||
} = this;
|
||
e.fillStyle && e.fillText(i, y, x), e.strokeStyle && e.strokeText(i, y, x);
|
||
}
|
||
applyAnchoring() {
|
||
if (!(this.textChunkStart >= this.leafTexts.length)) {
|
||
var e = this.leafTexts[this.textChunkStart], t = e.getStyle("text-anchor").getString("start"), r = !1, i = 0;
|
||
t === "start" && !r || t === "end" && r ? i = e.x - this.minX : t === "end" && !r || t === "start" && r ? i = e.x - this.maxX : i = e.x - (this.minX + this.maxX) / 2;
|
||
for (var n = this.textChunkStart; n < this.leafTexts.length; n++)
|
||
this.leafTexts[n].x += i;
|
||
this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY, this.textChunkStart = this.leafTexts.length;
|
||
}
|
||
}
|
||
adjustChildCoordinatesRecursive(e) {
|
||
this.children.forEach((t, r) => {
|
||
this.adjustChildCoordinatesRecursiveCore(e, this, this, r);
|
||
}), this.applyAnchoring();
|
||
}
|
||
adjustChildCoordinatesRecursiveCore(e, t, r, i) {
|
||
var n = r.children[i];
|
||
n.children.length > 0 ? n.children.forEach((o, s) => {
|
||
t.adjustChildCoordinatesRecursiveCore(e, t, n, s);
|
||
}) : this.adjustChildCoordinates(e, t, r, i);
|
||
}
|
||
adjustChildCoordinates(e, t, r, i) {
|
||
var n = r.children[i];
|
||
if (typeof n.measureText != "function")
|
||
return n;
|
||
e.save(), n.setContext(e, !0);
|
||
var o = n.getAttribute("x"), s = n.getAttribute("y"), u = n.getAttribute("dx"), l = n.getAttribute("dy"), h = n.getStyle("font-family").getDefinition(), f = !!h && h.isRTL;
|
||
i === 0 && (o.hasValue() || o.setValue(n.getInheritedAttribute("x")), s.hasValue() || s.setValue(n.getInheritedAttribute("y")), u.hasValue() || u.setValue(n.getInheritedAttribute("dx")), l.hasValue() || l.setValue(n.getInheritedAttribute("dy")));
|
||
var c = n.measureText(e);
|
||
return f && (t.x -= c), o.hasValue() ? (t.applyAnchoring(), n.x = o.getPixels("x"), u.hasValue() && (n.x += u.getPixels("x"))) : (u.hasValue() && (t.x += u.getPixels("x")), n.x = t.x), t.x = n.x, f || (t.x += c), s.hasValue() ? (n.y = s.getPixels("y"), l.hasValue() && (n.y += l.getPixels("y"))) : (l.hasValue() && (t.y += l.getPixels("y")), n.y = t.y), t.y = n.y, t.leafTexts.push(n), t.minX = Math.min(t.minX, n.x, n.x + c), t.maxX = Math.max(t.maxX, n.x, n.x + c), n.clearContext(e), e.restore(), n;
|
||
}
|
||
getChildBoundingBox(e, t, r, i) {
|
||
var n = r.children[i];
|
||
if (typeof n.getBoundingBox != "function")
|
||
return null;
|
||
var o = n.getBoundingBox(e);
|
||
return o ? (n.children.forEach((s, u) => {
|
||
var l = t.getChildBoundingBox(e, t, n, u);
|
||
o.addBoundingBox(l);
|
||
}), o) : null;
|
||
}
|
||
renderChild(e, t, r, i) {
|
||
var n = r.children[i];
|
||
n.render(e), n.children.forEach((o, s) => {
|
||
t.renderChild(e, t, n, s);
|
||
});
|
||
}
|
||
measureText(e) {
|
||
var {
|
||
measureCache: t
|
||
} = this;
|
||
if (~t)
|
||
return t;
|
||
var r = this.getText(), i = this.measureTargetText(e, r);
|
||
return this.measureCache = i, i;
|
||
}
|
||
measureTargetText(e, t) {
|
||
if (!t.length)
|
||
return 0;
|
||
var {
|
||
parent: r
|
||
} = this, i = r.getStyle("font-family").getDefinition();
|
||
if (i) {
|
||
for (var n = this.getFontSize(), o = i.isRTL ? t.split("").reverse().join("") : t, s = ie(r.getAttribute("dx").getString()), u = o.length, l = 0, h = 0; h < u; h++) {
|
||
var f = this.getGlyph(i, o, h);
|
||
l += (f.horizAdvX || i.horizAdvX) * n / i.fontFace.unitsPerEm, typeof s[h] < "u" && !isNaN(s[h]) && (l += s[h]);
|
||
}
|
||
return l;
|
||
}
|
||
if (!e.measureText)
|
||
return t.length * 10;
|
||
e.save(), this.setContext(e, !0);
|
||
var {
|
||
width: c
|
||
} = e.measureText(t);
|
||
return this.clearContext(e), e.restore(), c;
|
||
}
|
||
/**
|
||
* Inherits positional attributes from {@link TextElement} parent(s). Attributes
|
||
* are only inherited from a parent to its first child.
|
||
* @param name - The attribute name.
|
||
* @returns The attribute value or null.
|
||
*/
|
||
getInheritedAttribute(e) {
|
||
for (var t = this; t instanceof Ce && t.isFirstChild(); ) {
|
||
var r = t.parent.getAttribute(e);
|
||
if (r.hasValue(!0))
|
||
return r.getValue("0");
|
||
t = t.parent;
|
||
}
|
||
return null;
|
||
}
|
||
}
|
||
class Br extends Ce {
|
||
constructor(e, t, r) {
|
||
super(e, t, new.target === Br ? !0 : r), this.type = "tspan", this.text = this.children.length > 0 ? "" : this.getTextFromNode();
|
||
}
|
||
getText() {
|
||
return this.text;
|
||
}
|
||
}
|
||
class N1 extends Br {
|
||
constructor() {
|
||
super(...arguments), this.type = "textNode";
|
||
}
|
||
}
|
||
class _t extends He {
|
||
constructor() {
|
||
super(...arguments), this.type = "svg", this.root = !1;
|
||
}
|
||
setContext(e) {
|
||
var t, {
|
||
document: r
|
||
} = this, {
|
||
screen: i,
|
||
window: n
|
||
} = r, o = e.canvas;
|
||
if (i.setDefaults(e), o.style && typeof e.font < "u" && n && typeof n.getComputedStyle < "u") {
|
||
e.font = n.getComputedStyle(o).getPropertyValue("font");
|
||
var s = new O(r, "fontSize", J.parse(e.font).fontSize);
|
||
s.hasValue() && (r.rootEmSize = s.getPixels("y"), r.emSize = r.rootEmSize);
|
||
}
|
||
this.getAttribute("x").hasValue() || this.getAttribute("x", !0).setValue(0), this.getAttribute("y").hasValue() || this.getAttribute("y", !0).setValue(0);
|
||
var {
|
||
width: u,
|
||
height: l
|
||
} = i.viewPort;
|
||
this.getStyle("width").hasValue() || this.getStyle("width", !0).setValue("100%"), this.getStyle("height").hasValue() || this.getStyle("height", !0).setValue("100%"), this.getStyle("color").hasValue() || this.getStyle("color", !0).setValue("black");
|
||
var h = this.getAttribute("refX"), f = this.getAttribute("refY"), c = this.getAttribute("viewBox"), v = c.hasValue() ? ie(c.getString()) : null, d = !this.root && this.getStyle("overflow").getValue("hidden") !== "visible", g = 0, p = 0, y = 0, x = 0;
|
||
v && (g = v[0], p = v[1]), this.root || (u = this.getStyle("width").getPixels("x"), l = this.getStyle("height").getPixels("y"), this.type === "marker" && (y = g, x = p, g = 0, p = 0)), i.viewPort.setCurrent(u, l), this.node && (!this.parent || ((t = this.node.parentNode) === null || t === void 0 ? void 0 : t.nodeName) === "foreignObject") && this.getStyle("transform", !1, !0).hasValue() && !this.getStyle("transform-origin", !1, !0).hasValue() && this.getStyle("transform-origin", !0, !0).setValue("50% 50%"), super.setContext(e), e.translate(this.getAttribute("x").getPixels("x"), this.getAttribute("y").getPixels("y")), v && (u = v[2], l = v[3]), r.setViewBox({
|
||
ctx: e,
|
||
aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
|
||
width: i.viewPort.width,
|
||
desiredWidth: u,
|
||
height: i.viewPort.height,
|
||
desiredHeight: l,
|
||
minX: g,
|
||
minY: p,
|
||
refX: h.getValue(),
|
||
refY: f.getValue(),
|
||
clip: d,
|
||
clipX: y,
|
||
clipY: x
|
||
}), v && (i.viewPort.removeCurrent(), i.viewPort.setCurrent(u, l));
|
||
}
|
||
clearContext(e) {
|
||
super.clearContext(e), this.document.screen.viewPort.removeCurrent();
|
||
}
|
||
/**
|
||
* Resize SVG to fit in given size.
|
||
* @param width
|
||
* @param height
|
||
* @param preserveAspectRatio
|
||
*/
|
||
resize(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, i = this.getAttribute("width", !0), n = this.getAttribute("height", !0), o = this.getAttribute("viewBox"), s = this.getAttribute("style"), u = i.getNumber(0), l = n.getNumber(0);
|
||
if (r)
|
||
if (typeof r == "string")
|
||
this.getAttribute("preserveAspectRatio", !0).setValue(r);
|
||
else {
|
||
var h = this.getAttribute("preserveAspectRatio");
|
||
h.hasValue() && h.setValue(h.getString().replace(/^\s*(\S.*\S)\s*$/, "$1"));
|
||
}
|
||
if (i.setValue(e), n.setValue(t), o.hasValue() || o.setValue("0 0 ".concat(u || e, " ").concat(l || t)), s.hasValue()) {
|
||
var f = this.getStyle("width"), c = this.getStyle("height");
|
||
f.hasValue() && f.setValue("".concat(e, "px")), c.hasValue() && c.setValue("".concat(t, "px"));
|
||
}
|
||
}
|
||
}
|
||
class El extends A {
|
||
constructor() {
|
||
super(...arguments), this.type = "rect";
|
||
}
|
||
path(e) {
|
||
var t = this.getAttribute("x").getPixels("x"), r = this.getAttribute("y").getPixels("y"), i = this.getStyle("width", !1, !0).getPixels("x"), n = this.getStyle("height", !1, !0).getPixels("y"), o = this.getAttribute("rx"), s = this.getAttribute("ry"), u = o.getPixels("x"), l = s.getPixels("y");
|
||
if (o.hasValue() && !s.hasValue() && (l = u), s.hasValue() && !o.hasValue() && (u = l), u = Math.min(u, i / 2), l = Math.min(l, n / 2), e) {
|
||
var h = 4 * ((Math.sqrt(2) - 1) / 3);
|
||
e.beginPath(), n > 0 && i > 0 && (e.moveTo(t + u, r), e.lineTo(t + i - u, r), e.bezierCurveTo(t + i - u + h * u, r, t + i, r + l - h * l, t + i, r + l), e.lineTo(t + i, r + n - l), e.bezierCurveTo(t + i, r + n - l + h * l, t + i - u + h * u, r + n, t + i - u, r + n), e.lineTo(t + u, r + n), e.bezierCurveTo(t + u - h * u, r + n, t, r + n - l + h * l, t, r + n - l), e.lineTo(t, r + l), e.bezierCurveTo(t, r + l - h * l, t + u - h * u, r, t + u, r), e.closePath());
|
||
}
|
||
return new he(t, r, t + i, r + n);
|
||
}
|
||
getMarkers() {
|
||
return null;
|
||
}
|
||
}
|
||
class M1 extends A {
|
||
constructor() {
|
||
super(...arguments), this.type = "circle";
|
||
}
|
||
path(e) {
|
||
var t = this.getAttribute("cx").getPixels("x"), r = this.getAttribute("cy").getPixels("y"), i = this.getAttribute("r").getPixels();
|
||
return e && i > 0 && (e.beginPath(), e.arc(t, r, i, 0, Math.PI * 2, !1), e.closePath()), new he(t - i, r - i, t + i, r + i);
|
||
}
|
||
getMarkers() {
|
||
return null;
|
||
}
|
||
}
|
||
class _1 extends A {
|
||
constructor() {
|
||
super(...arguments), this.type = "ellipse";
|
||
}
|
||
path(e) {
|
||
var t = 4 * ((Math.sqrt(2) - 1) / 3), r = this.getAttribute("rx").getPixels("x"), i = this.getAttribute("ry").getPixels("y"), n = this.getAttribute("cx").getPixels("x"), o = this.getAttribute("cy").getPixels("y");
|
||
return e && r > 0 && i > 0 && (e.beginPath(), e.moveTo(n + r, o), e.bezierCurveTo(n + r, o + t * i, n + t * r, o + i, n, o + i), e.bezierCurveTo(n - t * r, o + i, n - r, o + t * i, n - r, o), e.bezierCurveTo(n - r, o - t * i, n - t * r, o - i, n, o - i), e.bezierCurveTo(n + t * r, o - i, n + r, o - t * i, n + r, o), e.closePath()), new he(n - r, o - i, n + r, o + i);
|
||
}
|
||
getMarkers() {
|
||
return null;
|
||
}
|
||
}
|
||
class D1 extends A {
|
||
constructor() {
|
||
super(...arguments), this.type = "line";
|
||
}
|
||
getPoints() {
|
||
return [new V(this.getAttribute("x1").getPixels("x"), this.getAttribute("y1").getPixels("y")), new V(this.getAttribute("x2").getPixels("x"), this.getAttribute("y2").getPixels("y"))];
|
||
}
|
||
path(e) {
|
||
var [{
|
||
x: t,
|
||
y: r
|
||
}, {
|
||
x: i,
|
||
y: n
|
||
}] = this.getPoints();
|
||
return e && (e.beginPath(), e.moveTo(t, r), e.lineTo(i, n)), new he(t, r, i, n);
|
||
}
|
||
getMarkers() {
|
||
var [e, t] = this.getPoints(), r = e.angleTo(t);
|
||
return [[e, r], [t, r]];
|
||
}
|
||
}
|
||
class $l extends A {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "polyline", this.points = [], this.points = V.parsePath(this.getAttribute("points").getString());
|
||
}
|
||
path(e) {
|
||
var {
|
||
points: t
|
||
} = this, [{
|
||
x: r,
|
||
y: i
|
||
}] = t, n = new he(r, i);
|
||
return e && (e.beginPath(), e.moveTo(r, i)), t.forEach((o) => {
|
||
var {
|
||
x: s,
|
||
y: u
|
||
} = o;
|
||
n.addPoint(s, u), e && e.lineTo(s, u);
|
||
}), n;
|
||
}
|
||
getMarkers() {
|
||
var {
|
||
points: e
|
||
} = this, t = e.length - 1, r = [];
|
||
return e.forEach((i, n) => {
|
||
n !== t && r.push([i, i.angleTo(e[n + 1])]);
|
||
}), r.length > 0 && r.push([e[e.length - 1], r[r.length - 1][1]]), r;
|
||
}
|
||
}
|
||
class V1 extends $l {
|
||
constructor() {
|
||
super(...arguments), this.type = "polygon";
|
||
}
|
||
path(e) {
|
||
var t = super.path(e), [{
|
||
x: r,
|
||
y: i
|
||
}] = this.points;
|
||
return e && (e.lineTo(r, i), e.closePath()), t;
|
||
}
|
||
}
|
||
class L1 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "pattern";
|
||
}
|
||
createPattern(e, t, r) {
|
||
var i = this.getStyle("width").getPixels("x", !0), n = this.getStyle("height").getPixels("y", !0), o = new _t(this.document, null);
|
||
o.attributes.viewBox = new O(this.document, "viewBox", this.getAttribute("viewBox").getValue()), o.attributes.width = new O(this.document, "width", "".concat(i, "px")), o.attributes.height = new O(this.document, "height", "".concat(n, "px")), o.attributes.transform = new O(this.document, "transform", this.getAttribute("patternTransform").getValue()), o.children = this.children;
|
||
var s = this.document.createCanvas(i, n), u = s.getContext("2d"), l = this.getAttribute("x"), h = this.getAttribute("y");
|
||
l.hasValue() && h.hasValue() && u.translate(l.getPixels("x", !0), h.getPixels("y", !0)), r.hasValue() ? this.styles["fill-opacity"] = r : Reflect.deleteProperty(this.styles, "fill-opacity");
|
||
for (var f = -1; f <= 1; f++)
|
||
for (var c = -1; c <= 1; c++)
|
||
u.save(), o.attributes.x = new O(this.document, "x", f * s.width), o.attributes.y = new O(this.document, "y", c * s.height), o.render(u), u.restore();
|
||
var v = e.createPattern(s, "repeat");
|
||
return v;
|
||
}
|
||
}
|
||
class k1 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "marker";
|
||
}
|
||
render(e, t, r) {
|
||
if (t) {
|
||
var {
|
||
x: i,
|
||
y: n
|
||
} = t, o = this.getAttribute("orient").getString("auto"), s = this.getAttribute("markerUnits").getString("strokeWidth");
|
||
e.translate(i, n), o === "auto" && e.rotate(r), s === "strokeWidth" && e.scale(e.lineWidth, e.lineWidth), e.save();
|
||
var u = new _t(this.document, null);
|
||
u.type = this.type, u.attributes.viewBox = new O(this.document, "viewBox", this.getAttribute("viewBox").getValue()), u.attributes.refX = new O(this.document, "refX", this.getAttribute("refX").getValue()), u.attributes.refY = new O(this.document, "refY", this.getAttribute("refY").getValue()), u.attributes.width = new O(this.document, "width", this.getAttribute("markerWidth").getValue()), u.attributes.height = new O(this.document, "height", this.getAttribute("markerHeight").getValue()), u.attributes.overflow = new O(this.document, "overflow", this.getAttribute("overflow").getValue()), u.attributes.fill = new O(this.document, "fill", this.getAttribute("fill").getColor("black")), u.attributes.stroke = new O(this.document, "stroke", this.getAttribute("stroke").getValue("none")), u.children = this.children, u.render(e), e.restore(), s === "strokeWidth" && e.scale(1 / e.lineWidth, 1 / e.lineWidth), o === "auto" && e.rotate(-r), e.translate(-i, -n);
|
||
}
|
||
}
|
||
}
|
||
class B1 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "defs";
|
||
}
|
||
render() {
|
||
}
|
||
}
|
||
class un extends He {
|
||
constructor() {
|
||
super(...arguments), this.type = "g";
|
||
}
|
||
getBoundingBox(e) {
|
||
var t = new he();
|
||
return this.children.forEach((r) => {
|
||
t.addBoundingBox(r.getBoundingBox(e));
|
||
}), t;
|
||
}
|
||
}
|
||
class wl extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.attributesToInherit = ["gradientUnits"], this.stops = [];
|
||
var {
|
||
stops: i,
|
||
children: n
|
||
} = this;
|
||
n.forEach((o) => {
|
||
o.type === "stop" && i.push(o);
|
||
});
|
||
}
|
||
getGradientUnits() {
|
||
return this.getAttribute("gradientUnits").getString("objectBoundingBox");
|
||
}
|
||
createGradient(e, t, r) {
|
||
var i = this;
|
||
this.getHrefAttribute().hasValue() && (i = this.getHrefAttribute().getDefinition(), this.inheritStopContainer(i));
|
||
var {
|
||
stops: n
|
||
} = i, o = this.getGradient(e, t);
|
||
if (!o)
|
||
return this.addParentOpacity(r, n[n.length - 1].color);
|
||
if (n.forEach((p) => {
|
||
o.addColorStop(p.offset, this.addParentOpacity(r, p.color));
|
||
}), this.getAttribute("gradientTransform").hasValue()) {
|
||
var {
|
||
document: s
|
||
} = this, {
|
||
MAX_VIRTUAL_PIXELS: u,
|
||
viewPort: l
|
||
} = s.screen, [h] = l.viewPorts, f = new El(s, null);
|
||
f.attributes.x = new O(s, "x", -u / 3), f.attributes.y = new O(s, "y", -u / 3), f.attributes.width = new O(s, "width", u), f.attributes.height = new O(s, "height", u);
|
||
var c = new un(s, null);
|
||
c.attributes.transform = new O(s, "transform", this.getAttribute("gradientTransform").getValue()), c.children = [f];
|
||
var v = new _t(s, null);
|
||
v.attributes.x = new O(s, "x", 0), v.attributes.y = new O(s, "y", 0), v.attributes.width = new O(s, "width", h.width), v.attributes.height = new O(s, "height", h.height), v.children = [c];
|
||
var d = s.createCanvas(h.width, h.height), g = d.getContext("2d");
|
||
return g.fillStyle = o, v.render(g), g.createPattern(d, "no-repeat");
|
||
}
|
||
return o;
|
||
}
|
||
inheritStopContainer(e) {
|
||
this.attributesToInherit.forEach((t) => {
|
||
!this.getAttribute(t).hasValue() && e.getAttribute(t).hasValue() && this.getAttribute(t, !0).setValue(e.getAttribute(t).getValue());
|
||
});
|
||
}
|
||
addParentOpacity(e, t) {
|
||
if (e.hasValue()) {
|
||
var r = new O(this.document, "color", t);
|
||
return r.addOpacity(e).getColor();
|
||
}
|
||
return t;
|
||
}
|
||
}
|
||
class F1 extends wl {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "linearGradient", this.attributesToInherit.push("x1", "y1", "x2", "y2");
|
||
}
|
||
getGradient(e, t) {
|
||
var r = this.getGradientUnits() === "objectBoundingBox", i = r ? t.getBoundingBox(e) : null;
|
||
if (r && !i)
|
||
return null;
|
||
!this.getAttribute("x1").hasValue() && !this.getAttribute("y1").hasValue() && !this.getAttribute("x2").hasValue() && !this.getAttribute("y2").hasValue() && (this.getAttribute("x1", !0).setValue(0), this.getAttribute("y1", !0).setValue(0), this.getAttribute("x2", !0).setValue(1), this.getAttribute("y2", !0).setValue(0));
|
||
var n = r ? i.x + i.width * this.getAttribute("x1").getNumber() : this.getAttribute("x1").getPixels("x"), o = r ? i.y + i.height * this.getAttribute("y1").getNumber() : this.getAttribute("y1").getPixels("y"), s = r ? i.x + i.width * this.getAttribute("x2").getNumber() : this.getAttribute("x2").getPixels("x"), u = r ? i.y + i.height * this.getAttribute("y2").getNumber() : this.getAttribute("y2").getPixels("y");
|
||
return n === s && o === u ? null : e.createLinearGradient(n, o, s, u);
|
||
}
|
||
}
|
||
class j1 extends wl {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "radialGradient", this.attributesToInherit.push("cx", "cy", "r", "fx", "fy", "fr");
|
||
}
|
||
getGradient(e, t) {
|
||
var r = this.getGradientUnits() === "objectBoundingBox", i = t.getBoundingBox(e);
|
||
if (r && !i)
|
||
return null;
|
||
this.getAttribute("cx").hasValue() || this.getAttribute("cx", !0).setValue("50%"), this.getAttribute("cy").hasValue() || this.getAttribute("cy", !0).setValue("50%"), this.getAttribute("r").hasValue() || this.getAttribute("r", !0).setValue("50%");
|
||
var n = r ? i.x + i.width * this.getAttribute("cx").getNumber() : this.getAttribute("cx").getPixels("x"), o = r ? i.y + i.height * this.getAttribute("cy").getNumber() : this.getAttribute("cy").getPixels("y"), s = n, u = o;
|
||
this.getAttribute("fx").hasValue() && (s = r ? i.x + i.width * this.getAttribute("fx").getNumber() : this.getAttribute("fx").getPixels("x")), this.getAttribute("fy").hasValue() && (u = r ? i.y + i.height * this.getAttribute("fy").getNumber() : this.getAttribute("fy").getPixels("y"));
|
||
var l = r ? (i.width + i.height) / 2 * this.getAttribute("r").getNumber() : this.getAttribute("r").getPixels(), h = this.getAttribute("fr").getPixels();
|
||
return e.createRadialGradient(s, u, h, n, o, l);
|
||
}
|
||
}
|
||
class U1 extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "stop";
|
||
var i = Math.max(0, Math.min(1, this.getAttribute("offset").getNumber())), n = this.getStyle("stop-opacity"), o = this.getStyle("stop-color", !0);
|
||
o.getString() === "" && o.setValue("#000"), n.hasValue() && (o = o.addOpacity(n)), this.offset = i, this.color = o.getColor();
|
||
}
|
||
}
|
||
class ln extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "animate", this.duration = 0, this.initialValue = null, this.initialUnits = "", this.removed = !1, this.frozen = !1, e.screen.animations.push(this), this.begin = this.getAttribute("begin").getMilliseconds(), this.maxDuration = this.begin + this.getAttribute("dur").getMilliseconds(), this.from = this.getAttribute("from"), this.to = this.getAttribute("to"), this.values = new O(e, "values", null);
|
||
var i = this.getAttribute("values");
|
||
i.hasValue() && this.values.setValue(i.getString().split(";"));
|
||
}
|
||
getProperty() {
|
||
var e = this.getAttribute("attributeType").getString(), t = this.getAttribute("attributeName").getString();
|
||
return e === "CSS" ? this.parent.getStyle(t, !0) : this.parent.getAttribute(t, !0);
|
||
}
|
||
calcValue() {
|
||
var {
|
||
initialUnits: e
|
||
} = this, {
|
||
progress: t,
|
||
from: r,
|
||
to: i
|
||
} = this.getProgress(), n = r.getNumber() + (i.getNumber() - r.getNumber()) * t;
|
||
return e === "%" && (n *= 100), "".concat(n).concat(e);
|
||
}
|
||
update(e) {
|
||
var {
|
||
parent: t
|
||
} = this, r = this.getProperty();
|
||
if (this.initialValue || (this.initialValue = r.getString(), this.initialUnits = r.getUnits()), this.duration > this.maxDuration) {
|
||
var i = this.getAttribute("fill").getString("remove");
|
||
if (this.getAttribute("repeatCount").getString() === "indefinite" || this.getAttribute("repeatDur").getString() === "indefinite")
|
||
this.duration = 0;
|
||
else if (i === "freeze" && !this.frozen)
|
||
this.frozen = !0, t.animationFrozen = !0, t.animationFrozenValue = r.getString();
|
||
else if (i === "remove" && !this.removed)
|
||
return this.removed = !0, r.setValue(t.animationFrozen ? t.animationFrozenValue : this.initialValue), !0;
|
||
return !1;
|
||
}
|
||
this.duration += e;
|
||
var n = !1;
|
||
if (this.begin < this.duration) {
|
||
var o = this.calcValue(), s = this.getAttribute("type");
|
||
if (s.hasValue()) {
|
||
var u = s.getString();
|
||
o = "".concat(u, "(").concat(o, ")");
|
||
}
|
||
r.setValue(o), n = !0;
|
||
}
|
||
return n;
|
||
}
|
||
getProgress() {
|
||
var {
|
||
document: e,
|
||
values: t
|
||
} = this, r = {
|
||
progress: (this.duration - this.begin) / (this.maxDuration - this.begin)
|
||
};
|
||
if (t.hasValue()) {
|
||
var i = r.progress * (t.getValue().length - 1), n = Math.floor(i), o = Math.ceil(i);
|
||
r.from = new O(e, "from", parseFloat(t.getValue()[n])), r.to = new O(e, "to", parseFloat(t.getValue()[o])), r.progress = (i - n) / (o - n);
|
||
} else
|
||
r.from = this.from, r.to = this.to;
|
||
return r;
|
||
}
|
||
}
|
||
class z1 extends ln {
|
||
constructor() {
|
||
super(...arguments), this.type = "animateColor";
|
||
}
|
||
calcValue() {
|
||
var {
|
||
progress: e,
|
||
from: t,
|
||
to: r
|
||
} = this.getProgress(), i = new xi(t.getColor()), n = new xi(r.getColor());
|
||
if (i.ok && n.ok) {
|
||
var o = i.r + (n.r - i.r) * e, s = i.g + (n.g - i.g) * e, u = i.b + (n.b - i.b) * e;
|
||
return "rgb(".concat(Math.floor(o), ", ").concat(Math.floor(s), ", ").concat(Math.floor(u), ")");
|
||
}
|
||
return this.getAttribute("from").getColor();
|
||
}
|
||
}
|
||
class G1 extends ln {
|
||
constructor() {
|
||
super(...arguments), this.type = "animateTransform";
|
||
}
|
||
calcValue() {
|
||
var {
|
||
progress: e,
|
||
from: t,
|
||
to: r
|
||
} = this.getProgress(), i = ie(t.getString()), n = ie(r.getString()), o = i.map((s, u) => {
|
||
var l = n[u];
|
||
return s + (l - s) * e;
|
||
}).join(" ");
|
||
return o;
|
||
}
|
||
}
|
||
class H1 extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "font", this.glyphs = {}, this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber();
|
||
var {
|
||
definitions: i
|
||
} = e, {
|
||
children: n
|
||
} = this;
|
||
for (var o of n)
|
||
switch (o.type) {
|
||
case "font-face": {
|
||
this.fontFace = o;
|
||
var s = o.getStyle("font-family");
|
||
s.hasValue() && (i[s.getString()] = this);
|
||
break;
|
||
}
|
||
case "missing-glyph":
|
||
this.missingGlyph = o;
|
||
break;
|
||
case "glyph": {
|
||
var u = o;
|
||
u.arabicForm ? (this.isRTL = !0, this.isArabic = !0, typeof this.glyphs[u.unicode] > "u" && (this.glyphs[u.unicode] = {}), this.glyphs[u.unicode][u.arabicForm] = u) : this.glyphs[u.unicode] = u;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
render() {
|
||
}
|
||
}
|
||
class Y1 extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "font-face", this.ascent = this.getAttribute("ascent").getNumber(), this.descent = this.getAttribute("descent").getNumber(), this.unitsPerEm = this.getAttribute("units-per-em").getNumber();
|
||
}
|
||
}
|
||
class X1 extends A {
|
||
constructor() {
|
||
super(...arguments), this.type = "missing-glyph", this.horizAdvX = 0;
|
||
}
|
||
}
|
||
class W1 extends Ce {
|
||
constructor() {
|
||
super(...arguments), this.type = "tref";
|
||
}
|
||
getText() {
|
||
var e = this.getHrefAttribute().getDefinition();
|
||
if (e) {
|
||
var t = e.children[0];
|
||
if (t)
|
||
return t.getText();
|
||
}
|
||
return "";
|
||
}
|
||
}
|
||
class q1 extends Ce {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "a";
|
||
var {
|
||
childNodes: i
|
||
} = t, n = i[0], o = i.length > 0 && Array.from(i).every((s) => s.nodeType === 3);
|
||
this.hasText = o, this.text = o ? this.getTextFromNode(n) : "";
|
||
}
|
||
getText() {
|
||
return this.text;
|
||
}
|
||
renderChildren(e) {
|
||
if (this.hasText) {
|
||
super.renderChildren(e);
|
||
var {
|
||
document: t,
|
||
x: r,
|
||
y: i
|
||
} = this, {
|
||
mouse: n
|
||
} = t.screen, o = new O(t, "fontSize", J.parse(t.ctx.font).fontSize);
|
||
n.isWorking() && n.checkBoundingBox(this, new he(r, i - o.getPixels("y"), r + this.measureText(e), i));
|
||
} else if (this.children.length > 0) {
|
||
var s = new un(this.document, null);
|
||
s.children = this.children, s.parent = this, s.render(e);
|
||
}
|
||
}
|
||
onClick() {
|
||
var {
|
||
window: e
|
||
} = this.document;
|
||
e && e.open(this.getHrefAttribute().getString());
|
||
}
|
||
onMouseMove() {
|
||
var e = this.document.ctx;
|
||
e.canvas.style.cursor = "pointer";
|
||
}
|
||
}
|
||
function Mo(a, e) {
|
||
var t = Object.keys(a);
|
||
if (Object.getOwnPropertySymbols) {
|
||
var r = Object.getOwnPropertySymbols(a);
|
||
e && (r = r.filter(function(i) {
|
||
return Object.getOwnPropertyDescriptor(a, i).enumerable;
|
||
})), t.push.apply(t, r);
|
||
}
|
||
return t;
|
||
}
|
||
function nr(a) {
|
||
for (var e = 1; e < arguments.length; e++) {
|
||
var t = arguments[e] != null ? arguments[e] : {};
|
||
e % 2 ? Mo(Object(t), !0).forEach(function(r) {
|
||
nn(a, r, t[r]);
|
||
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t)) : Mo(Object(t)).forEach(function(r) {
|
||
Object.defineProperty(a, r, Object.getOwnPropertyDescriptor(t, r));
|
||
});
|
||
}
|
||
return a;
|
||
}
|
||
class Q1 extends Ce {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "textPath", this.textWidth = 0, this.textHeight = 0, this.pathLength = -1, this.glyphInfo = null, this.letterSpacingCache = [], this.measuresCache = /* @__PURE__ */ new Map([["", 0]]);
|
||
var i = this.getHrefAttribute().getDefinition();
|
||
this.text = this.getTextFromNode(), this.dataArray = this.parsePathData(i);
|
||
}
|
||
getText() {
|
||
return this.text;
|
||
}
|
||
path(e) {
|
||
var {
|
||
dataArray: t
|
||
} = this;
|
||
e && e.beginPath(), t.forEach((r) => {
|
||
var {
|
||
type: i,
|
||
points: n
|
||
} = r;
|
||
switch (i) {
|
||
case w.LINE_TO:
|
||
e && e.lineTo(n[0], n[1]);
|
||
break;
|
||
case w.MOVE_TO:
|
||
e && e.moveTo(n[0], n[1]);
|
||
break;
|
||
case w.CURVE_TO:
|
||
e && e.bezierCurveTo(n[0], n[1], n[2], n[3], n[4], n[5]);
|
||
break;
|
||
case w.QUAD_TO:
|
||
e && e.quadraticCurveTo(n[0], n[1], n[2], n[3]);
|
||
break;
|
||
case w.ARC: {
|
||
var [o, s, u, l, h, f, c, v] = n, d = u > l ? u : l, g = u > l ? 1 : u / l, p = u > l ? l / u : 1;
|
||
e && (e.translate(o, s), e.rotate(c), e.scale(g, p), e.arc(0, 0, d, h, h + f, !!(1 - v)), e.scale(1 / g, 1 / p), e.rotate(-c), e.translate(-o, -s));
|
||
break;
|
||
}
|
||
case w.CLOSE_PATH:
|
||
e && e.closePath();
|
||
break;
|
||
}
|
||
});
|
||
}
|
||
renderChildren(e) {
|
||
this.setTextData(e), e.save();
|
||
var t = this.parent.getStyle("text-decoration").getString(), r = this.getFontSize(), {
|
||
glyphInfo: i
|
||
} = this, n = e.fillStyle;
|
||
t === "underline" && e.beginPath(), i.forEach((o, s) => {
|
||
var {
|
||
p0: u,
|
||
p1: l,
|
||
rotation: h,
|
||
text: f
|
||
} = o;
|
||
e.save(), e.translate(u.x, u.y), e.rotate(h), e.fillStyle && e.fillText(f, 0, 0), e.strokeStyle && e.strokeText(f, 0, 0), e.restore(), t === "underline" && (s === 0 && e.moveTo(u.x, u.y + r / 8), e.lineTo(l.x, l.y + r / 5));
|
||
}), t === "underline" && (e.lineWidth = r / 20, e.strokeStyle = n, e.stroke(), e.closePath()), e.restore();
|
||
}
|
||
getLetterSpacingAt() {
|
||
var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
||
return this.letterSpacingCache[e] || 0;
|
||
}
|
||
findSegmentToFitChar(e, t, r, i, n, o, s, u, l) {
|
||
var h = o, f = this.measureText(e, u);
|
||
u === " " && t === "justify" && r < i && (f += (i - r) / n), l > -1 && (h += this.getLetterSpacingAt(l));
|
||
var c = this.textHeight / 20, v = this.getEquidistantPointOnPath(h, c, 0), d = this.getEquidistantPointOnPath(h + f, c, 0), g = {
|
||
p0: v,
|
||
p1: d
|
||
}, p = v && d ? Math.atan2(d.y - v.y, d.x - v.x) : 0;
|
||
if (s) {
|
||
var y = Math.cos(Math.PI / 2 + p) * s, x = Math.cos(-p) * s;
|
||
g.p0 = nr(nr({}, v), {}, {
|
||
x: v.x + y,
|
||
y: v.y + x
|
||
}), g.p1 = nr(nr({}, d), {}, {
|
||
x: d.x + y,
|
||
y: d.y + x
|
||
});
|
||
}
|
||
return h += f, {
|
||
offset: h,
|
||
segment: g,
|
||
rotation: p
|
||
};
|
||
}
|
||
measureText(e, t) {
|
||
var {
|
||
measuresCache: r
|
||
} = this, i = t || this.getText();
|
||
if (r.has(i))
|
||
return r.get(i);
|
||
var n = this.measureTargetText(e, i);
|
||
return r.set(i, n), n;
|
||
}
|
||
// This method supposes what all custom fonts already loaded.
|
||
// If some font will be loaded after this method call, <textPath> will not be rendered correctly.
|
||
// You need to call this method manually to update glyphs cache.
|
||
setTextData(e) {
|
||
if (!this.glyphInfo) {
|
||
var t = this.getText(), r = t.split(""), i = t.split(" ").length - 1, n = this.parent.getAttribute("dx").split().map((T) => T.getPixels("x")), o = this.parent.getAttribute("dy").getPixels("y"), s = this.parent.getStyle("text-anchor").getString("start"), u = this.getStyle("letter-spacing"), l = this.parent.getStyle("letter-spacing"), h = 0;
|
||
!u.hasValue() || u.getValue() === "inherit" ? h = l.getPixels() : u.hasValue() && u.getValue() !== "initial" && u.getValue() !== "unset" && (h = u.getPixels());
|
||
var f = [], c = t.length;
|
||
this.letterSpacingCache = f;
|
||
for (var v = 0; v < c; v++)
|
||
f.push(typeof n[v] < "u" ? n[v] : h);
|
||
var d = f.reduce((T, $, E) => E === 0 ? 0 : T + $ || 0, 0), g = this.measureText(e), p = Math.max(g + d, 0);
|
||
this.textWidth = g, this.textHeight = this.getFontSize(), this.glyphInfo = [];
|
||
var y = this.getPathLength(), x = this.getStyle("startOffset").getNumber(0) * y, b = 0;
|
||
(s === "middle" || s === "center") && (b = -p / 2), (s === "end" || s === "right") && (b = -p), b += x, r.forEach((T, $) => {
|
||
var {
|
||
offset: E,
|
||
segment: S,
|
||
rotation: C
|
||
} = this.findSegmentToFitChar(e, s, p, y, i, b, o, T, $);
|
||
b = E, !(!S.p0 || !S.p1) && this.glyphInfo.push({
|
||
// transposeX: midpoint.x,
|
||
// transposeY: midpoint.y,
|
||
text: r[$],
|
||
p0: S.p0,
|
||
p1: S.p1,
|
||
rotation: C
|
||
});
|
||
});
|
||
}
|
||
}
|
||
parsePathData(e) {
|
||
if (this.pathLength = -1, !e)
|
||
return [];
|
||
var t = [], {
|
||
pathParser: r
|
||
} = e;
|
||
for (r.reset(); !r.isEnd(); ) {
|
||
var {
|
||
current: i
|
||
} = r, n = i ? i.x : 0, o = i ? i.y : 0, s = r.next(), u = s.type, l = [];
|
||
switch (s.type) {
|
||
case w.MOVE_TO:
|
||
this.pathM(r, l);
|
||
break;
|
||
case w.LINE_TO:
|
||
u = this.pathL(r, l);
|
||
break;
|
||
case w.HORIZ_LINE_TO:
|
||
u = this.pathH(r, l);
|
||
break;
|
||
case w.VERT_LINE_TO:
|
||
u = this.pathV(r, l);
|
||
break;
|
||
case w.CURVE_TO:
|
||
this.pathC(r, l);
|
||
break;
|
||
case w.SMOOTH_CURVE_TO:
|
||
u = this.pathS(r, l);
|
||
break;
|
||
case w.QUAD_TO:
|
||
this.pathQ(r, l);
|
||
break;
|
||
case w.SMOOTH_QUAD_TO:
|
||
u = this.pathT(r, l);
|
||
break;
|
||
case w.ARC:
|
||
l = this.pathA(r);
|
||
break;
|
||
case w.CLOSE_PATH:
|
||
A.pathZ(r);
|
||
break;
|
||
}
|
||
s.type !== w.CLOSE_PATH ? t.push({
|
||
type: u,
|
||
points: l,
|
||
start: {
|
||
x: n,
|
||
y: o
|
||
},
|
||
pathLength: this.calcLength(n, o, u, l)
|
||
}) : t.push({
|
||
type: w.CLOSE_PATH,
|
||
points: [],
|
||
pathLength: 0
|
||
});
|
||
}
|
||
return t;
|
||
}
|
||
pathM(e, t) {
|
||
var {
|
||
x: r,
|
||
y: i
|
||
} = A.pathM(e).point;
|
||
t.push(r, i);
|
||
}
|
||
pathL(e, t) {
|
||
var {
|
||
x: r,
|
||
y: i
|
||
} = A.pathL(e).point;
|
||
return t.push(r, i), w.LINE_TO;
|
||
}
|
||
pathH(e, t) {
|
||
var {
|
||
x: r,
|
||
y: i
|
||
} = A.pathH(e).point;
|
||
return t.push(r, i), w.LINE_TO;
|
||
}
|
||
pathV(e, t) {
|
||
var {
|
||
x: r,
|
||
y: i
|
||
} = A.pathV(e).point;
|
||
return t.push(r, i), w.LINE_TO;
|
||
}
|
||
pathC(e, t) {
|
||
var {
|
||
point: r,
|
||
controlPoint: i,
|
||
currentPoint: n
|
||
} = A.pathC(e);
|
||
t.push(r.x, r.y, i.x, i.y, n.x, n.y);
|
||
}
|
||
pathS(e, t) {
|
||
var {
|
||
point: r,
|
||
controlPoint: i,
|
||
currentPoint: n
|
||
} = A.pathS(e);
|
||
return t.push(r.x, r.y, i.x, i.y, n.x, n.y), w.CURVE_TO;
|
||
}
|
||
pathQ(e, t) {
|
||
var {
|
||
controlPoint: r,
|
||
currentPoint: i
|
||
} = A.pathQ(e);
|
||
t.push(r.x, r.y, i.x, i.y);
|
||
}
|
||
pathT(e, t) {
|
||
var {
|
||
controlPoint: r,
|
||
currentPoint: i
|
||
} = A.pathT(e);
|
||
return t.push(r.x, r.y, i.x, i.y), w.QUAD_TO;
|
||
}
|
||
pathA(e) {
|
||
var {
|
||
rX: t,
|
||
rY: r,
|
||
sweepFlag: i,
|
||
xAxisRotation: n,
|
||
centp: o,
|
||
a1: s,
|
||
ad: u
|
||
} = A.pathA(e);
|
||
return i === 0 && u > 0 && (u -= 2 * Math.PI), i === 1 && u < 0 && (u += 2 * Math.PI), [o.x, o.y, t, r, s, u, n, i];
|
||
}
|
||
calcLength(e, t, r, i) {
|
||
var n = 0, o = null, s = null, u = 0;
|
||
switch (r) {
|
||
case w.LINE_TO:
|
||
return this.getLineLength(e, t, i[0], i[1]);
|
||
case w.CURVE_TO:
|
||
for (n = 0, o = this.getPointOnCubicBezier(0, e, t, i[0], i[1], i[2], i[3], i[4], i[5]), u = 0.01; u <= 1; u += 0.01)
|
||
s = this.getPointOnCubicBezier(u, e, t, i[0], i[1], i[2], i[3], i[4], i[5]), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s;
|
||
return n;
|
||
case w.QUAD_TO:
|
||
for (n = 0, o = this.getPointOnQuadraticBezier(0, e, t, i[0], i[1], i[2], i[3]), u = 0.01; u <= 1; u += 0.01)
|
||
s = this.getPointOnQuadraticBezier(u, e, t, i[0], i[1], i[2], i[3]), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s;
|
||
return n;
|
||
case w.ARC: {
|
||
n = 0;
|
||
var l = i[4], h = i[5], f = i[4] + h, c = Math.PI / 180;
|
||
if (Math.abs(l - f) < c && (c = Math.abs(l - f)), o = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], l, 0), h < 0)
|
||
for (u = l - c; u > f; u -= c)
|
||
s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], u, 0), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s;
|
||
else
|
||
for (u = l + c; u < f; u += c)
|
||
s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], u, 0), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s;
|
||
return s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], f, 0), n += this.getLineLength(o.x, o.y, s.x, s.y), n;
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
getPointOnLine(e, t, r, i, n) {
|
||
var o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : t, s = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : r, u = (n - r) / (i - t + nt), l = Math.sqrt(e * e / (1 + u * u));
|
||
i < t && (l *= -1);
|
||
var h = u * l, f = null;
|
||
if (i === t)
|
||
f = {
|
||
x: o,
|
||
y: s + h
|
||
};
|
||
else if ((s - r) / (o - t + nt) === u)
|
||
f = {
|
||
x: o + l,
|
||
y: s + h
|
||
};
|
||
else {
|
||
var c = 0, v = 0, d = this.getLineLength(t, r, i, n);
|
||
if (d < nt)
|
||
return null;
|
||
var g = (o - t) * (i - t) + (s - r) * (n - r);
|
||
g /= d * d, c = t + g * (i - t), v = r + g * (n - r);
|
||
var p = this.getLineLength(o, s, c, v), y = Math.sqrt(e * e - p * p);
|
||
l = Math.sqrt(y * y / (1 + u * u)), i < t && (l *= -1), h = u * l, f = {
|
||
x: c + l,
|
||
y: v + h
|
||
};
|
||
}
|
||
return f;
|
||
}
|
||
getPointOnPath(e) {
|
||
var t = this.getPathLength(), r = 0, i = null;
|
||
if (e < -5e-5 || e - 5e-5 > t)
|
||
return null;
|
||
var {
|
||
dataArray: n
|
||
} = this;
|
||
for (var o of n) {
|
||
if (o && (o.pathLength < 5e-5 || r + o.pathLength + 5e-5 < e)) {
|
||
r += o.pathLength;
|
||
continue;
|
||
}
|
||
var s = e - r, u = 0;
|
||
switch (o.type) {
|
||
case w.LINE_TO:
|
||
i = this.getPointOnLine(s, o.start.x, o.start.y, o.points[0], o.points[1], o.start.x, o.start.y);
|
||
break;
|
||
case w.ARC: {
|
||
var l = o.points[4], h = o.points[5], f = o.points[4] + h;
|
||
if (u = l + s / o.pathLength * h, h < 0 && u < f || h >= 0 && u > f)
|
||
break;
|
||
i = this.getPointOnEllipticalArc(o.points[0], o.points[1], o.points[2], o.points[3], u, o.points[6]);
|
||
break;
|
||
}
|
||
case w.CURVE_TO:
|
||
u = s / o.pathLength, u > 1 && (u = 1), i = this.getPointOnCubicBezier(u, o.start.x, o.start.y, o.points[0], o.points[1], o.points[2], o.points[3], o.points[4], o.points[5]);
|
||
break;
|
||
case w.QUAD_TO:
|
||
u = s / o.pathLength, u > 1 && (u = 1), i = this.getPointOnQuadraticBezier(u, o.start.x, o.start.y, o.points[0], o.points[1], o.points[2], o.points[3]);
|
||
break;
|
||
}
|
||
if (i)
|
||
return i;
|
||
break;
|
||
}
|
||
return null;
|
||
}
|
||
getLineLength(e, t, r, i) {
|
||
return Math.sqrt((r - e) * (r - e) + (i - t) * (i - t));
|
||
}
|
||
getPathLength() {
|
||
return this.pathLength === -1 && (this.pathLength = this.dataArray.reduce((e, t) => t.pathLength > 0 ? e + t.pathLength : e, 0)), this.pathLength;
|
||
}
|
||
getPointOnCubicBezier(e, t, r, i, n, o, s, u, l) {
|
||
var h = u * wo(e) + o * Co(e) + i * Ao(e) + t * Po(e), f = l * wo(e) + s * Co(e) + n * Ao(e) + r * Po(e);
|
||
return {
|
||
x: h,
|
||
y: f
|
||
};
|
||
}
|
||
getPointOnQuadraticBezier(e, t, r, i, n, o, s) {
|
||
var u = o * Ro(e) + i * Io(e) + t * No(e), l = s * Ro(e) + n * Io(e) + r * No(e);
|
||
return {
|
||
x: u,
|
||
y: l
|
||
};
|
||
}
|
||
getPointOnEllipticalArc(e, t, r, i, n, o) {
|
||
var s = Math.cos(o), u = Math.sin(o), l = {
|
||
x: r * Math.cos(n),
|
||
y: i * Math.sin(n)
|
||
};
|
||
return {
|
||
x: e + (l.x * s - l.y * u),
|
||
y: t + (l.x * u + l.y * s)
|
||
};
|
||
}
|
||
// TODO need some optimisations. possibly build cache only for curved segments?
|
||
buildEquidistantCache(e, t) {
|
||
var r = this.getPathLength(), i = t || 0.25, n = e || r / 100;
|
||
if (!this.equidistantCache || this.equidistantCache.step !== n || this.equidistantCache.precision !== i) {
|
||
this.equidistantCache = {
|
||
step: n,
|
||
precision: i,
|
||
points: []
|
||
};
|
||
for (var o = 0, s = 0; s <= r; s += i) {
|
||
var u = this.getPointOnPath(s), l = this.getPointOnPath(s + i);
|
||
!u || !l || (o += this.getLineLength(u.x, u.y, l.x, l.y), o >= n && (this.equidistantCache.points.push({
|
||
x: u.x,
|
||
y: u.y,
|
||
distance: s
|
||
}), o -= n));
|
||
}
|
||
}
|
||
}
|
||
getEquidistantPointOnPath(e, t, r) {
|
||
if (this.buildEquidistantCache(t, r), e < 0 || e - this.getPathLength() > 5e-5)
|
||
return null;
|
||
var i = Math.round(e / this.getPathLength() * (this.equidistantCache.points.length - 1));
|
||
return this.equidistantCache.points[i] || null;
|
||
}
|
||
}
|
||
var K1 = /^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;
|
||
class Z1 extends He {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "image", this.loaded = !1;
|
||
var i = this.getHrefAttribute().getString();
|
||
if (i) {
|
||
var n = i.endsWith(".svg") || /^\s*data:image\/svg\+xml/i.test(i);
|
||
e.images.push(this), n ? this.loadSvg(i) : this.loadImage(i), this.isSvg = n;
|
||
}
|
||
}
|
||
loadImage(e) {
|
||
var t = this;
|
||
return xe(function* () {
|
||
try {
|
||
var r = yield t.document.createImage(e);
|
||
t.image = r;
|
||
} catch (i) {
|
||
console.error('Error while loading image "'.concat(e, '":'), i);
|
||
}
|
||
t.loaded = !0;
|
||
})();
|
||
}
|
||
loadSvg(e) {
|
||
var t = this;
|
||
return xe(function* () {
|
||
var r = K1.exec(e);
|
||
if (r) {
|
||
var i = r[5];
|
||
r[4] === "base64" ? t.image = atob(i) : t.image = decodeURIComponent(i);
|
||
} else
|
||
try {
|
||
var n = yield t.document.fetch(e), o = yield n.text();
|
||
t.image = o;
|
||
} catch (s) {
|
||
console.error('Error while loading image "'.concat(e, '":'), s);
|
||
}
|
||
t.loaded = !0;
|
||
})();
|
||
}
|
||
renderChildren(e) {
|
||
var {
|
||
document: t,
|
||
image: r,
|
||
loaded: i
|
||
} = this, n = this.getAttribute("x").getPixels("x"), o = this.getAttribute("y").getPixels("y"), s = this.getStyle("width").getPixels("x"), u = this.getStyle("height").getPixels("y");
|
||
if (!(!i || !r || !s || !u)) {
|
||
if (e.save(), e.translate(n, o), this.isSvg) {
|
||
var l = t.canvg.forkString(e, this.image, {
|
||
ignoreMouse: !0,
|
||
ignoreAnimation: !0,
|
||
ignoreDimensions: !0,
|
||
ignoreClear: !0,
|
||
offsetX: 0,
|
||
offsetY: 0,
|
||
scaleWidth: s,
|
||
scaleHeight: u
|
||
});
|
||
l.document.documentElement.parent = this, l.render();
|
||
} else {
|
||
var h = this.image;
|
||
t.setViewBox({
|
||
ctx: e,
|
||
aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
|
||
width: s,
|
||
desiredWidth: h.width,
|
||
height: u,
|
||
desiredHeight: h.height
|
||
}), this.loaded && (typeof h.complete > "u" || h.complete) && e.drawImage(h, 0, 0);
|
||
}
|
||
e.restore();
|
||
}
|
||
}
|
||
getBoundingBox() {
|
||
var e = this.getAttribute("x").getPixels("x"), t = this.getAttribute("y").getPixels("y"), r = this.getStyle("width").getPixels("x"), i = this.getStyle("height").getPixels("y");
|
||
return new he(e, t, e + r, t + i);
|
||
}
|
||
}
|
||
class J1 extends He {
|
||
constructor() {
|
||
super(...arguments), this.type = "symbol";
|
||
}
|
||
render(e) {
|
||
}
|
||
}
|
||
class e2 {
|
||
constructor(e) {
|
||
this.document = e, this.loaded = !1, e.fonts.push(this);
|
||
}
|
||
load(e, t) {
|
||
var r = this;
|
||
return xe(function* () {
|
||
try {
|
||
var {
|
||
document: i
|
||
} = r, n = yield i.canvg.parser.load(t), o = n.getElementsByTagName("font");
|
||
Array.from(o).forEach((s) => {
|
||
var u = i.createElement(s);
|
||
i.definitions[e] = u;
|
||
});
|
||
} catch (s) {
|
||
console.error('Error while loading font "'.concat(t, '":'), s);
|
||
}
|
||
r.loaded = !0;
|
||
})();
|
||
}
|
||
}
|
||
class Cl extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "style";
|
||
var i = ft(
|
||
Array.from(t.childNodes).map((o) => o.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, "").replace(/@import.*;/g, "")
|
||
// remove imports
|
||
), n = i.split("}");
|
||
n.forEach((o) => {
|
||
var s = o.trim();
|
||
if (s) {
|
||
var u = s.split("{"), l = u[0].split(","), h = u[1].split(";");
|
||
l.forEach((f) => {
|
||
var c = f.trim();
|
||
if (c) {
|
||
var v = e.styles[c] || {};
|
||
if (h.forEach((p) => {
|
||
var y = p.indexOf(":"), x = p.substr(0, y).trim(), b = p.substr(y + 1, p.length - y).trim();
|
||
x && b && (v[x] = new O(e, x, b));
|
||
}), e.styles[c] = v, e.stylesSpecificity[c] = d1(c), c === "@font-face") {
|
||
var d = v["font-family"].getString().replace(/"|'/g, ""), g = v.src.getString().split(",");
|
||
g.forEach((p) => {
|
||
if (p.indexOf('format("svg")') > 0) {
|
||
var y = ml(p);
|
||
y && new e2(e).load(d, y);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
}
|
||
Cl.parseExternalUrl = ml;
|
||
class t2 extends He {
|
||
constructor() {
|
||
super(...arguments), this.type = "use";
|
||
}
|
||
setContext(e) {
|
||
super.setContext(e);
|
||
var t = this.getAttribute("x"), r = this.getAttribute("y");
|
||
t.hasValue() && e.translate(t.getPixels("x"), 0), r.hasValue() && e.translate(0, r.getPixels("y"));
|
||
}
|
||
path(e) {
|
||
var {
|
||
element: t
|
||
} = this;
|
||
t && t.path(e);
|
||
}
|
||
renderChildren(e) {
|
||
var {
|
||
document: t,
|
||
element: r
|
||
} = this;
|
||
if (r) {
|
||
var i = r;
|
||
if (r.type === "symbol" && (i = new _t(t, null), i.attributes.viewBox = new O(t, "viewBox", r.getAttribute("viewBox").getString()), i.attributes.preserveAspectRatio = new O(t, "preserveAspectRatio", r.getAttribute("preserveAspectRatio").getString()), i.attributes.overflow = new O(t, "overflow", r.getAttribute("overflow").getString()), i.children = r.children, r.styles.opacity = new O(t, "opacity", this.calculateOpacity())), i.type === "svg") {
|
||
var n = this.getStyle("width", !1, !0), o = this.getStyle("height", !1, !0);
|
||
n.hasValue() && (i.attributes.width = new O(t, "width", n.getString())), o.hasValue() && (i.attributes.height = new O(t, "height", o.getString()));
|
||
}
|
||
var s = i.parent;
|
||
i.parent = this, i.render(e), i.parent = s;
|
||
}
|
||
}
|
||
getBoundingBox(e) {
|
||
var {
|
||
element: t
|
||
} = this;
|
||
return t ? t.getBoundingBox(e) : null;
|
||
}
|
||
elementTransform() {
|
||
var {
|
||
document: e,
|
||
element: t
|
||
} = this;
|
||
return Fe.fromElement(e, t);
|
||
}
|
||
get element() {
|
||
return this.cachedElement || (this.cachedElement = this.getHrefAttribute().getDefinition()), this.cachedElement;
|
||
}
|
||
}
|
||
function sr(a, e, t, r, i, n) {
|
||
return a[t * r * 4 + e * 4 + n];
|
||
}
|
||
function or(a, e, t, r, i, n, o) {
|
||
a[t * r * 4 + e * 4 + n] = o;
|
||
}
|
||
function F(a, e, t) {
|
||
var r = a[e];
|
||
return r * t;
|
||
}
|
||
function me(a, e, t, r) {
|
||
return e + Math.cos(a) * t + Math.sin(a) * r;
|
||
}
|
||
class Al extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "feColorMatrix";
|
||
var i = ie(this.getAttribute("values").getString());
|
||
switch (this.getAttribute("type").getString("matrix")) {
|
||
case "saturate": {
|
||
var n = i[0];
|
||
i = [0.213 + 0.787 * n, 0.715 - 0.715 * n, 0.072 - 0.072 * n, 0, 0, 0.213 - 0.213 * n, 0.715 + 0.285 * n, 0.072 - 0.072 * n, 0, 0, 0.213 - 0.213 * n, 0.715 - 0.715 * n, 0.072 + 0.928 * n, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
|
||
break;
|
||
}
|
||
case "hueRotate": {
|
||
var o = i[0] * Math.PI / 180;
|
||
i = [me(o, 0.213, 0.787, -0.213), me(o, 0.715, -0.715, -0.715), me(o, 0.072, -0.072, 0.928), 0, 0, me(o, 0.213, -0.213, 0.143), me(o, 0.715, 0.285, 0.14), me(o, 0.072, -0.072, -0.283), 0, 0, me(o, 0.213, -0.213, -0.787), me(o, 0.715, -0.715, 0.715), me(o, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
|
||
break;
|
||
}
|
||
case "luminanceToAlpha":
|
||
i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];
|
||
break;
|
||
}
|
||
this.matrix = i, this.includeOpacity = this.getAttribute("includeOpacity").hasValue();
|
||
}
|
||
apply(e, t, r, i, n) {
|
||
for (var {
|
||
includeOpacity: o,
|
||
matrix: s
|
||
} = this, u = e.getImageData(0, 0, i, n), l = 0; l < n; l++)
|
||
for (var h = 0; h < i; h++) {
|
||
var f = sr(u.data, h, l, i, n, 0), c = sr(u.data, h, l, i, n, 1), v = sr(u.data, h, l, i, n, 2), d = sr(u.data, h, l, i, n, 3), g = F(s, 0, f) + F(s, 1, c) + F(s, 2, v) + F(s, 3, d) + F(s, 4, 1), p = F(s, 5, f) + F(s, 6, c) + F(s, 7, v) + F(s, 8, d) + F(s, 9, 1), y = F(s, 10, f) + F(s, 11, c) + F(s, 12, v) + F(s, 13, d) + F(s, 14, 1), x = F(s, 15, f) + F(s, 16, c) + F(s, 17, v) + F(s, 18, d) + F(s, 19, 1);
|
||
o && (g = 0, p = 0, y = 0, x *= d / 255), or(u.data, h, l, i, n, 0, g), or(u.data, h, l, i, n, 1, p), or(u.data, h, l, i, n, 2, y), or(u.data, h, l, i, n, 3, x);
|
||
}
|
||
e.clearRect(0, 0, i, n), e.putImageData(u, 0, 0);
|
||
}
|
||
}
|
||
class Fr extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "mask";
|
||
}
|
||
apply(e, t) {
|
||
var {
|
||
document: r
|
||
} = this, i = this.getAttribute("x").getPixels("x"), n = this.getAttribute("y").getPixels("y"), o = this.getStyle("width").getPixels("x"), s = this.getStyle("height").getPixels("y");
|
||
if (!o && !s) {
|
||
var u = new he();
|
||
this.children.forEach((d) => {
|
||
u.addBoundingBox(d.getBoundingBox(e));
|
||
}), i = Math.floor(u.x1), n = Math.floor(u.y1), o = Math.floor(u.width), s = Math.floor(u.height);
|
||
}
|
||
var l = this.removeStyles(t, Fr.ignoreStyles), h = r.createCanvas(i + o, n + s), f = h.getContext("2d");
|
||
r.screen.setDefaults(f), this.renderChildren(f), new Al(r, {
|
||
nodeType: 1,
|
||
childNodes: [],
|
||
attributes: [{
|
||
nodeName: "type",
|
||
value: "luminanceToAlpha"
|
||
}, {
|
||
nodeName: "includeOpacity",
|
||
value: "true"
|
||
}]
|
||
}).apply(f, 0, 0, i + o, n + s);
|
||
var c = r.createCanvas(i + o, n + s), v = c.getContext("2d");
|
||
r.screen.setDefaults(v), t.render(v), v.globalCompositeOperation = "destination-in", v.fillStyle = f.createPattern(h, "no-repeat"), v.fillRect(0, 0, i + o, n + s), e.fillStyle = v.createPattern(c, "no-repeat"), e.fillRect(0, 0, i + o, n + s), this.restoreStyles(t, l);
|
||
}
|
||
render(e) {
|
||
}
|
||
}
|
||
Fr.ignoreStyles = ["mask", "transform", "clip-path"];
|
||
var _o = () => {
|
||
};
|
||
class r2 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "clipPath";
|
||
}
|
||
apply(e) {
|
||
var {
|
||
document: t
|
||
} = this, r = Reflect.getPrototypeOf(e), {
|
||
beginPath: i,
|
||
closePath: n
|
||
} = e;
|
||
r && (r.beginPath = _o, r.closePath = _o), Reflect.apply(i, e, []), this.children.forEach((o) => {
|
||
if (!(typeof o.path > "u")) {
|
||
var s = typeof o.elementTransform < "u" ? o.elementTransform() : null;
|
||
s || (s = Fe.fromElement(t, o)), s && s.apply(e), o.path(e), r && (r.closePath = n), s && s.unapply(e);
|
||
}
|
||
}), Reflect.apply(n, e, []), e.clip(), r && (r.beginPath = i, r.closePath = n);
|
||
}
|
||
render(e) {
|
||
}
|
||
}
|
||
class jr extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "filter";
|
||
}
|
||
apply(e, t) {
|
||
var {
|
||
document: r,
|
||
children: i
|
||
} = this, n = t.getBoundingBox(e);
|
||
if (n) {
|
||
var o = 0, s = 0;
|
||
i.forEach((y) => {
|
||
var x = y.extraFilterDistance || 0;
|
||
o = Math.max(o, x), s = Math.max(s, x);
|
||
});
|
||
var u = Math.floor(n.width), l = Math.floor(n.height), h = u + 2 * o, f = l + 2 * s;
|
||
if (!(h < 1 || f < 1)) {
|
||
var c = Math.floor(n.x), v = Math.floor(n.y), d = this.removeStyles(t, jr.ignoreStyles), g = r.createCanvas(h, f), p = g.getContext("2d");
|
||
r.screen.setDefaults(p), p.translate(-c + o, -v + s), t.render(p), i.forEach((y) => {
|
||
typeof y.apply == "function" && y.apply(p, 0, 0, h, f);
|
||
}), e.drawImage(g, 0, 0, h, f, c - o, v - s, h, f), this.restoreStyles(t, d);
|
||
}
|
||
}
|
||
}
|
||
render(e) {
|
||
}
|
||
}
|
||
jr.ignoreStyles = ["filter", "transform", "clip-path"];
|
||
class a2 extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "feDropShadow", this.addStylesFromStyleDefinition();
|
||
}
|
||
apply(e, t, r, i, n) {
|
||
}
|
||
}
|
||
class i2 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "feMorphology";
|
||
}
|
||
apply(e, t, r, i, n) {
|
||
}
|
||
}
|
||
class n2 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "feComposite";
|
||
}
|
||
apply(e, t, r, i, n) {
|
||
}
|
||
}
|
||
class s2 extends I {
|
||
constructor(e, t, r) {
|
||
super(e, t, r), this.type = "feGaussianBlur", this.blurRadius = Math.floor(this.getAttribute("stdDeviation").getNumber()), this.extraFilterDistance = this.blurRadius;
|
||
}
|
||
apply(e, t, r, i, n) {
|
||
var {
|
||
document: o,
|
||
blurRadius: s
|
||
} = this, u = o.window ? o.window.document.body : null, l = e.canvas;
|
||
l.id = o.getUniqueId(), u && (l.style.display = "none", u.appendChild(l)), Jb(l, t, r, i, n, s), u && u.removeChild(l);
|
||
}
|
||
}
|
||
class o2 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "title";
|
||
}
|
||
}
|
||
class u2 extends I {
|
||
constructor() {
|
||
super(...arguments), this.type = "desc";
|
||
}
|
||
}
|
||
var l2 = {
|
||
svg: _t,
|
||
rect: El,
|
||
circle: M1,
|
||
ellipse: _1,
|
||
line: D1,
|
||
polyline: $l,
|
||
polygon: V1,
|
||
path: A,
|
||
pattern: L1,
|
||
marker: k1,
|
||
defs: B1,
|
||
linearGradient: F1,
|
||
radialGradient: j1,
|
||
stop: U1,
|
||
animate: ln,
|
||
animateColor: z1,
|
||
animateTransform: G1,
|
||
font: H1,
|
||
"font-face": Y1,
|
||
"missing-glyph": X1,
|
||
glyph: Ol,
|
||
text: Ce,
|
||
tspan: Br,
|
||
tref: W1,
|
||
a: q1,
|
||
textPath: Q1,
|
||
image: Z1,
|
||
g: un,
|
||
symbol: J1,
|
||
style: Cl,
|
||
use: t2,
|
||
mask: Fr,
|
||
clipPath: r2,
|
||
filter: jr,
|
||
feDropShadow: a2,
|
||
feMorphology: i2,
|
||
feComposite: n2,
|
||
feColorMatrix: Al,
|
||
feGaussianBlur: s2,
|
||
title: o2,
|
||
desc: u2
|
||
};
|
||
function Do(a, e) {
|
||
var t = Object.keys(a);
|
||
if (Object.getOwnPropertySymbols) {
|
||
var r = Object.getOwnPropertySymbols(a);
|
||
e && (r = r.filter(function(i) {
|
||
return Object.getOwnPropertyDescriptor(a, i).enumerable;
|
||
})), t.push.apply(t, r);
|
||
}
|
||
return t;
|
||
}
|
||
function h2(a) {
|
||
for (var e = 1; e < arguments.length; e++) {
|
||
var t = arguments[e] != null ? arguments[e] : {};
|
||
e % 2 ? Do(Object(t), !0).forEach(function(r) {
|
||
nn(a, r, t[r]);
|
||
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t)) : Do(Object(t)).forEach(function(r) {
|
||
Object.defineProperty(a, r, Object.getOwnPropertyDescriptor(t, r));
|
||
});
|
||
}
|
||
return a;
|
||
}
|
||
function v2(a, e) {
|
||
var t = document.createElement("canvas");
|
||
return t.width = a, t.height = e, t;
|
||
}
|
||
function f2(a) {
|
||
return Ei.apply(this, arguments);
|
||
}
|
||
function Ei() {
|
||
return Ei = xe(function* (a) {
|
||
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, t = document.createElement("img");
|
||
return e && (t.crossOrigin = "Anonymous"), new Promise((r, i) => {
|
||
t.onload = () => {
|
||
r(t);
|
||
}, t.onerror = (n, o, s, u, l) => {
|
||
i(l);
|
||
}, t.src = a;
|
||
});
|
||
}), Ei.apply(this, arguments);
|
||
}
|
||
class $e {
|
||
constructor(e) {
|
||
var {
|
||
rootEmSize: t = 12,
|
||
emSize: r = 12,
|
||
createCanvas: i = $e.createCanvas,
|
||
createImage: n = $e.createImage,
|
||
anonymousCrossOrigin: o
|
||
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
||
this.canvg = e, this.definitions = {}, this.styles = {}, this.stylesSpecificity = {}, this.images = [], this.fonts = [], this.emSizeStack = [], this.uniqueId = 0, this.screen = e.screen, this.rootEmSize = t, this.emSize = r, this.createCanvas = i, this.createImage = this.bindCreateImage(n, o), this.screen.wait(this.isImagesLoaded.bind(this)), this.screen.wait(this.isFontsLoaded.bind(this));
|
||
}
|
||
bindCreateImage(e, t) {
|
||
return typeof t == "boolean" ? (r, i) => e(r, typeof i == "boolean" ? i : t) : e;
|
||
}
|
||
get window() {
|
||
return this.screen.window;
|
||
}
|
||
get fetch() {
|
||
return this.screen.fetch;
|
||
}
|
||
get ctx() {
|
||
return this.screen.ctx;
|
||
}
|
||
get emSize() {
|
||
var {
|
||
emSizeStack: e
|
||
} = this;
|
||
return e[e.length - 1];
|
||
}
|
||
set emSize(e) {
|
||
var {
|
||
emSizeStack: t
|
||
} = this;
|
||
t.push(e);
|
||
}
|
||
popEmSize() {
|
||
var {
|
||
emSizeStack: e
|
||
} = this;
|
||
e.pop();
|
||
}
|
||
getUniqueId() {
|
||
return "canvg".concat(++this.uniqueId);
|
||
}
|
||
isImagesLoaded() {
|
||
return this.images.every((e) => e.loaded);
|
||
}
|
||
isFontsLoaded() {
|
||
return this.fonts.every((e) => e.loaded);
|
||
}
|
||
createDocumentElement(e) {
|
||
var t = this.createElement(e.documentElement);
|
||
return t.root = !0, t.addStylesFromStyleDefinition(), this.documentElement = t, t;
|
||
}
|
||
createElement(e) {
|
||
var t = e.nodeName.replace(/^[^:]+:/, ""), r = $e.elementTypes[t];
|
||
return typeof r < "u" ? new r(this, e) : new C1(this, e);
|
||
}
|
||
createTextNode(e) {
|
||
return new N1(this, e);
|
||
}
|
||
setViewBox(e) {
|
||
this.screen.setViewBox(h2({
|
||
document: this
|
||
}, e));
|
||
}
|
||
}
|
||
$e.createCanvas = v2;
|
||
$e.createImage = f2;
|
||
$e.elementTypes = l2;
|
||
function Vo(a, e) {
|
||
var t = Object.keys(a);
|
||
if (Object.getOwnPropertySymbols) {
|
||
var r = Object.getOwnPropertySymbols(a);
|
||
e && (r = r.filter(function(i) {
|
||
return Object.getOwnPropertyDescriptor(a, i).enumerable;
|
||
})), t.push.apply(t, r);
|
||
}
|
||
return t;
|
||
}
|
||
function De(a) {
|
||
for (var e = 1; e < arguments.length; e++) {
|
||
var t = arguments[e] != null ? arguments[e] : {};
|
||
e % 2 ? Vo(Object(t), !0).forEach(function(r) {
|
||
nn(a, r, t[r]);
|
||
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t)) : Vo(Object(t)).forEach(function(r) {
|
||
Object.defineProperty(a, r, Object.getOwnPropertyDescriptor(t, r));
|
||
});
|
||
}
|
||
return a;
|
||
}
|
||
class xt {
|
||
/**
|
||
* Main constructor.
|
||
* @param ctx - Rendering context.
|
||
* @param svg - SVG Document.
|
||
* @param options - Rendering options.
|
||
*/
|
||
constructor(e, t) {
|
||
var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
||
this.parser = new Ha(r), this.screen = new kr(e, r), this.options = r;
|
||
var i = new $e(this, r), n = i.createDocumentElement(t);
|
||
this.document = i, this.documentElement = n;
|
||
}
|
||
/**
|
||
* Create Canvg instance from SVG source string or URL.
|
||
* @param ctx - Rendering context.
|
||
* @param svg - SVG source string or URL.
|
||
* @param options - Rendering options.
|
||
* @returns Canvg instance.
|
||
*/
|
||
static from(e, t) {
|
||
var r = arguments;
|
||
return xe(function* () {
|
||
var i = r.length > 2 && r[2] !== void 0 ? r[2] : {}, n = new Ha(i), o = yield n.parse(t);
|
||
return new xt(e, o, i);
|
||
})();
|
||
}
|
||
/**
|
||
* Create Canvg instance from SVG source string.
|
||
* @param ctx - Rendering context.
|
||
* @param svg - SVG source string.
|
||
* @param options - Rendering options.
|
||
* @returns Canvg instance.
|
||
*/
|
||
static fromString(e, t) {
|
||
var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, i = new Ha(r), n = i.parseFromString(t);
|
||
return new xt(e, n, r);
|
||
}
|
||
/**
|
||
* Create new Canvg instance with inherited options.
|
||
* @param ctx - Rendering context.
|
||
* @param svg - SVG source string or URL.
|
||
* @param options - Rendering options.
|
||
* @returns Canvg instance.
|
||
*/
|
||
fork(e, t) {
|
||
var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
||
return xt.from(e, t, De(De({}, this.options), r));
|
||
}
|
||
/**
|
||
* Create new Canvg instance with inherited options.
|
||
* @param ctx - Rendering context.
|
||
* @param svg - SVG source string.
|
||
* @param options - Rendering options.
|
||
* @returns Canvg instance.
|
||
*/
|
||
forkString(e, t) {
|
||
var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
||
return xt.fromString(e, t, De(De({}, this.options), r));
|
||
}
|
||
/**
|
||
* Document is ready promise.
|
||
* @returns Ready promise.
|
||
*/
|
||
ready() {
|
||
return this.screen.ready();
|
||
}
|
||
/**
|
||
* Document is ready value.
|
||
* @returns Is ready or not.
|
||
*/
|
||
isReady() {
|
||
return this.screen.isReady();
|
||
}
|
||
/**
|
||
* Render only first frame, ignoring animations and mouse.
|
||
* @param options - Rendering options.
|
||
*/
|
||
render() {
|
||
var e = arguments, t = this;
|
||
return xe(function* () {
|
||
var r = e.length > 0 && e[0] !== void 0 ? e[0] : {};
|
||
t.start(De({
|
||
enableRedraw: !0,
|
||
ignoreAnimation: !0,
|
||
ignoreMouse: !0
|
||
}, r)), yield t.ready(), t.stop();
|
||
})();
|
||
}
|
||
/**
|
||
* Start rendering.
|
||
* @param options - Render options.
|
||
*/
|
||
start() {
|
||
var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
|
||
documentElement: t,
|
||
screen: r,
|
||
options: i
|
||
} = this;
|
||
r.start(t, De(De({
|
||
enableRedraw: !0
|
||
}, i), e));
|
||
}
|
||
/**
|
||
* Stop rendering.
|
||
*/
|
||
stop() {
|
||
this.screen.stop();
|
||
}
|
||
/**
|
||
* Resize SVG to fit in given size.
|
||
* @param width
|
||
* @param height
|
||
* @param preserveAspectRatio
|
||
*/
|
||
resize(e) {
|
||
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
|
||
this.documentElement.resize(e, t, r);
|
||
}
|
||
}
|
||
export {
|
||
q1 as AElement,
|
||
z1 as AnimateColorElement,
|
||
ln as AnimateElement,
|
||
G1 as AnimateTransformElement,
|
||
he as BoundingBox,
|
||
wo as CB1,
|
||
Co as CB2,
|
||
Ao as CB3,
|
||
Po as CB4,
|
||
xt as Canvg,
|
||
M1 as CircleElement,
|
||
r2 as ClipPathElement,
|
||
B1 as DefsElement,
|
||
u2 as DescElement,
|
||
$e as Document,
|
||
I as Element,
|
||
_1 as EllipseElement,
|
||
Al as FeColorMatrixElement,
|
||
n2 as FeCompositeElement,
|
||
a2 as FeDropShadowElement,
|
||
s2 as FeGaussianBlurElement,
|
||
i2 as FeMorphologyElement,
|
||
jr as FilterElement,
|
||
J as Font,
|
||
H1 as FontElement,
|
||
Y1 as FontFaceElement,
|
||
un as GElement,
|
||
Ol as GlyphElement,
|
||
wl as GradientElement,
|
||
Z1 as ImageElement,
|
||
D1 as LineElement,
|
||
F1 as LinearGradientElement,
|
||
k1 as MarkerElement,
|
||
Fr as MaskElement,
|
||
Tl as Matrix,
|
||
X1 as MissingGlyphElement,
|
||
y1 as Mouse,
|
||
nt as PSEUDO_ZERO,
|
||
Ha as Parser,
|
||
A as PathElement,
|
||
w as PathParser,
|
||
L1 as PatternElement,
|
||
V as Point,
|
||
V1 as PolygonElement,
|
||
$l as PolylineElement,
|
||
O as Property,
|
||
Ro as QB1,
|
||
Io as QB2,
|
||
No as QB3,
|
||
j1 as RadialGradientElement,
|
||
El as RectElement,
|
||
He as RenderedElement,
|
||
T1 as Rotate,
|
||
_t as SVGElement,
|
||
e2 as SVGFontLoader,
|
||
S1 as Scale,
|
||
kr as Screen,
|
||
Sl as Skew,
|
||
O1 as SkewX,
|
||
E1 as SkewY,
|
||
U1 as StopElement,
|
||
Cl as StyleElement,
|
||
J1 as SymbolElement,
|
||
W1 as TRefElement,
|
||
Br as TSpanElement,
|
||
Ce as TextElement,
|
||
Q1 as TextPathElement,
|
||
o2 as TitleElement,
|
||
Fe as Transform,
|
||
x1 as Translate,
|
||
C1 as UnknownElement,
|
||
t2 as UseElement,
|
||
p1 as ViewPort,
|
||
ft as compressSpaces,
|
||
xt as default,
|
||
d1 as getSelectorSpecificity,
|
||
s1 as normalizeAttributeName,
|
||
o1 as normalizeColor,
|
||
ml as parseExternalUrl,
|
||
p2 as presets,
|
||
ie as toNumbers,
|
||
a1 as trimLeft,
|
||
i1 as trimRight,
|
||
Eo as vectorMagnitude,
|
||
$o as vectorsAngle,
|
||
Oi as vectorsRatio
|
||
};
|