vitessce
Version:
This package is the main `vitessce` package on NPM. It exports the `<Vitessce/>` from `@vitessce/all` for backwards compatibility.
1,242 lines (1,240 loc) • 179 kB
JavaScript
import { bM as wn, bN as Tn, bO as Fn, ae as Cn, bP as An, a9 as Dn, a8 as En, a7 as Mn, am as Rn, u as on, z as vr, a5 as Gn, v as On, C as pr, e as gr, M as Ln, V as Bt, ap as Bn, ag as Wr, a1 as Pn, l as zr, aF as mr, x as In, aa as Nn, bQ as Wn } from "./index-CiwyZ_Wn.js";
function zn() {
var c = /* @__PURE__ */ Object.create(null);
function r(t, e) {
var a = t.id, o = t.name, n = t.dependencies;
n === void 0 && (n = []);
var i = t.init;
i === void 0 && (i = function() {
});
var s = t.getTransferables;
if (s === void 0 && (s = null), !c[a])
try {
n = n.map(function(l) {
return l && l.isWorkerModule && (r(l, function(h) {
if (h instanceof Error)
throw h;
}), l = c[l.id].value), l;
}), i = u("<" + o + ">.init", i), s && (s = u("<" + o + ">.getTransferables", s));
var f = null;
typeof i == "function" ? f = i.apply(void 0, n) : console.error("worker module init function failed to rehydrate"), c[a] = {
id: a,
value: f,
getTransferables: s
}, e(f);
} catch (l) {
l && l.noLog || console.error(l), e(l);
}
}
function d(t, e) {
var a, o = t.id, n = t.args;
(!c[o] || typeof c[o].value != "function") && e(new Error("Worker module " + o + ": not found or its 'init' did not return a function"));
try {
var i = (a = c[o]).value.apply(a, n);
i && typeof i.then == "function" ? i.then(s, function(f) {
return e(f instanceof Error ? f : new Error("" + f));
}) : s(i);
} catch (f) {
e(f);
}
function s(f) {
try {
var l = c[o].getTransferables && c[o].getTransferables(f);
(!l || !Array.isArray(l) || !l.length) && (l = void 0), e(f, l);
} catch (h) {
console.error(h), e(h);
}
}
}
function u(t, e) {
var a = void 0;
self.troikaDefine = function(n) {
return a = n;
};
var o = URL.createObjectURL(
new Blob(
["/** " + t.replace(/\*/g, "") + ` **/
troikaDefine(
` + e + `
)`],
{ type: "application/javascript" }
)
);
try {
importScripts(o);
} catch (n) {
console.error(n);
}
return URL.revokeObjectURL(o), delete self.troikaDefine, a;
}
self.addEventListener("message", function(t) {
var e = t.data, a = e.messageId, o = e.action, n = e.data;
try {
o === "registerModule" && r(n, function(i) {
i instanceof Error ? postMessage({
messageId: a,
success: !1,
error: i.message
}) : postMessage({
messageId: a,
success: !0,
result: { isCallable: typeof i == "function" }
});
}), o === "callModule" && d(n, function(i, s) {
i instanceof Error ? postMessage({
messageId: a,
success: !1,
error: i.message
}) : postMessage({
messageId: a,
success: !0,
result: i
}, s || void 0);
});
} catch (i) {
postMessage({
messageId: a,
success: !1,
error: i.stack
});
}
});
}
function jn(c) {
var r = function() {
for (var d = [], u = arguments.length; u--; ) d[u] = arguments[u];
return r._getInitResult().then(function(t) {
if (typeof t == "function")
return t.apply(void 0, d);
throw new Error("Worker module function was called but `init` did not return a callable function");
});
};
return r._getInitResult = function() {
var d = c.dependencies, u = c.init;
d = Array.isArray(d) ? d.map(
function(e) {
return e && e._getInitResult ? e._getInitResult() : e;
}
) : [];
var t = Promise.all(d).then(function(e) {
return u.apply(null, e);
});
return r._getInitResult = function() {
return t;
}, t;
}, r;
}
var sn = function() {
var c = !1;
if (typeof window < "u" && typeof window.document < "u")
try {
var r = new Worker(
URL.createObjectURL(new Blob([""], { type: "application/javascript" }))
);
r.terminate(), c = !0;
} catch (d) {
console.log(
"Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: [" + d.message + "]"
);
}
return sn = function() {
return c;
}, c;
}, Vn = 0, Xn = 0, ir = !1, yt = /* @__PURE__ */ Object.create(null), bt = /* @__PURE__ */ Object.create(null), ur = /* @__PURE__ */ Object.create(null);
function it(c) {
if ((!c || typeof c.init != "function") && !ir)
throw new Error("requires `options.init` function");
var r = c.dependencies, d = c.init, u = c.getTransferables, t = c.workerId;
if (!sn())
return jn(c);
t == null && (t = "#default");
var e = "workerModule" + ++Vn, a = c.name || e, o = null;
r = r && r.map(function(i) {
return typeof i == "function" && !i.workerModuleData && (ir = !0, i = it({
workerId: t,
name: "<" + a + "> function dependency: " + i.name,
init: `function(){return (
` + Ot(i) + `
)}`
}), ir = !1), i && i.workerModuleData && (i = i.workerModuleData), i;
});
function n() {
for (var i = [], s = arguments.length; s--; ) i[s] = arguments[s];
if (!o) {
o = jr(t, "registerModule", n.workerModuleData);
var f = function() {
o = null, bt[t].delete(f);
};
(bt[t] || (bt[t] = /* @__PURE__ */ new Set())).add(f);
}
return o.then(function(l) {
var h = l.isCallable;
if (h)
return jr(t, "callModule", { id: e, args: i });
throw new Error("Worker module function was called but `init` did not return a callable function");
});
}
return n.workerModuleData = {
isWorkerModule: !0,
id: e,
name: a,
dependencies: r,
init: Ot(d),
getTransferables: u && Ot(u)
}, n;
}
function Hn(c) {
bt[c] && bt[c].forEach(function(r) {
r();
}), yt[c] && (yt[c].terminate(), delete yt[c]);
}
function Ot(c) {
var r = c.toString();
return !/^function/.test(r) && /^\w+\s*\(/.test(r) && (r = "function " + r), r;
}
function Yn(c) {
var r = yt[c];
if (!r) {
var d = Ot(zn);
r = yt[c] = new Worker(
URL.createObjectURL(
new Blob(
["/** Worker Module Bootstrap: " + c.replace(/\*/g, "") + ` **/
;(` + d + ")()"],
{ type: "application/javascript" }
)
)
), r.onmessage = function(u) {
var t = u.data, e = t.messageId, a = ur[e];
if (!a)
throw new Error("WorkerModule response with empty or unknown messageId");
delete ur[e], a(t);
};
}
return r;
}
function jr(c, r, d) {
return new Promise(function(u, t) {
var e = ++Xn;
ur[e] = function(a) {
a.success ? u(a.result) : t(new Error("Error in worker " + r + " call: " + a.error));
}, Yn(c).postMessage({
messageId: e,
action: r,
data: d
});
});
}
function fn() {
var c = function(r) {
function d(B, M, v, b, k, A, _, N) {
var E = 1 - _;
N.x = E * E * B + 2 * E * _ * v + _ * _ * k, N.y = E * E * M + 2 * E * _ * b + _ * _ * A;
}
function u(B, M, v, b, k, A, _, N, E, P) {
var H = 1 - E;
P.x = H * H * H * B + 3 * H * H * E * v + 3 * H * E * E * k + E * E * E * _, P.y = H * H * H * M + 3 * H * H * E * b + 3 * H * E * E * A + E * E * E * N;
}
function t(B, M) {
for (var v = /([MLQCZ])([^MLQCZ]*)/g, b, k, A, _, N; b = v.exec(B); ) {
var E = b[2].replace(/^\s*|\s*$/g, "").split(/[,\s]+/).map(function(P) {
return parseFloat(P);
});
switch (b[1]) {
case "M":
_ = k = E[0], N = A = E[1];
break;
case "L":
(E[0] !== _ || E[1] !== N) && M("L", _, N, _ = E[0], N = E[1]);
break;
case "Q": {
M("Q", _, N, _ = E[2], N = E[3], E[0], E[1]);
break;
}
case "C": {
M("C", _, N, _ = E[4], N = E[5], E[0], E[1], E[2], E[3]);
break;
}
case "Z":
(_ !== k || N !== A) && M("L", _, N, k, A);
break;
}
}
}
function e(B, M, v) {
v === void 0 && (v = 16);
var b = { x: 0, y: 0 };
t(B, function(k, A, _, N, E, P, H, $, V) {
switch (k) {
case "L":
M(A, _, N, E);
break;
case "Q": {
for (var W = A, pe = _, ue = 1; ue < v; ue++)
d(
A,
_,
P,
H,
N,
E,
ue / (v - 1),
b
), M(W, pe, b.x, b.y), W = b.x, pe = b.y;
break;
}
case "C": {
for (var Q = A, ee = _, se = 1; se < v; se++)
u(
A,
_,
P,
H,
$,
V,
N,
E,
se / (v - 1),
b
), M(Q, ee, b.x, b.y), Q = b.x, ee = b.y;
break;
}
}
});
}
var a = "precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}", o = "precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}", n = /* @__PURE__ */ new WeakMap(), i = {
premultipliedAlpha: !1,
preserveDrawingBuffer: !0,
antialias: !1,
depth: !1
};
function s(B, M) {
var v = B.getContext ? B.getContext("webgl", i) : B, b = n.get(v);
if (!b) {
let H = function(Q) {
var ee = A[Q];
if (!ee && (ee = A[Q] = v.getExtension(Q), !ee))
throw new Error(Q + " not supported");
return ee;
}, $ = function(Q, ee) {
var se = v.createShader(ee);
return v.shaderSource(se, Q), v.compileShader(se), se;
}, V = function(Q, ee, se, j) {
if (!_[Q]) {
var te = {}, q = {}, L = v.createProgram();
v.attachShader(L, $(ee, v.VERTEX_SHADER)), v.attachShader(L, $(se, v.FRAGMENT_SHADER)), v.linkProgram(L), _[Q] = {
program: L,
transaction: function(K) {
v.useProgram(L), K({
setUniform: function(Y, be) {
for (var ne = [], oe = arguments.length - 2; oe-- > 0; ) ne[oe] = arguments[oe + 2];
var le = q[be] || (q[be] = v.getUniformLocation(L, be));
v["uniform" + Y].apply(v, [le].concat(ne));
},
setAttribute: function(Y, be, ne, oe, le) {
var de = te[Y];
de || (de = te[Y] = {
buf: v.createBuffer(),
// TODO should we destroy our buffers?
loc: v.getAttribLocation(L, Y),
data: null
}), v.bindBuffer(v.ARRAY_BUFFER, de.buf), v.vertexAttribPointer(de.loc, be, v.FLOAT, !1, 0, 0), v.enableVertexAttribArray(de.loc), k ? v.vertexAttribDivisor(de.loc, oe) : H("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(de.loc, oe), le !== de.data && (v.bufferData(v.ARRAY_BUFFER, le, ne), de.data = le);
}
});
}
};
}
_[Q].transaction(j);
}, W = function(Q, ee) {
E++;
try {
v.activeTexture(v.TEXTURE0 + E);
var se = N[Q];
se || (se = N[Q] = v.createTexture(), v.bindTexture(v.TEXTURE_2D, se), v.texParameteri(v.TEXTURE_2D, v.TEXTURE_MIN_FILTER, v.NEAREST), v.texParameteri(v.TEXTURE_2D, v.TEXTURE_MAG_FILTER, v.NEAREST)), v.bindTexture(v.TEXTURE_2D, se), ee(se, E);
} finally {
E--;
}
}, pe = function(Q, ee, se) {
var j = v.createFramebuffer();
P.push(j), v.bindFramebuffer(v.FRAMEBUFFER, j), v.activeTexture(v.TEXTURE0 + ee), v.bindTexture(v.TEXTURE_2D, Q), v.framebufferTexture2D(v.FRAMEBUFFER, v.COLOR_ATTACHMENT0, v.TEXTURE_2D, Q, 0);
try {
se(j);
} finally {
v.deleteFramebuffer(j), v.bindFramebuffer(v.FRAMEBUFFER, P[--P.length - 1] || null);
}
}, ue = function() {
A = {}, _ = {}, N = {}, E = -1, P.length = 0;
};
var k = typeof WebGL2RenderingContext < "u" && v instanceof WebGL2RenderingContext, A = {}, _ = {}, N = {}, E = -1, P = [];
v.canvas.addEventListener("webglcontextlost", function(Q) {
ue(), Q.preventDefault();
}, !1), n.set(v, b = {
gl: v,
isWebGL2: k,
getExtension: H,
withProgram: V,
withTexture: W,
withTextureFramebuffer: pe,
handleContextLoss: ue
});
}
M(b);
}
function f(B, M, v, b, k, A, _, N) {
_ === void 0 && (_ = 15), N === void 0 && (N = null), s(B, function(E) {
var P = E.gl, H = E.withProgram, $ = E.withTexture;
$("copy", function(V, W) {
P.texImage2D(P.TEXTURE_2D, 0, P.RGBA, k, A, 0, P.RGBA, P.UNSIGNED_BYTE, M), H("copy", a, o, function(pe) {
var ue = pe.setUniform, Q = pe.setAttribute;
Q("aUV", 2, P.STATIC_DRAW, 0, new Float32Array([0, 0, 2, 0, 0, 2])), ue("1i", "image", W), P.bindFramebuffer(P.FRAMEBUFFER, N || null), P.disable(P.BLEND), P.colorMask(_ & 8, _ & 4, _ & 2, _ & 1), P.viewport(v, b, k, A), P.scissor(v, b, k, A), P.drawArrays(P.TRIANGLES, 0, 3);
});
});
});
}
function l(B, M, v) {
var b = B.width, k = B.height;
s(B, function(A) {
var _ = A.gl, N = new Uint8Array(b * k * 4);
_.readPixels(0, 0, b, k, _.RGBA, _.UNSIGNED_BYTE, N), B.width = M, B.height = v, f(_, N, 0, 0, b, k);
});
}
var h = /* @__PURE__ */ Object.freeze({
__proto__: null,
withWebGLContext: s,
renderImageData: f,
resizeWebGLCanvasWithoutClearing: l
});
function p(B, M, v, b, k, A) {
A === void 0 && (A = 1);
var _ = new Uint8Array(B * M), N = b[2] - b[0], E = b[3] - b[1], P = [];
e(v, function(Q, ee, se, j) {
P.push({
x1: Q,
y1: ee,
x2: se,
y2: j,
minX: Math.min(Q, se),
minY: Math.min(ee, j),
maxX: Math.max(Q, se),
maxY: Math.max(ee, j)
});
}), P.sort(function(Q, ee) {
return Q.maxX - ee.maxX;
});
for (var H = 0; H < B; H++)
for (var $ = 0; $ < M; $++) {
var V = pe(
b[0] + N * (H + 0.5) / B,
b[1] + E * ($ + 0.5) / M
), W = Math.pow(1 - Math.abs(V) / k, A) / 2;
V < 0 && (W = 1 - W), W = Math.max(0, Math.min(255, Math.round(W * 255))), _[$ * B + H] = W;
}
return _;
function pe(Q, ee) {
for (var se = 1 / 0, j = 1 / 0, te = P.length; te--; ) {
var q = P[te];
if (q.maxX + j <= Q)
break;
if (Q + j > q.minX && ee - j < q.maxY && ee + j > q.minY) {
var L = O(Q, ee, q.x1, q.y1, q.x2, q.y2);
L < se && (se = L, j = Math.sqrt(se));
}
}
return ue(Q, ee) && (j = -j), j;
}
function ue(Q, ee) {
for (var se = 0, j = P.length; j--; ) {
var te = P[j];
if (te.maxX <= Q)
break;
var q = te.y1 > ee != te.y2 > ee && Q < (te.x2 - te.x1) * (ee - te.y1) / (te.y2 - te.y1) + te.x1;
q && (se += te.y1 < te.y2 ? 1 : -1);
}
return se !== 0;
}
}
function g(B, M, v, b, k, A, _, N, E, P) {
A === void 0 && (A = 1), N === void 0 && (N = 0), E === void 0 && (E = 0), P === void 0 && (P = 0), y(B, M, v, b, k, A, _, null, N, E, P);
}
function y(B, M, v, b, k, A, _, N, E, P, H) {
A === void 0 && (A = 1), E === void 0 && (E = 0), P === void 0 && (P = 0), H === void 0 && (H = 0);
for (var $ = p(B, M, v, b, k, A), V = new Uint8Array($.length * 4), W = 0; W < $.length; W++)
V[W * 4 + H] = $[W];
f(_, V, E, P, B, M, 1 << 3 - H, N);
}
function O(B, M, v, b, k, A) {
var _ = k - v, N = A - b, E = _ * _ + N * N, P = E ? Math.max(0, Math.min(1, ((B - v) * _ + (M - b) * N) / E)) : 0, H = B - (v + P * _), $ = M - (b + P * N);
return H * H + $ * $;
}
var S = /* @__PURE__ */ Object.freeze({
__proto__: null,
generate: p,
generateIntoCanvas: g,
generateIntoFramebuffer: y
}), F = "precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}", U = "precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y>p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y<vLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing&&!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}", w = "precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}", G = new Float32Array([0, 0, 2, 0, 0, 2]), x = null, C = !1, I = {}, R = /* @__PURE__ */ new WeakMap();
function J(B) {
if (!C && !X(B))
throw new Error("WebGL generation not supported");
}
function m(B, M, v, b, k, A, _) {
if (A === void 0 && (A = 1), _ === void 0 && (_ = null), !_ && (_ = x, !_)) {
var N = typeof OffscreenCanvas == "function" ? new OffscreenCanvas(1, 1) : typeof document < "u" ? document.createElement("canvas") : null;
if (!N)
throw new Error("OffscreenCanvas or DOM canvas not supported");
_ = x = N.getContext("webgl", { depth: !1 });
}
J(_);
var E = new Uint8Array(B * M * 4);
s(_, function(V) {
var W = V.gl, pe = V.withTexture, ue = V.withTextureFramebuffer;
pe("readable", function(Q, ee) {
W.texImage2D(W.TEXTURE_2D, 0, W.RGBA, B, M, 0, W.RGBA, W.UNSIGNED_BYTE, null), ue(Q, ee, function(se) {
T(
B,
M,
v,
b,
k,
A,
W,
se,
0,
0,
0
// red channel
), W.readPixels(0, 0, B, M, W.RGBA, W.UNSIGNED_BYTE, E);
});
});
});
for (var P = new Uint8Array(B * M), H = 0, $ = 0; H < E.length; H += 4)
P[$++] = E[H];
return P;
}
function D(B, M, v, b, k, A, _, N, E, P) {
A === void 0 && (A = 1), N === void 0 && (N = 0), E === void 0 && (E = 0), P === void 0 && (P = 0), T(B, M, v, b, k, A, _, null, N, E, P);
}
function T(B, M, v, b, k, A, _, N, E, P, H) {
A === void 0 && (A = 1), E === void 0 && (E = 0), P === void 0 && (P = 0), H === void 0 && (H = 0), J(_);
var $ = [];
e(v, function(V, W, pe, ue) {
$.push(V, W, pe, ue);
}), $ = new Float32Array($), s(_, function(V) {
var W = V.gl, pe = V.isWebGL2, ue = V.getExtension, Q = V.withProgram, ee = V.withTexture, se = V.withTextureFramebuffer, j = V.handleContextLoss;
if (ee("rawDistances", function(te, q) {
(B !== te._lastWidth || M !== te._lastHeight) && W.texImage2D(
W.TEXTURE_2D,
0,
W.RGBA,
te._lastWidth = B,
te._lastHeight = M,
0,
W.RGBA,
W.UNSIGNED_BYTE,
null
), Q("main", F, U, function(L) {
var he = L.setAttribute, K = L.setUniform, ae = !pe && ue("ANGLE_instanced_arrays"), Y = !pe && ue("EXT_blend_minmax");
he("aUV", 2, W.STATIC_DRAW, 0, G), he("aLineSegment", 4, W.DYNAMIC_DRAW, 1, $), K.apply(void 0, ["4f", "uGlyphBounds"].concat(b)), K("1f", "uMaxDistance", k), K("1f", "uExponent", A), se(te, q, function(be) {
W.enable(W.BLEND), W.colorMask(!0, !0, !0, !0), W.viewport(0, 0, B, M), W.scissor(0, 0, B, M), W.blendFunc(W.ONE, W.ONE), W.blendEquationSeparate(W.FUNC_ADD, pe ? W.MAX : Y.MAX_EXT), W.clear(W.COLOR_BUFFER_BIT), pe ? W.drawArraysInstanced(W.TRIANGLES, 0, 3, $.length / 4) : ae.drawArraysInstancedANGLE(W.TRIANGLES, 0, 3, $.length / 4);
});
}), Q("post", a, w, function(L) {
L.setAttribute("aUV", 2, W.STATIC_DRAW, 0, G), L.setUniform("1i", "tex", q), W.bindFramebuffer(W.FRAMEBUFFER, N), W.disable(W.BLEND), W.colorMask(H === 0, H === 1, H === 2, H === 3), W.viewport(E, P, B, M), W.scissor(E, P, B, M), W.drawArrays(W.TRIANGLES, 0, 3);
});
}), W.isContextLost())
throw j(), new Error("webgl context lost");
});
}
function X(B) {
var M = !B || B === x ? I : B.canvas || B, v = R.get(M);
if (v === void 0) {
C = !0;
var b = null;
try {
var k = [
97,
106,
97,
61,
99,
137,
118,
80,
80,
118,
137,
99,
61,
97,
106,
97
], A = m(
4,
4,
"M8,8L16,8L24,24L16,24Z",
[0, 0, 32, 32],
24,
1,
B
);
v = A && k.length === A.length && A.every(function(_, N) {
return _ === k[N];
}), v || (b = "bad trial run results", console.info(k, A));
} catch (_) {
v = !1, b = _.message;
}
b && console.warn("WebGL SDF generation not supported:", b), C = !1, R.set(M, v);
}
return v;
}
var z = /* @__PURE__ */ Object.freeze({
__proto__: null,
generate: m,
generateIntoCanvas: D,
generateIntoFramebuffer: T,
isSupported: X
});
function Z(B, M, v, b, k, A) {
k === void 0 && (k = Math.max(b[2] - b[0], b[3] - b[1]) / 2), A === void 0 && (A = 1);
try {
return m.apply(z, arguments);
} catch (_) {
return console.info("WebGL SDF generation failed, falling back to JS", _), p.apply(S, arguments);
}
}
function re(B, M, v, b, k, A, _, N, E, P) {
k === void 0 && (k = Math.max(b[2] - b[0], b[3] - b[1]) / 2), A === void 0 && (A = 1), N === void 0 && (N = 0), E === void 0 && (E = 0), P === void 0 && (P = 0);
try {
return D.apply(z, arguments);
} catch (H) {
return console.info("WebGL SDF generation failed, falling back to JS", H), g.apply(S, arguments);
}
}
return r.forEachPathCommand = t, r.generate = Z, r.generateIntoCanvas = re, r.javascript = S, r.pathToLineSegments = e, r.webgl = z, r.webglUtils = h, Object.defineProperty(r, "__esModule", { value: !0 }), r;
}({});
return c;
}
function Jn() {
var c = function(r) {
var d = {
R: "13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73",
EN: "1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9",
ES: "17,2,6dp+1,f+1,av,16vr,mx+1,4o,2",
ET: "z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj",
AN: "16o+5,2j+9,2+1,35,ed,1ff2+9,87+u",
CS: "18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b",
B: "a,3,f+2,2v,690",
S: "9,2,k",
WS: "c,k,4f4,1vk+a,u,1j,335",
ON: "x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i",
BN: "0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1",
NSM: "lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n",
AL: "16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d",
LRO: "6ct",
RLO: "6cu",
LRE: "6cq",
RLE: "6cr",
PDF: "6cs",
LRI: "6ee",
RLI: "6ef",
FSI: "6eg",
PDI: "6eh"
}, u = {}, t = {};
u.L = 1, t[1] = "L", Object.keys(d).forEach(function(j, te) {
u[j] = 1 << te + 1, t[u[j]] = j;
}), Object.freeze(u);
var e = u.LRI | u.RLI | u.FSI, a = u.L | u.R | u.AL, o = u.B | u.S | u.WS | u.ON | u.FSI | u.LRI | u.RLI | u.PDI, n = u.BN | u.RLE | u.LRE | u.RLO | u.LRO | u.PDF, i = u.S | u.WS | u.B | e | u.PDI | n, s = null;
function f() {
if (!s) {
s = /* @__PURE__ */ new Map();
var j = function(q) {
if (d.hasOwnProperty(q)) {
var L = 0;
d[q].split(",").forEach(function(he) {
var K = he.split("+"), ae = K[0], Y = K[1];
ae = parseInt(ae, 36), Y = Y ? parseInt(Y, 36) : 0, s.set(L += ae, u[q]);
for (var be = 0; be < Y; be++)
s.set(++L, u[q]);
});
}
};
for (var te in d) j(te);
}
}
function l(j) {
return f(), s.get(j.codePointAt(0)) || u.L;
}
function h(j) {
return t[l(j)];
}
var p = {
pairs: "14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",
canonical: "6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"
};
function g(j, te) {
var q = 36, L = 0, he = /* @__PURE__ */ new Map(), K = te && /* @__PURE__ */ new Map(), ae;
return j.split(",").forEach(function Y(be) {
if (be.indexOf("+") !== -1)
for (var ne = +be; ne--; )
Y(ae);
else {
ae = be;
var oe = be.split(">"), le = oe[0], de = oe[1];
le = String.fromCodePoint(L += parseInt(le, q)), de = String.fromCodePoint(L += parseInt(de, q)), he.set(le, de), te && K.set(de, le);
}
}), { map: he, reverseMap: K };
}
var y, O, S;
function F() {
if (!y) {
var j = g(p.pairs, !0), te = j.map, q = j.reverseMap;
y = te, O = q, S = g(p.canonical, !1).map;
}
}
function U(j) {
return F(), y.get(j) || null;
}
function w(j) {
return F(), O.get(j) || null;
}
function G(j) {
return F(), S.get(j) || null;
}
var x = u.L, C = u.R, I = u.EN, R = u.ES, J = u.ET, m = u.AN, D = u.CS, T = u.B, X = u.S, z = u.ON, Z = u.BN, re = u.NSM, B = u.AL, M = u.LRO, v = u.RLO, b = u.LRE, k = u.RLE, A = u.PDF, _ = u.LRI, N = u.RLI, E = u.FSI, P = u.PDI;
function H(j, te) {
for (var q = 125, L = new Uint32Array(j.length), he = 0; he < j.length; he++)
L[he] = l(j[he]);
var K = /* @__PURE__ */ new Map();
function ae(Le, We) {
var Be = L[Le];
L[Le] = We, K.set(Be, K.get(Be) - 1), Be & o && K.set(o, K.get(o) - 1), K.set(We, (K.get(We) || 0) + 1), We & o && K.set(o, (K.get(o) || 0) + 1);
}
for (var Y = new Uint8Array(j.length), be = /* @__PURE__ */ new Map(), ne = [], oe = null, le = 0; le < j.length; le++)
oe || ne.push(oe = {
start: le,
end: j.length - 1,
// 3.3.1 P2-P3: Determine the paragraph level
level: te === "rtl" ? 1 : te === "ltr" ? 0 : Ir(le, !1)
}), L[le] & T && (oe.end = le, oe = null);
for (var de = k | b | v | M | e | P | A | T, xe = function(Le) {
return Le + (Le & 1 ? 1 : 2);
}, Fe = function(Le) {
return Le + (Le & 1 ? 2 : 1);
}, ge = 0; ge < ne.length; ge++) {
oe = ne[ge];
var me = [{
_level: oe.level,
_override: 0,
//0=neutral, 1=L, 2=R
_isolate: 0
//bool
}], fe = void 0, Ce = 0, ke = 0, Oe = 0;
K.clear();
for (var Se = oe.start; Se <= oe.end; Se++) {
var ce = L[Se];
if (fe = me[me.length - 1], K.set(ce, (K.get(ce) || 0) + 1), ce & o && K.set(o, (K.get(o) || 0) + 1), ce & de)
if (ce & (k | b)) {
Y[Se] = fe._level;
var Ue = (ce === k ? Fe : xe)(fe._level);
Ue <= q && !Ce && !ke ? me.push({
_level: Ue,
_override: 0,
_isolate: 0
}) : Ce || ke++;
} else if (ce & (v | M)) {
Y[Se] = fe._level;
var Xe = (ce === v ? Fe : xe)(fe._level);
Xe <= q && !Ce && !ke ? me.push({
_level: Xe,
_override: ce & v ? C : x,
_isolate: 0
}) : Ce || ke++;
} else if (ce & e) {
ce & E && (ce = Ir(Se + 1, !0) === 1 ? N : _), Y[Se] = fe._level, fe._override && ae(Se, fe._override);
var _e = (ce === N ? Fe : xe)(fe._level);
_e <= q && Ce === 0 && ke === 0 ? (Oe++, me.push({
_level: _e,
_override: 0,
_isolate: 1,
_isolInitIndex: Se
})) : Ce++;
} else if (ce & P) {
if (Ce > 0)
Ce--;
else if (Oe > 0) {
for (ke = 0; !me[me.length - 1]._isolate; )
me.pop();
var ye = me[me.length - 1]._isolInitIndex;
ye != null && (be.set(ye, Se), be.set(Se, ye)), me.pop(), Oe--;
}
fe = me[me.length - 1], Y[Se] = fe._level, fe._override && ae(Se, fe._override);
} else ce & A ? (Ce === 0 && (ke > 0 ? ke-- : !fe._isolate && me.length > 1 && (me.pop(), fe = me[me.length - 1])), Y[Se] = fe._level) : ce & T && (Y[Se] = oe.level);
else
Y[Se] = fe._level, fe._override && ce !== Z && ae(Se, fe._override);
}
for (var Ae = [], we = null, ve = oe.start; ve <= oe.end; ve++) {
var Te = L[ve];
if (!(Te & n)) {
var Re = Y[ve], Me = Te & e, De = Te === P;
we && Re === we._level ? (we._end = ve, we._endsWithIsolInit = Me) : Ae.push(we = {
_start: ve,
_end: ve,
_level: Re,
_startsWithPDI: De,
_endsWithIsolInit: Me
});
}
}
for (var Ie = [], He = 0; He < Ae.length; He++) {
var je = Ae[He];
if (!je._startsWithPDI || je._startsWithPDI && !be.has(je._start)) {
for (var Ye = [we = je], Qe = void 0; we && we._endsWithIsolInit && (Qe = be.get(we._end)) != null; )
for (var Ve = He + 1; Ve < Ae.length; Ve++)
if (Ae[Ve]._start === Qe) {
Ye.push(we = Ae[Ve]);
break;
}
for (var Ge = [], Ze = 0; Ze < Ye.length; Ze++)
for (var br = Ye[Ze], Nt = br._start; Nt <= br._end; Nt++)
Ge.push(Nt);
for (var bn = Y[Ge[0]], Ur = oe.level, Ut = Ge[0] - 1; Ut >= 0; Ut--)
if (!(L[Ut] & n)) {
Ur = Y[Ut];
break;
}
var Wt = Ge[Ge.length - 1], Un = Y[Wt], _r = oe.level;
if (!(L[Wt] & e)) {
for (var _t = Wt + 1; _t <= oe.end; _t++)
if (!(L[_t] & n)) {
_r = Y[_t];
break;
}
}
Ie.push({
_seqIndices: Ge,
_sosType: Math.max(Ur, bn) % 2 ? C : x,
_eosType: Math.max(_r, Un) % 2 ? C : x
});
}
}
for (var zt = 0; zt < Ie.length; zt++) {
var jt = Ie[zt], ie = jt._seqIndices, st = jt._sosType, _n = jt._eosType, tt = Y[ie[0]] & 1 ? C : x;
if (K.get(re))
for (var xt = 0; xt < ie.length; xt++) {
var xr = ie[xt];
if (L[xr] & re) {
for (var Vt = st, St = xt - 1; St >= 0; St--)
if (!(L[ie[St]] & n)) {
Vt = L[ie[St]];
break;
}
ae(xr, Vt & (e | P) ? z : Vt);
}
}
if (K.get(I))
for (var kt = 0; kt < ie.length; kt++) {
var Sr = ie[kt];
if (L[Sr] & I)
for (var wt = kt - 1; wt >= -1; wt--) {
var kr = wt === -1 ? st : L[ie[wt]];
if (kr & a) {
kr === B && ae(Sr, m);
break;
}
}
}
if (K.get(B))
for (var Xt = 0; Xt < ie.length; Xt++) {
var wr = ie[Xt];
L[wr] & B && ae(wr, C);
}
if (K.get(R) || K.get(D))
for (var ft = 1; ft < ie.length - 1; ft++) {
var Ht = ie[ft];
if (L[Ht] & (R | D)) {
for (var rt = 0, Yt = 0, Jt = ft - 1; Jt >= 0 && (rt = L[ie[Jt]], !!(rt & n)); Jt--)
;
for (var Kt = ft + 1; Kt < ie.length && (Yt = L[ie[Kt]], !!(Yt & n)); Kt++)
;
rt === Yt && (L[Ht] === R ? rt === I : rt & (I | m)) && ae(Ht, rt);
}
}
if (K.get(I))
for (var ze = 0; ze < ie.length; ze++) {
var xn = ie[ze];
if (L[xn] & I) {
for (var Tt = ze - 1; Tt >= 0 && L[ie[Tt]] & (J | n); Tt--)
ae(ie[Tt], I);
for (ze++; ze < ie.length && L[ie[ze]] & (J | n | I); ze++)
L[ie[ze]] !== I && ae(ie[ze], I);
}
}
if (K.get(J) || K.get(R) || K.get(D))
for (var lt = 0; lt < ie.length; lt++) {
var Tr = ie[lt];
if (L[Tr] & (J | R | D)) {
ae(Tr, z);
for (var Ft = lt - 1; Ft >= 0 && L[ie[Ft]] & n; Ft--)
ae(ie[Ft], z);
for (var Ct = lt + 1; Ct < ie.length && L[ie[Ct]] & n; Ct++)
ae(ie[Ct], z);
}
}
if (K.get(I))
for (var Qt = 0, Fr = st; Qt < ie.length; Qt++) {
var Cr = ie[Qt], Zt = L[Cr];
Zt & I ? Fr === x && ae(Cr, x) : Zt & a && (Fr = Zt);
}
if (K.get(o)) {
var ut = C | I | m, Ar = ut | x, At = [];
{
for (var nt = [], at = 0; at < ie.length; at++)
if (L[ie[at]] & o) {
var ct = j[ie[at]], Dr = void 0;
if (U(ct) !== null)
if (nt.length < 63)
nt.push({ char: ct, seqIndex: at });
else
break;
else if ((Dr = w(ct)) !== null)
for (var ht = nt.length - 1; ht >= 0; ht--) {
var qt = nt[ht].char;
if (qt === Dr || qt === w(G(ct)) || U(G(qt)) === ct) {
At.push([nt[ht].seqIndex, at]), nt.length = ht;
break;
}
}
}
At.sort(function(Le, We) {
return Le[0] - We[0];
});
}
for (var $t = 0; $t < At.length; $t++) {
for (var Er = At[$t], Dt = Er[0], er = Er[1], Mr = !1, Ne = 0, tr = Dt + 1; tr < er; tr++) {
var Rr = ie[tr];
if (L[Rr] & Ar) {
Mr = !0;
var Gr = L[Rr] & ut ? C : x;
if (Gr === tt) {
Ne = Gr;
break;
}
}
}
if (Mr && !Ne) {
Ne = st;
for (var rr = Dt - 1; rr >= 0; rr--) {
var Or = ie[rr];
if (L[Or] & Ar) {
var Lr = L[Or] & ut ? C : x;
Lr !== tt ? Ne = Lr : Ne = tt;
break;
}
}
}
if (Ne) {
if (L[ie[Dt]] = L[ie[er]] = Ne, Ne !== tt) {
for (var dt = Dt + 1; dt < ie.length; dt++)
if (!(L[ie[dt]] & n)) {
l(j[ie[dt]]) & re && (L[ie[dt]] = Ne);
break;
}
}
if (Ne !== tt) {
for (var vt = er + 1; vt < ie.length; vt++)
if (!(L[ie[vt]] & n)) {
l(j[ie[vt]]) & re && (L[ie[vt]] = Ne);
break;
}
}
}
}
for (var Je = 0; Je < ie.length; Je++)
if (L[ie[Je]] & o) {
for (var Br = Je, nr = Je, ar = st, pt = Je - 1; pt >= 0; pt--)
if (L[ie[pt]] & n)
Br = pt;
else {
ar = L[ie[pt]] & ut ? C : x;
break;
}
for (var Pr = _n, gt = Je + 1; gt < ie.length; gt++)
if (L[ie[gt]] & (o | n))
nr = gt;
else {
Pr = L[ie[gt]] & ut ? C : x;
break;
}
for (var or = Br; or <= nr; or++)
L[ie[or]] = ar === Pr ? ar : tt;
Je = nr;
}
}
}
for (var Pe = oe.start; Pe <= oe.end; Pe++) {
var Sn = Y[Pe], Et = L[Pe];
if (Sn & 1 ? Et & (x | I | m) && Y[Pe]++ : Et & C ? Y[Pe]++ : Et & (m | I) && (Y[Pe] += 2), Et & n && (Y[Pe] = Pe === 0 ? oe.level : Y[Pe - 1]), Pe === oe.end || l(j[Pe]) & (X | T))
for (var Mt = Pe; Mt >= 0 && l(j[Mt]) & i; Mt--)
Y[Mt] = oe.level;
}
}
return {
levels: Y,
paragraphs: ne
};
function Ir(Le, We) {
for (var Be = Le; Be < j.length; Be++) {
var Ke = L[Be];
if (Ke & (C | B))
return 1;
if (Ke & (T | x) || We && Ke === P)
return 0;
if (Ke & e) {
var Nr = kn(Be);
Be = Nr === -1 ? j.length : Nr;
}
}
return 0;
}
function kn(Le) {
for (var We = 1, Be = Le + 1; Be < j.length; Be++) {
var Ke = L[Be];
if (Ke & T)
break;
if (Ke & P) {
if (--We === 0)
return Be;
} else Ke & e && We++;
}
return -1;
}
}
var $ = "14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1", V;
function W() {
if (!V) {
var j = g($, !0), te = j.map, q = j.reverseMap;
q.forEach(function(L, he) {
te.set(he, L);
}), V = te;
}
}
function pe(j) {
return W(), V.get(j) || null;
}
function ue(j, te, q, L) {
var he = j.length;
q = Math.max(0, q == null ? 0 : +q), L = Math.min(he - 1, L == null ? he - 1 : +L);
for (var K = /* @__PURE__ */ new Map(), ae = q; ae <= L; ae++)
if (te[ae] & 1) {
var Y = pe(j[ae]);
Y !== null && K.set(ae, Y);
}
return K;
}
function Q(j, te, q, L) {
var he = j.length;
q = Math.max(0, q == null ? 0 : +q), L = Math.min(he - 1, L == null ? he - 1 : +L);
var K = [];
return te.paragraphs.forEach(function(ae) {
var Y = Math.max(q, ae.start), be = Math.min(L, ae.end);
if (Y < be) {
for (var ne = te.levels.slice(Y, be + 1), oe = be; oe >= Y && l(j[oe]) & i; oe--)
ne[oe] = ae.level;
for (var le = ae.level, de = 1 / 0, xe = 0; xe < ne.length; xe++) {
var Fe = ne[xe];
Fe > le && (le = Fe), Fe < de && (de = Fe | 1);
}
for (var ge = le; ge >= de; ge--)
for (var me = 0; me < ne.length; me++)
if (ne[me] >= ge) {
for (var fe = me; me + 1 < ne.length && ne[me + 1] >= ge; )
me++;
me > fe && K.push([fe + Y, me + Y]);
}
}
}), K;
}
function ee(j, te, q, L) {
var he = se(j, te, q, L), K = [].concat(j);
return he.forEach(function(ae, Y) {
K[Y] = (te.levels[ae] & 1 ? pe(j[ae]) : null) || j[ae];
}), K.join("");
}
function se(j, te, q, L) {
for (var he = Q(j, te, q, L), K = [], ae = 0; ae < j.length; ae++)
K[ae] = ae;
return he.forEach(function(Y) {
for (var be = Y[0], ne = Y[1], oe = K.slice(be, ne + 1), le = oe.length; le--; )
K[ne - le] = oe[le];
}), K;
}
return r.closingToOpeningBracket = w, r.getBidiCharType = l, r.getBidiCharTypeName = h, r.getCanonicalBracket = G, r.getEmbeddingLevels = H, r.getMirroredCharacter = pe, r.getMirroredCharactersMap = ue, r.getReorderSegments = Q, r.getReorderedIndices = se, r.getReorderedString = ee, r.openingToClosingBracket = U, Object.defineProperty(r, "__esModule", { value: !0 }), r;
}({});
return c;
}
const ln = /\bvoid\s+main\s*\(\s*\)\s*{/g;
function cr(c) {
const r = /^[ \t]*#include +<([\w\d./]+)>/gm;
function d(u, t) {
let e = An[t];
return e ? cr(e) : u;
}
return c.replace(r, d);
}
const Ee = [];
for (let c = 0; c < 256; c++)
Ee[c] = (c < 16 ? "0" : "") + c.toString(16);
function Kn() {
const c = Math.random() * 4294967295 | 0, r = Math.random() * 4294967295 | 0, d = Math.random() * 4294967295 | 0, u = Math.random() * 4294967295 | 0;
return (Ee[c & 255] + Ee[c >> 8 & 255] + Ee[c >> 16 & 255] + Ee[c >> 24 & 255] + "-" + Ee[r & 255] + Ee[r >> 8 & 255] + "-" + Ee[r >> 16 & 15 | 64] + Ee[r >> 24 & 255] + "-" + Ee[d & 63 | 128] + Ee[d >> 8 & 255] + "-" + Ee[d >> 16 & 255] + Ee[d >> 24 & 255] + Ee[u & 255] + Ee[u >> 8 & 255] + Ee[u >> 16 & 255] + Ee[u >> 24 & 255]).toUpperCase();
}
const qe = Object.assign || function() {
let c = arguments[0];
for (let r = 1, d = arguments.length; r < d; r++) {
let u = arguments[r];
if (u)
for (let t in u)
Object.prototype.hasOwnProperty.call(u, t) && (c[t] = u[t]);
}
return c;
}, Qn = Date.now(), Vr = /* @__PURE__ */ new WeakMap(), Xr = /* @__PURE__ */ new Map();
let Zn = 1e10;
function hr(c, r) {
const d = ta(r);
let u = Vr.get(c);
if (u || Vr.set(c, u = /* @__PURE__ */ Object.create(null)), u[d])
return new u[d]();
const t = `_onBeforeCompile${d}`, e = function(i, s) {
c.onBeforeCompile.call(this, i, s);
const f = this.customProgramCacheKey() + "|" + i.vertexShader + "|" + i.fragmentShader;
let l = Xr[f];
if (!l) {
const h = qn(this, i, r, d);
l = Xr[f] = h;
}
i.vertexShader = l.vertexShader, i.fragmentShader = l.fragmentShader, qe(i.uniforms, this.uniforms), r.timeUniform && (i.uniforms[r.timeUniform] = {
get value() {
return Date.now() - Qn;
}
}), this[t] && this[t](i);
}, a = function() {
return o(r.chained ? c : c.clone());
}, o = function(i) {
const s = Object.create(i, n);
return Object.defineProperty(s, "baseMaterial", { value: c }), Object.defineProperty(s, "id", { value: Zn++ }), s.uuid = Kn(), s.uniforms = qe({}, i.uniforms, r.uniforms), s.defines = qe({}, i.defines, r.defines), s.defines[`TROIKA_DERIVED_MATERIAL_${d}`] = "", s.extensions = qe({}, i.extensions, r.extensions), s._listeners = void 0, s;
}, n = {
constructor: { value: a },
isDerivedMaterial: { value: !0 },
customProgramCacheKey: {
writable: !0,
configurable: !0,
value: function() {
return c.customProgramCacheKey() + "|" + d;
}
},
onBeforeCompile: {
get() {
return e;
},
set(i) {
this[t] = i;
}
},
copy: {
writable: !0,
configurable: !0,
value: function(i) {
return c.copy.call(this, i), !c.isShaderMaterial && !c.isDerivedMaterial && (qe(this.extensions, i.extensions), qe(this.defines, i.defines), qe(this.uniforms, Cn.clone(i.uniforms))), this;
}
},
clone: {
writable: !0,
configurable: !0,
value: function() {
const i = new c.constructor();
return o(i).copy(this);
}
},
/**
* Utility to get a MeshDepthMaterial that will honor this derived material's vertex
* transformations and discarded fragments.
*/
getDepthMaterial: {
writable: !0,
configurable: !0,
value: function() {
let i = this._depthMaterial;
return i || (i = this._depthMaterial = hr(
c.isDerivedMaterial ? c.getDepthMaterial() : new Tn({ depthPacking: Fn }),
r
), i.defines.IS_DEPTH_MATERIAL = "", i.uniforms = this.uniforms), i;
}
},
/**
* Utility to get a MeshDistanceMaterial that will honor this derived material's vertex
* transformations and discarded fragments.
*/
getDistanceMaterial: {
writable: !0,
configurable: !0,
value: function() {
let i = this._distanceMaterial;
return i || (i = this._distanceMaterial = hr(
c.isDerivedMaterial ? c.getDistanceMaterial() : new wn(),
r
), i.defines.IS_DISTANCE_MATERIAL = "", i.uniforms = this.uniforms), i;
}
},
dispose: {
writable: !0,
configurable: !0,
value() {
const { _depthMaterial: i, _distanceMaterial: s } = this;
i && i.dispose(), s && s.dispose(), c.dispose.call(this);
}
}
};
return u[d] = a, new a();
}
function qn(c, { vertexShader: r, fragmentShader: d }, u, t) {
let {
vertexDefs: e,
vertexMainIntro: a,
vertexMainOutro: o,
vertexTransform: n,
fragmentDefs: i,
fragmentMainIntro: s,
fragmentMainOutro: f,
fragmentColorTransform: l,
customRewriter: h,
timeUniform: p
} = u;
if (e = e || "", a = a || "", o = o || "", i = i || "", s = s || "", f = f || "", (n || h) && (r = cr(r)), (l || h) && (d = d.replace(
/^[ \t]*#include <((?:tonemapping|encodings|fog|premultiplied_alpha|dithering)_fragment)>/gm,
`
//!BEGIN_POST_CHUNK $1
$&
//!END_POST_CHUNK
`
), d = cr(d)), h) {
let g = h({ vertexShader: r, fragmentShader: d });
r = g.vertexShader, d = g.fragmentShader;
}
if (l) {
let g = [];
d = d.replace(
/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,
// [^]+? = non-greedy match of any chars including newlines
(y) => (g.push(y), "")
), f = `${l}
${g.join(`
`)}
${f}`;
}
if (p) {
const g = `
uniform float ${p};
`;
e = g + e, i = g + i;
}
return n && (r = `vec3 troika_position_${t};
vec3 troika_normal_${t};
vec2 troika_