From e3785c64e9550e779c73a6a1bb2cc80c38a7b2bc Mon Sep 17 00:00:00 2001 From: alvarosabu Date: Mon, 17 Apr 2023 12:21:35 +0200 Subject: [PATCH 1/2] docs: improved migration guide --- docs/.vitepress/cache/deps/@tresjs_cientos.js | 9483 +++++++++-------- .../cache/deps/@tresjs_cientos.js.map | 8 +- docs/.vitepress/cache/deps/@tresjs_core.js | 58 +- docs/.vitepress/cache/deps/_metadata.json | 32 +- .../{chunk-ZAYNNKM4.js => chunk-DESKY23Y.js} | 533 +- ...-ZAYNNKM4.js.map => chunk-DESKY23Y.js.map} | 6 +- docs/api/composables.md | 2 +- docs/examples/load-models.md | 2 +- docs/examples/load-textures.md | 2 +- docs/examples/orbit-controls.md | 21 +- docs/examples/text-3d.md | 24 +- docs/guide/migration-guide.md | 105 + docs/public/controls-before-camera-error.png | Bin 0 -> 61726 bytes 13 files changed, 5265 insertions(+), 5011 deletions(-) rename docs/.vitepress/cache/deps/{chunk-ZAYNNKM4.js => chunk-DESKY23Y.js} (60%) rename docs/.vitepress/cache/deps/{chunk-ZAYNNKM4.js.map => chunk-DESKY23Y.js.map} (87%) create mode 100644 docs/public/controls-before-camera-error.png diff --git a/docs/.vitepress/cache/deps/@tresjs_cientos.js b/docs/.vitepress/cache/deps/@tresjs_cientos.js index c9a5b7c02..8c3988f2d 100644 --- a/docs/.vitepress/cache/deps/@tresjs_cientos.js +++ b/docs/.vitepress/cache/deps/@tresjs_cientos.js @@ -1,9 +1,9 @@ import { - A, - Mt, - k, - we -} from "./chunk-ZAYNNKM4.js"; + D, + Et, + I, + Me +} from "./chunk-DESKY23Y.js"; import { computed, createBaseVNode, @@ -127,58 +127,61 @@ import { } from "./chunk-4QXXOI63.js"; import "./chunk-JC4IRQUL.js"; -// node_modules/.pnpm/@tresjs+cientos@2.0.0-beta.0_tmfoxhtycm6gvt37fuuvp77ciy/node_modules/@tresjs/cientos/dist/trescientos.js -function Np(b, i) { - for (var r = 0; r < i.length; r++) { - const s = i[r]; +// node_modules/.pnpm/@tresjs+cientos@2.0.0-beta.1_@tresjs+core@2.0.0-beta.5_three@0.150.1_vue@3.2.47/node_modules/@tresjs/cientos/dist/trescientos.js +var Jc = Object.defineProperty; +var eu = (v, n, r) => n in v ? Jc(v, n, { enumerable: true, configurable: true, writable: true, value: r }) : v[n] = r; +var Zr = (v, n, r) => (eu(v, typeof n != "symbol" ? n + "" : n, r), r); +function Gu(v, n) { + for (var r = 0; r < n.length; r++) { + const s = n[r]; if (typeof s != "string" && !Array.isArray(s)) { for (const a in s) - if (a !== "default" && !(a in b)) { + if (a !== "default" && !(a in v)) { const c = Object.getOwnPropertyDescriptor(s, a); - c && Object.defineProperty(b, a, c.get ? c : { + c && Object.defineProperty(v, a, c.get ? c : { enumerable: true, get: () => s[a] }); } } } - return Object.freeze(Object.defineProperty(b, Symbol.toStringTag, { value: "Module" })); + return Object.freeze(Object.defineProperty(v, Symbol.toStringTag, { value: "Module" })); } -function Zi(b) { - return Zi = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(i) { - return typeof i; - } : function(i) { - return i && typeof Symbol == "function" && i.constructor === Symbol && i !== Symbol.prototype ? "symbol" : typeof i; - }, Zi(b); +function Ji(v) { + return Ji = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(n) { + return typeof n; + } : function(n) { + return n && typeof Symbol == "function" && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : typeof n; + }, Ji(v); } -function Fp(b, i) { - if (Zi(b) !== "object" || b === null) - return b; - var r = b[Symbol.toPrimitive]; +function Hu(v, n) { + if (Ji(v) !== "object" || v === null) + return v; + var r = v[Symbol.toPrimitive]; if (r !== void 0) { - var s = r.call(b, i || "default"); - if (Zi(s) !== "object") + var s = r.call(v, n || "default"); + if (Ji(s) !== "object") return s; throw new TypeError("@@toPrimitive must return a primitive value."); } - return (i === "string" ? String : Number)(b); + return (n === "string" ? String : Number)(v); } -function Bp(b) { - var i = Fp(b, "string"); - return Zi(i) === "symbol" ? i : String(i); +function Ku(v) { + var n = Hu(v, "string"); + return Ji(n) === "symbol" ? n : String(n); } -function T(b, i, r) { - return i = Bp(i), i in b ? Object.defineProperty(b, i, { +function C(v, n, r) { + return n = Ku(n), n in v ? Object.defineProperty(v, n, { value: r, enumerable: true, configurable: true, writable: true - }) : b[i] = r, b; + }) : v[n] = r, v; } -var ut = Uint8Array; -var rn = Uint16Array; -var oo = Uint32Array; -var ja = new ut([ +var ht = Uint8Array; +var ln = Uint16Array; +var ho = Uint32Array; +var Ka = new ht([ 0, 0, 0, @@ -214,7 +217,7 @@ var ja = new ut([ /* impossible */ 0 ]); -var za = new ut([ +var $a = new ht([ 0, 0, 0, @@ -249,149 +252,149 @@ var za = new ut([ 0, 0 ]); -var jp = new ut([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); -var Ua = function(b, i) { - for (var r = new rn(31), s = 0; s < 31; ++s) - r[s] = i += 1 << b[s - 1]; - for (var a = new oo(r[30]), s = 1; s < 30; ++s) +var $u = new ht([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); +var Xa = function(v, n) { + for (var r = new ln(31), s = 0; s < 31; ++s) + r[s] = n += 1 << v[s - 1]; + for (var a = new ho(r[30]), s = 1; s < 30; ++s) for (var c = r[s]; c < r[s + 1]; ++c) a[c] = c - r[s] << 5 | s; return [r, a]; }; -var Ga = Ua(ja, 2); -var Ha = Ga[0]; -var zp = Ga[1]; -Ha[28] = 258, zp[258] = 28; -var Up = Ua(za, 0); -var Gp = Up[0]; -var ao = new rn(32768); +var Ya = Xa(Ka, 2); +var qa = Ya[0]; +var Xu = Ya[1]; +qa[28] = 258, Xu[258] = 28; +var Yu = Xa($a, 0); +var qu = Yu[0]; +var mo = new ln(32768); for (Ce = 0; Ce < 32768; ++Ce) { - tn = (Ce & 43690) >>> 1 | (Ce & 21845) << 1; - tn = (tn & 52428) >>> 2 | (tn & 13107) << 2, tn = (tn & 61680) >>> 4 | (tn & 3855) << 4, ao[Ce] = ((tn & 65280) >>> 8 | (tn & 255) << 8) >>> 1; + sn = (Ce & 43690) >>> 1 | (Ce & 21845) << 1; + sn = (sn & 52428) >>> 2 | (sn & 13107) << 2, sn = (sn & 61680) >>> 4 | (sn & 3855) << 4, mo[Ce] = ((sn & 65280) >>> 8 | (sn & 255) << 8) >>> 1; } -var tn; +var sn; var Ce; -var Xi = function(b, i, r) { - for (var s = b.length, a = 0, c = new rn(i); a < s; ++a) - ++c[b[a] - 1]; - var u = new rn(i); - for (a = 0; a < i; ++a) - u[a] = u[a - 1] + c[a - 1] << 1; +var qi = function(v, n, r) { + for (var s = v.length, a = 0, c = new ln(n); a < s; ++a) + ++c[v[a] - 1]; + var p = new ln(n); + for (a = 0; a < n; ++a) + p[a] = p[a - 1] + c[a - 1] << 1; var h; if (r) { - h = new rn(1 << i); - var d = 15 - i; + h = new ln(1 << n); + var d = 15 - n; for (a = 0; a < s; ++a) - if (b[a]) - for (var g = a << 4 | b[a], w = i - b[a], _ = u[b[a] - 1]++ << w, y = _ | (1 << w) - 1; _ <= y; ++_) - h[ao[_] >>> d] = g; + if (v[a]) + for (var g = a << 4 | v[a], w = n - v[a], _ = p[v[a] - 1]++ << w, y = _ | (1 << w) - 1; _ <= y; ++_) + h[mo[_] >>> d] = g; } else - for (h = new rn(s), a = 0; a < s; ++a) - b[a] && (h[a] = ao[u[b[a] - 1]++] >>> 15 - b[a]); + for (h = new ln(s), a = 0; a < s; ++a) + v[a] && (h[a] = mo[p[v[a] - 1]++] >>> 15 - v[a]); return h; }; -var es = new ut(288); +var ns = new ht(288); for (Ce = 0; Ce < 144; ++Ce) - es[Ce] = 8; + ns[Ce] = 8; var Ce; for (Ce = 144; Ce < 256; ++Ce) - es[Ce] = 9; + ns[Ce] = 9; var Ce; for (Ce = 256; Ce < 280; ++Ce) - es[Ce] = 7; + ns[Ce] = 7; var Ce; for (Ce = 280; Ce < 288; ++Ce) - es[Ce] = 8; + ns[Ce] = 8; var Ce; -var Ka = new ut(32); +var Qa = new ht(32); for (Ce = 0; Ce < 32; ++Ce) - Ka[Ce] = 5; + Qa[Ce] = 5; var Ce; -var Hp = Xi(es, 9, 1); -var Kp = Xi(Ka, 5, 1); -var Yr = function(b) { - for (var i = b[0], r = 1; r < b.length; ++r) - b[r] > i && (i = b[r]); - return i; +var Qu = qi(ns, 9, 1); +var Zu = qi(Qa, 5, 1); +var to = function(v) { + for (var n = v[0], r = 1; r < v.length; ++r) + v[r] > n && (n = v[r]); + return n; }; -var _t = function(b, i, r) { - var s = i / 8 | 0; - return (b[s] | b[s + 1] << 8) >> (i & 7) & r; +var wt = function(v, n, r) { + var s = n / 8 | 0; + return (v[s] | v[s + 1] << 8) >> (n & 7) & r; }; -var qr = function(b, i) { - var r = i / 8 | 0; - return (b[r] | b[r + 1] << 8 | b[r + 2] << 16) >> (i & 7); +var no = function(v, n) { + var r = n / 8 | 0; + return (v[r] | v[r + 1] << 8 | v[r + 2] << 16) >> (n & 7); }; -var $p = function(b) { - return (b / 8 | 0) + (b & 7 && 1); +var Wu = function(v) { + return (v / 8 | 0) + (v & 7 && 1); }; -var Xp = function(b, i, r) { - (i == null || i < 0) && (i = 0), (r == null || r > b.length) && (r = b.length); - var s = new (b instanceof rn ? rn : b instanceof oo ? oo : ut)(r - i); - return s.set(b.subarray(i, r)), s; +var Ju = function(v, n, r) { + (n == null || n < 0) && (n = 0), (r == null || r > v.length) && (r = v.length); + var s = new (v instanceof ln ? ln : v instanceof ho ? ho : ht)(r - n); + return s.set(v.subarray(n, r)), s; }; -var Yp = function(b, i, r) { - var s = b.length; +var ep = function(v, n, r) { + var s = v.length; if (!s || r && !r.l && s < 5) - return i || new ut(0); - var a = !i || r, c = !r || r.i; - r || (r = {}), i || (i = new ut(s * 3)); - var u = function(Ve) { - var Ne = i.length; - if (Ve > Ne) { - var we2 = new ut(Math.max(Ne * 2, Ve)); - we2.set(i), i = we2; - } - }, h = r.f || 0, d = r.p || 0, g = r.b || 0, w = r.l, _ = r.d, y = r.m, C = r.n, I = s * 8; + return n || new ht(0); + var a = !n || r, c = !r || r.i; + r || (r = {}), n || (n = new ht(s * 3)); + var p = function(Ve) { + var Be = n.length; + if (Ve > Be) { + var we = new ht(Math.max(Be * 2, Ve)); + we.set(n), n = we; + } + }, h = r.f || 0, d = r.p || 0, g = r.b || 0, w = r.l, _ = r.d, y = r.m, P = r.n, I2 = s * 8; do { if (!w) { - r.f = h = _t(b, d, 1); - var S = _t(b, d + 1, 3); + r.f = h = wt(v, d, 1); + var S = wt(v, d + 1, 3); if (d += 3, S) if (S == 1) - w = Hp, _ = Kp, y = 9, C = 5; + w = Qu, _ = Zu, y = 9, P = 5; else if (S == 2) { - var V = _t(b, d, 31) + 257, D = _t(b, d + 10, 15) + 4, Y = V + _t(b, d + 5, 31) + 1; + var V = wt(v, d, 31) + 257, D2 = wt(v, d + 10, 15) + 4, Y = V + wt(v, d + 5, 31) + 1; d += 14; - for (var G = new ut(Y), N = new ut(19), O = 0; O < D; ++O) - N[jp[O]] = _t(b, d + O * 3, 7); - d += D * 3; - for (var H = Yr(N), K = (1 << H) - 1, q = Xi(N, H, 1), O = 0; O < Y; ) { - var ue = q[_t(b, d, K)]; - d += ue & 15; - var R = ue >>> 4; + for (var G = new ht(Y), N = new ht(19), O = 0; O < D2; ++O) + N[$u[O]] = wt(v, d + O * 3, 7); + d += D2 * 3; + for (var H = to(N), K = (1 << H) - 1, q = qi(N, H, 1), O = 0; O < Y; ) { + var pe = q[wt(v, d, K)]; + d += pe & 15; + var R = pe >>> 4; if (R < 16) G[O++] = R; else { var ge = 0, ce = 0; - for (R == 16 ? (ce = 3 + _t(b, d, 3), d += 2, ge = G[O - 1]) : R == 17 ? (ce = 3 + _t(b, d, 7), d += 3) : R == 18 && (ce = 11 + _t(b, d, 127), d += 7); ce--; ) + for (R == 16 ? (ce = 3 + wt(v, d, 3), d += 2, ge = G[O - 1]) : R == 17 ? (ce = 3 + wt(v, d, 7), d += 3) : R == 18 && (ce = 11 + wt(v, d, 127), d += 7); ce--; ) G[O++] = ge; } } var me = G.subarray(0, V), he = G.subarray(V); - y = Yr(me), C = Yr(he), w = Xi(me, y, 1), _ = Xi(he, C, 1); + y = to(me), P = to(he), w = qi(me, y, 1), _ = qi(he, P, 1); } else throw "invalid block type"; else { - var R = $p(d) + 4, j = b[R - 4] | b[R - 3] << 8, F = R + j; + var R = Wu(d) + 4, j = v[R - 4] | v[R - 3] << 8, F = R + j; if (F > s) { if (c) throw "unexpected EOF"; break; } - a && u(g + j), i.set(b.subarray(R, F), g), r.b = g += j, r.p = d = F * 8; + a && p(g + j), n.set(v.subarray(R, F), g), r.b = g += j, r.p = d = F * 8; continue; } - if (d > I) { + if (d > I2) { if (c) throw "unexpected EOF"; break; } } - a && u(g + 131072); - for (var ee = (1 << y) - 1, X = (1 << C) - 1, Pe = d; ; Pe = d) { - var ge = w[qr(b, d) & ee], fe = ge >>> 4; - if (d += ge & 15, d > I) { + a && p(g + 131072); + for (var ee = (1 << y) - 1, X = (1 << P) - 1, Pe = d; ; Pe = d) { + var ge = w[no(v, d) & ee], fe = ge >>> 4; + if (d += ge & 15, d > I2) { if (c) throw "unexpected EOF"; break; @@ -399,94 +402,94 @@ var Yp = function(b, i, r) { if (!ge) throw "invalid length/literal"; if (fe < 256) - i[g++] = fe; + n[g++] = fe; else if (fe == 256) { Pe = d, w = null; break; } else { var ae = fe - 254; if (fe > 264) { - var O = fe - 257, ne = ja[O]; - ae = _t(b, d, (1 << ne) - 1) + Ha[O], d += ne; + var O = fe - 257, ne = Ka[O]; + ae = wt(v, d, (1 << ne) - 1) + qa[O], d += ne; } - var be = _[qr(b, d) & X], M = be >>> 4; + var be = _[no(v, d) & X], M = be >>> 4; if (!be) throw "invalid distance"; d += be & 15; - var he = Gp[M]; + var he = qu[M]; if (M > 3) { - var ne = za[M]; - he += qr(b, d) & (1 << ne) - 1, d += ne; + var ne = $a[M]; + he += no(v, d) & (1 << ne) - 1, d += ne; } - if (d > I) { + if (d > I2) { if (c) throw "unexpected EOF"; break; } - a && u(g + 131072); + a && p(g + 131072); for (var le = g + ae; g < le; g += 4) - i[g] = i[g - he], i[g + 1] = i[g + 1 - he], i[g + 2] = i[g + 2 - he], i[g + 3] = i[g + 3 - he]; + n[g] = n[g - he], n[g + 1] = n[g + 1 - he], n[g + 2] = n[g + 2 - he], n[g + 3] = n[g + 3 - he]; g = le; } } - r.l = w, r.p = Pe, r.b = g, w && (h = 1, r.m = y, r.d = _, r.n = C); + r.l = w, r.p = Pe, r.b = g, w && (h = 1, r.m = y, r.d = _, r.n = P); } while (!h); - return g == i.length ? i : Xp(i, 0, g); + return g == n.length ? n : Ju(n, 0, g); }; -var qp = new ut(0); -var Qp = function(b) { - if ((b[0] & 15) != 8 || b[0] >>> 4 > 7 || (b[0] << 8 | b[1]) % 31) +var tp = new ht(0); +var np = function(v) { + if ((v[0] & 15) != 8 || v[0] >>> 4 > 7 || (v[0] << 8 | v[1]) % 31) throw "invalid zlib data"; - if (b[1] & 32) + if (v[1] & 32) throw "invalid zlib data: preset dictionaries not supported"; }; -function Zp(b, i) { - return Yp((Qp(b), b.subarray(2, -4)), i); +function ip(v, n) { + return ep((np(v), v.subarray(2, -4)), n); } -var Wp = typeof TextDecoder < "u" && new TextDecoder(); -var Jp = 0; +var sp = typeof TextDecoder < "u" && new TextDecoder(); +var rp = 0; try { - Wp.decode(qp, { stream: true }), Jp = 1; + sp.decode(tp, { stream: true }), rp = 1; } catch { } -var eu = class extends Object3D { +var op = class extends Object3D { // events - constructor(i, r) { - super(), T(this, "isTransformControls", true), T(this, "visible", false), T(this, "domElement", void 0), T(this, "raycaster", new Raycaster()), T(this, "gizmo", void 0), T(this, "plane", void 0), T(this, "tempVector", new Vector3()), T(this, "tempVector2", new Vector3()), T(this, "tempQuaternion", new Quaternion()), T(this, "unit", { + constructor(n, r) { + super(), C(this, "isTransformControls", true), C(this, "visible", false), C(this, "domElement", void 0), C(this, "raycaster", new Raycaster()), C(this, "gizmo", void 0), C(this, "plane", void 0), C(this, "tempVector", new Vector3()), C(this, "tempVector2", new Vector3()), C(this, "tempQuaternion", new Quaternion()), C(this, "unit", { X: new Vector3(1, 0, 0), Y: new Vector3(0, 1, 0), Z: new Vector3(0, 0, 1) - }), T(this, "pointStart", new Vector3()), T(this, "pointEnd", new Vector3()), T(this, "offset", new Vector3()), T(this, "rotationAxis", new Vector3()), T(this, "startNorm", new Vector3()), T(this, "endNorm", new Vector3()), T(this, "rotationAngle", 0), T(this, "cameraPosition", new Vector3()), T(this, "cameraQuaternion", new Quaternion()), T(this, "cameraScale", new Vector3()), T(this, "parentPosition", new Vector3()), T(this, "parentQuaternion", new Quaternion()), T(this, "parentQuaternionInv", new Quaternion()), T(this, "parentScale", new Vector3()), T(this, "worldPositionStart", new Vector3()), T(this, "worldQuaternionStart", new Quaternion()), T(this, "worldScaleStart", new Vector3()), T(this, "worldPosition", new Vector3()), T(this, "worldQuaternion", new Quaternion()), T(this, "worldQuaternionInv", new Quaternion()), T(this, "worldScale", new Vector3()), T(this, "eye", new Vector3()), T(this, "positionStart", new Vector3()), T(this, "quaternionStart", new Quaternion()), T(this, "scaleStart", new Vector3()), T(this, "camera", void 0), T(this, "object", void 0), T(this, "enabled", true), T(this, "axis", null), T(this, "mode", "translate"), T(this, "translationSnap", null), T(this, "rotationSnap", null), T(this, "scaleSnap", null), T(this, "space", "world"), T(this, "size", 1), T(this, "dragging", false), T(this, "showX", true), T(this, "showY", true), T(this, "showZ", true), T(this, "changeEvent", { + }), C(this, "pointStart", new Vector3()), C(this, "pointEnd", new Vector3()), C(this, "offset", new Vector3()), C(this, "rotationAxis", new Vector3()), C(this, "startNorm", new Vector3()), C(this, "endNorm", new Vector3()), C(this, "rotationAngle", 0), C(this, "cameraPosition", new Vector3()), C(this, "cameraQuaternion", new Quaternion()), C(this, "cameraScale", new Vector3()), C(this, "parentPosition", new Vector3()), C(this, "parentQuaternion", new Quaternion()), C(this, "parentQuaternionInv", new Quaternion()), C(this, "parentScale", new Vector3()), C(this, "worldPositionStart", new Vector3()), C(this, "worldQuaternionStart", new Quaternion()), C(this, "worldScaleStart", new Vector3()), C(this, "worldPosition", new Vector3()), C(this, "worldQuaternion", new Quaternion()), C(this, "worldQuaternionInv", new Quaternion()), C(this, "worldScale", new Vector3()), C(this, "eye", new Vector3()), C(this, "positionStart", new Vector3()), C(this, "quaternionStart", new Quaternion()), C(this, "scaleStart", new Vector3()), C(this, "camera", void 0), C(this, "object", void 0), C(this, "enabled", true), C(this, "axis", null), C(this, "mode", "translate"), C(this, "translationSnap", null), C(this, "rotationSnap", null), C(this, "scaleSnap", null), C(this, "space", "world"), C(this, "size", 1), C(this, "dragging", false), C(this, "showX", true), C(this, "showY", true), C(this, "showZ", true), C(this, "changeEvent", { type: "change" - }), T(this, "mouseDownEvent", { + }), C(this, "mouseDownEvent", { type: "mouseDown", mode: this.mode - }), T(this, "mouseUpEvent", { + }), C(this, "mouseUpEvent", { type: "mouseUp", mode: this.mode - }), T(this, "objectChangeEvent", { + }), C(this, "objectChangeEvent", { type: "objectChange" - }), T(this, "intersectObjectWithRay", (a, c, u) => { + }), C(this, "intersectObjectWithRay", (a, c, p) => { const h = c.intersectObject(a, true); for (let d = 0; d < h.length; d++) - if (h[d].object.visible || u) + if (h[d].object.visible || p) return h[d]; return false; - }), T(this, "attach", (a) => (this.object = a, this.visible = true, this)), T(this, "detach", () => (this.object = void 0, this.visible = false, this.axis = null, this)), T(this, "reset", () => this.enabled ? (this.dragging && this.object !== void 0 && (this.object.position.copy(this.positionStart), this.object.quaternion.copy(this.quaternionStart), this.object.scale.copy(this.scaleStart), this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent), this.pointStart.copy(this.pointEnd)), this) : this), T(this, "updateMatrixWorld", () => { + }), C(this, "attach", (a) => (this.object = a, this.visible = true, this)), C(this, "detach", () => (this.object = void 0, this.visible = false, this.axis = null, this)), C(this, "reset", () => this.enabled ? (this.dragging && this.object !== void 0 && (this.object.position.copy(this.positionStart), this.object.quaternion.copy(this.quaternionStart), this.object.scale.copy(this.scaleStart), this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent), this.pointStart.copy(this.pointEnd)), this) : this), C(this, "updateMatrixWorld", () => { this.object !== void 0 && (this.object.updateMatrixWorld(), this.object.parent === null ? console.error("TransformControls: The attached 3D object must be a part of the scene graph.") : this.object.parent.matrixWorld.decompose(this.parentPosition, this.parentQuaternion, this.parentScale), this.object.matrixWorld.decompose(this.worldPosition, this.worldQuaternion, this.worldScale), this.parentQuaternionInv.copy(this.parentQuaternion).invert(), this.worldQuaternionInv.copy(this.worldQuaternion).invert()), this.camera.updateMatrixWorld(), this.camera.matrixWorld.decompose(this.cameraPosition, this.cameraQuaternion, this.cameraScale), this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(), super.updateMatrixWorld(); - }), T(this, "pointerHover", (a) => { + }), C(this, "pointerHover", (a) => { if (this.object === void 0 || this.dragging === true) return; this.raycaster.setFromCamera(a, this.camera); const c = this.intersectObjectWithRay(this.gizmo.picker[this.mode], this.raycaster); c ? this.axis = c.object.name : this.axis = null; - }), T(this, "pointerDown", (a) => { + }), C(this, "pointerDown", (a) => { if (!(this.object === void 0 || this.dragging === true || a.button !== 0) && this.axis !== null) { this.raycaster.setFromCamera(a, this.camera); const c = this.intersectObjectWithRay(this.plane, this.raycaster, true); if (c) { - let u = this.space; - if (this.mode === "scale" ? u = "local" : (this.axis === "E" || this.axis === "XYZE" || this.axis === "XYZ") && (u = "world"), u === "local" && this.mode === "rotate") { + let p = this.space; + if (this.mode === "scale" ? p = "local" : (this.axis === "E" || this.axis === "XYZE" || this.axis === "XYZ") && (p = "world"), p === "local" && this.mode === "rotate") { const h = this.rotationSnap; this.axis === "X" && h && (this.object.rotation.x = Math.round(this.object.rotation.x / h) * h), this.axis === "Y" && h && (this.object.rotation.y = Math.round(this.object.rotation.y / h) * h), this.axis === "Z" && h && (this.object.rotation.z = Math.round(this.object.rotation.z / h) * h); } @@ -494,33 +497,33 @@ var eu = class extends Object3D { } this.dragging = true, this.mouseDownEvent.mode = this.mode, this.dispatchEvent(this.mouseDownEvent); } - }), T(this, "pointerMove", (a) => { - const c = this.axis, u = this.mode, h = this.object; + }), C(this, "pointerMove", (a) => { + const c = this.axis, p = this.mode, h = this.object; let d = this.space; - if (u === "scale" ? d = "local" : (c === "E" || c === "XYZE" || c === "XYZ") && (d = "world"), h === void 0 || c === null || this.dragging === false || a.button !== -1) + if (p === "scale" ? d = "local" : (c === "E" || c === "XYZE" || c === "XYZ") && (d = "world"), h === void 0 || c === null || this.dragging === false || a.button !== -1) return; this.raycaster.setFromCamera(a, this.camera); const g = this.intersectObjectWithRay(this.plane, this.raycaster, true); if (g) { - if (this.pointEnd.copy(g.point).sub(this.worldPositionStart), u === "translate") + if (this.pointEnd.copy(g.point).sub(this.worldPositionStart), p === "translate") this.offset.copy(this.pointEnd).sub(this.pointStart), d === "local" && c !== "XYZ" && this.offset.applyQuaternion(this.worldQuaternionInv), c.indexOf("X") === -1 && (this.offset.x = 0), c.indexOf("Y") === -1 && (this.offset.y = 0), c.indexOf("Z") === -1 && (this.offset.z = 0), d === "local" && c !== "XYZ" ? this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale) : this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale), h.position.copy(this.offset).add(this.positionStart), this.translationSnap && (d === "local" && (h.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()), c.search("X") !== -1 && (h.position.x = Math.round(h.position.x / this.translationSnap) * this.translationSnap), c.search("Y") !== -1 && (h.position.y = Math.round(h.position.y / this.translationSnap) * this.translationSnap), c.search("Z") !== -1 && (h.position.z = Math.round(h.position.z / this.translationSnap) * this.translationSnap), h.position.applyQuaternion(this.quaternionStart)), d === "world" && (h.parent && h.position.add(this.tempVector.setFromMatrixPosition(h.parent.matrixWorld)), c.search("X") !== -1 && (h.position.x = Math.round(h.position.x / this.translationSnap) * this.translationSnap), c.search("Y") !== -1 && (h.position.y = Math.round(h.position.y / this.translationSnap) * this.translationSnap), c.search("Z") !== -1 && (h.position.z = Math.round(h.position.z / this.translationSnap) * this.translationSnap), h.parent && h.position.sub(this.tempVector.setFromMatrixPosition(h.parent.matrixWorld)))); - else if (u === "scale") { + else if (p === "scale") { if (c.search("XYZ") !== -1) { let w = this.pointEnd.length() / this.pointStart.length(); this.pointEnd.dot(this.pointStart) < 0 && (w *= -1), this.tempVector2.set(w, w, w); } else this.tempVector.copy(this.pointStart), this.tempVector2.copy(this.pointEnd), this.tempVector.applyQuaternion(this.worldQuaternionInv), this.tempVector2.applyQuaternion(this.worldQuaternionInv), this.tempVector2.divide(this.tempVector), c.search("X") === -1 && (this.tempVector2.x = 1), c.search("Y") === -1 && (this.tempVector2.y = 1), c.search("Z") === -1 && (this.tempVector2.z = 1); h.scale.copy(this.scaleStart).multiply(this.tempVector2), this.scaleSnap && this.object && (c.search("X") !== -1 && (this.object.scale.x = Math.round(h.scale.x / this.scaleSnap) * this.scaleSnap || this.scaleSnap), c.search("Y") !== -1 && (h.scale.y = Math.round(h.scale.y / this.scaleSnap) * this.scaleSnap || this.scaleSnap), c.search("Z") !== -1 && (h.scale.z = Math.round(h.scale.z / this.scaleSnap) * this.scaleSnap || this.scaleSnap)); - } else if (u === "rotate") { + } else if (p === "rotate") { this.offset.copy(this.pointEnd).sub(this.pointStart); const w = 20 / this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld)); c === "E" ? (this.rotationAxis.copy(this.eye), this.rotationAngle = this.pointEnd.angleTo(this.pointStart), this.startNorm.copy(this.pointStart).normalize(), this.endNorm.copy(this.pointEnd).normalize(), this.rotationAngle *= this.endNorm.cross(this.startNorm).dot(this.eye) < 0 ? 1 : -1) : c === "XYZE" ? (this.rotationAxis.copy(this.offset).cross(this.eye).normalize(), this.rotationAngle = this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye)) * w) : (c === "X" || c === "Y" || c === "Z") && (this.rotationAxis.copy(this.unit[c]), this.tempVector.copy(this.unit[c]), d === "local" && this.tempVector.applyQuaternion(this.worldQuaternion), this.rotationAngle = this.offset.dot(this.tempVector.cross(this.eye).normalize()) * w), this.rotationSnap && (this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap), d === "local" && c !== "E" && c !== "XYZE" ? (h.quaternion.copy(this.quaternionStart), h.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize()) : (this.rotationAxis.applyQuaternion(this.parentQuaternionInv), h.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)), h.quaternion.multiply(this.quaternionStart).normalize()); } this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent); } - }), T(this, "pointerUp", (a) => { + }), C(this, "pointerUp", (a) => { a.button === 0 && (this.dragging && this.axis !== null && (this.mouseUpEvent.mode = this.mode, this.dispatchEvent(this.mouseUpEvent)), this.dragging = false, this.axis = null); - }), T(this, "getPointer", (a) => { + }), C(this, "getPointer", (a) => { var c; if (this.domElement && (c = this.domElement.ownerDocument) !== null && c !== void 0 && c.pointerLockElement) return { @@ -529,15 +532,15 @@ var eu = class extends Object3D { button: a.button }; { - var u; - const h = a.changedTouches ? a.changedTouches[0] : a, d = (u = this.domElement) === null || u === void 0 ? void 0 : u.getBoundingClientRect(); + var p; + const h = a.changedTouches ? a.changedTouches[0] : a, d = (p = this.domElement) === null || p === void 0 ? void 0 : p.getBoundingClientRect(); return { x: (h.clientX - d.left) / d.width * 2 - 1, y: -(h.clientY - d.top) / d.height * 2 + 1, button: a.button }; } - }), T(this, "onPointerHover", (a) => { + }), C(this, "onPointerHover", (a) => { if (this.enabled) switch (a.pointerType) { case "mouse": @@ -545,43 +548,43 @@ var eu = class extends Object3D { this.pointerHover(this.getPointer(a)); break; } - }), T(this, "onPointerDown", (a) => { + }), C(this, "onPointerDown", (a) => { !this.enabled || !this.domElement || (this.domElement.style.touchAction = "none", this.domElement.ownerDocument.addEventListener("pointermove", this.onPointerMove), this.pointerHover(this.getPointer(a)), this.pointerDown(this.getPointer(a))); - }), T(this, "onPointerMove", (a) => { + }), C(this, "onPointerMove", (a) => { this.enabled && this.pointerMove(this.getPointer(a)); - }), T(this, "onPointerUp", (a) => { + }), C(this, "onPointerUp", (a) => { !this.enabled || !this.domElement || (this.domElement.style.touchAction = "", this.domElement.ownerDocument.removeEventListener("pointermove", this.onPointerMove), this.pointerUp(this.getPointer(a))); - }), T(this, "getMode", () => this.mode), T(this, "setMode", (a) => { + }), C(this, "getMode", () => this.mode), C(this, "setMode", (a) => { this.mode = a; - }), T(this, "setTranslationSnap", (a) => { + }), C(this, "setTranslationSnap", (a) => { this.translationSnap = a; - }), T(this, "setRotationSnap", (a) => { + }), C(this, "setRotationSnap", (a) => { this.rotationSnap = a; - }), T(this, "setScaleSnap", (a) => { + }), C(this, "setScaleSnap", (a) => { this.scaleSnap = a; - }), T(this, "setSize", (a) => { + }), C(this, "setSize", (a) => { this.size = a; - }), T(this, "setSpace", (a) => { + }), C(this, "setSpace", (a) => { this.space = a; - }), T(this, "update", () => { + }), C(this, "update", () => { console.warn("THREE.TransformControls: update function has no more functionality and therefore has been deprecated."); - }), T(this, "connect", (a) => { + }), C(this, "connect", (a) => { a === document && console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'), this.domElement = a, this.domElement.addEventListener("pointerdown", this.onPointerDown), this.domElement.addEventListener("pointermove", this.onPointerHover), this.domElement.ownerDocument.addEventListener("pointerup", this.onPointerUp); - }), T(this, "dispose", () => { - var a, c, u, h, d, g; - (a = this.domElement) === null || a === void 0 || a.removeEventListener("pointerdown", this.onPointerDown), (c = this.domElement) === null || c === void 0 || c.removeEventListener("pointermove", this.onPointerHover), (u = this.domElement) === null || u === void 0 || (h = u.ownerDocument) === null || h === void 0 || h.removeEventListener("pointermove", this.onPointerMove), (d = this.domElement) === null || d === void 0 || (g = d.ownerDocument) === null || g === void 0 || g.removeEventListener("pointerup", this.onPointerUp), this.traverse((w) => { + }), C(this, "dispose", () => { + var a, c, p, h, d, g; + (a = this.domElement) === null || a === void 0 || a.removeEventListener("pointerdown", this.onPointerDown), (c = this.domElement) === null || c === void 0 || c.removeEventListener("pointermove", this.onPointerHover), (p = this.domElement) === null || p === void 0 || (h = p.ownerDocument) === null || h === void 0 || h.removeEventListener("pointermove", this.onPointerMove), (d = this.domElement) === null || d === void 0 || (g = d.ownerDocument) === null || g === void 0 || g.removeEventListener("pointerup", this.onPointerUp), this.traverse((w) => { const _ = w; _.geometry && _.geometry.dispose(), _.material && _.material.dispose(); }); - }), this.domElement = r, this.camera = i, this.gizmo = new tu(), this.add(this.gizmo), this.plane = new nu(), this.add(this.plane); + }), this.domElement = r, this.camera = n, this.gizmo = new ap(), this.add(this.gizmo), this.plane = new lp(), this.add(this.plane); const s = (a, c) => { - let u = c; + let p = c; Object.defineProperty(this, a, { get: function() { - return u !== void 0 ? u : c; + return p !== void 0 ? p : c; }, set: function(h) { - u !== h && (u = h, this.plane[a] = h, this.gizmo[a] = h, this.dispatchEvent({ + p !== h && (p = h, this.plane[a] = h, this.gizmo[a] = h, this.dispatchEvent({ type: a + "-changed", value: h }), this.dispatchEvent(this.changeEvent)); @@ -591,10 +594,10 @@ var eu = class extends Object3D { s("camera", this.camera), s("object", this.object), s("enabled", this.enabled), s("axis", this.axis), s("mode", this.mode), s("translationSnap", this.translationSnap), s("rotationSnap", this.rotationSnap), s("scaleSnap", this.scaleSnap), s("space", this.space), s("size", this.size), s("dragging", this.dragging), s("showX", this.showX), s("showY", this.showY), s("showZ", this.showZ), s("worldPosition", this.worldPosition), s("worldPositionStart", this.worldPositionStart), s("worldQuaternion", this.worldQuaternion), s("worldQuaternionStart", this.worldQuaternionStart), s("cameraPosition", this.cameraPosition), s("cameraQuaternion", this.cameraQuaternion), s("pointStart", this.pointStart), s("pointEnd", this.pointEnd), s("rotationAxis", this.rotationAxis), s("rotationAngle", this.rotationAngle), s("eye", this.eye), r !== void 0 && this.connect(r); } }; -var tu = class extends Object3D { +var ap = class extends Object3D { // these are set from parent class TransformControls constructor() { - super(), T(this, "isTransformControlsGizmo", true), T(this, "type", "TransformControlsGizmo"), T(this, "tempVector", new Vector3(0, 0, 0)), T(this, "tempEuler", new Euler()), T(this, "alignVector", new Vector3(0, 1, 0)), T(this, "zeroVector", new Vector3(0, 0, 0)), T(this, "lookAtMatrix", new Matrix4()), T(this, "tempQuaternion", new Quaternion()), T(this, "tempQuaternion2", new Quaternion()), T(this, "identityQuaternion", new Quaternion()), T(this, "unitX", new Vector3(1, 0, 0)), T(this, "unitY", new Vector3(0, 1, 0)), T(this, "unitZ", new Vector3(0, 0, 1)), T(this, "gizmo", void 0), T(this, "picker", void 0), T(this, "helper", void 0), T(this, "rotationAxis", new Vector3()), T(this, "cameraPosition", new Vector3()), T(this, "worldPositionStart", new Vector3()), T(this, "worldQuaternionStart", new Quaternion()), T(this, "worldPosition", new Vector3()), T(this, "worldQuaternion", new Quaternion()), T(this, "eye", new Vector3()), T(this, "camera", null), T(this, "enabled", true), T(this, "axis", null), T(this, "mode", "translate"), T(this, "space", "world"), T(this, "size", 1), T(this, "dragging", false), T(this, "showX", true), T(this, "showY", true), T(this, "showZ", true), T(this, "updateMatrixWorld", () => { + super(), C(this, "isTransformControlsGizmo", true), C(this, "type", "TransformControlsGizmo"), C(this, "tempVector", new Vector3(0, 0, 0)), C(this, "tempEuler", new Euler()), C(this, "alignVector", new Vector3(0, 1, 0)), C(this, "zeroVector", new Vector3(0, 0, 0)), C(this, "lookAtMatrix", new Matrix4()), C(this, "tempQuaternion", new Quaternion()), C(this, "tempQuaternion2", new Quaternion()), C(this, "identityQuaternion", new Quaternion()), C(this, "unitX", new Vector3(1, 0, 0)), C(this, "unitY", new Vector3(0, 1, 0)), C(this, "unitZ", new Vector3(0, 0, 1)), C(this, "gizmo", void 0), C(this, "picker", void 0), C(this, "helper", void 0), C(this, "rotationAxis", new Vector3()), C(this, "cameraPosition", new Vector3()), C(this, "worldPositionStart", new Vector3()), C(this, "worldQuaternionStart", new Quaternion()), C(this, "worldPosition", new Vector3()), C(this, "worldQuaternion", new Quaternion()), C(this, "eye", new Vector3()), C(this, "camera", null), C(this, "enabled", true), C(this, "axis", null), C(this, "mode", "translate"), C(this, "space", "world"), C(this, "size", 1), C(this, "dragging", false), C(this, "showX", true), C(this, "showY", true), C(this, "showZ", true), C(this, "updateMatrixWorld", () => { let fe = this.space; this.mode === "scale" && (fe = "local"); const ae = fe === "local" ? this.worldQuaternion : this.identityQuaternion; @@ -615,7 +618,7 @@ var tu = class extends Object3D { } super.updateMatrixWorld(); }); - const i = new MeshBasicMaterial({ + const n = new MeshBasicMaterial({ depthTest: false, depthWrite: false, transparent: true, @@ -629,28 +632,28 @@ var tu = class extends Object3D { linewidth: 1, fog: false, toneMapped: false - }), s = i.clone(); + }), s = n.clone(); s.opacity = 0.15; - const a = i.clone(); + const a = n.clone(); a.opacity = 0.33; - const c = i.clone(); + const c = n.clone(); c.color.set(16711680); - const u = i.clone(); - u.color.set(65280); - const h = i.clone(); + const p = n.clone(); + p.color.set(65280); + const h = n.clone(); h.color.set(255); - const d = i.clone(); + const d = n.clone(); d.opacity = 0.25; const g = d.clone(); g.color.set(16776960); const w = d.clone(); w.color.set(65535); const _ = d.clone(); - _.color.set(16711935), i.clone().color.set(16776960); - const C = r.clone(); - C.color.set(16711680); - const I = r.clone(); - I.color.set(65280); + _.color.set(16711935), n.clone().color.set(16776960); + const P = r.clone(); + P.color.set(16711680); + const I2 = r.clone(); + I2.color.set(65280); const S = r.clone(); S.color.set(255); const R = r.clone(); @@ -661,8 +664,8 @@ var tu = class extends Object3D { F.color.set(16776960); const V = r.clone(); V.color.set(7895160); - const D = F.clone(); - D.opacity = 0.25; + const D2 = F.clone(); + D2.opacity = 0.25; const Y = new CylinderGeometry(0, 0.05, 0.2, 12, 1, false), G = new BoxGeometry(0.125, 0.125, 0.125), N = new BufferGeometry(); N.setAttribute("position", new Float32BufferAttribute([0, 0, 0, 1, 0, 0], 3)); const O = (fe, ae) => { @@ -674,8 +677,8 @@ var tu = class extends Object3D { const fe = new BufferGeometry(); return fe.setAttribute("position", new Float32BufferAttribute([0, 0, 0, 1, 1, 1], 3)), fe; }, K = { - X: [[new Mesh(Y, c), [1, 0, 0], [0, 0, -Math.PI / 2], null, "fwd"], [new Mesh(Y, c), [1, 0, 0], [0, 0, Math.PI / 2], null, "bwd"], [new Line(N, C)]], - Y: [[new Mesh(Y, u), [0, 1, 0], null, null, "fwd"], [new Mesh(Y, u), [0, 1, 0], [Math.PI, 0, 0], null, "bwd"], [new Line(N, I), null, [0, 0, Math.PI / 2]]], + X: [[new Mesh(Y, c), [1, 0, 0], [0, 0, -Math.PI / 2], null, "fwd"], [new Mesh(Y, c), [1, 0, 0], [0, 0, Math.PI / 2], null, "bwd"], [new Line(N, P)]], + Y: [[new Mesh(Y, p), [0, 1, 0], null, null, "fwd"], [new Mesh(Y, p), [0, 1, 0], [Math.PI, 0, 0], null, "bwd"], [new Line(N, I2), null, [0, 0, Math.PI / 2]]], Z: [[new Mesh(Y, h), [0, 0, 1], [Math.PI / 2, 0, 0], null, "fwd"], [new Mesh(Y, h), [0, 0, 1], [-Math.PI / 2, 0, 0], null, "bwd"], [new Line(N, S), null, [0, -Math.PI / 2, 0]]], XYZ: [[new Mesh(new OctahedronGeometry(0.1, 0), d.clone()), [0, 0, 0], [0, 0, 0]]], XY: [[new Mesh(new PlaneGeometry(0.295, 0.295), g.clone()), [0.15, 0.15, 0]], [new Line(N, F), [0.18, 0.3, 0], null, [0.125, 1, 1]], [new Line(N, F), [0.3, 0.18, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]], @@ -689,7 +692,7 @@ var tu = class extends Object3D { XY: [[new Mesh(new PlaneGeometry(0.4, 0.4), s), [0.2, 0.2, 0]]], YZ: [[new Mesh(new PlaneGeometry(0.4, 0.4), s), [0, 0.2, 0.2], [0, Math.PI / 2, 0]]], XZ: [[new Mesh(new PlaneGeometry(0.4, 0.4), s), [0.2, 0, 0.2], [-Math.PI / 2, 0, 0]]] - }, ue = { + }, pe = { START: [[new Mesh(new OctahedronGeometry(0.01, 2), a), null, null, null, "helper"]], END: [[new Mesh(new OctahedronGeometry(0.01, 2), a), null, null, null, "helper"]], DELTA: [[new Line(H(), a), null, null, null, "helper"]], @@ -697,10 +700,10 @@ var tu = class extends Object3D { Y: [[new Line(N, a.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], "helper"]], Z: [[new Line(N, a.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]] }, ge = { - X: [[new Line(O(1, 0.5), C)], [new Mesh(new OctahedronGeometry(0.04, 0), c), [0, 0, 0.99], null, [1, 3, 1]]], - Y: [[new Line(O(1, 0.5), I), null, [0, 0, -Math.PI / 2]], [new Mesh(new OctahedronGeometry(0.04, 0), u), [0, 0, 0.99], null, [3, 1, 1]]], + X: [[new Line(O(1, 0.5), P)], [new Mesh(new OctahedronGeometry(0.04, 0), c), [0, 0, 0.99], null, [1, 3, 1]]], + Y: [[new Line(O(1, 0.5), I2), null, [0, 0, -Math.PI / 2]], [new Mesh(new OctahedronGeometry(0.04, 0), p), [0, 0, 0.99], null, [3, 1, 1]]], Z: [[new Line(O(1, 0.5), S), null, [0, Math.PI / 2, 0]], [new Mesh(new OctahedronGeometry(0.04, 0), h), [0.99, 0, 0], null, [1, 3, 1]]], - E: [[new Line(O(1.25, 1), D), null, [0, Math.PI / 2, 0]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D), [1.17, 0, 0], [0, 0, -Math.PI / 2], [1, 1, 1e-3]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D), [-1.17, 0, 0], [0, 0, Math.PI / 2], [1, 1, 1e-3]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D), [0, -1.17, 0], [Math.PI, 0, 0], [1, 1, 1e-3]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D), [0, 1.17, 0], [0, 0, 0], [1, 1, 1e-3]]], + E: [[new Line(O(1.25, 1), D2), null, [0, Math.PI / 2, 0]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D2), [1.17, 0, 0], [0, 0, -Math.PI / 2], [1, 1, 1e-3]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D2), [-1.17, 0, 0], [0, 0, Math.PI / 2], [1, 1, 1e-3]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D2), [0, -1.17, 0], [Math.PI, 0, 0], [1, 1, 1e-3]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), D2), [0, 1.17, 0], [0, 0, 0], [1, 1, 1e-3]]], XYZE: [[new Line(O(1, 1), V), null, [0, Math.PI / 2, 0]]] }, ce = { AXIS: [[new Line(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]] @@ -711,8 +714,8 @@ var tu = class extends Object3D { E: [[new Mesh(new TorusGeometry(1.25, 0.1, 2, 24), s)]], XYZE: [[new Mesh(new SphereGeometry(0.7, 10, 8), s)]] }, he = { - X: [[new Mesh(G, c), [0.8, 0, 0], [0, 0, -Math.PI / 2]], [new Line(N, C), null, null, [0.8, 1, 1]]], - Y: [[new Mesh(G, u), [0, 0.8, 0]], [new Line(N, I), null, [0, 0, Math.PI / 2], [0.8, 1, 1]]], + X: [[new Mesh(G, c), [0.8, 0, 0], [0, 0, -Math.PI / 2]], [new Line(N, P), null, null, [0.8, 1, 1]]], + Y: [[new Mesh(G, p), [0, 0.8, 0]], [new Line(N, I2), null, [0, 0, Math.PI / 2], [0.8, 1, 1]]], Z: [[new Mesh(G, h), [0, 0, 0.8], [Math.PI / 2, 0, 0]], [new Line(N, S), null, [0, -Math.PI / 2, 0], [0.8, 1, 1]]], XY: [[new Mesh(G, g), [0.85, 0.85, 0], null, [2, 2, 0.2]], [new Line(N, F), [0.855, 0.98, 0], null, [0.125, 1, 1]], [new Line(N, F), [0.98, 0.855, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]], YZ: [[new Mesh(G, w), [0, 0.85, 0.85], null, [0.2, 2, 2]], [new Line(N, R), [0, 0.855, 0.98], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new Line(N, R), [0, 0.98, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]], @@ -738,18 +741,18 @@ var tu = class extends Object3D { const ae = new Object3D(); for (let ne in fe) for (let be = fe[ne].length; be--; ) { - const M = fe[ne][be][0].clone(), le = fe[ne][be][1], Ve = fe[ne][be][2], Ne = fe[ne][be][3], we2 = fe[ne][be][4]; - M.name = ne, M.tag = we2, le && M.position.set(le[0], le[1], le[2]), Ve && M.rotation.set(Ve[0], Ve[1], Ve[2]), Ne && M.scale.set(Ne[0], Ne[1], Ne[2]), M.updateMatrix(); - const it = M.geometry.clone(); - it.applyMatrix4(M.matrix), M.geometry = it, M.renderOrder = 1 / 0, M.position.set(0, 0, 0), M.rotation.set(0, 0, 0), M.scale.set(1, 1, 1), ae.add(M); + const M = fe[ne][be][0].clone(), le = fe[ne][be][1], Ve = fe[ne][be][2], Be = fe[ne][be][3], we = fe[ne][be][4]; + M.name = ne, M.tag = we, le && M.position.set(le[0], le[1], le[2]), Ve && M.rotation.set(Ve[0], Ve[1], Ve[2]), Be && M.scale.set(Be[0], Be[1], Be[2]), M.updateMatrix(); + const st = M.geometry.clone(); + st.applyMatrix4(M.matrix), M.geometry = st, M.renderOrder = 1 / 0, M.position.set(0, 0, 0), M.rotation.set(0, 0, 0), M.scale.set(1, 1, 1), ae.add(M); } return ae; }; - this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = Pe(K)), this.add(this.gizmo.rotate = Pe(ge)), this.add(this.gizmo.scale = Pe(he)), this.add(this.picker.translate = Pe(q)), this.add(this.picker.rotate = Pe(me)), this.add(this.picker.scale = Pe(ee)), this.add(this.helper.translate = Pe(ue)), this.add(this.helper.rotate = Pe(ce)), this.add(this.helper.scale = Pe(X)), this.picker.translate.visible = false, this.picker.rotate.visible = false, this.picker.scale.visible = false; + this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = Pe(K)), this.add(this.gizmo.rotate = Pe(ge)), this.add(this.gizmo.scale = Pe(he)), this.add(this.picker.translate = Pe(q)), this.add(this.picker.rotate = Pe(me)), this.add(this.picker.scale = Pe(ee)), this.add(this.helper.translate = Pe(pe)), this.add(this.helper.rotate = Pe(ce)), this.add(this.helper.scale = Pe(X)), this.picker.translate.visible = false, this.picker.rotate.visible = false, this.picker.scale.visible = false; } // updateMatrixWorld will update transformations and appearance of individual handles }; -var nu = class extends Mesh { +var lp = class extends Mesh { constructor() { super(new PlaneGeometry(1e5, 1e5, 2, 2), new MeshBasicMaterial({ visible: false, @@ -758,9 +761,9 @@ var nu = class extends Mesh { transparent: true, opacity: 0.1, toneMapped: false - })), T(this, "isTransformControlsPlane", true), T(this, "type", "TransformControlsPlane"), T(this, "unitX", new Vector3(1, 0, 0)), T(this, "unitY", new Vector3(0, 1, 0)), T(this, "unitZ", new Vector3(0, 0, 1)), T(this, "tempVector", new Vector3()), T(this, "dirVector", new Vector3()), T(this, "alignVector", new Vector3()), T(this, "tempMatrix", new Matrix4()), T(this, "identityQuaternion", new Quaternion()), T(this, "cameraQuaternion", new Quaternion()), T(this, "worldPosition", new Vector3()), T(this, "worldQuaternion", new Quaternion()), T(this, "eye", new Vector3()), T(this, "axis", null), T(this, "mode", "translate"), T(this, "space", "world"), T(this, "updateMatrixWorld", () => { - let i = this.space; - switch (this.position.copy(this.worldPosition), this.mode === "scale" && (i = "local"), this.unitX.set(1, 0, 0).applyQuaternion(i === "local" ? this.worldQuaternion : this.identityQuaternion), this.unitY.set(0, 1, 0).applyQuaternion(i === "local" ? this.worldQuaternion : this.identityQuaternion), this.unitZ.set(0, 0, 1).applyQuaternion(i === "local" ? this.worldQuaternion : this.identityQuaternion), this.alignVector.copy(this.unitY), this.mode) { + })), C(this, "isTransformControlsPlane", true), C(this, "type", "TransformControlsPlane"), C(this, "unitX", new Vector3(1, 0, 0)), C(this, "unitY", new Vector3(0, 1, 0)), C(this, "unitZ", new Vector3(0, 0, 1)), C(this, "tempVector", new Vector3()), C(this, "dirVector", new Vector3()), C(this, "alignVector", new Vector3()), C(this, "tempMatrix", new Matrix4()), C(this, "identityQuaternion", new Quaternion()), C(this, "cameraQuaternion", new Quaternion()), C(this, "worldPosition", new Vector3()), C(this, "worldQuaternion", new Quaternion()), C(this, "eye", new Vector3()), C(this, "axis", null), C(this, "mode", "translate"), C(this, "space", "world"), C(this, "updateMatrixWorld", () => { + let n = this.space; + switch (this.position.copy(this.worldPosition), this.mode === "scale" && (n = "local"), this.unitX.set(1, 0, 0).applyQuaternion(n === "local" ? this.worldQuaternion : this.identityQuaternion), this.unitY.set(0, 1, 0).applyQuaternion(n === "local" ? this.worldQuaternion : this.identityQuaternion), this.unitZ.set(0, 0, 1).applyQuaternion(n === "local" ? this.worldQuaternion : this.identityQuaternion), this.alignVector.copy(this.unitY), this.mode) { case "translate": case "scale": switch (this.axis) { @@ -796,8 +799,48 @@ var nu = class extends Mesh { }); } }; -var oa = (b, i) => (b % i + i) % i; -var iu = class extends EventDispatcher { +var ui = new Euler(0, 0, 0, "YXZ"); +var pi = new Vector3(); +var cp = { + type: "change" +}; +var up = { + type: "lock" +}; +var pp = { + type: "unlock" +}; +var ua = Math.PI / 2; +var hp = class extends EventDispatcher { + constructor(n, r) { + super(), C(this, "camera", void 0), C(this, "domElement", void 0), C(this, "isLocked", void 0), C(this, "minPolarAngle", void 0), C(this, "maxPolarAngle", void 0), C(this, "pointerSpeed", void 0), C(this, "onMouseMove", (s) => { + if (!this.domElement || this.isLocked === false) + return; + const a = s.movementX || s.mozMovementX || s.webkitMovementX || 0, c = s.movementY || s.mozMovementY || s.webkitMovementY || 0; + ui.setFromQuaternion(this.camera.quaternion), ui.y -= a * 2e-3 * this.pointerSpeed, ui.x -= c * 2e-3 * this.pointerSpeed, ui.x = Math.max(ua - this.maxPolarAngle, Math.min(ua - this.minPolarAngle, ui.x)), this.camera.quaternion.setFromEuler(ui), this.dispatchEvent(cp); + }), C(this, "onPointerlockChange", () => { + this.domElement && (this.domElement.ownerDocument.pointerLockElement === this.domElement ? (this.dispatchEvent(up), this.isLocked = true) : (this.dispatchEvent(pp), this.isLocked = false)); + }), C(this, "onPointerlockError", () => { + console.error("THREE.PointerLockControls: Unable to use Pointer Lock API"); + }), C(this, "connect", (s) => { + this.domElement = s || this.domElement, this.domElement && (this.domElement.ownerDocument.addEventListener("mousemove", this.onMouseMove), this.domElement.ownerDocument.addEventListener("pointerlockchange", this.onPointerlockChange), this.domElement.ownerDocument.addEventListener("pointerlockerror", this.onPointerlockError)); + }), C(this, "disconnect", () => { + this.domElement && (this.domElement.ownerDocument.removeEventListener("mousemove", this.onMouseMove), this.domElement.ownerDocument.removeEventListener("pointerlockchange", this.onPointerlockChange), this.domElement.ownerDocument.removeEventListener("pointerlockerror", this.onPointerlockError)); + }), C(this, "dispose", () => { + this.disconnect(); + }), C(this, "getObject", () => this.camera), C(this, "direction", new Vector3(0, 0, -1)), C(this, "getDirection", (s) => s.copy(this.direction).applyQuaternion(this.camera.quaternion)), C(this, "moveForward", (s) => { + pi.setFromMatrixColumn(this.camera.matrix, 0), pi.crossVectors(this.camera.up, pi), this.camera.position.addScaledVector(pi, s); + }), C(this, "moveRight", (s) => { + pi.setFromMatrixColumn(this.camera.matrix, 0), this.camera.position.addScaledVector(pi, s); + }), C(this, "lock", () => { + this.domElement && this.domElement.requestPointerLock(); + }), C(this, "unlock", () => { + this.domElement && this.domElement.ownerDocument.exitPointerLock(); + }), this.camera = n, this.domElement = r, this.isLocked = false, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.pointerSpeed = 1, r && this.connect(r); + } +}; +var pa = (v, n) => (v % n + n) % n; +var dp = class extends EventDispatcher { // Set to false to disable this control // "target" sets the location of focus, where the object orbits around // How far you can dolly in and out ( PerspectiveCamera only ) @@ -826,54 +869,54 @@ var iu = class extends EventDispatcher { // Mouse buttons // Touch fingers // the target DOM element for key events - constructor(i, r) { - super(), T(this, "object", void 0), T(this, "domElement", void 0), T(this, "enabled", true), T(this, "target", new Vector3()), T(this, "minDistance", 0), T(this, "maxDistance", 1 / 0), T(this, "minZoom", 0), T(this, "maxZoom", 1 / 0), T(this, "minPolarAngle", 0), T(this, "maxPolarAngle", Math.PI), T(this, "minAzimuthAngle", -1 / 0), T(this, "maxAzimuthAngle", 1 / 0), T(this, "enableDamping", false), T(this, "dampingFactor", 0.05), T(this, "enableZoom", true), T(this, "zoomSpeed", 1), T(this, "enableRotate", true), T(this, "rotateSpeed", 1), T(this, "enablePan", true), T(this, "panSpeed", 1), T(this, "screenSpacePanning", true), T(this, "keyPanSpeed", 7), T(this, "autoRotate", false), T(this, "autoRotateSpeed", 2), T(this, "reverseOrbit", false), T(this, "keys", { + constructor(n, r) { + super(), C(this, "object", void 0), C(this, "domElement", void 0), C(this, "enabled", true), C(this, "target", new Vector3()), C(this, "minDistance", 0), C(this, "maxDistance", 1 / 0), C(this, "minZoom", 0), C(this, "maxZoom", 1 / 0), C(this, "minPolarAngle", 0), C(this, "maxPolarAngle", Math.PI), C(this, "minAzimuthAngle", -1 / 0), C(this, "maxAzimuthAngle", 1 / 0), C(this, "enableDamping", false), C(this, "dampingFactor", 0.05), C(this, "enableZoom", true), C(this, "zoomSpeed", 1), C(this, "enableRotate", true), C(this, "rotateSpeed", 1), C(this, "enablePan", true), C(this, "panSpeed", 1), C(this, "screenSpacePanning", true), C(this, "keyPanSpeed", 7), C(this, "autoRotate", false), C(this, "autoRotateSpeed", 2), C(this, "reverseOrbit", false), C(this, "keys", { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" - }), T(this, "mouseButtons", { + }), C(this, "mouseButtons", { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN - }), T(this, "touches", { + }), C(this, "touches", { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN - }), T(this, "target0", void 0), T(this, "position0", void 0), T(this, "zoom0", void 0), T(this, "_domElementKeyEvents", null), T(this, "getPolarAngle", void 0), T(this, "getAzimuthalAngle", void 0), T(this, "setPolarAngle", void 0), T(this, "setAzimuthalAngle", void 0), T(this, "getDistance", void 0), T(this, "listenToKeyEvents", void 0), T(this, "saveState", void 0), T(this, "reset", void 0), T(this, "update", void 0), T(this, "connect", void 0), T(this, "dispose", void 0), this.object = i, this.domElement = r, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object instanceof PerspectiveCamera ? this.object.zoom : 1, this.getPolarAngle = () => w.phi, this.getAzimuthalAngle = () => w.theta, this.setPolarAngle = (A2) => { - let U = oa(A2, 2 * Math.PI), W = w.phi; + }), C(this, "target0", void 0), C(this, "position0", void 0), C(this, "zoom0", void 0), C(this, "_domElementKeyEvents", null), C(this, "getPolarAngle", void 0), C(this, "getAzimuthalAngle", void 0), C(this, "setPolarAngle", void 0), C(this, "setAzimuthalAngle", void 0), C(this, "getDistance", void 0), C(this, "listenToKeyEvents", void 0), C(this, "saveState", void 0), C(this, "reset", void 0), C(this, "update", void 0), C(this, "connect", void 0), C(this, "dispose", void 0), this.object = n, this.domElement = r, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object instanceof PerspectiveCamera ? this.object.zoom : 1, this.getPolarAngle = () => w.phi, this.getAzimuthalAngle = () => w.theta, this.setPolarAngle = (L) => { + let U = pa(L, 2 * Math.PI), W = w.phi; W < 0 && (W += 2 * Math.PI), U < 0 && (U += 2 * Math.PI); let ie = Math.abs(U - W); 2 * Math.PI - ie < ie && (U < W ? U += 2 * Math.PI : W += 2 * Math.PI), _.phi = U - W, s.update(); - }, this.setAzimuthalAngle = (A2) => { - let U = oa(A2, 2 * Math.PI), W = w.theta; + }, this.setAzimuthalAngle = (L) => { + let U = pa(L, 2 * Math.PI), W = w.theta; W < 0 && (W += 2 * Math.PI), U < 0 && (U += 2 * Math.PI); let ie = Math.abs(U - W); 2 * Math.PI - ie < ie && (U < W ? U += 2 * Math.PI : W += 2 * Math.PI), _.theta = U - W, s.update(); - }, this.getDistance = () => s.object.position.distanceTo(s.target), this.listenToKeyEvents = (A2) => { - A2.addEventListener("keydown", yt), this._domElementKeyEvents = A2; + }, this.getDistance = () => s.object.position.distanceTo(s.target), this.listenToKeyEvents = (L) => { + L.addEventListener("keydown", xt), this._domElementKeyEvents = L; }, this.saveState = () => { s.target0.copy(s.target), s.position0.copy(s.object.position), s.zoom0 = s.object instanceof PerspectiveCamera ? s.object.zoom : 1; }, this.reset = () => { s.target.copy(s.target0), s.object.position.copy(s.position0), s.object instanceof PerspectiveCamera && (s.object.zoom = s.zoom0, s.object.updateProjectionMatrix()), s.dispatchEvent(a), s.update(), d = h.NONE; }, this.update = (() => { - const A2 = new Vector3(), U = new Quaternion().setFromUnitVectors(i.up, new Vector3(0, 1, 0)), W = U.clone().invert(), ie = new Vector3(), ye = new Quaternion(), De = 2 * Math.PI; + const L = new Vector3(), U = new Quaternion().setFromUnitVectors(n.up, new Vector3(0, 1, 0)), W = U.clone().invert(), ie = new Vector3(), ye = new Quaternion(), De = 2 * Math.PI; return function() { - const pn = s.object.position; - A2.copy(pn).sub(s.target), A2.applyQuaternion(U), w.setFromVector3(A2), s.autoRotate && d === h.NONE && ue(K()), s.enableDamping ? (w.theta += _.theta * s.dampingFactor, w.phi += _.phi * s.dampingFactor) : (w.theta += _.theta, w.phi += _.phi); + const hn = s.object.position; + L.copy(hn).sub(s.target), L.applyQuaternion(U), w.setFromVector3(L), s.autoRotate && d === h.NONE && pe(K()), s.enableDamping ? (w.theta += _.theta * s.dampingFactor, w.phi += _.phi * s.dampingFactor) : (w.theta += _.theta, w.phi += _.phi); let Ue = s.minAzimuthAngle, Ge = s.maxAzimuthAngle; - return isFinite(Ue) && isFinite(Ge) && (Ue < -Math.PI ? Ue += De : Ue > Math.PI && (Ue -= De), Ge < -Math.PI ? Ge += De : Ge > Math.PI && (Ge -= De), Ue <= Ge ? w.theta = Math.max(Ue, Math.min(Ge, w.theta)) : w.theta = w.theta > (Ue + Ge) / 2 ? Math.max(Ue, w.theta) : Math.min(Ge, w.theta)), w.phi = Math.max(s.minPolarAngle, Math.min(s.maxPolarAngle, w.phi)), w.makeSafe(), w.radius *= y, w.radius = Math.max(s.minDistance, Math.min(s.maxDistance, w.radius)), s.enableDamping === true ? s.target.addScaledVector(C, s.dampingFactor) : s.target.add(C), A2.setFromSpherical(w), A2.applyQuaternion(W), pn.copy(s.target).add(A2), s.object.lookAt(s.target), s.enableDamping === true ? (_.theta *= 1 - s.dampingFactor, _.phi *= 1 - s.dampingFactor, C.multiplyScalar(1 - s.dampingFactor)) : (_.set(0, 0, 0), C.set(0, 0, 0)), y = 1, I || ie.distanceToSquared(s.object.position) > g || 8 * (1 - ye.dot(s.object.quaternion)) > g ? (s.dispatchEvent(a), ie.copy(s.object.position), ye.copy(s.object.quaternion), I = false, true) : false; + return isFinite(Ue) && isFinite(Ge) && (Ue < -Math.PI ? Ue += De : Ue > Math.PI && (Ue -= De), Ge < -Math.PI ? Ge += De : Ge > Math.PI && (Ge -= De), Ue <= Ge ? w.theta = Math.max(Ue, Math.min(Ge, w.theta)) : w.theta = w.theta > (Ue + Ge) / 2 ? Math.max(Ue, w.theta) : Math.min(Ge, w.theta)), w.phi = Math.max(s.minPolarAngle, Math.min(s.maxPolarAngle, w.phi)), w.makeSafe(), w.radius *= y, w.radius = Math.max(s.minDistance, Math.min(s.maxDistance, w.radius)), s.enableDamping === true ? s.target.addScaledVector(P, s.dampingFactor) : s.target.add(P), L.setFromSpherical(w), L.applyQuaternion(W), hn.copy(s.target).add(L), s.object.lookAt(s.target), s.enableDamping === true ? (_.theta *= 1 - s.dampingFactor, _.phi *= 1 - s.dampingFactor, P.multiplyScalar(1 - s.dampingFactor)) : (_.set(0, 0, 0), P.set(0, 0, 0)), y = 1, I2 || ie.distanceToSquared(s.object.position) > g || 8 * (1 - ye.dot(s.object.quaternion)) > g ? (s.dispatchEvent(a), ie.copy(s.object.position), ye.copy(s.object.quaternion), I2 = false, true) : false; }; - })(), this.connect = (A2) => { - A2 === document && console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'), s.domElement = A2, s.domElement.style.touchAction = "none", s.domElement.addEventListener("contextmenu", cn), s.domElement.addEventListener("pointerdown", st), s.domElement.addEventListener("pointercancel", zn), s.domElement.addEventListener("wheel", Gn); + })(), this.connect = (L) => { + L === document && console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'), s.domElement = L, s.domElement.style.touchAction = "none", s.domElement.addEventListener("contextmenu", pn), s.domElement.addEventListener("pointerdown", rt), s.domElement.addEventListener("pointercancel", Un), s.domElement.addEventListener("wheel", Hn); }, this.dispose = () => { - var A2, U, W, ie, ye, De; - (A2 = s.domElement) === null || A2 === void 0 || A2.removeEventListener("contextmenu", cn), (U = s.domElement) === null || U === void 0 || U.removeEventListener("pointerdown", st), (W = s.domElement) === null || W === void 0 || W.removeEventListener("pointercancel", zn), (ie = s.domElement) === null || ie === void 0 || ie.removeEventListener("wheel", Gn), (ye = s.domElement) === null || ye === void 0 || ye.ownerDocument.removeEventListener("pointermove", ln), (De = s.domElement) === null || De === void 0 || De.ownerDocument.removeEventListener("pointerup", mt), s._domElementKeyEvents !== null && s._domElementKeyEvents.removeEventListener("keydown", yt); + var L, U, W, ie, ye, De; + (L = s.domElement) === null || L === void 0 || L.removeEventListener("contextmenu", pn), (U = s.domElement) === null || U === void 0 || U.removeEventListener("pointerdown", rt), (W = s.domElement) === null || W === void 0 || W.removeEventListener("pointercancel", Un), (ie = s.domElement) === null || ie === void 0 || ie.removeEventListener("wheel", Hn), (ye = s.domElement) === null || ye === void 0 || ye.ownerDocument.removeEventListener("pointermove", un), (De = s.domElement) === null || De === void 0 || De.ownerDocument.removeEventListener("pointerup", ft), s._domElementKeyEvents !== null && s._domElementKeyEvents.removeEventListener("keydown", xt); }; const s = this, a = { type: "change" }, c = { type: "start" - }, u = { + }, p = { type: "end" }, h = { NONE: -1, @@ -888,76 +931,76 @@ var iu = class extends EventDispatcher { let d = h.NONE; const g = 1e-6, w = new Spherical(), _ = new Spherical(); let y = 1; - const C = new Vector3(); - let I = false; - const S = new Vector2(), R = new Vector2(), j = new Vector2(), F = new Vector2(), V = new Vector2(), D = new Vector2(), Y = new Vector2(), G = new Vector2(), N = new Vector2(), O = [], H = {}; + const P = new Vector3(); + let I2 = false; + const S = new Vector2(), R = new Vector2(), j = new Vector2(), F = new Vector2(), V = new Vector2(), D2 = new Vector2(), Y = new Vector2(), G = new Vector2(), N = new Vector2(), O = [], H = {}; function K() { return 2 * Math.PI / 60 / 60 * s.autoRotateSpeed; } function q() { return Math.pow(0.95, s.zoomSpeed); } - function ue(A2) { - s.reverseOrbit ? _.theta += A2 : _.theta -= A2; + function pe(L) { + s.reverseOrbit ? _.theta += L : _.theta -= L; } - function ge(A2) { - s.reverseOrbit ? _.phi += A2 : _.phi -= A2; + function ge(L) { + s.reverseOrbit ? _.phi += L : _.phi -= L; } const ce = (() => { - const A2 = new Vector3(); + const L = new Vector3(); return function(W, ie) { - A2.setFromMatrixColumn(ie, 0), A2.multiplyScalar(-W), C.add(A2); + L.setFromMatrixColumn(ie, 0), L.multiplyScalar(-W), P.add(L); }; })(), me = (() => { - const A2 = new Vector3(); + const L = new Vector3(); return function(W, ie) { - s.screenSpacePanning === true ? A2.setFromMatrixColumn(ie, 1) : (A2.setFromMatrixColumn(ie, 0), A2.crossVectors(s.object.up, A2)), A2.multiplyScalar(W), C.add(A2); + s.screenSpacePanning === true ? L.setFromMatrixColumn(ie, 1) : (L.setFromMatrixColumn(ie, 0), L.crossVectors(s.object.up, L)), L.multiplyScalar(W), P.add(L); }; })(), he = (() => { - const A2 = new Vector3(); + const L = new Vector3(); return function(W, ie) { const ye = s.domElement; if (ye && s.object instanceof PerspectiveCamera && s.object.isPerspectiveCamera) { const De = s.object.position; - A2.copy(De).sub(s.target); - let Ut = A2.length(); - Ut *= Math.tan(s.object.fov / 2 * Math.PI / 180), ce(2 * W * Ut / ye.clientHeight, s.object.matrix), me(2 * ie * Ut / ye.clientHeight, s.object.matrix); + L.copy(De).sub(s.target); + let Ht = L.length(); + Ht *= Math.tan(s.object.fov / 2 * Math.PI / 180), ce(2 * W * Ht / ye.clientHeight, s.object.matrix), me(2 * ie * Ht / ye.clientHeight, s.object.matrix); } else ye && s.object instanceof OrthographicCamera && s.object.isOrthographicCamera ? (ce(W * (s.object.right - s.object.left) / s.object.zoom / ye.clientWidth, s.object.matrix), me(ie * (s.object.top - s.object.bottom) / s.object.zoom / ye.clientHeight, s.object.matrix)) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."), s.enablePan = false); }; })(); - function ee(A2) { - s.object instanceof PerspectiveCamera && s.object.isPerspectiveCamera ? y /= A2 : s.object instanceof OrthographicCamera && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom * A2)), s.object.updateProjectionMatrix(), I = true) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), s.enableZoom = false); + function ee(L) { + s.object instanceof PerspectiveCamera && s.object.isPerspectiveCamera ? y /= L : s.object instanceof OrthographicCamera && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom * L)), s.object.updateProjectionMatrix(), I2 = true) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), s.enableZoom = false); } - function X(A2) { - s.object instanceof PerspectiveCamera && s.object.isPerspectiveCamera ? y *= A2 : s.object instanceof OrthographicCamera && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom / A2)), s.object.updateProjectionMatrix(), I = true) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), s.enableZoom = false); + function X(L) { + s.object instanceof PerspectiveCamera && s.object.isPerspectiveCamera ? y *= L : s.object instanceof OrthographicCamera && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom / L)), s.object.updateProjectionMatrix(), I2 = true) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), s.enableZoom = false); } - function Pe(A2) { - S.set(A2.clientX, A2.clientY); + function Pe(L) { + S.set(L.clientX, L.clientY); } - function fe(A2) { - Y.set(A2.clientX, A2.clientY); + function fe(L) { + Y.set(L.clientX, L.clientY); } - function ae(A2) { - F.set(A2.clientX, A2.clientY); + function ae(L) { + F.set(L.clientX, L.clientY); } - function ne(A2) { - R.set(A2.clientX, A2.clientY), j.subVectors(R, S).multiplyScalar(s.rotateSpeed); + function ne(L) { + R.set(L.clientX, L.clientY), j.subVectors(R, S).multiplyScalar(s.rotateSpeed); const U = s.domElement; - U && (ue(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R), s.update(); + U && (pe(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R), s.update(); } - function be(A2) { - G.set(A2.clientX, A2.clientY), N.subVectors(G, Y), N.y > 0 ? ee(q()) : N.y < 0 && X(q()), Y.copy(G), s.update(); + function be(L) { + G.set(L.clientX, L.clientY), N.subVectors(G, Y), N.y > 0 ? ee(q()) : N.y < 0 && X(q()), Y.copy(G), s.update(); } - function M(A2) { - V.set(A2.clientX, A2.clientY), D.subVectors(V, F).multiplyScalar(s.panSpeed), he(D.x, D.y), F.copy(V), s.update(); + function M(L) { + V.set(L.clientX, L.clientY), D2.subVectors(V, F).multiplyScalar(s.panSpeed), he(D2.x, D2.y), F.copy(V), s.update(); } - function le(A2) { - A2.deltaY < 0 ? X(q()) : A2.deltaY > 0 && ee(q()), s.update(); + function le(L) { + L.deltaY < 0 ? X(q()) : L.deltaY > 0 && ee(q()), s.update(); } - function Ve(A2) { + function Ve(L) { let U = false; - switch (A2.code) { + switch (L.code) { case s.keys.UP: he(0, s.keyPanSpeed), U = true; break; @@ -971,89 +1014,89 @@ var iu = class extends EventDispatcher { he(-s.keyPanSpeed, 0), U = true; break; } - U && (A2.preventDefault(), s.update()); + U && (L.preventDefault(), s.update()); } - function Ne() { + function Be() { if (O.length == 1) S.set(O[0].pageX, O[0].pageY); else { - const A2 = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY); - S.set(A2, U); + const L = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY); + S.set(L, U); } } - function we2() { + function we() { if (O.length == 1) F.set(O[0].pageX, O[0].pageY); else { - const A2 = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY); - F.set(A2, U); + const L = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY); + F.set(L, U); } } - function it() { - const A2 = O[0].pageX - O[1].pageX, U = O[0].pageY - O[1].pageY, W = Math.sqrt(A2 * A2 + U * U); + function st() { + const L = O[0].pageX - O[1].pageX, U = O[0].pageY - O[1].pageY, W = Math.sqrt(L * L + U * U); Y.set(0, W); } - function Bn() { - s.enableZoom && it(), s.enablePan && we2(); + function jn() { + s.enableZoom && st(), s.enablePan && we(); } - function Xe() { - s.enableZoom && it(), s.enableRotate && Ne(); + function Ye() { + s.enableZoom && st(), s.enableRotate && Be(); } - function jn(A2) { + function zn(L) { if (O.length == 1) - R.set(A2.pageX, A2.pageY); + R.set(L.pageX, L.pageY); else { - const W = St(A2), ie = 0.5 * (A2.pageX + W.x), ye = 0.5 * (A2.pageY + W.y); + const W = Lt(L), ie = 0.5 * (L.pageX + W.x), ye = 0.5 * (L.pageY + W.y); R.set(ie, ye); } j.subVectors(R, S).multiplyScalar(s.rotateSpeed); const U = s.domElement; - U && (ue(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R); + U && (pe(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R); } - function an(A2) { + function cn(L) { if (O.length == 1) - V.set(A2.pageX, A2.pageY); + V.set(L.pageX, L.pageY); else { - const U = St(A2), W = 0.5 * (A2.pageX + U.x), ie = 0.5 * (A2.pageY + U.y); + const U = Lt(L), W = 0.5 * (L.pageX + U.x), ie = 0.5 * (L.pageY + U.y); V.set(W, ie); } - D.subVectors(V, F).multiplyScalar(s.panSpeed), he(D.x, D.y), F.copy(V); + D2.subVectors(V, F).multiplyScalar(s.panSpeed), he(D2.x, D2.y), F.copy(V); } - function dt(A2) { - const U = St(A2), W = A2.pageX - U.x, ie = A2.pageY - U.y, ye = Math.sqrt(W * W + ie * ie); + function mt(L) { + const U = Lt(L), W = L.pageX - U.x, ie = L.pageY - U.y, ye = Math.sqrt(W * W + ie * ie); G.set(0, ye), N.set(0, Math.pow(G.y / Y.y, s.zoomSpeed)), ee(N.y), Y.copy(G); } - function kt(A2) { - s.enableZoom && dt(A2), s.enablePan && an(A2); + function Mt(L) { + s.enableZoom && mt(L), s.enablePan && cn(L); } - function ze(A2) { - s.enableZoom && dt(A2), s.enableRotate && jn(A2); + function ze(L) { + s.enableZoom && mt(L), s.enableRotate && zn(L); } - function st(A2) { + function rt(L) { if (s.enabled !== false) { if (O.length === 0) { var U, W; - (U = s.domElement) === null || U === void 0 || U.ownerDocument.addEventListener("pointermove", ln), (W = s.domElement) === null || W === void 0 || W.ownerDocument.addEventListener("pointerup", mt); + (U = s.domElement) === null || U === void 0 || U.ownerDocument.addEventListener("pointermove", un), (W = s.domElement) === null || W === void 0 || W.ownerDocument.addEventListener("pointerup", ft); } - Kn(A2), A2.pointerType === "touch" ? Mt2(A2) : hi(A2); + $n(L), L.pointerType === "touch" ? St(L) : mi(L); } } - function ln(A2) { - s.enabled !== false && (A2.pointerType === "touch" ? Hn(A2) : Un(A2)); + function un(L) { + s.enabled !== false && (L.pointerType === "touch" ? Kn(L) : Gn(L)); } - function mt(A2) { - if (xt(A2), O.length === 0) { + function ft(L) { + if (Et2(L), O.length === 0) { var U, W, ie; - (U = s.domElement) === null || U === void 0 || U.releasePointerCapture(A2.pointerId), (W = s.domElement) === null || W === void 0 || W.ownerDocument.removeEventListener("pointermove", ln), (ie = s.domElement) === null || ie === void 0 || ie.ownerDocument.removeEventListener("pointerup", mt); + (U = s.domElement) === null || U === void 0 || U.releasePointerCapture(L.pointerId), (W = s.domElement) === null || W === void 0 || W.ownerDocument.removeEventListener("pointermove", un), (ie = s.domElement) === null || ie === void 0 || ie.ownerDocument.removeEventListener("pointerup", ft); } - s.dispatchEvent(u), d = h.NONE; + s.dispatchEvent(p), d = h.NONE; } - function zn(A2) { - xt(A2); + function Un(L) { + Et2(L); } - function hi(A2) { + function mi(L) { let U; - switch (A2.button) { + switch (L.button) { case 0: U = s.mouseButtons.LEFT; break; @@ -1070,28 +1113,28 @@ var iu = class extends EventDispatcher { case MOUSE.DOLLY: if (s.enableZoom === false) return; - fe(A2), d = h.DOLLY; + fe(L), d = h.DOLLY; break; case MOUSE.ROTATE: - if (A2.ctrlKey || A2.metaKey || A2.shiftKey) { + if (L.ctrlKey || L.metaKey || L.shiftKey) { if (s.enablePan === false) return; - ae(A2), d = h.PAN; + ae(L), d = h.PAN; } else { if (s.enableRotate === false) return; - Pe(A2), d = h.ROTATE; + Pe(L), d = h.ROTATE; } break; case MOUSE.PAN: - if (A2.ctrlKey || A2.metaKey || A2.shiftKey) { + if (L.ctrlKey || L.metaKey || L.shiftKey) { if (s.enableRotate === false) return; - Pe(A2), d = h.ROTATE; + Pe(L), d = h.ROTATE; } else { if (s.enablePan === false) return; - ae(A2), d = h.PAN; + ae(L), d = h.PAN; } break; default: @@ -1099,45 +1142,45 @@ var iu = class extends EventDispatcher { } d !== h.NONE && s.dispatchEvent(c); } - function Un(A2) { + function Gn(L) { if (s.enabled !== false) switch (d) { case h.ROTATE: if (s.enableRotate === false) return; - ne(A2); + ne(L); break; case h.DOLLY: if (s.enableZoom === false) return; - be(A2); + be(L); break; case h.PAN: if (s.enablePan === false) return; - M(A2); + M(L); break; } } - function Gn(A2) { - s.enabled === false || s.enableZoom === false || d !== h.NONE && d !== h.ROTATE || (A2.preventDefault(), s.dispatchEvent(c), le(A2), s.dispatchEvent(u)); + function Hn(L) { + s.enabled === false || s.enableZoom === false || d !== h.NONE && d !== h.ROTATE || (L.preventDefault(), s.dispatchEvent(c), le(L), s.dispatchEvent(p)); } - function yt(A2) { - s.enabled === false || s.enablePan === false || Ve(A2); + function xt(L) { + s.enabled === false || s.enablePan === false || Ve(L); } - function Mt2(A2) { - switch (ft(A2), O.length) { + function St(L) { + switch (vt(L), O.length) { case 1: switch (s.touches.ONE) { case TOUCH.ROTATE: if (s.enableRotate === false) return; - Ne(), d = h.TOUCH_ROTATE; + Be(), d = h.TOUCH_ROTATE; break; case TOUCH.PAN: if (s.enablePan === false) return; - we2(), d = h.TOUCH_PAN; + we(), d = h.TOUCH_PAN; break; default: d = h.NONE; @@ -1148,12 +1191,12 @@ var iu = class extends EventDispatcher { case TOUCH.DOLLY_PAN: if (s.enableZoom === false && s.enablePan === false) return; - Bn(), d = h.TOUCH_DOLLY_PAN; + jn(), d = h.TOUCH_DOLLY_PAN; break; case TOUCH.DOLLY_ROTATE: if (s.enableZoom === false && s.enableRotate === false) return; - Xe(), d = h.TOUCH_DOLLY_ROTATE; + Ye(), d = h.TOUCH_DOLLY_ROTATE; break; default: d = h.NONE; @@ -1164,141 +1207,141 @@ var iu = class extends EventDispatcher { } d !== h.NONE && s.dispatchEvent(c); } - function Hn(A2) { - switch (ft(A2), d) { + function Kn(L) { + switch (vt(L), d) { case h.TOUCH_ROTATE: if (s.enableRotate === false) return; - jn(A2), s.update(); + zn(L), s.update(); break; case h.TOUCH_PAN: if (s.enablePan === false) return; - an(A2), s.update(); + cn(L), s.update(); break; case h.TOUCH_DOLLY_PAN: if (s.enableZoom === false && s.enablePan === false) return; - kt(A2), s.update(); + Mt(L), s.update(); break; case h.TOUCH_DOLLY_ROTATE: if (s.enableZoom === false && s.enableRotate === false) return; - ze(A2), s.update(); + ze(L), s.update(); break; default: d = h.NONE; } } - function cn(A2) { - s.enabled !== false && A2.preventDefault(); + function pn(L) { + s.enabled !== false && L.preventDefault(); } - function Kn(A2) { - O.push(A2); + function $n(L) { + O.push(L); } - function xt(A2) { - delete H[A2.pointerId]; + function Et2(L) { + delete H[L.pointerId]; for (let U = 0; U < O.length; U++) - if (O[U].pointerId == A2.pointerId) { + if (O[U].pointerId == L.pointerId) { O.splice(U, 1); return; } } - function ft(A2) { - let U = H[A2.pointerId]; - U === void 0 && (U = new Vector2(), H[A2.pointerId] = U), U.set(A2.pageX, A2.pageY); + function vt(L) { + let U = H[L.pointerId]; + U === void 0 && (U = new Vector2(), H[L.pointerId] = U), U.set(L.pageX, L.pageY); } - function St(A2) { - const U = A2.pointerId === O[0].pointerId ? O[1] : O[0]; + function Lt(L) { + const U = L.pointerId === O[0].pointerId ? O[1] : O[0]; return H[U.pointerId]; } r !== void 0 && this.connect(r), this.update(); } }; -var su = class extends Loader { - constructor(i) { - super(i), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(r) { - return new cu(r); +var mp = class extends Loader { + constructor(n) { + super(n), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(r) { + return new _p(r); }), this.register(function(r) { - return new vu(r); + return new Tp(r); }), this.register(function(r) { - return new bu(r); + return new kp(r); }), this.register(function(r) { - return new uu(r); + return new yp(r); }), this.register(function(r) { - return new hu(r); + return new xp(r); }), this.register(function(r) { - return new du(r); + return new Ep(r); }), this.register(function(r) { - return new mu(r); + return new Cp(r); }), this.register(function(r) { - return new lu(r); + return new gp(r); }), this.register(function(r) { - return new fu(r); + return new Pp(r); }), this.register(function(r) { - return new pu(r); + return new wp(r); }), this.register(function(r) { - return new ou(r); + return new vp(r); }), this.register(function(r) { - return new gu(r); + return new Mp(r); }); } - load(i, r, s, a) { + load(n, r, s, a) { const c = this; - let u; - this.resourcePath !== "" ? u = this.resourcePath : this.path !== "" ? u = this.path : u = LoaderUtils.extractUrlBase(i), this.manager.itemStart(i); + let p; + this.resourcePath !== "" ? p = this.resourcePath : this.path !== "" ? p = this.path : p = LoaderUtils.extractUrlBase(n), this.manager.itemStart(n); const h = function(g) { - a ? a(g) : console.error(g), c.manager.itemError(i), c.manager.itemEnd(i); + a ? a(g) : console.error(g), c.manager.itemError(n), c.manager.itemEnd(n); }, d = new FileLoader(this.manager); - d.setPath(this.path), d.setResponseType("arraybuffer"), d.setRequestHeader(this.requestHeader), d.setWithCredentials(this.withCredentials), d.load(i, function(g) { + d.setPath(this.path), d.setResponseType("arraybuffer"), d.setRequestHeader(this.requestHeader), d.setWithCredentials(this.withCredentials), d.load(n, function(g) { try { - c.parse(g, u, function(w) { - r(w), c.manager.itemEnd(i); + c.parse(g, p, function(w) { + r(w), c.manager.itemEnd(n); }, h); } catch (w) { h(w); } }, s, h); } - setDRACOLoader(i) { - return this.dracoLoader = i, this; + setDRACOLoader(n) { + return this.dracoLoader = n, this; } setDDSLoader() { throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".'); } - setKTX2Loader(i) { - return this.ktx2Loader = i, this; + setKTX2Loader(n) { + return this.ktx2Loader = n, this; } - setMeshoptDecoder(i) { - return this.meshoptDecoder = i, this; + setMeshoptDecoder(n) { + return this.meshoptDecoder = n, this; } - register(i) { - return this.pluginCallbacks.indexOf(i) === -1 && this.pluginCallbacks.push(i), this; + register(n) { + return this.pluginCallbacks.indexOf(n) === -1 && this.pluginCallbacks.push(n), this; } - unregister(i) { - return this.pluginCallbacks.indexOf(i) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(i), 1), this; + unregister(n) { + return this.pluginCallbacks.indexOf(n) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(n), 1), this; } - parse(i, r, s, a) { + parse(n, r, s, a) { let c; - const u = {}, h = {}; - if (typeof i == "string") - c = i; - else if (LoaderUtils.decodeText(new Uint8Array(i, 0, 4)) === $a) { + const p = {}, h = {}; + if (typeof n == "string") + c = n; + else if (LoaderUtils.decodeText(new Uint8Array(n, 0, 4)) === Za) { try { - u[re.KHR_BINARY_GLTF] = new _u(i); + p[re.KHR_BINARY_GLTF] = new Sp(n); } catch (_) { a && a(_); return; } - c = u[re.KHR_BINARY_GLTF].content; + c = p[re.KHR_BINARY_GLTF].content; } else - c = LoaderUtils.decodeText(new Uint8Array(i)); + c = LoaderUtils.decodeText(new Uint8Array(n)); const d = JSON.parse(c); if (d.asset === void 0 || d.asset.version[0] < 2) { a && a(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")); return; } - const g = new Ru(d, { + const g = new Up(d, { path: r || this.resourcePath || "", crossOrigin: this.crossOrigin, requestHeader: this.requestHeader, @@ -1309,54 +1352,54 @@ var su = class extends Loader { g.fileLoader.setRequestHeader(this.requestHeader); for (let w = 0; w < this.pluginCallbacks.length; w++) { const _ = this.pluginCallbacks[w](g); - h[_.name] = _, u[_.name] = true; + h[_.name] = _, p[_.name] = true; } if (d.extensionsUsed) for (let w = 0; w < d.extensionsUsed.length; ++w) { const _ = d.extensionsUsed[w], y = d.extensionsRequired || []; switch (_) { case re.KHR_MATERIALS_UNLIT: - u[_] = new au(); + p[_] = new bp(); break; case re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: - u[_] = new xu(); + p[_] = new Rp(); break; case re.KHR_DRACO_MESH_COMPRESSION: - u[_] = new wu(d, this.dracoLoader); + p[_] = new Lp(d, this.dracoLoader); break; case re.KHR_TEXTURE_TRANSFORM: - u[_] = new yu(); + p[_] = new Ap(); break; case re.KHR_MESH_QUANTIZATION: - u[_] = new Eu(); + p[_] = new Ip(); break; default: y.indexOf(_) >= 0 && h[_] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + _ + '".'); } } - g.setExtensions(u), g.setPlugins(h), g.parse(s, a); + g.setExtensions(p), g.setPlugins(h), g.parse(s, a); } - parseAsync(i, r) { + parseAsync(n, r) { const s = this; return new Promise(function(a, c) { - s.parse(i, r, a, c); + s.parse(n, r, a, c); }); } }; -function ru() { - let b = {}; +function fp() { + let v = {}; return { - get: function(i) { - return b[i]; + get: function(n) { + return v[n]; }, - add: function(i, r) { - b[i] = r; + add: function(n, r) { + v[n] = r; }, - remove: function(i) { - delete b[i]; + remove: function(n) { + delete v[n]; }, removeAll: function() { - b = {}; + v = {}; } }; } @@ -1380,26 +1423,26 @@ var re = { EXT_TEXTURE_WEBP: "EXT_texture_webp", EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression" }; -var ou = class { - constructor(i) { - this.parser = i, this.name = re.KHR_LIGHTS_PUNCTUAL, this.cache = { +var vp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} }; } _markDefs() { - const i = this.parser, r = this.parser.json.nodes || []; + const n = this.parser, r = this.parser.json.nodes || []; for (let s = 0, a = r.length; s < a; s++) { const c = r[s]; - c.extensions && c.extensions[this.name] && c.extensions[this.name].light !== void 0 && i._addNodeRef(this.cache, c.extensions[this.name].light); + c.extensions && c.extensions[this.name] && c.extensions[this.name].light !== void 0 && n._addNodeRef(this.cache, c.extensions[this.name].light); } } - _loadLight(i) { - const r = this.parser, s = "light:" + i; + _loadLight(n) { + const r = this.parser, s = "light:" + n; let a = r.cache.get(s); if (a) return a; - const c = r.json, d = ((c.extensions && c.extensions[this.name] || {}).lights || [])[i]; + const c = r.json, d = ((c.extensions && c.extensions[this.name] || {}).lights || [])[n]; let g; const w = new Color(16777215); d.color !== void 0 && w.fromArray(d.color); @@ -1417,196 +1460,196 @@ var ou = class { default: throw new Error("THREE.GLTFLoader: Unexpected light type: " + d.type); } - return g.position.set(0, 0, 0), g.decay = 2, d.intensity !== void 0 && (g.intensity = d.intensity), g.name = r.createUniqueName(d.name || "light_" + i), a = Promise.resolve(g), r.cache.add(s, a), a; + return g.position.set(0, 0, 0), g.decay = 2, d.intensity !== void 0 && (g.intensity = d.intensity), g.name = r.createUniqueName(d.name || "light_" + n), a = Promise.resolve(g), r.cache.add(s, a), a; } - createNodeAttachment(i) { - const r = this, s = this.parser, c = s.json.nodes[i], h = (c.extensions && c.extensions[this.name] || {}).light; + createNodeAttachment(n) { + const r = this, s = this.parser, c = s.json.nodes[n], h = (c.extensions && c.extensions[this.name] || {}).light; return h === void 0 ? null : this._loadLight(h).then(function(d) { return s._getNodeRef(r.cache, h, d); }); } }; -var au = class { +var bp = class { constructor() { this.name = re.KHR_MATERIALS_UNLIT; } getMaterialType() { return MeshBasicMaterial; } - extendParams(i, r, s) { + extendParams(n, r, s) { const a = []; - i.color = new Color(1, 1, 1), i.opacity = 1; + n.color = new Color(1, 1, 1), n.opacity = 1; const c = r.pbrMetallicRoughness; if (c) { if (Array.isArray(c.baseColorFactor)) { - const u = c.baseColorFactor; - i.color.fromArray(u), i.opacity = u[3]; + const p = c.baseColorFactor; + n.color.fromArray(p), n.opacity = p[3]; } - c.baseColorTexture !== void 0 && a.push(s.assignTexture(i, "map", c.baseColorTexture, sRGBEncoding)); + c.baseColorTexture !== void 0 && a.push(s.assignTexture(n, "map", c.baseColorTexture, sRGBEncoding)); } return Promise.all(a); } }; -var lu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_EMISSIVE_STRENGTH; +var gp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_EMISSIVE_STRENGTH; } - extendMaterialParams(i, r) { - const a = this.parser.json.materials[i]; + extendMaterialParams(n, r) { + const a = this.parser.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); const c = a.extensions[this.name].emissiveStrength; return c !== void 0 && (r.emissiveIntensity = c), Promise.resolve(); } }; -var cu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_CLEARCOAT; +var _p = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_CLEARCOAT; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const s = this.parser, a = s.json.materials[i]; + extendMaterialParams(n, r) { + const s = this.parser, a = s.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); - const c = [], u = a.extensions[this.name]; - if (u.clearcoatFactor !== void 0 && (r.clearcoat = u.clearcoatFactor), u.clearcoatTexture !== void 0 && c.push(s.assignTexture(r, "clearcoatMap", u.clearcoatTexture)), u.clearcoatRoughnessFactor !== void 0 && (r.clearcoatRoughness = u.clearcoatRoughnessFactor), u.clearcoatRoughnessTexture !== void 0 && c.push(s.assignTexture(r, "clearcoatRoughnessMap", u.clearcoatRoughnessTexture)), u.clearcoatNormalTexture !== void 0 && (c.push(s.assignTexture(r, "clearcoatNormalMap", u.clearcoatNormalTexture)), u.clearcoatNormalTexture.scale !== void 0)) { - const h = u.clearcoatNormalTexture.scale; + const c = [], p = a.extensions[this.name]; + if (p.clearcoatFactor !== void 0 && (r.clearcoat = p.clearcoatFactor), p.clearcoatTexture !== void 0 && c.push(s.assignTexture(r, "clearcoatMap", p.clearcoatTexture)), p.clearcoatRoughnessFactor !== void 0 && (r.clearcoatRoughness = p.clearcoatRoughnessFactor), p.clearcoatRoughnessTexture !== void 0 && c.push(s.assignTexture(r, "clearcoatRoughnessMap", p.clearcoatRoughnessTexture)), p.clearcoatNormalTexture !== void 0 && (c.push(s.assignTexture(r, "clearcoatNormalMap", p.clearcoatNormalTexture)), p.clearcoatNormalTexture.scale !== void 0)) { + const h = p.clearcoatNormalTexture.scale; r.clearcoatNormalScale = new Vector2(h, h); } return Promise.all(c); } }; -var pu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_IRIDESCENCE; +var wp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_IRIDESCENCE; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const s = this.parser, a = s.json.materials[i]; + extendMaterialParams(n, r) { + const s = this.parser, a = s.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); - const c = [], u = a.extensions[this.name]; - return u.iridescenceFactor !== void 0 && (r.iridescence = u.iridescenceFactor), u.iridescenceTexture !== void 0 && c.push(s.assignTexture(r, "iridescenceMap", u.iridescenceTexture)), u.iridescenceIor !== void 0 && (r.iridescenceIOR = u.iridescenceIor), r.iridescenceThicknessRange === void 0 && (r.iridescenceThicknessRange = [100, 400]), u.iridescenceThicknessMinimum !== void 0 && (r.iridescenceThicknessRange[0] = u.iridescenceThicknessMinimum), u.iridescenceThicknessMaximum !== void 0 && (r.iridescenceThicknessRange[1] = u.iridescenceThicknessMaximum), u.iridescenceThicknessTexture !== void 0 && c.push(s.assignTexture(r, "iridescenceThicknessMap", u.iridescenceThicknessTexture)), Promise.all(c); + const c = [], p = a.extensions[this.name]; + return p.iridescenceFactor !== void 0 && (r.iridescence = p.iridescenceFactor), p.iridescenceTexture !== void 0 && c.push(s.assignTexture(r, "iridescenceMap", p.iridescenceTexture)), p.iridescenceIor !== void 0 && (r.iridescenceIOR = p.iridescenceIor), r.iridescenceThicknessRange === void 0 && (r.iridescenceThicknessRange = [100, 400]), p.iridescenceThicknessMinimum !== void 0 && (r.iridescenceThicknessRange[0] = p.iridescenceThicknessMinimum), p.iridescenceThicknessMaximum !== void 0 && (r.iridescenceThicknessRange[1] = p.iridescenceThicknessMaximum), p.iridescenceThicknessTexture !== void 0 && c.push(s.assignTexture(r, "iridescenceThicknessMap", p.iridescenceThicknessTexture)), Promise.all(c); } }; -var uu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_SHEEN; +var yp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_SHEEN; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const s = this.parser, a = s.json.materials[i]; + extendMaterialParams(n, r) { + const s = this.parser, a = s.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); const c = []; r.sheenColor = new Color(0, 0, 0), r.sheenRoughness = 0, r.sheen = 1; - const u = a.extensions[this.name]; - return u.sheenColorFactor !== void 0 && r.sheenColor.fromArray(u.sheenColorFactor), u.sheenRoughnessFactor !== void 0 && (r.sheenRoughness = u.sheenRoughnessFactor), u.sheenColorTexture !== void 0 && c.push(s.assignTexture(r, "sheenColorMap", u.sheenColorTexture, sRGBEncoding)), u.sheenRoughnessTexture !== void 0 && c.push(s.assignTexture(r, "sheenRoughnessMap", u.sheenRoughnessTexture)), Promise.all(c); + const p = a.extensions[this.name]; + return p.sheenColorFactor !== void 0 && r.sheenColor.fromArray(p.sheenColorFactor), p.sheenRoughnessFactor !== void 0 && (r.sheenRoughness = p.sheenRoughnessFactor), p.sheenColorTexture !== void 0 && c.push(s.assignTexture(r, "sheenColorMap", p.sheenColorTexture, sRGBEncoding)), p.sheenRoughnessTexture !== void 0 && c.push(s.assignTexture(r, "sheenRoughnessMap", p.sheenRoughnessTexture)), Promise.all(c); } }; -var hu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_TRANSMISSION; +var xp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_TRANSMISSION; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const s = this.parser, a = s.json.materials[i]; + extendMaterialParams(n, r) { + const s = this.parser, a = s.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); - const c = [], u = a.extensions[this.name]; - return u.transmissionFactor !== void 0 && (r.transmission = u.transmissionFactor), u.transmissionTexture !== void 0 && c.push(s.assignTexture(r, "transmissionMap", u.transmissionTexture)), Promise.all(c); + const c = [], p = a.extensions[this.name]; + return p.transmissionFactor !== void 0 && (r.transmission = p.transmissionFactor), p.transmissionTexture !== void 0 && c.push(s.assignTexture(r, "transmissionMap", p.transmissionTexture)), Promise.all(c); } }; -var du = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_VOLUME; +var Ep = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_VOLUME; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const s = this.parser, a = s.json.materials[i]; + extendMaterialParams(n, r) { + const s = this.parser, a = s.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); - const c = [], u = a.extensions[this.name]; - r.thickness = u.thicknessFactor !== void 0 ? u.thicknessFactor : 0, u.thicknessTexture !== void 0 && c.push(s.assignTexture(r, "thicknessMap", u.thicknessTexture)), r.attenuationDistance = u.attenuationDistance || 1 / 0; - const h = u.attenuationColor || [1, 1, 1]; + const c = [], p = a.extensions[this.name]; + r.thickness = p.thicknessFactor !== void 0 ? p.thicknessFactor : 0, p.thicknessTexture !== void 0 && c.push(s.assignTexture(r, "thicknessMap", p.thicknessTexture)), r.attenuationDistance = p.attenuationDistance || 1 / 0; + const h = p.attenuationColor || [1, 1, 1]; return r.attenuationColor = new Color(h[0], h[1], h[2]), Promise.all(c); } }; -var mu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_IOR; +var Cp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_IOR; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const a = this.parser.json.materials[i]; + extendMaterialParams(n, r) { + const a = this.parser.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); const c = a.extensions[this.name]; return r.ior = c.ior !== void 0 ? c.ior : 1.5, Promise.resolve(); } }; -var fu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_MATERIALS_SPECULAR; +var Pp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_MATERIALS_SPECULAR; } - getMaterialType(i) { - const s = this.parser.json.materials[i]; + getMaterialType(n) { + const s = this.parser.json.materials[n]; return !s.extensions || !s.extensions[this.name] ? null : MeshPhysicalMaterial; } - extendMaterialParams(i, r) { - const s = this.parser, a = s.json.materials[i]; + extendMaterialParams(n, r) { + const s = this.parser, a = s.json.materials[n]; if (!a.extensions || !a.extensions[this.name]) return Promise.resolve(); - const c = [], u = a.extensions[this.name]; - r.specularIntensity = u.specularFactor !== void 0 ? u.specularFactor : 1, u.specularTexture !== void 0 && c.push(s.assignTexture(r, "specularIntensityMap", u.specularTexture)); - const h = u.specularColorFactor || [1, 1, 1]; - return r.specularColor = new Color(h[0], h[1], h[2]), u.specularColorTexture !== void 0 && c.push(s.assignTexture(r, "specularColorMap", u.specularColorTexture, sRGBEncoding)), Promise.all(c); + const c = [], p = a.extensions[this.name]; + r.specularIntensity = p.specularFactor !== void 0 ? p.specularFactor : 1, p.specularTexture !== void 0 && c.push(s.assignTexture(r, "specularIntensityMap", p.specularTexture)); + const h = p.specularColorFactor || [1, 1, 1]; + return r.specularColor = new Color(h[0], h[1], h[2]), p.specularColorTexture !== void 0 && c.push(s.assignTexture(r, "specularColorMap", p.specularColorTexture, sRGBEncoding)), Promise.all(c); } }; -var vu = class { - constructor(i) { - this.parser = i, this.name = re.KHR_TEXTURE_BASISU; +var Tp = class { + constructor(n) { + this.parser = n, this.name = re.KHR_TEXTURE_BASISU; } - loadTexture(i) { - const r = this.parser, s = r.json, a = s.textures[i]; + loadTexture(n) { + const r = this.parser, s = r.json, a = s.textures[n]; if (!a.extensions || !a.extensions[this.name]) return null; - const c = a.extensions[this.name], u = r.options.ktx2Loader; - if (!u) { + const c = a.extensions[this.name], p = r.options.ktx2Loader; + if (!p) { if (s.extensionsRequired && s.extensionsRequired.indexOf(this.name) >= 0) throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures"); return null; } - return r.loadTextureImage(i, c.source, u); + return r.loadTextureImage(n, c.source, p); } }; -var bu = class { - constructor(i) { - this.parser = i, this.name = re.EXT_TEXTURE_WEBP, this.isSupported = null; +var kp = class { + constructor(n) { + this.parser = n, this.name = re.EXT_TEXTURE_WEBP, this.isSupported = null; } - loadTexture(i) { - const r = this.name, s = this.parser, a = s.json, c = a.textures[i]; + loadTexture(n) { + const r = this.name, s = this.parser, a = s.json, c = a.textures[n]; if (!c.extensions || !c.extensions[r]) return null; - const u = c.extensions[r], h = a.images[u.source]; + const p = c.extensions[r], h = a.images[p.source]; let d = s.textureLoader; if (h.uri) { const g = s.options.manager.getHandler(h.uri); @@ -1614,109 +1657,109 @@ var bu = class { } return this.detectSupport().then(function(g) { if (g) - return s.loadTextureImage(i, u.source, d); + return s.loadTextureImage(n, p.source, d); if (a.extensionsRequired && a.extensionsRequired.indexOf(r) >= 0) throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported."); - return s.loadTexture(i); + return s.loadTexture(n); }); } detectSupport() { - return this.isSupported || (this.isSupported = new Promise(function(i) { + return this.isSupported || (this.isSupported = new Promise(function(n) { const r = new Image(); r.src = "data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA", r.onload = r.onerror = function() { - i(r.height === 1); + n(r.height === 1); }; })), this.isSupported; } }; -var gu = class { - constructor(i) { - this.name = re.EXT_MESHOPT_COMPRESSION, this.parser = i; +var Mp = class { + constructor(n) { + this.name = re.EXT_MESHOPT_COMPRESSION, this.parser = n; } - loadBufferView(i) { - const r = this.parser.json, s = r.bufferViews[i]; + loadBufferView(n) { + const r = this.parser.json, s = r.bufferViews[n]; if (s.extensions && s.extensions[this.name]) { - const a = s.extensions[this.name], c = this.parser.getDependency("buffer", a.buffer), u = this.parser.options.meshoptDecoder; - if (!u || !u.supported) { + const a = s.extensions[this.name], c = this.parser.getDependency("buffer", a.buffer), p = this.parser.options.meshoptDecoder; + if (!p || !p.supported) { if (r.extensionsRequired && r.extensionsRequired.indexOf(this.name) >= 0) throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files"); return null; } return c.then(function(h) { const d = a.byteOffset || 0, g = a.byteLength || 0, w = a.count, _ = a.byteStride, y = new Uint8Array(h, d, g); - return u.decodeGltfBufferAsync ? u.decodeGltfBufferAsync(w, _, y, a.mode, a.filter).then(function(C) { - return C.buffer; - }) : u.ready.then(function() { - const C = new ArrayBuffer(w * _); - return u.decodeGltfBuffer(new Uint8Array(C), w, _, y, a.mode, a.filter), C; + return p.decodeGltfBufferAsync ? p.decodeGltfBufferAsync(w, _, y, a.mode, a.filter).then(function(P) { + return P.buffer; + }) : p.ready.then(function() { + const P = new ArrayBuffer(w * _); + return p.decodeGltfBuffer(new Uint8Array(P), w, _, y, a.mode, a.filter), P; }); }); } else return null; } }; -var $a = "glTF"; -var Gi = 12; -var aa = { +var Za = "glTF"; +var Ki = 12; +var ha = { JSON: 1313821514, BIN: 5130562 }; -var _u = class { - constructor(i) { +var Sp = class { + constructor(n) { this.name = re.KHR_BINARY_GLTF, this.content = null, this.body = null; - const r = new DataView(i, 0, Gi); + const r = new DataView(n, 0, Ki); if (this.header = { - magic: LoaderUtils.decodeText(new Uint8Array(i.slice(0, 4))), + magic: LoaderUtils.decodeText(new Uint8Array(n.slice(0, 4))), version: r.getUint32(4, true), length: r.getUint32(8, true) - }, this.header.magic !== $a) + }, this.header.magic !== Za) throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header."); if (this.header.version < 2) throw new Error("THREE.GLTFLoader: Legacy binary file detected."); - const s = this.header.length - Gi, a = new DataView(i, Gi); + const s = this.header.length - Ki, a = new DataView(n, Ki); let c = 0; for (; c < s; ) { - const u = a.getUint32(c, true); + const p = a.getUint32(c, true); c += 4; const h = a.getUint32(c, true); - if (c += 4, h === aa.JSON) { - const d = new Uint8Array(i, Gi + c, u); + if (c += 4, h === ha.JSON) { + const d = new Uint8Array(n, Ki + c, p); this.content = LoaderUtils.decodeText(d); - } else if (h === aa.BIN) { - const d = Gi + c; - this.body = i.slice(d, d + u); + } else if (h === ha.BIN) { + const d = Ki + c; + this.body = n.slice(d, d + p); } - c += u; + c += p; } if (this.content === null) throw new Error("THREE.GLTFLoader: JSON content not found."); } }; -var wu = class { - constructor(i, r) { +var Lp = class { + constructor(n, r) { if (!r) throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided."); - this.name = re.KHR_DRACO_MESH_COMPRESSION, this.json = i, this.dracoLoader = r, this.dracoLoader.preload(); + this.name = re.KHR_DRACO_MESH_COMPRESSION, this.json = n, this.dracoLoader = r, this.dracoLoader.preload(); } - decodePrimitive(i, r) { - const s = this.json, a = this.dracoLoader, c = i.extensions[this.name].bufferView, u = i.extensions[this.name].attributes, h = {}, d = {}, g = {}; - for (const w in u) { - const _ = co[w] || w.toLowerCase(); - h[_] = u[w]; + decodePrimitive(n, r) { + const s = this.json, a = this.dracoLoader, c = n.extensions[this.name].bufferView, p = n.extensions[this.name].attributes, h = {}, d = {}, g = {}; + for (const w in p) { + const _ = vo[w] || w.toLowerCase(); + h[_] = p[w]; } - for (const w in i.attributes) { - const _ = co[w] || w.toLowerCase(); - if (u[w] !== void 0) { - const y = s.accessors[i.attributes[w]], C = Wi[y.componentType]; - g[_] = C.name, d[_] = y.normalized === true; + for (const w in n.attributes) { + const _ = vo[w] || w.toLowerCase(); + if (p[w] !== void 0) { + const y = s.accessors[n.attributes[w]], P = es[y.componentType]; + g[_] = P.name, d[_] = y.normalized === true; } } return r.getDependency("bufferView", c).then(function(w) { return new Promise(function(_) { a.decodeDracoFile(w, function(y) { - for (const C in y.attributes) { - const I = y.attributes[C], S = d[C]; - S !== void 0 && (I.normalized = S); + for (const P in y.attributes) { + const I2 = y.attributes[P], S = d[P]; + S !== void 0 && (I2.normalized = S); } _(y); }, h, g); @@ -1724,22 +1767,22 @@ var wu = class { }); } }; -var yu = class { +var Ap = class { constructor() { this.name = re.KHR_TEXTURE_TRANSFORM; } - extendTexture(i, r) { - return r.texCoord !== void 0 && console.warn('THREE.GLTFLoader: Custom UV sets in "' + this.name + '" extension not yet supported.'), r.offset === void 0 && r.rotation === void 0 && r.scale === void 0 || (i = i.clone(), r.offset !== void 0 && i.offset.fromArray(r.offset), r.rotation !== void 0 && (i.rotation = r.rotation), r.scale !== void 0 && i.repeat.fromArray(r.scale), i.needsUpdate = true), i; + extendTexture(n, r) { + return r.texCoord !== void 0 && console.warn('THREE.GLTFLoader: Custom UV sets in "' + this.name + '" extension not yet supported.'), r.offset === void 0 && r.rotation === void 0 && r.scale === void 0 || (n = n.clone(), r.offset !== void 0 && n.offset.fromArray(r.offset), r.rotation !== void 0 && (n.rotation = r.rotation), r.scale !== void 0 && n.repeat.fromArray(r.scale), n.needsUpdate = true), n; } }; -var lo = class extends MeshStandardMaterial { - constructor(i) { +var fo = class extends MeshStandardMaterial { + constructor(n) { super(), this.isGLTFSpecularGlossinessMaterial = true; const r = ["#ifdef USE_SPECULARMAP", " uniform sampler2D specularMap;", "#endif"].join(` `), s = ["#ifdef USE_GLOSSINESSMAP", " uniform sampler2D glossinessMap;", "#endif"].join(` `), a = ["vec3 specularFactor = specular;", "#ifdef USE_SPECULARMAP", " vec4 texelSpecular = texture2D( specularMap, vUv );", " // reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture", " specularFactor *= texelSpecular.rgb;", "#endif"].join(` `), c = ["float glossinessFactor = glossiness;", "#ifdef USE_GLOSSINESSMAP", " vec4 texelGlossiness = texture2D( glossinessMap, vUv );", " // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture", " glossinessFactor *= texelGlossiness.a;", "#endif"].join(` -`), u = ["PhysicalMaterial material;", "material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );", "vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );", "float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );", "material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.", "material.roughness += geometryRoughness;", "material.roughness = min( material.roughness, 1.0 );", "material.specularColor = specularFactor;"].join(` +`), p = ["PhysicalMaterial material;", "material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );", "vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );", "float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );", "material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.", "material.roughness += geometryRoughness;", "material.roughness = min( material.roughness, 1.0 );", "material.specularColor = specularFactor;"].join(` `), h = { specular: { value: new Color().setHex(16777215) @@ -1757,7 +1800,7 @@ var lo = class extends MeshStandardMaterial { this._extraUniforms = h, this.onBeforeCompile = function(d) { for (const g in h) d.uniforms[g] = h[g]; - d.fragmentShader = d.fragmentShader.replace("uniform float roughness;", "uniform vec3 specular;").replace("uniform float metalness;", "uniform float glossiness;").replace("#include ", r).replace("#include ", s).replace("#include ", a).replace("#include ", c).replace("#include ", u); + d.fragmentShader = d.fragmentShader.replace("uniform float roughness;", "uniform vec3 specular;").replace("uniform float metalness;", "uniform float glossiness;").replace("#include ", r).replace("#include ", s).replace("#include ", a).replace("#include ", c).replace("#include ", p); }, Object.defineProperties(this, { specular: { get: function() { @@ -1791,70 +1834,70 @@ var lo = class extends MeshStandardMaterial { h.glossinessMap.value = d, d ? (this.defines.USE_GLOSSINESSMAP = "", this.defines.USE_UV = "") : (delete this.defines.USE_GLOSSINESSMAP, delete this.defines.USE_UV); } } - }), delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this.setValues(i); + }), delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this.setValues(n); } - copy(i) { - return super.copy(i), this.specularMap = i.specularMap, this.specular.copy(i.specular), this.glossinessMap = i.glossinessMap, this.glossiness = i.glossiness, delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this; + copy(n) { + return super.copy(n), this.specularMap = n.specularMap, this.specular.copy(n.specular), this.glossinessMap = n.glossinessMap, this.glossiness = n.glossiness, delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this; } }; -var xu = class { +var Rp = class { constructor() { this.name = re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS, this.specularGlossinessParams = ["color", "map", "lightMap", "lightMapIntensity", "aoMap", "aoMapIntensity", "emissive", "emissiveIntensity", "emissiveMap", "bumpMap", "bumpScale", "normalMap", "normalMapType", "displacementMap", "displacementScale", "displacementBias", "specularMap", "specular", "glossinessMap", "glossiness", "alphaMap", "envMap", "envMapIntensity", "refractionRatio"]; } getMaterialType() { - return lo; + return fo; } - extendParams(i, r, s) { + extendParams(n, r, s) { const a = r.extensions[this.name]; - i.color = new Color(1, 1, 1), i.opacity = 1; + n.color = new Color(1, 1, 1), n.opacity = 1; const c = []; if (Array.isArray(a.diffuseFactor)) { - const u = a.diffuseFactor; - i.color.fromArray(u), i.opacity = u[3]; + const p = a.diffuseFactor; + n.color.fromArray(p), n.opacity = p[3]; } - if (a.diffuseTexture !== void 0 && c.push(s.assignTexture(i, "map", a.diffuseTexture, sRGBEncoding)), i.emissive = new Color(0, 0, 0), i.glossiness = a.glossinessFactor !== void 0 ? a.glossinessFactor : 1, i.specular = new Color(1, 1, 1), Array.isArray(a.specularFactor) && i.specular.fromArray(a.specularFactor), a.specularGlossinessTexture !== void 0) { - const u = a.specularGlossinessTexture; - c.push(s.assignTexture(i, "glossinessMap", u)), c.push(s.assignTexture(i, "specularMap", u, sRGBEncoding)); + if (a.diffuseTexture !== void 0 && c.push(s.assignTexture(n, "map", a.diffuseTexture, sRGBEncoding)), n.emissive = new Color(0, 0, 0), n.glossiness = a.glossinessFactor !== void 0 ? a.glossinessFactor : 1, n.specular = new Color(1, 1, 1), Array.isArray(a.specularFactor) && n.specular.fromArray(a.specularFactor), a.specularGlossinessTexture !== void 0) { + const p = a.specularGlossinessTexture; + c.push(s.assignTexture(n, "glossinessMap", p)), c.push(s.assignTexture(n, "specularMap", p, sRGBEncoding)); } return Promise.all(c); } - createMaterial(i) { - const r = new lo(i); - return r.fog = true, r.color = i.color, r.map = i.map === void 0 ? null : i.map, r.lightMap = null, r.lightMapIntensity = 1, r.aoMap = i.aoMap === void 0 ? null : i.aoMap, r.aoMapIntensity = 1, r.emissive = i.emissive, r.emissiveIntensity = i.emissiveIntensity === void 0 ? 1 : i.emissiveIntensity, r.emissiveMap = i.emissiveMap === void 0 ? null : i.emissiveMap, r.bumpMap = i.bumpMap === void 0 ? null : i.bumpMap, r.bumpScale = 1, r.normalMap = i.normalMap === void 0 ? null : i.normalMap, r.normalMapType = TangentSpaceNormalMap, i.normalScale && (r.normalScale = i.normalScale), r.displacementMap = null, r.displacementScale = 1, r.displacementBias = 0, r.specularMap = i.specularMap === void 0 ? null : i.specularMap, r.specular = i.specular, r.glossinessMap = i.glossinessMap === void 0 ? null : i.glossinessMap, r.glossiness = i.glossiness, r.alphaMap = null, r.envMap = i.envMap === void 0 ? null : i.envMap, r.envMapIntensity = 1, r.refractionRatio = 0.98, r; + createMaterial(n) { + const r = new fo(n); + return r.fog = true, r.color = n.color, r.map = n.map === void 0 ? null : n.map, r.lightMap = null, r.lightMapIntensity = 1, r.aoMap = n.aoMap === void 0 ? null : n.aoMap, r.aoMapIntensity = 1, r.emissive = n.emissive, r.emissiveIntensity = n.emissiveIntensity === void 0 ? 1 : n.emissiveIntensity, r.emissiveMap = n.emissiveMap === void 0 ? null : n.emissiveMap, r.bumpMap = n.bumpMap === void 0 ? null : n.bumpMap, r.bumpScale = 1, r.normalMap = n.normalMap === void 0 ? null : n.normalMap, r.normalMapType = TangentSpaceNormalMap, n.normalScale && (r.normalScale = n.normalScale), r.displacementMap = null, r.displacementScale = 1, r.displacementBias = 0, r.specularMap = n.specularMap === void 0 ? null : n.specularMap, r.specular = n.specular, r.glossinessMap = n.glossinessMap === void 0 ? null : n.glossinessMap, r.glossiness = n.glossiness, r.alphaMap = null, r.envMap = n.envMap === void 0 ? null : n.envMap, r.envMapIntensity = 1, r.refractionRatio = 0.98, r; } }; -var Eu = class { +var Ip = class { constructor() { this.name = re.KHR_MESH_QUANTIZATION; } }; -var Xa = class extends Interpolant { - constructor(i, r, s, a) { - super(i, r, s, a); - } - copySampleValue_(i) { - const r = this.resultBuffer, s = this.sampleValues, a = this.valueSize, c = i * a * 3 + a; - for (let u = 0; u !== a; u++) - r[u] = s[c + u]; +var Wa = class extends Interpolant { + constructor(n, r, s, a) { + super(n, r, s, a); + } + copySampleValue_(n) { + const r = this.resultBuffer, s = this.sampleValues, a = this.valueSize, c = n * a * 3 + a; + for (let p = 0; p !== a; p++) + r[p] = s[c + p]; return r; } - interpolate_(i, r, s, a) { - const c = this.resultBuffer, u = this.sampleValues, h = this.valueSize, d = h * 2, g = h * 3, w = a - r, _ = (s - r) / w, y = _ * _, C = y * _, I = i * g, S = I - g, R = -2 * C + 3 * y, j = C - y, F = 1 - R, V = j - y + _; - for (let D = 0; D !== h; D++) { - const Y = u[S + D + h], G = u[S + D + d] * w, N = u[I + D + h], O = u[I + D] * w; - c[D] = F * Y + V * G + R * N + j * O; + interpolate_(n, r, s, a) { + const c = this.resultBuffer, p = this.sampleValues, h = this.valueSize, d = h * 2, g = h * 3, w = a - r, _ = (s - r) / w, y = _ * _, P = y * _, I2 = n * g, S = I2 - g, R = -2 * P + 3 * y, j = P - y, F = 1 - R, V = j - y + _; + for (let D2 = 0; D2 !== h; D2++) { + const Y = p[S + D2 + h], G = p[S + D2 + d] * w, N = p[I2 + D2 + h], O = p[I2 + D2] * w; + c[D2] = F * Y + V * G + R * N + j * O; } return c; } }; -var Cu = new Quaternion(); -var Pu = class extends Xa { - interpolate_(i, r, s, a) { - const c = super.interpolate_(i, r, s, a); - return Cu.fromArray(c).normalize().toArray(c), c; +var Vp = new Quaternion(); +var Dp = class extends Wa { + interpolate_(n, r, s, a) { + const c = super.interpolate_(n, r, s, a); + return Vp.fromArray(c).normalize().toArray(c), c; } }; -var Ft = { +var Bt = { FLOAT: 5126, //FLOAT_MAT2: 35674, FLOAT_MAT3: 35675, @@ -1875,7 +1918,7 @@ var Ft = { UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123 }; -var Wi = { +var es = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, @@ -1883,7 +1926,7 @@ var Wi = { 5125: Uint32Array, 5126: Float32Array }; -var la = { +var da = { 9728: NearestFilter, 9729: LinearFilter, 9984: NearestMipmapNearestFilter, @@ -1891,12 +1934,12 @@ var la = { 9986: NearestMipmapLinearFilter, 9987: LinearMipmapLinearFilter }; -var ca = { +var ma = { 33071: ClampToEdgeWrapping, 33648: MirroredRepeatWrapping, 10497: RepeatWrapping }; -var pa = { +var fa = { SCALAR: 1, VEC2: 2, VEC3: 3, @@ -1905,7 +1948,7 @@ var pa = { MAT3: 9, MAT4: 16 }; -var co = { +var vo = { POSITION: "position", NORMAL: "normal", TANGENT: "tangent", @@ -1915,26 +1958,26 @@ var co = { WEIGHTS_0: "skinWeight", JOINTS_0: "skinIndex" }; -var nn = { +var rn = { scale: "scale", translation: "position", rotation: "quaternion", weights: "morphTargetInfluences" }; -var Tu = { +var Op = { CUBICSPLINE: void 0, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each // keyframe track will be initialized with a default interpolation type, then modified. LINEAR: InterpolateLinear, STEP: InterpolateDiscrete }; -var Qr = { +var io = { OPAQUE: "OPAQUE", MASK: "MASK", BLEND: "BLEND" }; -function ku(b) { - return b.DefaultMaterial === void 0 && (b.DefaultMaterial = new MeshStandardMaterial({ +function Np(v) { + return v.DefaultMaterial === void 0 && (v.DefaultMaterial = new MeshStandardMaterial({ color: 16777215, emissive: 0, metalness: 1, @@ -1942,73 +1985,73 @@ function ku(b) { transparent: false, depthTest: true, side: FrontSide - })), b.DefaultMaterial; + })), v.DefaultMaterial; } -function Hi(b, i, r) { +function $i(v, n, r) { for (const s in r.extensions) - b[s] === void 0 && (i.userData.gltfExtensions = i.userData.gltfExtensions || {}, i.userData.gltfExtensions[s] = r.extensions[s]); + v[s] === void 0 && (n.userData.gltfExtensions = n.userData.gltfExtensions || {}, n.userData.gltfExtensions[s] = r.extensions[s]); } -function In(b, i) { - i.extras !== void 0 && (typeof i.extras == "object" ? Object.assign(b.userData, i.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + i.extras)); +function Dn(v, n) { + n.extras !== void 0 && (typeof n.extras == "object" ? Object.assign(v.userData, n.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + n.extras)); } -function Mu(b, i, r) { +function Fp(v, n, r) { let s = false, a = false, c = false; - for (let g = 0, w = i.length; g < w; g++) { - const _ = i[g]; + for (let g = 0, w = n.length; g < w; g++) { + const _ = n[g]; if (_.POSITION !== void 0 && (s = true), _.NORMAL !== void 0 && (a = true), _.COLOR_0 !== void 0 && (c = true), s && a && c) break; } if (!s && !a && !c) - return Promise.resolve(b); - const u = [], h = [], d = []; - for (let g = 0, w = i.length; g < w; g++) { - const _ = i[g]; + return Promise.resolve(v); + const p = [], h = [], d = []; + for (let g = 0, w = n.length; g < w; g++) { + const _ = n[g]; if (s) { - const y = _.POSITION !== void 0 ? r.getDependency("accessor", _.POSITION) : b.attributes.position; - u.push(y); + const y = _.POSITION !== void 0 ? r.getDependency("accessor", _.POSITION) : v.attributes.position; + p.push(y); } if (a) { - const y = _.NORMAL !== void 0 ? r.getDependency("accessor", _.NORMAL) : b.attributes.normal; + const y = _.NORMAL !== void 0 ? r.getDependency("accessor", _.NORMAL) : v.attributes.normal; h.push(y); } if (c) { - const y = _.COLOR_0 !== void 0 ? r.getDependency("accessor", _.COLOR_0) : b.attributes.color; + const y = _.COLOR_0 !== void 0 ? r.getDependency("accessor", _.COLOR_0) : v.attributes.color; d.push(y); } } - return Promise.all([Promise.all(u), Promise.all(h), Promise.all(d)]).then(function(g) { + return Promise.all([Promise.all(p), Promise.all(h), Promise.all(d)]).then(function(g) { const w = g[0], _ = g[1], y = g[2]; - return s && (b.morphAttributes.position = w), a && (b.morphAttributes.normal = _), c && (b.morphAttributes.color = y), b.morphTargetsRelative = true, b; + return s && (v.morphAttributes.position = w), a && (v.morphAttributes.normal = _), c && (v.morphAttributes.color = y), v.morphTargetsRelative = true, v; }); } -function Su(b, i) { - if (b.updateMorphTargets(), i.weights !== void 0) - for (let r = 0, s = i.weights.length; r < s; r++) - b.morphTargetInfluences[r] = i.weights[r]; - if (i.extras && Array.isArray(i.extras.targetNames)) { - const r = i.extras.targetNames; - if (b.morphTargetInfluences.length === r.length) { - b.morphTargetDictionary = {}; +function Bp(v, n) { + if (v.updateMorphTargets(), n.weights !== void 0) + for (let r = 0, s = n.weights.length; r < s; r++) + v.morphTargetInfluences[r] = n.weights[r]; + if (n.extras && Array.isArray(n.extras.targetNames)) { + const r = n.extras.targetNames; + if (v.morphTargetInfluences.length === r.length) { + v.morphTargetDictionary = {}; for (let s = 0, a = r.length; s < a; s++) - b.morphTargetDictionary[r[s]] = s; + v.morphTargetDictionary[r[s]] = s; } else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names."); } } -function Au(b) { - const i = b.extensions && b.extensions[re.KHR_DRACO_MESH_COMPRESSION]; +function jp(v) { + const n = v.extensions && v.extensions[re.KHR_DRACO_MESH_COMPRESSION]; let r; - return i ? r = "draco:" + i.bufferView + ":" + i.indices + ":" + ua(i.attributes) : r = b.indices + ":" + ua(b.attributes) + ":" + b.mode, r; + return n ? r = "draco:" + n.bufferView + ":" + n.indices + ":" + va(n.attributes) : r = v.indices + ":" + va(v.attributes) + ":" + v.mode, r; } -function ua(b) { - let i = ""; - const r = Object.keys(b).sort(); +function va(v) { + let n = ""; + const r = Object.keys(v).sort(); for (let s = 0, a = r.length; s < a; s++) - i += r[s] + ":" + b[r[s]] + ";"; - return i; + n += r[s] + ":" + v[r[s]] + ";"; + return n; } -function po(b) { - switch (b) { +function bo(v) { + switch (v) { case Int8Array: return 1 / 127; case Uint8Array: @@ -2021,13 +2064,13 @@ function po(b) { throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type."); } } -function Lu(b) { - return b.search(/\.jpe?g($|\?)/i) > 0 || b.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : b.search(/\.webp($|\?)/i) > 0 || b.search(/^data\:image\/webp/) === 0 ? "image/webp" : "image/png"; +function zp(v) { + return v.search(/\.jpe?g($|\?)/i) > 0 || v.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : v.search(/\.webp($|\?)/i) > 0 || v.search(/^data\:image\/webp/) === 0 ? "image/webp" : "image/png"; } -var Ru = class { - constructor(i = {}, r = {}) { +var Up = class { + constructor(n = {}, r = {}) { var s, a; - this.json = i, this.extensions = {}, this.plugins = {}, this.options = r, this.cache = new ru(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.meshCache = { + this.json = n, this.extensions = {}, this.plugins = {}, this.options = r, this.cache = new fp(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { @@ -2037,37 +2080,37 @@ var Ru = class { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {}; - const c = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === true, u = typeof navigator < "u" && ((s = navigator.userAgent) === null || s === void 0 ? void 0 : s.indexOf("Firefox")) > -1, h = typeof navigator < "u" && u ? (a = navigator.userAgent) === null || a === void 0 ? void 0 : a.match(/Firefox\/([0-9]+)\./)[1] : -1; - typeof createImageBitmap > "u" || c || u && h < 98 ? this.textureLoader = new TextureLoader(this.options.manager) : this.textureLoader = new ImageBitmapLoader(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new FileLoader(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(true); + const c = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === true, p = typeof navigator < "u" && ((s = navigator.userAgent) === null || s === void 0 ? void 0 : s.indexOf("Firefox")) > -1, h = typeof navigator < "u" && p ? (a = navigator.userAgent) === null || a === void 0 ? void 0 : a.match(/Firefox\/([0-9]+)\./)[1] : -1; + typeof createImageBitmap > "u" || c || p && h < 98 ? this.textureLoader = new TextureLoader(this.options.manager) : this.textureLoader = new ImageBitmapLoader(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new FileLoader(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(true); } - setExtensions(i) { - this.extensions = i; + setExtensions(n) { + this.extensions = n; } - setPlugins(i) { - this.plugins = i; + setPlugins(n) { + this.plugins = n; } - parse(i, r) { + parse(n, r) { const s = this, a = this.json, c = this.extensions; - this.cache.removeAll(), this._invokeAll(function(u) { - return u._markDefs && u._markDefs(); - }), Promise.all(this._invokeAll(function(u) { - return u.beforeRoot && u.beforeRoot(); + this.cache.removeAll(), this._invokeAll(function(p) { + return p._markDefs && p._markDefs(); + }), Promise.all(this._invokeAll(function(p) { + return p.beforeRoot && p.beforeRoot(); })).then(function() { return Promise.all([s.getDependencies("scene"), s.getDependencies("animation"), s.getDependencies("camera")]); - }).then(function(u) { + }).then(function(p) { const h = { - scene: u[0][a.scene || 0], - scenes: u[0], - animations: u[1], - cameras: u[2], + scene: p[0][a.scene || 0], + scenes: p[0], + animations: p[1], + cameras: p[2], asset: a.asset, parser: s, userData: {} }; - Hi(c, h, a), In(h, a), Promise.all(s._invokeAll(function(d) { + $i(c, h, a), Dn(h, a), Promise.all(s._invokeAll(function(d) { return d.afterRoot && d.afterRoot(h); })).then(function() { - i(h); + n(h); }); }).catch(r); } @@ -2075,15 +2118,15 @@ var Ru = class { * Marks the special nodes/meshes in json for efficient parse. */ _markDefs() { - const i = this.json.nodes || [], r = this.json.skins || [], s = this.json.meshes || []; + const n = this.json.nodes || [], r = this.json.skins || [], s = this.json.meshes || []; for (let a = 0, c = r.length; a < c; a++) { - const u = r[a].joints; - for (let h = 0, d = u.length; h < d; h++) - i[u[h]].isBone = true; + const p = r[a].joints; + for (let h = 0, d = p.length; h < d; h++) + n[p[h]].isBone = true; } - for (let a = 0, c = i.length; a < c; a++) { - const u = i[a]; - u.mesh !== void 0 && (this._addNodeRef(this.meshCache, u.mesh), u.skin !== void 0 && (s[u.mesh].isSkinnedMesh = true)), u.camera !== void 0 && this._addNodeRef(this.cameraCache, u.camera); + for (let a = 0, c = n.length; a < c; a++) { + const p = n[a]; + p.mesh !== void 0 && (this._addNodeRef(this.meshCache, p.mesh), p.skin !== void 0 && (s[p.mesh].isSkinnedMesh = true)), p.camera !== void 0 && this._addNodeRef(this.cameraCache, p.camera); } } /** @@ -2095,37 +2138,37 @@ var Ru = class { * * Example: CesiumMilkTruck sample model reuses "Wheel" meshes. */ - _addNodeRef(i, r) { - r !== void 0 && (i.refs[r] === void 0 && (i.refs[r] = i.uses[r] = 0), i.refs[r]++); + _addNodeRef(n, r) { + r !== void 0 && (n.refs[r] === void 0 && (n.refs[r] = n.uses[r] = 0), n.refs[r]++); } /** Returns a reference to a shared resource, cloning it if necessary. */ - _getNodeRef(i, r, s) { - if (i.refs[r] <= 1) + _getNodeRef(n, r, s) { + if (n.refs[r] <= 1) return s; - const a = s.clone(), c = (u, h) => { - const d = this.associations.get(u); + const a = s.clone(), c = (p, h) => { + const d = this.associations.get(p); d != null && this.associations.set(h, d); - for (const [g, w] of u.children.entries()) + for (const [g, w] of p.children.entries()) c(w, h.children[g]); }; - return c(s, a), a.name += "_instance_" + i.uses[r]++, a; + return c(s, a), a.name += "_instance_" + n.uses[r]++, a; } - _invokeOne(i) { + _invokeOne(n) { const r = Object.values(this.plugins); r.push(this); for (let s = 0; s < r.length; s++) { - const a = i(r[s]); + const a = n(r[s]); if (a) return a; } return null; } - _invokeAll(i) { + _invokeAll(n) { const r = Object.values(this.plugins); r.unshift(this); const s = []; for (let a = 0; a < r.length; a++) { - const c = i(r[a]); + const c = n(r[a]); c && s.push(c); } return s; @@ -2136,11 +2179,11 @@ var Ru = class { * @param {number} index * @return {Promise} */ - getDependency(i, r) { - const s = i + ":" + r; + getDependency(n, r) { + const s = n + ":" + r; let a = this.cache.get(s); if (!a) { - switch (i) { + switch (n) { case "scene": a = this.loadScene(r); break; @@ -2185,7 +2228,7 @@ var Ru = class { a = this.loadCamera(r); break; default: - throw new Error("Unknown type: " + i); + throw new Error("Unknown type: " + n); } this.cache.add(s, a); } @@ -2196,13 +2239,13 @@ var Ru = class { * @param {string} type * @return {Promise>} */ - getDependencies(i) { - let r = this.cache.get(i); + getDependencies(n) { + let r = this.cache.get(n); if (!r) { - const s = this, a = this.json[i + (i === "mesh" ? "es" : "s")] || []; - r = Promise.all(a.map(function(c, u) { - return s.getDependency(i, u); - })), this.cache.add(i, r); + const s = this, a = this.json[n + (n === "mesh" ? "es" : "s")] || []; + r = Promise.all(a.map(function(c, p) { + return s.getDependency(n, p); + })), this.cache.add(n, r); } return r; } @@ -2211,16 +2254,16 @@ var Ru = class { * @param {number} bufferIndex * @return {Promise} */ - loadBuffer(i) { - const r = this.json.buffers[i], s = this.fileLoader; + loadBuffer(n) { + const r = this.json.buffers[n], s = this.fileLoader; if (r.type && r.type !== "arraybuffer") throw new Error("THREE.GLTFLoader: " + r.type + " buffer type is not supported."); - if (r.uri === void 0 && i === 0) + if (r.uri === void 0 && n === 0) return Promise.resolve(this.extensions[re.KHR_BINARY_GLTF].body); const a = this.options; - return new Promise(function(c, u) { + return new Promise(function(c, p) { s.load(LoaderUtils.resolveURL(r.uri, a.path), c, void 0, function() { - u(new Error('THREE.GLTFLoader: Failed to load buffer "' + r.uri + '".')); + p(new Error('THREE.GLTFLoader: Failed to load buffer "' + r.uri + '".')); }); }); } @@ -2229,8 +2272,8 @@ var Ru = class { * @param {number} bufferViewIndex * @return {Promise} */ - loadBufferView(i) { - const r = this.json.bufferViews[i]; + loadBufferView(n) { + const r = this.json.bufferViews[n]; return this.getDependency("buffer", r.buffer).then(function(s) { const a = r.byteLength || 0, c = r.byteOffset || 0; return s.slice(c, c + a); @@ -2241,22 +2284,22 @@ var Ru = class { * @param {number} accessorIndex * @return {Promise} */ - loadAccessor(i) { - const r = this, s = this.json, a = this.json.accessors[i]; + loadAccessor(n) { + const r = this, s = this.json, a = this.json.accessors[n]; if (a.bufferView === void 0 && a.sparse === void 0) return Promise.resolve(null); const c = []; - return a.bufferView !== void 0 ? c.push(this.getDependency("bufferView", a.bufferView)) : c.push(null), a.sparse !== void 0 && (c.push(this.getDependency("bufferView", a.sparse.indices.bufferView)), c.push(this.getDependency("bufferView", a.sparse.values.bufferView))), Promise.all(c).then(function(u) { - const h = u[0], d = pa[a.type], g = Wi[a.componentType], w = g.BYTES_PER_ELEMENT, _ = w * d, y = a.byteOffset || 0, C = a.bufferView !== void 0 ? s.bufferViews[a.bufferView].byteStride : void 0, I = a.normalized === true; + return a.bufferView !== void 0 ? c.push(this.getDependency("bufferView", a.bufferView)) : c.push(null), a.sparse !== void 0 && (c.push(this.getDependency("bufferView", a.sparse.indices.bufferView)), c.push(this.getDependency("bufferView", a.sparse.values.bufferView))), Promise.all(c).then(function(p) { + const h = p[0], d = fa[a.type], g = es[a.componentType], w = g.BYTES_PER_ELEMENT, _ = w * d, y = a.byteOffset || 0, P = a.bufferView !== void 0 ? s.bufferViews[a.bufferView].byteStride : void 0, I2 = a.normalized === true; let S, R; - if (C && C !== _) { - const j = Math.floor(y / C), F = "InterleavedBuffer:" + a.bufferView + ":" + a.componentType + ":" + j + ":" + a.count; + if (P && P !== _) { + const j = Math.floor(y / P), F = "InterleavedBuffer:" + a.bufferView + ":" + a.componentType + ":" + j + ":" + a.count; let V = r.cache.get(F); - V || (S = new g(h, j * C, a.count * C / w), V = new InterleavedBuffer(S, C / w), r.cache.add(F, V)), R = new InterleavedBufferAttribute(V, d, y % C / w, I); + V || (S = new g(h, j * P, a.count * P / w), V = new InterleavedBuffer(S, P / w), r.cache.add(F, V)), R = new InterleavedBufferAttribute(V, d, y % P / w, I2); } else - h === null ? S = new g(a.count * d) : S = new g(h, y, a.count * d), R = new BufferAttribute(S, d, I); + h === null ? S = new g(a.count * d) : S = new g(h, y, a.count * d), R = new BufferAttribute(S, d, I2); if (a.sparse !== void 0) { - const j = pa.SCALAR, F = Wi[a.sparse.indices.componentType], V = a.sparse.indices.byteOffset || 0, D = a.sparse.values.byteOffset || 0, Y = new F(u[1], V, a.sparse.count * j), G = new g(u[2], D, a.sparse.count * d); + const j = fa.SCALAR, F = es[a.sparse.indices.componentType], V = a.sparse.indices.byteOffset || 0, D2 = a.sparse.values.byteOffset || 0, Y = new F(p[1], V, a.sparse.count * j), G = new g(p[2], D2, a.sparse.count * d); h !== null && (R = new BufferAttribute(R.array.slice(), R.itemSize, R.normalized)); for (let N = 0, O = Y.length; N < O; N++) { const H = Y[N]; @@ -2272,60 +2315,60 @@ var Ru = class { * @param {number} textureIndex * @return {Promise} */ - loadTexture(i) { - const r = this.json, s = this.options, c = r.textures[i].source, u = r.images[c]; + loadTexture(n) { + const r = this.json, s = this.options, c = r.textures[n].source, p = r.images[c]; let h = this.textureLoader; - if (u.uri) { - const d = s.manager.getHandler(u.uri); + if (p.uri) { + const d = s.manager.getHandler(p.uri); d !== null && (h = d); } - return this.loadTextureImage(i, c, h); + return this.loadTextureImage(n, c, h); } - loadTextureImage(i, r, s) { - const a = this, c = this.json, u = c.textures[i], h = c.images[r], d = (h.uri || h.bufferView) + ":" + u.sampler; + loadTextureImage(n, r, s) { + const a = this, c = this.json, p = c.textures[n], h = c.images[r], d = (h.uri || h.bufferView) + ":" + p.sampler; if (this.textureCache[d]) return this.textureCache[d]; const g = this.loadImageSource(r, s).then(function(w) { - w.flipY = false, u.name && (w.name = u.name); - const y = (c.samplers || {})[u.sampler] || {}; - return w.magFilter = la[y.magFilter] || LinearFilter, w.minFilter = la[y.minFilter] || LinearMipmapLinearFilter, w.wrapS = ca[y.wrapS] || RepeatWrapping, w.wrapT = ca[y.wrapT] || RepeatWrapping, a.associations.set(w, { - textures: i + w.flipY = false, p.name && (w.name = p.name); + const y = (c.samplers || {})[p.sampler] || {}; + return w.magFilter = da[y.magFilter] || LinearFilter, w.minFilter = da[y.minFilter] || LinearMipmapLinearFilter, w.wrapS = ma[y.wrapS] || RepeatWrapping, w.wrapT = ma[y.wrapT] || RepeatWrapping, a.associations.set(w, { + textures: n }), w; }).catch(function() { return null; }); return this.textureCache[d] = g, g; } - loadImageSource(i, r) { + loadImageSource(n, r) { const s = this, a = this.json, c = this.options; - if (this.sourceCache[i] !== void 0) - return this.sourceCache[i].then((_) => _.clone()); - const u = a.images[i], h = self.URL || self.webkitURL; - let d = u.uri || "", g = false; - if (u.bufferView !== void 0) - d = s.getDependency("bufferView", u.bufferView).then(function(_) { + if (this.sourceCache[n] !== void 0) + return this.sourceCache[n].then((_) => _.clone()); + const p = a.images[n], h = self.URL || self.webkitURL; + let d = p.uri || "", g = false; + if (p.bufferView !== void 0) + d = s.getDependency("bufferView", p.bufferView).then(function(_) { g = true; const y = new Blob([_], { - type: u.mimeType + type: p.mimeType }); return d = h.createObjectURL(y), d; }); - else if (u.uri === void 0) - throw new Error("THREE.GLTFLoader: Image " + i + " is missing URI and bufferView"); + else if (p.uri === void 0) + throw new Error("THREE.GLTFLoader: Image " + n + " is missing URI and bufferView"); const w = Promise.resolve(d).then(function(_) { - return new Promise(function(y, C) { - let I = y; - r.isImageBitmapLoader === true && (I = function(S) { + return new Promise(function(y, P) { + let I2 = y; + r.isImageBitmapLoader === true && (I2 = function(S) { const R = new Texture(S); R.needsUpdate = true, y(R); - }), r.load(LoaderUtils.resolveURL(_, c.path), I, void 0, C); + }), r.load(LoaderUtils.resolveURL(_, c.path), I2, void 0, P); }); }).then(function(_) { - return g === true && h.revokeObjectURL(d), _.userData.mimeType = u.mimeType || Lu(u.uri), _; + return g === true && h.revokeObjectURL(d), _.userData.mimeType = p.mimeType || zp(p.uri), _; }).catch(function(_) { throw console.error("THREE.GLTFLoader: Couldn't load texture", d), _; }); - return this.sourceCache[i] = w, w; + return this.sourceCache[n] = w, w; } /** * Asynchronously assigns a texture to the given material parameters. @@ -2334,17 +2377,17 @@ var Ru = class { * @param {Object} mapDef * @return {Promise} */ - assignTexture(i, r, s, a) { + assignTexture(n, r, s, a) { const c = this; - return this.getDependency("texture", s.index).then(function(u) { + return this.getDependency("texture", s.index).then(function(p) { if (s.texCoord !== void 0 && s.texCoord != 0 && !(r === "aoMap" && s.texCoord == 1) && console.warn("THREE.GLTFLoader: Custom UV set " + s.texCoord + " for texture " + r + " not yet supported."), c.extensions[re.KHR_TEXTURE_TRANSFORM]) { const h = s.extensions !== void 0 ? s.extensions[re.KHR_TEXTURE_TRANSFORM] : void 0; if (h) { - const d = c.associations.get(u); - u = c.extensions[re.KHR_TEXTURE_TRANSFORM].extendTexture(u, h), c.associations.set(u, d); + const d = c.associations.get(p); + p = c.extensions[re.KHR_TEXTURE_TRANSFORM].extendTexture(p, h), c.associations.set(p, d); } } - return a !== void 0 && (u.encoding = a), i[r] = u, u; + return a !== void 0 && (p.encoding = a), n[r] = p, p; }); } /** @@ -2355,26 +2398,26 @@ var Ru = class { * be created if necessary, and reused from a cache. * @param {Object3D} mesh Mesh, Line, or Points instance. */ - assignFinalMaterial(i) { - const r = i.geometry; - let s = i.material; - const a = r.attributes.tangent === void 0, c = r.attributes.color !== void 0, u = r.attributes.normal === void 0; - if (i.isPoints) { + assignFinalMaterial(n) { + const r = n.geometry; + let s = n.material; + const a = r.attributes.tangent === void 0, c = r.attributes.color !== void 0, p = r.attributes.normal === void 0; + if (n.isPoints) { const h = "PointsMaterial:" + s.uuid; let d = this.cache.get(h); d || (d = new PointsMaterial(), Material.prototype.copy.call(d, s), d.color.copy(s.color), d.map = s.map, d.sizeAttenuation = false, this.cache.add(h, d)), s = d; - } else if (i.isLine) { + } else if (n.isLine) { const h = "LineBasicMaterial:" + s.uuid; let d = this.cache.get(h); d || (d = new LineBasicMaterial(), Material.prototype.copy.call(d, s), d.color.copy(s.color), this.cache.add(h, d)), s = d; } - if (a || c || u) { + if (a || c || p) { let h = "ClonedMaterial:" + s.uuid + ":"; - s.isGLTFSpecularGlossinessMaterial && (h += "specular-glossiness:"), a && (h += "derivative-tangents:"), c && (h += "vertex-colors:"), u && (h += "flat-shading:"); + s.isGLTFSpecularGlossinessMaterial && (h += "specular-glossiness:"), a && (h += "derivative-tangents:"), c && (h += "vertex-colors:"), p && (h += "flat-shading:"); let d = this.cache.get(h); - d || (d = s.clone(), c && (d.vertexColors = true), u && (d.flatShading = true), a && (d.normalScale && (d.normalScale.y *= -1), d.clearcoatNormalScale && (d.clearcoatNormalScale.y *= -1)), this.cache.add(h, d), this.associations.set(d, this.associations.get(s))), s = d; + d || (d = s.clone(), c && (d.vertexColors = true), p && (d.flatShading = true), a && (d.normalScale && (d.normalScale.y *= -1), d.clearcoatNormalScale && (d.clearcoatNormalScale.y *= -1)), this.cache.add(h, d), this.associations.set(d, this.associations.get(s))), s = d; } - s.aoMap && r.attributes.uv2 === void 0 && r.attributes.uv !== void 0 && r.setAttribute("uv2", r.attributes.uv), i.material = s; + s.aoMap && r.attributes.uv2 === void 0 && r.attributes.uv !== void 0 && r.setAttribute("uv2", r.attributes.uv), n.material = s; } getMaterialType() { return MeshStandardMaterial; @@ -2384,44 +2427,44 @@ var Ru = class { * @param {number} materialIndex * @return {Promise} */ - loadMaterial(i) { - const r = this, s = this.json, a = this.extensions, c = s.materials[i]; - let u; + loadMaterial(n) { + const r = this, s = this.json, a = this.extensions, c = s.materials[n]; + let p; const h = {}, d = c.extensions || {}, g = []; if (d[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) { const _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]; - u = _.getMaterialType(), g.push(_.extendParams(h, c, r)); + p = _.getMaterialType(), g.push(_.extendParams(h, c, r)); } else if (d[re.KHR_MATERIALS_UNLIT]) { const _ = a[re.KHR_MATERIALS_UNLIT]; - u = _.getMaterialType(), g.push(_.extendParams(h, c, r)); + p = _.getMaterialType(), g.push(_.extendParams(h, c, r)); } else { const _ = c.pbrMetallicRoughness || {}; if (h.color = new Color(1, 1, 1), h.opacity = 1, Array.isArray(_.baseColorFactor)) { const y = _.baseColorFactor; h.color.fromArray(y), h.opacity = y[3]; } - _.baseColorTexture !== void 0 && g.push(r.assignTexture(h, "map", _.baseColorTexture, sRGBEncoding)), h.metalness = _.metallicFactor !== void 0 ? _.metallicFactor : 1, h.roughness = _.roughnessFactor !== void 0 ? _.roughnessFactor : 1, _.metallicRoughnessTexture !== void 0 && (g.push(r.assignTexture(h, "metalnessMap", _.metallicRoughnessTexture)), g.push(r.assignTexture(h, "roughnessMap", _.metallicRoughnessTexture))), u = this._invokeOne(function(y) { - return y.getMaterialType && y.getMaterialType(i); + _.baseColorTexture !== void 0 && g.push(r.assignTexture(h, "map", _.baseColorTexture, sRGBEncoding)), h.metalness = _.metallicFactor !== void 0 ? _.metallicFactor : 1, h.roughness = _.roughnessFactor !== void 0 ? _.roughnessFactor : 1, _.metallicRoughnessTexture !== void 0 && (g.push(r.assignTexture(h, "metalnessMap", _.metallicRoughnessTexture)), g.push(r.assignTexture(h, "roughnessMap", _.metallicRoughnessTexture))), p = this._invokeOne(function(y) { + return y.getMaterialType && y.getMaterialType(n); }), g.push(Promise.all(this._invokeAll(function(y) { - return y.extendMaterialParams && y.extendMaterialParams(i, h); + return y.extendMaterialParams && y.extendMaterialParams(n, h); }))); } c.doubleSided === true && (h.side = DoubleSide); - const w = c.alphaMode || Qr.OPAQUE; - if (w === Qr.BLEND ? (h.transparent = true, h.depthWrite = false) : (h.transparent = false, w === Qr.MASK && (h.alphaTest = c.alphaCutoff !== void 0 ? c.alphaCutoff : 0.5)), c.normalTexture !== void 0 && u !== MeshBasicMaterial && (g.push(r.assignTexture(h, "normalMap", c.normalTexture)), h.normalScale = new Vector2(1, 1), c.normalTexture.scale !== void 0)) { + const w = c.alphaMode || io.OPAQUE; + if (w === io.BLEND ? (h.transparent = true, h.depthWrite = false) : (h.transparent = false, w === io.MASK && (h.alphaTest = c.alphaCutoff !== void 0 ? c.alphaCutoff : 0.5)), c.normalTexture !== void 0 && p !== MeshBasicMaterial && (g.push(r.assignTexture(h, "normalMap", c.normalTexture)), h.normalScale = new Vector2(1, 1), c.normalTexture.scale !== void 0)) { const _ = c.normalTexture.scale; h.normalScale.set(_, _); } - return c.occlusionTexture !== void 0 && u !== MeshBasicMaterial && (g.push(r.assignTexture(h, "aoMap", c.occlusionTexture)), c.occlusionTexture.strength !== void 0 && (h.aoMapIntensity = c.occlusionTexture.strength)), c.emissiveFactor !== void 0 && u !== MeshBasicMaterial && (h.emissive = new Color().fromArray(c.emissiveFactor)), c.emissiveTexture !== void 0 && u !== MeshBasicMaterial && g.push(r.assignTexture(h, "emissiveMap", c.emissiveTexture, sRGBEncoding)), Promise.all(g).then(function() { + return c.occlusionTexture !== void 0 && p !== MeshBasicMaterial && (g.push(r.assignTexture(h, "aoMap", c.occlusionTexture)), c.occlusionTexture.strength !== void 0 && (h.aoMapIntensity = c.occlusionTexture.strength)), c.emissiveFactor !== void 0 && p !== MeshBasicMaterial && (h.emissive = new Color().fromArray(c.emissiveFactor)), c.emissiveTexture !== void 0 && p !== MeshBasicMaterial && g.push(r.assignTexture(h, "emissiveMap", c.emissiveTexture, sRGBEncoding)), Promise.all(g).then(function() { let _; - return u === lo ? _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(h) : _ = new u(h), c.name && (_.name = c.name), In(_, c), r.associations.set(_, { - materials: i - }), c.extensions && Hi(a, _, c), _; + return p === fo ? _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(h) : _ = new p(h), c.name && (_.name = c.name), Dn(_, c), r.associations.set(_, { + materials: n + }), c.extensions && $i(a, _, c), _; }); } /** When Object3D instances are targeted by animation, they need unique names. */ - createUniqueName(i) { - const r = PropertyBinding.sanitizeNodeName(i || ""); + createUniqueName(n) { + const r = PropertyBinding.sanitizeNodeName(n || ""); let s = r; for (let a = 1; this.nodeNamesUsed[s]; ++a) s = r + "_" + a; @@ -2435,72 +2478,72 @@ var Ru = class { * @param {Array} primitives * @return {Promise>} */ - loadGeometries(i) { + loadGeometries(n) { const r = this, s = this.extensions, a = this.primitiveCache; function c(h) { return s[re.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(h, r).then(function(d) { - return ha(d, h, r); + return ba(d, h, r); }); } - const u = []; - for (let h = 0, d = i.length; h < d; h++) { - const g = i[h], w = Au(g), _ = a[w]; + const p = []; + for (let h = 0, d = n.length; h < d; h++) { + const g = n[h], w = jp(g), _ = a[w]; if (_) - u.push(_.promise); + p.push(_.promise); else { let y; - g.extensions && g.extensions[re.KHR_DRACO_MESH_COMPRESSION] ? y = c(g) : y = ha(new BufferGeometry(), g, r), a[w] = { + g.extensions && g.extensions[re.KHR_DRACO_MESH_COMPRESSION] ? y = c(g) : y = ba(new BufferGeometry(), g, r), a[w] = { primitive: g, promise: y - }, u.push(y); + }, p.push(y); } } - return Promise.all(u); + return Promise.all(p); } /** * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes * @param {number} meshIndex * @return {Promise} */ - loadMesh(i) { - const r = this, s = this.json, a = this.extensions, c = s.meshes[i], u = c.primitives, h = []; - for (let d = 0, g = u.length; d < g; d++) { - const w = u[d].material === void 0 ? ku(this.cache) : this.getDependency("material", u[d].material); + loadMesh(n) { + const r = this, s = this.json, a = this.extensions, c = s.meshes[n], p = c.primitives, h = []; + for (let d = 0, g = p.length; d < g; d++) { + const w = p[d].material === void 0 ? Np(this.cache) : this.getDependency("material", p[d].material); h.push(w); } - return h.push(r.loadGeometries(u)), Promise.all(h).then(function(d) { + return h.push(r.loadGeometries(p)), Promise.all(h).then(function(d) { const g = d.slice(0, d.length - 1), w = d[d.length - 1], _ = []; - for (let C = 0, I = w.length; C < I; C++) { - const S = w[C], R = u[C]; + for (let P = 0, I2 = w.length; P < I2; P++) { + const S = w[P], R = p[P]; let j; - const F = g[C]; - if (R.mode === Ft.TRIANGLES || R.mode === Ft.TRIANGLE_STRIP || R.mode === Ft.TRIANGLE_FAN || R.mode === void 0) - j = c.isSkinnedMesh === true ? new SkinnedMesh(S, F) : new Mesh(S, F), j.isSkinnedMesh === true && !j.geometry.attributes.skinWeight.normalized && j.normalizeSkinWeights(), R.mode === Ft.TRIANGLE_STRIP ? j.geometry = da(j.geometry, TriangleStripDrawMode) : R.mode === Ft.TRIANGLE_FAN && (j.geometry = da(j.geometry, TriangleFanDrawMode)); - else if (R.mode === Ft.LINES) + const F = g[P]; + if (R.mode === Bt.TRIANGLES || R.mode === Bt.TRIANGLE_STRIP || R.mode === Bt.TRIANGLE_FAN || R.mode === void 0) + j = c.isSkinnedMesh === true ? new SkinnedMesh(S, F) : new Mesh(S, F), j.isSkinnedMesh === true && !j.geometry.attributes.skinWeight.normalized && j.normalizeSkinWeights(), R.mode === Bt.TRIANGLE_STRIP ? j.geometry = ga(j.geometry, TriangleStripDrawMode) : R.mode === Bt.TRIANGLE_FAN && (j.geometry = ga(j.geometry, TriangleFanDrawMode)); + else if (R.mode === Bt.LINES) j = new LineSegments(S, F); - else if (R.mode === Ft.LINE_STRIP) + else if (R.mode === Bt.LINE_STRIP) j = new Line(S, F); - else if (R.mode === Ft.LINE_LOOP) + else if (R.mode === Bt.LINE_LOOP) j = new LineLoop(S, F); - else if (R.mode === Ft.POINTS) + else if (R.mode === Bt.POINTS) j = new Points(S, F); else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + R.mode); - Object.keys(j.geometry.morphAttributes).length > 0 && Su(j, c), j.name = r.createUniqueName(c.name || "mesh_" + i), In(j, c), R.extensions && Hi(a, j, R), r.assignFinalMaterial(j), _.push(j); + Object.keys(j.geometry.morphAttributes).length > 0 && Bp(j, c), j.name = r.createUniqueName(c.name || "mesh_" + n), Dn(j, c), R.extensions && $i(a, j, R), r.assignFinalMaterial(j), _.push(j); } - for (let C = 0, I = _.length; C < I; C++) - r.associations.set(_[C], { - meshes: i, - primitives: C + for (let P = 0, I2 = _.length; P < I2; P++) + r.associations.set(_[P], { + meshes: n, + primitives: P }); if (_.length === 1) return _[0]; const y = new Group(); r.associations.set(y, { - meshes: i + meshes: n }); - for (let C = 0, I = _.length; C < I; C++) - y.add(_[C]); + for (let P = 0, I2 = _.length; P < I2; P++) + y.add(_[P]); return y; }); } @@ -2509,22 +2552,22 @@ var Ru = class { * @param {number} cameraIndex * @return {Promise} */ - loadCamera(i) { + loadCamera(n) { let r; - const s = this.json.cameras[i], a = s[s.type]; + const s = this.json.cameras[n], a = s[s.type]; if (!a) { console.warn("THREE.GLTFLoader: Missing camera parameters."); return; } - return s.type === "perspective" ? r = new PerspectiveCamera(MathUtils.radToDeg(a.yfov), a.aspectRatio || 1, a.znear || 1, a.zfar || 2e6) : s.type === "orthographic" && (r = new OrthographicCamera(-a.xmag, a.xmag, a.ymag, -a.ymag, a.znear, a.zfar)), s.name && (r.name = this.createUniqueName(s.name)), In(r, s), Promise.resolve(r); + return s.type === "perspective" ? r = new PerspectiveCamera(MathUtils.radToDeg(a.yfov), a.aspectRatio || 1, a.znear || 1, a.zfar || 2e6) : s.type === "orthographic" && (r = new OrthographicCamera(-a.xmag, a.xmag, a.ymag, -a.ymag, a.znear, a.zfar)), s.name && (r.name = this.createUniqueName(s.name)), Dn(r, s), Promise.resolve(r); } /** * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins * @param {number} skinIndex * @return {Promise} */ - loadSkin(i) { - const r = this.json.skins[i], s = { + loadSkin(n) { + const r = this.json.skins[n], s = { joints: r.joints }; return r.inverseBindMatrices === void 0 ? Promise.resolve(s) : this.getDependency("accessor", r.inverseBindMatrices).then(function(a) { @@ -2536,65 +2579,65 @@ var Ru = class { * @param {number} animationIndex * @return {Promise} */ - loadAnimation(i) { - const s = this.json.animations[i], a = [], c = [], u = [], h = [], d = []; + loadAnimation(n) { + const s = this.json.animations[n], a = [], c = [], p = [], h = [], d = []; for (let g = 0, w = s.channels.length; g < w; g++) { - const _ = s.channels[g], y = s.samplers[_.sampler], C = _.target, I = C.node, S = s.parameters !== void 0 ? s.parameters[y.input] : y.input, R = s.parameters !== void 0 ? s.parameters[y.output] : y.output; - a.push(this.getDependency("node", I)), c.push(this.getDependency("accessor", S)), u.push(this.getDependency("accessor", R)), h.push(y), d.push(C); + const _ = s.channels[g], y = s.samplers[_.sampler], P = _.target, I2 = P.node, S = s.parameters !== void 0 ? s.parameters[y.input] : y.input, R = s.parameters !== void 0 ? s.parameters[y.output] : y.output; + a.push(this.getDependency("node", I2)), c.push(this.getDependency("accessor", S)), p.push(this.getDependency("accessor", R)), h.push(y), d.push(P); } - return Promise.all([Promise.all(a), Promise.all(c), Promise.all(u), Promise.all(h), Promise.all(d)]).then(function(g) { - const w = g[0], _ = g[1], y = g[2], C = g[3], I = g[4], S = []; + return Promise.all([Promise.all(a), Promise.all(c), Promise.all(p), Promise.all(h), Promise.all(d)]).then(function(g) { + const w = g[0], _ = g[1], y = g[2], P = g[3], I2 = g[4], S = []; for (let j = 0, F = w.length; j < F; j++) { - const V = w[j], D = _[j], Y = y[j], G = C[j], N = I[j]; + const V = w[j], D2 = _[j], Y = y[j], G = P[j], N = I2[j]; if (V === void 0) continue; V.updateMatrix(); let O; - switch (nn[N.path]) { - case nn.weights: + switch (rn[N.path]) { + case rn.weights: O = NumberKeyframeTrack; break; - case nn.rotation: + case rn.rotation: O = QuaternionKeyframeTrack; break; - case nn.position: - case nn.scale: + case rn.position: + case rn.scale: default: O = VectorKeyframeTrack; break; } - const H = V.name ? V.name : V.uuid, K = G.interpolation !== void 0 ? Tu[G.interpolation] : InterpolateLinear, q = []; - nn[N.path] === nn.weights ? V.traverse(function(ge) { + const H = V.name ? V.name : V.uuid, K = G.interpolation !== void 0 ? Op[G.interpolation] : InterpolateLinear, q = []; + rn[N.path] === rn.weights ? V.traverse(function(ge) { ge.morphTargetInfluences && q.push(ge.name ? ge.name : ge.uuid); }) : q.push(H); - let ue = Y.array; + let pe = Y.array; if (Y.normalized) { - const ge = po(ue.constructor), ce = new Float32Array(ue.length); - for (let me = 0, he = ue.length; me < he; me++) - ce[me] = ue[me] * ge; - ue = ce; + const ge = bo(pe.constructor), ce = new Float32Array(pe.length); + for (let me = 0, he = pe.length; me < he; me++) + ce[me] = pe[me] * ge; + pe = ce; } for (let ge = 0, ce = q.length; ge < ce; ge++) { - const me = new O(q[ge] + "." + nn[N.path], D.array, ue, K); + const me = new O(q[ge] + "." + rn[N.path], D2.array, pe, K); G.interpolation === "CUBICSPLINE" && (me.createInterpolant = function(ee) { - const X = this instanceof QuaternionKeyframeTrack ? Pu : Xa; + const X = this instanceof QuaternionKeyframeTrack ? Dp : Wa; return new X(this.times, this.values, this.getValueSize() / 3, ee); }, me.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true), S.push(me); } } - const R = s.name ? s.name : "animation_" + i; + const R = s.name ? s.name : "animation_" + n; return new AnimationClip(R, void 0, S); }); } - createNodeMesh(i) { - const r = this.json, s = this, a = r.nodes[i]; + createNodeMesh(n) { + const r = this.json, s = this, a = r.nodes[n]; return a.mesh === void 0 ? null : s.getDependency("mesh", a.mesh).then(function(c) { - const u = s._getNodeRef(s.meshCache, a.mesh, c); - return a.weights !== void 0 && u.traverse(function(h) { + const p = s._getNodeRef(s.meshCache, a.mesh, c); + return a.weights !== void 0 && p.traverse(function(h) { if (h.isMesh) for (let d = 0, g = a.weights.length; d < g; d++) h.morphTargetInfluences[d] = a.weights[d]; - }), u; + }), p; }); } /** @@ -2602,16 +2645,16 @@ var Ru = class { * @param {number} nodeIndex * @return {Promise} */ - loadNode(i) { - const r = this.json, s = this.extensions, a = this, c = r.nodes[i], u = c.name ? a.createUniqueName(c.name) : ""; + loadNode(n) { + const r = this.json, s = this.extensions, a = this, c = r.nodes[n], p = c.name ? a.createUniqueName(c.name) : ""; return function() { const h = [], d = a._invokeOne(function(g) { - return g.createNodeMesh && g.createNodeMesh(i); + return g.createNodeMesh && g.createNodeMesh(n); }); return d && h.push(d), c.camera !== void 0 && h.push(a.getDependency("camera", c.camera).then(function(g) { return a._getNodeRef(a.cameraCache, c.camera, g); })), a._invokeAll(function(g) { - return g.createNodeAttachment && g.createNodeAttachment(i); + return g.createNodeAttachment && g.createNodeAttachment(n); }).forEach(function(g) { h.push(g); }), Promise.all(h); @@ -2620,12 +2663,12 @@ var Ru = class { if (c.isBone === true ? d = new Bone() : h.length > 1 ? d = new Group() : h.length === 1 ? d = h[0] : d = new Object3D(), d !== h[0]) for (let g = 0, w = h.length; g < w; g++) d.add(h[g]); - if (c.name && (d.userData.name = c.name, d.name = u), In(d, c), c.extensions && Hi(s, d, c), c.matrix !== void 0) { + if (c.name && (d.userData.name = c.name, d.name = p), Dn(d, c), c.extensions && $i(s, d, c), c.matrix !== void 0) { const g = new Matrix4(); g.fromArray(c.matrix), d.applyMatrix4(g); } else c.translation !== void 0 && d.position.fromArray(c.translation), c.rotation !== void 0 && d.quaternion.fromArray(c.rotation), c.scale !== void 0 && d.scale.fromArray(c.scale); - return a.associations.has(d) || a.associations.set(d, {}), a.associations.get(d).nodes = i, d; + return a.associations.has(d) || a.associations.set(d, {}), a.associations.get(d).nodes = n, d; }); } /** @@ -2633,37 +2676,37 @@ var Ru = class { * @param {number} sceneIndex * @return {Promise} */ - loadScene(i) { - const r = this.json, s = this.extensions, a = this.json.scenes[i], c = this, u = new Group(); - a.name && (u.name = c.createUniqueName(a.name)), In(u, a), a.extensions && Hi(s, u, a); + loadScene(n) { + const r = this.json, s = this.extensions, a = this.json.scenes[n], c = this, p = new Group(); + a.name && (p.name = c.createUniqueName(a.name)), Dn(p, a), a.extensions && $i(s, p, a); const h = a.nodes || [], d = []; for (let g = 0, w = h.length; g < w; g++) - d.push(Ya(h[g], u, r, c)); + d.push(Ja(h[g], p, r, c)); return Promise.all(d).then(function() { const g = (w) => { const _ = /* @__PURE__ */ new Map(); - for (const [y, C] of c.associations) - (y instanceof Material || y instanceof Texture) && _.set(y, C); + for (const [y, P] of c.associations) + (y instanceof Material || y instanceof Texture) && _.set(y, P); return w.traverse((y) => { - const C = c.associations.get(y); - C != null && _.set(y, C); + const P = c.associations.get(y); + P != null && _.set(y, P); }), _; }; - return c.associations = g(u), u; + return c.associations = g(p), p; }); } }; -function Ya(b, i, r, s) { - const a = r.nodes[b]; - return s.getDependency("node", b).then(function(c) { +function Ja(v, n, r, s) { + const a = r.nodes[v]; + return s.getDependency("node", v).then(function(c) { if (a.skin === void 0) return c; - let u; + let p; return s.getDependency("skin", a.skin).then(function(h) { - u = h; + p = h; const d = []; - for (let g = 0, w = u.joints.length; g < w; g++) - d.push(s.getDependency("node", u.joints[g])); + for (let g = 0, w = p.joints.length; g < w; g++) + d.push(s.getDependency("node", p.joints[g])); return Promise.all(d); }).then(function(h) { return c.traverse(function(d) { @@ -2671,37 +2714,37 @@ function Ya(b, i, r, s) { return; const g = [], w = []; for (let _ = 0, y = h.length; _ < y; _++) { - const C = h[_]; - if (C) { - g.push(C); - const I = new Matrix4(); - u.inverseBindMatrices !== void 0 && I.fromArray(u.inverseBindMatrices.array, _ * 16), w.push(I); + const P = h[_]; + if (P) { + g.push(P); + const I2 = new Matrix4(); + p.inverseBindMatrices !== void 0 && I2.fromArray(p.inverseBindMatrices.array, _ * 16), w.push(I2); } else - console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', u.joints[_]); + console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', p.joints[_]); } d.bind(new Skeleton(g, w), d.matrixWorld); }), c; }); }).then(function(c) { - i.add(c); - const u = []; + n.add(c); + const p = []; if (a.children) { const h = a.children; for (let d = 0, g = h.length; d < g; d++) { const w = h[d]; - u.push(Ya(w, c, r, s)); + p.push(Ja(w, c, r, s)); } } - return Promise.all(u); + return Promise.all(p); }); } -function Iu(b, i, r) { - const s = i.attributes, a = new Box3(); +function Gp(v, n, r) { + const s = n.attributes, a = new Box3(); if (s.POSITION !== void 0) { const h = r.json.accessors[s.POSITION], d = h.min, g = h.max; if (d !== void 0 && g !== void 0) { if (a.set(new Vector3(d[0], d[1], d[2]), new Vector3(g[0], g[1], g[2])), h.normalized) { - const w = po(Wi[h.componentType]); + const w = bo(es[h.componentType]); a.min.multiplyScalar(w), a.max.multiplyScalar(w); } } else { @@ -2710,16 +2753,16 @@ function Iu(b, i, r) { } } else return; - const c = i.targets; + const c = n.targets; if (c !== void 0) { const h = new Vector3(), d = new Vector3(); for (let g = 0, w = c.length; g < w; g++) { const _ = c[g]; if (_.POSITION !== void 0) { - const y = r.json.accessors[_.POSITION], C = y.min, I = y.max; - if (C !== void 0 && I !== void 0) { - if (d.setX(Math.max(Math.abs(C[0]), Math.abs(I[0]))), d.setY(Math.max(Math.abs(C[1]), Math.abs(I[1]))), d.setZ(Math.max(Math.abs(C[2]), Math.abs(I[2]))), y.normalized) { - const S = po(Wi[y.componentType]); + const y = r.json.accessors[_.POSITION], P = y.min, I2 = y.max; + if (P !== void 0 && I2 !== void 0) { + if (d.setX(Math.max(Math.abs(P[0]), Math.abs(I2[0]))), d.setY(Math.max(Math.abs(P[1]), Math.abs(I2[1]))), d.setZ(Math.max(Math.abs(P[2]), Math.abs(I2[2]))), y.normalized) { + const S = bo(es[y.componentType]); d.multiplyScalar(S); } h.max(d); @@ -2729,70 +2772,70 @@ function Iu(b, i, r) { } a.expandByVector(h); } - b.boundingBox = a; - const u = new Sphere(); - a.getCenter(u.center), u.radius = a.min.distanceTo(a.max) / 2, b.boundingSphere = u; + v.boundingBox = a; + const p = new Sphere(); + a.getCenter(p.center), p.radius = a.min.distanceTo(a.max) / 2, v.boundingSphere = p; } -function ha(b, i, r) { - const s = i.attributes, a = []; - function c(u, h) { - return r.getDependency("accessor", u).then(function(d) { - b.setAttribute(h, d); +function ba(v, n, r) { + const s = n.attributes, a = []; + function c(p, h) { + return r.getDependency("accessor", p).then(function(d) { + v.setAttribute(h, d); }); } - for (const u in s) { - const h = co[u] || u.toLowerCase(); - h in b.attributes || a.push(c(s[u], h)); + for (const p in s) { + const h = vo[p] || p.toLowerCase(); + h in v.attributes || a.push(c(s[p], h)); } - if (i.indices !== void 0 && !b.index) { - const u = r.getDependency("accessor", i.indices).then(function(h) { - b.setIndex(h); + if (n.indices !== void 0 && !v.index) { + const p = r.getDependency("accessor", n.indices).then(function(h) { + v.setIndex(h); }); - a.push(u); + a.push(p); } - return In(b, i), Iu(b, i, r), Promise.all(a).then(function() { - return i.targets !== void 0 ? Mu(b, i.targets, r) : b; + return Dn(v, n), Gp(v, n, r), Promise.all(a).then(function() { + return n.targets !== void 0 ? Fp(v, n.targets, r) : v; }); } -function da(b, i) { - let r = b.getIndex(); +function ga(v, n) { + let r = v.getIndex(); if (r === null) { - const u = [], h = b.getAttribute("position"); + const p = [], h = v.getAttribute("position"); if (h !== void 0) { for (let d = 0; d < h.count; d++) - u.push(d); - b.setIndex(u), r = b.getIndex(); + p.push(d); + v.setIndex(p), r = v.getIndex(); } else - return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), b; + return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), v; } const s = r.count - 2, a = []; - if (i === TriangleFanDrawMode) - for (let u = 1; u <= s; u++) - a.push(r.getX(0)), a.push(r.getX(u)), a.push(r.getX(u + 1)); + if (n === TriangleFanDrawMode) + for (let p = 1; p <= s; p++) + a.push(r.getX(0)), a.push(r.getX(p)), a.push(r.getX(p + 1)); else - for (let u = 0; u < s; u++) - u % 2 === 0 ? (a.push(r.getX(u)), a.push(r.getX(u + 1)), a.push(r.getX(u + 2))) : (a.push(r.getX(u + 2)), a.push(r.getX(u + 1)), a.push(r.getX(u))); + for (let p = 0; p < s; p++) + p % 2 === 0 ? (a.push(r.getX(p)), a.push(r.getX(p + 1)), a.push(r.getX(p + 2))) : (a.push(r.getX(p + 2)), a.push(r.getX(p + 1)), a.push(r.getX(p))); a.length / 3 !== s && console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles."); - const c = b.clone(); + const c = v.clone(); return c.setIndex(a), c; } -var Vu = class extends ExtrudeGeometry { - constructor(i, r = {}) { +var Hp = class extends ExtrudeGeometry { + constructor(n, r = {}) { const { bevelEnabled: s = false, bevelSize: a = 8, bevelThickness: c = 10, - font: u, + font: p, height: h = 50, size: d = 100, lineHeight: g = 1, letterSpacing: w = 0, ..._ } = r; - if (u === void 0) + if (p === void 0) super(); else { - const y = u.generateShapes(i, d, { + const y = p.generateShapes(n, d, { lineHeight: g, letterSpacing: w }); @@ -2807,66 +2850,66 @@ var Vu = class extends ExtrudeGeometry { this.type = "TextGeometry"; } }; -function qa(b, i, r) { - const s = r.length - b - 1; - if (i >= r[s]) +function el(v, n, r) { + const s = r.length - v - 1; + if (n >= r[s]) return s - 1; - if (i <= r[b]) - return b; - let a = b, c = s, u = Math.floor((a + c) / 2); - for (; i < r[u] || i >= r[u + 1]; ) - i < r[u] ? c = u : a = u, u = Math.floor((a + c) / 2); - return u; + if (n <= r[v]) + return v; + let a = v, c = s, p = Math.floor((a + c) / 2); + for (; n < r[p] || n >= r[p + 1]; ) + n < r[p] ? c = p : a = p, p = Math.floor((a + c) / 2); + return p; } -function Du(b, i, r, s) { - const a = [], c = [], u = []; +function Kp(v, n, r, s) { + const a = [], c = [], p = []; a[0] = 1; for (let h = 1; h <= r; ++h) { - c[h] = i - s[b + 1 - h], u[h] = s[b + h] - i; + c[h] = n - s[v + 1 - h], p[h] = s[v + h] - n; let d = 0; for (let g = 0; g < h; ++g) { - const w = u[g + 1], _ = c[h - g], y = a[g] / (w + _); + const w = p[g + 1], _ = c[h - g], y = a[g] / (w + _); a[g] = d + w * y, d = _ * y; } a[h] = d; } return a; } -function Ou(b, i, r, s) { - const a = qa(b, s, i), c = Du(a, s, b, i), u = new Vector4(0, 0, 0, 0); - for (let h = 0; h <= b; ++h) { - const d = r[a - b + h], g = c[h], w = d.w * g; - u.x += d.x * w, u.y += d.y * w, u.z += d.z * w, u.w += d.w * g; +function $p(v, n, r, s) { + const a = el(v, s, n), c = Kp(a, s, v, n), p = new Vector4(0, 0, 0, 0); + for (let h = 0; h <= v; ++h) { + const d = r[a - v + h], g = c[h], w = d.w * g; + p.x += d.x * w, p.y += d.y * w, p.z += d.z * w, p.w += d.w * g; } - return u; + return p; } -function Nu(b, i, r, s, a) { +function Xp(v, n, r, s, a) { const c = []; for (let y = 0; y <= r; ++y) c[y] = 0; - const u = []; + const p = []; for (let y = 0; y <= s; ++y) - u[y] = c.slice(0); + p[y] = c.slice(0); const h = []; for (let y = 0; y <= r; ++y) h[y] = c.slice(0); h[0][0] = 1; const d = c.slice(0), g = c.slice(0); for (let y = 1; y <= r; ++y) { - d[y] = i - a[b + 1 - y], g[y] = a[b + y] - i; - let C = 0; - for (let I = 0; I < y; ++I) { - const S = g[I + 1], R = d[y - I]; - h[y][I] = S + R; - const j = h[I][y - 1] / h[y][I]; - h[I][y] = C + S * j, C = R * j; + d[y] = n - a[v + 1 - y], g[y] = a[v + y] - n; + let P = 0; + for (let I2 = 0; I2 < y; ++I2) { + const S = g[I2 + 1], R = d[y - I2]; + h[y][I2] = S + R; + const j = h[I2][y - 1] / h[y][I2]; + h[I2][y] = P + S * j, P = R * j; } - h[y][y] = C; + h[y][y] = P; } for (let y = 0; y <= r; ++y) - u[0][y] = h[y][r]; + p[0][y] = h[y][r]; for (let y = 0; y <= r; ++y) { - let C = 0, I = 1; + let P = 0, I2 = 1; const S = []; for (let R = 0; R <= r; ++R) S[R] = c.slice(0); @@ -2874,163 +2917,163 @@ function Nu(b, i, r, s, a) { for (let R = 1; R <= s; ++R) { let j = 0; const F = y - R, V = r - R; - y >= R && (S[I][0] = S[C][0] / h[V + 1][F], j = S[I][0] * h[F][V]); - const D = F >= -1 ? 1 : -F, Y = y - 1 <= V ? R - 1 : r - y; - for (let G = D; G <= Y; ++G) - S[I][G] = (S[C][G] - S[C][G - 1]) / h[V + 1][F + G], j += S[I][G] * h[F + G][V]; - y <= V && (S[I][R] = -S[C][R - 1] / h[V + 1][y], j += S[I][R] * h[y][V]), u[R][y] = j; - var w = C; - C = I, I = w; + y >= R && (S[I2][0] = S[P][0] / h[V + 1][F], j = S[I2][0] * h[F][V]); + const D2 = F >= -1 ? 1 : -F, Y = y - 1 <= V ? R - 1 : r - y; + for (let G = D2; G <= Y; ++G) + S[I2][G] = (S[P][G] - S[P][G - 1]) / h[V + 1][F + G], j += S[I2][G] * h[F + G][V]; + y <= V && (S[I2][R] = -S[P][R - 1] / h[V + 1][y], j += S[I2][R] * h[y][V]), p[R][y] = j; + var w = P; + P = I2, I2 = w; } } var _ = r; for (let y = 1; y <= s; ++y) { - for (let C = 0; C <= r; ++C) - u[y][C] *= _; + for (let P = 0; P <= r; ++P) + p[y][P] *= _; _ *= r - y; } - return u; + return p; } -function Fu(b, i, r, s, a) { - const c = a < b ? a : b, u = [], h = qa(b, s, i), d = Nu(h, s, b, c, i), g = []; +function Yp(v, n, r, s, a) { + const c = a < v ? a : v, p = [], h = el(v, s, n), d = Xp(h, s, v, c, n), g = []; for (let _ = 0; _ < r.length; ++_) { var w = r[_].clone(); const y = w.w; w.x *= y, w.y *= y, w.z *= y, g[_] = w; } for (let _ = 0; _ <= c; ++_) { - var w = g[h - b].clone().multiplyScalar(d[_][0]); - for (let C = 1; C <= b; ++C) - w.add(g[h - b + C].clone().multiplyScalar(d[_][C])); - u[_] = w; + var w = g[h - v].clone().multiplyScalar(d[_][0]); + for (let P = 1; P <= v; ++P) + w.add(g[h - v + P].clone().multiplyScalar(d[_][P])); + p[_] = w; } for (let _ = c + 1; _ <= a + 1; ++_) - u[_] = new Vector4(0, 0, 0); - return u; + p[_] = new Vector4(0, 0, 0); + return p; } -function Bu(b, i) { +function qp(v, n) { let r = 1; - for (let a = 2; a <= b; ++a) + for (let a = 2; a <= v; ++a) r *= a; let s = 1; - for (let a = 2; a <= i; ++a) + for (let a = 2; a <= n; ++a) s *= a; - for (let a = 2; a <= b - i; ++a) + for (let a = 2; a <= v - n; ++a) s *= a; return r / s; } -function ju(b) { - const i = b.length, r = [], s = []; - for (let c = 0; c < i; ++c) { - const u = b[c]; - r[c] = new Vector3(u.x, u.y, u.z), s[c] = u.w; +function Qp(v) { + const n = v.length, r = [], s = []; + for (let c = 0; c < n; ++c) { + const p = v[c]; + r[c] = new Vector3(p.x, p.y, p.z), s[c] = p.w; } const a = []; - for (let c = 0; c < i; ++c) { - const u = r[c].clone(); + for (let c = 0; c < n; ++c) { + const p = r[c].clone(); for (let h = 1; h <= c; ++h) - u.sub(a[c - h].clone().multiplyScalar(Bu(c, h) * s[h])); - a[c] = u.divideScalar(s[0]); + p.sub(a[c - h].clone().multiplyScalar(qp(c, h) * s[h])); + a[c] = p.divideScalar(s[0]); } return a; } -function zu(b, i, r, s, a) { - const c = Fu(b, i, r, s, a); - return ju(c); +function Zp(v, n, r, s, a) { + const c = Yp(v, n, r, s, a); + return Qp(c); } -var ma = class extends Curve { - constructor(i, r, s, a, c) { - super(), this.degree = i, this.knots = r, this.controlPoints = [], this.startKnot = a || 0, this.endKnot = c || this.knots.length - 1; - for (let u = 0; u < s.length; ++u) { - const h = s[u]; - this.controlPoints[u] = new Vector4(h.x, h.y, h.z, h.w); +var _a = class extends Curve { + constructor(n, r, s, a, c) { + super(), this.degree = n, this.knots = r, this.controlPoints = [], this.startKnot = a || 0, this.endKnot = c || this.knots.length - 1; + for (let p = 0; p < s.length; ++p) { + const h = s[p]; + this.controlPoints[p] = new Vector4(h.x, h.y, h.z, h.w); } } - getPoint(i, r) { - const s = r || new Vector3(), a = this.knots[this.startKnot] + i * (this.knots[this.endKnot] - this.knots[this.startKnot]), c = Ou(this.degree, this.knots, this.controlPoints, a); + getPoint(n, r) { + const s = r || new Vector3(), a = this.knots[this.startKnot] + n * (this.knots[this.endKnot] - this.knots[this.startKnot]), c = $p(this.degree, this.knots, this.controlPoints, a); return c.w != 1 && c.divideScalar(c.w), s.set(c.x, c.y, c.z); } - getTangent(i, r) { - const s = r || new Vector3(), a = this.knots[0] + i * (this.knots[this.knots.length - 1] - this.knots[0]), c = zu(this.degree, this.knots, this.controlPoints, a, 1); + getTangent(n, r) { + const s = r || new Vector3(), a = this.knots[0] + n * (this.knots[this.knots.length - 1] - this.knots[0]), c = Zp(this.degree, this.knots, this.controlPoints, a, 1); return s.copy(c[1]).normalize(), s; } }; var se; var Ae; -var We; -var Uu = class extends Loader { - constructor(i) { - super(i); - } - load(i, r, s, a) { - const c = this, u = c.path === "" ? LoaderUtils.extractUrlBase(i) : c.path, h = new FileLoader(this.manager); - h.setPath(c.path), h.setResponseType("arraybuffer"), h.setRequestHeader(c.requestHeader), h.setWithCredentials(c.withCredentials), h.load(i, function(d) { +var Je; +var Wp = class extends Loader { + constructor(n) { + super(n); + } + load(n, r, s, a) { + const c = this, p = c.path === "" ? LoaderUtils.extractUrlBase(n) : c.path, h = new FileLoader(this.manager); + h.setPath(c.path), h.setResponseType("arraybuffer"), h.setRequestHeader(c.requestHeader), h.setWithCredentials(c.withCredentials), h.load(n, function(d) { try { - r(c.parse(d, u)); + r(c.parse(d, p)); } catch (g) { - a ? a(g) : console.error(g), c.manager.itemError(i); + a ? a(g) : console.error(g), c.manager.itemError(n); } }, s, a); } - parse(i, r) { - if (Yu(i)) - se = new Xu().parse(i); + parse(n, r) { + if (sh(n)) + se = new ih().parse(n); else { - const a = Ja(i); - if (!qu(a)) + const a = sl(n); + if (!rh(a)) throw new Error("THREE.FBXLoader: Unknown format."); - if (va(a) < 7e3) - throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + va(a)); - se = new $u().parse(a); + if (ya(a) < 7e3) + throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + ya(a)); + se = new nh().parse(a); } const s = new TextureLoader(this.manager).setPath(this.resourcePath || r).setCrossOrigin(this.crossOrigin); - return new Gu(s, this.manager).parse(se); + return new Jp(s, this.manager).parse(se); } }; -var Gu = class { - constructor(i, r) { - this.textureLoader = i, this.manager = r; +var Jp = class { + constructor(n, r) { + this.textureLoader = n, this.manager = r; } parse() { Ae = this.parseConnections(); - const i = this.parseImages(), r = this.parseTextures(i), s = this.parseMaterials(r), a = this.parseDeformers(), c = new Hu().parse(a); - return this.parseScene(a, c, s), We; + const n = this.parseImages(), r = this.parseTextures(n), s = this.parseMaterials(r), a = this.parseDeformers(), c = new eh().parse(a); + return this.parseScene(a, c, s), Je; } // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry ) // and details the connection type parseConnections() { - const i = /* @__PURE__ */ new Map(); + const n = /* @__PURE__ */ new Map(); return "Connections" in se && se.Connections.connections.forEach(function(s) { - const a = s[0], c = s[1], u = s[2]; - i.has(a) || i.set(a, { + const a = s[0], c = s[1], p = s[2]; + n.has(a) || n.set(a, { parents: [], children: [] }); const h = { ID: c, - relationship: u + relationship: p }; - i.get(a).parents.push(h), i.has(c) || i.set(c, { + n.get(a).parents.push(h), n.has(c) || n.set(c, { parents: [], children: [] }); const d = { ID: a, - relationship: u + relationship: p }; - i.get(c).children.push(d); - }), i; + n.get(c).children.push(d); + }), n; } // Parse FBXTree.Objects.Video for embedded image data // These images are connected to textures in FBXTree.Objects.Textures // via FBXTree.Connections. parseImages() { - const i = {}, r = {}; + const n = {}, r = {}; if ("Video" in se.Objects) { const s = se.Objects.Video; for (const a in s) { - const c = s[a], u = parseInt(a); - if (i[u] = c.RelativeFilename || c.Filename, "Content" in c) { + const c = s[a], p = parseInt(a); + if (n[p] = c.RelativeFilename || c.Filename, "Content" in c) { const h = c.Content instanceof ArrayBuffer && c.Content.byteLength > 0, d = typeof c.Content == "string" && c.Content !== ""; if (h || d) { const g = this.parseImage(s[a]); @@ -3039,15 +3082,15 @@ var Gu = class { } } } - for (const s in i) { - const a = i[s]; - r[a] !== void 0 ? i[s] = r[a] : i[s] = i[s].split("\\").pop(); + for (const s in n) { + const a = n[s]; + r[a] !== void 0 ? n[s] = r[a] : n[s] = n[s].split("\\").pop(); } - return i; + return n; } // Parse embedded image data in FBXTree.Video.Content - parseImage(i) { - const r = i.Content, s = i.RelativeFilename || i.Filename, a = s.slice(s.lastIndexOf(".") + 1).toLowerCase(); + parseImage(n) { + const r = n.Content, s = n.RelativeFilename || n.Filename, a = s.slice(s.lastIndexOf(".") + 1).toLowerCase(); let c; switch (a) { case "bmp": @@ -3073,8 +3116,8 @@ var Gu = class { if (typeof r == "string") return "data:" + c + ";base64," + r; { - const u = new Uint8Array(r); - return window.URL.createObjectURL(new Blob([u], { + const p = new Uint8Array(r); + return window.URL.createObjectURL(new Blob([p], { type: c })); } @@ -3082,49 +3125,49 @@ var Gu = class { // Parse nodes in FBXTree.Objects.Texture // These contain details such as UV scaling, cropping, rotation etc and are connected // to images in FBXTree.Objects.Video - parseTextures(i) { + parseTextures(n) { const r = /* @__PURE__ */ new Map(); if ("Texture" in se.Objects) { const s = se.Objects.Texture; for (const a in s) { - const c = this.parseTexture(s[a], i); + const c = this.parseTexture(s[a], n); r.set(parseInt(a), c); } } return r; } // Parse individual node in FBXTree.Objects.Texture - parseTexture(i, r) { - const s = this.loadTexture(i, r); - s.ID = i.id, s.name = i.attrName; - const a = i.WrapModeU, c = i.WrapModeV, u = a !== void 0 ? a.value : 0, h = c !== void 0 ? c.value : 0; - if (s.wrapS = u === 0 ? RepeatWrapping : ClampToEdgeWrapping, s.wrapT = h === 0 ? RepeatWrapping : ClampToEdgeWrapping, "Scaling" in i) { - const d = i.Scaling.value; + parseTexture(n, r) { + const s = this.loadTexture(n, r); + s.ID = n.id, s.name = n.attrName; + const a = n.WrapModeU, c = n.WrapModeV, p = a !== void 0 ? a.value : 0, h = c !== void 0 ? c.value : 0; + if (s.wrapS = p === 0 ? RepeatWrapping : ClampToEdgeWrapping, s.wrapT = h === 0 ? RepeatWrapping : ClampToEdgeWrapping, "Scaling" in n) { + const d = n.Scaling.value; s.repeat.x = d[0], s.repeat.y = d[1]; } return s; } // load a texture specified as a blob or data URI, or via an external URL using TextureLoader - loadTexture(i, r) { + loadTexture(n, r) { let s; - const a = this.textureLoader.path, c = Ae.get(i.id).children; + const a = this.textureLoader.path, c = Ae.get(n.id).children; c !== void 0 && c.length > 0 && r[c[0].ID] !== void 0 && (s = r[c[0].ID], (s.indexOf("blob:") === 0 || s.indexOf("data:") === 0) && this.textureLoader.setPath(void 0)); - let u; - const h = i.FileName.slice(-3).toLowerCase(); + let p; + const h = n.FileName.slice(-3).toLowerCase(); if (h === "tga") { const d = this.manager.getHandler(".tga"); - d === null ? (console.warn("FBXLoader: TGA loader not found, creating placeholder texture for", i.RelativeFilename), u = new Texture()) : (d.setPath(this.textureLoader.path), u = d.load(s)); + d === null ? (console.warn("FBXLoader: TGA loader not found, creating placeholder texture for", n.RelativeFilename), p = new Texture()) : (d.setPath(this.textureLoader.path), p = d.load(s)); } else - h === "psd" ? (console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for", i.RelativeFilename), u = new Texture()) : u = this.textureLoader.load(s); - return this.textureLoader.setPath(a), u; + h === "psd" ? (console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for", n.RelativeFilename), p = new Texture()) : p = this.textureLoader.load(s); + return this.textureLoader.setPath(a), p; } // Parse nodes in FBXTree.Objects.Material - parseMaterials(i) { + parseMaterials(n) { const r = /* @__PURE__ */ new Map(); if ("Material" in se.Objects) { const s = se.Objects.Material; for (const a in s) { - const c = this.parseMaterial(s[a], i); + const c = this.parseMaterial(s[a], n); c !== null && r.set(parseInt(a), c); } } @@ -3133,12 +3176,12 @@ var Gu = class { // Parse single node in FBXTree.Objects.Material // Materials are connected to texture maps in FBXTree.Objects.Textures // FBX format currently only supports Lambert and Phong shading models - parseMaterial(i, r) { - const s = i.id, a = i.attrName; - let c = i.ShadingModel; + parseMaterial(n, r) { + const s = n.id, a = n.attrName; + let c = n.ShadingModel; if (typeof c == "object" && (c = c.value), !Ae.has(s)) return null; - const u = this.parseParameters(i, r, s); + const p = this.parseParameters(n, r, s); let h; switch (c.toLowerCase()) { case "phong": @@ -3151,46 +3194,46 @@ var Gu = class { console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.', c), h = new MeshPhongMaterial(); break; } - return h.setValues(u), h.name = a, h; + return h.setValues(p), h.name = a, h; } // Parse FBX material and return parameters suitable for a three.js material // Also parse the texture map and return any textures associated with the material - parseParameters(i, r, s) { + parseParameters(n, r, s) { const a = {}; - i.BumpFactor && (a.bumpScale = i.BumpFactor.value), i.Diffuse ? a.color = new Color().fromArray(i.Diffuse.value) : i.DiffuseColor && (i.DiffuseColor.type === "Color" || i.DiffuseColor.type === "ColorRGB") && (a.color = new Color().fromArray(i.DiffuseColor.value)), i.DisplacementFactor && (a.displacementScale = i.DisplacementFactor.value), i.Emissive ? a.emissive = new Color().fromArray(i.Emissive.value) : i.EmissiveColor && (i.EmissiveColor.type === "Color" || i.EmissiveColor.type === "ColorRGB") && (a.emissive = new Color().fromArray(i.EmissiveColor.value)), i.EmissiveFactor && (a.emissiveIntensity = parseFloat(i.EmissiveFactor.value)), i.Opacity && (a.opacity = parseFloat(i.Opacity.value)), a.opacity < 1 && (a.transparent = true), i.ReflectionFactor && (a.reflectivity = i.ReflectionFactor.value), i.Shininess && (a.shininess = i.Shininess.value), i.Specular ? a.specular = new Color().fromArray(i.Specular.value) : i.SpecularColor && i.SpecularColor.type === "Color" && (a.specular = new Color().fromArray(i.SpecularColor.value)); + n.BumpFactor && (a.bumpScale = n.BumpFactor.value), n.Diffuse ? a.color = new Color().fromArray(n.Diffuse.value) : n.DiffuseColor && (n.DiffuseColor.type === "Color" || n.DiffuseColor.type === "ColorRGB") && (a.color = new Color().fromArray(n.DiffuseColor.value)), n.DisplacementFactor && (a.displacementScale = n.DisplacementFactor.value), n.Emissive ? a.emissive = new Color().fromArray(n.Emissive.value) : n.EmissiveColor && (n.EmissiveColor.type === "Color" || n.EmissiveColor.type === "ColorRGB") && (a.emissive = new Color().fromArray(n.EmissiveColor.value)), n.EmissiveFactor && (a.emissiveIntensity = parseFloat(n.EmissiveFactor.value)), n.Opacity && (a.opacity = parseFloat(n.Opacity.value)), a.opacity < 1 && (a.transparent = true), n.ReflectionFactor && (a.reflectivity = n.ReflectionFactor.value), n.Shininess && (a.shininess = n.Shininess.value), n.Specular ? a.specular = new Color().fromArray(n.Specular.value) : n.SpecularColor && n.SpecularColor.type === "Color" && (a.specular = new Color().fromArray(n.SpecularColor.value)); const c = this; - return Ae.get(s).children.forEach(function(u) { - const h = u.relationship; + return Ae.get(s).children.forEach(function(p) { + const h = p.relationship; switch (h) { case "Bump": - a.bumpMap = c.getTexture(r, u.ID); + a.bumpMap = c.getTexture(r, p.ID); break; case "Maya|TEX_ao_map": - a.aoMap = c.getTexture(r, u.ID); + a.aoMap = c.getTexture(r, p.ID); break; case "DiffuseColor": case "Maya|TEX_color_map": - a.map = c.getTexture(r, u.ID), a.map !== void 0 && (a.map.encoding = sRGBEncoding); + a.map = c.getTexture(r, p.ID), a.map !== void 0 && (a.map.encoding = sRGBEncoding); break; case "DisplacementColor": - a.displacementMap = c.getTexture(r, u.ID); + a.displacementMap = c.getTexture(r, p.ID); break; case "EmissiveColor": - a.emissiveMap = c.getTexture(r, u.ID), a.emissiveMap !== void 0 && (a.emissiveMap.encoding = sRGBEncoding); + a.emissiveMap = c.getTexture(r, p.ID), a.emissiveMap !== void 0 && (a.emissiveMap.encoding = sRGBEncoding); break; case "NormalMap": case "Maya|TEX_normal_map": - a.normalMap = c.getTexture(r, u.ID); + a.normalMap = c.getTexture(r, p.ID); break; case "ReflectionColor": - a.envMap = c.getTexture(r, u.ID), a.envMap !== void 0 && (a.envMap.mapping = EquirectangularReflectionMapping, a.envMap.encoding = sRGBEncoding); + a.envMap = c.getTexture(r, p.ID), a.envMap !== void 0 && (a.envMap.mapping = EquirectangularReflectionMapping, a.envMap.encoding = sRGBEncoding); break; case "SpecularColor": - a.specularMap = c.getTexture(r, u.ID), a.specularMap !== void 0 && (a.specularMap.encoding = sRGBEncoding); + a.specularMap = c.getTexture(r, p.ID), a.specularMap !== void 0 && (a.specularMap.encoding = sRGBEncoding); break; case "TransparentColor": case "TransparencyFactor": - a.alphaMap = c.getTexture(r, u.ID), a.transparent = true; + a.alphaMap = c.getTexture(r, p.ID), a.transparent = true; break; case "AmbientColor": case "ShininessExponent": @@ -3203,44 +3246,44 @@ var Gu = class { }), a; } // get a texture from the textureMap for use by a material. - getTexture(i, r) { - return "LayeredTexture" in se.Objects && r in se.Objects.LayeredTexture && (console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."), r = Ae.get(r).children[0].ID), i.get(r); + getTexture(n, r) { + return "LayeredTexture" in se.Objects && r in se.Objects.LayeredTexture && (console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."), r = Ae.get(r).children[0].ID), n.get(r); } // Parse nodes in FBXTree.Objects.Deformer // Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here // Generates map of Skeleton-like objects for use later when generating and binding skeletons. parseDeformers() { - const i = {}, r = {}; + const n = {}, r = {}; if ("Deformer" in se.Objects) { const s = se.Objects.Deformer; for (const a in s) { - const c = s[a], u = Ae.get(parseInt(a)); + const c = s[a], p = Ae.get(parseInt(a)); if (c.attrType === "Skin") { - const h = this.parseSkeleton(u, s); - h.ID = a, u.parents.length > 1 && console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."), h.geometryID = u.parents[0].ID, i[a] = h; + const h = this.parseSkeleton(p, s); + h.ID = a, p.parents.length > 1 && console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."), h.geometryID = p.parents[0].ID, n[a] = h; } else if (c.attrType === "BlendShape") { const h = { id: a }; - h.rawTargets = this.parseMorphTargets(u, s), h.id = a, u.parents.length > 1 && console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."), r[a] = h; + h.rawTargets = this.parseMorphTargets(p, s), h.id = a, p.parents.length > 1 && console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."), r[a] = h; } } } return { - skeletons: i, + skeletons: n, morphTargets: r }; } // Parse single nodes in FBXTree.Objects.Deformer // The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster' // Each skin node represents a skeleton and each cluster node represents a bone - parseSkeleton(i, r) { + parseSkeleton(n, r) { const s = []; - return i.children.forEach(function(a) { + return n.children.forEach(function(a) { const c = r[a.ID]; if (c.attrType !== "Cluster") return; - const u = { + const p = { ID: a.ID, indices: [], weights: [], @@ -3248,23 +3291,23 @@ var Gu = class { // transform: new Matrix4().fromArray( boneNode.Transform.a ), // linkMode: boneNode.Mode, }; - "Indexes" in c && (u.indices = c.Indexes.a, u.weights = c.Weights.a), s.push(u); + "Indexes" in c && (p.indices = c.Indexes.a, p.weights = c.Weights.a), s.push(p); }), { rawBones: s, bones: [] }; } // The top level morph deformer node has type "BlendShape" and sub nodes have type "BlendShapeChannel" - parseMorphTargets(i, r) { + parseMorphTargets(n, r) { const s = []; - for (let a = 0; a < i.children.length; a++) { - const c = i.children[a], u = r[c.ID], h = { - name: u.attrName, - initialWeight: u.DeformPercent, - id: u.id, - fullWeights: u.FullWeights.a + for (let a = 0; a < n.children.length; a++) { + const c = n.children[a], p = r[c.ID], h = { + name: p.attrName, + initialWeight: p.DeformPercent, + id: p.id, + fullWeights: p.FullWeights.a }; - if (u.attrType !== "BlendShapeChannel") + if (p.attrType !== "BlendShapeChannel") return; h.geoID = Ae.get(parseInt(c.ID)).children.filter(function(d) { return d.relationship === void 0; @@ -3273,31 +3316,31 @@ var Gu = class { return s; } // create the main Group() to be returned by the loader - parseScene(i, r, s) { - We = new Group(); - const a = this.parseModels(i.skeletons, r, s), c = se.Objects.Model, u = this; + parseScene(n, r, s) { + Je = new Group(); + const a = this.parseModels(n.skeletons, r, s), c = se.Objects.Model, p = this; a.forEach(function(d) { const g = c[d.ID]; - u.setLookAtProperties(d, g), Ae.get(d.ID).parents.forEach(function(_) { + p.setLookAtProperties(d, g), Ae.get(d.ID).parents.forEach(function(_) { const y = a.get(_.ID); y !== void 0 && y.add(d); - }), d.parent === null && We.add(d); - }), this.bindSkeleton(i.skeletons, r, a), this.createAmbientLight(), We.traverse(function(d) { + }), d.parent === null && Je.add(d); + }), this.bindSkeleton(n.skeletons, r, a), this.createAmbientLight(), Je.traverse(function(d) { if (d.userData.transformData) { d.parent && (d.userData.transformData.parentMatrix = d.parent.matrix, d.userData.transformData.parentMatrixWorld = d.parent.matrixWorld); - const g = Za(d.userData.transformData); + const g = nl(d.userData.transformData); d.applyMatrix4(g), d.updateWorldMatrix(); } }); - const h = new Ku().parse(); - We.children.length === 1 && We.children[0].isGroup && (We.children[0].animations = h, We = We.children[0]), We.animations = h; + const h = new th().parse(); + Je.children.length === 1 && Je.children[0].isGroup && (Je.children[0].animations = h, Je = Je.children[0]), Je.animations = h; } // parse nodes in FBXTree.Objects.Model - parseModels(i, r, s) { + parseModels(n, r, s) { const a = /* @__PURE__ */ new Map(), c = se.Objects.Model; - for (const u in c) { - const h = parseInt(u), d = c[u], g = Ae.get(h); - let w = this.buildSkeleton(g, i, h, d.attrName); + for (const p in c) { + const h = parseInt(p), d = c[p], g = Ae.get(h); + let w = this.buildSkeleton(g, n, h, d.attrName); if (!w) { switch (d.attrType) { case "Camera": @@ -3327,13 +3370,13 @@ var Gu = class { } return a; } - buildSkeleton(i, r, s, a) { + buildSkeleton(n, r, s, a) { let c = null; - return i.parents.forEach(function(u) { + return n.parents.forEach(function(p) { for (const h in r) { const d = r[h]; d.rawBones.forEach(function(g, w) { - if (g.ID === u.ID) { + if (g.ID === p.ID) { const _ = c; c = new Bone(), c.matrixWorld.copy(g.transformLink), c.name = a ? PropertyBinding.sanitizeNodeName(a) : "", c.ID = s, d.bones[w] = c, _ !== null && c.add(_); } @@ -3342,9 +3385,9 @@ var Gu = class { }), c; } // create a PerspectiveCamera or OrthographicCamera - createCamera(i) { + createCamera(n) { let r, s; - if (i.children.forEach(function(a) { + if (n.children.forEach(function(a) { const c = se.Objects.NodeAttribute[a.ID]; c !== void 0 && (s = c); }), s === void 0) @@ -3354,8 +3397,8 @@ var Gu = class { s.CameraProjectionType !== void 0 && s.CameraProjectionType.value === 1 && (a = 1); let c = 1; s.NearPlane !== void 0 && (c = s.NearPlane.value / 1e3); - let u = 1e3; - s.FarPlane !== void 0 && (u = s.FarPlane.value / 1e3); + let p = 1e3; + s.FarPlane !== void 0 && (p = s.FarPlane.value / 1e3); let h = window.innerWidth, d = window.innerHeight; s.AspectWidth !== void 0 && s.AspectHeight !== void 0 && (h = s.AspectWidth.value, d = s.AspectHeight.value); const g = h / d; @@ -3364,10 +3407,10 @@ var Gu = class { const _ = s.FocalLength ? s.FocalLength.value : null; switch (a) { case 0: - r = new PerspectiveCamera(w, g, c, u), _ !== null && r.setFocalLength(_); + r = new PerspectiveCamera(w, g, c, p), _ !== null && r.setFocalLength(_); break; case 1: - r = new OrthographicCamera(-h / 2, h / 2, d / 2, -d / 2, c, u); + r = new OrthographicCamera(-h / 2, h / 2, d / 2, -d / 2, c, p); break; default: console.warn("THREE.FBXLoader: Unknown camera type " + a + "."), r = new Object3D(); @@ -3377,9 +3420,9 @@ var Gu = class { return r; } // Create a DirectionalLight, PointLight or SpotLight - createLight(i) { + createLight(n) { let r, s; - if (i.children.forEach(function(a) { + if (n.children.forEach(function(a) { const c = se.Objects.NodeAttribute[a.ID]; c !== void 0 && (s = c); }), s === void 0) @@ -3389,46 +3432,46 @@ var Gu = class { s.LightType === void 0 ? a = 0 : a = s.LightType.value; let c = 16777215; s.Color !== void 0 && (c = new Color().fromArray(s.Color.value)); - let u = s.Intensity === void 0 ? 1 : s.Intensity.value / 100; - s.CastLightOnObject !== void 0 && s.CastLightOnObject.value === 0 && (u = 0); + let p = s.Intensity === void 0 ? 1 : s.Intensity.value / 100; + s.CastLightOnObject !== void 0 && s.CastLightOnObject.value === 0 && (p = 0); let h = 0; s.FarAttenuationEnd !== void 0 && (s.EnableFarAttenuation !== void 0 && s.EnableFarAttenuation.value === 0 ? h = 0 : h = s.FarAttenuationEnd.value); const d = 1; switch (a) { case 0: - r = new PointLight(c, u, h, d); + r = new PointLight(c, p, h, d); break; case 1: - r = new DirectionalLight(c, u); + r = new DirectionalLight(c, p); break; case 2: let g = Math.PI / 3; s.InnerAngle !== void 0 && (g = MathUtils.degToRad(s.InnerAngle.value)); let w = 0; - s.OuterAngle !== void 0 && (w = MathUtils.degToRad(s.OuterAngle.value), w = Math.max(w, 1)), r = new SpotLight(c, u, h, g, w, d); + s.OuterAngle !== void 0 && (w = MathUtils.degToRad(s.OuterAngle.value), w = Math.max(w, 1)), r = new SpotLight(c, p, h, g, w, d); break; default: - console.warn("THREE.FBXLoader: Unknown light type " + s.LightType.value + ", defaulting to a PointLight."), r = new PointLight(c, u); + console.warn("THREE.FBXLoader: Unknown light type " + s.LightType.value + ", defaulting to a PointLight."), r = new PointLight(c, p); break; } s.CastShadows !== void 0 && s.CastShadows.value === 1 && (r.castShadow = true); } return r; } - createMesh(i, r, s) { - let a, c = null, u = null; + createMesh(n, r, s) { + let a, c = null, p = null; const h = []; - return i.children.forEach(function(d) { + return n.children.forEach(function(d) { r.has(d.ID) && (c = r.get(d.ID)), s.has(d.ID) && h.push(s.get(d.ID)); - }), h.length > 1 ? u = h : h.length > 0 ? u = h[0] : (u = new MeshPhongMaterial({ + }), h.length > 1 ? p = h : h.length > 0 ? p = h[0] : (p = new MeshPhongMaterial({ color: 13421772 - }), h.push(u)), "color" in c.attributes && h.forEach(function(d) { + }), h.push(p)), "color" in c.attributes && h.forEach(function(d) { d.vertexColors = true; - }), c.FBX_Deformer ? (a = new SkinnedMesh(c, u), a.normalizeSkinWeights()) : a = new Mesh(c, u), a; + }), c.FBX_Deformer ? (a = new SkinnedMesh(c, p), a.normalizeSkinWeights()) : a = new Mesh(c, p), a; } - createCurve(i, r) { - const s = i.children.reduce(function(c, u) { - return r.has(u.ID) && (c = r.get(u.ID)), c; + createCurve(n, r) { + const s = n.children.reduce(function(c, p) { + return r.has(p.ID) && (c = r.get(p.ID)), c; }, null), a = new LineBasicMaterial({ color: 3342591, linewidth: 1 @@ -3436,105 +3479,105 @@ var Gu = class { return new Line(s, a); } // parse the model node for transform data - getTransformData(i, r) { + getTransformData(n, r) { const s = {}; - "InheritType" in r && (s.inheritType = parseInt(r.InheritType.value)), "RotationOrder" in r ? s.eulerOrder = Wa(r.RotationOrder.value) : s.eulerOrder = "ZYX", "Lcl_Translation" in r && (s.translation = r.Lcl_Translation.value), "PreRotation" in r && (s.preRotation = r.PreRotation.value), "Lcl_Rotation" in r && (s.rotation = r.Lcl_Rotation.value), "PostRotation" in r && (s.postRotation = r.PostRotation.value), "Lcl_Scaling" in r && (s.scale = r.Lcl_Scaling.value), "ScalingOffset" in r && (s.scalingOffset = r.ScalingOffset.value), "ScalingPivot" in r && (s.scalingPivot = r.ScalingPivot.value), "RotationOffset" in r && (s.rotationOffset = r.RotationOffset.value), "RotationPivot" in r && (s.rotationPivot = r.RotationPivot.value), i.userData.transformData = s; + "InheritType" in r && (s.inheritType = parseInt(r.InheritType.value)), "RotationOrder" in r ? s.eulerOrder = il(r.RotationOrder.value) : s.eulerOrder = "ZYX", "Lcl_Translation" in r && (s.translation = r.Lcl_Translation.value), "PreRotation" in r && (s.preRotation = r.PreRotation.value), "Lcl_Rotation" in r && (s.rotation = r.Lcl_Rotation.value), "PostRotation" in r && (s.postRotation = r.PostRotation.value), "Lcl_Scaling" in r && (s.scale = r.Lcl_Scaling.value), "ScalingOffset" in r && (s.scalingOffset = r.ScalingOffset.value), "ScalingPivot" in r && (s.scalingPivot = r.ScalingPivot.value), "RotationOffset" in r && (s.rotationOffset = r.RotationOffset.value), "RotationPivot" in r && (s.rotationPivot = r.RotationPivot.value), n.userData.transformData = s; } - setLookAtProperties(i, r) { - "LookAtProperty" in r && Ae.get(i.ID).children.forEach(function(a) { + setLookAtProperties(n, r) { + "LookAtProperty" in r && Ae.get(n.ID).children.forEach(function(a) { if (a.relationship === "LookAtProperty") { const c = se.Objects.Model[a.ID]; if ("Lcl_Translation" in c) { - const u = c.Lcl_Translation.value; - i.target !== void 0 ? (i.target.position.fromArray(u), We.add(i.target)) : i.lookAt(new Vector3().fromArray(u)); + const p = c.Lcl_Translation.value; + n.target !== void 0 ? (n.target.position.fromArray(p), Je.add(n.target)) : n.lookAt(new Vector3().fromArray(p)); } } }); } - bindSkeleton(i, r, s) { + bindSkeleton(n, r, s) { const a = this.parsePoseNodes(); - for (const c in i) { - const u = i[c]; - Ae.get(parseInt(u.ID)).parents.forEach(function(d) { + for (const c in n) { + const p = n[c]; + Ae.get(parseInt(p.ID)).parents.forEach(function(d) { if (r.has(d.ID)) { const g = d.ID; Ae.get(g).parents.forEach(function(_) { - s.has(_.ID) && s.get(_.ID).bind(new Skeleton(u.bones), a[_.ID]); + s.has(_.ID) && s.get(_.ID).bind(new Skeleton(p.bones), a[_.ID]); }); } }); } } parsePoseNodes() { - const i = {}; + const n = {}; if ("Pose" in se.Objects) { const r = se.Objects.Pose; for (const s in r) if (r[s].attrType === "BindPose" && r[s].NbPoseNodes > 0) { const a = r[s].PoseNode; Array.isArray(a) ? a.forEach(function(c) { - i[c.Node] = new Matrix4().fromArray(c.Matrix.a); - }) : i[a.Node] = new Matrix4().fromArray(a.Matrix.a); + n[c.Node] = new Matrix4().fromArray(c.Matrix.a); + }) : n[a.Node] = new Matrix4().fromArray(a.Matrix.a); } } - return i; + return n; } // Parse ambient color in FBXTree.GlobalSettings - if it's not set to black (default), create an ambient light createAmbientLight() { if ("GlobalSettings" in se && "AmbientColor" in se.GlobalSettings) { - const i = se.GlobalSettings.AmbientColor.value, r = i[0], s = i[1], a = i[2]; + const n = se.GlobalSettings.AmbientColor.value, r = n[0], s = n[1], a = n[2]; if (r !== 0 || s !== 0 || a !== 0) { const c = new Color(r, s, a); - We.add(new AmbientLight(c, 1)); + Je.add(new AmbientLight(c, 1)); } } } }; -var Hu = class { +var eh = class { // Parse nodes in FBXTree.Objects.Geometry - parse(i) { + parse(n) { const r = /* @__PURE__ */ new Map(); if ("Geometry" in se.Objects) { const s = se.Objects.Geometry; for (const a in s) { - const c = Ae.get(parseInt(a)), u = this.parseGeometry(c, s[a], i); - r.set(parseInt(a), u); + const c = Ae.get(parseInt(a)), p = this.parseGeometry(c, s[a], n); + r.set(parseInt(a), p); } } return r; } // Parse single node in FBXTree.Objects.Geometry - parseGeometry(i, r, s) { + parseGeometry(n, r, s) { switch (r.attrType) { case "Mesh": - return this.parseMeshGeometry(i, r, s); + return this.parseMeshGeometry(n, r, s); case "NurbsCurve": return this.parseNurbsGeometry(r); } } // Parse single node mesh geometry in FBXTree.Objects.Geometry - parseMeshGeometry(i, r, s) { - const a = s.skeletons, c = [], u = i.parents.map(function(_) { + parseMeshGeometry(n, r, s) { + const a = s.skeletons, c = [], p = n.parents.map(function(_) { return se.Objects.Model[_.ID]; }); - if (u.length === 0) + if (p.length === 0) return; - const h = i.children.reduce(function(_, y) { + const h = n.children.reduce(function(_, y) { return a[y.ID] !== void 0 && (_ = a[y.ID]), _; }, null); - i.children.forEach(function(_) { + n.children.forEach(function(_) { s.morphTargets[_.ID] !== void 0 && c.push(s.morphTargets[_.ID]); }); - const d = u[0], g = {}; - "RotationOrder" in d && (g.eulerOrder = Wa(d.RotationOrder.value)), "InheritType" in d && (g.inheritType = parseInt(d.InheritType.value)), "GeometricTranslation" in d && (g.translation = d.GeometricTranslation.value), "GeometricRotation" in d && (g.rotation = d.GeometricRotation.value), "GeometricScaling" in d && (g.scale = d.GeometricScaling.value); - const w = Za(g); + const d = p[0], g = {}; + "RotationOrder" in d && (g.eulerOrder = il(d.RotationOrder.value)), "InheritType" in d && (g.inheritType = parseInt(d.InheritType.value)), "GeometricTranslation" in d && (g.translation = d.GeometricTranslation.value), "GeometricRotation" in d && (g.rotation = d.GeometricRotation.value), "GeometricScaling" in d && (g.scale = d.GeometricScaling.value); + const w = nl(g); return this.genGeometry(r, h, c, w); } // Generate a BufferGeometry from a node in FBXTree.Objects.Geometry - genGeometry(i, r, s, a) { + genGeometry(n, r, s, a) { const c = new BufferGeometry(); - i.attrName && (c.name = i.attrName); - const u = this.parseGeoNode(i, r), h = this.genBuffers(u), d = new Float32BufferAttribute(h.vertex, 3); + n.attrName && (c.name = n.attrName); + const p = this.parseGeoNode(n, r), h = this.genBuffers(p), d = new Float32BufferAttribute(h.vertex, 3); if (d.applyMatrix4(a), c.setAttribute("position", d), h.colors.length > 0 && c.setAttribute("color", new Float32BufferAttribute(h.colors, 3)), r && (c.setAttribute("skinIndex", new Uint16BufferAttribute(h.weightsIndices, 4)), c.setAttribute("skinWeight", new Float32BufferAttribute(h.vertexWeights, 4)), c.FBX_Deformer = r), h.normal.length > 0) { const g = new Matrix3().getNormalMatrix(a), w = new Float32BufferAttribute(h.normal, 3); w.applyNormalMatrix(g), c.setAttribute("normal", w); @@ -3542,7 +3585,7 @@ var Hu = class { if (h.uvs.forEach(function(g, w) { let _ = "uv" + (w + 1).toString(); w === 0 && (_ = "uv"), c.setAttribute(_, new Float32BufferAttribute(h.uvs[w], 2)); - }), u.material && u.material.mappingType !== "AllSame") { + }), p.material && p.material.mappingType !== "AllSame") { let g = h.materialIndex[0], w = 0; if (h.materialIndex.forEach(function(_, y) { _ !== g && (c.addGroup(w, y - w, g), g = _, w = y); @@ -3552,26 +3595,26 @@ var Hu = class { } c.groups.length === 0 && c.addGroup(0, h.materialIndex.length, h.materialIndex[0]); } - return this.addMorphTargets(c, i, s, a), c; + return this.addMorphTargets(c, n, s, a), c; } - parseGeoNode(i, r) { + parseGeoNode(n, r) { const s = {}; - if (s.vertexPositions = i.Vertices !== void 0 ? i.Vertices.a : [], s.vertexIndices = i.PolygonVertexIndex !== void 0 ? i.PolygonVertexIndex.a : [], i.LayerElementColor && (s.color = this.parseVertexColors(i.LayerElementColor[0])), i.LayerElementMaterial && (s.material = this.parseMaterialIndices(i.LayerElementMaterial[0])), i.LayerElementNormal && (s.normal = this.parseNormals(i.LayerElementNormal[0])), i.LayerElementUV) { + if (s.vertexPositions = n.Vertices !== void 0 ? n.Vertices.a : [], s.vertexIndices = n.PolygonVertexIndex !== void 0 ? n.PolygonVertexIndex.a : [], n.LayerElementColor && (s.color = this.parseVertexColors(n.LayerElementColor[0])), n.LayerElementMaterial && (s.material = this.parseMaterialIndices(n.LayerElementMaterial[0])), n.LayerElementNormal && (s.normal = this.parseNormals(n.LayerElementNormal[0])), n.LayerElementUV) { s.uv = []; let a = 0; - for (; i.LayerElementUV[a]; ) - i.LayerElementUV[a].UV && s.uv.push(this.parseUVs(i.LayerElementUV[a])), a++; + for (; n.LayerElementUV[a]; ) + n.LayerElementUV[a].UV && s.uv.push(this.parseUVs(n.LayerElementUV[a])), a++; } return s.weightTable = {}, r !== null && (s.skeleton = r, r.rawBones.forEach(function(a, c) { - a.indices.forEach(function(u, h) { - s.weightTable[u] === void 0 && (s.weightTable[u] = []), s.weightTable[u].push({ + a.indices.forEach(function(p, h) { + s.weightTable[p] === void 0 && (s.weightTable[p] = []), s.weightTable[p].push({ id: c, weight: a.weights[h] }); }); })), s; } - genBuffers(i) { + genBuffers(n) { const r = { vertex: [], normal: [], @@ -3581,64 +3624,64 @@ var Hu = class { vertexWeights: [], weightsIndices: [] }; - let s = 0, a = 0, c = false, u = [], h = [], d = [], g = [], w = [], _ = []; + let s = 0, a = 0, c = false, p = [], h = [], d = [], g = [], w = [], _ = []; const y = this; - return i.vertexIndices.forEach(function(C, I) { + return n.vertexIndices.forEach(function(P, I2) { let S, R = false; - C < 0 && (C = C ^ -1, R = true); + P < 0 && (P = P ^ -1, R = true); let j = [], F = []; - if (u.push(C * 3, C * 3 + 1, C * 3 + 2), i.color) { - const V = Vs(I, s, C, i.color); + if (p.push(P * 3, P * 3 + 1, P * 3 + 2), n.color) { + const V = Os(I2, s, P, n.color); d.push(V[0], V[1], V[2]); } - if (i.skeleton) { - if (i.weightTable[C] !== void 0 && i.weightTable[C].forEach(function(V) { + if (n.skeleton) { + if (n.weightTable[P] !== void 0 && n.weightTable[P].forEach(function(V) { F.push(V.weight), j.push(V.id); }), F.length > 4) { c || (console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."), c = true); - const V = [0, 0, 0, 0], D = [0, 0, 0, 0]; + const V = [0, 0, 0, 0], D2 = [0, 0, 0, 0]; F.forEach(function(Y, G) { let N = Y, O = j[G]; - D.forEach(function(H, K, q) { + D2.forEach(function(H, K, q) { if (N > H) { q[K] = N, N = H; - const ue = V[K]; - V[K] = O, O = ue; + const pe = V[K]; + V[K] = O, O = pe; } }); - }), j = V, F = D; + }), j = V, F = D2; } for (; F.length < 4; ) F.push(0), j.push(0); for (let V = 0; V < 4; ++V) w.push(F[V]), _.push(j[V]); } - if (i.normal) { - const V = Vs(I, s, C, i.normal); + if (n.normal) { + const V = Os(I2, s, P, n.normal); h.push(V[0], V[1], V[2]); } - i.material && i.material.mappingType !== "AllSame" && (S = Vs(I, s, C, i.material)[0]), i.uv && i.uv.forEach(function(V, D) { - const Y = Vs(I, s, C, V); - g[D] === void 0 && (g[D] = []), g[D].push(Y[0]), g[D].push(Y[1]); - }), a++, R && (y.genFace(r, i, u, S, h, d, g, w, _, a), s++, a = 0, u = [], h = [], d = [], g = [], w = [], _ = []); + n.material && n.material.mappingType !== "AllSame" && (S = Os(I2, s, P, n.material)[0]), n.uv && n.uv.forEach(function(V, D2) { + const Y = Os(I2, s, P, V); + g[D2] === void 0 && (g[D2] = []), g[D2].push(Y[0]), g[D2].push(Y[1]); + }), a++, R && (y.genFace(r, n, p, S, h, d, g, w, _, a), s++, a = 0, p = [], h = [], d = [], g = [], w = [], _ = []); }), r; } // Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris - genFace(i, r, s, a, c, u, h, d, g, w) { + genFace(n, r, s, a, c, p, h, d, g, w) { for (let _ = 2; _ < w; _++) - i.vertex.push(r.vertexPositions[s[0]]), i.vertex.push(r.vertexPositions[s[1]]), i.vertex.push(r.vertexPositions[s[2]]), i.vertex.push(r.vertexPositions[s[(_ - 1) * 3]]), i.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 1]]), i.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 2]]), i.vertex.push(r.vertexPositions[s[_ * 3]]), i.vertex.push(r.vertexPositions[s[_ * 3 + 1]]), i.vertex.push(r.vertexPositions[s[_ * 3 + 2]]), r.skeleton && (i.vertexWeights.push(d[0]), i.vertexWeights.push(d[1]), i.vertexWeights.push(d[2]), i.vertexWeights.push(d[3]), i.vertexWeights.push(d[(_ - 1) * 4]), i.vertexWeights.push(d[(_ - 1) * 4 + 1]), i.vertexWeights.push(d[(_ - 1) * 4 + 2]), i.vertexWeights.push(d[(_ - 1) * 4 + 3]), i.vertexWeights.push(d[_ * 4]), i.vertexWeights.push(d[_ * 4 + 1]), i.vertexWeights.push(d[_ * 4 + 2]), i.vertexWeights.push(d[_ * 4 + 3]), i.weightsIndices.push(g[0]), i.weightsIndices.push(g[1]), i.weightsIndices.push(g[2]), i.weightsIndices.push(g[3]), i.weightsIndices.push(g[(_ - 1) * 4]), i.weightsIndices.push(g[(_ - 1) * 4 + 1]), i.weightsIndices.push(g[(_ - 1) * 4 + 2]), i.weightsIndices.push(g[(_ - 1) * 4 + 3]), i.weightsIndices.push(g[_ * 4]), i.weightsIndices.push(g[_ * 4 + 1]), i.weightsIndices.push(g[_ * 4 + 2]), i.weightsIndices.push(g[_ * 4 + 3])), r.color && (i.colors.push(u[0]), i.colors.push(u[1]), i.colors.push(u[2]), i.colors.push(u[(_ - 1) * 3]), i.colors.push(u[(_ - 1) * 3 + 1]), i.colors.push(u[(_ - 1) * 3 + 2]), i.colors.push(u[_ * 3]), i.colors.push(u[_ * 3 + 1]), i.colors.push(u[_ * 3 + 2])), r.material && r.material.mappingType !== "AllSame" && (i.materialIndex.push(a), i.materialIndex.push(a), i.materialIndex.push(a)), r.normal && (i.normal.push(c[0]), i.normal.push(c[1]), i.normal.push(c[2]), i.normal.push(c[(_ - 1) * 3]), i.normal.push(c[(_ - 1) * 3 + 1]), i.normal.push(c[(_ - 1) * 3 + 2]), i.normal.push(c[_ * 3]), i.normal.push(c[_ * 3 + 1]), i.normal.push(c[_ * 3 + 2])), r.uv && r.uv.forEach(function(y, C) { - i.uvs[C] === void 0 && (i.uvs[C] = []), i.uvs[C].push(h[C][0]), i.uvs[C].push(h[C][1]), i.uvs[C].push(h[C][(_ - 1) * 2]), i.uvs[C].push(h[C][(_ - 1) * 2 + 1]), i.uvs[C].push(h[C][_ * 2]), i.uvs[C].push(h[C][_ * 2 + 1]); + n.vertex.push(r.vertexPositions[s[0]]), n.vertex.push(r.vertexPositions[s[1]]), n.vertex.push(r.vertexPositions[s[2]]), n.vertex.push(r.vertexPositions[s[(_ - 1) * 3]]), n.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 1]]), n.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 2]]), n.vertex.push(r.vertexPositions[s[_ * 3]]), n.vertex.push(r.vertexPositions[s[_ * 3 + 1]]), n.vertex.push(r.vertexPositions[s[_ * 3 + 2]]), r.skeleton && (n.vertexWeights.push(d[0]), n.vertexWeights.push(d[1]), n.vertexWeights.push(d[2]), n.vertexWeights.push(d[3]), n.vertexWeights.push(d[(_ - 1) * 4]), n.vertexWeights.push(d[(_ - 1) * 4 + 1]), n.vertexWeights.push(d[(_ - 1) * 4 + 2]), n.vertexWeights.push(d[(_ - 1) * 4 + 3]), n.vertexWeights.push(d[_ * 4]), n.vertexWeights.push(d[_ * 4 + 1]), n.vertexWeights.push(d[_ * 4 + 2]), n.vertexWeights.push(d[_ * 4 + 3]), n.weightsIndices.push(g[0]), n.weightsIndices.push(g[1]), n.weightsIndices.push(g[2]), n.weightsIndices.push(g[3]), n.weightsIndices.push(g[(_ - 1) * 4]), n.weightsIndices.push(g[(_ - 1) * 4 + 1]), n.weightsIndices.push(g[(_ - 1) * 4 + 2]), n.weightsIndices.push(g[(_ - 1) * 4 + 3]), n.weightsIndices.push(g[_ * 4]), n.weightsIndices.push(g[_ * 4 + 1]), n.weightsIndices.push(g[_ * 4 + 2]), n.weightsIndices.push(g[_ * 4 + 3])), r.color && (n.colors.push(p[0]), n.colors.push(p[1]), n.colors.push(p[2]), n.colors.push(p[(_ - 1) * 3]), n.colors.push(p[(_ - 1) * 3 + 1]), n.colors.push(p[(_ - 1) * 3 + 2]), n.colors.push(p[_ * 3]), n.colors.push(p[_ * 3 + 1]), n.colors.push(p[_ * 3 + 2])), r.material && r.material.mappingType !== "AllSame" && (n.materialIndex.push(a), n.materialIndex.push(a), n.materialIndex.push(a)), r.normal && (n.normal.push(c[0]), n.normal.push(c[1]), n.normal.push(c[2]), n.normal.push(c[(_ - 1) * 3]), n.normal.push(c[(_ - 1) * 3 + 1]), n.normal.push(c[(_ - 1) * 3 + 2]), n.normal.push(c[_ * 3]), n.normal.push(c[_ * 3 + 1]), n.normal.push(c[_ * 3 + 2])), r.uv && r.uv.forEach(function(y, P) { + n.uvs[P] === void 0 && (n.uvs[P] = []), n.uvs[P].push(h[P][0]), n.uvs[P].push(h[P][1]), n.uvs[P].push(h[P][(_ - 1) * 2]), n.uvs[P].push(h[P][(_ - 1) * 2 + 1]), n.uvs[P].push(h[P][_ * 2]), n.uvs[P].push(h[P][_ * 2 + 1]); }); } - addMorphTargets(i, r, s, a) { + addMorphTargets(n, r, s, a) { if (s.length === 0) return; - i.morphTargetsRelative = true, i.morphAttributes.position = []; + n.morphTargetsRelative = true, n.morphAttributes.position = []; const c = this; - s.forEach(function(u) { - u.rawTargets.forEach(function(h) { + s.forEach(function(p) { + p.rawTargets.forEach(function(h) { const d = se.Objects.Geometry[h.geoID]; - d !== void 0 && c.genMorphGeometry(i, r, d, a, h.name); + d !== void 0 && c.genMorphGeometry(n, r, d, a, h.name); }); }); } @@ -3646,23 +3689,23 @@ var Hu = class { // in FBXTree.Objects.Geometry, however it can only have attributes for position, normal // and a special attribute Index defining which vertices of the original geometry are affected // Normal and position attributes only have data for the vertices that are affected by the morph - genMorphGeometry(i, r, s, a, c) { - const u = r.PolygonVertexIndex !== void 0 ? r.PolygonVertexIndex.a : [], h = s.Vertices !== void 0 ? s.Vertices.a : [], d = s.Indexes !== void 0 ? s.Indexes.a : [], g = i.attributes.position.count * 3, w = new Float32Array(g); - for (let I = 0; I < d.length; I++) { - const S = d[I] * 3; - w[S] = h[I * 3], w[S + 1] = h[I * 3 + 1], w[S + 2] = h[I * 3 + 2]; + genMorphGeometry(n, r, s, a, c) { + const p = r.PolygonVertexIndex !== void 0 ? r.PolygonVertexIndex.a : [], h = s.Vertices !== void 0 ? s.Vertices.a : [], d = s.Indexes !== void 0 ? s.Indexes.a : [], g = n.attributes.position.count * 3, w = new Float32Array(g); + for (let I2 = 0; I2 < d.length; I2++) { + const S = d[I2] * 3; + w[S] = h[I2 * 3], w[S + 1] = h[I2 * 3 + 1], w[S + 2] = h[I2 * 3 + 2]; } const _ = { - vertexIndices: u, + vertexIndices: p, vertexPositions: w - }, y = this.genBuffers(_), C = new Float32BufferAttribute(y.vertex, 3); - C.name = c || s.attrName, C.applyMatrix4(a), i.morphAttributes.position.push(C); + }, y = this.genBuffers(_), P = new Float32BufferAttribute(y.vertex, 3); + P.name = c || s.attrName, P.applyMatrix4(a), n.morphAttributes.position.push(P); } // Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists - parseNormals(i) { - const r = i.MappingInformationType, s = i.ReferenceInformationType, a = i.Normals.a; + parseNormals(n) { + const r = n.MappingInformationType, s = n.ReferenceInformationType, a = n.Normals.a; let c = []; - return s === "IndexToDirect" && ("NormalIndex" in i ? c = i.NormalIndex.a : "NormalsIndex" in i && (c = i.NormalsIndex.a)), { + return s === "IndexToDirect" && ("NormalIndex" in n ? c = n.NormalIndex.a : "NormalsIndex" in n && (c = n.NormalsIndex.a)), { dataSize: 3, buffer: a, indices: c, @@ -3671,10 +3714,10 @@ var Hu = class { }; } // Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists - parseUVs(i) { - const r = i.MappingInformationType, s = i.ReferenceInformationType, a = i.UV.a; + parseUVs(n) { + const r = n.MappingInformationType, s = n.ReferenceInformationType, a = n.UV.a; let c = []; - return s === "IndexToDirect" && (c = i.UVIndex.a), { + return s === "IndexToDirect" && (c = n.UVIndex.a), { dataSize: 2, buffer: a, indices: c, @@ -3683,10 +3726,10 @@ var Hu = class { }; } // Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists - parseVertexColors(i) { - const r = i.MappingInformationType, s = i.ReferenceInformationType, a = i.Colors.a; + parseVertexColors(n) { + const r = n.MappingInformationType, s = n.ReferenceInformationType, a = n.Colors.a; let c = []; - return s === "IndexToDirect" && (c = i.ColorIndex.a), { + return s === "IndexToDirect" && (c = n.ColorIndex.a), { dataSize: 4, buffer: a, indices: c, @@ -3695,8 +3738,8 @@ var Hu = class { }; } // Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists - parseMaterialIndices(i) { - const r = i.MappingInformationType, s = i.ReferenceInformationType; + parseMaterialIndices(n) { + const r = n.MappingInformationType, s = n.ReferenceInformationType; if (r === "NoMappingInformation") return { dataSize: 1, @@ -3705,9 +3748,9 @@ var Hu = class { mappingType: "AllSame", referenceType: s }; - const a = i.Materials.a, c = []; - for (let u = 0; u < a.length; ++u) - c.push(u); + const a = n.Materials.a, c = []; + for (let p = 0; p < a.length; ++p) + c.push(p); return { dataSize: 1, buffer: a, @@ -3717,53 +3760,53 @@ var Hu = class { }; } // Generate a NurbGeometry from a node in FBXTree.Objects.Geometry - parseNurbsGeometry(i) { - if (ma === void 0) + parseNurbsGeometry(n) { + if (_a === void 0) return console.error("THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry."), new BufferGeometry(); - const r = parseInt(i.Order); + const r = parseInt(n.Order); if (isNaN(r)) - return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s", i.Order, i.id), new BufferGeometry(); - const s = r - 1, a = i.KnotVector.a, c = [], u = i.Points.a; - for (let _ = 0, y = u.length; _ < y; _ += 4) - c.push(new Vector4().fromArray(u, _)); + return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s", n.Order, n.id), new BufferGeometry(); + const s = r - 1, a = n.KnotVector.a, c = [], p = n.Points.a; + for (let _ = 0, y = p.length; _ < y; _ += 4) + c.push(new Vector4().fromArray(p, _)); let h, d; - if (i.Form === "Closed") + if (n.Form === "Closed") c.push(c[0]); - else if (i.Form === "Periodic") { + else if (n.Form === "Periodic") { h = s, d = a.length - 1 - h; for (let _ = 0; _ < s; ++_) c.push(c[_]); } - const w = new ma(s, a, c, h, d).getPoints(c.length * 12); + const w = new _a(s, a, c, h, d).getPoints(c.length * 12); return new BufferGeometry().setFromPoints(w); } }; -var Ku = class { +var th = class { // take raw animation clips and turn them into three.js animation clips parse() { - const i = [], r = this.parseClips(); + const n = [], r = this.parseClips(); if (r !== void 0) for (const s in r) { const a = r[s], c = this.addClip(a); - i.push(c); + n.push(c); } - return i; + return n; } parseClips() { if (se.Objects.AnimationCurve === void 0) return; - const i = this.parseAnimationCurveNodes(); - this.parseAnimationCurves(i); - const r = this.parseAnimationLayers(i); + const n = this.parseAnimationCurveNodes(); + this.parseAnimationCurves(n); + const r = this.parseAnimationLayers(n); return this.parseAnimStacks(r); } // parse nodes in FBXTree.Objects.AnimationCurveNode // each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation ) // and is referenced by an AnimationLayer parseAnimationCurveNodes() { - const i = se.Objects.AnimationCurveNode, r = /* @__PURE__ */ new Map(); - for (const s in i) { - const a = i[s]; + const n = se.Objects.AnimationCurveNode, r = /* @__PURE__ */ new Map(); + for (const s in n) { + const a = n[s]; if (a.attrName.match(/S|R|T|DeformPercent/) !== null) { const c = { id: a.id, @@ -3778,30 +3821,30 @@ var Ku = class { // parse nodes in FBXTree.Objects.AnimationCurve and connect them up to // previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated // axis ( e.g. times and values of x rotation) - parseAnimationCurves(i) { + parseAnimationCurves(n) { const r = se.Objects.AnimationCurve; for (const s in r) { const a = { id: r[s].id, - times: r[s].KeyTime.a.map(Qu), + times: r[s].KeyTime.a.map(oh), values: r[s].KeyValueFloat.a }, c = Ae.get(a.id); if (c !== void 0) { - const u = c.parents[0].ID, h = c.parents[0].relationship; - h.match(/X/) ? i.get(u).curves.x = a : h.match(/Y/) ? i.get(u).curves.y = a : h.match(/Z/) ? i.get(u).curves.z = a : h.match(/d|DeformPercent/) && i.has(u) && (i.get(u).curves.morph = a); + const p = c.parents[0].ID, h = c.parents[0].relationship; + h.match(/X/) ? n.get(p).curves.x = a : h.match(/Y/) ? n.get(p).curves.y = a : h.match(/Z/) ? n.get(p).curves.z = a : h.match(/d|DeformPercent/) && n.has(p) && (n.get(p).curves.morph = a); } } } // parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references // to various AnimationCurveNodes and is referenced by an AnimationStack node // note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack - parseAnimationLayers(i) { + parseAnimationLayers(n) { const r = se.Objects.AnimationLayer, s = /* @__PURE__ */ new Map(); for (const a in r) { - const c = [], u = Ae.get(parseInt(a)); - u !== void 0 && (u.children.forEach(function(d, g) { - if (i.has(d.ID)) { - const w = i.get(d.ID); + const c = [], p = Ae.get(parseInt(a)); + p !== void 0 && (p.children.forEach(function(d, g) { + if (n.has(d.ID)) { + const w = n.get(d.ID); if (w.curves.x !== void 0 || w.curves.y !== void 0 || w.curves.z !== void 0) { if (c[g] === void 0) { const _ = Ae.get(d.ID).parents.filter(function(y) { @@ -3813,16 +3856,16 @@ var Ku = class { console.warn("THREE.FBXLoader: Encountered a unused curve.", d); return; } - const C = { + const P = { modelName: y.attrName ? PropertyBinding.sanitizeNodeName(y.attrName) : "", ID: y.id, initialPosition: [0, 0, 0], initialRotation: [0, 0, 0], initialScale: [1, 1, 1] }; - We.traverse(function(I) { - I.ID === y.id && (C.transform = I.matrix, I.userData.transformData && (C.eulerOrder = I.userData.transformData.eulerOrder)); - }), C.transform || (C.transform = new Matrix4()), "PreRotation" in y && (C.preRotation = y.PreRotation.value), "PostRotation" in y && (C.postRotation = y.PostRotation.value), c[g] = C; + Je.traverse(function(I2) { + I2.ID === y.id && (P.transform = I2.matrix, I2.userData.transformData && (P.eulerOrder = I2.userData.transformData.eulerOrder)); + }), P.transform || (P.transform = new Matrix4()), "PreRotation" in y && (P.preRotation = y.PreRotation.value), "PostRotation" in y && (P.postRotation = y.PostRotation.value), c[g] = P; } } c[g] && (c[g][w.attr] = w); @@ -3830,7 +3873,7 @@ var Ku = class { if (c[g] === void 0) { const _ = Ae.get(d.ID).parents.filter(function(j) { return j.relationship !== void 0; - })[0].ID, y = Ae.get(_).parents[0].ID, C = Ae.get(y).parents[0].ID, I = Ae.get(C).parents[0].ID, S = se.Objects.Model[I], R = { + })[0].ID, y = Ae.get(_).parents[0].ID, P = Ae.get(y).parents[0].ID, I2 = Ae.get(P).parents[0].ID, S = se.Objects.Model[I2], R = { modelName: S.attrName ? PropertyBinding.sanitizeNodeName(S.attrName) : "", morphName: se.Objects.Deformer[_].attrName }; @@ -3845,88 +3888,88 @@ var Ku = class { } // parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation // hierarchy. Each Stack node will be used to create a AnimationClip - parseAnimStacks(i) { + parseAnimStacks(n) { const r = se.Objects.AnimationStack, s = {}; for (const a in r) { const c = Ae.get(parseInt(a)).children; c.length > 1 && console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers."); - const u = i.get(c[0].ID); + const p = n.get(c[0].ID); s[a] = { name: r[a].attrName, - layer: u + layer: p }; } return s; } - addClip(i) { + addClip(n) { let r = []; const s = this; - return i.layer.forEach(function(a) { + return n.layer.forEach(function(a) { r = r.concat(s.generateTracks(a)); - }), new AnimationClip(i.name, -1, r); + }), new AnimationClip(n.name, -1, r); } - generateTracks(i) { + generateTracks(n) { const r = []; let s = new Vector3(), a = new Quaternion(), c = new Vector3(); - if (i.transform && i.transform.decompose(s, a, c), s = s.toArray(), a = new Euler().setFromQuaternion(a, i.eulerOrder).toArray(), c = c.toArray(), i.T !== void 0 && Object.keys(i.T.curves).length > 0) { - const u = this.generateVectorTrack(i.modelName, i.T.curves, s, "position"); - u !== void 0 && r.push(u); + if (n.transform && n.transform.decompose(s, a, c), s = s.toArray(), a = new Euler().setFromQuaternion(a, n.eulerOrder).toArray(), c = c.toArray(), n.T !== void 0 && Object.keys(n.T.curves).length > 0) { + const p = this.generateVectorTrack(n.modelName, n.T.curves, s, "position"); + p !== void 0 && r.push(p); } - if (i.R !== void 0 && Object.keys(i.R.curves).length > 0) { - const u = this.generateRotationTrack(i.modelName, i.R.curves, a, i.preRotation, i.postRotation, i.eulerOrder); - u !== void 0 && r.push(u); + if (n.R !== void 0 && Object.keys(n.R.curves).length > 0) { + const p = this.generateRotationTrack(n.modelName, n.R.curves, a, n.preRotation, n.postRotation, n.eulerOrder); + p !== void 0 && r.push(p); } - if (i.S !== void 0 && Object.keys(i.S.curves).length > 0) { - const u = this.generateVectorTrack(i.modelName, i.S.curves, c, "scale"); - u !== void 0 && r.push(u); + if (n.S !== void 0 && Object.keys(n.S.curves).length > 0) { + const p = this.generateVectorTrack(n.modelName, n.S.curves, c, "scale"); + p !== void 0 && r.push(p); } - if (i.DeformPercent !== void 0) { - const u = this.generateMorphTrack(i); - u !== void 0 && r.push(u); + if (n.DeformPercent !== void 0) { + const p = this.generateMorphTrack(n); + p !== void 0 && r.push(p); } return r; } - generateVectorTrack(i, r, s, a) { - const c = this.getTimesForAllAxes(r), u = this.getKeyframeTrackValues(c, r, s); - return new VectorKeyframeTrack(i + "." + a, c, u); + generateVectorTrack(n, r, s, a) { + const c = this.getTimesForAllAxes(r), p = this.getKeyframeTrackValues(c, r, s); + return new VectorKeyframeTrack(n + "." + a, c, p); } - generateRotationTrack(i, r, s, a, c, u) { + generateRotationTrack(n, r, s, a, c, p) { r.x !== void 0 && (this.interpolateRotations(r.x), r.x.values = r.x.values.map(MathUtils.degToRad)), r.y !== void 0 && (this.interpolateRotations(r.y), r.y.values = r.y.values.map(MathUtils.degToRad)), r.z !== void 0 && (this.interpolateRotations(r.z), r.z.values = r.z.values.map(MathUtils.degToRad)); const h = this.getTimesForAllAxes(r), d = this.getKeyframeTrackValues(h, r, s); - a !== void 0 && (a = a.map(MathUtils.degToRad), a.push(u), a = new Euler().fromArray(a), a = new Quaternion().setFromEuler(a)), c !== void 0 && (c = c.map(MathUtils.degToRad), c.push(u), c = new Euler().fromArray(c), c = new Quaternion().setFromEuler(c).invert()); + a !== void 0 && (a = a.map(MathUtils.degToRad), a.push(p), a = new Euler().fromArray(a), a = new Quaternion().setFromEuler(a)), c !== void 0 && (c = c.map(MathUtils.degToRad), c.push(p), c = new Euler().fromArray(c), c = new Quaternion().setFromEuler(c).invert()); const g = new Quaternion(), w = new Euler(), _ = []; for (let y = 0; y < d.length; y += 3) - w.set(d[y], d[y + 1], d[y + 2], u), g.setFromEuler(w), a !== void 0 && g.premultiply(a), c !== void 0 && g.multiply(c), g.toArray(_, y / 3 * 4); - return new QuaternionKeyframeTrack(i + ".quaternion", h, _); + w.set(d[y], d[y + 1], d[y + 2], p), g.setFromEuler(w), a !== void 0 && g.premultiply(a), c !== void 0 && g.multiply(c), g.toArray(_, y / 3 * 4); + return new QuaternionKeyframeTrack(n + ".quaternion", h, _); } - generateMorphTrack(i) { - const r = i.DeformPercent.curves.morph, s = r.values.map(function(c) { + generateMorphTrack(n) { + const r = n.DeformPercent.curves.morph, s = r.values.map(function(c) { return c / 100; - }), a = We.getObjectByName(i.modelName).morphTargetDictionary[i.morphName]; - return new NumberKeyframeTrack(i.modelName + ".morphTargetInfluences[" + a + "]", r.times, s); + }), a = Je.getObjectByName(n.modelName).morphTargetDictionary[n.morphName]; + return new NumberKeyframeTrack(n.modelName + ".morphTargetInfluences[" + a + "]", r.times, s); } // For all animated objects, times are defined separately for each axis // Here we'll combine the times into one sorted array without duplicates - getTimesForAllAxes(i) { + getTimesForAllAxes(n) { let r = []; - if (i.x !== void 0 && (r = r.concat(i.x.times)), i.y !== void 0 && (r = r.concat(i.y.times)), i.z !== void 0 && (r = r.concat(i.z.times)), r = r.sort(function(s, a) { + if (n.x !== void 0 && (r = r.concat(n.x.times)), n.y !== void 0 && (r = r.concat(n.y.times)), n.z !== void 0 && (r = r.concat(n.z.times)), r = r.sort(function(s, a) { return s - a; }), r.length > 1) { let s = 1, a = r[0]; for (let c = 1; c < r.length; c++) { - const u = r[c]; - u !== a && (r[s] = u, a = u, s++); + const p = r[c]; + p !== a && (r[s] = p, a = p, s++); } r = r.slice(0, s); } return r; } - getKeyframeTrackValues(i, r, s) { + getKeyframeTrackValues(n, r, s) { const a = s, c = []; - let u = -1, h = -1, d = -1; - return i.forEach(function(g) { - if (r.x && (u = r.x.times.indexOf(g)), r.y && (h = r.y.times.indexOf(g)), r.z && (d = r.z.times.indexOf(g)), u !== -1) { - const w = r.x.values[u]; + let p = -1, h = -1, d = -1; + return n.forEach(function(g) { + if (r.x && (p = r.x.times.indexOf(g)), r.y && (h = r.y.times.indexOf(g)), r.z && (d = r.z.times.indexOf(g)), p !== -1) { + const w = r.x.values[p]; c.push(w), a[0] = w; } else c.push(a[0]); @@ -3945,23 +3988,23 @@ var Ku = class { // Rotations are defined as Euler angles which can have values of any size // These will be converted to quaternions which don't support values greater than // PI, so we'll interpolate large rotations - interpolateRotations(i) { - for (let r = 1; r < i.values.length; r++) { - const s = i.values[r - 1], a = i.values[r] - s, c = Math.abs(a); + interpolateRotations(n) { + for (let r = 1; r < n.values.length; r++) { + const s = n.values[r - 1], a = n.values[r] - s, c = Math.abs(a); if (c >= 180) { - const u = c / 180, h = a / u; + const p = c / 180, h = a / p; let d = s + h; - const g = i.times[r - 1], _ = (i.times[r] - g) / u; + const g = n.times[r - 1], _ = (n.times[r] - g) / p; let y = g + _; - const C = [], I = []; - for (; y < i.times[r]; ) - C.push(y), y += _, I.push(d), d += h; - i.times = ba(i.times, r, C), i.values = ba(i.values, r, I); + const P = [], I2 = []; + for (; y < n.times[r]; ) + P.push(y), y += _, I2.push(d), d += h; + n.times = xa(n.times, r, P), n.values = xa(n.values, r, I2); } } } }; -var $u = class { +var nh = class { getPrevNode() { return this.nodeStack[this.currentIndent - 2]; } @@ -3971,50 +4014,50 @@ var $u = class { getCurrentProp() { return this.currentProp; } - pushStack(i) { - this.nodeStack.push(i), this.currentIndent += 1; + pushStack(n) { + this.nodeStack.push(n), this.currentIndent += 1; } popStack() { this.nodeStack.pop(), this.currentIndent -= 1; } - setCurrentProp(i, r) { - this.currentProp = i, this.currentPropName = r; + setCurrentProp(n, r) { + this.currentProp = n, this.currentPropName = r; } - parse(i) { - this.currentIndent = 0, this.allNodes = new Qa(), this.nodeStack = [], this.currentProp = [], this.currentPropName = ""; - const r = this, s = i.split(/[\r\n]+/); + parse(n) { + this.currentIndent = 0, this.allNodes = new tl(), this.nodeStack = [], this.currentProp = [], this.currentPropName = ""; + const r = this, s = n.split(/[\r\n]+/); return s.forEach(function(a, c) { - const u = a.match(/^[\s\t]*;/), h = a.match(/^[\s\t]*$/); - if (u || h) + const p = a.match(/^[\s\t]*;/), h = a.match(/^[\s\t]*$/); + if (p || h) return; const d = a.match("^\\t{" + r.currentIndent + "}(\\w+):(.*){", ""), g = a.match("^\\t{" + r.currentIndent + "}(\\w+):[\\s\\t\\r\\n](.*)"), w = a.match("^\\t{" + (r.currentIndent - 1) + "}}"); d ? r.parseNodeBegin(a, d) : g ? r.parseNodeProperty(a, g, s[++c]) : w ? r.popStack() : a.match(/^[^\s\t}]/) && r.parseNodePropertyContinued(a); }), this.allNodes; } - parseNodeBegin(i, r) { + parseNodeBegin(n, r) { const s = r[1].trim().replace(/^"/, "").replace(/"$/, ""), a = r[2].split(",").map(function(d) { return d.trim().replace(/^"/, "").replace(/"$/, ""); }), c = { name: s - }, u = this.parseNodeAttr(a), h = this.getCurrentNode(); - this.currentIndent === 0 ? this.allNodes.add(s, c) : s in h ? (s === "PoseNode" ? h.PoseNode.push(c) : h[s].id !== void 0 && (h[s] = {}, h[s][h[s].id] = h[s]), u.id !== "" && (h[s][u.id] = c)) : typeof u.id == "number" ? (h[s] = {}, h[s][u.id] = c) : s !== "Properties70" && (s === "PoseNode" ? h[s] = [c] : h[s] = c), typeof u.id == "number" && (c.id = u.id), u.name !== "" && (c.attrName = u.name), u.type !== "" && (c.attrType = u.type), this.pushStack(c); + }, p = this.parseNodeAttr(a), h = this.getCurrentNode(); + this.currentIndent === 0 ? this.allNodes.add(s, c) : s in h ? (s === "PoseNode" ? h.PoseNode.push(c) : h[s].id !== void 0 && (h[s] = {}, h[s][h[s].id] = h[s]), p.id !== "" && (h[s][p.id] = c)) : typeof p.id == "number" ? (h[s] = {}, h[s][p.id] = c) : s !== "Properties70" && (s === "PoseNode" ? h[s] = [c] : h[s] = c), typeof p.id == "number" && (c.id = p.id), p.name !== "" && (c.attrName = p.name), p.type !== "" && (c.attrType = p.type), this.pushStack(c); } - parseNodeAttr(i) { - let r = i[0]; - i[0] !== "" && (r = parseInt(i[0]), isNaN(r) && (r = i[0])); + parseNodeAttr(n) { + let r = n[0]; + n[0] !== "" && (r = parseInt(n[0]), isNaN(r) && (r = n[0])); let s = "", a = ""; - return i.length > 1 && (s = i[1].replace(/^(\w+)::/, ""), a = i[2]), { + return n.length > 1 && (s = n[1].replace(/^(\w+)::/, ""), a = n[2]), { id: r, name: s, type: a }; } - parseNodeProperty(i, r, s) { + parseNodeProperty(n, r, s) { let a = r[1].replace(/^"/, "").replace(/"$/, "").trim(), c = r[2].replace(/^"/, "").replace(/"$/, "").trim(); a === "Content" && c === "," && (c = s.replace(/"/g, "").replace(/,$/, "").trim()); - const u = this.getCurrentNode(); - if (u.name === "Properties70") { - this.parseNodeSpecialProperty(i, a, c); + const p = this.getCurrentNode(); + if (p.name === "Properties70") { + this.parseNodeSpecialProperty(n, a, c); return; } if (a === "C") { @@ -4022,21 +4065,21 @@ var $u = class { let _ = c.split(",").slice(3); _ = _.map(function(y) { return y.trim().replace(/^"/, ""); - }), a = "connections", c = [g, w], Wu(c, _), u[a] === void 0 && (u[a] = []); + }), a = "connections", c = [g, w], lh(c, _), p[a] === void 0 && (p[a] = []); } - a === "Node" && (u.id = c), a in u && Array.isArray(u[a]) ? u[a].push(c) : a !== "a" ? u[a] = c : u.a = c, this.setCurrentProp(u, a), a === "a" && c.slice(-1) !== "," && (u.a = Wr(c)); + a === "Node" && (p.id = c), a in p && Array.isArray(p[a]) ? p[a].push(c) : a !== "a" ? p[a] = c : p.a = c, this.setCurrentProp(p, a), a === "a" && c.slice(-1) !== "," && (p.a = ro(c)); } - parseNodePropertyContinued(i) { + parseNodePropertyContinued(n) { const r = this.getCurrentNode(); - r.a += i, i.slice(-1) !== "," && (r.a = Wr(r.a)); + r.a += n, n.slice(-1) !== "," && (r.a = ro(r.a)); } // parse "Property70" - parseNodeSpecialProperty(i, r, s) { + parseNodeSpecialProperty(n, r, s) { const a = s.split('",').map(function(w) { return w.trim().replace(/^\"/, "").replace(/\s/, "_"); - }), c = a[0], u = a[1], h = a[2], d = a[3]; + }), c = a[0], p = a[1], h = a[2], d = a[3]; let g = a[4]; - switch (u) { + switch (p) { case "int": case "enum": case "bool": @@ -4052,25 +4095,25 @@ var $u = class { case "Lcl_Translation": case "Lcl_Rotation": case "Lcl_Scaling": - g = Wr(g); + g = ro(g); break; } this.getPrevNode()[c] = { - type: u, + type: p, type2: h, flag: d, value: g }, this.setCurrentProp(this.getPrevNode(), c); } }; -var Xu = class { - parse(i) { - const r = new fa(i); +var ih = class { + parse(n) { + const r = new wa(n); r.skip(23); const s = r.getUint32(); if (s < 6400) throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + s); - const a = new Qa(); + const a = new tl(); for (; !this.endOfContent(r); ) { const c = this.parseNode(r, s); c !== null && a.add(c.name, c); @@ -4078,94 +4121,94 @@ var Xu = class { return a; } // Check if reader has reached the end of content. - endOfContent(i) { - return i.size() % 16 === 0 ? (i.getOffset() + 160 + 16 & -16) >= i.size() : i.getOffset() + 160 + 16 >= i.size(); + endOfContent(n) { + return n.size() % 16 === 0 ? (n.getOffset() + 160 + 16 & -16) >= n.size() : n.getOffset() + 160 + 16 >= n.size(); } // recursively parse nodes until the end of the file is reached - parseNode(i, r) { - const s = {}, a = r >= 7500 ? i.getUint64() : i.getUint32(), c = r >= 7500 ? i.getUint64() : i.getUint32(); - r >= 7500 ? i.getUint64() : i.getUint32(); - const u = i.getUint8(), h = i.getString(u); + parseNode(n, r) { + const s = {}, a = r >= 7500 ? n.getUint64() : n.getUint32(), c = r >= 7500 ? n.getUint64() : n.getUint32(); + r >= 7500 ? n.getUint64() : n.getUint32(); + const p = n.getUint8(), h = n.getString(p); if (a === 0) return null; const d = []; for (let y = 0; y < c; y++) - d.push(this.parseProperty(i)); + d.push(this.parseProperty(n)); const g = d.length > 0 ? d[0] : "", w = d.length > 1 ? d[1] : "", _ = d.length > 2 ? d[2] : ""; - for (s.singleProperty = c === 1 && i.getOffset() === a; a > i.getOffset(); ) { - const y = this.parseNode(i, r); + for (s.singleProperty = c === 1 && n.getOffset() === a; a > n.getOffset(); ) { + const y = this.parseNode(n, r); y !== null && this.parseSubNode(h, s, y); } return s.propertyList = d, typeof g == "number" && (s.id = g), w !== "" && (s.attrName = w), _ !== "" && (s.attrType = _), h !== "" && (s.name = h), s; } - parseSubNode(i, r, s) { + parseSubNode(n, r, s) { if (s.singleProperty === true) { const a = s.propertyList[0]; Array.isArray(a) ? (r[s.name] = s, s.a = a) : r[s.name] = a; - } else if (i === "Connections" && s.name === "C") { + } else if (n === "Connections" && s.name === "C") { const a = []; - s.propertyList.forEach(function(c, u) { - u !== 0 && a.push(c); + s.propertyList.forEach(function(c, p) { + p !== 0 && a.push(c); }), r.connections === void 0 && (r.connections = []), r.connections.push(a); } else if (s.name === "Properties70") Object.keys(s).forEach(function(c) { r[c] = s[c]; }); - else if (i === "Properties70" && s.name === "P") { + else if (n === "Properties70" && s.name === "P") { let a = s.propertyList[0], c = s.propertyList[1]; - const u = s.propertyList[2], h = s.propertyList[3]; + const p = s.propertyList[2], h = s.propertyList[3]; let d; a.indexOf("Lcl ") === 0 && (a = a.replace("Lcl ", "Lcl_")), c.indexOf("Lcl ") === 0 && (c = c.replace("Lcl ", "Lcl_")), c === "Color" || c === "ColorRGB" || c === "Vector" || c === "Vector3D" || c.indexOf("Lcl_") === 0 ? d = [s.propertyList[4], s.propertyList[5], s.propertyList[6]] : d = s.propertyList[4], r[a] = { type: c, - type2: u, + type2: p, flag: h, value: d }; } else r[s.name] === void 0 ? typeof s.id == "number" ? (r[s.name] = {}, r[s.name][s.id] = s) : r[s.name] = s : s.name === "PoseNode" ? (Array.isArray(r[s.name]) || (r[s.name] = [r[s.name]]), r[s.name].push(s)) : r[s.name][s.id] === void 0 && (r[s.name][s.id] = s); } - parseProperty(i) { - const r = i.getString(1); + parseProperty(n) { + const r = n.getString(1); let s; switch (r) { case "C": - return i.getBoolean(); + return n.getBoolean(); case "D": - return i.getFloat64(); + return n.getFloat64(); case "F": - return i.getFloat32(); + return n.getFloat32(); case "I": - return i.getInt32(); + return n.getInt32(); case "L": - return i.getInt64(); + return n.getInt64(); case "R": - return s = i.getUint32(), i.getArrayBuffer(s); + return s = n.getUint32(), n.getArrayBuffer(s); case "S": - return s = i.getUint32(), i.getString(s); + return s = n.getUint32(), n.getString(s); case "Y": - return i.getInt16(); + return n.getInt16(); case "b": case "c": case "d": case "f": case "i": case "l": - const a = i.getUint32(), c = i.getUint32(), u = i.getUint32(); + const a = n.getUint32(), c = n.getUint32(), p = n.getUint32(); if (c === 0) switch (r) { case "b": case "c": - return i.getBooleanArray(a); + return n.getBooleanArray(a); case "d": - return i.getFloat64Array(a); + return n.getFloat64Array(a); case "f": - return i.getFloat32Array(a); + return n.getFloat32Array(a); case "i": - return i.getInt32Array(a); + return n.getInt32Array(a); case "l": - return i.getInt64Array(a); + return n.getInt64Array(a); } - const h = Zp(new Uint8Array(i.getArrayBuffer(u))), d = new fa(h.buffer); + const h = ip(new Uint8Array(n.getArrayBuffer(p))), d = new wa(h.buffer); switch (r) { case "b": case "c": @@ -4184,9 +4227,9 @@ var Xu = class { } } }; -var fa = class { - constructor(i, r) { - this.dv = new DataView(i), this.offset = 0, this.littleEndian = r !== void 0 ? r : true; +var wa = class { + constructor(n, r) { + this.dv = new DataView(n), this.offset = 0, this.littleEndian = r !== void 0 ? r : true; } getOffset() { return this.offset; @@ -4194,8 +4237,8 @@ var fa = class { size() { return this.dv.buffer.byteLength; } - skip(i) { - this.offset += i; + skip(n) { + this.offset += n; } // seems like true/false representation depends on exporter. // true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54) @@ -4203,33 +4246,33 @@ var fa = class { getBoolean() { return (this.getUint8() & 1) === 1; } - getBooleanArray(i) { + getBooleanArray(n) { const r = []; - for (let s = 0; s < i; s++) + for (let s = 0; s < n; s++) r.push(this.getBoolean()); return r; } getUint8() { - const i = this.dv.getUint8(this.offset); - return this.offset += 1, i; + const n = this.dv.getUint8(this.offset); + return this.offset += 1, n; } getInt16() { - const i = this.dv.getInt16(this.offset, this.littleEndian); - return this.offset += 2, i; + const n = this.dv.getInt16(this.offset, this.littleEndian); + return this.offset += 2, n; } getInt32() { - const i = this.dv.getInt32(this.offset, this.littleEndian); - return this.offset += 4, i; + const n = this.dv.getInt32(this.offset, this.littleEndian); + return this.offset += 4, n; } - getInt32Array(i) { + getInt32Array(n) { const r = []; - for (let s = 0; s < i; s++) + for (let s = 0; s < n; s++) r.push(this.getInt32()); return r; } getUint32() { - const i = this.dv.getUint32(this.offset, this.littleEndian); - return this.offset += 4, i; + const n = this.dv.getUint32(this.offset, this.littleEndian); + return this.offset += 4, n; } // JavaScript doesn't support 64-bit integer so calculate this here // 1 << 32 will return 1 so using multiply operation instead here. @@ -4237,91 +4280,91 @@ var fa = class { // is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER. // TODO: safely handle 64-bit integer getInt64() { - let i, r; - return this.littleEndian ? (i = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), i = this.getUint32()), r & 2147483648 ? (r = ~r & 4294967295, i = ~i & 4294967295, i === 4294967295 && (r = r + 1 & 4294967295), i = i + 1 & 4294967295, -(r * 4294967296 + i)) : r * 4294967296 + i; + let n, r; + return this.littleEndian ? (n = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), n = this.getUint32()), r & 2147483648 ? (r = ~r & 4294967295, n = ~n & 4294967295, n === 4294967295 && (r = r + 1 & 4294967295), n = n + 1 & 4294967295, -(r * 4294967296 + n)) : r * 4294967296 + n; } - getInt64Array(i) { + getInt64Array(n) { const r = []; - for (let s = 0; s < i; s++) + for (let s = 0; s < n; s++) r.push(this.getInt64()); return r; } // Note: see getInt64() comment getUint64() { - let i, r; - return this.littleEndian ? (i = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), i = this.getUint32()), r * 4294967296 + i; + let n, r; + return this.littleEndian ? (n = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), n = this.getUint32()), r * 4294967296 + n; } getFloat32() { - const i = this.dv.getFloat32(this.offset, this.littleEndian); - return this.offset += 4, i; + const n = this.dv.getFloat32(this.offset, this.littleEndian); + return this.offset += 4, n; } - getFloat32Array(i) { + getFloat32Array(n) { const r = []; - for (let s = 0; s < i; s++) + for (let s = 0; s < n; s++) r.push(this.getFloat32()); return r; } getFloat64() { - const i = this.dv.getFloat64(this.offset, this.littleEndian); - return this.offset += 8, i; + const n = this.dv.getFloat64(this.offset, this.littleEndian); + return this.offset += 8, n; } - getFloat64Array(i) { + getFloat64Array(n) { const r = []; - for (let s = 0; s < i; s++) + for (let s = 0; s < n; s++) r.push(this.getFloat64()); return r; } - getArrayBuffer(i) { - const r = this.dv.buffer.slice(this.offset, this.offset + i); - return this.offset += i, r; + getArrayBuffer(n) { + const r = this.dv.buffer.slice(this.offset, this.offset + n); + return this.offset += n, r; } - getString(i) { + getString(n) { let r = []; - for (let a = 0; a < i; a++) + for (let a = 0; a < n; a++) r[a] = this.getUint8(); const s = r.indexOf(0); return s >= 0 && (r = r.slice(0, s)), LoaderUtils.decodeText(new Uint8Array(r)); } }; -var Qa = class { - add(i, r) { - this[i] = r; +var tl = class { + add(n, r) { + this[n] = r; } }; -function Yu(b) { - const i = "Kaydara FBX Binary \0"; - return b.byteLength >= i.length && i === Ja(b, 0, i.length); +function sh(v) { + const n = "Kaydara FBX Binary \0"; + return v.byteLength >= n.length && n === sl(v, 0, n.length); } -function qu(b) { - const i = ["K", "a", "y", "d", "a", "r", "a", "\\", "F", "B", "X", "\\", "B", "i", "n", "a", "r", "y", "\\", "\\"]; +function rh(v) { + const n = ["K", "a", "y", "d", "a", "r", "a", "\\", "F", "B", "X", "\\", "B", "i", "n", "a", "r", "y", "\\", "\\"]; let r = 0; function s(a) { - const c = b[a - 1]; - return b = b.slice(r + a), r++, c; + const c = v[a - 1]; + return v = v.slice(r + a), r++, c; } - for (let a = 0; a < i.length; ++a) - if (s(1) === i[a]) + for (let a = 0; a < n.length; ++a) + if (s(1) === n[a]) return false; return true; } -function va(b) { - const i = /FBXVersion: (\d+)/, r = b.match(i); +function ya(v) { + const n = /FBXVersion: (\d+)/, r = v.match(n); if (r) return parseInt(r[1]); throw new Error("THREE.FBXLoader: Cannot find the version number for the file given."); } -function Qu(b) { - return b / 46186158e3; +function oh(v) { + return v / 46186158e3; } -var Zu = []; -function Vs(b, i, r, s) { +var ah = []; +function Os(v, n, r, s) { let a; switch (s.mappingType) { case "ByPolygonVertex": - a = b; + a = v; break; case "ByPolygon": - a = i; + a = n; break; case "ByVertice": a = r; @@ -4333,47 +4376,47 @@ function Vs(b, i, r, s) { console.warn("THREE.FBXLoader: unknown attribute mapping type " + s.mappingType); } s.referenceType === "IndexToDirect" && (a = s.indices[a]); - const c = a * s.dataSize, u = c + s.dataSize; - return Ju(Zu, s.buffer, c, u); + const c = a * s.dataSize, p = c + s.dataSize; + return ch(ah, s.buffer, c, p); } -var Zr = new Euler(); -var ci = new Vector3(); -function Za(b) { - const i = new Matrix4(), r = new Matrix4(), s = new Matrix4(), a = new Matrix4(), c = new Matrix4(), u = new Matrix4(), h = new Matrix4(), d = new Matrix4(), g = new Matrix4(), w = new Matrix4(), _ = new Matrix4(), y = new Matrix4(), C = b.inheritType ? b.inheritType : 0; - if (b.translation && i.setPosition(ci.fromArray(b.translation)), b.preRotation) { - const K = b.preRotation.map(MathUtils.degToRad); - K.push(b.eulerOrder), r.makeRotationFromEuler(Zr.fromArray(K)); - } - if (b.rotation) { - const K = b.rotation.map(MathUtils.degToRad); - K.push(b.eulerOrder), s.makeRotationFromEuler(Zr.fromArray(K)); - } - if (b.postRotation) { - const K = b.postRotation.map(MathUtils.degToRad); - K.push(b.eulerOrder), a.makeRotationFromEuler(Zr.fromArray(K)), a.invert(); - } - b.scale && c.scale(ci.fromArray(b.scale)), b.scalingOffset && h.setPosition(ci.fromArray(b.scalingOffset)), b.scalingPivot && u.setPosition(ci.fromArray(b.scalingPivot)), b.rotationOffset && d.setPosition(ci.fromArray(b.rotationOffset)), b.rotationPivot && g.setPosition(ci.fromArray(b.rotationPivot)), b.parentMatrixWorld && (_.copy(b.parentMatrix), w.copy(b.parentMatrixWorld)); - const I = r.clone().multiply(s).multiply(a), S = new Matrix4(); +var so = new Euler(); +var hi = new Vector3(); +function nl(v) { + const n = new Matrix4(), r = new Matrix4(), s = new Matrix4(), a = new Matrix4(), c = new Matrix4(), p = new Matrix4(), h = new Matrix4(), d = new Matrix4(), g = new Matrix4(), w = new Matrix4(), _ = new Matrix4(), y = new Matrix4(), P = v.inheritType ? v.inheritType : 0; + if (v.translation && n.setPosition(hi.fromArray(v.translation)), v.preRotation) { + const K = v.preRotation.map(MathUtils.degToRad); + K.push(v.eulerOrder), r.makeRotationFromEuler(so.fromArray(K)); + } + if (v.rotation) { + const K = v.rotation.map(MathUtils.degToRad); + K.push(v.eulerOrder), s.makeRotationFromEuler(so.fromArray(K)); + } + if (v.postRotation) { + const K = v.postRotation.map(MathUtils.degToRad); + K.push(v.eulerOrder), a.makeRotationFromEuler(so.fromArray(K)), a.invert(); + } + v.scale && c.scale(hi.fromArray(v.scale)), v.scalingOffset && h.setPosition(hi.fromArray(v.scalingOffset)), v.scalingPivot && p.setPosition(hi.fromArray(v.scalingPivot)), v.rotationOffset && d.setPosition(hi.fromArray(v.rotationOffset)), v.rotationPivot && g.setPosition(hi.fromArray(v.rotationPivot)), v.parentMatrixWorld && (_.copy(v.parentMatrix), w.copy(v.parentMatrixWorld)); + const I2 = r.clone().multiply(s).multiply(a), S = new Matrix4(); S.extractRotation(w); const R = new Matrix4(); R.copyPosition(w); - const j = R.clone().invert().multiply(w), F = S.clone().invert().multiply(j), V = c, D = new Matrix4(); - if (C === 0) - D.copy(S).multiply(I).multiply(F).multiply(V); - else if (C === 1) - D.copy(S).multiply(F).multiply(I).multiply(V); + const j = R.clone().invert().multiply(w), F = S.clone().invert().multiply(j), V = c, D2 = new Matrix4(); + if (P === 0) + D2.copy(S).multiply(I2).multiply(F).multiply(V); + else if (P === 1) + D2.copy(S).multiply(F).multiply(I2).multiply(V); else { - const q = new Matrix4().scale(new Vector3().setFromMatrixScale(_)).clone().invert(), ue = F.clone().multiply(q); - D.copy(S).multiply(I).multiply(ue).multiply(V); + const q = new Matrix4().scale(new Vector3().setFromMatrixScale(_)).clone().invert(), pe = F.clone().multiply(q); + D2.copy(S).multiply(I2).multiply(pe).multiply(V); } - const Y = g.clone().invert(), G = u.clone().invert(); - let N = i.clone().multiply(d).multiply(g).multiply(r).multiply(s).multiply(a).multiply(Y).multiply(h).multiply(u).multiply(c).multiply(G); + const Y = g.clone().invert(), G = p.clone().invert(); + let N = n.clone().multiply(d).multiply(g).multiply(r).multiply(s).multiply(a).multiply(Y).multiply(h).multiply(p).multiply(c).multiply(G); const O = new Matrix4().copyPosition(N), H = w.clone().multiply(O); - return y.copyPosition(H), N = y.clone().multiply(D), N.premultiply(w.invert()), N; + return y.copyPosition(H), N = y.clone().multiply(D2), N.premultiply(w.invert()), N; } -function Wa(b) { - b = b || 0; - const i = [ +function il(v) { + v = v || 0; + const n = [ "ZYX", // -> XYZ extrinsic "YZX", @@ -4388,143 +4431,143 @@ function Wa(b) { // -> ZYX extrinsic //'SphericXYZ', // not possible to support ]; - return b === 6 ? (console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."), i[0]) : i[b]; + return v === 6 ? (console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."), n[0]) : n[v]; } -function Wr(b) { - return b.split(",").map(function(r) { +function ro(v) { + return v.split(",").map(function(r) { return parseFloat(r); }); } -function Ja(b, i, r) { - return i === void 0 && (i = 0), r === void 0 && (r = b.byteLength), LoaderUtils.decodeText(new Uint8Array(b, i, r)); +function sl(v, n, r) { + return n === void 0 && (n = 0), r === void 0 && (r = v.byteLength), LoaderUtils.decodeText(new Uint8Array(v, n, r)); } -function Wu(b, i) { - for (let r = 0, s = b.length, a = i.length; r < a; r++, s++) - b[s] = i[r]; +function lh(v, n) { + for (let r = 0, s = v.length, a = n.length; r < a; r++, s++) + v[s] = n[r]; } -function Ju(b, i, r, s) { +function ch(v, n, r, s) { for (let a = r, c = 0; a < s; a++, c++) - b[c] = i[a]; - return b; + v[c] = n[a]; + return v; } -function ba(b, i, r) { - return b.slice(0, i).concat(r).concat(b.slice(i)); +function xa(v, n, r) { + return v.slice(0, n).concat(r).concat(v.slice(n)); } -var eh = class extends Loader { - constructor(i) { - super(i); +var uh = class extends Loader { + constructor(n) { + super(n); } - load(i, r, s, a) { + load(n, r, s, a) { const c = new FileLoader(this.manager); - c.setPath(this.path), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(i, (u) => { - if (typeof u != "string") + c.setPath(this.path), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(n, (p) => { + if (typeof p != "string") throw new Error("unsupported data type"); - const h = JSON.parse(u), d = this.parse(h); + const h = JSON.parse(p), d = this.parse(h); r && r(d); }, s, a); } - parse(i) { - return new go(i); + parse(n) { + return new xo(n); } }; -var go = class { - constructor(i) { - T(this, "data", void 0), this.data = i; +var xo = class { + constructor(n) { + C(this, "data", void 0), this.data = n; } - generateShapes(i, r = 100, s) { + generateShapes(n, r = 100, s) { const a = [], c = { letterSpacing: 0, lineHeight: 1, ...s - }, u = th(i, r, this.data, c); - for (let h = 0, d = u.length; h < d; h++) - Array.prototype.push.apply(a, u[h].toShapes(false)); + }, p = ph(n, r, this.data, c); + for (let h = 0, d = p.length; h < d; h++) + Array.prototype.push.apply(a, p[h].toShapes(false)); return a; } }; -T(go, "isFont", void 0); -T(go, "type", void 0); -function th(b, i, r, s) { - const a = Array.from(b), c = i / r.resolution, u = (r.boundingBox.yMax - r.boundingBox.yMin + r.underlineThickness) * c, h = []; +C(xo, "isFont", void 0); +C(xo, "type", void 0); +function ph(v, n, r, s) { + const a = Array.from(v), c = n / r.resolution, p = (r.boundingBox.yMax - r.boundingBox.yMin + r.underlineThickness) * c, h = []; let d = 0, g = 0; for (let w = 0; w < a.length; w++) { const _ = a[w]; if (_ === ` `) - d = 0, g -= u * s.lineHeight; + d = 0, g -= p * s.lineHeight; else { - const y = nh(_, c, d, g, r); + const y = hh(_, c, d, g, r); y && (d += y.offsetX + s.letterSpacing, h.push(y.path)); } } return h; } -function nh(b, i, r, s, a) { - const c = a.glyphs[b] || a.glyphs["?"]; +function hh(v, n, r, s, a) { + const c = a.glyphs[v] || a.glyphs["?"]; if (!c) { - console.error('THREE.Font: character "' + b + '" does not exists in font family ' + a.familyName + "."); + console.error('THREE.Font: character "' + v + '" does not exists in font family ' + a.familyName + "."); return; } - const u = new ShapePath(); - let h, d, g, w, _, y, C, I; + const p = new ShapePath(); + let h, d, g, w, _, y, P, I2; if (c.o) { const S = c._cachedOutline || (c._cachedOutline = c.o.split(" ")); for (let R = 0, j = S.length; R < j; ) switch (S[R++]) { case "m": - h = parseInt(S[R++]) * i + r, d = parseInt(S[R++]) * i + s, u.moveTo(h, d); + h = parseInt(S[R++]) * n + r, d = parseInt(S[R++]) * n + s, p.moveTo(h, d); break; case "l": - h = parseInt(S[R++]) * i + r, d = parseInt(S[R++]) * i + s, u.lineTo(h, d); + h = parseInt(S[R++]) * n + r, d = parseInt(S[R++]) * n + s, p.lineTo(h, d); break; case "q": - g = parseInt(S[R++]) * i + r, w = parseInt(S[R++]) * i + s, _ = parseInt(S[R++]) * i + r, y = parseInt(S[R++]) * i + s, u.quadraticCurveTo(_, y, g, w); + g = parseInt(S[R++]) * n + r, w = parseInt(S[R++]) * n + s, _ = parseInt(S[R++]) * n + r, y = parseInt(S[R++]) * n + s, p.quadraticCurveTo(_, y, g, w); break; case "b": - g = parseInt(S[R++]) * i + r, w = parseInt(S[R++]) * i + s, _ = parseInt(S[R++]) * i + r, y = parseInt(S[R++]) * i + s, C = parseInt(S[R++]) * i + r, I = parseInt(S[R++]) * i + s, u.bezierCurveTo(_, y, C, I, g, w); + g = parseInt(S[R++]) * n + r, w = parseInt(S[R++]) * n + s, _ = parseInt(S[R++]) * n + r, y = parseInt(S[R++]) * n + s, P = parseInt(S[R++]) * n + r, I2 = parseInt(S[R++]) * n + s, p.bezierCurveTo(_, y, P, I2, g, w); break; } } return { - offsetX: c.ha * i, - path: u + offsetX: c.ha * n, + path: p }; } -var el = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; -function ih(b) { - return b && b.__esModule && Object.prototype.hasOwnProperty.call(b, "default") ? b.default : b; +var rl = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; +function dh(v) { + return v && v.__esModule && Object.prototype.hasOwnProperty.call(v, "default") ? v.default : v; } -var sh = class extends DataTextureLoader { - constructor(i) { - super(i), this.type = HalfFloatType; +var mh = class extends DataTextureLoader { + constructor(n) { + super(n), this.type = HalfFloatType; } // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html - parse(i) { - const h = function(V, D) { + parse(n) { + const h = function(V, D2) { switch (V) { case 1: - console.error("THREE.RGBELoader Read Error: " + (D || "")); + console.error("THREE.RGBELoader Read Error: " + (D2 || "")); break; case 2: - console.error("THREE.RGBELoader Write Error: " + (D || "")); + console.error("THREE.RGBELoader Write Error: " + (D2 || "")); break; case 3: - console.error("THREE.RGBELoader Bad File Format: " + (D || "")); + console.error("THREE.RGBELoader Bad File Format: " + (D2 || "")); break; default: case 4: - console.error("THREE.RGBELoader: Error: " + (D || "")); + console.error("THREE.RGBELoader: Error: " + (D2 || "")); } return -1; }, _ = ` -`, y = function(V, D, Y) { - D = D || 1024; +`, y = function(V, D2, Y) { + D2 = D2 || 1024; let N = V.pos, O = -1, H = 0, K = "", q = String.fromCharCode.apply(null, new Uint16Array(V.subarray(N, N + 128))); - for (; 0 > (O = q.indexOf(_)) && H < D && N < V.byteLength; ) + for (; 0 > (O = q.indexOf(_)) && H < D2 && N < V.byteLength; ) K += q, H += q.length, N += 128, q += String.fromCharCode.apply(null, new Uint16Array(V.subarray(N, N + 128))); return -1 < O ? (Y !== false && (V.pos += H + O + 1), K + q.slice(0, O)) : false; - }, C = function(V) { - const D = /^#\?(\S+)/, Y = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, G = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, N = /^\s*FORMAT=(\S+)\s*$/, O = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/, H = { + }, P = function(V) { + const D2 = /^#\?(\S+)/, Y = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, G = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, N = /^\s*FORMAT=(\S+)\s*$/, O = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/, H = { valid: 0, string: "", comments: "", @@ -4539,7 +4582,7 @@ var sh = class extends DataTextureLoader { let K, q; if (V.pos >= V.byteLength || !(K = y(V))) return h(1, "no header found"); - if (!(q = K.match(D))) + if (!(q = K.match(D2))) return h(3, "bad initial token"); for (H.valid |= 1, H.programtype = q[1], H.string += K + ` `; K = y(V), K !== false; ) { @@ -4553,8 +4596,8 @@ var sh = class extends DataTextureLoader { break; } return H.valid & 2 ? H.valid & 4 ? H : h(3, "missing image size specifier") : h(3, "missing format specifier"); - }, I = function(V, D, Y) { - const G = D; + }, I2 = function(V, D2, Y) { + const G = D2; if ( // run length encoding is not allowed so read flat G < 8 || G > 32767 || // this file is not run length encoded @@ -4563,11 +4606,11 @@ var sh = class extends DataTextureLoader { return new Uint8Array(V); if (G !== (V[2] << 8 | V[3])) return h(3, "wrong scanline width"); - const N = new Uint8Array(4 * D * Y); + const N = new Uint8Array(4 * D2 * Y); if (!N.length) return h(4, "unable to allocate buffer space"); let O = 0, H = 0; - const K = 4 * G, q = new Uint8Array(4), ue = new Uint8Array(K); + const K = 4 * G, q = new Uint8Array(4), pe = new Uint8Array(K); let ge = Y; for (; ge > 0 && H < V.byteLength; ) { if (H + 4 > V.byteLength) @@ -4583,29 +4626,29 @@ var sh = class extends DataTextureLoader { if (ee) { const X = V[H++]; for (let Pe = 0; Pe < me; Pe++) - ue[ce++] = X; + pe[ce++] = X; } else - ue.set(V.subarray(H, H + me), ce), ce += me, H += me; + pe.set(V.subarray(H, H + me), ce), ce += me, H += me; } const he = G; for (let ee = 0; ee < he; ee++) { let X = 0; - N[O] = ue[ee + X], X += G, N[O + 1] = ue[ee + X], X += G, N[O + 2] = ue[ee + X], X += G, N[O + 3] = ue[ee + X], O += 4; + N[O] = pe[ee + X], X += G, N[O + 1] = pe[ee + X], X += G, N[O + 2] = pe[ee + X], X += G, N[O + 3] = pe[ee + X], O += 4; } ge--; } return N; - }, S = function(V, D, Y, G) { - const N = V[D + 3], O = Math.pow(2, N - 128) / 255; - Y[G + 0] = V[D + 0] * O, Y[G + 1] = V[D + 1] * O, Y[G + 2] = V[D + 2] * O, Y[G + 3] = 1; - }, R = function(V, D, Y, G) { - const N = V[D + 3], O = Math.pow(2, N - 128) / 255; - Y[G + 0] = DataUtils.toHalfFloat(Math.min(V[D + 0] * O, 65504)), Y[G + 1] = DataUtils.toHalfFloat(Math.min(V[D + 1] * O, 65504)), Y[G + 2] = DataUtils.toHalfFloat(Math.min(V[D + 2] * O, 65504)), Y[G + 3] = DataUtils.toHalfFloat(1); - }, j = new Uint8Array(i); + }, S = function(V, D2, Y, G) { + const N = V[D2 + 3], O = Math.pow(2, N - 128) / 255; + Y[G + 0] = V[D2 + 0] * O, Y[G + 1] = V[D2 + 1] * O, Y[G + 2] = V[D2 + 2] * O, Y[G + 3] = 1; + }, R = function(V, D2, Y, G) { + const N = V[D2 + 3], O = Math.pow(2, N - 128) / 255; + Y[G + 0] = DataUtils.toHalfFloat(Math.min(V[D2 + 0] * O, 65504)), Y[G + 1] = DataUtils.toHalfFloat(Math.min(V[D2 + 1] * O, 65504)), Y[G + 2] = DataUtils.toHalfFloat(Math.min(V[D2 + 2] * O, 65504)), Y[G + 3] = DataUtils.toHalfFloat(1); + }, j = new Uint8Array(n); j.pos = 0; - const F = C(j); + const F = P(j); if (F !== -1) { - const V = F.width, D = F.height, Y = I(j.subarray(j.pos), V, D); + const V = F.width, D2 = F.height, Y = I2(j.subarray(j.pos), V, D2); if (Y !== -1) { let G, N, O; switch (this.type) { @@ -4629,7 +4672,7 @@ var sh = class extends DataTextureLoader { } return { width: V, - height: D, + height: D2, data: G, header: F.string, gamma: F.gamma, @@ -4640,26 +4683,26 @@ var sh = class extends DataTextureLoader { } return null; } - setDataType(i) { - return this.type = i, this; + setDataType(n) { + return this.type = n, this; } - load(i, r, s, a) { - function c(u, h) { - switch (u.type) { + load(n, r, s, a) { + function c(p, h) { + switch (p.type) { case FloatType: case HalfFloatType: - u.encoding = LinearEncoding, u.minFilter = LinearFilter, u.magFilter = LinearFilter, u.generateMipmaps = false, u.flipY = true; + p.encoding = LinearEncoding, p.minFilter = LinearFilter, p.magFilter = LinearFilter, p.generateMipmaps = false, p.flipY = true; break; } - r && r(u, h); + r && r(p, h); } - return super.load(i, c, s, a); + return super.load(n, c, s, a); } }; -var Jr = /* @__PURE__ */ new WeakMap(); -var rh = class extends Loader { - constructor(i) { - super(i), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = { +var oo = /* @__PURE__ */ new WeakMap(); +var fh = class extends Loader { + constructor(n) { + super(n), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = { position: "POSITION", normal: "NORMAL", color: "COLOR", @@ -4671,50 +4714,50 @@ var rh = class extends Loader { uv: "Float32Array" }; } - setDecoderPath(i) { - return this.decoderPath = i, this; + setDecoderPath(n) { + return this.decoderPath = n, this; } - setDecoderConfig(i) { - return this.decoderConfig = i, this; + setDecoderConfig(n) { + return this.decoderConfig = n, this; } - setWorkerLimit(i) { - return this.workerLimit = i, this; + setWorkerLimit(n) { + return this.workerLimit = n, this; } - load(i, r, s, a) { + load(n, r, s, a) { const c = new FileLoader(this.manager); - c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(i, (u) => { + c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(n, (p) => { const h = { attributeIDs: this.defaultAttributeIDs, attributeTypes: this.defaultAttributeTypes, useUniqueIDs: false }; - this.decodeGeometry(u, h).then(r).catch(a); + this.decodeGeometry(p, h).then(r).catch(a); }, s, a); } /** @deprecated Kept for backward-compatibility with previous DRACOLoader versions. */ - decodeDracoFile(i, r, s, a) { + decodeDracoFile(n, r, s, a) { const c = { attributeIDs: s || this.defaultAttributeIDs, attributeTypes: a || this.defaultAttributeTypes, useUniqueIDs: !!s }; - this.decodeGeometry(i, c).then(r); + this.decodeGeometry(n, c).then(r); } - decodeGeometry(i, r) { + decodeGeometry(n, r) { for (const d in r.attributeTypes) { const g = r.attributeTypes[d]; g.BYTES_PER_ELEMENT !== void 0 && (r.attributeTypes[d] = g.name); } const s = JSON.stringify(r); - if (Jr.has(i)) { - const d = Jr.get(i); + if (oo.has(n)) { + const d = oo.get(n); if (d.key === s) return d.promise; - if (i.byteLength === 0) + if (n.byteLength === 0) throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred."); } let a; - const c = this.workerNextTaskID++, u = i.byteLength, h = this._getWorker(c, u).then((d) => (a = d, new Promise((g, w) => { + const c = this.workerNextTaskID++, p = n.byteLength, h = this._getWorker(c, p).then((d) => (a = d, new Promise((g, w) => { a._callbacks[c] = { resolve: g, reject: w @@ -4722,29 +4765,29 @@ var rh = class extends Loader { type: "decode", id: c, taskConfig: r, - buffer: i - }, [i]); + buffer: n + }, [n]); }))).then((d) => this._createGeometry(d.geometry)); return h.catch(() => true).then(() => { a && c && this._releaseTask(a, c); - }), Jr.set(i, { + }), oo.set(n, { key: s, promise: h }), h; } - _createGeometry(i) { + _createGeometry(n) { const r = new BufferGeometry(); - i.index && r.setIndex(new BufferAttribute(i.index.array, 1)); - for (let s = 0; s < i.attributes.length; s++) { - const a = i.attributes[s], c = a.name, u = a.array, h = a.itemSize; - r.setAttribute(c, new BufferAttribute(u, h)); + n.index && r.setIndex(new BufferAttribute(n.index.array, 1)); + for (let s = 0; s < n.attributes.length; s++) { + const a = n.attributes[s], c = a.name, p = a.array, h = a.itemSize; + r.setAttribute(c, new BufferAttribute(p, h)); } return r; } - _loadLibrary(i, r) { + _loadLibrary(n, r) { const s = new FileLoader(this.manager); return s.setPath(this.decoderPath), s.setResponseType(r), s.setWithCredentials(this.withCredentials), new Promise((a, c) => { - s.load(i, a, void 0, c); + s.load(n, a, void 0, c); }); } preload() { @@ -4753,16 +4796,16 @@ var rh = class extends Loader { _initDecoder() { if (this.decoderPending) return this.decoderPending; - const i = typeof WebAssembly != "object" || this.decoderConfig.type === "js", r = []; - return i ? r.push(this._loadLibrary("draco_decoder.js", "text")) : (r.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), r.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(r).then((s) => { + const n = typeof WebAssembly != "object" || this.decoderConfig.type === "js", r = []; + return n ? r.push(this._loadLibrary("draco_decoder.js", "text")) : (r.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), r.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(r).then((s) => { const a = s[0]; - i || (this.decoderConfig.wasmBinary = s[1]); - const c = oh.toString(), u = ["/* draco decoder */", a, "", "/* worker */", c.substring(c.indexOf("{") + 1, c.lastIndexOf("}"))].join(` + n || (this.decoderConfig.wasmBinary = s[1]); + const c = vh.toString(), p = ["/* draco decoder */", a, "", "/* worker */", c.substring(c.indexOf("{") + 1, c.lastIndexOf("}"))].join(` `); - this.workerSourceURL = URL.createObjectURL(new Blob([u])); + this.workerSourceURL = URL.createObjectURL(new Blob([p])); }), this.decoderPending; } - _getWorker(i, r) { + _getWorker(n, r) { return this._initDecoder().then(() => { if (this.workerPool.length < this.workerLimit) { const a = new Worker(this.workerSourceURL); @@ -4770,16 +4813,16 @@ var rh = class extends Loader { type: "init", decoderConfig: this.decoderConfig }), a.onmessage = function(c) { - const u = c.data; - switch (u.type) { + const p = c.data; + switch (p.type) { case "decode": - a._callbacks[u.id].resolve(u); + a._callbacks[p.id].resolve(p); break; case "error": - a._callbacks[u.id].reject(u); + a._callbacks[p.id].reject(p); break; default: - console.error('THREE.DRACOLoader: Unexpected message, "' + u.type + '"'); + console.error('THREE.DRACOLoader: Unexpected message, "' + p.type + '"'); } }, this.workerPool.push(a); } else @@ -4787,72 +4830,72 @@ var rh = class extends Loader { return a._taskLoad > c._taskLoad ? -1 : 1; }); const s = this.workerPool[this.workerPool.length - 1]; - return s._taskCosts[i] = r, s._taskLoad += r, s; + return s._taskCosts[n] = r, s._taskLoad += r, s; }); } - _releaseTask(i, r) { - i._taskLoad -= i._taskCosts[r], delete i._callbacks[r], delete i._taskCosts[r]; + _releaseTask(n, r) { + n._taskLoad -= n._taskCosts[r], delete n._callbacks[r], delete n._taskCosts[r]; } debug() { - console.log("Task load: ", this.workerPool.map((i) => i._taskLoad)); + console.log("Task load: ", this.workerPool.map((n) => n._taskLoad)); } dispose() { - for (let i = 0; i < this.workerPool.length; ++i) - this.workerPool[i].terminate(); + for (let n = 0; n < this.workerPool.length; ++n) + this.workerPool[n].terminate(); return this.workerPool.length = 0, this; } }; -function oh() { - let b, i; - onmessage = function(u) { - const h = u.data; +function vh() { + let v, n; + onmessage = function(p) { + const h = p.data; switch (h.type) { case "init": - b = h.decoderConfig, i = new Promise(function(w) { - b.onModuleLoaded = function(_) { + v = h.decoderConfig, n = new Promise(function(w) { + v.onModuleLoaded = function(_) { w({ draco: _ }); - }, DracoDecoderModule(b); + }, DracoDecoderModule(v); }); break; case "decode": const d = h.buffer, g = h.taskConfig; - i.then((w) => { - const _ = w.draco, y = new _.Decoder(), C = new _.DecoderBuffer(); - C.Init(new Int8Array(d), d.byteLength); + n.then((w) => { + const _ = w.draco, y = new _.Decoder(), P = new _.DecoderBuffer(); + P.Init(new Int8Array(d), d.byteLength); try { - const I = r(_, y, C, g), S = I.attributes.map((R) => R.array.buffer); - I.index && S.push(I.index.array.buffer), self.postMessage({ + const I2 = r(_, y, P, g), S = I2.attributes.map((R) => R.array.buffer); + I2.index && S.push(I2.index.array.buffer), self.postMessage({ type: "decode", id: h.id, - geometry: I + geometry: I2 }, S); - } catch (I) { - console.error(I), self.postMessage({ + } catch (I2) { + console.error(I2), self.postMessage({ type: "error", id: h.id, - error: I.message + error: I2.message }); } finally { - _.destroy(C), _.destroy(y); + _.destroy(P), _.destroy(y); } }); break; } }; - function r(u, h, d, g) { + function r(p, h, d, g) { const w = g.attributeIDs, _ = g.attributeTypes; - let y, C; - const I = h.GetEncodedGeometryType(d); - if (I === u.TRIANGULAR_MESH) - y = new u.Mesh(), C = h.DecodeBufferToMesh(d, y); - else if (I === u.POINT_CLOUD) - y = new u.PointCloud(), C = h.DecodeBufferToPointCloud(d, y); + let y, P; + const I2 = h.GetEncodedGeometryType(d); + if (I2 === p.TRIANGULAR_MESH) + y = new p.Mesh(), P = h.DecodeBufferToMesh(d, y); + else if (I2 === p.POINT_CLOUD) + y = new p.PointCloud(), P = h.DecodeBufferToPointCloud(d, y); else throw new Error("THREE.DRACOLoader: Unexpected geometry type."); - if (!C.ok() || y.ptr === 0) - throw new Error("THREE.DRACOLoader: Decoding failed: " + C.error_msg()); + if (!P.ok() || y.ptr === 0) + throw new Error("THREE.DRACOLoader: Decoding failed: " + P.error_msg()); const S = { index: null, attributes: [] @@ -4863,63 +4906,63 @@ function oh() { if (g.useUniqueIDs) V = w[R], F = h.GetAttributeByUniqueId(y, V); else { - if (V = h.GetAttributeId(y, u[w[R]]), V === -1) + if (V = h.GetAttributeId(y, p[w[R]]), V === -1) continue; F = h.GetAttribute(y, V); } - S.attributes.push(a(u, h, y, R, j, F)); + S.attributes.push(a(p, h, y, R, j, F)); } - return I === u.TRIANGULAR_MESH && (S.index = s(u, h, y)), u.destroy(y), S; + return I2 === p.TRIANGULAR_MESH && (S.index = s(p, h, y)), p.destroy(y), S; } - function s(u, h, d) { - const w = d.num_faces() * 3, _ = w * 4, y = u._malloc(_); + function s(p, h, d) { + const w = d.num_faces() * 3, _ = w * 4, y = p._malloc(_); h.GetTrianglesUInt32Array(d, _, y); - const C = new Uint32Array(u.HEAPF32.buffer, y, w).slice(); - return u._free(y), { - array: C, + const P = new Uint32Array(p.HEAPF32.buffer, y, w).slice(); + return p._free(y), { + array: P, itemSize: 1 }; } - function a(u, h, d, g, w, _) { - const y = _.num_components(), I = d.num_points() * y, S = I * w.BYTES_PER_ELEMENT, R = c(u, w), j = u._malloc(S); + function a(p, h, d, g, w, _) { + const y = _.num_components(), I2 = d.num_points() * y, S = I2 * w.BYTES_PER_ELEMENT, R = c(p, w), j = p._malloc(S); h.GetAttributeDataArrayForAllPoints(d, _, R, S, j); - const F = new w(u.HEAPF32.buffer, j, I).slice(); - return u._free(j), { + const F = new w(p.HEAPF32.buffer, j, I2).slice(); + return p._free(j), { name: g, array: F, itemSize: y }; } - function c(u, h) { + function c(p, h) { switch (h) { case Float32Array: - return u.DT_FLOAT32; + return p.DT_FLOAT32; case Int8Array: - return u.DT_INT8; + return p.DT_INT8; case Int16Array: - return u.DT_INT16; + return p.DT_INT16; case Int32Array: - return u.DT_INT32; + return p.DT_INT32; case Uint8Array: - return u.DT_UINT8; + return p.DT_UINT8; case Uint16Array: - return u.DT_UINT16; + return p.DT_UINT16; case Uint32Array: - return u.DT_UINT32; + return p.DT_UINT32; } } } -function Fn() { - const { state: b, setState: i } = inject("useTres", k()), r = inject("extend") || (() => { +function Gt() { + const { state: v, setState: n } = inject("useTres", D()), r = inject("extend") || (() => { }); return { - state: b, - setState: i, + state: v, + setState: n, extend: r }; } -var ah = ["args"]; -var ud = defineComponent({ +var bh = ["args"]; +var Pd = defineComponent({ __name: "OrbitControls", props: { makeDefault: { type: Boolean, default: false }, @@ -4928,177 +4971,104 @@ var ud = defineComponent({ target: null, enableDamping: { type: Boolean } }, - setup(b) { - const i = b, { state: r, setState: s, extend: a } = Fn(), c = ref(null); - return a({ OrbitControls: iu }), watch(c, (u) => { - u && i.makeDefault ? s("controls", u) : s("controls", null); - }), (u, h) => { + setup(v) { + const n = v, { state: r, setState: s, extend: a } = Gt(), c = ref(null); + return a({ OrbitControls: dp }), watch(c, (p) => { + p && n.makeDefault ? s("controls", p) : s("controls", null); + }), (p, h) => { var d; return unref(r).camera && unref(r).renderer ? (openBlock(), createElementBlock("TresOrbitControls", { key: 0, ref_key: "controls", ref: c, - args: [unref(r).camera || b.camera, ((d = unref(r).renderer) == null ? void 0 : d.domElement) || b.domElement] - }, null, 8, ah)) : createCommentVNode("", true); - }; - } -}); -function lh(b, i) { - const r = {}; - for (const s of i) - Object.prototype.hasOwnProperty.call(b, s) && (r[s] = b[s]); - return r; -} -function ch(b, i) { - const r = `set${i[0].toUpperCase()}${i.slice(1)}`; - return b[r] !== void 0; -} -var hd = defineComponent({ - __name: "TransformControls", - props: { - object: null, - mode: null, - enabled: { type: Boolean, default: true }, - axis: null, - translationSnap: null, - rotationSnap: null, - scaleSnap: null, - space: null, - size: null, - showX: { type: Boolean }, - showY: { type: Boolean }, - showZ: { type: Boolean } - }, - emits: ["dragging", "change", "mouseDown", "mouseUp", "objectChange"], - setup(b, { emit: i }) { - const r = b; - let s = shallowRef(); - const { state: a } = Fn(), c = computed( - () => lh(r, [ - "enabled", - "axis", - "mode", - "translationSnap", - "rotationSnap", - "scaleSnap", - "space", - "size", - "showX", - "showY", - "showZ" - ]) - ), u = () => i("change", s.value), h = () => i("mouseDown", s.value), d = () => i("mouseUp", s.value), g = () => i("objectChange", s.value), w = (y) => { - a.controls && (a.controls.enabled = !y.value), i("dragging", y.value); + args: [unref(r).camera || v.camera, ((d = unref(r).renderer) == null ? void 0 : d.domElement) || v.domElement] + }, null, 8, bh)) : createCommentVNode("", true); }; - function _(y) { - y.addEventListener("dragging-changed", w), y.addEventListener("change", u), y.addEventListener("mouseDown", h), y.addEventListener("mouseUp", d), y.addEventListener("objectChange", g); - } - return watchEffect(() => { - a.camera && a.renderer && a.scene && r.object && (s.value = new eu(a.camera, a.renderer.domElement), s.value.attach(r.object), a.scene.add(s.value), _(s.value)); - }), watch( - [c, s], - // TODO: properly type this - ([y, C]) => { - if (y && C) - for (const I in y) - if (!ch(C, I)) - C[I] = y[I]; - else { - const S = `set${I[0].toUpperCase()}${I.slice(1)}`; - typeof C[S] == "function" && y[I] !== void 0 && C[S](y[I]); - } - }, - { - immediate: true - } - ), onUnmounted(() => { - s.value && (s.value.removeEventListener("dragging-changed", w), s.value.removeEventListener("change", u), s.value.removeEventListener("mouseDown", h), s.value.removeEventListener("mouseUp", d), s.value.removeEventListener("objectChange", g)); - }), (y, C) => renderSlot(y.$slots, "default"); } }); -var ga; -var tl = typeof window < "u"; -var ph = (b) => typeof b == "string"; -var uh = () => { +var Ea; +var ol = typeof window < "u"; +var gh = (v) => typeof v == "string"; +var _h = () => { }; -tl && ((ga = window == null ? void 0 : window.navigator) != null && ga.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent); -function nl(b) { - return typeof b == "function" ? b() : unref(b); +ol && ((Ea = window == null ? void 0 : window.navigator) != null && Ea.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent); +function al(v) { + return typeof v == "function" ? v() : unref(v); } -function hh(b) { - return b; +function wh(v) { + return v; } -function dh(b) { - return getCurrentScope() ? (onScopeDispose(b), true) : false; +function yh(v) { + return getCurrentScope() ? (onScopeDispose(v), true) : false; } -function mh(b, i = true) { - getCurrentInstance() ? onMounted(b) : i ? b() : nextTick(b); +function xh(v, n = true) { + getCurrentInstance() ? onMounted(v) : n ? v() : nextTick(v); } -function fh(b) { - var i; - const r = nl(b); - return (i = r == null ? void 0 : r.$el) != null ? i : r; +function Eh(v) { + var n; + const r = al(v); + return (n = r == null ? void 0 : r.$el) != null ? n : r; } -var _o = tl ? window : void 0; -function Vn(...b) { - let i, r, s, a; - if (ph(b[0]) || Array.isArray(b[0]) ? ([r, s, a] = b, i = _o) : [i, r, s, a] = b, !i) - return uh; +var Eo = ol ? window : void 0; +function an(...v) { + let n, r, s, a; + if (gh(v[0]) || Array.isArray(v[0]) ? ([r, s, a] = v, n = Eo) : [n, r, s, a] = v, !n) + return _h; Array.isArray(r) || (r = [r]), Array.isArray(s) || (s = [s]); - const c = [], u = () => { + const c = [], p = () => { c.forEach((w) => w()), c.length = 0; - }, h = (w, _, y, C) => (w.addEventListener(_, y, C), () => w.removeEventListener(_, y, C)), d = watch(() => [fh(i), nl(a)], ([w, _]) => { - u(), w && c.push(...r.flatMap((y) => s.map((C) => h(w, y, C, _)))); + }, h = (w, _, y, P) => (w.addEventListener(_, y, P), () => w.removeEventListener(_, y, P)), d = watch(() => [Eh(n), al(a)], ([w, _]) => { + p(), w && c.push(...r.flatMap((y) => s.map((P) => h(w, y, P, _)))); }, { immediate: true, flush: "post" }), g = () => { - d(), u(); + d(), p(); }; - return dh(g), g; + return yh(g), g; } -var _a = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; -var wa = "__vueuse_ssr_handlers__"; -_a[wa] = _a[wa] || {}; -function vh(b = {}) { +var Ca = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; +var Pa = "__vueuse_ssr_handlers__"; +Ca[Pa] = Ca[Pa] || {}; +function Ch(v = {}) { const { - type: i = "page", + type: n = "page", touch: r = true, resetOnTouchEnds: s = false, initialValue: a = { x: 0, y: 0 }, - window: c = _o, - eventFilter: u - } = b, h = ref(a.x), d = ref(a.y), g = ref(null), w = (S) => { - i === "page" ? (h.value = S.pageX, d.value = S.pageY) : i === "client" ? (h.value = S.clientX, d.value = S.clientY) : i === "movement" && (h.value = S.movementX, d.value = S.movementY), g.value = "mouse"; + window: c = Eo, + eventFilter: p + } = v, h = ref(a.x), d = ref(a.y), g = ref(null), w = (S) => { + n === "page" ? (h.value = S.pageX, d.value = S.pageY) : n === "client" ? (h.value = S.clientX, d.value = S.clientY) : n === "movement" && (h.value = S.movementX, d.value = S.movementY), g.value = "mouse"; }, _ = () => { h.value = a.x, d.value = a.y; }, y = (S) => { if (S.touches.length > 0) { const R = S.touches[0]; - i === "page" ? (h.value = R.pageX, d.value = R.pageY) : i === "client" && (h.value = R.clientX, d.value = R.clientY), g.value = "touch"; + n === "page" ? (h.value = R.pageX, d.value = R.pageY) : n === "client" && (h.value = R.clientX, d.value = R.clientY), g.value = "touch"; } - }, C = (S) => u === void 0 ? w(S) : u(() => w(S), {}), I = (S) => u === void 0 ? y(S) : u(() => y(S), {}); - return c && (Vn(c, "mousemove", C, { passive: true }), Vn(c, "dragover", C, { passive: true }), r && i !== "movement" && (Vn(c, "touchstart", I, { passive: true }), Vn(c, "touchmove", I, { passive: true }), s && Vn(c, "touchend", _, { passive: true }))), { + }, P = (S) => p === void 0 ? w(S) : p(() => w(S), {}), I2 = (S) => p === void 0 ? y(S) : p(() => y(S), {}); + return c && (an(c, "mousemove", P, { passive: true }), an(c, "dragover", P, { passive: true }), r && n !== "movement" && (an(c, "touchstart", I2, { passive: true }), an(c, "touchmove", I2, { passive: true }), s && an(c, "touchend", _, { passive: true }))), { x: h, y: d, sourceType: g }; } -var ya; -(function(b) { - b.UP = "UP", b.RIGHT = "RIGHT", b.DOWN = "DOWN", b.LEFT = "LEFT", b.NONE = "NONE"; -})(ya || (ya = {})); -var bh = Object.defineProperty; -var xa = Object.getOwnPropertySymbols; -var gh = Object.prototype.hasOwnProperty; -var _h = Object.prototype.propertyIsEnumerable; -var Ea = (b, i, r) => i in b ? bh(b, i, { enumerable: true, configurable: true, writable: true, value: r }) : b[i] = r; -var wh = (b, i) => { - for (var r in i || (i = {})) - gh.call(i, r) && Ea(b, r, i[r]); - if (xa) - for (var r of xa(i)) - _h.call(i, r) && Ea(b, r, i[r]); - return b; +var Ta; +(function(v) { + v.UP = "UP", v.RIGHT = "RIGHT", v.DOWN = "DOWN", v.LEFT = "LEFT", v.NONE = "NONE"; +})(Ta || (Ta = {})); +var Ph = Object.defineProperty; +var ka = Object.getOwnPropertySymbols; +var Th = Object.prototype.hasOwnProperty; +var kh = Object.prototype.propertyIsEnumerable; +var Ma = (v, n, r) => n in v ? Ph(v, n, { enumerable: true, configurable: true, writable: true, value: r }) : v[n] = r; +var Mh = (v, n) => { + for (var r in n || (n = {})) + Th.call(n, r) && Ma(v, r, n[r]); + if (ka) + for (var r of ka(n)) + kh.call(n, r) && Ma(v, r, n[r]); + return v; }; -var yh = { +var Sh = { easeInSine: [0.12, 0, 0.39, 0], easeOutSine: [0.61, 1, 0.88, 1], easeInOutSine: [0.37, 0, 0.63, 1], @@ -5124,65 +5094,171 @@ var yh = { easeOutBack: [0.34, 1.56, 0.64, 1], easeInOutBack: [0.68, -0.6, 0.32, 1.6] }; -wh({ - linear: hh -}, yh); -function xh(b = {}) { +Mh({ + linear: wh +}, Sh); +function Lh(v = {}) { const { - window: i = _o, + window: n = Eo, initialWidth: r = 1 / 0, initialHeight: s = 1 / 0, listenOrientation: a = true, includeScrollbar: c = true - } = b, u = ref(r), h = ref(s), d = () => { - i && (c ? (u.value = i.innerWidth, h.value = i.innerHeight) : (u.value = i.document.documentElement.clientWidth, h.value = i.document.documentElement.clientHeight)); + } = v, p = ref(r), h = ref(s), d = () => { + n && (c ? (p.value = n.innerWidth, h.value = n.innerHeight) : (p.value = n.document.documentElement.clientWidth, h.value = n.document.documentElement.clientHeight)); }; - return d(), mh(d), Vn("resize", d, { passive: true }), a && Vn("orientationchange", d, { passive: true }), { width: u, height: h }; + return d(), xh(d), an("resize", d, { passive: true }), a && an("orientationchange", d, { passive: true }), { width: p, height: h }; +} +var Ah = ["args"]; +var Td = defineComponent({ + __name: "PointerLockControls", + props: { + makeDefault: { type: Boolean, default: false }, + camera: null, + domElement: null, + selector: null + }, + setup(v, { expose: n }) { + const r = v, { state: s, setState: a, extend: c } = Gt(), p = ref(null); + let h; + return c({ PointerLockControls: hp }), watch(p, (d) => { + var w; + d && r.makeDefault ? a("controls", d) : a("controls", null); + const g = document.getElementById(r.selector || ""); + h = g || ((w = s.renderer) == null ? void 0 : w.domElement), an(h, "click", () => { + var _; + (_ = p.value) == null || _.lock(); + }); + }), n({ + value: p + }), (d, g) => { + var w; + return unref(s).camera && unref(s).renderer ? (openBlock(), createElementBlock("TresPointerLockControls", { + key: 0, + ref_key: "controls", + ref: p, + args: [unref(s).camera || v.camera, ((w = unref(s).renderer) == null ? void 0 : w.domElement) || v.domElement] + }, null, 8, Ah)) : createCommentVNode("", true); + }; + } +}); +function Rh(v, n) { + const r = {}; + for (const s of n) + Object.prototype.hasOwnProperty.call(v, s) && (r[s] = v[s]); + return r; } -function Eh(b = false, i = 5, r) { - const { x: s, y: a } = vh(), { logWarning: c } = A(), { width: u, height: h } = xh(), d = computed(() => (s.value / u.value - 0.5) * i), g = computed(() => -(a.value / h.value - 0.5) * i); +function Ih(v, n) { + const r = `set${n[0].toUpperCase()}${n.slice(1)}`; + return v[r] !== void 0; +} +var kd = defineComponent({ + __name: "TransformControls", + props: { + object: null, + mode: null, + enabled: { type: Boolean, default: true }, + axis: null, + translationSnap: null, + rotationSnap: null, + scaleSnap: null, + space: null, + size: null, + showX: { type: Boolean }, + showY: { type: Boolean }, + showZ: { type: Boolean } + }, + emits: ["dragging", "change", "mouseDown", "mouseUp", "objectChange"], + setup(v, { emit: n }) { + const r = v; + let s = shallowRef(); + const { state: a } = Gt(), c = computed( + () => Rh(r, [ + "enabled", + "axis", + "mode", + "translationSnap", + "rotationSnap", + "scaleSnap", + "space", + "size", + "showX", + "showY", + "showZ" + ]) + ), p = () => n("change", s.value), h = () => n("mouseDown", s.value), d = () => n("mouseUp", s.value), g = () => n("objectChange", s.value), w = (y) => { + a.controls && (a.controls.enabled = !y.value), n("dragging", y.value); + }; + function _(y) { + y.addEventListener("dragging-changed", w), y.addEventListener("change", p), y.addEventListener("mouseDown", h), y.addEventListener("mouseUp", d), y.addEventListener("objectChange", g); + } + return watchEffect(() => { + a.camera && a.renderer && a.scene && r.object && (s.value = new op(a.camera, a.renderer.domElement), s.value.attach(r.object), a.scene.add(s.value), _(s.value)); + }), watch( + [c, s], + // TODO: properly type this + ([y, P]) => { + if (y && P) + for (const I2 in y) + if (!Ih(P, I2)) + P[I2] = y[I2]; + else { + const S = `set${I2[0].toUpperCase()}${I2.slice(1)}`; + typeof P[S] == "function" && y[I2] !== void 0 && P[S](y[I2]); + } + }, + { + immediate: true + } + ), onUnmounted(() => { + s.value && (s.value.removeEventListener("dragging-changed", w), s.value.removeEventListener("change", p), s.value.removeEventListener("mouseDown", h), s.value.removeEventListener("mouseUp", d), s.value.removeEventListener("objectChange", g)); + }), (y, P) => renderSlot(y.$slots, "default"); + } +}); +function Vh(v = false, n = 5, r) { + const { x: s, y: a } = Ch(), { logWarning: c } = I(), { width: p, height: h } = Lh(), d = computed(() => (s.value / p.value - 0.5) * n), g = computed(() => -(a.value / h.value - 0.5) * n); if (r) { const { x: w, y: _ } = r.position; watchEffect(() => { - b || r && (r.position.x = w + d.value, r.position.y = _ + g.value); + v || r && (r.position.x = w + d.value, r.position.y = _ + g.value); }); } else c("Scene must contain a Camera component to use this composable"); } -var dd = defineComponent({ +var Md = defineComponent({ name: "PamCameraMouse", props: ["disabled", "factor"], - setup(b) { - const { state: i } = Fn(); + setup(v) { + const { state: n } = Gt(); return watchEffect(() => { - if (i != null && i.camera) { - const r = i == null ? void 0 : i.camera; - Eh(b.disabled, b.factor, r); + if (n != null && n.camera) { + const r = n == null ? void 0 : n.camera; + Vh(v.disabled, v.factor, r); } }), () => { }; } }); -var js = {}; -var Ch = { +var Gs = {}; +var Dh = { get exports() { - return js; + return Gs; }, - set exports(b) { - js = b; + set exports(v) { + Gs = v; } }; -(function(b, i) { +(function(v, n) { (function(r, s) { - s(i); - })(el, function(r) { + s(n); + })(rl, function(r) { class s { /** * @hidden */ constructor(e) { - const [t, l] = e.split("-"), v = t.split("."); - this.major = parseInt(v[0], 10), this.minor = parseInt(v[1], 10), this.patch = parseInt(v[2], 10), this.prerelease = l ?? null; + const [t, l] = e.split("-"), b = t.split("."); + this.major = parseInt(b[0], 10), this.minor = parseInt(b[1], 10), this.patch = parseInt(b[2], 10), this.prerelease = l ?? null; } toString() { const e = [this.major, this.minor, this.patch].join("."); @@ -5217,9 +5293,9 @@ var Ch = { this.target = e; } } - class u extends c { - constructor(e, t, l, v) { - super(e), this.value = t, this.presetKey = l, this.last = v ?? true; + class p extends c { + constructor(e, t, l, b) { + super(e), this.value = t, this.presetKey = l, this.last = b ?? true; } } class h extends c { @@ -5237,22 +5313,22 @@ var Ch = { super(e), this.index = t; } } - function w(n) { - return n; + function w(i) { + return i; } - function _(n) { - return n == null; + function _(i) { + return i == null; } - function y(n, e) { - if (n.length !== e.length) + function y(i, e) { + if (i.length !== e.length) return false; - for (let t = 0; t < n.length; t++) - if (n[t] !== e[t]) + for (let t = 0; t < i.length; t++) + if (i[t] !== e[t]) return false; return true; } - function C(n, e) { - let t = n; + function P(i, e) { + let t = i; do { const l = Object.getOwnPropertyDescriptor(t, e); if (l && (l.set !== void 0 || l.writable === true)) @@ -5261,13 +5337,13 @@ var Ch = { } while (t !== null); return false; } - const I = { + const I2 = { alreadydisposed: () => "View has been already disposed", - invalidparams: (n) => `Invalid parameters for '${n.name}'`, - nomatchingcontroller: (n) => `No matching controller for '${n.key}'`, - nomatchingview: (n) => `No matching view for '${JSON.stringify(n.params)}'`, + invalidparams: (i) => `Invalid parameters for '${i.name}'`, + nomatchingcontroller: (i) => `No matching controller for '${i.key}'`, + nomatchingview: (i) => `No matching view for '${JSON.stringify(i.params)}'`, notbindable: () => "Value is not bindable", - propertynotfound: (n) => `Property '${n.name}' not found`, + propertynotfound: (i) => `Property '${i.name}' not found`, shouldneverhappen: () => "This error should never happen" }; class S { @@ -5292,7 +5368,7 @@ var Ch = { } constructor(e) { var t; - this.message = (t = I[e.type](e.context)) !== null && t !== void 0 ? t : "Unexpected error", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = e.type; + this.message = (t = I2[e.type](e.context)) !== null && t !== void 0 ? t : "Unexpected error", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = e.type; } } class R { @@ -5356,59 +5432,59 @@ var Ch = { } off(e, t) { const l = this.observers_[e]; - return l && (this.observers_[e] = l.filter((v) => v.handler !== t)), this; + return l && (this.observers_[e] = l.filter((b) => b.handler !== t)), this; } emit(e, t) { const l = this.observers_[e]; - l && l.forEach((v) => { - v.handler(t); + l && l.forEach((b) => { + b.handler(t); }); } } const V = "tp"; - function D(n) { + function D2(i) { return (t, l) => [ V, "-", - n, + i, "v", t ? `_${t}` : "", l ? `-${l}` : "" ].join(""); } - function Y(n, e) { - return (t) => e(n(t)); + function Y(i, e) { + return (t) => e(i(t)); } - function G(n) { - return n.rawValue; + function G(i) { + return i.rawValue; } - function N(n, e) { - n.emitter.on("change", Y(G, e)), e(n.rawValue); + function N(i, e) { + i.emitter.on("change", Y(G, e)), e(i.rawValue); } - function O(n, e, t) { - N(n.value(e), t); + function O(i, e, t) { + N(i.value(e), t); } - function H(n, e, t) { - t ? n.classList.add(e) : n.classList.remove(e); + function H(i, e, t) { + t ? i.classList.add(e) : i.classList.remove(e); } - function K(n, e) { + function K(i, e) { return (t) => { - H(n, e, t); + H(i, e, t); }; } - function q(n, e) { - N(n, (t) => { + function q(i, e) { + N(i, (t) => { e.textContent = t ?? ""; }); } - const ue = D("btn"); + const pe = D2("btn"); class ge { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(ue()), t.viewProps.bindClassModifiers(this.element); + this.element = e.createElement("div"), this.element.classList.add(pe()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("button"); - l.classList.add(ue("b")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l; - const v = e.createElement("div"); - v.classList.add(ue("t")), q(t.props.value("title"), v), this.buttonElement.appendChild(v); + l.classList.add(pe("b")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l; + const b = e.createElement("div"); + b.classList.add(pe("t")), q(t.props.value("title"), b), this.buttonElement.appendChild(b); } } class ce { @@ -5427,7 +5503,7 @@ var Ch = { class me { constructor(e, t) { var l; - this.constraint_ = t == null ? void 0 : t.constraint, this.equals_ = (l = t == null ? void 0 : t.equals) !== null && l !== void 0 ? l : (v, E) => v === E, this.emitter = new F(), this.rawValue_ = e; + this.constraint_ = t == null ? void 0 : t.constraint, this.equals_ = (l = t == null ? void 0 : t.equals) !== null && l !== void 0 ? l : (b, E) => b === E, this.emitter = new F(), this.rawValue_ = e; } get constraint() { return this.constraint_; @@ -5445,13 +5521,13 @@ var Ch = { const l = t ?? { forceEmit: false, last: true - }, v = this.constraint_ ? this.constraint_.constrain(e) : e, E = this.rawValue_; - this.equals_(E, v) && !l.forceEmit || (this.emitter.emit("beforechange", { + }, b = this.constraint_ ? this.constraint_.constrain(e) : e, E = this.rawValue_; + this.equals_(E, b) && !l.forceEmit || (this.emitter.emit("beforechange", { sender: this - }), this.rawValue_ = v, this.emitter.emit("change", { + }), this.rawValue_ = b, this.emitter.emit("change", { options: l, previousRawValue: E, - rawValue: v, + rawValue: b, sender: this })); } @@ -5473,20 +5549,20 @@ var Ch = { const l = t ?? { forceEmit: false, last: true - }, v = this.value_; - v === e && !l.forceEmit || (this.emitter.emit("beforechange", { + }, b = this.value_; + b === e && !l.forceEmit || (this.emitter.emit("beforechange", { sender: this }), this.value_ = e, this.emitter.emit("change", { options: l, - previousRawValue: v, + previousRawValue: b, rawValue: this.value_, sender: this })); } } - function ee(n, e) { + function ee(i, e) { const t = e == null ? void 0 : e.constraint, l = e == null ? void 0 : e.equals; - return !t && !l ? new he(n) : new me(n, e); + return !t && !l ? new he(i) : new me(i, e); } class X { constructor(e) { @@ -5500,8 +5576,8 @@ var Ch = { }); } static createCore(e) { - return Object.keys(e).reduce((l, v) => Object.assign(l, { - [v]: ee(e[v]) + return Object.keys(e).reduce((l, b) => Object.assign(l, { + [b]: ee(e[b]) }), {}); } static fromObject(e) { @@ -5518,28 +5594,28 @@ var Ch = { return this.valMap_[e]; } } - function Pe(n, e) { - const l = Object.keys(e).reduce((v, E) => { - if (v === void 0) + function Pe(i, e) { + const l = Object.keys(e).reduce((b, E) => { + if (b === void 0) return; - const k2 = e[E], B = k2(n[E]); - return B.succeeded ? Object.assign(Object.assign({}, v), { [E]: B.value }) : void 0; + const k = e[E], B = k(i[E]); + return B.succeeded ? Object.assign(Object.assign({}, b), { [E]: B.value }) : void 0; }, {}); return l; } - function fe(n, e) { - return n.reduce((t, l) => { + function fe(i, e) { + return i.reduce((t, l) => { if (t === void 0) return; - const v = e(l); - if (!(!v.succeeded || v.value === void 0)) - return [...t, v.value]; + const b = e(l); + if (!(!b.succeeded || b.value === void 0)) + return [...t, b.value]; }, []); } - function ae(n) { - return n === null ? false : typeof n == "object"; + function ae(i) { + return i === null ? false : typeof i == "object"; } - function ne(n) { + function ne(i) { return (e) => (t) => { if (!e && t === void 0) return { @@ -5551,7 +5627,7 @@ var Ch = { succeeded: true, value: void 0 }; - const l = n(t); + const l = i(t); return l !== void 0 ? { succeeded: true, value: l @@ -5561,49 +5637,49 @@ var Ch = { }; }; } - function be(n) { + function be(i) { return { - custom: (e) => ne(e)(n), - boolean: ne((e) => typeof e == "boolean" ? e : void 0)(n), - number: ne((e) => typeof e == "number" ? e : void 0)(n), - string: ne((e) => typeof e == "string" ? e : void 0)(n), - function: ne((e) => typeof e == "function" ? e : void 0)(n), - constant: (e) => ne((t) => t === e ? e : void 0)(n), - raw: ne((e) => e)(n), + custom: (e) => ne(e)(i), + boolean: ne((e) => typeof e == "boolean" ? e : void 0)(i), + number: ne((e) => typeof e == "number" ? e : void 0)(i), + string: ne((e) => typeof e == "string" ? e : void 0)(i), + function: ne((e) => typeof e == "function" ? e : void 0)(i), + constant: (e) => ne((t) => t === e ? e : void 0)(i), + raw: ne((e) => e)(i), object: (e) => ne((t) => { if (ae(t)) return Pe(t, e); - })(n), + })(i), array: (e) => ne((t) => { if (Array.isArray(t)) return fe(t, e); - })(n) + })(i) }; } const M = { optional: be(true), required: be(false) }; - function le(n, e) { - const t = M.required.object(e)(n); + function le(i, e) { + const t = M.required.object(e)(i); return t.succeeded ? t.value : void 0; } - function Ve(n) { + function Ve(i) { console.warn([ - `Missing '${n.key}' of ${n.target} in ${n.place}.`, + `Missing '${i.key}' of ${i.target} in ${i.place}.`, "Please rebuild plugins with the latest core package." ].join(" ")); } - function Ne(n) { - return n && n.parentElement && n.parentElement.removeChild(n), null; + function Be(i) { + return i && i.parentElement && i.parentElement.removeChild(i), null; } - class we2 { + class we { constructor(e) { this.value_ = e; } static create(e) { return [ - new we2(e), + new we(e), (t, l) => { e.setRawValue(t, l); } @@ -5616,30 +5692,30 @@ var Ch = { return this.value_.rawValue; } } - const it = D(""); - function Bn(n, e) { - return K(n, it(void 0, e)); + const st = D2(""); + function jn(i, e) { + return K(i, st(void 0, e)); } - class Xe extends X { + class Ye extends X { constructor(e) { var t; - super(e), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = we2.create(ee(this.getGlobalDisabled_())), this.value("disabled").emitter.on("change", this.onDisabledChange_), this.value("parent").emitter.on("change", this.onParentChange_), (t = this.get("parent")) === null || t === void 0 || t.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_); + super(e), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = we.create(ee(this.getGlobalDisabled_())), this.value("disabled").emitter.on("change", this.onDisabledChange_), this.value("parent").emitter.on("change", this.onParentChange_), (t = this.get("parent")) === null || t === void 0 || t.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_); } static create(e) { - var t, l, v; + var t, l, b; const E = e ?? {}; - return new Xe(X.createCore({ + return new Ye(X.createCore({ disabled: (t = E.disabled) !== null && t !== void 0 ? t : false, disposed: false, hidden: (l = E.hidden) !== null && l !== void 0 ? l : false, - parent: (v = E.parent) !== null && v !== void 0 ? v : null + parent: (b = E.parent) !== null && b !== void 0 ? b : null })); } get globalDisabled() { return this.globalDisabled_; } bindClassModifiers(e) { - N(this.globalDisabled_, Bn(e, "disabled")), O(this, "hidden", Bn(e, "hidden")); + N(this.globalDisabled_, jn(e, "disabled")), O(this, "hidden", jn(e, "hidden")); } bindDisabled(e) { N(this.globalDisabled_, (t) => { @@ -5675,27 +5751,27 @@ var Ch = { l == null || l.globalDisabled.emitter.off("change", this.onParentGlobalDisabledChange_), (t = this.get("parent")) === null || t === void 0 || t.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_(); } } - function jn() { + function zn() { return ["veryfirst", "first", "last", "verylast"]; } - const an = D(""), dt = { + const cn = D2(""), mt = { veryfirst: "vfst", first: "fst", last: "lst", verylast: "vlst" }; - class kt { + class Mt { constructor(e) { this.parent_ = null, this.blade = e.blade, this.view = e.view, this.viewProps = e.viewProps; const t = this.view.element; this.blade.value("positions").emitter.on("change", () => { - jn().forEach((l) => { - t.classList.remove(an(void 0, dt[l])); + zn().forEach((l) => { + t.classList.remove(cn(void 0, mt[l])); }), this.blade.get("positions").forEach((l) => { - t.classList.add(an(void 0, dt[l])); + t.classList.add(cn(void 0, mt[l])); }); }), this.viewProps.handleDispose(() => { - Ne(t); + Be(t); }); } get parent() { @@ -5705,7 +5781,7 @@ var Ch = { if (this.parent_ = e, !("parent" in this.viewProps.valMap_)) { Ve({ key: "parent", - target: Xe.name, + target: Ye.name, place: "BladeController.parent" }); return; @@ -5714,77 +5790,77 @@ var Ch = { } } const ze = "http://www.w3.org/2000/svg"; - function st(n) { - n.offsetHeight; + function rt(i) { + i.offsetHeight; } - function ln(n, e) { - const t = n.style.transition; - n.style.transition = "none", e(), n.style.transition = t; + function un(i, e) { + const t = i.style.transition; + i.style.transition = "none", e(), i.style.transition = t; } - function mt(n) { - return n.ontouchstart !== void 0; + function ft(i) { + return i.ontouchstart !== void 0; } - function zn() { + function Un() { return globalThis; } - function hi() { - return zn().document; + function mi() { + return Un().document; } - function Un(n) { - const e = n.ownerDocument.defaultView; - return e && "document" in e ? n.getContext("2d", { + function Gn(i) { + const e = i.ownerDocument.defaultView; + return e && "document" in e ? i.getContext("2d", { willReadFrequently: true }) : null; } - const Gn = { + const Hn = { check: '', dropdown: '', p2dpad: '' }; - function yt(n, e) { - const t = n.createElementNS(ze, "svg"); - return t.innerHTML = Gn[e], t; + function xt(i, e) { + const t = i.createElementNS(ze, "svg"); + return t.innerHTML = Hn[e], t; } - function Mt2(n, e, t) { - n.insertBefore(e, n.children[t]); + function St(i, e, t) { + i.insertBefore(e, i.children[t]); } - function Hn(n) { - n.parentElement && n.parentElement.removeChild(n); + function Kn(i) { + i.parentElement && i.parentElement.removeChild(i); } - function cn(n) { - for (; n.children.length > 0; ) - n.removeChild(n.children[0]); + function pn(i) { + for (; i.children.length > 0; ) + i.removeChild(i.children[0]); } - function Kn(n) { - for (; n.childNodes.length > 0; ) - n.removeChild(n.childNodes[0]); + function $n(i) { + for (; i.childNodes.length > 0; ) + i.removeChild(i.childNodes[0]); } - function xt(n) { - return n.relatedTarget ? n.relatedTarget : "explicitOriginalTarget" in n ? n.explicitOriginalTarget : null; + function Et2(i) { + return i.relatedTarget ? i.relatedTarget : "explicitOriginalTarget" in i ? i.explicitOriginalTarget : null; } - const ft = D("lbl"); - function St(n, e) { - const t = n.createDocumentFragment(); + const vt = D2("lbl"); + function Lt(i, e) { + const t = i.createDocumentFragment(); return e.split(` -`).map((v) => n.createTextNode(v)).forEach((v, E) => { - E > 0 && t.appendChild(n.createElement("br")), t.appendChild(v); +`).map((b) => i.createTextNode(b)).forEach((b, E) => { + E > 0 && t.appendChild(i.createElement("br")), t.appendChild(b); }), t; } - class A2 { + class L { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(ft()), t.viewProps.bindClassModifiers(this.element); + this.element = e.createElement("div"), this.element.classList.add(vt()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("div"); - l.classList.add(ft("l")), O(t.props, "label", (E) => { - _(E) ? this.element.classList.add(ft(void 0, "nol")) : (this.element.classList.remove(ft(void 0, "nol")), Kn(l), l.appendChild(St(e, E))); + l.classList.add(vt("l")), O(t.props, "label", (E) => { + _(E) ? this.element.classList.add(vt(void 0, "nol")) : (this.element.classList.remove(vt(void 0, "nol")), $n(l), l.appendChild(Lt(e, E))); }), this.element.appendChild(l), this.labelElement = l; - const v = e.createElement("div"); - v.classList.add(ft("v")), this.element.appendChild(v), this.valueElement = v; + const b = e.createElement("div"); + b.classList.add(vt("v")), this.element.appendChild(b), this.valueElement = b; } } - class U extends kt { + class U extends Mt { constructor(e, t) { const l = t.valueController.viewProps; - super(Object.assign(Object.assign({}, t), { view: new A2(e, { + super(Object.assign(Object.assign({}, t), { view: new L(e, { props: t.props, viewProps: l }), viewProps: l })), this.props = t.props, this.valueController = t.valueController, this.view.valueElement.appendChild(this.valueController.view.element); @@ -5793,33 +5869,33 @@ var Ch = { const W = { id: "button", type: "blade", - accept(n) { - const e = M, t = le(n, { + accept(i) { + const e = M, t = le(i, { title: e.required.string, view: e.required.constant("button"), label: e.optional.string }); return t ? { params: t } : null; }, - controller(n) { - return new U(n.document, { - blade: n.blade, + controller(i) { + return new U(i.document, { + blade: i.blade, props: X.fromObject({ - label: n.params.label + label: i.params.label }), - valueController: new ce(n.document, { + valueController: new ce(i.document, { props: X.fromObject({ - title: n.params.title + title: i.params.title }), - viewProps: n.viewProps + viewProps: i.viewProps }) }); }, - api(n) { - return !(n.controller instanceof U) || !(n.controller.valueController instanceof ce) ? null : new j(n.controller); + api(i) { + return !(i.controller instanceof U) || !(i.controller.valueController instanceof ce) ? null : new j(i.controller); } }; - class ie extends kt { + class ie extends Mt { constructor(e) { super(e), this.value = e.value; } @@ -5865,26 +5941,26 @@ var Ch = { this.set("shouldFixHeight", false), this.set("expandedHeight", null), this.set("completed", true); } } - function Ut(n, e) { + function Ht(i, e) { let t = 0; - return ln(e, () => { - n.set("expandedHeight", null), n.set("temporaryExpanded", true), st(e), t = e.clientHeight, n.set("temporaryExpanded", null), st(e); + return un(e, () => { + i.set("expandedHeight", null), i.set("temporaryExpanded", true), rt(e), t = e.clientHeight, i.set("temporaryExpanded", null), rt(e); }), t; } - function pn(n, e) { - e.style.height = n.styleHeight; + function hn(i, e) { + e.style.height = i.styleHeight; } - function Ue(n, e) { - n.value("expanded").emitter.on("beforechange", () => { - if (n.set("completed", false), _(n.get("expandedHeight"))) { - const t = Ut(n, e); - t > 0 && n.set("expandedHeight", t); + function Ue(i, e) { + i.value("expanded").emitter.on("beforechange", () => { + if (i.set("completed", false), _(i.get("expandedHeight"))) { + const t = Ht(i, e); + t > 0 && i.set("expandedHeight", t); } - n.set("shouldFixHeight", true), st(e); - }), n.emitter.on("change", () => { - pn(n, e); - }), pn(n, e), e.addEventListener("transitionend", (t) => { - t.propertyName === "height" && n.cleanUpTransition(); + i.set("shouldFixHeight", true), rt(e); + }), i.emitter.on("change", () => { + hn(i, e); + }), hn(i, e), e.addEventListener("transitionend", (t) => { + t.propertyName === "height" && i.cleanUpTransition(); }); } class Ge extends a { @@ -5892,18 +5968,18 @@ var Ch = { super(e), this.rackApi_ = t; } } - function Gs(n, e) { - return n.addBlade(Object.assign(Object.assign({}, e), { view: "button" })); + function qs(i, e) { + return i.addBlade(Object.assign(Object.assign({}, e), { view: "button" })); } - function Hs(n, e) { - return n.addBlade(Object.assign(Object.assign({}, e), { view: "folder" })); + function Qs(i, e) { + return i.addBlade(Object.assign(Object.assign({}, e), { view: "folder" })); } - function Ks(n, e) { + function Zs(i, e) { const t = e ?? {}; - return n.addBlade(Object.assign(Object.assign({}, t), { view: "separator" })); + return i.addBlade(Object.assign(Object.assign({}, t), { view: "separator" })); } - function di(n, e) { - return n.addBlade(Object.assign(Object.assign({}, e), { view: "tab" })); + function fi(i, e) { + return i.addBlade(Object.assign(Object.assign({}, e), { view: "tab" })); } class At { constructor(e) { @@ -5929,8 +6005,8 @@ var Ch = { throw S.shouldNeverHappen(); const l = t !== void 0 ? t : this.items_.length; this.items_.splice(l, 0, e), this.cache_.add(e); - const v = this.extract_(e); - v && (v.emitter.on("add", this.onSubListAdd_), v.emitter.on("remove", this.onSubListRemove_), v.allItems().forEach((E) => { + const b = this.extract_(e); + b && (b.emitter.on("add", this.onSubListAdd_), b.emitter.on("remove", this.onSubListRemove_), b.allItems().forEach((E) => { this.cache_.add(E); })), this.emitter.emit("add", { index: l, @@ -5969,7 +6045,7 @@ var Ch = { }); } } - class mi extends a { + class vi extends a { constructor(e) { super(e), this.onBindingChange_ = this.onBindingChange_.bind(this), this.emitter_ = new F(), this.controller_.binding.emitter.on("change", this.onBindingChange_); } @@ -5981,8 +6057,8 @@ var Ch = { } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } refresh() { @@ -5991,16 +6067,16 @@ var Ch = { onBindingChange_(e) { const t = e.sender.target.read(); this.emitter_.emit("change", { - event: new u(this, t, this.controller_.binding.target.presetKey, e.options.last) + event: new p(this, t, this.controller_.binding.target.presetKey, e.options.last) }); } } - class Fe extends U { + class je extends U { constructor(e, t) { super(e, t), this.binding = t.binding; } } - class fi extends a { + class bi extends a { constructor(e) { super(e), this.onBindingUpdate_ = this.onBindingUpdate_.bind(this), this.emitter_ = new F(), this.controller_.binding.emitter.on("update", this.onBindingUpdate_); } @@ -6012,8 +6088,8 @@ var Ch = { } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } refresh() { @@ -6026,74 +6102,74 @@ var Ch = { }); } } - class rt extends U { + class ot extends U { constructor(e, t) { super(e, t), this.binding = t.binding, this.viewProps.bindDisabled(this.binding.ticker), this.viewProps.handleDispose(() => { this.binding.dispose(); }); } } - function ts(n) { - return n instanceof $n ? n.apiSet_ : n instanceof Ge ? n.rackApi_.apiSet_ : null; + function is(i) { + return i instanceof Xn ? i.apiSet_ : i instanceof Ge ? i.rackApi_.apiSet_ : null; } - function un(n, e) { - const t = n.find((l) => l.controller_ === e); + function dn(i, e) { + const t = i.find((l) => l.controller_ === e); if (!t) throw S.shouldNeverHappen(); return t; } - function ns(n, e, t) { - if (!R.isBindable(n)) + function ss(i, e, t) { + if (!R.isBindable(i)) throw S.notBindable(); - return new R(n, e, t); + return new R(i, e, t); } - class $n extends a { + class Xn extends a { constructor(e, t) { - super(e), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this), this.onRackInputChange_ = this.onRackInputChange_.bind(this), this.onRackMonitorUpdate_ = this.onRackMonitorUpdate_.bind(this), this.emitter_ = new F(), this.apiSet_ = new At(ts), this.pool_ = t; + super(e), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this), this.onRackInputChange_ = this.onRackInputChange_.bind(this), this.onRackMonitorUpdate_ = this.onRackMonitorUpdate_.bind(this), this.emitter_ = new F(), this.apiSet_ = new At(is), this.pool_ = t; const l = this.controller_.rack; - l.emitter.on("add", this.onRackAdd_), l.emitter.on("remove", this.onRackRemove_), l.emitter.on("inputchange", this.onRackInputChange_), l.emitter.on("monitorupdate", this.onRackMonitorUpdate_), l.children.forEach((v) => { - this.setUpApi_(v); + l.emitter.on("add", this.onRackAdd_), l.emitter.on("remove", this.onRackRemove_), l.emitter.on("inputchange", this.onRackInputChange_), l.emitter.on("monitorupdate", this.onRackMonitorUpdate_), l.children.forEach((b) => { + this.setUpApi_(b); }); } get children() { - return this.controller_.rack.children.map((e) => un(this.apiSet_, e)); + return this.controller_.rack.children.map((e) => dn(this.apiSet_, e)); } addInput(e, t, l) { - const v = l ?? {}, E = this.controller_.view.element.ownerDocument, k2 = this.pool_.createInput(E, ns(e, t, v.presetKey), v), B = new mi(k2); - return this.add(B, v.index); + const b = l ?? {}, E = this.controller_.view.element.ownerDocument, k = this.pool_.createInput(E, ss(e, t, b.presetKey), b), B = new vi(k); + return this.add(B, b.index); } addMonitor(e, t, l) { - const v = l ?? {}, E = this.controller_.view.element.ownerDocument, k2 = this.pool_.createMonitor(E, ns(e, t), v), B = new fi(k2); - return this.add(B, v.index); + const b = l ?? {}, E = this.controller_.view.element.ownerDocument, k = this.pool_.createMonitor(E, ss(e, t), b), B = new bi(k); + return this.add(B, b.index); } addFolder(e) { - return Hs(this, e); + return Qs(this, e); } addButton(e) { - return Gs(this, e); + return qs(this, e); } addSeparator(e) { - return Ks(this, e); + return Zs(this, e); } addTab(e) { - return di(this, e); + return fi(this, e); } add(e, t) { this.controller_.rack.add(e.controller_, t); - const l = this.apiSet_.find((v) => v.controller_ === e.controller_); + const l = this.apiSet_.find((b) => b.controller_ === e.controller_); return l && this.apiSet_.remove(l), this.apiSet_.add(e), e; } remove(e) { this.controller_.rack.remove(e.controller_); } addBlade(e) { - const t = this.controller_.view.element.ownerDocument, l = this.pool_.createBlade(t, e), v = this.pool_.createBladeApi(l); - return this.add(v, e.index); + const t = this.controller_.view.element.ownerDocument, l = this.pool_.createBlade(t, e), b = this.pool_.createBladeApi(l); + return this.add(b, e.index); } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } setUpApi_(e) { @@ -6104,36 +6180,36 @@ var Ch = { } onRackRemove_(e) { if (e.isRoot) { - const t = un(this.apiSet_, e.bladeController); + const t = dn(this.apiSet_, e.bladeController); this.apiSet_.remove(t); } } onRackInputChange_(e) { const t = e.bladeController; - if (t instanceof Fe) { - const l = un(this.apiSet_, t), v = t.binding; + if (t instanceof je) { + const l = dn(this.apiSet_, t), b = t.binding; this.emitter_.emit("change", { - event: new u(l, v.target.read(), v.target.presetKey, e.options.last) + event: new p(l, b.target.read(), b.target.presetKey, e.options.last) }); } else if (t instanceof ie) { - const l = un(this.apiSet_, t); + const l = dn(this.apiSet_, t); this.emitter_.emit("change", { - event: new u(l, t.value.rawValue, void 0, e.options.last) + event: new p(l, t.value.rawValue, void 0, e.options.last) }); } } onRackMonitorUpdate_(e) { - if (!(e.bladeController instanceof rt)) + if (!(e.bladeController instanceof ot)) throw S.shouldNeverHappen(); - const t = un(this.apiSet_, e.bladeController), l = e.bladeController.binding; + const t = dn(this.apiSet_, e.bladeController), l = e.bladeController.binding; this.emitter_.emit("update", { event: new h(t, l.target.read(), l.target.presetKey) }); } } - class vi extends Ge { + class gi extends Ge { constructor(e, t) { - super(e, new $n(e.rackController, t)), this.emitter_ = new F(), this.controller_.foldable.value("expanded").emitter.on("change", (l) => { + super(e, new Xn(e.rackController, t)), this.emitter_ = new F(), this.controller_.foldable.value("expanded").emitter.on("change", (l) => { this.emitter_.emit("fold", { event: new d(this, l.sender.rawValue) }); @@ -6191,12 +6267,12 @@ var Ch = { } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } } - class bi extends kt { + class _i extends Mt { constructor(e) { super({ blade: e.blade, @@ -6205,61 +6281,61 @@ var Ch = { }), this.rackController = e.rackController; } } - class $s { + class Ws { constructor(e, t) { - const l = D(t.viewName); + const l = D2(t.viewName); this.element = e.createElement("div"), this.element.classList.add(l()), t.viewProps.bindClassModifiers(this.element); } } - function Xs(n, e) { - for (let t = 0; t < n.length; t++) { - const l = n[t]; - if (l instanceof Fe && l.binding === e) + function Js(i, e) { + for (let t = 0; t < i.length; t++) { + const l = i[t]; + if (l instanceof je && l.binding === e) return l; } return null; } - function Ys(n, e) { - for (let t = 0; t < n.length; t++) { - const l = n[t]; - if (l instanceof rt && l.binding === e) + function er(i, e) { + for (let t = 0; t < i.length; t++) { + const l = i[t]; + if (l instanceof ot && l.binding === e) return l; } return null; } - function qs(n, e) { - for (let t = 0; t < n.length; t++) { - const l = n[t]; + function tr(i, e) { + for (let t = 0; t < i.length; t++) { + const l = i[t]; if (l instanceof ie && l.value === e) return l; } return null; } - function gi(n) { - return n instanceof hn ? n.rack : n instanceof bi ? n.rackController.rack : null; + function wi(i) { + return i instanceof mn ? i.rack : i instanceof _i ? i.rackController.rack : null; } - function Qs(n) { - const e = gi(n); + function nr(i) { + const e = wi(i); return e ? e.bcSet_ : null; } - class Zs { + class ir { constructor(e) { var t, l; - this.onBladePositionsChange_ = this.onBladePositionsChange_.bind(this), this.onSetAdd_ = this.onSetAdd_.bind(this), this.onSetRemove_ = this.onSetRemove_.bind(this), this.onChildDispose_ = this.onChildDispose_.bind(this), this.onChildPositionsChange_ = this.onChildPositionsChange_.bind(this), this.onChildInputChange_ = this.onChildInputChange_.bind(this), this.onChildMonitorUpdate_ = this.onChildMonitorUpdate_.bind(this), this.onChildValueChange_ = this.onChildValueChange_.bind(this), this.onChildViewPropsChange_ = this.onChildViewPropsChange_.bind(this), this.onDescendantLayout_ = this.onDescendantLayout_.bind(this), this.onDescendantInputChange_ = this.onDescendantInputChange_.bind(this), this.onDescendantMonitorUpdate_ = this.onDescendantMonitorUpdate_.bind(this), this.emitter = new F(), this.blade_ = (t = e.blade) !== null && t !== void 0 ? t : null, (l = this.blade_) === null || l === void 0 || l.value("positions").emitter.on("change", this.onBladePositionsChange_), this.viewProps = e.viewProps, this.bcSet_ = new At(Qs), this.bcSet_.emitter.on("add", this.onSetAdd_), this.bcSet_.emitter.on("remove", this.onSetRemove_); + this.onBladePositionsChange_ = this.onBladePositionsChange_.bind(this), this.onSetAdd_ = this.onSetAdd_.bind(this), this.onSetRemove_ = this.onSetRemove_.bind(this), this.onChildDispose_ = this.onChildDispose_.bind(this), this.onChildPositionsChange_ = this.onChildPositionsChange_.bind(this), this.onChildInputChange_ = this.onChildInputChange_.bind(this), this.onChildMonitorUpdate_ = this.onChildMonitorUpdate_.bind(this), this.onChildValueChange_ = this.onChildValueChange_.bind(this), this.onChildViewPropsChange_ = this.onChildViewPropsChange_.bind(this), this.onDescendantLayout_ = this.onDescendantLayout_.bind(this), this.onDescendantInputChange_ = this.onDescendantInputChange_.bind(this), this.onDescendantMonitorUpdate_ = this.onDescendantMonitorUpdate_.bind(this), this.emitter = new F(), this.blade_ = (t = e.blade) !== null && t !== void 0 ? t : null, (l = this.blade_) === null || l === void 0 || l.value("positions").emitter.on("change", this.onBladePositionsChange_), this.viewProps = e.viewProps, this.bcSet_ = new At(nr), this.bcSet_.emitter.on("add", this.onSetAdd_), this.bcSet_.emitter.on("remove", this.onSetRemove_); } get children() { return this.bcSet_.items; } add(e, t) { var l; - (l = e.parent) === null || l === void 0 || l.remove(e), C(e, "parent") ? e.parent = this : (e.parent_ = this, Ve({ + (l = e.parent) === null || l === void 0 || l.remove(e), P(e, "parent") ? e.parent = this : (e.parent_ = this, Ve({ key: "parent", target: "BladeController", place: "BladeRack.add" })), this.bcSet_.add(e, t); } remove(e) { - C(e, "parent") ? e.parent = null : (e.parent_ = null, Ve({ + P(e, "parent") ? e.parent = null : (e.parent_ = null, Ve({ key: "parent", target: "BladeController", place: "BladeRack.remove" @@ -6279,16 +6355,16 @@ var Ch = { }), !t) return; const l = e.item; - if (l.viewProps.emitter.on("change", this.onChildViewPropsChange_), l.blade.value("positions").emitter.on("change", this.onChildPositionsChange_), l.viewProps.handleDispose(this.onChildDispose_), l instanceof Fe) + if (l.viewProps.emitter.on("change", this.onChildViewPropsChange_), l.blade.value("positions").emitter.on("change", this.onChildPositionsChange_), l.viewProps.handleDispose(this.onChildDispose_), l instanceof je) l.binding.emitter.on("change", this.onChildInputChange_); - else if (l instanceof rt) + else if (l instanceof ot) l.binding.emitter.on("update", this.onChildMonitorUpdate_); else if (l instanceof ie) l.value.emitter.on("change", this.onChildValueChange_); else { - const v = gi(l); - if (v) { - const E = v.emitter; + const b = wi(l); + if (b) { + const E = b.emitter; E.on("layout", this.onDescendantLayout_), E.on("inputchange", this.onDescendantInputChange_), E.on("monitorupdate", this.onDescendantMonitorUpdate_); } } @@ -6303,25 +6379,25 @@ var Ch = { }), !t) return; const l = e.item; - if (l instanceof Fe) + if (l instanceof je) l.binding.emitter.off("change", this.onChildInputChange_); - else if (l instanceof rt) + else if (l instanceof ot) l.binding.emitter.off("update", this.onChildMonitorUpdate_); else if (l instanceof ie) l.value.emitter.off("change", this.onChildValueChange_); else { - const v = gi(l); - if (v) { - const E = v.emitter; + const b = wi(l); + if (b) { + const E = b.emitter; E.off("layout", this.onDescendantLayout_), E.off("inputchange", this.onDescendantInputChange_), E.off("monitorupdate", this.onDescendantMonitorUpdate_); } } } updatePositions_() { - const e = this.bcSet_.items.filter((v) => !v.viewProps.get("hidden")), t = e[0], l = e[e.length - 1]; - this.bcSet_.items.forEach((v) => { + const e = this.bcSet_.items.filter((b) => !b.viewProps.get("hidden")), t = e[0], l = e[e.length - 1]; + this.bcSet_.items.forEach((b) => { const E = []; - v === t && (E.push("first"), (!this.blade_ || this.blade_.get("positions").includes("veryfirst")) && E.push("veryfirst")), v === l && (E.push("last"), (!this.blade_ || this.blade_.get("positions").includes("verylast")) && E.push("verylast")), v.blade.set("positions", E); + b === t && (E.push("first"), (!this.blade_ || this.blade_.get("positions").includes("veryfirst")) && E.push("veryfirst")), b === l && (E.push("last"), (!this.blade_ || this.blade_.get("positions").includes("verylast")) && E.push("verylast")), b.blade.set("positions", E); }); } onChildPositionsChange_() { @@ -6340,7 +6416,7 @@ var Ch = { }); } onChildInputChange_(e) { - const t = Xs(this.find(Fe), e.sender); + const t = Js(this.find(je), e.sender); if (!t) throw S.alreadyDisposed(); this.emitter.emit("inputchange", { @@ -6350,7 +6426,7 @@ var Ch = { }); } onChildMonitorUpdate_(e) { - const t = Ys(this.find(rt), e.sender); + const t = er(this.find(ot), e.sender); if (!t) throw S.alreadyDisposed(); this.emitter.emit("monitorupdate", { @@ -6359,7 +6435,7 @@ var Ch = { }); } onChildValueChange_(e) { - const t = qs(this.find(ie), e.sender); + const t = tr(this.find(ie), e.sender); if (!t) throw S.alreadyDisposed(); this.emitter.emit("inputchange", { @@ -6390,62 +6466,62 @@ var Ch = { this.updatePositions_(); } } - class hn extends kt { + class mn extends Mt { constructor(e, t) { - super(Object.assign(Object.assign({}, t), { view: new $s(e, { + super(Object.assign(Object.assign({}, t), { view: new Ws(e, { viewName: "brk", viewProps: t.viewProps }) })), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this); - const l = new Zs({ + const l = new ir({ blade: t.root ? void 0 : t.blade, viewProps: t.viewProps }); l.emitter.on("add", this.onRackAdd_), l.emitter.on("remove", this.onRackRemove_), this.rack = l, this.viewProps.handleDispose(() => { - for (let v = this.rack.children.length - 1; v >= 0; v--) - this.rack.children[v].viewProps.set("disposed", true); + for (let b = this.rack.children.length - 1; b >= 0; b--) + this.rack.children[b].viewProps.set("disposed", true); }); } onRackAdd_(e) { - e.isRoot && Mt2(this.view.element, e.bladeController.view.element, e.index); + e.isRoot && St(this.view.element, e.bladeController.view.element, e.index); } onRackRemove_(e) { - e.isRoot && Hn(e.bladeController.view.element); + e.isRoot && Kn(e.bladeController.view.element); } } - const is = D("cnt"); - class Ws { + const rs = D2("cnt"); + class sr { constructor(e, t) { var l; - this.className_ = D((l = t.viewName) !== null && l !== void 0 ? l : "fld"), this.element = e.createElement("div"), this.element.classList.add(this.className_(), is()), t.viewProps.bindClassModifiers(this.element), this.foldable_ = t.foldable, this.foldable_.bindExpandedClass(this.element, this.className_(void 0, "expanded")), O(this.foldable_, "completed", K(this.element, this.className_(void 0, "cpl"))); - const v = e.createElement("button"); - v.classList.add(this.className_("b")), O(t.props, "title", (J) => { + this.className_ = D2((l = t.viewName) !== null && l !== void 0 ? l : "fld"), this.element = e.createElement("div"), this.element.classList.add(this.className_(), rs()), t.viewProps.bindClassModifiers(this.element), this.foldable_ = t.foldable, this.foldable_.bindExpandedClass(this.element, this.className_(void 0, "expanded")), O(this.foldable_, "completed", K(this.element, this.className_(void 0, "cpl"))); + const b = e.createElement("button"); + b.classList.add(this.className_("b")), O(t.props, "title", (J) => { _(J) ? this.element.classList.add(this.className_(void 0, "not")) : this.element.classList.remove(this.className_(void 0, "not")); - }), t.viewProps.bindDisabled(v), this.element.appendChild(v), this.buttonElement = v; + }), t.viewProps.bindDisabled(b), this.element.appendChild(b), this.buttonElement = b; const E = e.createElement("div"); E.classList.add(this.className_("i")), this.element.appendChild(E); - const k2 = e.createElement("div"); - k2.classList.add(this.className_("t")), q(t.props.value("title"), k2), this.buttonElement.appendChild(k2), this.titleElement = k2; + const k = e.createElement("div"); + k.classList.add(this.className_("t")), q(t.props.value("title"), k), this.buttonElement.appendChild(k), this.titleElement = k; const B = e.createElement("div"); B.classList.add(this.className_("m")), this.buttonElement.appendChild(B); const Q = t.containerElement; Q.classList.add(this.className_("c")), this.element.appendChild(Q), this.containerElement = Q; } } - class Xn extends bi { + class Yn extends _i { constructor(e, t) { var l; - const v = De.create((l = t.expanded) !== null && l !== void 0 ? l : true), E = new hn(e, { + const b = De.create((l = t.expanded) !== null && l !== void 0 ? l : true), E = new mn(e, { blade: t.blade, root: t.root, viewProps: t.viewProps }); - super(Object.assign(Object.assign({}, t), { rackController: E, view: new Ws(e, { + super(Object.assign(Object.assign({}, t), { rackController: E, view: new sr(e, { containerElement: E.view.element, - foldable: v, + foldable: b, props: t.props, viewName: t.root ? "rot" : void 0, viewProps: t.viewProps - }) })), this.onTitleClick_ = this.onTitleClick_.bind(this), this.props = t.props, this.foldable = v, Ue(this.foldable, this.view.containerElement), this.rackController.rack.emitter.on("add", () => { + }) })), this.onTitleClick_ = this.onTitleClick_.bind(this), this.props = t.props, this.foldable = b, Ue(this.foldable, this.view.containerElement), this.rackController.rack.emitter.on("add", () => { this.foldable.cleanUpTransition(); }), this.rackController.rack.emitter.on("remove", () => { this.foldable.cleanUpTransition(); @@ -6458,90 +6534,90 @@ var Ch = { this.foldable.set("expanded", !this.foldable.get("expanded")); } } - const Js = { + const rr = { id: "folder", type: "blade", - accept(n) { - const e = M, t = le(n, { + accept(i) { + const e = M, t = le(i, { title: e.required.string, view: e.required.constant("folder"), expanded: e.optional.boolean }); return t ? { params: t } : null; }, - controller(n) { - return new Xn(n.document, { - blade: n.blade, - expanded: n.params.expanded, + controller(i) { + return new Yn(i.document, { + blade: i.blade, + expanded: i.params.expanded, props: X.fromObject({ - title: n.params.title + title: i.params.title }), - viewProps: n.viewProps + viewProps: i.viewProps }); }, - api(n) { - return n.controller instanceof Xn ? new vi(n.controller, n.pool) : null; + api(i) { + return i.controller instanceof Yn ? new gi(i.controller, i.pool) : null; } }; - class Gt extends ie { + class Kt extends ie { constructor(e, t) { const l = t.valueController.viewProps; - super(Object.assign(Object.assign({}, t), { value: t.valueController.value, view: new A2(e, { + super(Object.assign(Object.assign({}, t), { value: t.valueController.value, view: new L(e, { props: t.props, viewProps: l }), viewProps: l })), this.props = t.props, this.valueController = t.valueController, this.view.valueElement.appendChild(this.valueController.view.element); } } - class ss extends a { + class os extends a { } - const _i = D("spr"); - class er { + const yi = D2("spr"); + class or { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(_i()), t.viewProps.bindClassModifiers(this.element); + this.element = e.createElement("div"), this.element.classList.add(yi()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("hr"); - l.classList.add(_i("r")), this.element.appendChild(l); + l.classList.add(yi("r")), this.element.appendChild(l); } } - class dn extends kt { + class fn extends Mt { constructor(e, t) { - super(Object.assign(Object.assign({}, t), { view: new er(e, { + super(Object.assign(Object.assign({}, t), { view: new or(e, { viewProps: t.viewProps }) })); } } - const tr = { + const ar = { id: "separator", type: "blade", - accept(n) { - const t = le(n, { + accept(i) { + const t = le(i, { view: M.required.constant("separator") }); return t ? { params: t } : null; }, - controller(n) { - return new dn(n.document, { - blade: n.blade, - viewProps: n.viewProps + controller(i) { + return new fn(i.document, { + blade: i.blade, + viewProps: i.viewProps }); }, - api(n) { - return n.controller instanceof dn ? new ss(n.controller) : null; + api(i) { + return i.controller instanceof fn ? new os(i.controller) : null; } - }, Le = D("tbi"); - class nr { + }, Re = D2("tbi"); + class lr { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(Le()), t.viewProps.bindClassModifiers(this.element), O(t.props, "selected", (E) => { - E ? this.element.classList.add(Le(void 0, "sel")) : this.element.classList.remove(Le(void 0, "sel")); + this.element = e.createElement("div"), this.element.classList.add(Re()), t.viewProps.bindClassModifiers(this.element), O(t.props, "selected", (E) => { + E ? this.element.classList.add(Re(void 0, "sel")) : this.element.classList.remove(Re(void 0, "sel")); }); const l = e.createElement("button"); - l.classList.add(Le("b")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l; - const v = e.createElement("div"); - v.classList.add(Le("t")), q(t.props.value("title"), v), this.buttonElement.appendChild(v), this.titleElement = v; + l.classList.add(Re("b")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l; + const b = e.createElement("div"); + b.classList.add(Re("t")), q(t.props.value("title"), b), this.buttonElement.appendChild(b), this.titleElement = b; } } - class Yn { + class qn { constructor(e, t) { - this.emitter = new F(), this.onClick_ = this.onClick_.bind(this), this.props = t.props, this.viewProps = t.viewProps, this.view = new nr(e, { + this.emitter = new F(), this.onClick_ = this.onClick_.bind(this), this.props = t.props, this.viewProps = t.viewProps, this.view = new lr(e, { props: t.props, viewProps: t.viewProps }), this.view.buttonElement.addEventListener("click", this.onClick_); @@ -6552,14 +6628,14 @@ var Ch = { }); } } - class rs { + class as { constructor(e, t) { - this.onItemClick_ = this.onItemClick_.bind(this), this.ic_ = new Yn(e, { + this.onItemClick_ = this.onItemClick_.bind(this), this.ic_ = new qn(e, { props: t.itemProps, - viewProps: Xe.create() - }), this.ic_.emitter.on("click", this.onItemClick_), this.cc_ = new hn(e, { + viewProps: Ye.create() + }), this.ic_.emitter.on("click", this.onItemClick_), this.cc_ = new mn(e, { blade: ye(), - viewProps: Xe.create() + viewProps: Ye.create() }), this.props = t.props, O(this.props, "selected", (l) => { this.itemController.props.set("selected", l), this.contentController.viewProps.set("hidden", !l); }); @@ -6574,7 +6650,7 @@ var Ch = { this.props.set("selected", true); } } - class wi { + class xi { constructor(e, t) { this.controller_ = e, this.rackApi_ = t; } @@ -6622,9 +6698,9 @@ var Ch = { return this.rackApi_.addBlade(e); } } - class os extends Ge { + class ls extends Ge { constructor(e, t) { - super(e, new $n(e.rackController, t)), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.onSelect_ = this.onSelect_.bind(this), this.emitter_ = new F(), this.pageApiMap_ = /* @__PURE__ */ new Map(), this.rackApi_.on("change", (l) => { + super(e, new Xn(e.rackController, t)), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.onSelect_ = this.onSelect_.bind(this), this.emitter_ = new F(), this.pageApiMap_ = /* @__PURE__ */ new Map(), this.rackApi_.on("change", (l) => { this.emitter_.emit("change", { event: l }); @@ -6645,7 +6721,7 @@ var Ch = { }); } addPage(e) { - const t = this.controller_.view.element.ownerDocument, l = new rs(t, { + const t = this.controller_.view.element.ownerDocument, l = new as(t, { itemProps: X.fromObject({ selected: false, title: e.title @@ -6655,25 +6731,25 @@ var Ch = { }) }); this.controller_.add(l, e.index); - const v = this.pageApiMap_.get(l); - if (!v) + const b = this.pageApiMap_.get(l); + if (!b) throw S.shouldNeverHappen(); - return v; + return b; } removePage(e) { this.controller_.remove(e); } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } setUpPageApi_(e) { - const t = this.rackApi_.apiSet_.find((v) => v.controller_ === e.contentController); + const t = this.rackApi_.apiSet_.find((b) => b.controller_ === e.contentController); if (!t) throw S.shouldNeverHappen(); - const l = new wi(e, t); + const l = new xi(e, t); this.pageApiMap_.set(e, l); } onPageAdd_(e) { @@ -6690,10 +6766,10 @@ var Ch = { }); } } - const as = -1; - class ir { + const cs = -1; + class cr { constructor() { - this.onItemSelectedChange_ = this.onItemSelectedChange_.bind(this), this.empty = ee(true), this.selectedIndex = ee(as), this.items_ = []; + this.onItemSelectedChange_ = this.onItemSelectedChange_.bind(this), this.empty = ee(true), this.selectedIndex = ee(cs), this.items_ = []; } add(e, t) { const l = t ?? this.items_.length; @@ -6705,7 +6781,7 @@ var Ch = { } keepSelection_() { if (this.items_.length === 0) { - this.selectedIndex.rawValue = as, this.empty.rawValue = true; + this.selectedIndex.rawValue = cs, this.empty.rawValue = true; return; } const e = this.items_.findIndex((t) => t.rawValue); @@ -6718,40 +6794,40 @@ var Ch = { onItemSelectedChange_(e) { if (e.rawValue) { const t = this.items_.findIndex((l) => l === e.sender); - this.items_.forEach((l, v) => { - l.rawValue = v === t; + this.items_.forEach((l, b) => { + l.rawValue = b === t; }), this.selectedIndex.rawValue = t; } else this.keepSelection_(); } } - const Ht = D("tab"); - class Kt { + const $t = D2("tab"); + class Xt { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(Ht(), is()), t.viewProps.bindClassModifiers(this.element), N(t.empty, K(this.element, Ht(void 0, "nop"))); + this.element = e.createElement("div"), this.element.classList.add($t(), rs()), t.viewProps.bindClassModifiers(this.element), N(t.empty, K(this.element, $t(void 0, "nop"))); const l = e.createElement("div"); - l.classList.add(Ht("t")), this.element.appendChild(l), this.itemsElement = l; - const v = e.createElement("div"); - v.classList.add(Ht("i")), this.element.appendChild(v); + l.classList.add($t("t")), this.element.appendChild(l), this.itemsElement = l; + const b = e.createElement("div"); + b.classList.add($t("i")), this.element.appendChild(b); const E = t.contentsElement; - E.classList.add(Ht("c")), this.element.appendChild(E), this.contentsElement = E; + E.classList.add($t("c")), this.element.appendChild(E), this.contentsElement = E; } } - class mn extends bi { + class vn extends _i { constructor(e, t) { - const l = new hn(e, { + const l = new mn(e, { blade: t.blade, viewProps: t.viewProps - }), v = new ir(); + }), b = new cr(); super({ blade: t.blade, rackController: l, - view: new Kt(e, { + view: new Xt(e, { contentsElement: l.view.element, - empty: v.empty, + empty: b.empty, viewProps: t.viewProps }) - }), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.pageSet_ = new At(() => null), this.pageSet_.emitter.on("add", this.onPageAdd_), this.pageSet_.emitter.on("remove", this.onPageRemove_), this.tab = v; + }), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.pageSet_ = new At(() => null), this.pageSet_.emitter.on("add", this.onPageAdd_), this.pageSet_.emitter.on("remove", this.onPageRemove_), this.tab = b; } get pageSet() { return this.pageSet_; @@ -6764,30 +6840,30 @@ var Ch = { } onPageAdd_(e) { const t = e.item; - Mt2(this.view.itemsElement, t.itemController.view.element, e.index), t.itemController.viewProps.set("parent", this.viewProps), this.rackController.rack.add(t.contentController, e.index), this.tab.add(t.props.value("selected")); + St(this.view.itemsElement, t.itemController.view.element, e.index), t.itemController.viewProps.set("parent", this.viewProps), this.rackController.rack.add(t.contentController, e.index), this.tab.add(t.props.value("selected")); } onPageRemove_(e) { const t = e.item; - Hn(t.itemController.view.element), t.itemController.viewProps.set("parent", null), this.rackController.rack.remove(t.contentController), this.tab.remove(t.props.value("selected")); + Kn(t.itemController.view.element), t.itemController.viewProps.set("parent", null), this.rackController.rack.remove(t.contentController), this.tab.remove(t.props.value("selected")); } } - const yi = { + const Ei = { id: "tab", type: "blade", - accept(n) { - const e = M, t = le(n, { + accept(i) { + const e = M, t = le(i, { pages: e.required.array(e.required.object({ title: e.required.string })), view: e.required.constant("tab") }); return !t || t.pages.length === 0 ? null : { params: t }; }, - controller(n) { - const e = new mn(n.document, { - blade: n.blade, - viewProps: n.viewProps + controller(i) { + const e = new vn(i.document, { + blade: i.blade, + viewProps: i.viewProps }); - return n.params.pages.forEach((t) => { - const l = new rs(n.document, { + return i.params.pages.forEach((t) => { + const l = new as(i.document, { itemProps: X.fromObject({ selected: false, title: t.title @@ -6799,26 +6875,26 @@ var Ch = { e.add(l); }), e; }, - api(n) { - return n.controller instanceof mn ? new os(n.controller, n.pool) : null; + api(i) { + return i.controller instanceof vn ? new ls(i.controller, i.pool) : null; } }; - function sr(n, e) { - const t = n.accept(e.params); + function ur(i, e) { + const t = i.accept(e.params); if (!t) return null; - const l = M.optional.boolean(e.params.disabled).value, v = M.optional.boolean(e.params.hidden).value; - return n.controller({ + const l = M.optional.boolean(e.params.disabled).value, b = M.optional.boolean(e.params.hidden).value; + return i.controller({ blade: ye(), document: e.document, - params: Object.assign(Object.assign({}, t.params), { disabled: l, hidden: v }), - viewProps: Xe.create({ + params: Object.assign(Object.assign({}, t.params), { disabled: l, hidden: b }), + viewProps: Ye.create({ disabled: l, - hidden: v + hidden: b }) }); } - class ls { + class us { constructor() { this.disabled = false, this.emitter = new F(); } @@ -6830,7 +6906,7 @@ var Ch = { }); } } - class xi { + class Ci { constructor(e, t) { this.disabled_ = false, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = e, this.emitter = new F(), this.interval_ = t, this.setTimer_(); } @@ -6861,7 +6937,7 @@ var Ch = { }); } } - class qn { + class Qn { constructor(e) { this.onValueChange_ = this.onValueChange_.bind(this), this.reader = e.reader, this.writer = e.writer, this.emitter = new F(), this.value = e.value, this.value.emitter.on("change", this.onValueChange_), this.target = e.target, this.read(); } @@ -6880,23 +6956,23 @@ var Ch = { }); } } - function Me(n, e) { - for (; n.length < e; ) - n.push(void 0); + function Me2(i, e) { + for (; i.length < e; ) + i.push(void 0); } - function cs(n) { + function ps(i) { const e = []; - return Me(e, n), ee(e); + return Me2(e, i), ee(e); } - function $t(n) { - const e = n.indexOf(void 0); - return e < 0 ? n : n.slice(0, e); + function Yt(i) { + const e = i.indexOf(void 0); + return e < 0 ? i : i.slice(0, e); } - function Ye(n, e) { - const t = [...$t(n), e]; - return t.length > n.length ? t.splice(0, t.length - n.length) : Me(t, n.length), t; + function qe(i, e) { + const t = [...Yt(i), e]; + return t.length > i.length ? t.splice(0, t.length - i.length) : Me2(t, i.length), t; } - class rr { + class pr { constructor(e) { this.onTick_ = this.onTick_.bind(this), this.reader_ = e.reader, this.target = e.target, this.emitter = new F(), this.value = e.value, this.ticker = e.ticker, this.ticker.emitter.on("tick", this.onTick_), this.read(); } @@ -6908,7 +6984,7 @@ var Ch = { if (e === void 0) return; const t = this.value.rawValue, l = this.reader_(e); - this.value.rawValue = Ye(t, l), this.emitter.emit("update", { + this.value.rawValue = qe(t, l), this.emitter.emit("update", { rawValue: l, sender: this }); @@ -6917,7 +6993,7 @@ var Ch = { this.read(); } } - class fn { + class bn { constructor(e) { this.constraints = e; } @@ -6925,17 +7001,17 @@ var Ch = { return this.constraints.reduce((t, l) => l.constrain(t), e); } } - function et(n, e) { - if (n instanceof e) - return n; - if (n instanceof fn) { - const t = n.constraints.reduce((l, v) => l || (v instanceof e ? v : null), null); + function tt(i, e) { + if (i instanceof e) + return i; + if (i instanceof bn) { + const t = i.constraints.reduce((l, b) => l || (b instanceof e ? b : null), null); if (t) return t; } return null; } - class Xt { + class qt { constructor(e) { this.values = X.fromObject({ max: e.max, @@ -6947,7 +7023,7 @@ var Ch = { return Math.min(Math.max(e, l), t); } } - class vn { + class gn { constructor(e) { this.values = X.fromObject({ options: e @@ -6958,10 +7034,10 @@ var Ch = { } constrain(e) { const t = this.values.get("options"); - return t.length === 0 || t.filter((v) => v.value === e).length > 0 ? e : t[0].value; + return t.length === 0 || t.filter((b) => b.value === e).length > 0 ? e : t[0].value; } } - class Ei { + class Pi { constructor(e) { this.values = X.fromObject({ max: e.max, @@ -6976,11 +7052,11 @@ var Ch = { } constrain(e) { const t = this.values.get("max"), l = this.values.get("min"); - let v = e; - return _(l) || (v = Math.max(v, l)), _(t) || (v = Math.min(v, t)), v; + let b = e; + return _(l) || (b = Math.max(b, l)), _(t) || (b = Math.min(b, t)), b; } } - class Qn { + class Zn { constructor(e, t = 0) { this.step = e, this.origin = t; } @@ -6989,19 +7065,19 @@ var Ch = { return t + l * this.step; } } - const Yt = D("lst"); - class ps { + const Qt = D2("lst"); + class hs { constructor(e, t) { - this.onValueChange_ = this.onValueChange_.bind(this), this.props_ = t.props, this.element = e.createElement("div"), this.element.classList.add(Yt()), t.viewProps.bindClassModifiers(this.element); + this.onValueChange_ = this.onValueChange_.bind(this), this.props_ = t.props, this.element = e.createElement("div"), this.element.classList.add(Qt()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("select"); - l.classList.add(Yt("s")), O(this.props_, "options", (E) => { - cn(l), E.forEach((k2, B) => { + l.classList.add(Qt("s")), O(this.props_, "options", (E) => { + pn(l), E.forEach((k, B) => { const Q = e.createElement("option"); - Q.dataset.index = String(B), Q.textContent = k2.text, Q.value = String(k2.value), l.appendChild(Q); + Q.dataset.index = String(B), Q.textContent = k.text, Q.value = String(k.value), l.appendChild(Q); }); }), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.selectElement = l; - const v = e.createElement("div"); - v.classList.add(Yt("m")), v.appendChild(yt(e, "dropdown")), this.element.appendChild(v), t.value.emitter.on("change", this.onValueChange_), this.value_ = t.value, this.update_(); + const b = e.createElement("div"); + b.classList.add(Qt("m")), b.appendChild(xt(e, "dropdown")), this.element.appendChild(b), t.value.emitter.on("change", this.onValueChange_), this.value_ = t.value, this.update_(); } update_() { this.selectElement.value = String(this.value_.rawValue); @@ -7010,9 +7086,9 @@ var Ch = { this.update_(); } } - class bn { + class _n { constructor(e, t) { - this.onSelectChange_ = this.onSelectChange_.bind(this), this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new ps(e, { + this.onSelectChange_ = this.onSelectChange_.bind(this), this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new hs(e, { props: this.props, value: this.value, viewProps: this.viewProps @@ -7022,30 +7098,30 @@ var Ch = { const l = e.currentTarget.selectedOptions.item(0); if (!l) return; - const v = Number(l.dataset.index); - this.value.rawValue = this.props.get("options")[v].value; + const b = Number(l.dataset.index); + this.value.rawValue = this.props.get("options")[b].value; } } - const us = D("pop"); - class or { + const ds = D2("pop"); + class hr { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(us()), t.viewProps.bindClassModifiers(this.element), N(t.shows, K(this.element, us(void 0, "v"))); + this.element = e.createElement("div"), this.element.classList.add(ds()), t.viewProps.bindClassModifiers(this.element), N(t.shows, K(this.element, ds(void 0, "v"))); } } - class hs { + class ms { constructor(e, t) { - this.shows = ee(false), this.viewProps = t.viewProps, this.view = new or(e, { + this.shows = ee(false), this.viewProps = t.viewProps, this.view = new hr(e, { shows: this.shows, viewProps: this.viewProps }); } } - const ds = D("txt"); - class ar { + const fs = D2("txt"); + class dr { constructor(e, t) { - this.onChange_ = this.onChange_.bind(this), this.element = e.createElement("div"), this.element.classList.add(ds()), t.viewProps.bindClassModifiers(this.element), this.props_ = t.props, this.props_.emitter.on("change", this.onChange_); + this.onChange_ = this.onChange_.bind(this), this.element = e.createElement("div"), this.element.classList.add(fs()), t.viewProps.bindClassModifiers(this.element), this.props_ = t.props, this.props_.emitter.on("change", this.onChange_); const l = e.createElement("input"); - l.classList.add(ds("i")), l.type = "text", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on("change", this.onChange_), this.value_ = t.value, this.refresh(); + l.classList.add(fs("i")), l.type = "text", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on("change", this.onChange_), this.value_ = t.value, this.refresh(); } refresh() { const e = this.props_.get("formatter"); @@ -7055,29 +7131,29 @@ var Ch = { this.refresh(); } } - class Zn { + class Wn { constructor(e, t) { - this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = t.parser, this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new ar(e, { + this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = t.parser, this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new dr(e, { props: t.props, value: this.value, viewProps: this.viewProps }), this.view.inputElement.addEventListener("change", this.onInputChange_); } onInputChange_(e) { - const l = e.currentTarget.value, v = this.parser_(l); - _(v) || (this.value.rawValue = v), this.view.refresh(); + const l = e.currentTarget.value, b = this.parser_(l); + _(b) || (this.value.rawValue = b), this.view.refresh(); } } - function lr(n) { - return String(n); + function mr(i) { + return String(i); } - function ms(n) { - return n === "false" ? false : !!n; + function vs(i) { + return i === "false" ? false : !!i; } - function fs(n) { - return lr(n); + function bs(i) { + return mr(i); } - class cr { + class fr { constructor(e) { this.text = e; } @@ -7088,26 +7164,26 @@ var Ch = { return this.text; } } - const pr = { - "**": (n, e) => Math.pow(n, e), - "*": (n, e) => n * e, - "/": (n, e) => n / e, - "%": (n, e) => n % e, - "+": (n, e) => n + e, - "-": (n, e) => n - e, - "<<": (n, e) => n << e, - ">>": (n, e) => n >> e, - ">>>": (n, e) => n >>> e, - "&": (n, e) => n & e, - "^": (n, e) => n ^ e, - "|": (n, e) => n | e + const vr = { + "**": (i, e) => Math.pow(i, e), + "*": (i, e) => i * e, + "/": (i, e) => i / e, + "%": (i, e) => i % e, + "+": (i, e) => i + e, + "-": (i, e) => i - e, + "<<": (i, e) => i << e, + ">>": (i, e) => i >> e, + ">>>": (i, e) => i >>> e, + "&": (i, e) => i & e, + "^": (i, e) => i ^ e, + "|": (i, e) => i | e }; - class ur { + class br { constructor(e, t, l) { this.left = t, this.operator = e, this.right = l; } evaluate() { - const e = pr[this.operator]; + const e = vr[this.operator]; if (!e) throw new Error(`unexpected binary operator: '${this.operator}`); return e(this.left.evaluate(), this.right.evaluate()); @@ -7122,17 +7198,17 @@ var Ch = { ].join(" "); } } - const vs = { - "+": (n) => n, - "-": (n) => -n, - "~": (n) => ~n + const gs = { + "+": (i) => i, + "-": (i) => -i, + "~": (i) => ~i }; - class hr { + class gr { constructor(e, t) { this.operator = e, this.expression = t; } evaluate() { - const e = vs[this.operator]; + const e = gs[this.operator]; if (!e) throw new Error(`unexpected unary operator: '${this.operator}`); return e(this.expression.evaluate()); @@ -7141,186 +7217,186 @@ var Ch = { return ["u(", this.operator, this.expression.toString(), ")"].join(" "); } } - function Ci(n) { + function Ti(i) { return (e, t) => { - for (let l = 0; l < n.length; l++) { - const v = n[l](e, t); - if (v !== "") - return v; + for (let l = 0; l < i.length; l++) { + const b = i[l](e, t); + if (b !== "") + return b; } return ""; }; } - function Lt(n, e) { + function Rt(i, e) { var t; - const l = n.substr(e).match(/^\s+/); + const l = i.substr(e).match(/^\s+/); return (t = l && l[0]) !== null && t !== void 0 ? t : ""; } - function dr(n, e) { - const t = n.substr(e, 1); + function _r(i, e) { + const t = i.substr(e, 1); return t.match(/^[1-9]$/) ? t : ""; } - function gn(n, e) { + function wn(i, e) { var t; - const l = n.substr(e).match(/^[0-9]+/); + const l = i.substr(e).match(/^[0-9]+/); return (t = l && l[0]) !== null && t !== void 0 ? t : ""; } - function mr(n, e) { - const t = gn(n, e); + function wr(i, e) { + const t = wn(i, e); if (t !== "") return t; - const l = n.substr(e, 1); + const l = i.substr(e, 1); if (e += 1, l !== "-" && l !== "+") return ""; - const v = gn(n, e); - return v === "" ? "" : l + v; + const b = wn(i, e); + return b === "" ? "" : l + b; } - function ot(n, e) { - const t = n.substr(e, 1); + function at(i, e) { + const t = i.substr(e, 1); if (e += 1, t.toLowerCase() !== "e") return ""; - const l = mr(n, e); + const l = wr(i, e); return l === "" ? "" : t + l; } - function bs(n, e) { - const t = n.substr(e, 1); + function _s(i, e) { + const t = i.substr(e, 1); if (t === "0") return t; - const l = dr(n, e); - return e += l.length, l === "" ? "" : l + gn(n, e); + const l = _r(i, e); + return e += l.length, l === "" ? "" : l + wn(i, e); } - function fr(n, e) { - const t = bs(n, e); + function yr(i, e) { + const t = _s(i, e); if (e += t.length, t === "") return ""; - const l = n.substr(e, 1); + const l = i.substr(e, 1); if (e += l.length, l !== ".") return ""; - const v = gn(n, e); - return e += v.length, t + l + v + ot(n, e); + const b = wn(i, e); + return e += b.length, t + l + b + at(i, e); } - function gs(n, e) { - const t = n.substr(e, 1); + function ws(i, e) { + const t = i.substr(e, 1); if (e += t.length, t !== ".") return ""; - const l = gn(n, e); - return e += l.length, l === "" ? "" : t + l + ot(n, e); + const l = wn(i, e); + return e += l.length, l === "" ? "" : t + l + at(i, e); } - function vr(n, e) { - const t = bs(n, e); - return e += t.length, t === "" ? "" : t + ot(n, e); + function xr(i, e) { + const t = _s(i, e); + return e += t.length, t === "" ? "" : t + at(i, e); } - const _s = Ci([ - fr, - gs, - vr + const ys = Ti([ + yr, + ws, + xr ]); - function Pi(n, e) { + function ki(i, e) { var t; - const l = n.substr(e).match(/^[01]+/); + const l = i.substr(e).match(/^[01]+/); return (t = l && l[0]) !== null && t !== void 0 ? t : ""; } - function br(n, e) { - const t = n.substr(e, 2); + function Er(i, e) { + const t = i.substr(e, 2); if (e += t.length, t.toLowerCase() !== "0b") return ""; - const l = Pi(n, e); + const l = ki(i, e); return l === "" ? "" : t + l; } - function ws(n, e) { + function xs(i, e) { var t; - const l = n.substr(e).match(/^[0-7]+/); + const l = i.substr(e).match(/^[0-7]+/); return (t = l && l[0]) !== null && t !== void 0 ? t : ""; } - function qe(n, e) { - const t = n.substr(e, 2); + function Qe(i, e) { + const t = i.substr(e, 2); if (e += t.length, t.toLowerCase() !== "0o") return ""; - const l = ws(n, e); + const l = xs(i, e); return l === "" ? "" : t + l; } - function gr(n, e) { + function Cr(i, e) { var t; - const l = n.substr(e).match(/^[0-9a-f]+/i); + const l = i.substr(e).match(/^[0-9a-f]+/i); return (t = l && l[0]) !== null && t !== void 0 ? t : ""; } - function _r(n, e) { - const t = n.substr(e, 2); + function Pr(i, e) { + const t = i.substr(e, 2); if (e += t.length, t.toLowerCase() !== "0x") return ""; - const l = gr(n, e); + const l = Cr(i, e); return l === "" ? "" : t + l; } - const Ti = Ci([ - br, - qe, - _r - ]), wr = Ci([ - Ti, - _s + const Mi = Ti([ + Er, + Qe, + Pr + ]), Tr = Ti([ + Mi, + ys ]); - function Et(n, e) { - const t = wr(n, e); + function Ct(i, e) { + const t = Tr(i, e); return e += t.length, t === "" ? null : { - evaluable: new cr(t), + evaluable: new fr(t), cursor: e }; } - function ki(n, e) { - const t = n.substr(e, 1); + function Si(i, e) { + const t = i.substr(e, 1); if (e += t.length, t !== "(") return null; - const l = Wn(n, e); + const l = Jn(i, e); if (!l) return null; - e = l.cursor, e += Lt(n, e).length; - const v = n.substr(e, 1); - return e += v.length, v !== ")" ? null : { + e = l.cursor, e += Rt(i, e).length; + const b = i.substr(e, 1); + return e += b.length, b !== ")" ? null : { evaluable: l.evaluable, cursor: e }; } - function yr(n, e) { + function kr(i, e) { var t; - return (t = Et(n, e)) !== null && t !== void 0 ? t : ki(n, e); + return (t = Ct(i, e)) !== null && t !== void 0 ? t : Si(i, e); } - function Mi(n, e) { - const t = yr(n, e); + function Li(i, e) { + const t = kr(i, e); if (t) return t; - const l = n.substr(e, 1); + const l = i.substr(e, 1); if (e += l.length, l !== "+" && l !== "-" && l !== "~") return null; - const v = Mi(n, e); - return v ? (e = v.cursor, { + const b = Li(i, e); + return b ? (e = b.cursor, { cursor: e, - evaluable: new hr(l, v.evaluable) + evaluable: new gr(l, b.evaluable) }) : null; } - function xr(n, e, t) { - t += Lt(e, t).length; - const l = n.filter((v) => e.startsWith(v, t))[0]; - return l ? (t += l.length, t += Lt(e, t).length, { + function Mr(i, e, t) { + t += Rt(e, t).length; + const l = i.filter((b) => e.startsWith(b, t))[0]; + return l ? (t += l.length, t += Rt(e, t).length, { cursor: t, operator: l }) : null; } - function Rt(n, e) { + function It(i, e) { return (t, l) => { - const v = n(t, l); - if (!v) + const b = i(t, l); + if (!b) return null; - l = v.cursor; - let E = v.evaluable; + l = b.cursor; + let E = b.evaluable; for (; ; ) { - const k2 = xr(e, t, l); - if (!k2) + const k = Mr(e, t, l); + if (!k) break; - l = k2.cursor; - const B = n(t, l); + l = k.cursor; + const B = i(t, l); if (!B) return null; - l = B.cursor, E = new ur(k2.operator, E, B.evaluable); + l = B.cursor, E = new br(k.operator, E, B.evaluable); } return E ? { cursor: l, @@ -7328,7 +7404,7 @@ var Ch = { } : null; }; } - const ys = [ + const Es = [ ["**"], ["*", "/", "%"], ["+", "-"], @@ -7336,102 +7412,102 @@ var Ch = { ["&"], ["^"], ["|"] - ].reduce((n, e) => Rt(n, e), Mi); - function Wn(n, e) { - return e += Lt(n, e).length, ys(n, e); + ].reduce((i, e) => It(i, e), Li); + function Jn(i, e) { + return e += Rt(i, e).length, Es(i, e); } - function xs(n) { - const e = Wn(n, 0); - return !e || e.cursor + Lt(n, e.cursor).length !== n.length ? null : e.evaluable; + function Cs(i) { + const e = Jn(i, 0); + return !e || e.cursor + Rt(i, e.cursor).length !== i.length ? null : e.evaluable; } - function at(n) { + function lt(i) { var e; - const t = xs(n); + const t = Cs(i); return (e = t == null ? void 0 : t.evaluate()) !== null && e !== void 0 ? e : null; } - function vt(n) { - if (typeof n == "number") - return n; - if (typeof n == "string") { - const e = at(n); + function bt(i) { + if (typeof i == "number") + return i; + if (typeof i == "string") { + const e = lt(i); if (!_(e)) return e; } return 0; } - function Er(n) { - return String(n); + function Sr(i) { + return String(i); } - function Re(n) { - return (e) => e.toFixed(Math.max(Math.min(n, 20), 0)); + function Ie(i) { + return (e) => e.toFixed(Math.max(Math.min(i, 20), 0)); } - const Es = Re(0); - function _n(n) { - return Es(n) + "%"; + const Ps = Ie(0); + function yn(i) { + return Ps(i) + "%"; } - function Si(n) { - return String(n); + function Ai(i) { + return String(i); } - function Ct(n) { - return n; + function Pt(i) { + return i; } - function qt({ primary: n, secondary: e, forward: t, backward: l }) { - let v = false; - function E(k2) { - v || (v = true, k2(), v = false); + function Zt({ primary: i, secondary: e, forward: t, backward: l }) { + let b = false; + function E(k) { + b || (b = true, k(), b = false); } - n.emitter.on("change", (k2) => { + i.emitter.on("change", (k) => { E(() => { - e.setRawValue(t(n, e), k2.options); + e.setRawValue(t(i, e), k.options); }); - }), e.emitter.on("change", (k2) => { + }), e.emitter.on("change", (k) => { E(() => { - n.setRawValue(l(n, e), k2.options); + i.setRawValue(l(i, e), k.options); }), E(() => { - e.setRawValue(t(n, e), k2.options); + e.setRawValue(t(i, e), k.options); }); }), E(() => { - e.setRawValue(t(n, e), { + e.setRawValue(t(i, e), { forceEmit: false, last: true }); }); } - function Oe(n, e) { - const t = n * (e.altKey ? 0.1 : 1) * (e.shiftKey ? 10 : 1); + function Oe(i, e) { + const t = i * (e.altKey ? 0.1 : 1) * (e.shiftKey ? 10 : 1); return e.upKey ? +t : e.downKey ? -t : 0; } - function wn(n) { + function xn(i) { return { - altKey: n.altKey, - downKey: n.key === "ArrowDown", - shiftKey: n.shiftKey, - upKey: n.key === "ArrowUp" + altKey: i.altKey, + downKey: i.key === "ArrowDown", + shiftKey: i.shiftKey, + upKey: i.key === "ArrowUp" }; } - function lt(n) { + function ct(i) { return { - altKey: n.altKey, - downKey: n.key === "ArrowLeft", - shiftKey: n.shiftKey, - upKey: n.key === "ArrowRight" + altKey: i.altKey, + downKey: i.key === "ArrowLeft", + shiftKey: i.shiftKey, + upKey: i.key === "ArrowRight" }; } - function Cs(n) { - return n === "ArrowUp" || n === "ArrowDown"; + function Ts(i) { + return i === "ArrowUp" || i === "ArrowDown"; } - function Jn(n) { - return Cs(n) || n === "ArrowLeft" || n === "ArrowRight"; + function ei(i) { + return Ts(i) || i === "ArrowLeft" || i === "ArrowRight"; } - function Ai(n, e) { + function Ri(i, e) { var t, l; - const v = e.ownerDocument.defaultView, E = e.getBoundingClientRect(); + const b = e.ownerDocument.defaultView, E = e.getBoundingClientRect(); return { - x: n.pageX - (((t = v && v.scrollX) !== null && t !== void 0 ? t : 0) + E.left), - y: n.pageY - (((l = v && v.scrollY) !== null && l !== void 0 ? l : 0) + E.top) + x: i.pageX - (((t = b && b.scrollX) !== null && t !== void 0 ? t : 0) + E.left), + y: i.pageY - (((l = b && b.scrollY) !== null && l !== void 0 ? l : 0) + E.top) }; } - class It { + class Vt { constructor(e) { this.lastTouch_ = null, this.onDocumentMouseMove_ = this.onDocumentMouseMove_.bind(this), this.onDocumentMouseUp_ = this.onDocumentMouseUp_.bind(this), this.onMouseDown_ = this.onMouseDown_.bind(this), this.onTouchEnd_ = this.onTouchEnd_.bind(this), this.onTouchMove_ = this.onTouchMove_.bind(this), this.onTouchStart_ = this.onTouchStart_.bind(this), this.elem_ = e, this.emitter = new F(), e.addEventListener("touchstart", this.onTouchStart_, { passive: false @@ -7458,7 +7534,7 @@ var Ch = { const l = this.elem_.ownerDocument; l.addEventListener("mousemove", this.onDocumentMouseMove_), l.addEventListener("mouseup", this.onDocumentMouseUp_), this.emitter.emit("down", { altKey: e.altKey, - data: this.computePosition_(Ai(e, this.elem_)), + data: this.computePosition_(Ri(e, this.elem_)), sender: this, shiftKey: e.shiftKey }); @@ -7466,7 +7542,7 @@ var Ch = { onDocumentMouseMove_(e) { this.emitter.emit("move", { altKey: e.altKey, - data: this.computePosition_(Ai(e, this.elem_)), + data: this.computePosition_(Ri(e, this.elem_)), sender: this, shiftKey: e.shiftKey }); @@ -7475,7 +7551,7 @@ var Ch = { const t = this.elem_.ownerDocument; t.removeEventListener("mousemove", this.onDocumentMouseMove_), t.removeEventListener("mouseup", this.onDocumentMouseUp_), this.emitter.emit("up", { altKey: e.altKey, - data: this.computePosition_(Ai(e, this.elem_)), + data: this.computePosition_(Ri(e, this.elem_)), sender: this, shiftKey: e.shiftKey }); @@ -7507,47 +7583,47 @@ var Ch = { } onTouchEnd_(e) { var t; - const l = (t = e.targetTouches.item(0)) !== null && t !== void 0 ? t : this.lastTouch_, v = this.elem_.getBoundingClientRect(); + const l = (t = e.targetTouches.item(0)) !== null && t !== void 0 ? t : this.lastTouch_, b = this.elem_.getBoundingClientRect(); this.emitter.emit("up", { altKey: e.altKey, data: this.computePosition_(l ? { - x: l.clientX - v.left, - y: l.clientY - v.top + x: l.clientX - b.left, + y: l.clientY - b.top } : void 0), sender: this, shiftKey: e.shiftKey }); } } - function _e(n, e, t, l, v) { - const E = (n - e) / (t - e); - return l + E * (v - l); + function _e(i, e, t, l, b) { + const E = (i - e) / (t - e); + return l + E * (b - l); } - function Li(n) { - return String(n.toFixed(10)).split(".")[1].replace(/0+$/, "").length; + function Ii(i) { + return String(i.toFixed(10)).split(".")[1].replace(/0+$/, "").length; } - function Se(n, e, t) { - return Math.min(Math.max(n, e), t); + function Se(i, e, t) { + return Math.min(Math.max(i, e), t); } - function Qt(n, e) { - return (n % e + e) % e; + function Wt(i, e) { + return (i % e + e) % e; } - const He = D("txt"); - class Ri { + const He = D2("txt"); + class Vi { constructor(e, t) { this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on("change", this.onChange_), this.element = e.createElement("div"), this.element.classList.add(He(), He(void 0, "num")), t.arrayPosition && this.element.classList.add(He(void 0, t.arrayPosition)), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("input"); l.classList.add(He("i")), l.type = "text", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = t.dragging, this.dragging_.emitter.on("change", this.onDraggingChange_), this.element.classList.add(He()), this.inputElement.classList.add(He("i")); - const v = e.createElement("div"); - v.classList.add(He("k")), this.element.appendChild(v), this.knobElement = v; + const b = e.createElement("div"); + b.classList.add(He("k")), this.element.appendChild(b), this.knobElement = b; const E = e.createElementNS(ze, "svg"); E.classList.add(He("g")), this.knobElement.appendChild(E); - const k2 = e.createElementNS(ze, "path"); - k2.classList.add(He("gb")), E.appendChild(k2), this.guideBodyElem_ = k2; + const k = e.createElementNS(ze, "path"); + k.classList.add(He("gb")), E.appendChild(k), this.guideBodyElem_ = k; const B = e.createElementNS(ze, "path"); B.classList.add(He("gh")), E.appendChild(B), this.guideHeadElem_ = B; const Q = e.createElement("div"); - Q.classList.add(D("tt")()), this.knobElement.appendChild(Q), this.tooltipElem_ = Q, t.value.emitter.on("change", this.onChange_), this.value = t.value, this.refresh(); + Q.classList.add(D2("tt")()), this.knobElement.appendChild(Q), this.tooltipElem_ = Q, t.value.emitter.on("change", this.onChange_), this.value = t.value, this.refresh(); } onDraggingChange_(e) { if (e.rawValue === null) { @@ -7555,8 +7631,8 @@ var Ch = { return; } this.element.classList.add(He(void 0, "drg")); - const t = e.rawValue / this.props_.get("draggingScale"), l = t + (t > 0 ? -1 : t < 0 ? 1 : 0), v = Se(-l, -4, 4); - this.guideHeadElem_.setAttributeNS(null, "d", [`M ${l + v},0 L${l},4 L${l + v},8`, `M ${t},-1 L${t},9`].join(" ")), this.guideBodyElem_.setAttributeNS(null, "d", `M 0,4 L${t},4`); + const t = e.rawValue / this.props_.get("draggingScale"), l = t + (t > 0 ? -1 : t < 0 ? 1 : 0), b = Se(-l, -4, 4); + this.guideHeadElem_.setAttributeNS(null, "d", [`M ${l + b},0 L${l},4 L${l + b},8`, `M ${t},-1 L${t},9`].join(" ")), this.guideBodyElem_.setAttributeNS(null, "d", `M 0,4 L${t},4`); const E = this.props_.get("formatter"); this.tooltipElem_.textContent = E(this.value.rawValue), this.tooltipElem_.style.left = `${t}px`; } @@ -7568,38 +7644,38 @@ var Ch = { this.refresh(); } } - class yn { + class En { constructor(e, t) { var l; - this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.parser_ = t.parser, this.props = t.props, this.sliderProps_ = (l = t.sliderProps) !== null && l !== void 0 ? l : null, this.value = t.value, this.viewProps = t.viewProps, this.dragging_ = ee(null), this.view = new Ri(e, { + this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.parser_ = t.parser, this.props = t.props, this.sliderProps_ = (l = t.sliderProps) !== null && l !== void 0 ? l : null, this.value = t.value, this.viewProps = t.viewProps, this.dragging_ = ee(null), this.view = new Vi(e, { arrayPosition: t.arrayPosition, dragging: this.dragging_, props: this.props, value: this.value, viewProps: this.viewProps }), this.view.inputElement.addEventListener("change", this.onInputChange_), this.view.inputElement.addEventListener("keydown", this.onInputKeyDown_), this.view.inputElement.addEventListener("keyup", this.onInputKeyUp_); - const v = new It(this.view.knobElement); - v.emitter.on("down", this.onPointerDown_), v.emitter.on("move", this.onPointerMove_), v.emitter.on("up", this.onPointerUp_); + const b = new Vt(this.view.knobElement); + b.emitter.on("down", this.onPointerDown_), b.emitter.on("move", this.onPointerMove_), b.emitter.on("up", this.onPointerUp_); } constrainValue_(e) { var t, l; - const v = (t = this.sliderProps_) === null || t === void 0 ? void 0 : t.get("minValue"), E = (l = this.sliderProps_) === null || l === void 0 ? void 0 : l.get("maxValue"); - let k2 = e; - return v !== void 0 && (k2 = Math.max(k2, v)), E !== void 0 && (k2 = Math.min(k2, E)), k2; + const b = (t = this.sliderProps_) === null || t === void 0 ? void 0 : t.get("minValue"), E = (l = this.sliderProps_) === null || l === void 0 ? void 0 : l.get("maxValue"); + let k = e; + return b !== void 0 && (k = Math.max(k, b)), E !== void 0 && (k = Math.min(k, E)), k; } onInputChange_(e) { - const l = e.currentTarget.value, v = this.parser_(l); - _(v) || (this.value.rawValue = this.constrainValue_(v)), this.view.refresh(); + const l = e.currentTarget.value, b = this.parser_(l); + _(b) || (this.value.rawValue = this.constrainValue_(b)), this.view.refresh(); } onInputKeyDown_(e) { - const t = Oe(this.baseStep_, wn(e)); + const t = Oe(this.baseStep_, xn(e)); t !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + t), { forceEmit: false, last: false }); } onInputKeyUp_(e) { - Oe(this.baseStep_, wn(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { + Oe(this.baseStep_, xn(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); @@ -7628,14 +7704,14 @@ var Ch = { }), this.dragging_.rawValue = null); } } - const Ii = D("sld"); + const Di = D2("sld"); class Ke { constructor(e, t) { - this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on("change", this.onChange_), this.element = e.createElement("div"), this.element.classList.add(Ii()), t.viewProps.bindClassModifiers(this.element); + this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on("change", this.onChange_), this.element = e.createElement("div"), this.element.classList.add(Di()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("div"); - l.classList.add(Ii("t")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.trackElement = l; - const v = e.createElement("div"); - v.classList.add(Ii("k")), this.trackElement.appendChild(v), this.knobElement = v, t.value.emitter.on("change", this.onChange_), this.value = t.value, this.update_(); + l.classList.add(Di("t")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.trackElement = l; + const b = e.createElement("div"); + b.classList.add(Di("k")), this.trackElement.appendChild(b), this.knobElement = b, t.value.emitter.on("change", this.onChange_), this.value = t.value, this.update_(); } update_() { const e = Se(_e(this.value.rawValue, this.props_.get("minValue"), this.props_.get("maxValue"), 0, 100), 0, 100); @@ -7645,13 +7721,13 @@ var Ch = { this.update_(); } } - class Vi { + class Oi { constructor(e, t) { this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDownOrMove_ = this.onPointerDownOrMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.value = t.value, this.viewProps = t.viewProps, this.props = t.props, this.view = new Ke(e, { props: this.props, value: this.value, viewProps: this.viewProps - }), this.ptHandler_ = new It(this.view.trackElement), this.ptHandler_.emitter.on("down", this.onPointerDownOrMove_), this.ptHandler_.emitter.on("move", this.onPointerDownOrMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.trackElement.addEventListener("keydown", this.onKeyDown_), this.view.trackElement.addEventListener("keyup", this.onKeyUp_); + }), this.ptHandler_ = new Vt(this.view.trackElement), this.ptHandler_.emitter.on("down", this.onPointerDownOrMove_), this.ptHandler_.emitter.on("move", this.onPointerDownOrMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.trackElement.addEventListener("keydown", this.onKeyDown_), this.view.trackElement.addEventListener("keyup", this.onKeyUp_); } handlePointerEvent_(e, t) { e.point && this.value.setRawValue(_e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, this.props.get("minValue"), this.props.get("maxValue")), t); @@ -7669,44 +7745,44 @@ var Ch = { }); } onKeyDown_(e) { - const t = Oe(this.baseStep_, lt(e)); + const t = Oe(this.baseStep_, ct(e)); t !== 0 && this.value.setRawValue(this.value.rawValue + t, { forceEmit: false, last: false }); } onKeyUp_(e) { - Oe(this.baseStep_, lt(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { + Oe(this.baseStep_, ct(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); } } - const xn = D("sldtxt"); - class Di { + const Cn = D2("sldtxt"); + class Ni { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(xn()); + this.element = e.createElement("div"), this.element.classList.add(Cn()); const l = e.createElement("div"); - l.classList.add(xn("s")), this.sliderView_ = t.sliderView, l.appendChild(this.sliderView_.element), this.element.appendChild(l); - const v = e.createElement("div"); - v.classList.add(xn("t")), this.textView_ = t.textView, v.appendChild(this.textView_.element), this.element.appendChild(v); + l.classList.add(Cn("s")), this.sliderView_ = t.sliderView, l.appendChild(this.sliderView_.element), this.element.appendChild(l); + const b = e.createElement("div"); + b.classList.add(Cn("t")), this.textView_ = t.textView, b.appendChild(this.textView_.element), this.element.appendChild(b); } } - class ei { + class ti { constructor(e, t) { - this.value = t.value, this.viewProps = t.viewProps, this.sliderC_ = new Vi(e, { + this.value = t.value, this.viewProps = t.viewProps, this.sliderC_ = new Oi(e, { baseStep: t.baseStep, props: t.sliderProps, value: t.value, viewProps: this.viewProps - }), this.textC_ = new yn(e, { + }), this.textC_ = new En(e, { baseStep: t.baseStep, parser: t.parser, props: t.textProps, sliderProps: t.sliderProps, value: t.value, viewProps: t.viewProps - }), this.view = new Di(e, { + }), this.view = new Ni(e, { sliderView: this.sliderC_.view, textView: this.textC_.view }); @@ -7718,71 +7794,71 @@ var Ch = { return this.textC_; } } - function tt(n, e) { - n.write(e); + function nt(i, e) { + i.write(e); } - function En(n) { + function Pn(i) { const e = M; - if (Array.isArray(n)) + if (Array.isArray(i)) return e.required.array(e.required.object({ text: e.required.string, value: e.required.raw - }))(n).value; - if (typeof n == "object") - return e.required.raw(n).value; + }))(i).value; + if (typeof i == "object") + return e.required.raw(i).value; } - function Oi(n) { - if (n === "inline" || n === "popup") - return n; + function Fi(i) { + if (i === "inline" || i === "popup") + return i; } - function bt(n) { + function gt(i) { const e = M; return e.required.object({ max: e.optional.number, min: e.optional.number, step: e.optional.number - })(n).value; + })(i).value; } - function Ps(n) { - if (Array.isArray(n)) - return n; + function ks(i) { + if (Array.isArray(i)) + return i; const e = []; - return Object.keys(n).forEach((t) => { - e.push({ text: t, value: n[t] }); + return Object.keys(i).forEach((t) => { + e.push({ text: t, value: i[t] }); }), e; } - function Ni(n) { - return _(n) ? null : new vn(Ps(n)); + function Bi(i) { + return _(i) ? null : new gn(ks(i)); } - function Cr(n) { - const e = n ? et(n, Qn) : null; + function Lr(i) { + const e = i ? tt(i, Zn) : null; return e ? e.step : null; } - function ti(n, e) { - const t = n && et(n, Qn); - return t ? Li(t.step) : Math.max(Li(e), 2); + function ni(i, e) { + const t = i && tt(i, Zn); + return t ? Ii(t.step) : Math.max(Ii(e), 2); } - function Vt(n) { - const e = Cr(n); + function Dt(i) { + const e = Lr(i); return e ?? 1; } - function Dt(n, e) { + function Ot(i, e) { var t; - const l = n && et(n, Qn), v = Math.abs((t = l == null ? void 0 : l.step) !== null && t !== void 0 ? t : e); - return v === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(v)) - 1); + const l = i && tt(i, Zn), b = Math.abs((t = l == null ? void 0 : l.step) !== null && t !== void 0 ? t : e); + return b === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(b)) - 1); } - const Cn = D("ckb"); - class Pn { + const Tn = D2("ckb"); + class kn { constructor(e, t) { - this.onValueChange_ = this.onValueChange_.bind(this), this.element = e.createElement("div"), this.element.classList.add(Cn()), t.viewProps.bindClassModifiers(this.element); + this.onValueChange_ = this.onValueChange_.bind(this), this.element = e.createElement("div"), this.element.classList.add(Tn()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("label"); - l.classList.add(Cn("l")), this.element.appendChild(l); - const v = e.createElement("input"); - v.classList.add(Cn("i")), v.type = "checkbox", l.appendChild(v), this.inputElement = v, t.viewProps.bindDisabled(this.inputElement); + l.classList.add(Tn("l")), this.element.appendChild(l); + const b = e.createElement("input"); + b.classList.add(Tn("i")), b.type = "checkbox", l.appendChild(b), this.inputElement = b, t.viewProps.bindDisabled(this.inputElement); const E = e.createElement("div"); - E.classList.add(Cn("w")), l.appendChild(E); - const k2 = yt(e, "check"); - E.appendChild(k2), t.value.emitter.on("change", this.onValueChange_), this.value = t.value, this.update_(); + E.classList.add(Tn("w")), l.appendChild(E); + const k = xt(e, "check"); + E.appendChild(k), t.value.emitter.on("change", this.onValueChange_), this.value = t.value, this.update_(); } update_() { this.inputElement.checked = this.value.rawValue; @@ -7791,9 +7867,9 @@ var Ch = { this.update_(); } } - class Ts { + class Ms { constructor(e, t) { - this.onInputChange_ = this.onInputChange_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Pn(e, { + this.onInputChange_ = this.onInputChange_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new kn(e, { value: this.value, viewProps: this.viewProps }), this.view.inputElement.addEventListener("change", this.onInputChange_); @@ -7803,146 +7879,146 @@ var Ch = { this.value.rawValue = t.checked; } } - function ks(n) { - const e = [], t = Ni(n.options); - return t && e.push(t), new fn(e); + function Ss(i) { + const e = [], t = Bi(i.options); + return t && e.push(t), new bn(e); } - const ni = { + const ii = { id: "input-bool", type: "input", - accept: (n, e) => { - if (typeof n != "boolean") + accept: (i, e) => { + if (typeof i != "boolean") return null; const l = le(e, { - options: M.optional.custom(En) + options: M.optional.custom(Pn) }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => ms, - constraint: (n) => ks(n.params), - writer: (n) => tt + reader: (i) => vs, + constraint: (i) => Ss(i.params), + writer: (i) => nt }, - controller: (n) => { - const e = n.document, t = n.value, l = n.constraint, v = l && et(l, vn); - return v ? new bn(e, { + controller: (i) => { + const e = i.document, t = i.value, l = i.constraint, b = l && tt(l, gn); + return b ? new _n(e, { props: new X({ - options: v.values.value("options") + options: b.values.value("options") }), value: t, - viewProps: n.viewProps - }) : new Ts(e, { + viewProps: i.viewProps + }) : new Ms(e, { value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); } - }, Ot = D("col"); - class Fi { + }, Nt = D2("col"); + class ji { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(Ot()), t.foldable.bindExpandedClass(this.element, Ot(void 0, "expanded")), O(t.foldable, "completed", K(this.element, Ot(void 0, "cpl"))); + this.element = e.createElement("div"), this.element.classList.add(Nt()), t.foldable.bindExpandedClass(this.element, Nt(void 0, "expanded")), O(t.foldable, "completed", K(this.element, Nt(void 0, "cpl"))); const l = e.createElement("div"); - l.classList.add(Ot("h")), this.element.appendChild(l); - const v = e.createElement("div"); - v.classList.add(Ot("s")), l.appendChild(v), this.swatchElement = v; + l.classList.add(Nt("h")), this.element.appendChild(l); + const b = e.createElement("div"); + b.classList.add(Nt("s")), l.appendChild(b), this.swatchElement = b; const E = e.createElement("div"); - if (E.classList.add(Ot("t")), l.appendChild(E), this.textElement = E, t.pickerLayout === "inline") { - const k2 = e.createElement("div"); - k2.classList.add(Ot("p")), this.element.appendChild(k2), this.pickerElement = k2; + if (E.classList.add(Nt("t")), l.appendChild(E), this.textElement = E, t.pickerLayout === "inline") { + const k = e.createElement("div"); + k.classList.add(Nt("p")), this.element.appendChild(k), this.pickerElement = k; } else this.pickerElement = null; } } - function Pr(n, e, t) { - const l = Se(n / 255, 0, 1), v = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k2 = Math.max(l, v, E), B = Math.min(l, v, E), Q = k2 - B; + function Ar(i, e, t) { + const l = Se(i / 255, 0, 1), b = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k = Math.max(l, b, E), B = Math.min(l, b, E), Q = k - B; let J = 0, de = 0; - const ve = (B + k2) / 2; - return Q !== 0 && (de = Q / (1 - Math.abs(k2 + B - 1)), l === k2 ? J = (v - E) / Q : v === k2 ? J = 2 + (E - l) / Q : J = 4 + (l - v) / Q, J = J / 6 + (J < 0 ? 1 : 0)), [J * 360, de * 100, ve * 100]; + const ve = (B + k) / 2; + return Q !== 0 && (de = Q / (1 - Math.abs(k + B - 1)), l === k ? J = (b - E) / Q : b === k ? J = 2 + (E - l) / Q : J = 4 + (l - b) / Q, J = J / 6 + (J < 0 ? 1 : 0)), [J * 360, de * 100, ve * 100]; } - function Tr(n, e, t) { - const l = (n % 360 + 360) % 360, v = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k2 = (1 - Math.abs(2 * E - 1)) * v, B = k2 * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k2 / 2; + function Rr(i, e, t) { + const l = (i % 360 + 360) % 360, b = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k = (1 - Math.abs(2 * E - 1)) * b, B = k * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k / 2; let J, de, ve; - return l >= 0 && l < 60 ? [J, de, ve] = [k2, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k2, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k2, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k2] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k2] : [J, de, ve] = [k2, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255]; + return l >= 0 && l < 60 ? [J, de, ve] = [k, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k] : [J, de, ve] = [k, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255]; } - function kr(n, e, t) { - const l = Se(n / 255, 0, 1), v = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k2 = Math.max(l, v, E), B = Math.min(l, v, E), Q = k2 - B; + function Ir(i, e, t) { + const l = Se(i / 255, 0, 1), b = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k = Math.max(l, b, E), B = Math.min(l, b, E), Q = k - B; let J; - Q === 0 ? J = 0 : k2 === l ? J = 60 * (((v - E) / Q % 6 + 6) % 6) : k2 === v ? J = 60 * ((E - l) / Q + 2) : J = 60 * ((l - v) / Q + 4); - const de = k2 === 0 ? 0 : Q / k2, ve = k2; + Q === 0 ? J = 0 : k === l ? J = 60 * (((b - E) / Q % 6 + 6) % 6) : k === b ? J = 60 * ((E - l) / Q + 2) : J = 60 * ((l - b) / Q + 4); + const de = k === 0 ? 0 : Q / k, ve = k; return [J, de * 100, ve * 100]; } - function Ms(n, e, t) { - const l = Qt(n, 360), v = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k2 = E * v, B = k2 * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k2; + function Ls(i, e, t) { + const l = Wt(i, 360), b = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k = E * b, B = k * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k; let J, de, ve; - return l >= 0 && l < 60 ? [J, de, ve] = [k2, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k2, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k2, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k2] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k2] : [J, de, ve] = [k2, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255]; + return l >= 0 && l < 60 ? [J, de, ve] = [k, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k] : [J, de, ve] = [k, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255]; } - function m(n, e, t) { + function m(i, e, t) { const l = t + e * (100 - Math.abs(2 * t - 100)) / 200; return [ - n, + i, l !== 0 ? e * (100 - Math.abs(2 * t - 100)) / l : 0, t + e * (100 - Math.abs(2 * t - 100)) / (2 * 100) ]; } - function o(n, e, t) { + function o(i, e, t) { const l = 100 - Math.abs(t * (200 - e) / 100 - 100); - return [n, l !== 0 ? e * t / l : 0, t * (200 - e) / (2 * 100)]; + return [i, l !== 0 ? e * t / l : 0, t * (200 - e) / (2 * 100)]; } - function p(n) { - return [n[0], n[1], n[2]]; + function u(i) { + return [i[0], i[1], i[2]]; } - function f(n, e) { - return [n[0], n[1], n[2], e]; + function f(i, e) { + return [i[0], i[1], i[2], e]; } const x = { hsl: { - hsl: (n, e, t) => [n, e, t], + hsl: (i, e, t) => [i, e, t], hsv: m, - rgb: Tr + rgb: Rr }, hsv: { hsl: o, - hsv: (n, e, t) => [n, e, t], - rgb: Ms + hsv: (i, e, t) => [i, e, t], + rgb: Ls }, rgb: { - hsl: Pr, - hsv: kr, - rgb: (n, e, t) => [n, e, t] + hsl: Ar, + hsv: Ir, + rgb: (i, e, t) => [i, e, t] } }; - function P(n, e) { + function T(i, e) { return [ - e === "float" ? 1 : n === "rgb" ? 255 : 360, - e === "float" ? 1 : n === "rgb" ? 255 : 100, - e === "float" ? 1 : n === "rgb" ? 255 : 100 + e === "float" ? 1 : i === "rgb" ? 255 : 360, + e === "float" ? 1 : i === "rgb" ? 255 : 100, + e === "float" ? 1 : i === "rgb" ? 255 : 100 ]; } - function L(n, e) { - return n === e ? e : Qt(n, e); + function A(i, e) { + return i === e ? e : Wt(i, e); } - function z(n, e, t) { + function z(i, e, t) { var l; - const v = P(e, t); + const b = T(e, t); return [ - e === "rgb" ? Se(n[0], 0, v[0]) : L(n[0], v[0]), - Se(n[1], 0, v[1]), - Se(n[2], 0, v[2]), - Se((l = n[3]) !== null && l !== void 0 ? l : 1, 0, 1) + e === "rgb" ? Se(i[0], 0, b[0]) : A(i[0], b[0]), + Se(i[1], 0, b[1]), + Se(i[2], 0, b[2]), + Se((l = i[3]) !== null && l !== void 0 ? l : 1, 0, 1) ]; } - function oe(n, e, t, l) { - const v = P(e, t), E = P(e, l); - return n.map((k2, B) => k2 / v[B] * E[B]); + function oe(i, e, t, l) { + const b = T(e, t), E = T(e, l); + return i.map((k, B) => k / b[B] * E[B]); } - function Qe(n, e, t) { - const l = oe(n, e.mode, e.type, "int"), v = x[e.mode][t.mode](...l); - return oe(v, t.mode, "int", t.type); + function Ze(i, e, t) { + const l = oe(i, e.mode, e.type, "int"), b = x[e.mode][t.mode](...l); + return oe(b, t.mode, "int", t.type); } - function Ze(n, e) { - return typeof n != "object" || _(n) ? false : e in n && typeof n[e] == "number"; + function We(i, e) { + return typeof i != "object" || _(i) ? false : e in i && typeof i[e] == "number"; } class te { static black(e = "int") { @@ -7956,10 +8032,10 @@ var Ch = { return e.toRgbaObject(t); } static isRgbColorObject(e) { - return Ze(e, "r") && Ze(e, "g") && Ze(e, "b"); + return We(e, "r") && We(e, "g") && We(e, "b"); } static isRgbaColorObject(e) { - return this.isRgbColorObject(e) && Ze(e, "a"); + return this.isRgbColorObject(e) && We(e, "a"); } static isColorObject(e) { return this.isRgbColorObject(e); @@ -7967,9 +8043,9 @@ var Ch = { static equals(e, t) { if (e.mode !== t.mode) return false; - const l = e.comps_, v = t.comps_; + const l = e.comps_, b = t.comps_; for (let E = 0; E < l.length; E++) - if (l[E] !== v[E]) + if (l[E] !== b[E]) return false; return true; } @@ -7977,7 +8053,7 @@ var Ch = { this.mode = t, this.type = l, this.comps_ = z(e, t, l); } getComponents(e, t = "int") { - return f(Qe(p(this.comps_), { mode: this.mode, type: this.type }, { mode: e ?? this.mode, type: t }), this.comps_[3]); + return f(Ze(u(this.comps_), { mode: this.mode, type: this.type }, { mode: e ?? this.mode, type: t }), this.comps_[3]); } toRgbaObject(e = "int") { const t = this.getComponents("rgb", e); @@ -7989,28 +8065,28 @@ var Ch = { }; } } - const Pt = D("colp"); - class Mr { + const Tt = D2("colp"); + class Vr { constructor(e, t) { - this.alphaViews_ = null, this.element = e.createElement("div"), this.element.classList.add(Pt()), t.viewProps.bindClassModifiers(this.element); + this.alphaViews_ = null, this.element = e.createElement("div"), this.element.classList.add(Tt()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("div"); - l.classList.add(Pt("hsv")); - const v = e.createElement("div"); - v.classList.add(Pt("sv")), this.svPaletteView_ = t.svPaletteView, v.appendChild(this.svPaletteView_.element), l.appendChild(v); + l.classList.add(Tt("hsv")); + const b = e.createElement("div"); + b.classList.add(Tt("sv")), this.svPaletteView_ = t.svPaletteView, b.appendChild(this.svPaletteView_.element), l.appendChild(b); const E = e.createElement("div"); - E.classList.add(Pt("h")), this.hPaletteView_ = t.hPaletteView, E.appendChild(this.hPaletteView_.element), l.appendChild(E), this.element.appendChild(l); - const k2 = e.createElement("div"); - if (k2.classList.add(Pt("rgb")), this.textView_ = t.textView, k2.appendChild(this.textView_.element), this.element.appendChild(k2), t.alphaViews) { + E.classList.add(Tt("h")), this.hPaletteView_ = t.hPaletteView, E.appendChild(this.hPaletteView_.element), l.appendChild(E), this.element.appendChild(l); + const k = e.createElement("div"); + if (k.classList.add(Tt("rgb")), this.textView_ = t.textView, k.appendChild(this.textView_.element), this.element.appendChild(k), t.alphaViews) { this.alphaViews_ = { palette: t.alphaViews.palette, text: t.alphaViews.text }; const B = e.createElement("div"); - B.classList.add(Pt("a")); + B.classList.add(Tt("a")); const Q = e.createElement("div"); - Q.classList.add(Pt("ap")), Q.appendChild(this.alphaViews_.palette.element), B.appendChild(Q); + Q.classList.add(Tt("ap")), Q.appendChild(this.alphaViews_.palette.element), B.appendChild(Q); const J = e.createElement("div"); - J.classList.add(Pt("at")), J.appendChild(this.alphaViews_.text.element), B.appendChild(J), this.element.appendChild(B); + J.classList.add(Tt("at")), J.appendChild(this.alphaViews_.text.element), B.appendChild(J), this.element.appendChild(B); } } get allFocusableElements() { @@ -8023,139 +8099,139 @@ var Ch = { return this.alphaViews_ && e.push(this.alphaViews_.palette.element, this.alphaViews_.text.inputElement), e; } } - function il(n) { - return n === "int" ? "int" : n === "float" ? "float" : void 0; + function ll(i) { + return i === "int" ? "int" : i === "float" ? "float" : void 0; } - function Sr(n) { + function Dr(i) { const e = M; - return le(n, { + return le(i, { alpha: e.optional.boolean, color: e.optional.object({ alpha: e.optional.boolean, - type: e.optional.custom(il) + type: e.optional.custom(ll) }), expanded: e.optional.boolean, - picker: e.optional.custom(Oi) + picker: e.optional.custom(Fi) }); } - function Tn(n) { - return n ? 0.1 : 1; + function Mn(i) { + return i ? 0.1 : 1; } - function kn(n) { + function Sn(i) { var e; - return (e = n.color) === null || e === void 0 ? void 0 : e.type; + return (e = i.color) === null || e === void 0 ? void 0 : e.type; } - function sl(n, e) { - return n.alpha === e.alpha && n.mode === e.mode && n.notation === e.notation && n.type === e.type; + function cl(i, e) { + return i.alpha === e.alpha && i.mode === e.mode && i.notation === e.notation && i.type === e.type; } - function ct(n, e) { - const t = n.match(/^(.+)%$/); - return Math.min(t ? parseFloat(t[1]) * 0.01 * e : parseFloat(n), e); + function ut(i, e) { + const t = i.match(/^(.+)%$/); + return Math.min(t ? parseFloat(t[1]) * 0.01 * e : parseFloat(i), e); } - const rl = { - deg: (n) => n, - grad: (n) => n * 360 / 400, - rad: (n) => n * 360 / (2 * Math.PI), - turn: (n) => n * 360 + const ul = { + deg: (i) => i, + grad: (i) => i * 360 / 400, + rad: (i) => i * 360 / (2 * Math.PI), + turn: (i) => i * 360 }; - function wo(n) { - const e = n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/); + function Co(i) { + const e = i.match(/^([0-9.]+?)(deg|grad|rad|turn)$/); if (!e) - return parseFloat(n); + return parseFloat(i); const t = parseFloat(e[1]), l = e[2]; - return rl[l](t); + return ul[l](t); } - function yo(n) { - const e = n.match(/^rgb\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); + function Po(i) { + const e = i.match(/^rgb\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); if (!e) return null; const t = [ - ct(e[1], 255), - ct(e[2], 255), - ct(e[3], 255) + ut(e[1], 255), + ut(e[2], 255), + ut(e[3], 255) ]; return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t; } - function xo(n) { + function To(i) { return (e) => { - const t = yo(e); - return t ? new te(t, "rgb", n) : null; + const t = Po(e); + return t ? new te(t, "rgb", i) : null; }; } - function Eo(n) { - const e = n.match(/^rgba\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); + function ko(i) { + const e = i.match(/^rgba\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); if (!e) return null; const t = [ - ct(e[1], 255), - ct(e[2], 255), - ct(e[3], 255), - ct(e[4], 1) + ut(e[1], 255), + ut(e[2], 255), + ut(e[3], 255), + ut(e[4], 1) ]; return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t; } - function Co(n) { + function Mo(i) { return (e) => { - const t = Eo(e); - return t ? new te(t, "rgb", n) : null; + const t = ko(e); + return t ? new te(t, "rgb", i) : null; }; } - function Po(n) { - const e = n.match(/^hsl\(\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); + function So(i) { + const e = i.match(/^hsl\(\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); if (!e) return null; const t = [ - wo(e[1]), - ct(e[2], 100), - ct(e[3], 100) + Co(e[1]), + ut(e[2], 100), + ut(e[3], 100) ]; return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t; } - function To(n) { + function Lo(i) { return (e) => { - const t = Po(e); - return t ? new te(t, "hsl", n) : null; + const t = So(e); + return t ? new te(t, "hsl", i) : null; }; } - function ko(n) { - const e = n.match(/^hsla\(\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); + function Ao(i) { + const e = i.match(/^hsla\(\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/); if (!e) return null; const t = [ - wo(e[1]), - ct(e[2], 100), - ct(e[3], 100), - ct(e[4], 1) + Co(e[1]), + ut(e[2], 100), + ut(e[3], 100), + ut(e[4], 1) ]; return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t; } - function Mo(n) { + function Ro(i) { return (e) => { - const t = ko(e); - return t ? new te(t, "hsl", n) : null; + const t = Ao(e); + return t ? new te(t, "hsl", i) : null; }; } - function So(n) { - const e = n.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/); + function Io(i) { + const e = i.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/); if (e) return [ parseInt(e[1] + e[1], 16), parseInt(e[2] + e[2], 16), parseInt(e[3] + e[3], 16) ]; - const t = n.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/); + const t = i.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/); return t ? [ parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16) ] : null; } - function ol(n) { - const e = So(n); + function pl(i) { + const e = Io(i); return e ? new te(e, "rgb", "int") : null; } - function Ao(n) { - const e = n.match(/^#?([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/); + function Vo(i) { + const e = i.match(/^#?([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/); if (e) return [ parseInt(e[1] + e[1], 16), @@ -8163,7 +8239,7 @@ var Ch = { parseInt(e[3] + e[3], 16), _e(parseInt(e[4] + e[4], 16), 0, 255, 0, 1) ]; - const t = n.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/); + const t = i.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/); return t ? [ parseInt(t[1], 16), parseInt(t[2], 16), @@ -8171,12 +8247,12 @@ var Ch = { _e(parseInt(t[4], 16), 0, 255, 0, 1) ] : null; } - function al(n) { - const e = Ao(n); + function hl(i) { + const e = Vo(i); return e ? new te(e, "rgb", "int") : null; } - function Lo(n) { - const e = n.match(/^\{\s*r\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*g\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*b\s*:\s*([0-9A-Fa-f.]+%?)\s*\}$/); + function Do(i) { + const e = i.match(/^\{\s*r\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*g\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*b\s*:\s*([0-9A-Fa-f.]+%?)\s*\}$/); if (!e) return null; const t = [ @@ -8186,14 +8262,14 @@ var Ch = { ]; return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t; } - function Ro(n) { + function Oo(i) { return (e) => { - const t = Lo(e); - return t ? new te(t, "rgb", n) : null; + const t = Do(e); + return t ? new te(t, "rgb", i) : null; }; } - function Io(n) { - const e = n.match(/^\{\s*r\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*g\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*b\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*a\s*:\s*([0-9A-Fa-f.]+%?)\s*\}$/); + function No(i) { + const e = i.match(/^\{\s*r\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*g\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*b\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*a\s*:\s*([0-9A-Fa-f.]+%?)\s*\}$/); if (!e) return null; const t = [ @@ -8204,15 +8280,15 @@ var Ch = { ]; return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t; } - function Vo(n) { + function Fo(i) { return (e) => { - const t = Io(e); - return t ? new te(t, "rgb", n) : null; + const t = No(e); + return t ? new te(t, "rgb", i) : null; }; } - const ll = [ + const dl = [ { - parser: So, + parser: Io, result: { alpha: false, mode: "rgb", @@ -8220,7 +8296,7 @@ var Ch = { } }, { - parser: Ao, + parser: Vo, result: { alpha: true, mode: "rgb", @@ -8228,7 +8304,7 @@ var Ch = { } }, { - parser: yo, + parser: Po, result: { alpha: false, mode: "rgb", @@ -8236,7 +8312,7 @@ var Ch = { } }, { - parser: Eo, + parser: ko, result: { alpha: true, mode: "rgb", @@ -8244,7 +8320,7 @@ var Ch = { } }, { - parser: Po, + parser: So, result: { alpha: false, mode: "hsl", @@ -8252,7 +8328,7 @@ var Ch = { } }, { - parser: ko, + parser: Ao, result: { alpha: true, mode: "hsl", @@ -8260,7 +8336,7 @@ var Ch = { } }, { - parser: Lo, + parser: Do, result: { alpha: false, mode: "rgb", @@ -8268,7 +8344,7 @@ var Ch = { } }, { - parser: Io, + parser: No, result: { alpha: true, mode: "rgb", @@ -8276,107 +8352,107 @@ var Ch = { } } ]; - function cl(n) { - return ll.reduce((e, { parser: t, result: l }) => e || (t(n) ? l : null), null); + function ml(i) { + return dl.reduce((e, { parser: t, result: l }) => e || (t(i) ? l : null), null); } - function Ar(n, e = "int") { - const t = cl(n); + function Or(i, e = "int") { + const t = ml(i); return t ? t.notation === "hex" && e !== "float" ? Object.assign(Object.assign({}, t), { type: "int" }) : t.notation === "func" ? Object.assign(Object.assign({}, t), { type: e }) : null : null; } - const Do = { + const Bo = { int: [ - ol, - al, - xo("int"), - Co("int"), + pl, + hl, To("int"), Mo("int"), + Lo("int"), Ro("int"), - Vo("int") + Oo("int"), + Fo("int") ], float: [ - xo("float"), - Co("float"), To("float"), Mo("float"), + Lo("float"), Ro("float"), - Vo("float") + Oo("float"), + Fo("float") ] }; - function pl(n) { - const e = Do[n]; + function fl(i) { + const e = Bo[i]; return (t) => { if (typeof t != "string") - return te.black(n); - const l = e.reduce((v, E) => v || E(t), null); - return l ?? te.black(n); + return te.black(i); + const l = e.reduce((b, E) => b || E(t), null); + return l ?? te.black(i); }; } - function Lr(n) { - const e = Do[n]; - return (t) => e.reduce((l, v) => l || v(t), null); + function Nr(i) { + const e = Bo[i]; + return (t) => e.reduce((l, b) => l || b(t), null); } - function Oo(n) { - const e = Se(Math.floor(n), 0, 255).toString(16); + function jo(i) { + const e = Se(Math.floor(i), 0, 255).toString(16); return e.length === 1 ? `0${e}` : e; } - function No(n, e = "#") { - const t = p(n.getComponents("rgb")).map(Oo).join(""); + function zo(i, e = "#") { + const t = u(i.getComponents("rgb")).map(jo).join(""); return `${e}${t}`; } - function Rr(n, e = "#") { - const t = n.getComponents("rgb"), l = [t[0], t[1], t[2], t[3] * 255].map(Oo).join(""); + function Fr(i, e = "#") { + const t = i.getComponents("rgb"), l = [t[0], t[1], t[2], t[3] * 255].map(jo).join(""); return `${e}${l}`; } - function Fo(n, e) { - const t = Re(e === "float" ? 2 : 0); - return `rgb(${p(n.getComponents("rgb", e)).map((v) => t(v)).join(", ")})`; + function Uo(i, e) { + const t = Ie(e === "float" ? 2 : 0); + return `rgb(${u(i.getComponents("rgb", e)).map((b) => t(b)).join(", ")})`; } - function ul(n) { - return (e) => Fo(e, n); + function vl(i) { + return (e) => Uo(e, i); } - function Ss(n, e) { - const t = Re(2), l = Re(e === "float" ? 2 : 0); - return `rgba(${n.getComponents("rgb", e).map((E, k2) => (k2 === 3 ? t : l)(E)).join(", ")})`; + function As(i, e) { + const t = Ie(2), l = Ie(e === "float" ? 2 : 0); + return `rgba(${i.getComponents("rgb", e).map((E, k) => (k === 3 ? t : l)(E)).join(", ")})`; } - function hl(n) { - return (e) => Ss(e, n); + function bl(i) { + return (e) => As(e, i); } - function dl(n) { + function gl(i) { const e = [ - Re(0), - _n, - _n + Ie(0), + yn, + yn ]; - return `hsl(${p(n.getComponents("hsl")).map((l, v) => e[v](l)).join(", ")})`; + return `hsl(${u(i.getComponents("hsl")).map((l, b) => e[b](l)).join(", ")})`; } - function ml(n) { + function _l(i) { const e = [ - Re(0), - _n, - _n, - Re(2) + Ie(0), + yn, + yn, + Ie(2) ]; - return `hsla(${n.getComponents("hsl").map((l, v) => e[v](l)).join(", ")})`; + return `hsla(${i.getComponents("hsl").map((l, b) => e[b](l)).join(", ")})`; } - function Bo(n, e) { - const t = Re(e === "float" ? 2 : 0), l = ["r", "g", "b"]; - return `{${p(n.getComponents("rgb", e)).map((E, k2) => `${l[k2]}: ${t(E)}`).join(", ")}}`; + function Go(i, e) { + const t = Ie(e === "float" ? 2 : 0), l = ["r", "g", "b"]; + return `{${u(i.getComponents("rgb", e)).map((E, k) => `${l[k]}: ${t(E)}`).join(", ")}}`; } - function fl(n) { - return (e) => Bo(e, n); + function wl(i) { + return (e) => Go(e, i); } - function jo(n, e) { - const t = Re(2), l = Re(e === "float" ? 2 : 0), v = ["r", "g", "b", "a"]; - return `{${n.getComponents("rgb", e).map((k2, B) => { + function Ho(i, e) { + const t = Ie(2), l = Ie(e === "float" ? 2 : 0), b = ["r", "g", "b", "a"]; + return `{${i.getComponents("rgb", e).map((k, B) => { const Q = B === 3 ? t : l; - return `${v[B]}: ${Q(k2)}`; + return `${b[B]}: ${Q(k)}`; }).join(", ")}}`; } - function vl(n) { - return (e) => jo(e, n); + function yl(i) { + return (e) => Ho(e, i); } - const bl = [ + const xl = [ { format: { alpha: false, @@ -8384,7 +8460,7 @@ var Ch = { notation: "hex", type: "int" }, - stringifier: No + stringifier: zo }, { format: { @@ -8393,7 +8469,7 @@ var Ch = { notation: "hex", type: "int" }, - stringifier: Rr + stringifier: Fr }, { format: { @@ -8402,7 +8478,7 @@ var Ch = { notation: "func", type: "int" }, - stringifier: dl + stringifier: gl }, { format: { @@ -8411,10 +8487,10 @@ var Ch = { notation: "func", type: "int" }, - stringifier: ml + stringifier: _l }, - ...["int", "float"].reduce((n, e) => [ - ...n, + ...["int", "float"].reduce((i, e) => [ + ...i, { format: { alpha: false, @@ -8422,7 +8498,7 @@ var Ch = { notation: "func", type: e }, - stringifier: ul(e) + stringifier: vl(e) }, { format: { @@ -8431,7 +8507,7 @@ var Ch = { notation: "func", type: e }, - stringifier: hl(e) + stringifier: bl(e) }, { format: { @@ -8440,7 +8516,7 @@ var Ch = { notation: "object", type: e }, - stringifier: fl(e) + stringifier: wl(e) }, { format: { @@ -8449,52 +8525,52 @@ var Ch = { notation: "object", type: e }, - stringifier: vl(e) + stringifier: yl(e) } ], []) ]; - function Ir(n) { - return bl.reduce((e, t) => e || (sl(t.format, n) ? t.stringifier : null), null); + function Br(i) { + return xl.reduce((e, t) => e || (cl(t.format, i) ? t.stringifier : null), null); } - const Bi = D("apl"); - class gl { + const zi = D2("apl"); + class El { constructor(e, t) { - this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on("change", this.onValueChange_), this.element = e.createElement("div"), this.element.classList.add(Bi()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element); + this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on("change", this.onValueChange_), this.element = e.createElement("div"), this.element.classList.add(zi()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element); const l = e.createElement("div"); - l.classList.add(Bi("b")), this.element.appendChild(l); - const v = e.createElement("div"); - v.classList.add(Bi("c")), l.appendChild(v), this.colorElem_ = v; + l.classList.add(zi("b")), this.element.appendChild(l); + const b = e.createElement("div"); + b.classList.add(zi("c")), l.appendChild(b), this.colorElem_ = b; const E = e.createElement("div"); - E.classList.add(Bi("m")), this.element.appendChild(E), this.markerElem_ = E; - const k2 = e.createElement("div"); - k2.classList.add(Bi("p")), this.markerElem_.appendChild(k2), this.previewElem_ = k2, this.update_(); + E.classList.add(zi("m")), this.element.appendChild(E), this.markerElem_ = E; + const k = e.createElement("div"); + k.classList.add(zi("p")), this.markerElem_.appendChild(k), this.previewElem_ = k, this.update_(); } update_() { - const e = this.value.rawValue, t = e.getComponents("rgb"), l = new te([t[0], t[1], t[2], 0], "rgb"), v = new te([t[0], t[1], t[2], 255], "rgb"), E = [ + const e = this.value.rawValue, t = e.getComponents("rgb"), l = new te([t[0], t[1], t[2], 0], "rgb"), b = new te([t[0], t[1], t[2], 255], "rgb"), E = [ "to right", - Ss(l), - Ss(v) + As(l), + As(b) ]; - this.colorElem_.style.background = `linear-gradient(${E.join(",")})`, this.previewElem_.style.backgroundColor = Ss(e); - const k2 = _e(t[3], 0, 1, 0, 100); - this.markerElem_.style.left = `${k2}%`; + this.colorElem_.style.background = `linear-gradient(${E.join(",")})`, this.previewElem_.style.backgroundColor = As(e); + const k = _e(t[3], 0, 1, 0, 100); + this.markerElem_.style.left = `${k}%`; } onValueChange_() { this.update_(); } } - class _l { + class Cl { constructor(e, t) { - this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new gl(e, { + this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new El(e, { value: this.value, viewProps: this.viewProps - }), this.ptHandler_ = new It(this.view.element), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_); + }), this.ptHandler_ = new Vt(this.view.element), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_); } handlePointerEvent_(e, t) { if (!e.point) return; - const l = e.point.x / e.bounds.width, v = this.value.rawValue, [E, k2, B] = v.getComponents("hsv"); - this.value.setRawValue(new te([E, k2, B, l], "hsv"), t); + const l = e.point.x / e.bounds.width, b = this.value.rawValue, [E, k, B] = b.getComponents("hsv"); + this.value.setRawValue(new te([E, k, B, l], "hsv"), t); } onPointerDown_(e) { this.handlePointerEvent_(e.data, { @@ -8515,44 +8591,44 @@ var Ch = { }); } onKeyDown_(e) { - const t = Oe(Tn(true), lt(e)); + const t = Oe(Mn(true), ct(e)); if (t === 0) return; - const l = this.value.rawValue, [v, E, k2, B] = l.getComponents("hsv"); - this.value.setRawValue(new te([v, E, k2, B + t], "hsv"), { + const l = this.value.rawValue, [b, E, k, B] = l.getComponents("hsv"); + this.value.setRawValue(new te([b, E, k, B + t], "hsv"), { forceEmit: false, last: false }); } onKeyUp_(e) { - Oe(Tn(true), lt(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { + Oe(Mn(true), ct(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); } } - const ii = D("coltxt"); - function wl(n) { - const e = n.createElement("select"), t = [ + const si = D2("coltxt"); + function Pl(i) { + const e = i.createElement("select"), t = [ { text: "RGB", value: "rgb" }, { text: "HSL", value: "hsl" }, { text: "HSV", value: "hsv" } ]; - return e.appendChild(t.reduce((l, v) => { - const E = n.createElement("option"); - return E.textContent = v.text, E.value = v.value, l.appendChild(E), l; - }, n.createDocumentFragment())), e; + return e.appendChild(t.reduce((l, b) => { + const E = i.createElement("option"); + return E.textContent = b.text, E.value = b.value, l.appendChild(E), l; + }, i.createDocumentFragment())), e; } - class yl { + class Tl { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(ii()), t.viewProps.bindClassModifiers(this.element); + this.element = e.createElement("div"), this.element.classList.add(si()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("div"); - l.classList.add(ii("m")), this.modeElem_ = wl(e), this.modeElem_.classList.add(ii("ms")), l.appendChild(this.modeSelectElement), t.viewProps.bindDisabled(this.modeElem_); - const v = e.createElement("div"); - v.classList.add(ii("mm")), v.appendChild(yt(e, "dropdown")), l.appendChild(v), this.element.appendChild(l); + l.classList.add(si("m")), this.modeElem_ = Pl(e), this.modeElem_.classList.add(si("ms")), l.appendChild(this.modeSelectElement), t.viewProps.bindDisabled(this.modeElem_); + const b = e.createElement("div"); + b.classList.add(si("mm")), b.appendChild(xt(e, "dropdown")), l.appendChild(b), this.element.appendChild(l); const E = e.createElement("div"); - E.classList.add(ii("w")), this.element.appendChild(E), this.textsElem_ = E, this.textViews_ = t.textViews, this.applyTextViews_(), N(t.colorMode, (k2) => { - this.modeElem_.value = k2; + E.classList.add(si("w")), this.element.appendChild(E), this.textsElem_ = E, this.textViews_ = t.textViews, this.applyTextViews_(), N(t.colorMode, (k) => { + this.modeElem_.value = k; }); } get modeSelectElement() { @@ -8565,42 +8641,42 @@ var Ch = { this.textViews_ = e, this.applyTextViews_(); } applyTextViews_() { - cn(this.textsElem_); + pn(this.textsElem_); const e = this.element.ownerDocument; this.textViews_.forEach((t) => { const l = e.createElement("div"); - l.classList.add(ii("c")), l.appendChild(t.element), this.textsElem_.appendChild(l); + l.classList.add(si("c")), l.appendChild(t.element), this.textsElem_.appendChild(l); }); } } - function xl(n) { - return Re(n === "float" ? 2 : 0); + function kl(i) { + return Ie(i === "float" ? 2 : 0); } - function El(n, e, t) { - const l = P(n, e)[t]; - return new Xt({ + function Ml(i, e, t) { + const l = T(i, e)[t]; + return new qt({ min: 0, max: l }); } - function Vr(n, e, t) { - return new yn(n, { + function jr(i, e, t) { + return new En(i, { arrayPosition: t === 0 ? "fst" : t === 3 - 1 ? "lst" : "mid", - baseStep: Tn(false), + baseStep: Mn(false), parser: e.parser, props: X.fromObject({ draggingScale: e.colorType === "float" ? 0.01 : 1, - formatter: xl(e.colorType) + formatter: kl(e.colorType) }), value: ee(0, { - constraint: El(e.colorMode, e.colorType, t) + constraint: Ml(e.colorMode, e.colorType, t) }), viewProps: e.viewProps }); } - class Cl { + class Sl { constructor(e, t) { - this.onModeSelectChange_ = this.onModeSelectChange_.bind(this), this.colorType_ = t.colorType, this.parser_ = t.parser, this.value = t.value, this.viewProps = t.viewProps, this.colorMode = ee(this.value.rawValue.mode), this.ccs_ = this.createComponentControllers_(e), this.view = new yl(e, { + this.onModeSelectChange_ = this.onModeSelectChange_.bind(this), this.colorType_ = t.colorType, this.parser_ = t.parser, this.value = t.value, this.viewProps = t.viewProps, this.colorMode = ee(this.value.rawValue.mode), this.ccs_ = this.createComponentControllers_(e), this.view = new Tl(e, { colorMode: this.colorMode, textViews: [this.ccs_[0].view, this.ccs_[1].view, this.ccs_[2].view], viewProps: this.viewProps @@ -8613,18 +8689,18 @@ var Ch = { parser: this.parser_, viewProps: this.viewProps }, l = [ - Vr(e, t, 0), - Vr(e, t, 1), - Vr(e, t, 2) + jr(e, t, 0), + jr(e, t, 1), + jr(e, t, 2) ]; - return l.forEach((v, E) => { - qt({ + return l.forEach((b, E) => { + Zt({ primary: this.value, - secondary: v.value, - forward: (k2) => k2.rawValue.getComponents(this.colorMode.rawValue, this.colorType_)[E], - backward: (k2, B) => { - const Q = this.colorMode.rawValue, J = k2.rawValue.getComponents(Q, this.colorType_); - return J[E] = B.rawValue, new te(f(p(J), J[3]), Q, this.colorType_); + secondary: b.value, + forward: (k) => k.rawValue.getComponents(this.colorMode.rawValue, this.colorType_)[E], + backward: (k, B) => { + const Q = this.colorMode.rawValue, J = k.rawValue.getComponents(Q, this.colorType_); + return J[E] = B.rawValue, new te(f(u(J), J[3]), Q, this.colorType_); } }); }), l; @@ -8638,18 +8714,18 @@ var Ch = { ]; } } - const Dr = D("hpl"); - class Pl { + const zr = D2("hpl"); + class Ll { constructor(e, t) { - this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on("change", this.onValueChange_), this.element = e.createElement("div"), this.element.classList.add(Dr()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element); + this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on("change", this.onValueChange_), this.element = e.createElement("div"), this.element.classList.add(zr()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element); const l = e.createElement("div"); - l.classList.add(Dr("c")), this.element.appendChild(l); - const v = e.createElement("div"); - v.classList.add(Dr("m")), this.element.appendChild(v), this.markerElem_ = v, this.update_(); + l.classList.add(zr("c")), this.element.appendChild(l); + const b = e.createElement("div"); + b.classList.add(zr("m")), this.element.appendChild(b), this.markerElem_ = b, this.update_(); } update_() { const e = this.value.rawValue, [t] = e.getComponents("hsv"); - this.markerElem_.style.backgroundColor = Fo(new te([t, 100, 100], "hsv")); + this.markerElem_.style.backgroundColor = Uo(new te([t, 100, 100], "hsv")); const l = _e(t, 0, 360, 0, 100); this.markerElem_.style.left = `${l}%`; } @@ -8657,18 +8733,18 @@ var Ch = { this.update_(); } } - class Tl { + class Al { constructor(e, t) { - this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Pl(e, { + this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Ll(e, { value: this.value, viewProps: this.viewProps - }), this.ptHandler_ = new It(this.view.element), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_); + }), this.ptHandler_ = new Vt(this.view.element), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_); } handlePointerEvent_(e, t) { if (!e.point) return; - const l = _e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, 0, 360), v = this.value.rawValue, [, E, k2, B] = v.getComponents("hsv"); - this.value.setRawValue(new te([l, E, k2, B], "hsv"), t); + const l = _e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, 0, 360), b = this.value.rawValue, [, E, k, B] = b.getComponents("hsv"); + this.value.setRawValue(new te([l, E, k, B], "hsv"), t); } onPointerDown_(e) { this.handlePointerEvent_(e.data, { @@ -8689,42 +8765,42 @@ var Ch = { }); } onKeyDown_(e) { - const t = Oe(Tn(false), lt(e)); + const t = Oe(Mn(false), ct(e)); if (t === 0) return; - const l = this.value.rawValue, [v, E, k2, B] = l.getComponents("hsv"); - this.value.setRawValue(new te([v + t, E, k2, B], "hsv"), { + const l = this.value.rawValue, [b, E, k, B] = l.getComponents("hsv"); + this.value.setRawValue(new te([b + t, E, k, B], "hsv"), { forceEmit: false, last: false }); } onKeyUp_(e) { - Oe(Tn(false), lt(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { + Oe(Mn(false), ct(e)) !== 0 && this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); } } - const Or = D("svp"), zo = 64; - class kl { + const Ur = D2("svp"), Ko = 64; + class Rl { constructor(e, t) { - this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on("change", this.onValueChange_), this.element = e.createElement("div"), this.element.classList.add(Or()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element); + this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on("change", this.onValueChange_), this.element = e.createElement("div"), this.element.classList.add(Ur()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element); const l = e.createElement("canvas"); - l.height = zo, l.width = zo, l.classList.add(Or("c")), this.element.appendChild(l), this.canvasElement = l; - const v = e.createElement("div"); - v.classList.add(Or("m")), this.element.appendChild(v), this.markerElem_ = v, this.update_(); + l.height = Ko, l.width = Ko, l.classList.add(Ur("c")), this.element.appendChild(l), this.canvasElement = l; + const b = e.createElement("div"); + b.classList.add(Ur("m")), this.element.appendChild(b), this.markerElem_ = b, this.update_(); } update_() { - const e = Un(this.canvasElement); + const e = Gn(this.canvasElement); if (!e) return; - const l = this.value.rawValue.getComponents("hsv"), v = this.canvasElement.width, E = this.canvasElement.height, k2 = e.getImageData(0, 0, v, E), B = k2.data; + const l = this.value.rawValue.getComponents("hsv"), b = this.canvasElement.width, E = this.canvasElement.height, k = e.getImageData(0, 0, b, E), B = k.data; for (let de = 0; de < E; de++) - for (let ve = 0; ve < v; ve++) { - const Mn = _e(ve, 0, v, 0, 100), zi = _e(de, 0, E, 100, 0), Ui = Ms(l[0], Mn, zi), As = (de * v + ve) * 4; - B[As] = Ui[0], B[As + 1] = Ui[1], B[As + 2] = Ui[2], B[As + 3] = 255; + for (let ve = 0; ve < b; ve++) { + const Ln = _e(ve, 0, b, 0, 100), Gi = _e(de, 0, E, 100, 0), Hi = Ls(l[0], Ln, Gi), Rs = (de * b + ve) * 4; + B[Rs] = Hi[0], B[Rs + 1] = Hi[1], B[Rs + 2] = Hi[2], B[Rs + 3] = 255; } - e.putImageData(k2, 0, 0); + e.putImageData(k, 0, 0); const Q = _e(l[1], 0, 100, 0, 100); this.markerElem_.style.left = `${Q}%`; const J = _e(l[2], 0, 100, 100, 0); @@ -8734,18 +8810,18 @@ var Ch = { this.update_(); } } - class Ml { + class Il { constructor(e, t) { - this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new kl(e, { + this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Rl(e, { value: this.value, viewProps: this.viewProps - }), this.ptHandler_ = new It(this.view.element), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_); + }), this.ptHandler_ = new Vt(this.view.element), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_); } handlePointerEvent_(e, t) { if (!e.point) return; - const l = _e(e.point.x, 0, e.bounds.width, 0, 100), v = _e(e.point.y, 0, e.bounds.height, 100, 0), [E, , , k2] = this.value.rawValue.getComponents("hsv"); - this.value.setRawValue(new te([E, l, v, k2], "hsv"), t); + const l = _e(e.point.x, 0, e.bounds.width, 0, 100), b = _e(e.point.y, 0, e.bounds.height, 100, 0), [E, , , k] = this.value.rawValue.getComponents("hsv"); + this.value.setRawValue(new te([E, l, b, k], "hsv"), t); } onPointerDown_(e) { this.handlePointerEvent_(e.data, { @@ -8766,60 +8842,60 @@ var Ch = { }); } onKeyDown_(e) { - Jn(e.key) && e.preventDefault(); - const [t, l, v, E] = this.value.rawValue.getComponents("hsv"), k2 = Tn(false), B = Oe(k2, lt(e)), Q = Oe(k2, wn(e)); - B === 0 && Q === 0 || this.value.setRawValue(new te([t, l + B, v + Q, E], "hsv"), { + ei(e.key) && e.preventDefault(); + const [t, l, b, E] = this.value.rawValue.getComponents("hsv"), k = Mn(false), B = Oe(k, ct(e)), Q = Oe(k, xn(e)); + B === 0 && Q === 0 || this.value.setRawValue(new te([t, l + B, b + Q, E], "hsv"), { forceEmit: false, last: false }); } onKeyUp_(e) { - const t = Tn(false), l = Oe(t, lt(e)), v = Oe(t, wn(e)); - l === 0 && v === 0 || this.value.setRawValue(this.value.rawValue, { + const t = Mn(false), l = Oe(t, ct(e)), b = Oe(t, xn(e)); + l === 0 && b === 0 || this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); } } - class Sl { + class Vl { constructor(e, t) { - this.value = t.value, this.viewProps = t.viewProps, this.hPaletteC_ = new Tl(e, { + this.value = t.value, this.viewProps = t.viewProps, this.hPaletteC_ = new Al(e, { value: this.value, viewProps: this.viewProps - }), this.svPaletteC_ = new Ml(e, { + }), this.svPaletteC_ = new Il(e, { value: this.value, viewProps: this.viewProps }), this.alphaIcs_ = t.supportsAlpha ? { - palette: new _l(e, { + palette: new Cl(e, { value: this.value, viewProps: this.viewProps }), - text: new yn(e, { - parser: at, + text: new En(e, { + parser: lt, baseStep: 0.1, props: X.fromObject({ draggingScale: 0.01, - formatter: Re(2) + formatter: Ie(2) }), value: ee(0, { - constraint: new Xt({ min: 0, max: 1 }) + constraint: new qt({ min: 0, max: 1 }) }), viewProps: this.viewProps }) - } : null, this.alphaIcs_ && qt({ + } : null, this.alphaIcs_ && Zt({ primary: this.value, secondary: this.alphaIcs_.text.value, forward: (l) => l.rawValue.getComponents()[3], - backward: (l, v) => { + backward: (l, b) => { const E = l.rawValue.getComponents(); - return E[3] = v.rawValue, new te(E, l.rawValue.mode); + return E[3] = b.rawValue, new te(E, l.rawValue.mode); } - }), this.textC_ = new Cl(e, { + }), this.textC_ = new Sl(e, { colorType: t.colorType, - parser: at, + parser: lt, value: this.value, viewProps: this.viewProps - }), this.view = new Mr(e, { + }), this.view = new Vr(e, { alphaViews: this.alphaIcs_ ? { palette: this.alphaIcs_.palette.view, text: this.alphaIcs_.text.view @@ -8835,64 +8911,64 @@ var Ch = { return this.textC_; } } - const Nr = D("colsw"); - class Al { + const Gr = D2("colsw"); + class Dl { constructor(e, t) { - this.onValueChange_ = this.onValueChange_.bind(this), t.value.emitter.on("change", this.onValueChange_), this.value = t.value, this.element = e.createElement("div"), this.element.classList.add(Nr()), t.viewProps.bindClassModifiers(this.element); + this.onValueChange_ = this.onValueChange_.bind(this), t.value.emitter.on("change", this.onValueChange_), this.value = t.value, this.element = e.createElement("div"), this.element.classList.add(Gr()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("div"); - l.classList.add(Nr("sw")), this.element.appendChild(l), this.swatchElem_ = l; - const v = e.createElement("button"); - v.classList.add(Nr("b")), t.viewProps.bindDisabled(v), this.element.appendChild(v), this.buttonElement = v, this.update_(); + l.classList.add(Gr("sw")), this.element.appendChild(l), this.swatchElem_ = l; + const b = e.createElement("button"); + b.classList.add(Gr("b")), t.viewProps.bindDisabled(b), this.element.appendChild(b), this.buttonElement = b, this.update_(); } update_() { const e = this.value.rawValue; - this.swatchElem_.style.backgroundColor = Rr(e); + this.swatchElem_.style.backgroundColor = Fr(e); } onValueChange_() { this.update_(); } } - class Ll { + class Ol { constructor(e, t) { - this.value = t.value, this.viewProps = t.viewProps, this.view = new Al(e, { + this.value = t.value, this.viewProps = t.viewProps, this.view = new Dl(e, { value: this.value, viewProps: this.viewProps }); } } - class Fr { + class Hr { constructor(e, t) { - this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.swatchC_ = new Ll(e, { + this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.swatchC_ = new Ol(e, { value: this.value, viewProps: this.viewProps }); const l = this.swatchC_.view.buttonElement; - l.addEventListener("blur", this.onButtonBlur_), l.addEventListener("click", this.onButtonClick_), this.textC_ = new Zn(e, { + l.addEventListener("blur", this.onButtonBlur_), l.addEventListener("click", this.onButtonClick_), this.textC_ = new Wn(e, { parser: t.parser, props: X.fromObject({ formatter: t.formatter }), value: this.value, viewProps: this.viewProps - }), this.view = new Fi(e, { + }), this.view = new ji(e, { foldable: this.foldable_, pickerLayout: t.pickerLayout - }), this.view.swatchElement.appendChild(this.swatchC_.view.element), this.view.textElement.appendChild(this.textC_.view.element), this.popC_ = t.pickerLayout === "popup" ? new hs(e, { + }), this.view.swatchElement.appendChild(this.swatchC_.view.element), this.view.textElement.appendChild(this.textC_.view.element), this.popC_ = t.pickerLayout === "popup" ? new ms(e, { viewProps: this.viewProps }) : null; - const v = new Sl(e, { + const b = new Vl(e, { colorType: t.colorType, supportsAlpha: t.supportsAlpha, value: this.value, viewProps: this.viewProps }); - v.view.allFocusableElements.forEach((E) => { + b.view.allFocusableElements.forEach((E) => { E.addEventListener("blur", this.onPopupChildBlur_), E.addEventListener("keydown", this.onPopupChildKeydown_); - }), this.pickerC_ = v, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(v.view.element), qt({ + }), this.pickerC_ = b, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(b.view.element), Zt({ primary: this.foldable_.value("expanded"), secondary: this.popC_.shows, forward: (E) => E.rawValue, - backward: (E, k2) => k2.rawValue + backward: (E, k) => k.rawValue })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Ue(this.foldable_, this.view.pickerElement)); } get textController() { @@ -8910,222 +8986,222 @@ var Ch = { onPopupChildBlur_(e) { if (!this.popC_) return; - const t = this.popC_.view.element, l = xt(e); - l && t.contains(l) || l && l === this.swatchC_.view.buttonElement && !mt(t.ownerDocument) || (this.popC_.shows.rawValue = false); + const t = this.popC_.view.element, l = Et2(e); + l && t.contains(l) || l && l === this.swatchC_.view.buttonElement && !ft(t.ownerDocument) || (this.popC_.shows.rawValue = false); } onPopupChildKeydown_(e) { this.popC_ ? e.key === "Escape" && (this.popC_.shows.rawValue = false) : this.view.pickerElement && e.key === "Escape" && this.swatchC_.view.buttonElement.focus(); } } - function Rl(n, e) { - return te.isColorObject(n) ? te.fromObject(n, e) : te.black(e); + function Nl(i, e) { + return te.isColorObject(i) ? te.fromObject(i, e) : te.black(e); } - function Il(n) { - return p(n.getComponents("rgb")).reduce((e, t) => e << 8 | Math.floor(t) & 255, 0); + function Fl(i) { + return u(i.getComponents("rgb")).reduce((e, t) => e << 8 | Math.floor(t) & 255, 0); } - function Vl(n) { - return n.getComponents("rgb").reduce((e, t, l) => { - const v = Math.floor(l === 3 ? t * 255 : t) & 255; - return e << 8 | v; + function Bl(i) { + return i.getComponents("rgb").reduce((e, t, l) => { + const b = Math.floor(l === 3 ? t * 255 : t) & 255; + return e << 8 | b; }, 0) >>> 0; } - function Dl(n) { - return new te([n >> 16 & 255, n >> 8 & 255, n & 255], "rgb"); + function jl(i) { + return new te([i >> 16 & 255, i >> 8 & 255, i & 255], "rgb"); } - function Ol(n) { + function zl(i) { return new te([ - n >> 24 & 255, - n >> 16 & 255, - n >> 8 & 255, - _e(n & 255, 0, 255, 0, 1) + i >> 24 & 255, + i >> 16 & 255, + i >> 8 & 255, + _e(i & 255, 0, 255, 0, 1) ], "rgb"); } - function Nl(n) { - return typeof n != "number" ? te.black() : Dl(n); + function Ul(i) { + return typeof i != "number" ? te.black() : jl(i); } - function Fl(n) { - return typeof n != "number" ? te.black() : Ol(n); + function Gl(i) { + return typeof i != "number" ? te.black() : zl(i); } - function Bl(n) { - const e = Ir(n); + function Hl(i) { + const e = Br(i); return e ? (t, l) => { - tt(t, e(l)); + nt(t, e(l)); } : null; } - function jl(n) { - const e = n ? Vl : Il; + function Kl(i) { + const e = i ? Bl : Fl; return (t, l) => { - tt(t, e(l)); + nt(t, e(l)); }; } - function zl(n, e, t) { + function $l(i, e, t) { const l = e.toRgbaObject(t); - n.writeProperty("r", l.r), n.writeProperty("g", l.g), n.writeProperty("b", l.b), n.writeProperty("a", l.a); + i.writeProperty("r", l.r), i.writeProperty("g", l.g), i.writeProperty("b", l.b), i.writeProperty("a", l.a); } - function Ul(n, e, t) { + function Xl(i, e, t) { const l = e.toRgbaObject(t); - n.writeProperty("r", l.r), n.writeProperty("g", l.g), n.writeProperty("b", l.b); + i.writeProperty("r", l.r), i.writeProperty("g", l.g), i.writeProperty("b", l.b); } - function Gl(n, e) { + function Yl(i, e) { return (t, l) => { - n ? zl(t, l, e) : Ul(t, l, e); + i ? $l(t, l, e) : Xl(t, l, e); }; } - function Br(n) { + function Kr(i) { var e; - return !!(n != null && n.alpha || !((e = n == null ? void 0 : n.color) === null || e === void 0) && e.alpha); + return !!(i != null && i.alpha || !((e = i == null ? void 0 : i.color) === null || e === void 0) && e.alpha); } - function Hl(n) { - return n ? (e) => Rr(e, "0x") : (e) => No(e, "0x"); + function ql(i) { + return i ? (e) => Fr(e, "0x") : (e) => zo(e, "0x"); } - function Kl(n) { - return "color" in n || "view" in n && n.view === "color"; + function Ql(i) { + return "color" in i || "view" in i && i.view === "color"; } - const $l = { + const Zl = { id: "input-color-number", type: "input", - accept: (n, e) => { - if (typeof n != "number" || !Kl(e)) + accept: (i, e) => { + if (typeof i != "number" || !Ql(e)) return null; - const t = Sr(e); + const t = Dr(e); return t ? { - initialValue: n, + initialValue: i, params: t } : null; }, binding: { - reader: (n) => Br(n.params) ? Fl : Nl, + reader: (i) => Kr(i.params) ? Gl : Ul, equals: te.equals, - writer: (n) => jl(Br(n.params)) + writer: (i) => Kl(Kr(i.params)) }, - controller: (n) => { - const e = Br(n.params), t = "expanded" in n.params ? n.params.expanded : void 0, l = "picker" in n.params ? n.params.picker : void 0; - return new Fr(n.document, { + controller: (i) => { + const e = Kr(i.params), t = "expanded" in i.params ? i.params.expanded : void 0, l = "picker" in i.params ? i.params.picker : void 0; + return new Hr(i.document, { colorType: "int", expanded: t ?? false, - formatter: Hl(e), - parser: Lr("int"), + formatter: ql(e), + parser: Nr("int"), pickerLayout: l ?? "popup", supportsAlpha: e, - value: n.value, - viewProps: n.viewProps + value: i.value, + viewProps: i.viewProps }); } }; - function Xl(n) { - return te.isRgbaColorObject(n); + function Wl(i) { + return te.isRgbaColorObject(i); } - function Yl(n) { - return (e) => Rl(e, n); + function Jl(i) { + return (e) => Nl(e, i); } - function ql(n, e) { - return (t) => n ? jo(t, e) : Bo(t, e); + function ec(i, e) { + return (t) => i ? Ho(t, e) : Go(t, e); } - const Ql = { + const tc = { id: "input-color-object", type: "input", - accept: (n, e) => { - if (!te.isColorObject(n)) + accept: (i, e) => { + if (!te.isColorObject(i)) return null; - const t = Sr(e); + const t = Dr(e); return t ? { - initialValue: n, + initialValue: i, params: t } : null; }, binding: { - reader: (n) => Yl(kn(n.params)), + reader: (i) => Jl(Sn(i.params)), equals: te.equals, - writer: (n) => Gl(Xl(n.initialValue), kn(n.params)) + writer: (i) => Yl(Wl(i.initialValue), Sn(i.params)) }, - controller: (n) => { + controller: (i) => { var e; - const t = te.isRgbaColorObject(n.initialValue), l = "expanded" in n.params ? n.params.expanded : void 0, v = "picker" in n.params ? n.params.picker : void 0, E = (e = kn(n.params)) !== null && e !== void 0 ? e : "int"; - return new Fr(n.document, { + const t = te.isRgbaColorObject(i.initialValue), l = "expanded" in i.params ? i.params.expanded : void 0, b = "picker" in i.params ? i.params.picker : void 0, E = (e = Sn(i.params)) !== null && e !== void 0 ? e : "int"; + return new Hr(i.document, { colorType: E, expanded: l ?? false, - formatter: ql(t, E), - parser: Lr(E), - pickerLayout: v ?? "popup", + formatter: ec(t, E), + parser: Nr(E), + pickerLayout: b ?? "popup", supportsAlpha: t, - value: n.value, - viewProps: n.viewProps + value: i.value, + viewProps: i.viewProps }); } - }, Zl = { + }, nc = { id: "input-color-string", type: "input", - accept: (n, e) => { - if (typeof n != "string" || "view" in e && e.view === "text") + accept: (i, e) => { + if (typeof i != "string" || "view" in e && e.view === "text") return null; - const t = Ar(n, kn(e)); - if (!t || !Ir(t)) + const t = Or(i, Sn(e)); + if (!t || !Br(t)) return null; - const v = Sr(e); - return v ? { - initialValue: n, - params: v + const b = Dr(e); + return b ? { + initialValue: i, + params: b } : null; }, binding: { - reader: (n) => { + reader: (i) => { var e; - return pl((e = kn(n.params)) !== null && e !== void 0 ? e : "int"); + return fl((e = Sn(i.params)) !== null && e !== void 0 ? e : "int"); }, equals: te.equals, - writer: (n) => { - const e = Ar(n.initialValue, kn(n.params)); + writer: (i) => { + const e = Or(i.initialValue, Sn(i.params)); if (!e) throw S.shouldNeverHappen(); - const t = Bl(e); + const t = Hl(e); if (!t) throw S.notBindable(); return t; } }, - controller: (n) => { - const e = Ar(n.initialValue, kn(n.params)); + controller: (i) => { + const e = Or(i.initialValue, Sn(i.params)); if (!e) throw S.shouldNeverHappen(); - const t = Ir(e); + const t = Br(e); if (!t) throw S.shouldNeverHappen(); - const l = "expanded" in n.params ? n.params.expanded : void 0, v = "picker" in n.params ? n.params.picker : void 0; - return new Fr(n.document, { + const l = "expanded" in i.params ? i.params.expanded : void 0, b = "picker" in i.params ? i.params.picker : void 0; + return new Hr(i.document, { colorType: e.type, expanded: l ?? false, formatter: t, - parser: Lr(e.type), - pickerLayout: v ?? "popup", + parser: Nr(e.type), + pickerLayout: b ?? "popup", supportsAlpha: e.alpha, - value: n.value, - viewProps: n.viewProps + value: i.value, + viewProps: i.viewProps }); } }; - class Zt { + class Jt { constructor(e) { this.components = e.components, this.asm_ = e.assembly; } constrain(e) { - const t = this.asm_.toComponents(e).map((l, v) => { - var E, k2; - return (k2 = (E = this.components[v]) === null || E === void 0 ? void 0 : E.constrain(l)) !== null && k2 !== void 0 ? k2 : l; + const t = this.asm_.toComponents(e).map((l, b) => { + var E, k; + return (k = (E = this.components[b]) === null || E === void 0 ? void 0 : E.constrain(l)) !== null && k !== void 0 ? k : l; }); return this.asm_.fromComponents(t); } } - const Uo = D("pndtxt"); - class Wl { + const $o = D2("pndtxt"); + class ic { constructor(e, t) { - this.textViews = t.textViews, this.element = e.createElement("div"), this.element.classList.add(Uo()), this.textViews.forEach((l) => { - const v = e.createElement("div"); - v.classList.add(Uo("a")), v.appendChild(l.element), this.element.appendChild(v); + this.textViews = t.textViews, this.element = e.createElement("div"), this.element.classList.add($o()), this.textViews.forEach((l) => { + const b = e.createElement("div"); + b.classList.add($o("a")), b.appendChild(l.element), this.element.appendChild(b); }); } } - function Jl(n, e, t) { - return new yn(n, { + function sc(i, e, t) { + return new En(i, { arrayPosition: t === 0 ? "fst" : t === e.axes.length - 1 ? "lst" : "mid", baseStep: e.axes[t].baseStep, parser: e.parser, @@ -9136,111 +9212,111 @@ var Ch = { viewProps: e.viewProps }); } - class jr { + class $r { constructor(e, t) { - this.value = t.value, this.viewProps = t.viewProps, this.acs_ = t.axes.map((l, v) => Jl(e, t, v)), this.acs_.forEach((l, v) => { - qt({ + this.value = t.value, this.viewProps = t.viewProps, this.acs_ = t.axes.map((l, b) => sc(e, t, b)), this.acs_.forEach((l, b) => { + Zt({ primary: this.value, secondary: l.value, - forward: (E) => t.assembly.toComponents(E.rawValue)[v], - backward: (E, k2) => { + forward: (E) => t.assembly.toComponents(E.rawValue)[b], + backward: (E, k) => { const B = t.assembly.toComponents(E.rawValue); - return B[v] = k2.rawValue, t.assembly.fromComponents(B); + return B[b] = k.rawValue, t.assembly.fromComponents(B); } }); - }), this.view = new Wl(e, { + }), this.view = new ic(e, { textViews: this.acs_.map((l) => l.view) }); } } - function Go(n, e) { - return "step" in n && !_(n.step) ? new Qn(n.step, e) : null; + function Xo(i, e) { + return "step" in i && !_(i.step) ? new Zn(i.step, e) : null; } - function Ho(n) { - return !_(n.max) && !_(n.min) ? new Xt({ - max: n.max, - min: n.min - }) : !_(n.max) || !_(n.min) ? new Ei({ - max: n.max, - min: n.min + function Yo(i) { + return !_(i.max) && !_(i.min) ? new qt({ + max: i.max, + min: i.min + }) : !_(i.max) || !_(i.min) ? new Pi({ + max: i.max, + min: i.min }) : null; } - function ec(n) { - const e = et(n, Xt); + function rc(i) { + const e = tt(i, qt); if (e) return [e.values.get("min"), e.values.get("max")]; - const t = et(n, Ei); + const t = tt(i, Pi); return t ? [t.minValue, t.maxValue] : [void 0, void 0]; } - function tc(n, e) { - const t = [], l = Go(n, e); + function oc(i, e) { + const t = [], l = Xo(i, e); l && t.push(l); - const v = Ho(n); - v && t.push(v); - const E = Ni(n.options); - return E && t.push(E), new fn(t); + const b = Yo(i); + b && t.push(b); + const E = Bi(i.options); + return E && t.push(E), new bn(t); } - const nc = { + const ac = { id: "input-number", type: "input", - accept: (n, e) => { - if (typeof n != "number") + accept: (i, e) => { + if (typeof i != "number") return null; const t = M, l = le(e, { format: t.optional.function, max: t.optional.number, min: t.optional.number, - options: t.optional.custom(En), + options: t.optional.custom(Pn), step: t.optional.number }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => vt, - constraint: (n) => tc(n.params, n.initialValue), - writer: (n) => tt + reader: (i) => bt, + constraint: (i) => oc(i.params, i.initialValue), + writer: (i) => nt }, - controller: (n) => { + controller: (i) => { var e; - const t = n.value, l = n.constraint, v = l && et(l, vn); - if (v) - return new bn(n.document, { + const t = i.value, l = i.constraint, b = l && tt(l, gn); + if (b) + return new _n(i.document, { props: new X({ - options: v.values.value("options") + options: b.values.value("options") }), value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); - const E = (e = "format" in n.params ? n.params.format : void 0) !== null && e !== void 0 ? e : Re(ti(l, t.rawValue)), k2 = l && et(l, Xt); - return k2 ? new ei(n.document, { - baseStep: Vt(l), - parser: at, + const E = (e = "format" in i.params ? i.params.format : void 0) !== null && e !== void 0 ? e : Ie(ni(l, t.rawValue)), k = l && tt(l, qt); + return k ? new ti(i.document, { + baseStep: Dt(l), + parser: lt, sliderProps: new X({ - maxValue: k2.values.value("max"), - minValue: k2.values.value("min") + maxValue: k.values.value("max"), + minValue: k.values.value("min") }), textProps: X.fromObject({ - draggingScale: Dt(l, t.rawValue), + draggingScale: Ot(l, t.rawValue), formatter: E }), value: t, - viewProps: n.viewProps - }) : new yn(n.document, { - baseStep: Vt(l), - parser: at, + viewProps: i.viewProps + }) : new En(i.document, { + baseStep: Dt(l), + parser: lt, props: X.fromObject({ - draggingScale: Dt(l, t.rawValue), + draggingScale: Ot(l, t.rawValue), formatter: E }), value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); } }; - class Wt { + class en { constructor(e = 0, t = 0) { this.x = e, this.y = t; } @@ -9263,48 +9339,48 @@ var Ch = { }; } } - const Ko = { - toComponents: (n) => n.getComponents(), - fromComponents: (n) => new Wt(...n) - }, si = D("p2d"); - class ic { + const qo = { + toComponents: (i) => i.getComponents(), + fromComponents: (i) => new en(...i) + }, ri = D2("p2d"); + class lc { constructor(e, t) { - this.element = e.createElement("div"), this.element.classList.add(si()), t.viewProps.bindClassModifiers(this.element), N(t.expanded, K(this.element, si(void 0, "expanded"))); + this.element = e.createElement("div"), this.element.classList.add(ri()), t.viewProps.bindClassModifiers(this.element), N(t.expanded, K(this.element, ri(void 0, "expanded"))); const l = e.createElement("div"); - l.classList.add(si("h")), this.element.appendChild(l); - const v = e.createElement("button"); - v.classList.add(si("b")), v.appendChild(yt(e, "p2dpad")), t.viewProps.bindDisabled(v), l.appendChild(v), this.buttonElement = v; + l.classList.add(ri("h")), this.element.appendChild(l); + const b = e.createElement("button"); + b.classList.add(ri("b")), b.appendChild(xt(e, "p2dpad")), t.viewProps.bindDisabled(b), l.appendChild(b), this.buttonElement = b; const E = e.createElement("div"); - if (E.classList.add(si("t")), l.appendChild(E), this.textElement = E, t.pickerLayout === "inline") { - const k2 = e.createElement("div"); - k2.classList.add(si("p")), this.element.appendChild(k2), this.pickerElement = k2; + if (E.classList.add(ri("t")), l.appendChild(E), this.textElement = E, t.pickerLayout === "inline") { + const k = e.createElement("div"); + k.classList.add(ri("p")), this.element.appendChild(k), this.pickerElement = k; } else this.pickerElement = null; } } - const Jt = D("p2dp"); - class sc { + const tn = D2("p2dp"); + class cc { constructor(e, t) { - this.onFoldableChange_ = this.onFoldableChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.invertsY_ = t.invertsY, this.maxValue_ = t.maxValue, this.element = e.createElement("div"), this.element.classList.add(Jt()), t.layout === "popup" && this.element.classList.add(Jt(void 0, "p")), t.viewProps.bindClassModifiers(this.element); + this.onFoldableChange_ = this.onFoldableChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.invertsY_ = t.invertsY, this.maxValue_ = t.maxValue, this.element = e.createElement("div"), this.element.classList.add(tn()), t.layout === "popup" && this.element.classList.add(tn(void 0, "p")), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("div"); - l.classList.add(Jt("p")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.padElement = l; - const v = e.createElementNS(ze, "svg"); - v.classList.add(Jt("g")), this.padElement.appendChild(v), this.svgElem_ = v; + l.classList.add(tn("p")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.padElement = l; + const b = e.createElementNS(ze, "svg"); + b.classList.add(tn("g")), this.padElement.appendChild(b), this.svgElem_ = b; const E = e.createElementNS(ze, "line"); - E.classList.add(Jt("ax")), E.setAttributeNS(null, "x1", "0"), E.setAttributeNS(null, "y1", "50%"), E.setAttributeNS(null, "x2", "100%"), E.setAttributeNS(null, "y2", "50%"), this.svgElem_.appendChild(E); - const k2 = e.createElementNS(ze, "line"); - k2.classList.add(Jt("ax")), k2.setAttributeNS(null, "x1", "50%"), k2.setAttributeNS(null, "y1", "0"), k2.setAttributeNS(null, "x2", "50%"), k2.setAttributeNS(null, "y2", "100%"), this.svgElem_.appendChild(k2); + E.classList.add(tn("ax")), E.setAttributeNS(null, "x1", "0"), E.setAttributeNS(null, "y1", "50%"), E.setAttributeNS(null, "x2", "100%"), E.setAttributeNS(null, "y2", "50%"), this.svgElem_.appendChild(E); + const k = e.createElementNS(ze, "line"); + k.classList.add(tn("ax")), k.setAttributeNS(null, "x1", "50%"), k.setAttributeNS(null, "y1", "0"), k.setAttributeNS(null, "x2", "50%"), k.setAttributeNS(null, "y2", "100%"), this.svgElem_.appendChild(k); const B = e.createElementNS(ze, "line"); - B.classList.add(Jt("l")), B.setAttributeNS(null, "x1", "50%"), B.setAttributeNS(null, "y1", "50%"), this.svgElem_.appendChild(B), this.lineElem_ = B; + B.classList.add(tn("l")), B.setAttributeNS(null, "x1", "50%"), B.setAttributeNS(null, "y1", "50%"), this.svgElem_.appendChild(B), this.lineElem_ = B; const Q = e.createElement("div"); - Q.classList.add(Jt("m")), this.padElement.appendChild(Q), this.markerElem_ = Q, t.value.emitter.on("change", this.onValueChange_), this.value = t.value, this.update_(); + Q.classList.add(tn("m")), this.padElement.appendChild(Q), this.markerElem_ = Q, t.value.emitter.on("change", this.onValueChange_), this.value = t.value, this.update_(); } get allFocusableElements() { return [this.padElement]; } update_() { - const [e, t] = this.value.rawValue.getComponents(), l = this.maxValue_, v = _e(e, -l, +l, 0, 100), E = _e(t, -l, +l, 0, 100), k2 = this.invertsY_ ? 100 - E : E; - this.lineElem_.setAttributeNS(null, "x2", `${v}%`), this.lineElem_.setAttributeNS(null, "y2", `${k2}%`), this.markerElem_.style.left = `${v}%`, this.markerElem_.style.top = `${k2}%`; + const [e, t] = this.value.rawValue.getComponents(), l = this.maxValue_, b = _e(e, -l, +l, 0, 100), E = _e(t, -l, +l, 0, 100), k = this.invertsY_ ? 100 - E : E; + this.lineElem_.setAttributeNS(null, "x2", `${b}%`), this.lineElem_.setAttributeNS(null, "y2", `${k}%`), this.markerElem_.style.left = `${b}%`, this.markerElem_.style.top = `${k}%`; } onValueChange_() { this.update_(); @@ -9313,27 +9389,27 @@ var Ch = { this.update_(); } } - function $o(n, e, t) { + function Qo(i, e, t) { return [ - Oe(e[0], lt(n)), - Oe(e[1], wn(n)) * (t ? 1 : -1) + Oe(e[0], ct(i)), + Oe(e[1], xn(i)) * (t ? 1 : -1) ]; } - class rc { + class uc { constructor(e, t) { - this.onPadKeyDown_ = this.onPadKeyDown_.bind(this), this.onPadKeyUp_ = this.onPadKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.baseSteps_ = t.baseSteps, this.maxValue_ = t.maxValue, this.invertsY_ = t.invertsY, this.view = new sc(e, { + this.onPadKeyDown_ = this.onPadKeyDown_.bind(this), this.onPadKeyUp_ = this.onPadKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.baseSteps_ = t.baseSteps, this.maxValue_ = t.maxValue, this.invertsY_ = t.invertsY, this.view = new cc(e, { invertsY: this.invertsY_, layout: t.layout, maxValue: this.maxValue_, value: this.value, viewProps: this.viewProps - }), this.ptHandler_ = new It(this.view.padElement), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.padElement.addEventListener("keydown", this.onPadKeyDown_), this.view.padElement.addEventListener("keyup", this.onPadKeyUp_); + }), this.ptHandler_ = new Vt(this.view.padElement), this.ptHandler_.emitter.on("down", this.onPointerDown_), this.ptHandler_.emitter.on("move", this.onPointerMove_), this.ptHandler_.emitter.on("up", this.onPointerUp_), this.view.padElement.addEventListener("keydown", this.onPadKeyDown_), this.view.padElement.addEventListener("keyup", this.onPadKeyUp_); } handlePointerEvent_(e, t) { if (!e.point) return; - const l = this.maxValue_, v = _e(e.point.x, 0, e.bounds.width, -l, +l), E = _e(this.invertsY_ ? e.bounds.height - e.point.y : e.point.y, 0, e.bounds.height, -l, +l); - this.value.setRawValue(new Wt(v, E), t); + const l = this.maxValue_, b = _e(e.point.x, 0, e.bounds.width, -l, +l), E = _e(this.invertsY_ ? e.bounds.height - e.point.y : e.point.y, 0, e.bounds.height, -l, +l); + this.value.setRawValue(new en(b, E), t); } onPointerDown_(e) { this.handlePointerEvent_(e.data, { @@ -9354,28 +9430,28 @@ var Ch = { }); } onPadKeyDown_(e) { - Jn(e.key) && e.preventDefault(); - const [t, l] = $o(e, this.baseSteps_, this.invertsY_); - t === 0 && l === 0 || this.value.setRawValue(new Wt(this.value.rawValue.x + t, this.value.rawValue.y + l), { + ei(e.key) && e.preventDefault(); + const [t, l] = Qo(e, this.baseSteps_, this.invertsY_); + t === 0 && l === 0 || this.value.setRawValue(new en(this.value.rawValue.x + t, this.value.rawValue.y + l), { forceEmit: false, last: false }); } onPadKeyUp_(e) { - const [t, l] = $o(e, this.baseSteps_, this.invertsY_); + const [t, l] = Qo(e, this.baseSteps_, this.invertsY_); t === 0 && l === 0 || this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); } } - class oc { + class pc { constructor(e, t) { - var l, v; - this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.onPadButtonBlur_ = this.onPadButtonBlur_.bind(this), this.onPadButtonClick_ = this.onPadButtonClick_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.popC_ = t.pickerLayout === "popup" ? new hs(e, { + var l, b; + this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.onPadButtonBlur_ = this.onPadButtonBlur_.bind(this), this.onPadButtonClick_ = this.onPadButtonClick_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.popC_ = t.pickerLayout === "popup" ? new ms(e, { viewProps: this.viewProps }) : null; - const E = new rc(e, { + const E = new uc(e, { baseSteps: [t.axes[0].baseStep, t.axes[1].baseStep], invertsY: t.invertsY, layout: t.pickerLayout, @@ -9383,23 +9459,23 @@ var Ch = { value: this.value, viewProps: this.viewProps }); - E.view.allFocusableElements.forEach((k2) => { - k2.addEventListener("blur", this.onPopupChildBlur_), k2.addEventListener("keydown", this.onPopupChildKeydown_); - }), this.pickerC_ = E, this.textC_ = new jr(e, { - assembly: Ko, + E.view.allFocusableElements.forEach((k) => { + k.addEventListener("blur", this.onPopupChildBlur_), k.addEventListener("keydown", this.onPopupChildKeydown_); + }), this.pickerC_ = E, this.textC_ = new $r(e, { + assembly: qo, axes: t.axes, parser: t.parser, value: this.value, viewProps: this.viewProps - }), this.view = new ic(e, { + }), this.view = new lc(e, { expanded: this.foldable_.value("expanded"), pickerLayout: t.pickerLayout, viewProps: this.viewProps - }), this.view.textElement.appendChild(this.textC_.view.element), (l = this.view.buttonElement) === null || l === void 0 || l.addEventListener("blur", this.onPadButtonBlur_), (v = this.view.buttonElement) === null || v === void 0 || v.addEventListener("click", this.onPadButtonClick_), this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), qt({ + }), this.view.textElement.appendChild(this.textC_.view.element), (l = this.view.buttonElement) === null || l === void 0 || l.addEventListener("blur", this.onPadButtonBlur_), (b = this.view.buttonElement) === null || b === void 0 || b.addEventListener("click", this.onPadButtonClick_), this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), Zt({ primary: this.foldable_.value("expanded"), secondary: this.popC_.shows, - forward: (k2) => k2.rawValue, - backward: (k2, B) => B.rawValue + forward: (k) => k.rawValue, + backward: (k, B) => B.rawValue })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Ue(this.foldable_, this.view.pickerElement)); } onPadButtonBlur_(e) { @@ -9414,14 +9490,14 @@ var Ch = { onPopupChildBlur_(e) { if (!this.popC_) return; - const t = this.popC_.view.element, l = xt(e); - l && t.contains(l) || l && l === this.view.buttonElement && !mt(t.ownerDocument) || (this.popC_.shows.rawValue = false); + const t = this.popC_.view.element, l = Et2(e); + l && t.contains(l) || l && l === this.view.buttonElement && !ft(t.ownerDocument) || (this.popC_.shows.rawValue = false); } onPopupChildKeydown_(e) { this.popC_ ? e.key === "Escape" && (this.popC_.shows.rawValue = false) : this.view.pickerElement && e.key === "Escape" && this.view.buttonElement.focus(); } } - class ri { + class oi { constructor(e = 0, t = 0, l = 0) { this.x = e, this.y = t, this.z = l; } @@ -9431,8 +9507,8 @@ var Ch = { static isObject(e) { if (_(e)) return false; - const t = e.x, l = e.y, v = e.z; - return !(typeof t != "number" || typeof l != "number" || typeof v != "number"); + const t = e.x, l = e.y, b = e.z; + return !(typeof t != "number" || typeof l != "number" || typeof b != "number"); } static equals(e, t) { return e.x === t.x && e.y === t.y && e.z === t.z; @@ -9445,78 +9521,78 @@ var Ch = { }; } } - const Xo = { - toComponents: (n) => n.getComponents(), - fromComponents: (n) => new ri(...n) + const Zo = { + toComponents: (i) => i.getComponents(), + fromComponents: (i) => new oi(...i) }; - function ac(n) { - return ri.isObject(n) ? new ri(n.x, n.y, n.z) : new ri(); + function hc(i) { + return oi.isObject(i) ? new oi(i.x, i.y, i.z) : new oi(); } - function lc(n, e) { - n.writeProperty("x", e.x), n.writeProperty("y", e.y), n.writeProperty("z", e.z); + function dc(i, e) { + i.writeProperty("x", e.x), i.writeProperty("y", e.y), i.writeProperty("z", e.z); } - function cc(n, e) { - return new Zt({ - assembly: Xo, + function mc(i, e) { + return new Jt({ + assembly: Zo, components: [ - Nt("x" in n ? n.x : void 0, e.x), - Nt("y" in n ? n.y : void 0, e.y), - Nt("z" in n ? n.z : void 0, e.z) + Ft("x" in i ? i.x : void 0, e.x), + Ft("y" in i ? i.y : void 0, e.y), + Ft("z" in i ? i.z : void 0, e.z) ] }); } - function zr(n, e) { + function Xr(i, e) { return { - baseStep: Vt(e), + baseStep: Dt(e), constraint: e, textProps: X.fromObject({ - draggingScale: Dt(e, n), - formatter: Re(ti(e, n)) + draggingScale: Ot(e, i), + formatter: Ie(ni(e, i)) }) }; } - const pc = { + const fc = { id: "input-point3d", type: "input", - accept: (n, e) => { - if (!ri.isObject(n)) + accept: (i, e) => { + if (!oi.isObject(i)) return null; const t = M, l = le(e, { - x: t.optional.custom(bt), - y: t.optional.custom(bt), - z: t.optional.custom(bt) + x: t.optional.custom(gt), + y: t.optional.custom(gt), + z: t.optional.custom(gt) }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => ac, - constraint: (n) => cc(n.params, n.initialValue), - equals: ri.equals, - writer: (n) => lc + reader: (i) => hc, + constraint: (i) => mc(i.params, i.initialValue), + equals: oi.equals, + writer: (i) => dc }, - controller: (n) => { - const e = n.value, t = n.constraint; - if (!(t instanceof Zt)) + controller: (i) => { + const e = i.value, t = i.constraint; + if (!(t instanceof Jt)) throw S.shouldNeverHappen(); - return new jr(n.document, { - assembly: Xo, + return new $r(i.document, { + assembly: Zo, axes: [ - zr(e.rawValue.x, t.components[0]), - zr(e.rawValue.y, t.components[1]), - zr(e.rawValue.z, t.components[2]) + Xr(e.rawValue.x, t.components[0]), + Xr(e.rawValue.y, t.components[1]), + Xr(e.rawValue.z, t.components[2]) ], - parser: at, + parser: lt, value: e, - viewProps: n.viewProps + viewProps: i.viewProps }); } }; - class oi { - constructor(e = 0, t = 0, l = 0, v = 0) { - this.x = e, this.y = t, this.z = l, this.w = v; + class ai { + constructor(e = 0, t = 0, l = 0, b = 0) { + this.x = e, this.y = t, this.z = l, this.w = b; } getComponents() { return [this.x, this.y, this.z, this.w]; @@ -9524,8 +9600,8 @@ var Ch = { static isObject(e) { if (_(e)) return false; - const t = e.x, l = e.y, v = e.z, E = e.w; - return !(typeof t != "number" || typeof l != "number" || typeof v != "number" || typeof E != "number"); + const t = e.x, l = e.y, b = e.z, E = e.w; + return !(typeof t != "number" || typeof l != "number" || typeof b != "number" || typeof E != "number"); } static equals(e, t) { return e.x === t.x && e.y === t.y && e.z === t.z && e.w === t.w; @@ -9539,129 +9615,129 @@ var Ch = { }; } } - const Yo = { - toComponents: (n) => n.getComponents(), - fromComponents: (n) => new oi(...n) + const Wo = { + toComponents: (i) => i.getComponents(), + fromComponents: (i) => new ai(...i) }; - function uc(n) { - return oi.isObject(n) ? new oi(n.x, n.y, n.z, n.w) : new oi(); + function vc(i) { + return ai.isObject(i) ? new ai(i.x, i.y, i.z, i.w) : new ai(); } - function hc(n, e) { - n.writeProperty("x", e.x), n.writeProperty("y", e.y), n.writeProperty("z", e.z), n.writeProperty("w", e.w); + function bc(i, e) { + i.writeProperty("x", e.x), i.writeProperty("y", e.y), i.writeProperty("z", e.z), i.writeProperty("w", e.w); } - function dc(n, e) { - return new Zt({ - assembly: Yo, + function gc(i, e) { + return new Jt({ + assembly: Wo, components: [ - Nt("x" in n ? n.x : void 0, e.x), - Nt("y" in n ? n.y : void 0, e.y), - Nt("z" in n ? n.z : void 0, e.z), - Nt("w" in n ? n.w : void 0, e.w) + Ft("x" in i ? i.x : void 0, e.x), + Ft("y" in i ? i.y : void 0, e.y), + Ft("z" in i ? i.z : void 0, e.z), + Ft("w" in i ? i.w : void 0, e.w) ] }); } - function mc(n, e) { + function _c(i, e) { return { - baseStep: Vt(e), + baseStep: Dt(e), constraint: e, textProps: X.fromObject({ - draggingScale: Dt(e, n), - formatter: Re(ti(e, n)) + draggingScale: Ot(e, i), + formatter: Ie(ni(e, i)) }) }; } - const fc = { + const wc = { id: "input-point4d", type: "input", - accept: (n, e) => { - if (!oi.isObject(n)) + accept: (i, e) => { + if (!ai.isObject(i)) return null; const t = M, l = le(e, { - x: t.optional.custom(bt), - y: t.optional.custom(bt), - z: t.optional.custom(bt), - w: t.optional.custom(bt) + x: t.optional.custom(gt), + y: t.optional.custom(gt), + z: t.optional.custom(gt), + w: t.optional.custom(gt) }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => uc, - constraint: (n) => dc(n.params, n.initialValue), - equals: oi.equals, - writer: (n) => hc + reader: (i) => vc, + constraint: (i) => gc(i.params, i.initialValue), + equals: ai.equals, + writer: (i) => bc }, - controller: (n) => { - const e = n.value, t = n.constraint; - if (!(t instanceof Zt)) + controller: (i) => { + const e = i.value, t = i.constraint; + if (!(t instanceof Jt)) throw S.shouldNeverHappen(); - return new jr(n.document, { - assembly: Yo, - axes: e.rawValue.getComponents().map((l, v) => mc(l, t.components[v])), - parser: at, + return new $r(i.document, { + assembly: Wo, + axes: e.rawValue.getComponents().map((l, b) => _c(l, t.components[b])), + parser: lt, value: e, - viewProps: n.viewProps + viewProps: i.viewProps }); } }; - function vc(n) { - const e = [], t = Ni(n.options); - return t && e.push(t), new fn(e); + function yc(i) { + const e = [], t = Bi(i.options); + return t && e.push(t), new bn(e); } - const bc = { + const xc = { id: "input-string", type: "input", - accept: (n, e) => { - if (typeof n != "string") + accept: (i, e) => { + if (typeof i != "string") return null; const l = le(e, { - options: M.optional.custom(En) + options: M.optional.custom(Pn) }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => Si, - constraint: (n) => vc(n.params), - writer: (n) => tt + reader: (i) => Ai, + constraint: (i) => yc(i.params), + writer: (i) => nt }, - controller: (n) => { - const e = n.document, t = n.value, l = n.constraint, v = l && et(l, vn); - return v ? new bn(e, { + controller: (i) => { + const e = i.document, t = i.value, l = i.constraint, b = l && tt(l, gn); + return b ? new _n(e, { props: new X({ - options: v.values.value("options") + options: b.values.value("options") }), value: t, - viewProps: n.viewProps - }) : new Zn(e, { + viewProps: i.viewProps + }) : new Wn(e, { parser: (E) => E, props: X.fromObject({ - formatter: Ct + formatter: Pt }), value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); } - }, ji = { + }, Ui = { monitor: { defaultInterval: 200, defaultLineCount: 3 } - }, qo = D("mll"); - class gc { + }, Jo = D2("mll"); + class Ec { constructor(e, t) { - this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement("div"), this.element.classList.add(qo()), t.viewProps.bindClassModifiers(this.element); + this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement("div"), this.element.classList.add(Jo()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("textarea"); - l.classList.add(qo("i")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, l.readOnly = true, t.viewProps.bindDisabled(l), this.element.appendChild(l), this.textareaElem_ = l, t.value.emitter.on("change", this.onValueUpdate_), this.value = t.value, this.update_(); + l.classList.add(Jo("i")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, l.readOnly = true, t.viewProps.bindDisabled(l), this.element.appendChild(l), this.textareaElem_ = l, t.value.emitter.on("change", this.onValueUpdate_), this.value = t.value, this.update_(); } update_() { const e = this.textareaElem_, t = e.scrollTop === e.scrollHeight - e.clientHeight, l = []; - this.value.rawValue.forEach((v) => { - v !== void 0 && l.push(this.formatter_(v)); + this.value.rawValue.forEach((b) => { + b !== void 0 && l.push(this.formatter_(b)); }), e.textContent = l.join(` `), t && (e.scrollTop = e.scrollHeight); } @@ -9669,9 +9745,9 @@ var Ch = { this.update_(); } } - class Ur { + class Yr { constructor(e, t) { - this.value = t.value, this.viewProps = t.viewProps, this.view = new gc(e, { + this.value = t.value, this.viewProps = t.viewProps, this.view = new Ec(e, { formatter: t.formatter, lineCount: t.lineCount, value: this.value, @@ -9679,12 +9755,12 @@ var Ch = { }); } } - const Qo = D("sgl"); - class _c { + const ea = D2("sgl"); + class Cc { constructor(e, t) { - this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement("div"), this.element.classList.add(Qo()), t.viewProps.bindClassModifiers(this.element); + this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement("div"), this.element.classList.add(ea()), t.viewProps.bindClassModifiers(this.element); const l = e.createElement("input"); - l.classList.add(Qo("i")), l.readOnly = true, l.type = "text", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on("change", this.onValueUpdate_), this.value = t.value, this.update_(); + l.classList.add(ea("i")), l.readOnly = true, l.type = "text", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on("change", this.onValueUpdate_), this.value = t.value, this.update_(); } update_() { const e = this.value.rawValue, t = e[e.length - 1]; @@ -9694,74 +9770,74 @@ var Ch = { this.update_(); } } - class Gr { + class qr { constructor(e, t) { - this.value = t.value, this.viewProps = t.viewProps, this.view = new _c(e, { + this.value = t.value, this.viewProps = t.viewProps, this.view = new Cc(e, { formatter: t.formatter, value: this.value, viewProps: this.viewProps }); } } - const wc = { + const Pc = { id: "monitor-bool", type: "monitor", - accept: (n, e) => { - if (typeof n != "boolean") + accept: (i, e) => { + if (typeof i != "boolean") return null; const l = le(e, { lineCount: M.optional.number }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => ms + reader: (i) => vs }, - controller: (n) => { + controller: (i) => { var e; - return n.value.rawValue.length === 1 ? new Gr(n.document, { - formatter: fs, - value: n.value, - viewProps: n.viewProps - }) : new Ur(n.document, { - formatter: fs, - lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount, - value: n.value, - viewProps: n.viewProps - }); - } - }, en = D("grl"); - class yc { + return i.value.rawValue.length === 1 ? new qr(i.document, { + formatter: bs, + value: i.value, + viewProps: i.viewProps + }) : new Yr(i.document, { + formatter: bs, + lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount, + value: i.value, + viewProps: i.viewProps + }); + } + }, nn = D2("grl"); + class Tc { constructor(e, t) { - this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = e.createElement("div"), this.element.classList.add(en()), t.viewProps.bindClassModifiers(this.element), this.formatter_ = t.formatter, this.props_ = t.props, this.cursor_ = t.cursor, this.cursor_.emitter.on("change", this.onCursorChange_); + this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = e.createElement("div"), this.element.classList.add(nn()), t.viewProps.bindClassModifiers(this.element), this.formatter_ = t.formatter, this.props_ = t.props, this.cursor_ = t.cursor, this.cursor_.emitter.on("change", this.onCursorChange_); const l = e.createElementNS(ze, "svg"); - l.classList.add(en("g")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, this.element.appendChild(l), this.svgElem_ = l; - const v = e.createElementNS(ze, "polyline"); - this.svgElem_.appendChild(v), this.lineElem_ = v; + l.classList.add(nn("g")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, this.element.appendChild(l), this.svgElem_ = l; + const b = e.createElementNS(ze, "polyline"); + this.svgElem_.appendChild(b), this.lineElem_ = b; const E = e.createElement("div"); - E.classList.add(en("t"), D("tt")()), this.element.appendChild(E), this.tooltipElem_ = E, t.value.emitter.on("change", this.onValueUpdate_), this.value = t.value, this.update_(); + E.classList.add(nn("t"), D2("tt")()), this.element.appendChild(E), this.tooltipElem_ = E, t.value.emitter.on("change", this.onValueUpdate_), this.value = t.value, this.update_(); } get graphElement() { return this.svgElem_; } update_() { - const e = this.svgElem_.getBoundingClientRect(), t = this.value.rawValue.length - 1, l = this.props_.get("minValue"), v = this.props_.get("maxValue"), E = []; + const e = this.svgElem_.getBoundingClientRect(), t = this.value.rawValue.length - 1, l = this.props_.get("minValue"), b = this.props_.get("maxValue"), E = []; this.value.rawValue.forEach((de, ve) => { if (de === void 0) return; - const Mn = _e(ve, 0, t, 0, e.width), zi = _e(de, l, v, e.height, 0); - E.push([Mn, zi].join(",")); + const Ln = _e(ve, 0, t, 0, e.width), Gi = _e(de, l, b, e.height, 0); + E.push([Ln, Gi].join(",")); }), this.lineElem_.setAttributeNS(null, "points", E.join(" ")); - const k2 = this.tooltipElem_, B = this.value.rawValue[this.cursor_.rawValue]; + const k = this.tooltipElem_, B = this.value.rawValue[this.cursor_.rawValue]; if (B === void 0) { - k2.classList.remove(en("t", "a")); + k.classList.remove(nn("t", "a")); return; } - const Q = _e(this.cursor_.rawValue, 0, t, 0, e.width), J = _e(B, l, v, e.height, 0); - k2.style.left = `${Q}px`, k2.style.top = `${J}px`, k2.textContent = `${this.formatter_(B)}`, k2.classList.contains(en("t", "a")) || (k2.classList.add(en("t", "a"), en("t", "in")), st(k2), k2.classList.remove(en("t", "in"))); + const Q = _e(this.cursor_.rawValue, 0, t, 0, e.width), J = _e(B, l, b, e.height, 0); + k.style.left = `${Q}px`, k.style.top = `${J}px`, k.textContent = `${this.formatter_(B)}`, k.classList.contains(nn("t", "a")) || (k.classList.add(nn("t", "a"), nn("t", "in")), rt(k), k.classList.remove(nn("t", "in"))); } onValueUpdate_() { this.update_(); @@ -9770,19 +9846,19 @@ var Ch = { this.update_(); } } - class xc { + class kc { constructor(e, t) { - if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = t.props, this.value = t.value, this.viewProps = t.viewProps, this.cursor_ = ee(-1), this.view = new yc(e, { + if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = t.props, this.value = t.value, this.viewProps = t.viewProps, this.cursor_ = ee(-1), this.view = new Tc(e, { cursor: this.cursor_, formatter: t.formatter, lineCount: t.lineCount, props: this.props_, value: this.value, viewProps: this.viewProps - }), !mt(e)) + }), !ft(e)) this.view.element.addEventListener("mousemove", this.onGraphMouseMove_), this.view.element.addEventListener("mouseleave", this.onGraphMouseLeave_); else { - const l = new It(this.view.element); + const l = new Vt(this.view.element); l.emitter.on("down", this.onGraphPointerDown_), l.emitter.on("move", this.onGraphPointerMove_), l.emitter.on("up", this.onGraphPointerUp_); } } @@ -9807,43 +9883,43 @@ var Ch = { this.cursor_.rawValue = -1; } } - function Hr(n) { - return "format" in n && !_(n.format) ? n.format : Re(2); + function Qr(i) { + return "format" in i && !_(i.format) ? i.format : Ie(2); } - function Ec(n) { + function Mc(i) { var e; - return n.value.rawValue.length === 1 ? new Gr(n.document, { - formatter: Hr(n.params), - value: n.value, - viewProps: n.viewProps - }) : new Ur(n.document, { - formatter: Hr(n.params), - lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount, - value: n.value, - viewProps: n.viewProps + return i.value.rawValue.length === 1 ? new qr(i.document, { + formatter: Qr(i.params), + value: i.value, + viewProps: i.viewProps + }) : new Yr(i.document, { + formatter: Qr(i.params), + lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount, + value: i.value, + viewProps: i.viewProps }); } - function Cc(n) { + function Sc(i) { var e, t, l; - return new xc(n.document, { - formatter: Hr(n.params), - lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount, + return new kc(i.document, { + formatter: Qr(i.params), + lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount, props: X.fromObject({ - maxValue: (t = "max" in n.params ? n.params.max : null) !== null && t !== void 0 ? t : 100, - minValue: (l = "min" in n.params ? n.params.min : null) !== null && l !== void 0 ? l : 0 + maxValue: (t = "max" in i.params ? i.params.max : null) !== null && t !== void 0 ? t : 100, + minValue: (l = "min" in i.params ? i.params.min : null) !== null && l !== void 0 ? l : 0 }), - value: n.value, - viewProps: n.viewProps + value: i.value, + viewProps: i.viewProps }); } - function Zo(n) { - return "view" in n && n.view === "graph"; + function ta(i) { + return "view" in i && i.view === "graph"; } - const Pc = { + const Lc = { id: "monitor-number", type: "monitor", - accept: (n, e) => { - if (typeof n != "number") + accept: (i, e) => { + if (typeof i != "number") return null; const t = M, l = le(e, { format: t.optional.function, @@ -9853,121 +9929,121 @@ var Ch = { view: t.optional.string }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - defaultBufferSize: (n) => Zo(n) ? 64 : 1, - reader: (n) => vt + defaultBufferSize: (i) => ta(i) ? 64 : 1, + reader: (i) => bt }, - controller: (n) => Zo(n.params) ? Cc(n) : Ec(n) - }, Tc = { + controller: (i) => ta(i.params) ? Sc(i) : Mc(i) + }, Ac = { id: "monitor-string", type: "monitor", - accept: (n, e) => { - if (typeof n != "string") + accept: (i, e) => { + if (typeof i != "string") return null; const t = M, l = le(e, { lineCount: t.optional.number, multiline: t.optional.boolean }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => Si + reader: (i) => Ai }, - controller: (n) => { + controller: (i) => { var e; - const t = n.value; - return t.rawValue.length > 1 || "multiline" in n.params && n.params.multiline ? new Ur(n.document, { - formatter: Ct, - lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount, + const t = i.value; + return t.rawValue.length > 1 || "multiline" in i.params && i.params.multiline ? new Yr(i.document, { + formatter: Pt, + lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount, value: t, - viewProps: n.viewProps - }) : new Gr(n.document, { - formatter: Ct, + viewProps: i.viewProps + }) : new qr(i.document, { + formatter: Pt, value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); } }; - function kc(n, e) { + function Rc(i, e) { var t; - const l = n.accept(e.target.read(), e.params); + const l = i.accept(e.target.read(), e.params); if (_(l)) return null; - const v = M, E = { + const b = M, E = { target: e.target, initialValue: l.initialValue, params: l.params - }, k2 = n.binding.reader(E), B = n.binding.constraint ? n.binding.constraint(E) : void 0, Q = ee(k2(l.initialValue), { + }, k = i.binding.reader(E), B = i.binding.constraint ? i.binding.constraint(E) : void 0, Q = ee(k(l.initialValue), { constraint: B, - equals: n.binding.equals - }), J = new qn({ - reader: k2, + equals: i.binding.equals + }), J = new Qn({ + reader: k, target: e.target, value: Q, - writer: n.binding.writer(E) - }), de = v.optional.boolean(e.params.disabled).value, ve = v.optional.boolean(e.params.hidden).value, Mn = n.controller({ + writer: i.binding.writer(E) + }), de = b.optional.boolean(e.params.disabled).value, ve = b.optional.boolean(e.params.hidden).value, Ln = i.controller({ constraint: B, document: e.document, initialValue: l.initialValue, params: l.params, value: J.value, - viewProps: Xe.create({ + viewProps: Ye.create({ disabled: de, hidden: ve }) }); - return new Fe(e.document, { + return new je(e.document, { binding: J, blade: ye(), props: X.fromObject({ - label: "label" in e.params ? (t = v.optional.string(e.params.label).value) !== null && t !== void 0 ? t : null : e.target.key + label: "label" in e.params ? (t = b.optional.string(e.params.label).value) !== null && t !== void 0 ? t : null : e.target.key }), - valueController: Mn + valueController: Ln }); } - function Mc(n, e) { - return e === 0 ? new ls() : new xi(n, e ?? ji.monitor.defaultInterval); + function Ic(i, e) { + return e === 0 ? new us() : new Ci(i, e ?? Ui.monitor.defaultInterval); } - function Sc(n, e) { - var t, l, v; - const E = M, k2 = n.accept(e.target.read(), e.params); - if (_(k2)) + function Vc(i, e) { + var t, l, b; + const E = M, k = i.accept(e.target.read(), e.params); + if (_(k)) return null; const B = { target: e.target, - initialValue: k2.initialValue, - params: k2.params - }, Q = n.binding.reader(B), J = (l = (t = E.optional.number(e.params.bufferSize).value) !== null && t !== void 0 ? t : n.binding.defaultBufferSize && n.binding.defaultBufferSize(k2.params)) !== null && l !== void 0 ? l : 1, de = E.optional.number(e.params.interval).value, ve = new rr({ + initialValue: k.initialValue, + params: k.params + }, Q = i.binding.reader(B), J = (l = (t = E.optional.number(e.params.bufferSize).value) !== null && t !== void 0 ? t : i.binding.defaultBufferSize && i.binding.defaultBufferSize(k.params)) !== null && l !== void 0 ? l : 1, de = E.optional.number(e.params.interval).value, ve = new pr({ reader: Q, target: e.target, - ticker: Mc(e.document, de), - value: cs(J) - }), Mn = E.optional.boolean(e.params.disabled).value, zi = E.optional.boolean(e.params.hidden).value, Ui = n.controller({ + ticker: Ic(e.document, de), + value: ps(J) + }), Ln = E.optional.boolean(e.params.disabled).value, Gi = E.optional.boolean(e.params.hidden).value, Hi = i.controller({ document: e.document, - params: k2.params, + params: k.params, value: ve.value, - viewProps: Xe.create({ - disabled: Mn, - hidden: zi + viewProps: Ye.create({ + disabled: Ln, + hidden: Gi }) }); - return new rt(e.document, { + return new ot(e.document, { binding: ve, blade: ye(), props: X.fromObject({ - label: "label" in e.params ? (v = E.optional.string(e.params.label).value) !== null && v !== void 0 ? v : null : e.target.key + label: "label" in e.params ? (b = E.optional.string(e.params.label).value) !== null && b !== void 0 ? b : null : e.target.key }), - valueController: Ui + valueController: Hi }); } - class Ac { + class Dc { constructor() { this.pluginsMap_ = { blades: [], @@ -9986,15 +10062,15 @@ var Ch = { e.type === "blade" ? this.pluginsMap_.blades.unshift(e) : e.type === "input" ? this.pluginsMap_.inputs.unshift(e) : e.type === "monitor" && this.pluginsMap_.monitors.unshift(e); } createInput(e, t, l) { - const v = t.read(); - if (_(v)) + const b = t.read(); + if (_(b)) throw new S({ context: { key: t.key }, type: "nomatchingcontroller" }); - const E = this.pluginsMap_.inputs.reduce((k2, B) => k2 ?? kc(B, { + const E = this.pluginsMap_.inputs.reduce((k, B) => k ?? Rc(B, { document: e, target: t, params: l @@ -10009,13 +10085,13 @@ var Ch = { }); } createMonitor(e, t, l) { - const v = this.pluginsMap_.monitors.reduce((E, k2) => E ?? Sc(k2, { + const b = this.pluginsMap_.monitors.reduce((E, k) => E ?? Vc(k, { document: e, params: l, target: t }), null); - if (v) - return v; + if (b) + return b; throw new S({ context: { key: t.key @@ -10024,7 +10100,7 @@ var Ch = { }); } createBlade(e, t) { - const l = this.pluginsMap_.blades.reduce((v, E) => v ?? sr(E, { + const l = this.pluginsMap_.blades.reduce((b, E) => b ?? ur(E, { document: e, params: t }), null); @@ -10038,13 +10114,13 @@ var Ch = { return l; } createBladeApi(e) { - if (e instanceof Fe) - return new mi(e); - if (e instanceof rt) - return new fi(e); - if (e instanceof hn) - return new $n(e, this); - const t = this.pluginsMap_.blades.reduce((l, v) => l ?? v.api({ + if (e instanceof je) + return new vi(e); + if (e instanceof ot) + return new bi(e); + if (e instanceof mn) + return new Xn(e, this); + const t = this.pluginsMap_.blades.reduce((l, b) => l ?? b.api({ controller: e, pool: this }), null); @@ -10053,89 +10129,89 @@ var Ch = { return t; } } - function Lc() { - const n = new Ac(); + function Oc() { + const i = new Dc(); return [ - Nc, - pc, + Uc, fc, - bc, + wc, + xc, + ac, nc, + tc, Zl, - Ql, - $l, - ni, - wc, - Tc, + ii, Pc, + Ac, + Lc, W, - Js, - tr, - yi + rr, + ar, + Ei ].forEach((e) => { - n.register(e); - }), n; + i.register(e); + }), i; } - function Rc(n) { - return Wt.isObject(n) ? new Wt(n.x, n.y) : new Wt(); + function Nc(i) { + return en.isObject(i) ? new en(i.x, i.y) : new en(); } - function Ic(n, e) { - n.writeProperty("x", e.x), n.writeProperty("y", e.y); + function Fc(i, e) { + i.writeProperty("x", e.x), i.writeProperty("y", e.y); } - function Nt(n, e) { - if (!n) + function Ft(i, e) { + if (!i) return; - const t = [], l = Go(n, e); + const t = [], l = Xo(i, e); l && t.push(l); - const v = Ho(n); - return v && t.push(v), new fn(t); + const b = Yo(i); + return b && t.push(b), new bn(t); } - function Vc(n, e) { - return new Zt({ - assembly: Ko, + function Bc(i, e) { + return new Jt({ + assembly: qo, components: [ - Nt("x" in n ? n.x : void 0, e.x), - Nt("y" in n ? n.y : void 0, e.y) + Ft("x" in i ? i.x : void 0, e.x), + Ft("y" in i ? i.y : void 0, e.y) ] }); } - function Wo(n, e) { - const [t, l] = n ? ec(n) : []; + function na(i, e) { + const [t, l] = i ? rc(i) : []; if (!_(t) || !_(l)) return Math.max(Math.abs(t ?? 0), Math.abs(l ?? 0)); - const v = Vt(n); - return Math.max(Math.abs(v) * 10, Math.abs(e) * 10); + const b = Dt(i); + return Math.max(Math.abs(b) * 10, Math.abs(e) * 10); } - function Dc(n, e) { - const t = e instanceof Zt ? e.components[0] : void 0, l = e instanceof Zt ? e.components[1] : void 0, v = Wo(t, n.x), E = Wo(l, n.y); - return Math.max(v, E); + function jc(i, e) { + const t = e instanceof Jt ? e.components[0] : void 0, l = e instanceof Jt ? e.components[1] : void 0, b = na(t, i.x), E = na(l, i.y); + return Math.max(b, E); } - function Jo(n, e) { + function ia(i, e) { return { - baseStep: Vt(e), + baseStep: Dt(e), constraint: e, textProps: X.fromObject({ - draggingScale: Dt(e, n), - formatter: Re(ti(e, n)) + draggingScale: Ot(e, i), + formatter: Ie(ni(e, i)) }) }; } - function Oc(n) { - if (!("y" in n)) + function zc(i) { + if (!("y" in i)) return false; - const e = n.y; + const e = i.y; return e && "inverted" in e ? !!e.inverted : false; } - const Nc = { + const Uc = { id: "input-point2d", type: "input", - accept: (n, e) => { - if (!Wt.isObject(n)) + accept: (i, e) => { + if (!en.isObject(i)) return null; const t = M, l = le(e, { expanded: t.optional.boolean, - picker: t.optional.custom(Oi), - x: t.optional.custom(bt), + picker: t.optional.custom(Fi), + x: t.optional.custom(gt), y: t.optional.object({ inverted: t.optional.boolean, max: t.optional.number, @@ -10144,41 +10220,41 @@ var Ch = { }) }); return l ? { - initialValue: n, + initialValue: i, params: l } : null; }, binding: { - reader: (n) => Rc, - constraint: (n) => Vc(n.params, n.initialValue), - equals: Wt.equals, - writer: (n) => Ic + reader: (i) => Nc, + constraint: (i) => Bc(i.params, i.initialValue), + equals: en.equals, + writer: (i) => Fc }, - controller: (n) => { - const e = n.document, t = n.value, l = n.constraint; - if (!(l instanceof Zt)) + controller: (i) => { + const e = i.document, t = i.value, l = i.constraint; + if (!(l instanceof Jt)) throw S.shouldNeverHappen(); - const v = "expanded" in n.params ? n.params.expanded : void 0, E = "picker" in n.params ? n.params.picker : void 0; - return new oc(e, { + const b = "expanded" in i.params ? i.params.expanded : void 0, E = "picker" in i.params ? i.params.picker : void 0; + return new pc(e, { axes: [ - Jo(t.rawValue.x, l.components[0]), - Jo(t.rawValue.y, l.components[1]) + ia(t.rawValue.x, l.components[0]), + ia(t.rawValue.y, l.components[1]) ], - expanded: v ?? false, - invertsY: Oc(n.params), - maxValue: Dc(t.rawValue, l), - parser: at, + expanded: b ?? false, + invertsY: zc(i.params), + maxValue: jc(t.rawValue, l), + parser: lt, pickerLayout: E ?? "popup", value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); } }; - class ea extends a { + class sa extends a { constructor(e) { super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on("change", (t) => { this.emitter_.emit("change", { - event: new u(this, t.rawValue) + event: new p(this, t.rawValue) }); }); } @@ -10202,16 +10278,16 @@ var Ch = { } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } } - class ta extends a { + class ra extends a { constructor(e) { super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on("change", (t) => { this.emitter_.emit("change", { - event: new u(this, t.rawValue) + event: new p(this, t.rawValue) }); }); } @@ -10241,16 +10317,16 @@ var Ch = { } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } } - class na extends a { + class oa extends a { constructor(e) { super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on("change", (t) => { this.emitter_.emit("change", { - event: new u(this, t.rawValue) + event: new p(this, t.rawValue) }); }); } @@ -10274,59 +10350,59 @@ var Ch = { } on(e, t) { const l = t.bind(this); - return this.emitter_.on(e, (v) => { - l(v.event); + return this.emitter_.on(e, (b) => { + l(b.event); }), this; } } - const Fc = function() { + const Gc = function() { return { id: "list", type: "blade", - accept(n) { - const e = M, t = le(n, { - options: e.required.custom(En), + accept(i) { + const e = M, t = le(i, { + options: e.required.custom(Pn), value: e.required.raw, view: e.required.constant("list"), label: e.optional.string }); return t ? { params: t } : null; }, - controller(n) { - const e = new vn(Ps(n.params.options)), t = ee(n.params.value, { + controller(i) { + const e = new gn(ks(i.params.options)), t = ee(i.params.value, { constraint: e - }), l = new bn(n.document, { + }), l = new _n(i.document, { props: new X({ options: e.values.value("options") }), value: t, - viewProps: n.viewProps + viewProps: i.viewProps }); - return new Gt(n.document, { - blade: n.blade, + return new Kt(i.document, { + blade: i.blade, props: X.fromObject({ - label: n.params.label + label: i.params.label }), valueController: l }); }, - api(n) { - return !(n.controller instanceof Gt) || !(n.controller.valueController instanceof bn) ? null : new ea(n.controller); + api(i) { + return !(i.controller instanceof Kt) || !(i.controller.valueController instanceof _n) ? null : new sa(i.controller); } }; }(); - function Bc(n) { - return n.reduce((e, t) => Object.assign(e, { + function Hc(i) { + return i.reduce((e, t) => Object.assign(e, { [t.presetKey]: t.read() }), {}); } - function jc(n, e) { - n.forEach((t) => { + function Kc(i, e) { + i.forEach((t) => { const l = e[t.target.presetKey]; l !== void 0 && t.writer(t.target, t.reader(l)); }); } - class zc extends vi { + class $c extends gi { /** * @hidden */ @@ -10341,29 +10417,29 @@ var Ch = { * @param preset The preset object to import. */ importPreset(e) { - const t = this.controller_.rackController.rack.find(Fe).map((l) => l.binding); - jc(t, e), this.refresh(); + const t = this.controller_.rackController.rack.find(je).map((l) => l.binding); + Kc(t, e), this.refresh(); } /** * Exports a preset of all inputs. * @return An exported preset object. */ exportPreset() { - const e = this.controller_.rackController.rack.find(Fe).map((t) => t.binding.target); - return Bc(e); + const e = this.controller_.rackController.rack.find(je).map((t) => t.binding.target); + return Hc(e); } /** * Refreshes all bindings of the pane. */ refresh() { - this.controller_.rackController.rack.find(Fe).forEach((e) => { + this.controller_.rackController.rack.find(je).forEach((e) => { e.binding.read(); - }), this.controller_.rackController.rack.find(rt).forEach((e) => { + }), this.controller_.rackController.rack.find(ot).forEach((e) => { e.binding.read(); }); } } - class Uc extends Xn { + class Xc extends Yn { constructor(e, t) { super(e, { expanded: t.expanded, @@ -10374,11 +10450,11 @@ var Ch = { }); } } - const Gc = { + const Yc = { id: "slider", type: "blade", - accept(n) { - const e = M, t = le(n, { + accept(i) { + const e = M, t = le(i, { max: e.required.number, min: e.required.number, view: e.required.constant("slider"), @@ -10388,44 +10464,44 @@ var Ch = { }); return t ? { params: t } : null; }, - controller(n) { + controller(i) { var e, t; - const l = (e = n.params.value) !== null && e !== void 0 ? e : 0, v = new Xt({ - max: n.params.max, - min: n.params.min - }), E = new ei(n.document, { + const l = (e = i.params.value) !== null && e !== void 0 ? e : 0, b = new qt({ + max: i.params.max, + min: i.params.min + }), E = new ti(i.document, { baseStep: 1, - parser: at, + parser: lt, sliderProps: new X({ - maxValue: v.values.value("max"), - minValue: v.values.value("min") + maxValue: b.values.value("max"), + minValue: b.values.value("min") }), textProps: X.fromObject({ - draggingScale: Dt(void 0, l), - formatter: (t = n.params.format) !== null && t !== void 0 ? t : Er + draggingScale: Ot(void 0, l), + formatter: (t = i.params.format) !== null && t !== void 0 ? t : Sr }), value: ee(l, { - constraint: v + constraint: b }), - viewProps: n.viewProps + viewProps: i.viewProps }); - return new Gt(n.document, { - blade: n.blade, + return new Kt(i.document, { + blade: i.blade, props: X.fromObject({ - label: n.params.label + label: i.params.label }), valueController: E }); }, - api(n) { - return !(n.controller instanceof Gt) || !(n.controller.valueController instanceof ei) ? null : new ta(n.controller); + api(i) { + return !(i.controller instanceof Kt) || !(i.controller.valueController instanceof ti) ? null : new ra(i.controller); } - }, Hc = function() { + }, qc = function() { return { id: "text", type: "blade", - accept(n) { - const e = M, t = le(n, { + accept(i) { + const e = M, t = le(i, { parse: e.required.function, value: e.required.raw, view: e.required.constant("text"), @@ -10434,51 +10510,51 @@ var Ch = { }); return t ? { params: t } : null; }, - controller(n) { + controller(i) { var e; - const t = new Zn(n.document, { - parser: n.params.parse, + const t = new Wn(i.document, { + parser: i.params.parse, props: X.fromObject({ - formatter: (e = n.params.format) !== null && e !== void 0 ? e : (l) => String(l) + formatter: (e = i.params.format) !== null && e !== void 0 ? e : (l) => String(l) }), - value: ee(n.params.value), - viewProps: n.viewProps + value: ee(i.params.value), + viewProps: i.viewProps }); - return new Gt(n.document, { - blade: n.blade, + return new Kt(i.document, { + blade: i.blade, props: X.fromObject({ - label: n.params.label + label: i.params.label }), valueController: t }); }, - api(n) { - return !(n.controller instanceof Gt) || !(n.controller.valueController instanceof Zn) ? null : new na(n.controller); + api(i) { + return !(i.controller instanceof Kt) || !(i.controller.valueController instanceof Wn) ? null : new oa(i.controller); } }; }(); - function Kc(n) { - const e = n.createElement("div"); - return e.classList.add(D("dfw")()), n.body && n.body.appendChild(e), e; + function Qc(i) { + const e = i.createElement("div"); + return e.classList.add(D2("dfw")()), i.body && i.body.appendChild(e), e; } - function ia(n, e, t) { - if (n.querySelector(`style[data-tp-style=${e}]`)) + function aa(i, e, t) { + if (i.querySelector(`style[data-tp-style=${e}]`)) return; - const l = n.createElement("style"); - l.dataset.tpStyle = e, l.textContent = t, n.head.appendChild(l); + const l = i.createElement("style"); + l.dataset.tpStyle = e, l.textContent = t, i.head.appendChild(l); } - class $c extends zc { + class Zc extends $c { constructor(e) { var t, l; - const v = e ?? {}, E = (t = v.document) !== null && t !== void 0 ? t : hi(), k2 = Lc(), B = new Uc(E, { - expanded: v.expanded, + const b = e ?? {}, E = (t = b.document) !== null && t !== void 0 ? t : mi(), k = Oc(), B = new Xc(E, { + expanded: b.expanded, blade: ye(), props: X.fromObject({ - title: v.title + title: b.title }), - viewProps: Xe.create() + viewProps: Ye.create() }); - super(B, k2), this.pool_ = k2, this.containerElem_ = (l = v.container) !== null && l !== void 0 ? l : Kc(E), this.containerElem_.appendChild(this.element), this.doc_ = E, this.usesDefaultWrapper_ = !v.container, this.setUpDefaultPlugins_(); + super(B, k), this.pool_ = k, this.containerElem_ = (l = b.container) !== null && l !== void 0 ? l : Qc(E), this.containerElem_.appendChild(this.element), this.doc_ = E, this.usesDefaultWrapper_ = !b.container, this.setUpDefaultPlugins_(); } get document() { if (!this.doc_) @@ -10501,38 +10577,38 @@ var Ch = { }); } embedPluginStyle_(e) { - e.css && ia(this.document, `plugin-${e.id}`, e.css); + e.css && aa(this.document, `plugin-${e.id}`, e.css); } setUpDefaultPlugins_() { - ia(this.document, "default", '.tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:"";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:"";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:"";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:"";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:"";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}'), this.pool_.getAll().forEach((e) => { + aa(this.document, "default", '.tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:"";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:"";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:"";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:"";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:"";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}'), this.pool_.getAll().forEach((e) => { this.embedPluginStyle_(e); }), this.registerPlugin({ plugins: [ + Yc, Gc, - Fc, - yi, - Hc + Ei, + qc ] }); } } - const Xc = new s("3.1.7"); - r.BladeApi = a, r.ButtonApi = j, r.FolderApi = vi, r.InputBindingApi = mi, r.ListApi = ea, r.MonitorBindingApi = fi, r.Pane = $c, r.SeparatorApi = ss, r.SliderApi = ta, r.TabApi = os, r.TabPageApi = wi, r.TextApi = na, r.TpChangeEvent = u, r.VERSION = Xc, Object.defineProperty(r, "__esModule", { value: true }); + const Wc = new s("3.1.7"); + r.BladeApi = a, r.ButtonApi = j, r.FolderApi = gi, r.InputBindingApi = vi, r.ListApi = sa, r.MonitorBindingApi = bi, r.Pane = Zc, r.SeparatorApi = os, r.SliderApi = ra, r.TabApi = ls, r.TabPageApi = xi, r.TextApi = oa, r.TpChangeEvent = p, r.VERSION = Wc, Object.defineProperty(r, "__esModule", { value: true }); }); -})(Ch, js); -var Ji = {}; -var Ph = { +})(Dh, Gs); +var ts = {}; +var Oh = { get exports() { - return Ji; + return ts; }, - set exports(b) { - Ji = b; + set exports(v) { + ts = v; } }; -(function(b, i) { +(function(v, n) { (function(r, s) { - s(i); - })(el, function(r) { + s(n); + })(rl, function(r) { class s { constructor(o) { this.controller_ = o; @@ -10562,11 +10638,11 @@ var Ph = { } } class c extends a { - constructor(o, p, f, x) { - super(o), this.value = p, this.presetKey = f, this.last = x ?? true; + constructor(o, u, f, x) { + super(o), this.value = u, this.presetKey = f, this.last = x ?? true; } } - function u(m) { + function p(m) { return m; } function h(m) { @@ -10583,8 +10659,8 @@ var Ph = { }; class g { constructor(o) { - var p; - this.message = (p = d[o.type](o.context)) !== null && p !== void 0 ? p : "Unexpected error", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = o.type; + var u; + this.message = (u = d[o.type](o.context)) !== null && u !== void 0 ? u : "Unexpected error", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = o.type; } static alreadyDisposed() { return new g({ type: "alreadydisposed" }); @@ -10610,72 +10686,72 @@ var Ph = { constructor() { this.observers_ = {}; } - on(o, p) { + on(o, u) { let f = this.observers_[o]; return f || (f = this.observers_[o] = []), f.push({ - handler: p + handler: u }), this; } - off(o, p) { + off(o, u) { const f = this.observers_[o]; - return f && (this.observers_[o] = f.filter((x) => x.handler !== p)), this; + return f && (this.observers_[o] = f.filter((x) => x.handler !== u)), this; } - emit(o, p) { + emit(o, u) { const f = this.observers_[o]; f && f.forEach((x) => { - x.handler(p); + x.handler(u); }); } } const _ = "tp"; function y(m) { - return (p, f) => [ + return (u, f) => [ _, "-", m, "v", - p ? `_${p}` : "", + u ? `_${u}` : "", f ? `-${f}` : "" ].join(""); } - function C(m, o) { - return (p) => o(m(p)); + function P(m, o) { + return (u) => o(m(u)); } - function I(m) { + function I2(m) { return m.rawValue; } function S(m, o) { - m.emitter.on("change", C(I, o)), o(m.rawValue); + m.emitter.on("change", P(I2, o)), o(m.rawValue); } - function R(m, o, p) { - S(m.value(o), p); + function R(m, o, u) { + S(m.value(o), u); } - function j(m, o, p) { - p ? m.classList.add(o) : m.classList.remove(o); + function j(m, o, u) { + u ? m.classList.add(o) : m.classList.remove(o); } function F(m, o) { - return (p) => { - j(m, o, p); + return (u) => { + j(m, o, u); }; } function V(m, o) { - S(m, (p) => { - o.textContent = p ?? ""; + S(m, (u) => { + o.textContent = u ?? ""; }); } - const D = y("btn"); + const D2 = y("btn"); class Y { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(D()), p.viewProps.bindClassModifiers(this.element); + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(D2()), u.viewProps.bindClassModifiers(this.element); const f = o.createElement("button"); - f.classList.add(D("b")), p.viewProps.bindDisabled(f), this.element.appendChild(f), this.buttonElement = f; + f.classList.add(D2("b")), u.viewProps.bindDisabled(f), this.element.appendChild(f), this.buttonElement = f; const x = o.createElement("div"); - x.classList.add(D("t")), V(p.props.value("title"), x), this.buttonElement.appendChild(x); + x.classList.add(D2("t")), V(u.props.value("title"), x), this.buttonElement.appendChild(x); } } class G { - constructor(o, p) { - this.emitter = new w(), this.onClick_ = this.onClick_.bind(this), this.props = p.props, this.viewProps = p.viewProps, this.view = new Y(o, { + constructor(o, u) { + this.emitter = new w(), this.onClick_ = this.onClick_.bind(this), this.props = u.props, this.viewProps = u.viewProps, this.view = new Y(o, { props: this.props, viewProps: this.viewProps }), this.view.buttonElement.addEventListener("click", this.onClick_); @@ -10687,9 +10763,9 @@ var Ph = { } } class N { - constructor(o, p) { + constructor(o, u) { var f; - this.constraint_ = p == null ? void 0 : p.constraint, this.equals_ = (f = p == null ? void 0 : p.equals) !== null && f !== void 0 ? f : (x, P) => x === P, this.emitter = new w(), this.rawValue_ = o; + this.constraint_ = u == null ? void 0 : u.constraint, this.equals_ = (f = u == null ? void 0 : u.equals) !== null && f !== void 0 ? f : (x, T) => x === T, this.emitter = new w(), this.rawValue_ = o; } get constraint() { return this.constraint_; @@ -10703,16 +10779,16 @@ var Ph = { last: true }); } - setRawValue(o, p) { - const f = p ?? { + setRawValue(o, u) { + const f = u ?? { forceEmit: false, last: true - }, x = this.constraint_ ? this.constraint_.constrain(o) : o, P = this.rawValue_; - this.equals_(P, x) && !f.forceEmit || (this.emitter.emit("beforechange", { + }, x = this.constraint_ ? this.constraint_.constrain(o) : o, T = this.rawValue_; + this.equals_(T, x) && !f.forceEmit || (this.emitter.emit("beforechange", { sender: this }), this.rawValue_ = x, this.emitter.emit("change", { options: f, - previousRawValue: P, + previousRawValue: T, rawValue: x, sender: this })); @@ -10731,8 +10807,8 @@ var Ph = { last: true }); } - setRawValue(o, p) { - const f = p ?? { + setRawValue(o, u) { + const f = u ?? { forceEmit: false, last: true }, x = this.value_; @@ -10747,16 +10823,16 @@ var Ph = { } } function H(m, o) { - const p = o == null ? void 0 : o.constraint, f = o == null ? void 0 : o.equals; - return !p && !f ? new O(m) : new N(m, o); + const u = o == null ? void 0 : o.constraint, f = o == null ? void 0 : o.equals; + return !u && !f ? new O(m) : new N(m, o); } class K { constructor(o) { this.emitter = new w(), this.valMap_ = o; - for (const p in this.valMap_) - this.valMap_[p].emitter.on("change", () => { + for (const u in this.valMap_) + this.valMap_[u].emitter.on("change", () => { this.emitter.emit("change", { - key: p, + key: u, sender: this }); }); @@ -10767,53 +10843,53 @@ var Ph = { }), {}); } static fromObject(o) { - const p = this.createCore(o); - return new K(p); + const u = this.createCore(o); + return new K(u); } get(o) { return this.valMap_[o].rawValue; } - set(o, p) { - this.valMap_[o].rawValue = p; + set(o, u) { + this.valMap_[o].rawValue = u; } value(o) { return this.valMap_[o]; } } function q(m, o) { - const f = Object.keys(o).reduce((x, P) => { + const f = Object.keys(o).reduce((x, T) => { if (x === void 0) return; - const L = o[P], z = L(m[P]); - return z.succeeded ? Object.assign(Object.assign({}, x), { [P]: z.value }) : void 0; + const A = o[T], z = A(m[T]); + return z.succeeded ? Object.assign(Object.assign({}, x), { [T]: z.value }) : void 0; }, {}); return f; } - function ue(m, o) { - return m.reduce((p, f) => { - if (p === void 0) + function pe(m, o) { + return m.reduce((u, f) => { + if (u === void 0) return; const x = o(f); if (!(!x.succeeded || x.value === void 0)) - return [...p, x.value]; + return [...u, x.value]; }, []); } function ge(m) { return m === null ? false : typeof m == "object"; } function ce(m) { - return (o) => (p) => { - if (!o && p === void 0) + return (o) => (u) => { + if (!o && u === void 0) return { succeeded: false, value: void 0 }; - if (o && p === void 0) + if (o && u === void 0) return { succeeded: true, value: void 0 }; - const f = m(p); + const f = m(u); return f !== void 0 ? { succeeded: true, value: f @@ -10830,15 +10906,15 @@ var Ph = { number: ce((o) => typeof o == "number" ? o : void 0)(m), string: ce((o) => typeof o == "string" ? o : void 0)(m), function: ce((o) => typeof o == "function" ? o : void 0)(m), - constant: (o) => ce((p) => p === o ? o : void 0)(m), + constant: (o) => ce((u) => u === o ? o : void 0)(m), raw: ce((o) => o)(m), - object: (o) => ce((p) => { - if (ge(p)) - return q(p, o); + object: (o) => ce((u) => { + if (ge(u)) + return q(u, o); })(m), - array: (o) => ce((p) => { - if (Array.isArray(p)) - return ue(p, o); + array: (o) => ce((u) => { + if (Array.isArray(u)) + return pe(u, o); })(m) }; } @@ -10847,8 +10923,8 @@ var Ph = { required: me(false) }; function ee(m, o) { - const p = he.required.object(o)(m); - return p.succeeded ? p.value : void 0; + const u = he.required.object(o)(m); + return u.succeeded ? u.value : void 0; } function X(m) { console.warn([ @@ -10866,8 +10942,8 @@ var Ph = { static create(o) { return [ new fe(o), - (p, f) => { - o.setRawValue(p, f); + (u, f) => { + o.setRawValue(u, f); } ]; } @@ -10884,17 +10960,17 @@ var Ph = { } class be extends K { constructor(o) { - var p; - super(o), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = fe.create(H(this.getGlobalDisabled_())), this.value("disabled").emitter.on("change", this.onDisabledChange_), this.value("parent").emitter.on("change", this.onParentChange_), (p = this.get("parent")) === null || p === void 0 || p.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_); + var u; + super(o), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = fe.create(H(this.getGlobalDisabled_())), this.value("disabled").emitter.on("change", this.onDisabledChange_), this.value("parent").emitter.on("change", this.onParentChange_), (u = this.get("parent")) === null || u === void 0 || u.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_); } static create(o) { - var p, f, x; - const P = o ?? {}; + var u, f, x; + const T = o ?? {}; return new be(K.createCore({ - disabled: (p = P.disabled) !== null && p !== void 0 ? p : false, + disabled: (u = T.disabled) !== null && u !== void 0 ? u : false, disposed: false, - hidden: (f = P.hidden) !== null && f !== void 0 ? f : false, - parent: (x = P.parent) !== null && x !== void 0 ? x : null + hidden: (f = T.hidden) !== null && f !== void 0 ? f : false, + parent: (x = T.parent) !== null && x !== void 0 ? x : null })); } get globalDisabled() { @@ -10904,18 +10980,18 @@ var Ph = { S(this.globalDisabled_, ne(o, "disabled")), R(this, "hidden", ne(o, "hidden")); } bindDisabled(o) { - S(this.globalDisabled_, (p) => { - o.disabled = p; + S(this.globalDisabled_, (u) => { + o.disabled = u; }); } bindTabIndex(o) { - S(this.globalDisabled_, (p) => { - o.tabIndex = p ? -1 : 0; + S(this.globalDisabled_, (u) => { + o.tabIndex = u ? -1 : 0; }); } handleDispose(o) { - this.value("disposed").emitter.on("change", (p) => { - p && o(); + this.value("disposed").emitter.on("change", (u) => { + u && o(); }); } getGlobalDisabled_() { @@ -10932,9 +11008,9 @@ var Ph = { this.updateGlobalDisabled_(); } onParentChange_(o) { - var p; + var u; const f = o.previousRawValue; - f == null || f.globalDisabled.emitter.off("change", this.onParentGlobalDisabledChange_), (p = this.get("parent")) === null || p === void 0 || p.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_(); + f == null || f.globalDisabled.emitter.off("change", this.onParentGlobalDisabledChange_), (u = this.get("parent")) === null || u === void 0 || u.globalDisabled.emitter.on("change", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_(); } } function M() { @@ -10946,18 +11022,18 @@ var Ph = { last: "lst", verylast: "vlst" }; - class Ne { + class Be { constructor(o) { this.parent_ = null, this.blade = o.blade, this.view = o.view, this.viewProps = o.viewProps; - const p = this.view.element; + const u = this.view.element; this.blade.value("positions").emitter.on("change", () => { M().forEach((f) => { - p.classList.remove(le(void 0, Ve[f])); + u.classList.remove(le(void 0, Ve[f])); }), this.blade.get("positions").forEach((f) => { - p.classList.add(le(void 0, Ve[f])); + u.classList.add(le(void 0, Ve[f])); }); }), this.viewProps.handleDispose(() => { - Pe(p); + Pe(u); }); } get parent() { @@ -10975,70 +11051,70 @@ var Ph = { this.viewProps.set("parent", this.parent_ ? this.parent_.viewProps : null); } } - const we2 = "http://www.w3.org/2000/svg"; - function it(m) { + const we = "http://www.w3.org/2000/svg"; + function st(m) { m.offsetHeight; } - function Bn(m, o) { - const p = m.style.transition; - m.style.transition = "none", o(), m.style.transition = p; + function jn(m, o) { + const u = m.style.transition; + m.style.transition = "none", o(), m.style.transition = u; } - function Xe(m) { + function Ye(m) { return m.ontouchstart !== void 0; } - function jn(m) { + function zn(m) { for (; m.childNodes.length > 0; ) m.removeChild(m.childNodes[0]); } - function an(m) { + function cn(m) { return m.relatedTarget ? m.relatedTarget : "explicitOriginalTarget" in m ? m.explicitOriginalTarget : null; } - const dt = y("lbl"); - function kt(m, o) { - const p = m.createDocumentFragment(); + const mt = y("lbl"); + function Mt(m, o) { + const u = m.createDocumentFragment(); return o.split(` -`).map((x) => m.createTextNode(x)).forEach((x, P) => { - P > 0 && p.appendChild(m.createElement("br")), p.appendChild(x); - }), p; +`).map((x) => m.createTextNode(x)).forEach((x, T) => { + T > 0 && u.appendChild(m.createElement("br")), u.appendChild(x); + }), u; } class ze { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(dt()), p.viewProps.bindClassModifiers(this.element); + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(mt()), u.viewProps.bindClassModifiers(this.element); const f = o.createElement("div"); - f.classList.add(dt("l")), R(p.props, "label", (P) => { - h(P) ? this.element.classList.add(dt(void 0, "nol")) : (this.element.classList.remove(dt(void 0, "nol")), jn(f), f.appendChild(kt(o, P))); + f.classList.add(mt("l")), R(u.props, "label", (T) => { + h(T) ? this.element.classList.add(mt(void 0, "nol")) : (this.element.classList.remove(mt(void 0, "nol")), zn(f), f.appendChild(Mt(o, T))); }), this.element.appendChild(f), this.labelElement = f; const x = o.createElement("div"); - x.classList.add(dt("v")), this.element.appendChild(x), this.valueElement = x; + x.classList.add(mt("v")), this.element.appendChild(x), this.valueElement = x; } } - class st extends Ne { - constructor(o, p) { - const f = p.valueController.viewProps; - super(Object.assign(Object.assign({}, p), { view: new ze(o, { - props: p.props, + class rt extends Be { + constructor(o, u) { + const f = u.valueController.viewProps; + super(Object.assign(Object.assign({}, u), { view: new ze(o, { + props: u.props, viewProps: f - }), viewProps: f })), this.props = p.props, this.valueController = p.valueController, this.view.valueElement.appendChild(this.valueController.view.element); + }), viewProps: f })), this.props = u.props, this.valueController = u.valueController, this.view.valueElement.appendChild(this.valueController.view.element); } } - class ln extends Ne { + class un extends Be { constructor(o) { super(o), this.value = o.value; } } - class mt extends K { + class ft extends K { constructor(o) { super(o); } static create(o) { - const p = { + const u = { completed: true, expanded: o, expandedHeight: null, shouldFixHeight: false, temporaryExpanded: null - }, f = K.createCore(p); - return new mt(f); + }, f = K.createCore(u); + return new ft(f); } get styleExpanded() { var o; @@ -11050,9 +11126,9 @@ var Ph = { const o = this.get("expandedHeight"); return this.get("shouldFixHeight") && !h(o) ? `${o}px` : "auto"; } - bindExpandedClass(o, p) { + bindExpandedClass(o, u) { const f = () => { - this.styleExpanded ? o.classList.add(p) : o.classList.remove(p); + this.styleExpanded ? o.classList.add(u) : o.classList.remove(u); }; R(this, "expanded", f), R(this, "temporaryExpanded", f); } @@ -11060,43 +11136,43 @@ var Ph = { this.set("shouldFixHeight", false), this.set("expandedHeight", null), this.set("completed", true); } } - function zn(m) { - return mt.create(m); + function Un(m) { + return ft.create(m); } - function hi(m, o) { - let p = 0; - return Bn(o, () => { - m.set("expandedHeight", null), m.set("temporaryExpanded", true), it(o), p = o.clientHeight, m.set("temporaryExpanded", null), it(o); - }), p; + function mi(m, o) { + let u = 0; + return jn(o, () => { + m.set("expandedHeight", null), m.set("temporaryExpanded", true), st(o), u = o.clientHeight, m.set("temporaryExpanded", null), st(o); + }), u; } - function Un(m, o) { + function Gn(m, o) { o.style.height = m.styleHeight; } - function Gn(m, o) { + function Hn(m, o) { m.value("expanded").emitter.on("beforechange", () => { - m.set("completed", false), h(m.get("expandedHeight")) && m.set("expandedHeight", hi(m, o)), m.set("shouldFixHeight", true), it(o); + m.set("completed", false), h(m.get("expandedHeight")) && m.set("expandedHeight", mi(m, o)), m.set("shouldFixHeight", true), st(o); }), m.emitter.on("change", () => { - Un(m, o); - }), Un(m, o), o.addEventListener("transitionend", (p) => { - p.propertyName === "height" && m.cleanUpTransition(); + Gn(m, o); + }), Gn(m, o), o.addEventListener("transitionend", (u) => { + u.propertyName === "height" && m.cleanUpTransition(); }); } - class yt { - constructor(o, p) { - const f = y(p.viewName); - this.element = o.createElement("div"), this.element.classList.add(f()), p.viewProps.bindClassModifiers(this.element); + class xt { + constructor(o, u) { + const f = y(u.viewName); + this.element = o.createElement("div"), this.element.classList.add(f()), u.viewProps.bindClassModifiers(this.element); } } - class Mt2 extends ln { - constructor(o, p) { - const f = p.valueController.viewProps; - super(Object.assign(Object.assign({}, p), { value: p.valueController.value, view: new ze(o, { - props: p.props, + class St extends un { + constructor(o, u) { + const f = u.valueController.viewProps; + super(Object.assign(Object.assign({}, u), { value: u.valueController.value, view: new ze(o, { + props: u.props, viewProps: f - }), viewProps: f })), this.props = p.props, this.valueController = p.valueController, this.view.valueElement.appendChild(this.valueController.view.element); + }), viewProps: f })), this.props = u.props, this.valueController = u.valueController, this.view.valueElement.appendChild(this.valueController.view.element); } } - class Hn { + class Kn { constructor() { this.disabled = false, this.emitter = new w(); } @@ -11108,9 +11184,9 @@ var Ph = { }); } } - class cn { - constructor(o, p) { - this.disabled_ = false, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = o, this.emitter = new w(), this.interval_ = p, this.setTimer_(); + class pn { + constructor(o, u) { + this.disabled_ = false, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = o, this.emitter = new w(), this.interval_ = u, this.setTimer_(); } get disabled() { return this.disabled_; @@ -11139,25 +11215,25 @@ var Ph = { }); } } - class Kn { + class $n { constructor(o) { this.constraints = o; } constrain(o) { - return this.constraints.reduce((p, f) => f.constrain(p), o); + return this.constraints.reduce((u, f) => f.constrain(u), o); } } - function xt(m, o) { + function Et2(m, o) { if (m instanceof o) return m; - if (m instanceof Kn) { - const p = m.constraints.reduce((f, x) => f || (x instanceof o ? x : null), null); - if (p) - return p; + if (m instanceof $n) { + const u = m.constraints.reduce((f, x) => f || (x instanceof o ? x : null), null); + if (u) + return u; } return null; } - class ft { + class vt { constructor(o) { this.values = K.fromObject({ max: o.max, @@ -11165,11 +11241,11 @@ var Ph = { }); } constrain(o) { - const p = this.values.get("max"), f = this.values.get("min"); - return Math.min(Math.max(o, f), p); + const u = this.values.get("max"), f = this.values.get("min"); + return Math.min(Math.max(o, f), u); } } - class St { + class Lt { constructor(o) { this.values = K.fromObject({ max: o.max, @@ -11183,29 +11259,29 @@ var Ph = { return this.values.get("min"); } constrain(o) { - const p = this.values.get("max"), f = this.values.get("min"); + const u = this.values.get("max"), f = this.values.get("min"); let x = o; - return h(f) || (x = Math.max(x, f)), h(p) || (x = Math.min(x, p)), x; + return h(f) || (x = Math.max(x, f)), h(u) || (x = Math.min(x, u)), x; } } - class A2 { - constructor(o, p = 0) { - this.step = o, this.origin = p; + class L { + constructor(o, u = 0) { + this.step = o, this.origin = u; } constrain(o) { - const p = this.origin % this.step, f = Math.round((o - p) / this.step); - return p + f * this.step; + const u = this.origin % this.step, f = Math.round((o - u) / this.step); + return u + f * this.step; } } const U = y("pop"); class W { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(U()), p.viewProps.bindClassModifiers(this.element), S(p.shows, F(this.element, U(void 0, "v"))); + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(U()), u.viewProps.bindClassModifiers(this.element), S(u.shows, F(this.element, U(void 0, "v"))); } } class ie { - constructor(o, p) { - this.shows = H(false), this.viewProps = p.viewProps, this.view = new W(o, { + constructor(o, u) { + this.shows = H(false), this.viewProps = u.viewProps, this.view = new W(o, { shows: this.shows, viewProps: this.viewProps }); @@ -11213,10 +11289,10 @@ var Ph = { } const ye = y("txt"); class De { - constructor(o, p) { - this.onChange_ = this.onChange_.bind(this), this.element = o.createElement("div"), this.element.classList.add(ye()), p.viewProps.bindClassModifiers(this.element), this.props_ = p.props, this.props_.emitter.on("change", this.onChange_); + constructor(o, u) { + this.onChange_ = this.onChange_.bind(this), this.element = o.createElement("div"), this.element.classList.add(ye()), u.viewProps.bindClassModifiers(this.element), this.props_ = u.props, this.props_.emitter.on("change", this.onChange_); const f = o.createElement("input"); - f.classList.add(ye("i")), f.type = "text", p.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, p.value.emitter.on("change", this.onChange_), this.value_ = p.value, this.refresh(); + f.classList.add(ye("i")), f.type = "text", u.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, u.value.emitter.on("change", this.onChange_), this.value_ = u.value, this.refresh(); } refresh() { const o = this.props_.get("formatter"); @@ -11226,10 +11302,10 @@ var Ph = { this.refresh(); } } - class Ut { - constructor(o, p) { - this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = p.parser, this.props = p.props, this.value = p.value, this.viewProps = p.viewProps, this.view = new De(o, { - props: p.props, + class Ht { + constructor(o, u) { + this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = u.parser, this.props = u.props, this.value = u.value, this.viewProps = u.viewProps, this.view = new De(o, { + props: u.props, value: this.value, viewProps: this.viewProps }), this.view.inputElement.addEventListener("change", this.onInputChange_); @@ -11239,7 +11315,7 @@ var Ph = { h(x) || (this.value.rawValue = x), this.view.refresh(); } } - function pn(m) { + function hn(m) { return m === "false" ? false : !!m; } class Ue { @@ -11267,9 +11343,9 @@ var Ph = { "^": (m, o) => m ^ o, "|": (m, o) => m | o }; - class Gs { - constructor(o, p, f) { - this.left = p, this.operator = o, this.right = f; + class qs { + constructor(o, u, f) { + this.left = u, this.operator = o, this.right = f; } evaluate() { const o = Ge[this.operator]; @@ -11287,17 +11363,17 @@ var Ph = { ].join(" "); } } - const Hs = { + const Qs = { "+": (m) => m, "-": (m) => -m, "~": (m) => ~m }; - class Ks { - constructor(o, p) { - this.operator = o, this.expression = p; + class Zs { + constructor(o, u) { + this.operator = o, this.expression = u; } evaluate() { - const o = Hs[this.operator]; + const o = Qs[this.operator]; if (!o) throw new Error(`unexpected unary operator: '${this.operator}`); return o(this.expression.evaluate()); @@ -11306,10 +11382,10 @@ var Ph = { return ["u(", this.operator, this.expression.toString(), ")"].join(" "); } } - function di(m) { - return (o, p) => { + function fi(m) { + return (o, u) => { for (let f = 0; f < m.length; f++) { - const x = m[f](o, p); + const x = m[f](o, u); if (x !== "") return x; } @@ -11317,125 +11393,125 @@ var Ph = { }; } function At(m, o) { - var p; + var u; const f = m.substr(o).match(/^\s+/); - return (p = f && f[0]) !== null && p !== void 0 ? p : ""; + return (u = f && f[0]) !== null && u !== void 0 ? u : ""; } - function mi(m, o) { - const p = m.substr(o, 1); - return p.match(/^[1-9]$/) ? p : ""; + function vi(m, o) { + const u = m.substr(o, 1); + return u.match(/^[1-9]$/) ? u : ""; } - function Fe(m, o) { - var p; + function je(m, o) { + var u; const f = m.substr(o).match(/^[0-9]+/); - return (p = f && f[0]) !== null && p !== void 0 ? p : ""; + return (u = f && f[0]) !== null && u !== void 0 ? u : ""; } - function fi(m, o) { - const p = Fe(m, o); - if (p !== "") - return p; + function bi(m, o) { + const u = je(m, o); + if (u !== "") + return u; const f = m.substr(o, 1); if (o += 1, f !== "-" && f !== "+") return ""; - const x = Fe(m, o); + const x = je(m, o); return x === "" ? "" : f + x; } - function rt(m, o) { - const p = m.substr(o, 1); - if (o += 1, p.toLowerCase() !== "e") + function ot(m, o) { + const u = m.substr(o, 1); + if (o += 1, u.toLowerCase() !== "e") return ""; - const f = fi(m, o); - return f === "" ? "" : p + f; - } - function ts(m, o) { - const p = m.substr(o, 1); - if (p === "0") - return p; - const f = mi(m, o); - return o += f.length, f === "" ? "" : f + Fe(m, o); - } - function un(m, o) { - const p = ts(m, o); - if (o += p.length, p === "") + const f = bi(m, o); + return f === "" ? "" : u + f; + } + function is(m, o) { + const u = m.substr(o, 1); + if (u === "0") + return u; + const f = vi(m, o); + return o += f.length, f === "" ? "" : f + je(m, o); + } + function dn(m, o) { + const u = is(m, o); + if (o += u.length, u === "") return ""; const f = m.substr(o, 1); if (o += f.length, f !== ".") return ""; - const x = Fe(m, o); - return o += x.length, p + f + x + rt(m, o); + const x = je(m, o); + return o += x.length, u + f + x + ot(m, o); } - function ns(m, o) { - const p = m.substr(o, 1); - if (o += p.length, p !== ".") + function ss(m, o) { + const u = m.substr(o, 1); + if (o += u.length, u !== ".") return ""; - const f = Fe(m, o); - return o += f.length, f === "" ? "" : p + f + rt(m, o); + const f = je(m, o); + return o += f.length, f === "" ? "" : u + f + ot(m, o); } - function $n(m, o) { - const p = ts(m, o); - return o += p.length, p === "" ? "" : p + rt(m, o); + function Xn(m, o) { + const u = is(m, o); + return o += u.length, u === "" ? "" : u + ot(m, o); } - const vi = di([ - un, - ns, - $n + const gi = fi([ + dn, + ss, + Xn ]); - function bi(m, o) { - var p; + function _i(m, o) { + var u; const f = m.substr(o).match(/^[01]+/); - return (p = f && f[0]) !== null && p !== void 0 ? p : ""; + return (u = f && f[0]) !== null && u !== void 0 ? u : ""; } - function $s(m, o) { - const p = m.substr(o, 2); - if (o += p.length, p.toLowerCase() !== "0b") + function Ws(m, o) { + const u = m.substr(o, 2); + if (o += u.length, u.toLowerCase() !== "0b") return ""; - const f = bi(m, o); - return f === "" ? "" : p + f; + const f = _i(m, o); + return f === "" ? "" : u + f; } - function Xs(m, o) { - var p; + function Js(m, o) { + var u; const f = m.substr(o).match(/^[0-7]+/); - return (p = f && f[0]) !== null && p !== void 0 ? p : ""; + return (u = f && f[0]) !== null && u !== void 0 ? u : ""; } - function Ys(m, o) { - const p = m.substr(o, 2); - if (o += p.length, p.toLowerCase() !== "0o") + function er(m, o) { + const u = m.substr(o, 2); + if (o += u.length, u.toLowerCase() !== "0o") return ""; - const f = Xs(m, o); - return f === "" ? "" : p + f; + const f = Js(m, o); + return f === "" ? "" : u + f; } - function qs(m, o) { - var p; + function tr(m, o) { + var u; const f = m.substr(o).match(/^[0-9a-f]+/i); - return (p = f && f[0]) !== null && p !== void 0 ? p : ""; + return (u = f && f[0]) !== null && u !== void 0 ? u : ""; } - function gi(m, o) { - const p = m.substr(o, 2); - if (o += p.length, p.toLowerCase() !== "0x") + function wi(m, o) { + const u = m.substr(o, 2); + if (o += u.length, u.toLowerCase() !== "0x") return ""; - const f = qs(m, o); - return f === "" ? "" : p + f; - } - const Qs = di([ - $s, - Ys, + const f = tr(m, o); + return f === "" ? "" : u + f; + } + const nr = fi([ + Ws, + er, + wi + ]), ir = fi([ + nr, gi - ]), Zs = di([ - Qs, - vi ]); - function hn(m, o) { - const p = Zs(m, o); - return o += p.length, p === "" ? null : { - evaluable: new Ue(p), + function mn(m, o) { + const u = ir(m, o); + return o += u.length, u === "" ? null : { + evaluable: new Ue(u), cursor: o }; } - function is(m, o) { - const p = m.substr(o, 1); - if (o += p.length, p !== "(") + function rs(m, o) { + const u = m.substr(o, 1); + if (o += u.length, u !== "(") return null; - const f = _i(m, o); + const f = yi(m, o); if (!f) return null; o = f.cursor, o += At(m, o).length; @@ -11445,55 +11521,55 @@ var Ph = { cursor: o }; } - function Ws(m, o) { - var p; - return (p = hn(m, o)) !== null && p !== void 0 ? p : is(m, o); + function sr(m, o) { + var u; + return (u = mn(m, o)) !== null && u !== void 0 ? u : rs(m, o); } - function Xn(m, o) { - const p = Ws(m, o); - if (p) - return p; + function Yn(m, o) { + const u = sr(m, o); + if (u) + return u; const f = m.substr(o, 1); if (o += f.length, f !== "+" && f !== "-" && f !== "~") return null; - const x = Xn(m, o); + const x = Yn(m, o); return x ? (o = x.cursor, { cursor: o, - evaluable: new Ks(f, x.evaluable) + evaluable: new Zs(f, x.evaluable) }) : null; } - function Js(m, o, p) { - p += At(o, p).length; - const f = m.filter((x) => o.startsWith(x, p))[0]; - return f ? (p += f.length, p += At(o, p).length, { - cursor: p, + function rr(m, o, u) { + u += At(o, u).length; + const f = m.filter((x) => o.startsWith(x, u))[0]; + return f ? (u += f.length, u += At(o, u).length, { + cursor: u, operator: f }) : null; } - function Gt(m, o) { - return (p, f) => { - const x = m(p, f); + function Kt(m, o) { + return (u, f) => { + const x = m(u, f); if (!x) return null; f = x.cursor; - let P = x.evaluable; + let T = x.evaluable; for (; ; ) { - const L = Js(o, p, f); - if (!L) + const A = rr(o, u, f); + if (!A) break; - f = L.cursor; - const z = m(p, f); + f = A.cursor; + const z = m(u, f); if (!z) return null; - f = z.cursor, P = new Gs(L.operator, P, z.evaluable); + f = z.cursor, T = new qs(A.operator, T, z.evaluable); } - return P ? { + return T ? { cursor: f, - evaluable: P + evaluable: T } : null; }; } - const ss = [ + const os = [ ["**"], ["*", "/", "%"], ["+", "-"], @@ -11501,82 +11577,82 @@ var Ph = { ["&"], ["^"], ["|"] - ].reduce((m, o) => Gt(m, o), Xn); - function _i(m, o) { - return o += At(m, o).length, ss(m, o); + ].reduce((m, o) => Kt(m, o), Yn); + function yi(m, o) { + return o += At(m, o).length, os(m, o); } - function er(m) { - const o = _i(m, 0); + function or(m) { + const o = yi(m, 0); return !o || o.cursor + At(m, o.cursor).length !== m.length ? null : o.evaluable; } - function dn(m) { + function fn(m) { var o; - const p = er(m); - return (o = p == null ? void 0 : p.evaluate()) !== null && o !== void 0 ? o : null; + const u = or(m); + return (o = u == null ? void 0 : u.evaluate()) !== null && o !== void 0 ? o : null; } - function tr(m) { + function ar(m) { if (typeof m == "number") return m; if (typeof m == "string") { - const o = dn(m); + const o = fn(m); if (!h(o)) return o; } return 0; } - function Le(m) { + function Re(m) { return (o) => o.toFixed(Math.max(Math.min(m, 20), 0)); } - const nr = Le(0); - function Yn(m) { - return nr(m) + "%"; + const lr = Re(0); + function qn(m) { + return lr(m) + "%"; } - function rs(m) { + function as(m) { return String(m); } - function wi(m, o) { + function xi(m, o) { for (; m.length < o; ) m.push(void 0); } - function os(m) { + function ls(m) { const o = []; - return wi(o, m), H(o); + return xi(o, m), H(o); } - function as(m) { + function cs(m) { const o = m.indexOf(void 0); return o < 0 ? m : m.slice(0, o); } - function ir(m, o) { - const p = [...as(m), o]; - return p.length > m.length ? p.splice(0, p.length - m.length) : wi(p, m.length), p; + function cr(m, o) { + const u = [...cs(m), o]; + return u.length > m.length ? u.splice(0, u.length - m.length) : xi(u, m.length), u; } - function Ht({ primary: m, secondary: o, forward: p, backward: f }) { + function $t({ primary: m, secondary: o, forward: u, backward: f }) { let x = false; - function P(L) { - x || (x = true, L(), x = false); + function T(A) { + x || (x = true, A(), x = false); } - m.emitter.on("change", (L) => { - P(() => { - o.setRawValue(p(m, o), L.options); + m.emitter.on("change", (A) => { + T(() => { + o.setRawValue(u(m, o), A.options); }); - }), o.emitter.on("change", (L) => { - P(() => { - m.setRawValue(f(m, o), L.options); - }), P(() => { - o.setRawValue(p(m, o), L.options); + }), o.emitter.on("change", (A) => { + T(() => { + m.setRawValue(f(m, o), A.options); + }), T(() => { + o.setRawValue(u(m, o), A.options); }); - }), P(() => { - o.setRawValue(p(m, o), { + }), T(() => { + o.setRawValue(u(m, o), { forceEmit: false, last: true }); }); } - function Kt(m, o) { - const p = m * (o.altKey ? 0.1 : 1) * (o.shiftKey ? 10 : 1); - return o.upKey ? +p : o.downKey ? -p : 0; + function Xt(m, o) { + const u = m * (o.altKey ? 0.1 : 1) * (o.shiftKey ? 10 : 1); + return o.upKey ? +u : o.downKey ? -u : 0; } - function mn(m) { + function vn(m) { return { altKey: m.altKey, downKey: m.key === "ArrowDown", @@ -11584,7 +11660,7 @@ var Ph = { upKey: m.key === "ArrowUp" }; } - function yi(m) { + function Ei(m) { return { altKey: m.altKey, downKey: m.key === "ArrowLeft", @@ -11592,21 +11668,21 @@ var Ph = { upKey: m.key === "ArrowRight" }; } - function sr(m) { + function ur(m) { return m === "ArrowUp" || m === "ArrowDown"; } - function ls(m) { - return sr(m) || m === "ArrowLeft" || m === "ArrowRight"; + function us(m) { + return ur(m) || m === "ArrowLeft" || m === "ArrowRight"; } - function xi(m, o) { - var p, f; - const x = o.ownerDocument.defaultView, P = o.getBoundingClientRect(); + function Ci(m, o) { + var u, f; + const x = o.ownerDocument.defaultView, T = o.getBoundingClientRect(); return { - x: m.pageX - (((p = x && x.scrollX) !== null && p !== void 0 ? p : 0) + P.left), - y: m.pageY - (((f = x && x.scrollY) !== null && f !== void 0 ? f : 0) + P.top) + x: m.pageX - (((u = x && x.scrollX) !== null && u !== void 0 ? u : 0) + T.left), + y: m.pageY - (((f = x && x.scrollY) !== null && f !== void 0 ? f : 0) + T.top) }; } - class qn { + class Qn { constructor(o) { this.lastTouch_ = null, this.onDocumentMouseMove_ = this.onDocumentMouseMove_.bind(this), this.onDocumentMouseUp_ = this.onDocumentMouseUp_.bind(this), this.onMouseDown_ = this.onMouseDown_.bind(this), this.onTouchEnd_ = this.onTouchEnd_.bind(this), this.onTouchMove_ = this.onTouchMove_.bind(this), this.onTouchStart_ = this.onTouchStart_.bind(this), this.elem_ = o, this.emitter = new w(), o.addEventListener("touchstart", this.onTouchStart_, { passive: false @@ -11615,11 +11691,11 @@ var Ph = { }), o.addEventListener("touchend", this.onTouchEnd_), o.addEventListener("mousedown", this.onMouseDown_); } computePosition_(o) { - const p = this.elem_.getBoundingClientRect(); + const u = this.elem_.getBoundingClientRect(); return { bounds: { - width: p.width, - height: p.height + width: u.width, + height: u.height }, point: o ? { x: o.x, @@ -11628,12 +11704,12 @@ var Ph = { }; } onMouseDown_(o) { - var p; - o.preventDefault(), (p = o.currentTarget) === null || p === void 0 || p.focus(); + var u; + o.preventDefault(), (u = o.currentTarget) === null || u === void 0 || u.focus(); const f = this.elem_.ownerDocument; f.addEventListener("mousemove", this.onDocumentMouseMove_), f.addEventListener("mouseup", this.onDocumentMouseUp_), this.emitter.emit("down", { altKey: o.altKey, - data: this.computePosition_(xi(o, this.elem_)), + data: this.computePosition_(Ci(o, this.elem_)), sender: this, shiftKey: o.shiftKey }); @@ -11641,48 +11717,48 @@ var Ph = { onDocumentMouseMove_(o) { this.emitter.emit("move", { altKey: o.altKey, - data: this.computePosition_(xi(o, this.elem_)), + data: this.computePosition_(Ci(o, this.elem_)), sender: this, shiftKey: o.shiftKey }); } onDocumentMouseUp_(o) { - const p = this.elem_.ownerDocument; - p.removeEventListener("mousemove", this.onDocumentMouseMove_), p.removeEventListener("mouseup", this.onDocumentMouseUp_), this.emitter.emit("up", { + const u = this.elem_.ownerDocument; + u.removeEventListener("mousemove", this.onDocumentMouseMove_), u.removeEventListener("mouseup", this.onDocumentMouseUp_), this.emitter.emit("up", { altKey: o.altKey, - data: this.computePosition_(xi(o, this.elem_)), + data: this.computePosition_(Ci(o, this.elem_)), sender: this, shiftKey: o.shiftKey }); } onTouchStart_(o) { o.preventDefault(); - const p = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect(); + const u = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect(); this.emitter.emit("down", { altKey: o.altKey, - data: this.computePosition_(p ? { - x: p.clientX - f.left, - y: p.clientY - f.top + data: this.computePosition_(u ? { + x: u.clientX - f.left, + y: u.clientY - f.top } : void 0), sender: this, shiftKey: o.shiftKey - }), this.lastTouch_ = p; + }), this.lastTouch_ = u; } onTouchMove_(o) { - const p = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect(); + const u = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect(); this.emitter.emit("move", { altKey: o.altKey, - data: this.computePosition_(p ? { - x: p.clientX - f.left, - y: p.clientY - f.top + data: this.computePosition_(u ? { + x: u.clientX - f.left, + y: u.clientY - f.top } : void 0), sender: this, shiftKey: o.shiftKey - }), this.lastTouch_ = p; + }), this.lastTouch_ = u; } onTouchEnd_(o) { - var p; - const f = (p = o.targetTouches.item(0)) !== null && p !== void 0 ? p : this.lastTouch_, x = this.elem_.getBoundingClientRect(); + var u; + const f = (u = o.targetTouches.item(0)) !== null && u !== void 0 ? u : this.lastTouch_, x = this.elem_.getBoundingClientRect(); this.emitter.emit("up", { altKey: o.altKey, data: this.computePosition_(f ? { @@ -11694,43 +11770,43 @@ var Ph = { }); } } - function Me(m, o, p, f, x) { - const P = (m - o) / (p - o); - return f + P * (x - f); + function Me2(m, o, u, f, x) { + const T = (m - o) / (u - o); + return f + T * (x - f); } - function cs(m) { + function ps(m) { return String(m.toFixed(10)).split(".")[1].replace(/0+$/, "").length; } - function $t(m, o, p) { - return Math.min(Math.max(m, o), p); + function Yt(m, o, u) { + return Math.min(Math.max(m, o), u); } - const Ye = y("txt"); - class rr { - constructor(o, p) { - this.onChange_ = this.onChange_.bind(this), this.props_ = p.props, this.props_.emitter.on("change", this.onChange_), this.element = o.createElement("div"), this.element.classList.add(Ye(), Ye(void 0, "num")), p.arrayPosition && this.element.classList.add(Ye(void 0, p.arrayPosition)), p.viewProps.bindClassModifiers(this.element); + const qe = y("txt"); + class pr { + constructor(o, u) { + this.onChange_ = this.onChange_.bind(this), this.props_ = u.props, this.props_.emitter.on("change", this.onChange_), this.element = o.createElement("div"), this.element.classList.add(qe(), qe(void 0, "num")), u.arrayPosition && this.element.classList.add(qe(void 0, u.arrayPosition)), u.viewProps.bindClassModifiers(this.element); const f = o.createElement("input"); - f.classList.add(Ye("i")), f.type = "text", p.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = p.dragging, this.dragging_.emitter.on("change", this.onDraggingChange_), this.element.classList.add(Ye()), this.inputElement.classList.add(Ye("i")); + f.classList.add(qe("i")), f.type = "text", u.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = u.dragging, this.dragging_.emitter.on("change", this.onDraggingChange_), this.element.classList.add(qe()), this.inputElement.classList.add(qe("i")); const x = o.createElement("div"); - x.classList.add(Ye("k")), this.element.appendChild(x), this.knobElement = x; - const P = o.createElementNS(we2, "svg"); - P.classList.add(Ye("g")), this.knobElement.appendChild(P); - const L = o.createElementNS(we2, "path"); - L.classList.add(Ye("gb")), P.appendChild(L), this.guideBodyElem_ = L; - const z = o.createElementNS(we2, "path"); - z.classList.add(Ye("gh")), P.appendChild(z), this.guideHeadElem_ = z; + x.classList.add(qe("k")), this.element.appendChild(x), this.knobElement = x; + const T = o.createElementNS(we, "svg"); + T.classList.add(qe("g")), this.knobElement.appendChild(T); + const A = o.createElementNS(we, "path"); + A.classList.add(qe("gb")), T.appendChild(A), this.guideBodyElem_ = A; + const z = o.createElementNS(we, "path"); + z.classList.add(qe("gh")), T.appendChild(z), this.guideHeadElem_ = z; const oe = o.createElement("div"); - oe.classList.add(y("tt")()), this.knobElement.appendChild(oe), this.tooltipElem_ = oe, p.value.emitter.on("change", this.onChange_), this.value = p.value, this.refresh(); + oe.classList.add(y("tt")()), this.knobElement.appendChild(oe), this.tooltipElem_ = oe, u.value.emitter.on("change", this.onChange_), this.value = u.value, this.refresh(); } onDraggingChange_(o) { if (o.rawValue === null) { - this.element.classList.remove(Ye(void 0, "drg")); + this.element.classList.remove(qe(void 0, "drg")); return; } - this.element.classList.add(Ye(void 0, "drg")); - const p = o.rawValue / this.props_.get("draggingScale"), f = p + (p > 0 ? -1 : p < 0 ? 1 : 0), x = $t(-f, -4, 4); - this.guideHeadElem_.setAttributeNS(null, "d", [`M ${f + x},0 L${f},4 L${f + x},8`, `M ${p},-1 L${p},9`].join(" ")), this.guideBodyElem_.setAttributeNS(null, "d", `M 0,4 L${p},4`); - const P = this.props_.get("formatter"); - this.tooltipElem_.textContent = P(this.value.rawValue), this.tooltipElem_.style.left = `${p}px`; + this.element.classList.add(qe(void 0, "drg")); + const u = o.rawValue / this.props_.get("draggingScale"), f = u + (u > 0 ? -1 : u < 0 ? 1 : 0), x = Yt(-f, -4, 4); + this.guideHeadElem_.setAttributeNS(null, "d", [`M ${f + x},0 L${f},4 L${f + x},8`, `M ${u},-1 L${u},9`].join(" ")), this.guideBodyElem_.setAttributeNS(null, "d", `M 0,4 L${u},4`); + const T = this.props_.get("formatter"); + this.tooltipElem_.textContent = T(this.value.rawValue), this.tooltipElem_.style.left = `${u}px`; } refresh() { const o = this.props_.get("formatter"); @@ -11740,38 +11816,38 @@ var Ph = { this.refresh(); } } - class fn { - constructor(o, p) { + class bn { + constructor(o, u) { var f; - this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = p.baseStep, this.parser_ = p.parser, this.props = p.props, this.sliderProps_ = (f = p.sliderProps) !== null && f !== void 0 ? f : null, this.value = p.value, this.viewProps = p.viewProps, this.dragging_ = H(null), this.view = new rr(o, { - arrayPosition: p.arrayPosition, + this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = u.baseStep, this.parser_ = u.parser, this.props = u.props, this.sliderProps_ = (f = u.sliderProps) !== null && f !== void 0 ? f : null, this.value = u.value, this.viewProps = u.viewProps, this.dragging_ = H(null), this.view = new pr(o, { + arrayPosition: u.arrayPosition, dragging: this.dragging_, props: this.props, value: this.value, viewProps: this.viewProps }), this.view.inputElement.addEventListener("change", this.onInputChange_), this.view.inputElement.addEventListener("keydown", this.onInputKeyDown_), this.view.inputElement.addEventListener("keyup", this.onInputKeyUp_); - const x = new qn(this.view.knobElement); + const x = new Qn(this.view.knobElement); x.emitter.on("down", this.onPointerDown_), x.emitter.on("move", this.onPointerMove_), x.emitter.on("up", this.onPointerUp_); } constrainValue_(o) { - var p, f; - const x = (p = this.sliderProps_) === null || p === void 0 ? void 0 : p.get("minValue"), P = (f = this.sliderProps_) === null || f === void 0 ? void 0 : f.get("maxValue"); - let L = o; - return x !== void 0 && (L = Math.max(L, x)), P !== void 0 && (L = Math.min(L, P)), L; + var u, f; + const x = (u = this.sliderProps_) === null || u === void 0 ? void 0 : u.get("minValue"), T = (f = this.sliderProps_) === null || f === void 0 ? void 0 : f.get("maxValue"); + let A = o; + return x !== void 0 && (A = Math.max(A, x)), T !== void 0 && (A = Math.min(A, T)), A; } onInputChange_(o) { const f = o.currentTarget.value, x = this.parser_(f); h(x) || (this.value.rawValue = this.constrainValue_(x)), this.view.refresh(); } onInputKeyDown_(o) { - const p = Kt(this.baseStep_, mn(o)); - p !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + p), { + const u = Xt(this.baseStep_, vn(o)); + u !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + u), { forceEmit: false, last: false }); } onInputKeyUp_(o) { - Kt(this.baseStep_, mn(o)) !== 0 && this.value.setRawValue(this.value.rawValue, { + Xt(this.baseStep_, vn(o)) !== 0 && this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); @@ -11782,106 +11858,106 @@ var Ph = { computeDraggingValue_(o) { if (!o.point) return null; - const p = o.point.x - o.bounds.width / 2; - return this.constrainValue_(this.originRawValue_ + p * this.props.get("draggingScale")); + const u = o.point.x - o.bounds.width / 2; + return this.constrainValue_(this.originRawValue_ + u * this.props.get("draggingScale")); } onPointerMove_(o) { - const p = this.computeDraggingValue_(o.data); - p !== null && (this.value.setRawValue(p, { + const u = this.computeDraggingValue_(o.data); + u !== null && (this.value.setRawValue(u, { forceEmit: false, last: false }), this.dragging_.rawValue = this.value.rawValue - this.originRawValue_); } onPointerUp_(o) { - const p = this.computeDraggingValue_(o.data); - p !== null && (this.value.setRawValue(p, { + const u = this.computeDraggingValue_(o.data); + u !== null && (this.value.setRawValue(u, { forceEmit: true, last: true }), this.dragging_.rawValue = null); } } - function et(m, o) { + function tt(m, o) { m.write(o); } - function Xt(m) { - const o = m ? xt(m, A2) : null; + function qt(m) { + const o = m ? Et2(m, L) : null; return o ? o.step : null; } - function vn(m, o) { - const p = m && xt(m, A2); - return p ? cs(p.step) : Math.max(cs(o), 2); + function gn(m, o) { + const u = m && Et2(m, L); + return u ? ps(u.step) : Math.max(ps(o), 2); } - function Ei(m) { - const o = Xt(m); + function Pi(m) { + const o = qt(m); return o ?? 1; } - function Qn(m, o) { - var p; - const f = m && xt(m, A2), x = Math.abs((p = f == null ? void 0 : f.step) !== null && p !== void 0 ? p : o); + function Zn(m, o) { + var u; + const f = m && Et2(m, L), x = Math.abs((u = f == null ? void 0 : f.step) !== null && u !== void 0 ? u : o); return x === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(x)) - 1); } - function Yt(m) { + function Qt(m) { return [m[0], m[1], m[2]]; } - function ps(m) { - const o = $t(Math.floor(m), 0, 255).toString(16); + function hs(m) { + const o = Yt(Math.floor(m), 0, 255).toString(16); return o.length === 1 ? `0${o}` : o; } - function bn(m, o = "#") { - const p = Yt(m.getComponents("rgb")).map(ps).join(""); - return `${o}${p}`; + function _n(m, o = "#") { + const u = Qt(m.getComponents("rgb")).map(hs).join(""); + return `${o}${u}`; } - function us(m, o = "#") { - const p = m.getComponents("rgb"), f = [p[0], p[1], p[2], p[3] * 255].map(ps).join(""); + function ds(m, o = "#") { + const u = m.getComponents("rgb"), f = [u[0], u[1], u[2], u[3] * 255].map(hs).join(""); return `${o}${f}`; } - function or(m, o) { - const p = Le(o === "float" ? 2 : 0); - return `rgb(${Yt(m.getComponents("rgb", o)).map((x) => p(x)).join(", ")})`; + function hr(m, o) { + const u = Re(o === "float" ? 2 : 0); + return `rgb(${Qt(m.getComponents("rgb", o)).map((x) => u(x)).join(", ")})`; } - function hs(m) { - return (o) => or(o, m); + function ms(m) { + return (o) => hr(o, m); } - function ds(m, o) { - const p = Le(2), f = Le(o === "float" ? 2 : 0); - return `rgba(${m.getComponents("rgb", o).map((P, L) => (L === 3 ? p : f)(P)).join(", ")})`; + function fs(m, o) { + const u = Re(2), f = Re(o === "float" ? 2 : 0); + return `rgba(${m.getComponents("rgb", o).map((T, A) => (A === 3 ? u : f)(T)).join(", ")})`; } - function ar(m) { - return (o) => ds(o, m); + function dr(m) { + return (o) => fs(o, m); } - function Zn(m) { + function Wn(m) { const o = [ - Le(0), - Yn, - Yn + Re(0), + qn, + qn ]; - return `hsl(${Yt(m.getComponents("hsl")).map((f, x) => o[x](f)).join(", ")})`; + return `hsl(${Qt(m.getComponents("hsl")).map((f, x) => o[x](f)).join(", ")})`; } - function lr(m) { + function mr(m) { const o = [ - Le(0), - Yn, - Yn, - Le(2) + Re(0), + qn, + qn, + Re(2) ]; return `hsla(${m.getComponents("hsl").map((f, x) => o[x](f)).join(", ")})`; } - function ms(m, o) { - const p = Le(o === "float" ? 2 : 0), f = ["r", "g", "b"]; - return `{${Yt(m.getComponents("rgb", o)).map((P, L) => `${f[L]}: ${p(P)}`).join(", ")}}`; + function vs(m, o) { + const u = Re(o === "float" ? 2 : 0), f = ["r", "g", "b"]; + return `{${Qt(m.getComponents("rgb", o)).map((T, A) => `${f[A]}: ${u(T)}`).join(", ")}}`; } - function fs(m) { - return (o) => ms(o, m); + function bs(m) { + return (o) => vs(o, m); } - function cr(m, o) { - const p = Le(2), f = Le(o === "float" ? 2 : 0), x = ["r", "g", "b", "a"]; - return `{${m.getComponents("rgb", o).map((L, z) => { - const oe = z === 3 ? p : f; - return `${x[z]}: ${oe(L)}`; + function fr(m, o) { + const u = Re(2), f = Re(o === "float" ? 2 : 0), x = ["r", "g", "b", "a"]; + return `{${m.getComponents("rgb", o).map((A, z) => { + const oe = z === 3 ? u : f; + return `${x[z]}: ${oe(A)}`; }).join(", ")}}`; } - function pr(m) { - return (o) => cr(o, m); + function vr(m) { + return (o) => fr(o, m); } [ ...["int", "float"].reduce((m, o) => [ @@ -11893,7 +11969,7 @@ var Ph = { notation: "func", type: o }, - stringifier: hs(o) + stringifier: ms(o) }, { format: { @@ -11902,7 +11978,7 @@ var Ph = { notation: "func", type: o }, - stringifier: ar(o) + stringifier: dr(o) }, { format: { @@ -11911,7 +11987,7 @@ var Ph = { notation: "object", type: o }, - stringifier: fs(o) + stringifier: bs(o) }, { format: { @@ -11920,106 +11996,106 @@ var Ph = { notation: "object", type: o }, - stringifier: pr(o) + stringifier: vr(o) } ], []) ]; - class ur { + class br { constructor(o) { this.components = o.components, this.asm_ = o.assembly; } constrain(o) { - const p = this.asm_.toComponents(o).map((f, x) => { - var P, L; - return (L = (P = this.components[x]) === null || P === void 0 ? void 0 : P.constrain(f)) !== null && L !== void 0 ? L : f; + const u = this.asm_.toComponents(o).map((f, x) => { + var T, A; + return (A = (T = this.components[x]) === null || T === void 0 ? void 0 : T.constrain(f)) !== null && A !== void 0 ? A : f; }); - return this.asm_.fromComponents(p); + return this.asm_.fromComponents(u); } } - const vs = y("pndtxt"); - class hr { - constructor(o, p) { - this.textViews = p.textViews, this.element = o.createElement("div"), this.element.classList.add(vs()), this.textViews.forEach((f) => { + const gs = y("pndtxt"); + class gr { + constructor(o, u) { + this.textViews = u.textViews, this.element = o.createElement("div"), this.element.classList.add(gs()), this.textViews.forEach((f) => { const x = o.createElement("div"); - x.classList.add(vs("a")), x.appendChild(f.element), this.element.appendChild(x); + x.classList.add(gs("a")), x.appendChild(f.element), this.element.appendChild(x); }); } } - function Ci(m, o, p) { - return new fn(m, { - arrayPosition: p === 0 ? "fst" : p === o.axes.length - 1 ? "lst" : "mid", - baseStep: o.axes[p].baseStep, + function Ti(m, o, u) { + return new bn(m, { + arrayPosition: u === 0 ? "fst" : u === o.axes.length - 1 ? "lst" : "mid", + baseStep: o.axes[u].baseStep, parser: o.parser, - props: o.axes[p].textProps, + props: o.axes[u].textProps, value: H(0, { - constraint: o.axes[p].constraint + constraint: o.axes[u].constraint }), viewProps: o.viewProps }); } - class Lt { - constructor(o, p) { - this.value = p.value, this.viewProps = p.viewProps, this.acs_ = p.axes.map((f, x) => Ci(o, p, x)), this.acs_.forEach((f, x) => { - Ht({ + class Rt { + constructor(o, u) { + this.value = u.value, this.viewProps = u.viewProps, this.acs_ = u.axes.map((f, x) => Ti(o, u, x)), this.acs_.forEach((f, x) => { + $t({ primary: this.value, secondary: f.value, - forward: (P) => p.assembly.toComponents(P.rawValue)[x], - backward: (P, L) => { - const z = p.assembly.toComponents(P.rawValue); - return z[x] = L.rawValue, p.assembly.fromComponents(z); + forward: (T) => u.assembly.toComponents(T.rawValue)[x], + backward: (T, A) => { + const z = u.assembly.toComponents(T.rawValue); + return z[x] = A.rawValue, u.assembly.fromComponents(z); } }); - }), this.view = new hr(o, { + }), this.view = new gr(o, { textViews: this.acs_.map((f) => f.view) }); } } - function dr(m, o) { - return "step" in m && !h(m.step) ? new A2(m.step, o) : null; + function _r(m, o) { + return "step" in m && !h(m.step) ? new L(m.step, o) : null; } - function gn(m) { - return !h(m.max) && !h(m.min) ? new ft({ + function wn(m) { + return !h(m.max) && !h(m.min) ? new vt({ max: m.max, min: m.min - }) : !h(m.max) || !h(m.min) ? new St({ + }) : !h(m.max) || !h(m.min) ? new Lt({ max: m.max, min: m.min }) : null; } - const mr = { + const wr = { monitor: { defaultInterval: 200, defaultLineCount: 3 } - }, ot = y("grl"); - class bs { - constructor(o, p) { - this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = o.createElement("div"), this.element.classList.add(ot()), p.viewProps.bindClassModifiers(this.element), this.formatter_ = p.formatter, this.props_ = p.props, this.cursor_ = p.cursor, this.cursor_.emitter.on("change", this.onCursorChange_); - const f = o.createElementNS(we2, "svg"); - f.classList.add(ot("g")), f.style.height = `calc(var(--bld-us) * ${p.lineCount})`, this.element.appendChild(f), this.svgElem_ = f; - const x = o.createElementNS(we2, "polyline"); + }, at = y("grl"); + class _s { + constructor(o, u) { + this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = o.createElement("div"), this.element.classList.add(at()), u.viewProps.bindClassModifiers(this.element), this.formatter_ = u.formatter, this.props_ = u.props, this.cursor_ = u.cursor, this.cursor_.emitter.on("change", this.onCursorChange_); + const f = o.createElementNS(we, "svg"); + f.classList.add(at("g")), f.style.height = `calc(var(--bld-us) * ${u.lineCount})`, this.element.appendChild(f), this.svgElem_ = f; + const x = o.createElementNS(we, "polyline"); this.svgElem_.appendChild(x), this.lineElem_ = x; - const P = o.createElement("div"); - P.classList.add(ot("t"), y("tt")()), this.element.appendChild(P), this.tooltipElem_ = P, p.value.emitter.on("change", this.onValueUpdate_), this.value = p.value, this.update_(); + const T = o.createElement("div"); + T.classList.add(at("t"), y("tt")()), this.element.appendChild(T), this.tooltipElem_ = T, u.value.emitter.on("change", this.onValueUpdate_), this.value = u.value, this.update_(); } get graphElement() { return this.svgElem_; } update_() { - const o = this.svgElem_.getBoundingClientRect(), p = this.value.rawValue.length - 1, f = this.props_.get("minValue"), x = this.props_.get("maxValue"), P = []; - this.value.rawValue.forEach((Ze, te) => { - if (Ze === void 0) + const o = this.svgElem_.getBoundingClientRect(), u = this.value.rawValue.length - 1, f = this.props_.get("minValue"), x = this.props_.get("maxValue"), T = []; + this.value.rawValue.forEach((We, te) => { + if (We === void 0) return; - const Pt = Me(te, 0, p, 0, o.width), Mr = Me(Ze, f, x, o.height, 0); - P.push([Pt, Mr].join(",")); - }), this.lineElem_.setAttributeNS(null, "points", P.join(" ")); - const L = this.tooltipElem_, z = this.value.rawValue[this.cursor_.rawValue]; + const Tt = Me2(te, 0, u, 0, o.width), Vr = Me2(We, f, x, o.height, 0); + T.push([Tt, Vr].join(",")); + }), this.lineElem_.setAttributeNS(null, "points", T.join(" ")); + const A = this.tooltipElem_, z = this.value.rawValue[this.cursor_.rawValue]; if (z === void 0) { - L.classList.remove(ot("t", "a")); + A.classList.remove(at("t", "a")); return; } - const oe = Me(this.cursor_.rawValue, 0, p, 0, o.width), Qe = Me(z, f, x, o.height, 0); - L.style.left = `${oe}px`, L.style.top = `${Qe}px`, L.textContent = `${this.formatter_(z)}`, L.classList.contains(ot("t", "a")) || (L.classList.add(ot("t", "a"), ot("t", "in")), it(L), L.classList.remove(ot("t", "in"))); + const oe = Me2(this.cursor_.rawValue, 0, u, 0, o.width), Ze = Me2(z, f, x, o.height, 0); + A.style.left = `${oe}px`, A.style.top = `${Ze}px`, A.textContent = `${this.formatter_(z)}`, A.classList.contains(at("t", "a")) || (A.classList.add(at("t", "a"), at("t", "in")), st(A), A.classList.remove(at("t", "in"))); } onValueUpdate_() { this.update_(); @@ -12028,19 +12104,19 @@ var Ph = { this.update_(); } } - class fr { - constructor(o, p) { - if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = p.props, this.value = p.value, this.viewProps = p.viewProps, this.cursor_ = H(-1), this.view = new bs(o, { + class yr { + constructor(o, u) { + if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = u.props, this.value = u.value, this.viewProps = u.viewProps, this.cursor_ = H(-1), this.view = new _s(o, { cursor: this.cursor_, - formatter: p.formatter, - lineCount: p.lineCount, + formatter: u.formatter, + lineCount: u.lineCount, props: this.props_, value: this.value, viewProps: this.viewProps - }), !Xe(o)) + }), !Ye(o)) this.view.element.addEventListener("mousemove", this.onGraphMouseMove_), this.view.element.addEventListener("mouseleave", this.onGraphMouseLeave_); else { - const f = new qn(this.view.element); + const f = new Qn(this.view.element); f.emitter.on("down", this.onGraphPointerDown_), f.emitter.on("move", this.onGraphPointerMove_), f.emitter.on("up", this.onGraphPointerUp_); } } @@ -12048,8 +12124,8 @@ var Ph = { this.cursor_.rawValue = -1; } onGraphMouseMove_(o) { - const p = this.view.element.getBoundingClientRect(); - this.cursor_.rawValue = Math.floor(Me(o.offsetX, 0, p.width, 0, this.value.rawValue.length)); + const u = this.view.element.getBoundingClientRect(); + this.cursor_.rawValue = Math.floor(Me2(o.offsetX, 0, u.width, 0, this.value.rawValue.length)); } onGraphPointerDown_(o) { this.onGraphPointerMove_(o); @@ -12059,13 +12135,13 @@ var Ph = { this.cursor_.rawValue = -1; return; } - this.cursor_.rawValue = Math.floor(Me(o.data.point.x, 0, o.data.bounds.width, 0, this.value.rawValue.length)); + this.cursor_.rawValue = Math.floor(Me2(o.data.point.x, 0, o.data.bounds.width, 0, this.value.rawValue.length)); } onGraphPointerUp_() { this.cursor_.rawValue = -1; } } - class gs { + class ws { constructor(o) { this.controller_ = o; } @@ -12082,101 +12158,101 @@ var Ph = { set title(o) { this.controller_.props.set("title", o); } - on(o, p) { - const f = p.bind(this); + on(o, u) { + const f = u.bind(this); return this.controller_.emitter.on(o, () => { f(new a(this)); }), this; } } - class vr extends a { - constructor(o, p, f) { - super(o), this.cell = p, this.index = f; + class xr extends a { + constructor(o, u, f) { + super(o), this.cell = u, this.index = f; } } - class _s extends s { + class ys extends s { constructor(o) { super(o), this.cellToApiMap_ = /* @__PURE__ */ new Map(), this.emitter_ = new w(); - const p = this.controller_.valueController; - p.cellControllers.forEach((f, x) => { - const P = new gs(f); - this.cellToApiMap_.set(f, P), f.emitter.on("click", () => { - const L = x % p.size[0], z = Math.floor(x / p.size[0]); + const u = this.controller_.valueController; + u.cellControllers.forEach((f, x) => { + const T = new ws(f); + this.cellToApiMap_.set(f, T), f.emitter.on("click", () => { + const A = x % u.size[0], z = Math.floor(x / u.size[0]); this.emitter_.emit("click", { - event: new vr(this, P, [L, z]) + event: new xr(this, T, [A, z]) }); }); }); } - cell(o, p) { - const f = this.controller_.valueController, x = f.cellControllers[p * f.size[0] + o]; + cell(o, u) { + const f = this.controller_.valueController, x = f.cellControllers[u * f.size[0] + o]; return this.cellToApiMap_.get(x); } - on(o, p) { - const f = p.bind(this); + on(o, u) { + const f = u.bind(this); return this.emitter_.on(o, (x) => { f(x.event); }), this; } } - class Pi { - constructor(o, p) { - this.size = p.size; - const [f, x] = this.size, P = []; - for (let L = 0; L < x; L++) + class ki { + constructor(o, u) { + this.size = u.size; + const [f, x] = this.size, T = []; + for (let A = 0; A < x; A++) for (let z = 0; z < f; z++) { const oe = new G(o, { - props: K.fromObject(Object.assign({}, p.cellConfig(z, L))), + props: K.fromObject(Object.assign({}, u.cellConfig(z, A))), viewProps: be.create() }); - P.push(oe); + T.push(oe); } - this.cellCs_ = P, this.viewProps = be.create(), this.viewProps.handleDispose(() => { - this.cellCs_.forEach((L) => { - L.viewProps.set("disposed", true); + this.cellCs_ = T, this.viewProps = be.create(), this.viewProps.handleDispose(() => { + this.cellCs_.forEach((A) => { + A.viewProps.set("disposed", true); }); - }), this.view = new yt(o, { + }), this.view = new xt(o, { viewProps: this.viewProps, viewName: "btngrid" - }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((L) => { - this.view.element.appendChild(L.view.element); + }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((A) => { + this.view.element.appendChild(A.view.element); }); } get cellControllers() { return this.cellCs_; } } - const br = { + const Er = { id: "buttongrid", type: "blade", // TODO: css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}', accept(m) { - const o = he, p = ee(m, { + const o = he, u = ee(m, { cells: o.required.function, size: o.required.array(o.required.number), view: o.required.constant("buttongrid"), label: o.optional.string }); - return p ? { params: p } : null; + return u ? { params: u } : null; }, controller(m) { - return new st(m.document, { + return new rt(m.document, { blade: m.blade, props: K.fromObject({ label: m.params.label }), - valueController: new Pi(m.document, { + valueController: new ki(m.document, { cellConfig: m.params.cells, size: m.params.size }) }); }, api(m) { - return !(m.controller instanceof st) || !(m.controller.valueController instanceof Pi) ? null : new _s(m.controller); + return !(m.controller instanceof rt) || !(m.controller.valueController instanceof ki) ? null : new ys(m.controller); } }; - class ws extends s { + class xs extends s { get label() { return this.controller_.props.get("label"); } @@ -12189,29 +12265,29 @@ var Ph = { set value(o) { this.controller_.valueController.value.rawValue = o; } - on(o, p) { - const f = p.bind(this); + on(o, u) { + const f = u.bind(this); return this.controller_.valueController.value.emitter.on(o, (x) => { f(new c(this, x.rawValue, void 0, x.options.last)); }), this; } } - function qe(m, o, p) { - return m * (1 - p) + o * p; + function Qe(m, o, u) { + return m * (1 - u) + o * u; } - const gr = 20, _r = 1e-3, Ti = 100; - function wr(m, o) { - let p = 0.25, f = 0.5, x = -1; - for (let P = 0; P < gr; P++) { - const [L, z] = m.curve(f); - if (f += p * (L < o ? 1 : -1), x = z, p *= 0.5, Math.abs(o - L) < _r) + const Cr = 20, Pr = 1e-3, Mi = 100; + function Tr(m, o) { + let u = 0.25, f = 0.5, x = -1; + for (let T = 0; T < Cr; T++) { + const [A, z] = m.curve(f); + if (f += u * (A < o ? 1 : -1), x = z, u *= 0.5, Math.abs(o - A) < Pr) break; } return x; } - class Et { - constructor(o = 0, p = 0, f = 1, x = 1) { - this.cache_ = [], this.comps_ = [o, p, f, x]; + class Ct { + constructor(o = 0, u = 0, f = 1, x = 1) { + this.cache_ = [], this.comps_ = [o, u, f, x]; } get x1() { return this.comps_[0]; @@ -12228,188 +12304,188 @@ var Ph = { static isObject(o) { return h(o) || !Array.isArray(o) ? false : typeof o[0] == "number" && typeof o[1] == "number" && typeof o[2] == "number" && typeof o[3] == "number"; } - static equals(o, p) { - return o.x1 === p.x1 && o.y1 === p.y1 && o.x2 === p.x2 && o.y2 === p.y2; + static equals(o, u) { + return o.x1 === u.x1 && o.y1 === u.y1 && o.x2 === u.x2 && o.y2 === u.y2; } curve(o) { - const p = qe(0, this.x1, o), f = qe(0, this.y1, o), x = qe(this.x1, this.x2, o), P = qe(this.y1, this.y2, o), L = qe(this.x2, 1, o), z = qe(this.y2, 1, o), oe = qe(p, x, o), Qe = qe(f, P, o), Ze = qe(x, L, o), te = qe(P, z, o); - return [qe(oe, Ze, o), qe(Qe, te, o)]; + const u = Qe(0, this.x1, o), f = Qe(0, this.y1, o), x = Qe(this.x1, this.x2, o), T = Qe(this.y1, this.y2, o), A = Qe(this.x2, 1, o), z = Qe(this.y2, 1, o), oe = Qe(u, x, o), Ze = Qe(f, T, o), We = Qe(x, A, o), te = Qe(T, z, o); + return [Qe(oe, We, o), Qe(Ze, te, o)]; } y(o) { if (this.cache_.length === 0) { - const p = []; - for (let f = 0; f < Ti; f++) - p.push(wr(this, Me(f, 0, Ti - 1, 0, 1))); - this.cache_ = p; + const u = []; + for (let f = 0; f < Mi; f++) + u.push(Tr(this, Me2(f, 0, Mi - 1, 0, 1))); + this.cache_ = u; } - return this.cache_[Math.round(Me($t(o, 0, 1), 0, 1, 0, Ti - 1))]; + return this.cache_[Math.round(Me2(Yt(o, 0, 1), 0, 1, 0, Mi - 1))]; } toObject() { return [this.comps_[0], this.comps_[1], this.comps_[2], this.comps_[3]]; } } - const ki = { + const Si = { toComponents: (m) => m.toObject(), - fromComponents: (m) => new Et(...m) + fromComponents: (m) => new Ct(...m) }; - function yr(m) { - const o = Le(2); + function kr(m) { + const o = Re(2); return `cubic-bezier(${m.toObject().map((f) => o(f)).join(", ")})`; } - const Mi = [0, 0.5, 0.5, 1]; - function xr(m) { + const Li = [0, 0.5, 0.5, 1]; + function Mr(m) { const o = m.match(/^cubic-bezier\s*\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*\)$/); if (!o) - return new Et(...Mi); - const p = [o[1], o[2], o[3], o[4]].reduce((f, x) => { + return new Ct(...Li); + const u = [o[1], o[2], o[3], o[4]].reduce((f, x) => { if (!f) return null; - const P = Number(x); - return isNaN(P) ? null : [...f, P]; + const T = Number(x); + return isNaN(T) ? null : [...f, T]; }, []); - return new Et(...p ?? Mi); + return new Ct(...u ?? Li); } - const Rt = y("cbz"); - class ys { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(Rt()), p.viewProps.bindClassModifiers(this.element), p.foldable.bindExpandedClass(this.element, Rt(void 0, "expanded")), R(p.foldable, "completed", F(this.element, Rt(void 0, "cpl"))); + const It = y("cbz"); + class Es { + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(It()), u.viewProps.bindClassModifiers(this.element), u.foldable.bindExpandedClass(this.element, It(void 0, "expanded")), R(u.foldable, "completed", F(this.element, It(void 0, "cpl"))); const f = o.createElement("div"); - f.classList.add(Rt("h")), this.element.appendChild(f); + f.classList.add(It("h")), this.element.appendChild(f); const x = o.createElement("button"); - x.classList.add(Rt("b")), p.viewProps.bindDisabled(x); - const P = o.createElementNS(we2, "svg"); - P.innerHTML = '', x.appendChild(P), f.appendChild(x), this.buttonElement = x; - const L = o.createElement("div"); - if (L.classList.add(Rt("t")), f.appendChild(L), this.textElement = L, p.pickerLayout === "inline") { + x.classList.add(It("b")), u.viewProps.bindDisabled(x); + const T = o.createElementNS(we, "svg"); + T.innerHTML = '', x.appendChild(T), f.appendChild(x), this.buttonElement = x; + const A = o.createElement("div"); + if (A.classList.add(It("t")), f.appendChild(A), this.textElement = A, u.pickerLayout === "inline") { const z = o.createElement("div"); - z.classList.add(Rt("p")), this.element.appendChild(z), this.pickerElement = z; + z.classList.add(It("p")), this.element.appendChild(z), this.pickerElement = z; } else this.pickerElement = null; } } - const Wn = y("cbzp"); - class xs { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(Wn()), p.viewProps.bindClassModifiers(this.element); + const Jn = y("cbzp"); + class Cs { + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(Jn()), u.viewProps.bindClassModifiers(this.element); const f = o.createElement("div"); - f.classList.add(Wn("g")), this.element.appendChild(f), this.graphElement = f; + f.classList.add(Jn("g")), this.element.appendChild(f), this.graphElement = f; const x = o.createElement("div"); - x.classList.add(Wn("t")), this.element.appendChild(x), this.textElement = x; + x.classList.add(Jn("t")), this.element.appendChild(x), this.textElement = x; } } - function at(m, o) { - const p = new MutationObserver((x) => { - for (const P of x) - P.type === "childList" && P.addedNodes.forEach((L) => { - L.contains(L) && (o(), p.disconnect()); + function lt(m, o) { + const u = new MutationObserver((x) => { + for (const T of x) + T.type === "childList" && T.addedNodes.forEach((A) => { + A.contains(A) && (o(), u.disconnect()); }); }), f = m.ownerDocument; - p.observe(f.body, { + u.observe(f.body, { attributes: true, childList: true, subtree: true }); } - const vt = y("cbzg"); - function Er(m, o) { - return (p) => o(m(p)); + const bt = y("cbzg"); + function Sr(m, o) { + return (u) => o(m(u)); } - class Re { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(vt()), p.viewProps.bindClassModifiers(this.element), p.viewProps.bindTabIndex(this.element); + class Ie { + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(bt()), u.viewProps.bindClassModifiers(this.element), u.viewProps.bindTabIndex(this.element); const f = o.createElement("div"); - f.classList.add(vt("p")), this.element.appendChild(f), this.previewElement = f; - const x = o.createElementNS(we2, "svg"); - x.classList.add(vt("g")), this.element.appendChild(x), this.svgElem_ = x; - const P = o.createElementNS(we2, "path"); - P.classList.add(vt("u")), this.svgElem_.appendChild(P), this.guideElem_ = P; - const L = o.createElementNS(we2, "polyline"); - L.classList.add(vt("l")), this.svgElem_.appendChild(L), this.lineElem_ = L, this.handleElems_ = [o.createElement("div"), o.createElement("div")], this.handleElems_.forEach((z) => { - z.classList.add(vt("h")), this.element.appendChild(z); + f.classList.add(bt("p")), this.element.appendChild(f), this.previewElement = f; + const x = o.createElementNS(we, "svg"); + x.classList.add(bt("g")), this.element.appendChild(x), this.svgElem_ = x; + const T = o.createElementNS(we, "path"); + T.classList.add(bt("u")), this.svgElem_.appendChild(T), this.guideElem_ = T; + const A = o.createElementNS(we, "polyline"); + A.classList.add(bt("l")), this.svgElem_.appendChild(A), this.lineElem_ = A, this.handleElems_ = [o.createElement("div"), o.createElement("div")], this.handleElems_.forEach((z) => { + z.classList.add(bt("h")), this.element.appendChild(z); }), this.vectorElems_ = [ - o.createElementNS(we2, "line"), - o.createElementNS(we2, "line") + o.createElementNS(we, "line"), + o.createElementNS(we, "line") ], this.vectorElems_.forEach((z) => { - z.classList.add(vt("v")), this.svgElem_.appendChild(z); - }), this.value_ = p.value, this.value_.emitter.on("change", this.onValueChange_.bind(this)), this.sel_ = p.selection, this.handleElems_.forEach((z, oe) => { - S(this.sel_, Er((Qe) => Qe === oe, F(z, vt("h", "sel")))); - }), at(this.element, () => { + z.classList.add(bt("v")), this.svgElem_.appendChild(z); + }), this.value_ = u.value, this.value_.emitter.on("change", this.onValueChange_.bind(this)), this.sel_ = u.selection, this.handleElems_.forEach((z, oe) => { + S(this.sel_, Sr((Ze) => Ze === oe, F(z, bt("h", "sel")))); + }), lt(this.element, () => { this.refresh(); }); } getVertMargin_(o) { return o * 0.25; } - valueToPosition(o, p) { - const f = this.element.getBoundingClientRect(), x = f.width, P = f.height, L = this.getVertMargin_(P); + valueToPosition(o, u) { + const f = this.element.getBoundingClientRect(), x = f.width, T = f.height, A = this.getVertMargin_(T); return { - x: Me(o, 0, 1, 0, x), - y: Me(p, 0, 1, P - L, L) + x: Me2(o, 0, 1, 0, x), + y: Me2(u, 0, 1, T - A, A) }; } - positionToValue(o, p) { - const f = this.element.getBoundingClientRect(), x = f.width, P = f.height, L = this.getVertMargin_(P); + positionToValue(o, u) { + const f = this.element.getBoundingClientRect(), x = f.width, T = f.height, A = this.getVertMargin_(T); return { - x: $t(Me(o, 0, x, 0, 1), 0, 1), - y: Me(p, P - L, L, 0, 1) + x: Yt(Me2(o, 0, x, 0, 1), 0, 1), + y: Me2(u, T - A, A, 0, 1) }; } refresh() { - this.guideElem_.setAttributeNS(null, "d", [0, 1].map((P) => { - const L = this.valueToPosition(0, P), z = this.valueToPosition(1, P); - return [`M ${L.x},${L.y}`, `L ${z.x},${z.y}`].join(" "); + this.guideElem_.setAttributeNS(null, "d", [0, 1].map((T) => { + const A = this.valueToPosition(0, T), z = this.valueToPosition(1, T); + return [`M ${A.x},${A.y}`, `L ${z.x},${z.y}`].join(" "); }).join(" ")); - const o = this.value_.rawValue, p = []; + const o = this.value_.rawValue, u = []; let f = 0; for (; ; ) { - const P = this.valueToPosition(...o.curve(f)); - if (p.push([P.x, P.y].join(",")), f >= 1) + const T = this.valueToPosition(...o.curve(f)); + if (u.push([T.x, T.y].join(",")), f >= 1) break; f = Math.min(f + 0.05, 1); } - this.lineElem_.setAttributeNS(null, "points", p.join(" ")); + this.lineElem_.setAttributeNS(null, "points", u.join(" ")); const x = o.toObject(); - [0, 1].forEach((P) => { - const L = this.valueToPosition(P, P), z = this.valueToPosition(x[P * 2], x[P * 2 + 1]), oe = this.vectorElems_[P]; - oe.setAttributeNS(null, "x1", String(L.x)), oe.setAttributeNS(null, "y1", String(L.y)), oe.setAttributeNS(null, "x2", String(z.x)), oe.setAttributeNS(null, "y2", String(z.y)); - const Qe = this.handleElems_[P]; - Qe.style.left = `${z.x}px`, Qe.style.top = `${z.y}px`; + [0, 1].forEach((T) => { + const A = this.valueToPosition(T, T), z = this.valueToPosition(x[T * 2], x[T * 2 + 1]), oe = this.vectorElems_[T]; + oe.setAttributeNS(null, "x1", String(A.x)), oe.setAttributeNS(null, "y1", String(A.y)), oe.setAttributeNS(null, "x2", String(z.x)), oe.setAttributeNS(null, "y2", String(z.y)); + const Ze = this.handleElems_[T]; + Ze.style.left = `${z.x}px`, Ze.style.top = `${z.y}px`; }); } onValueChange_() { this.refresh(); } } - const Es = 24, _n = 400, Si = 1e3, Ct = y("cbzprv"); - class qt { - constructor(o, p) { - this.stopped_ = true, this.startTime_ = -1, this.onDispose_ = this.onDispose_.bind(this), this.onTimer_ = this.onTimer_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.element = o.createElement("div"), this.element.classList.add(Ct()), p.viewProps.bindClassModifiers(this.element); - const f = o.createElementNS(we2, "svg"); - f.classList.add(Ct("g")), this.element.appendChild(f), this.svgElem_ = f; - const x = o.createElementNS(we2, "path"); - x.classList.add(Ct("t")), this.svgElem_.appendChild(x), this.ticksElem_ = x; - const P = o.createElement("div"); - P.classList.add(Ct("m")), this.element.appendChild(P), this.markerElem_ = P, this.value_ = p.value, this.value_.emitter.on("change", this.onValueChange_), p.viewProps.handleDispose(this.onDispose_), at(this.element, () => { + const Ps = 24, yn = 400, Ai = 1e3, Pt = y("cbzprv"); + class Zt { + constructor(o, u) { + this.stopped_ = true, this.startTime_ = -1, this.onDispose_ = this.onDispose_.bind(this), this.onTimer_ = this.onTimer_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.element = o.createElement("div"), this.element.classList.add(Pt()), u.viewProps.bindClassModifiers(this.element); + const f = o.createElementNS(we, "svg"); + f.classList.add(Pt("g")), this.element.appendChild(f), this.svgElem_ = f; + const x = o.createElementNS(we, "path"); + x.classList.add(Pt("t")), this.svgElem_.appendChild(x), this.ticksElem_ = x; + const T = o.createElement("div"); + T.classList.add(Pt("m")), this.element.appendChild(T), this.markerElem_ = T, this.value_ = u.value, this.value_.emitter.on("change", this.onValueChange_), u.viewProps.handleDispose(this.onDispose_), lt(this.element, () => { this.refresh(); }); } play() { - this.stop(), this.updateMarker_(0), this.markerElem_.classList.add(Ct("m", "a")), this.startTime_ = (/* @__PURE__ */ new Date()).getTime() + _n, this.stopped_ = false, requestAnimationFrame(this.onTimer_); + this.stop(), this.updateMarker_(0), this.markerElem_.classList.add(Pt("m", "a")), this.startTime_ = (/* @__PURE__ */ new Date()).getTime() + yn, this.stopped_ = false, requestAnimationFrame(this.onTimer_); } stop() { - this.stopped_ = true, this.markerElem_.classList.remove(Ct("m", "a")); + this.stopped_ = true, this.markerElem_.classList.remove(Pt("m", "a")); } onDispose_() { this.stop(); } updateMarker_(o) { - const p = this.value_.rawValue.y($t(o, 0, 1)); - this.markerElem_.style.left = `${p * 100}%`; + const u = this.value_.rawValue.y(Yt(o, 0, 1)); + this.markerElem_.style.left = `${u * 100}%`; } refresh() { - const o = this.svgElem_.getBoundingClientRect(), p = o.width, f = o.height, x = [], P = this.value_.rawValue; - for (let L = 0; L < Es; L++) { - const z = Me(L, 0, Es - 1, 0, 1), oe = Me(P.y(z), 0, 1, 0, p); + const o = this.svgElem_.getBoundingClientRect(), u = o.width, f = o.height, x = [], T = this.value_.rawValue; + for (let A = 0; A < Ps; A++) { + const z = Me2(A, 0, Ps - 1, 0, 1), oe = Me2(T.y(z), 0, 1, 0, u); x.push(`M ${oe},0 v${f}`); } this.ticksElem_.setAttributeNS(null, "d", x.join(" ")); @@ -12417,101 +12493,101 @@ var Ph = { onTimer_() { if (this.startTime_ === null) return; - const o = (/* @__PURE__ */ new Date()).getTime() - this.startTime_, p = o / Si; - this.updateMarker_(p), o > Si + _n && this.stop(), this.stopped_ || requestAnimationFrame(this.onTimer_); + const o = (/* @__PURE__ */ new Date()).getTime() - this.startTime_, u = o / Ai; + this.updateMarker_(u), o > Ai + yn && this.stop(), this.stopped_ || requestAnimationFrame(this.onTimer_); } onValueChange_() { this.refresh(), this.play(); } } - function Oe(m, o, p, f) { - const x = p - m, P = f - o; - return Math.sqrt(x * x + P * P); + function Oe(m, o, u, f) { + const x = u - m, T = f - o; + return Math.sqrt(x * x + T * T); } - function wn(m, o, p, f) { - const x = Oe(m, o, p, f), P = Math.atan2(f - o, p - m), L = Math.round(P / (Math.PI / 4)) * Math.PI / 4; + function xn(m, o, u, f) { + const x = Oe(m, o, u, f), T = Math.atan2(f - o, u - m), A = Math.round(T / (Math.PI / 4)) * Math.PI / 4; return { - x: m + Math.cos(L) * x, - y: o + Math.sin(L) * x + x: m + Math.cos(A) * x, + y: o + Math.sin(A) * x }; } - class lt { - constructor(o, p) { - this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = p.baseStep, this.value = p.value, this.sel_ = H(0), this.viewProps = p.viewProps, this.view = new Re(o, { + class ct { + constructor(o, u) { + this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = u.baseStep, this.value = u.value, this.sel_ = H(0), this.viewProps = u.viewProps, this.view = new Ie(o, { selection: this.sel_, value: this.value, viewProps: this.viewProps - }), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_), this.prevView_ = new qt(o, { + }), this.view.element.addEventListener("keydown", this.onKeyDown_), this.view.element.addEventListener("keyup", this.onKeyUp_), this.prevView_ = new Zt(o, { value: this.value, viewProps: this.viewProps }), this.prevView_.element.addEventListener("mousedown", (x) => { x.stopImmediatePropagation(), x.preventDefault(), this.prevView_.play(); }), this.view.previewElement.appendChild(this.prevView_.element); - const f = new qn(this.view.element); + const f = new Qn(this.view.element); f.emitter.on("down", this.onPointerDown_), f.emitter.on("move", this.onPointerMove_), f.emitter.on("up", this.onPointerUp_); } refresh() { this.view.refresh(), this.prevView_.refresh(), this.prevView_.play(); } - updateValue_(o, p, f) { - const x = this.sel_.rawValue, P = this.value.rawValue.toObject(), L = this.view.positionToValue(o.x, o.y), z = p ? wn(x, x, L.x, L.y) : L; - P[x * 2] = z.x, P[x * 2 + 1] = z.y, this.value.setRawValue(new Et(...P), f); + updateValue_(o, u, f) { + const x = this.sel_.rawValue, T = this.value.rawValue.toObject(), A = this.view.positionToValue(o.x, o.y), z = u ? xn(x, x, A.x, A.y) : A; + T[x * 2] = z.x, T[x * 2 + 1] = z.y, this.value.setRawValue(new Ct(...T), f); } onPointerDown_(o) { - const p = o.data; - if (!p.point) + const u = o.data; + if (!u.point) return; - const f = this.value.rawValue, x = this.view.valueToPosition(f.x1, f.y1), P = Oe(p.point.x, p.point.y, x.x, x.y), L = this.view.valueToPosition(f.x2, f.y2), z = Oe(p.point.x, p.point.y, L.x, L.y); - this.sel_.rawValue = P <= z ? 0 : 1, this.updateValue_(p.point, o.shiftKey, { + const f = this.value.rawValue, x = this.view.valueToPosition(f.x1, f.y1), T = Oe(u.point.x, u.point.y, x.x, x.y), A = this.view.valueToPosition(f.x2, f.y2), z = Oe(u.point.x, u.point.y, A.x, A.y); + this.sel_.rawValue = T <= z ? 0 : 1, this.updateValue_(u.point, o.shiftKey, { forceEmit: false, last: false }); } onPointerMove_(o) { - const p = o.data; - p.point && this.updateValue_(p.point, o.shiftKey, { + const u = o.data; + u.point && this.updateValue_(u.point, o.shiftKey, { forceEmit: false, last: false }); } onPointerUp_(o) { - const p = o.data; - p.point && this.updateValue_(p.point, o.shiftKey, { + const u = o.data; + u.point && this.updateValue_(u.point, o.shiftKey, { forceEmit: true, last: true }); } onKeyDown_(o) { - ls(o.key) && o.preventDefault(); - const p = this.sel_.rawValue, f = this.value.rawValue.toObject(); - f[p * 2] += Kt(this.baseStep_, yi(o)), f[p * 2 + 1] += Kt(this.baseStep_, mn(o)), this.value.setRawValue(new Et(...f), { + us(o.key) && o.preventDefault(); + const u = this.sel_.rawValue, f = this.value.rawValue.toObject(); + f[u * 2] += Xt(this.baseStep_, Ei(o)), f[u * 2 + 1] += Xt(this.baseStep_, vn(o)), this.value.setRawValue(new Ct(...f), { forceEmit: false, last: false }); } onKeyUp_(o) { - ls(o.key) && o.preventDefault(); - const p = Kt(this.baseStep_, yi(o)), f = Kt(this.baseStep_, mn(o)); - p === 0 && f === 0 || this.value.setRawValue(this.value.rawValue, { + us(o.key) && o.preventDefault(); + const u = Xt(this.baseStep_, Ei(o)), f = Xt(this.baseStep_, vn(o)); + u === 0 && f === 0 || this.value.setRawValue(this.value.rawValue, { forceEmit: true, last: true }); } } - class Cs { - constructor(o, p) { - this.value = p.value, this.viewProps = p.viewProps, this.view = new xs(o, { + class Ts { + constructor(o, u) { + this.value = u.value, this.viewProps = u.viewProps, this.view = new Cs(o, { viewProps: this.viewProps - }), this.gc_ = new lt(o, { - baseStep: p.axis.baseStep, + }), this.gc_ = new ct(o, { + baseStep: u.axis.baseStep, value: this.value, viewProps: this.viewProps }), this.view.graphElement.appendChild(this.gc_.view.element); - const f = Object.assign(Object.assign({}, p.axis), { constraint: new St({ max: 1, min: 0 }) }), x = Object.assign(Object.assign({}, p.axis), { constraint: void 0 }); - this.tc_ = new Lt(o, { - assembly: ki, + const f = Object.assign(Object.assign({}, u.axis), { constraint: new Lt({ max: 1, min: 0 }) }), x = Object.assign(Object.assign({}, u.axis), { constraint: void 0 }); + this.tc_ = new Rt(o, { + assembly: Si, axes: [f, x, f, x], - parser: dn, + parser: fn, value: this.value, viewProps: this.viewProps }), this.view.textElement.appendChild(this.tc_.view.element); @@ -12526,24 +12602,24 @@ var Ph = { this.gc_.refresh(); } } - class Jn { - constructor(o, p) { - this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = p.value, this.viewProps = p.viewProps, this.foldable_ = zn(p.expanded), this.view = new ys(o, { + class ei { + constructor(o, u) { + this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = u.value, this.viewProps = u.viewProps, this.foldable_ = Un(u.expanded), this.view = new Es(o, { foldable: this.foldable_, - pickerLayout: p.pickerLayout, + pickerLayout: u.pickerLayout, viewProps: this.viewProps - }), this.view.buttonElement.addEventListener("blur", this.onButtonBlur_), this.view.buttonElement.addEventListener("click", this.onButtonClick_), this.tc_ = new Ut(o, { - parser: xr, + }), this.view.buttonElement.addEventListener("blur", this.onButtonBlur_), this.view.buttonElement.addEventListener("click", this.onButtonClick_), this.tc_ = new Ht(o, { + parser: Mr, props: K.fromObject({ - formatter: yr + formatter: kr }), value: this.value, viewProps: this.viewProps - }), this.view.textElement.appendChild(this.tc_.view.element), this.popC_ = p.pickerLayout === "popup" ? new ie(o, { + }), this.view.textElement.appendChild(this.tc_.view.element), this.popC_ = u.pickerLayout === "popup" ? new ie(o, { viewProps: this.viewProps }) : null; - const f = new Cs(o, { - axis: p.axis, + const f = new Ts(o, { + axis: u.axis, value: this.value, viewProps: this.viewProps }); @@ -12551,18 +12627,18 @@ var Ph = { x.addEventListener("blur", this.onPopupChildBlur_), x.addEventListener("keydown", this.onPopupChildKeydown_); }), this.pickerC_ = f, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), S(this.popC_.shows, (x) => { x && f.refresh(); - }), Ht({ + }), $t({ primary: this.foldable_.value("expanded"), secondary: this.popC_.shows, forward: (x) => x.rawValue, - backward: (x, P) => P.rawValue - })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Gn(this.foldable_, this.view.pickerElement)); + backward: (x, T) => T.rawValue + })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Hn(this.foldable_, this.view.pickerElement)); } onButtonBlur_(o) { if (!this.popC_) return; - const p = o.relatedTarget; - (!p || !this.popC_.view.element.contains(p)) && (this.popC_.shows.rawValue = false); + const u = o.relatedTarget; + (!u || !this.popC_.view.element.contains(u)) && (this.popC_.shows.rawValue = false); } onButtonClick_() { this.foldable_.set("expanded", !this.foldable_.get("expanded")), this.foldable_.get("expanded") && this.pickerC_.allFocusableElements[0].focus(); @@ -12570,64 +12646,64 @@ var Ph = { onPopupChildBlur_(o) { if (!this.popC_) return; - const p = this.popC_.view.element, f = an(o); - f && p.contains(f) || f && f === this.view.buttonElement && !Xe(p.ownerDocument) || (this.popC_.shows.rawValue = false); + const u = this.popC_.view.element, f = cn(o); + f && u.contains(f) || f && f === this.view.buttonElement && !Ye(u.ownerDocument) || (this.popC_.shows.rawValue = false); } onPopupChildKeydown_(o) { this.popC_ && o.key === "Escape" && (this.popC_.shows.rawValue = false); } } - function Ai() { - return new ur({ - assembly: ki, - components: [0, 1, 2, 3].map((m) => m % 2 === 0 ? new St({ + function Ri() { + return new br({ + assembly: Si, + components: [0, 1, 2, 3].map((m) => m % 2 === 0 ? new Lt({ min: 0, max: 1 }) : void 0) }); } - const It = { + const Vt = { id: "cubic-bezier", type: "blade", css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}', accept(m) { - const o = he, p = ee(m, { + const o = he, u = ee(m, { value: o.required.array(o.required.number), view: o.required.constant("cubicbezier"), expanded: o.optional.boolean, label: o.optional.string, picker: o.optional.custom((f) => f === "inline" || f === "popup" ? f : void 0) }); - return p ? { params: p } : null; + return u ? { params: u } : null; }, controller(m) { - var o, p; - const f = new Et(...m.params.value), x = H(f, { - constraint: Ai(), - equals: Et.equals - }), P = new Jn(m.document, { + var o, u; + const f = new Ct(...m.params.value), x = H(f, { + constraint: Ri(), + equals: Ct.equals + }), T = new ei(m.document, { axis: { baseStep: 0.1, textProps: K.fromObject({ draggingScale: 0.01, - formatter: Le(2) + formatter: Re(2) }) }, expanded: (o = m.params.expanded) !== null && o !== void 0 ? o : false, - pickerLayout: (p = m.params.picker) !== null && p !== void 0 ? p : "popup", + pickerLayout: (u = m.params.picker) !== null && u !== void 0 ? u : "popup", value: x, viewProps: m.viewProps }); - return new Mt2(m.document, { + return new St(m.document, { blade: m.blade, props: K.fromObject({ label: m.params.label }), - valueController: P + valueController: T }); }, api(m) { - return !(m.controller instanceof Mt2) || !(m.controller.valueController instanceof Jn) ? null : new ws(m.controller); + return !(m.controller instanceof St) || !(m.controller.valueController instanceof ei) ? null : new xs(m.controller); } }; class _e extends s { @@ -12638,7 +12714,7 @@ var Ph = { this.controller_.valueController.end(); } } - const Li = 20; + const Ii = 20; class Se { constructor() { this.start_ = null, this.duration_ = 0, this.fps_ = null, this.frameCount_ = 0, this.timestamps_ = []; @@ -12655,51 +12731,51 @@ var Ph = { calculateFps_(o) { if (this.timestamps_.length === 0) return null; - const p = this.timestamps_[0]; - return 1e3 * (this.frameCount_ - p.frameCount) / (o - p.time); + const u = this.timestamps_[0]; + return 1e3 * (this.frameCount_ - u.frameCount) / (o - u.time); } compactTimestamps_() { - if (this.timestamps_.length <= Li) + if (this.timestamps_.length <= Ii) return; - const o = this.timestamps_.length - Li; + const o = this.timestamps_.length - Ii; this.timestamps_.splice(0, o); - const p = this.timestamps_[0].frameCount; + const u = this.timestamps_[0].frameCount; this.timestamps_.forEach((f) => { - f.frameCount -= p; - }), this.frameCount_ -= p; + f.frameCount -= u; + }), this.frameCount_ -= u; } end(o) { if (this.start_ === null) return; - const p = o.getTime(); - this.duration_ = p - this.start_, this.start_ = null, this.fps_ = this.calculateFps_(p), this.timestamps_.push({ + const u = o.getTime(); + this.duration_ = u - this.start_, this.start_ = null, this.fps_ = this.calculateFps_(u), this.timestamps_.push({ frameCount: this.frameCount_, - time: p + time: u }), ++this.frameCount_, this.compactTimestamps_(); } } - const Qt = y("fps"); + const Wt = y("fps"); class He { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(Qt()), p.viewProps.bindClassModifiers(this.element), this.graphElement = o.createElement("div"), this.graphElement.classList.add(Qt("g")), this.element.appendChild(this.graphElement); + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(Wt()), u.viewProps.bindClassModifiers(this.element), this.graphElement = o.createElement("div"), this.graphElement.classList.add(Wt("g")), this.element.appendChild(this.graphElement); const f = o.createElement("div"); - f.classList.add(Qt("l")), this.element.appendChild(f); + f.classList.add(Wt("l")), this.element.appendChild(f); const x = o.createElement("span"); - x.classList.add(Qt("v")), x.textContent = "--", f.appendChild(x), this.valueElement = x; - const P = o.createElement("span"); - P.classList.add(Qt("u")), P.textContent = "FPS", f.appendChild(P); + x.classList.add(Wt("v")), x.textContent = "--", f.appendChild(x), this.valueElement = x; + const T = o.createElement("span"); + T.classList.add(Wt("u")), T.textContent = "FPS", f.appendChild(T); } } - class Ri { - constructor(o, p) { - this.stopwatch_ = new Se(), this.onTick_ = this.onTick_.bind(this), this.ticker_ = p.ticker, this.ticker_.emitter.on("tick", this.onTick_), this.value_ = p.value, this.viewProps = p.viewProps, this.view = new He(o, { + class Vi { + constructor(o, u) { + this.stopwatch_ = new Se(), this.onTick_ = this.onTick_.bind(this), this.ticker_ = u.ticker, this.ticker_.emitter.on("tick", this.onTick_), this.value_ = u.value, this.viewProps = u.viewProps, this.view = new He(o, { viewProps: this.viewProps - }), this.graphC_ = new fr(o, { - formatter: Le(0), - lineCount: p.lineCount, + }), this.graphC_ = new yr(o, { + formatter: Re(0), + lineCount: u.lineCount, props: K.fromObject({ - maxValue: p.maxValue, - minValue: p.minValue + maxValue: u.maxValue, + minValue: u.minValue }), value: this.value_, viewProps: this.viewProps @@ -12716,19 +12792,19 @@ var Ph = { onTick_() { const o = this.stopwatch_.fps; if (o !== null) { - const p = this.value_.rawValue; - this.value_.rawValue = ir(p, o), this.view.valueElement.textContent = o.toFixed(0); + const u = this.value_.rawValue; + this.value_.rawValue = cr(u, o), this.view.valueElement.textContent = o.toFixed(0); } } } - function yn(m, o) { - return o === 0 ? new Hn() : new cn(m, o ?? mr.monitor.defaultInterval); + function En(m, o) { + return o === 0 ? new Kn() : new pn(m, o ?? wr.monitor.defaultInterval); } - const Ii = { + const Di = { id: "fpsgraph", type: "blade", accept(m) { - const o = he, p = ee(m, { + const o = he, u = ee(m, { view: o.required.constant("fpsgraph"), interval: o.optional.number, label: o.optional.string, @@ -12736,42 +12812,42 @@ var Ph = { max: o.optional.number, min: o.optional.number }); - return p ? { params: p } : null; + return u ? { params: u } : null; }, controller(m) { - var o, p, f, x; - const P = (o = m.params.interval) !== null && o !== void 0 ? o : 500; - return new st(m.document, { + var o, u, f, x; + const T = (o = m.params.interval) !== null && o !== void 0 ? o : 500; + return new rt(m.document, { blade: m.blade, props: K.fromObject({ label: m.params.label }), - valueController: new Ri(m.document, { - lineCount: (p = m.params.lineCount) !== null && p !== void 0 ? p : 2, + valueController: new Vi(m.document, { + lineCount: (u = m.params.lineCount) !== null && u !== void 0 ? u : 2, maxValue: (f = m.params.max) !== null && f !== void 0 ? f : 90, minValue: (x = m.params.min) !== null && x !== void 0 ? x : 0, - ticker: yn(m.document, P), - value: os(80), + ticker: En(m.document, T), + value: ls(80), viewProps: m.viewProps }) }); }, api(m) { - return !(m.controller instanceof st) || !(m.controller.valueController instanceof Ri) ? null : new _e(m.controller); + return !(m.controller instanceof rt) || !(m.controller.valueController instanceof Vi) ? null : new _e(m.controller); } }; class Ke { - constructor(o, p) { - this.min = o, this.max = p; + constructor(o, u) { + this.min = o, this.max = u; } static isObject(o) { if (typeof o != "object" || o === null) return false; - const p = o.min, f = o.max; - return !(typeof p != "number" || typeof f != "number"); + const u = o.min, f = o.max; + return !(typeof u != "number" || typeof f != "number"); } - static equals(o, p) { - return o.min === p.min && o.max === p.max; + static equals(o, u) { + return o.min === u.min && o.max === u.max; } get length() { return this.max - this.min; @@ -12783,56 +12859,56 @@ var Ph = { }; } } - const Vi = { + const Oi = { fromComponents: (m) => new Ke(m[0], m[1]), toComponents: (m) => [m.min, m.max] }; - class xn { + class Cn { constructor(o) { this.edge = o; } constrain(o) { - var p, f, x, P, L, z, oe, Qe; + var u, f, x, T, A, z, oe, Ze; if (o.min <= o.max) - return new Ke((f = (p = this.edge) === null || p === void 0 ? void 0 : p.constrain(o.min)) !== null && f !== void 0 ? f : o.min, (P = (x = this.edge) === null || x === void 0 ? void 0 : x.constrain(o.max)) !== null && P !== void 0 ? P : o.max); - const Ze = (o.min + o.max) / 2; - return new Ke((z = (L = this.edge) === null || L === void 0 ? void 0 : L.constrain(Ze)) !== null && z !== void 0 ? z : Ze, (Qe = (oe = this.edge) === null || oe === void 0 ? void 0 : oe.constrain(Ze)) !== null && Qe !== void 0 ? Qe : Ze); + return new Ke((f = (u = this.edge) === null || u === void 0 ? void 0 : u.constrain(o.min)) !== null && f !== void 0 ? f : o.min, (T = (x = this.edge) === null || x === void 0 ? void 0 : x.constrain(o.max)) !== null && T !== void 0 ? T : o.max); + const We = (o.min + o.max) / 2; + return new Ke((z = (A = this.edge) === null || A === void 0 ? void 0 : A.constrain(We)) !== null && z !== void 0 ? z : We, (Ze = (oe = this.edge) === null || oe === void 0 ? void 0 : oe.constrain(We)) !== null && Ze !== void 0 ? Ze : We); } } - const Di = y("rsltxt"); - class ei { - constructor(o, p) { - this.sliderView_ = p.sliderView, this.textView_ = p.textView, this.element = o.createElement("div"), this.element.classList.add(Di()); + const Ni = y("rsltxt"); + class ti { + constructor(o, u) { + this.sliderView_ = u.sliderView, this.textView_ = u.textView, this.element = o.createElement("div"), this.element.classList.add(Ni()); const f = o.createElement("div"); - f.classList.add(Di("s")), f.appendChild(this.sliderView_.element), this.element.appendChild(f); + f.classList.add(Ni("s")), f.appendChild(this.sliderView_.element), this.element.appendChild(f); const x = o.createElement("div"); - x.classList.add(Di("t")), x.appendChild(this.textView_.element), this.element.appendChild(x); + x.classList.add(Ni("t")), x.appendChild(this.textView_.element), this.element.appendChild(x); } } - const tt = y("rsl"); - class En { - constructor(o, p) { - this.onSliderPropsChange_ = this.onSliderPropsChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.sliderProps_ = p.sliderProps, this.sliderProps_.emitter.on("change", this.onSliderPropsChange_), this.element = o.createElement("div"), this.element.classList.add(tt()), p.viewProps.bindClassModifiers(this.element), this.value_ = p.value, this.value_.emitter.on("change", this.onValueChange_); + const nt = y("rsl"); + class Pn { + constructor(o, u) { + this.onSliderPropsChange_ = this.onSliderPropsChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.sliderProps_ = u.sliderProps, this.sliderProps_.emitter.on("change", this.onSliderPropsChange_), this.element = o.createElement("div"), this.element.classList.add(nt()), u.viewProps.bindClassModifiers(this.element), this.value_ = u.value, this.value_.emitter.on("change", this.onValueChange_); const f = o.createElement("div"); - f.classList.add(tt("t")), this.element.appendChild(f), this.trackElement = f; + f.classList.add(nt("t")), this.element.appendChild(f), this.trackElement = f; const x = o.createElement("div"); - x.classList.add(tt("b")), f.appendChild(x), this.barElement = x; - const P = ["min", "max"].map((L) => { + x.classList.add(nt("b")), f.appendChild(x), this.barElement = x; + const T = ["min", "max"].map((A) => { const z = o.createElement("div"); - return z.classList.add(tt("k"), tt("k", L)), f.appendChild(z), z; + return z.classList.add(nt("k"), nt("k", A)), f.appendChild(z), z; }); - this.knobElements = [P[0], P[1]], this.update_(); + this.knobElements = [T[0], T[1]], this.update_(); } valueToX_(o) { - const p = this.sliderProps_.get("minValue"), f = this.sliderProps_.get("maxValue"); - return $t(Me(o, p, f, 0, 1), 0, 1) * 100; + const u = this.sliderProps_.get("minValue"), f = this.sliderProps_.get("maxValue"); + return Yt(Me2(o, u, f, 0, 1), 0, 1) * 100; } update_() { const o = this.value_.rawValue; - o.length === 0 ? this.element.classList.add(tt(void 0, "zero")) : this.element.classList.remove(tt(void 0, "zero")); - const p = [this.valueToX_(o.min), this.valueToX_(o.max)]; - this.barElement.style.left = `${p[0]}%`, this.barElement.style.right = `${100 - p[1]}%`, this.knobElements.forEach((f, x) => { - f.style.left = `${p[x]}%`; + o.length === 0 ? this.element.classList.add(nt(void 0, "zero")) : this.element.classList.remove(nt(void 0, "zero")); + const u = [this.valueToX_(o.min), this.valueToX_(o.max)]; + this.barElement.style.left = `${u[0]}%`, this.barElement.style.right = `${100 - u[1]}%`, this.knobElements.forEach((f, x) => { + f.style.left = `${u[x]}%`; }); } onSliderPropsChange_() { @@ -12842,14 +12918,14 @@ var Ph = { this.update_(); } } - class Oi { - constructor(o, p) { - this.grabbing_ = null, this.grabOffset_ = 0, this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.sliderProps = p.sliderProps, this.viewProps = p.viewProps, this.value = p.value, this.view = new En(o, { + class Fi { + constructor(o, u) { + this.grabbing_ = null, this.grabOffset_ = 0, this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.sliderProps = u.sliderProps, this.viewProps = u.viewProps, this.value = u.value, this.view = new Pn(o, { sliderProps: this.sliderProps, value: this.value, - viewProps: p.viewProps + viewProps: u.viewProps }); - const f = new qn(this.view.trackElement); + const f = new Qn(this.view.trackElement); f.emitter.on("down", this.onPointerDown_), f.emitter.on("move", this.onPointerMove_), f.emitter.on("up", this.onPointerUp_); } ofs_() { @@ -12858,28 +12934,28 @@ var Ph = { valueFromData_(o) { if (!o.point) return null; - const p = (o.point.x + this.ofs_()) / o.bounds.width, f = this.sliderProps.get("minValue"), x = this.sliderProps.get("maxValue"); - return Me(p, 0, 1, f, x); + const u = (o.point.x + this.ofs_()) / o.bounds.width, f = this.sliderProps.get("minValue"), x = this.sliderProps.get("maxValue"); + return Me2(u, 0, 1, f, x); } onPointerDown_(o) { if (!o.data.point) return; - const p = o.data.point.x / o.data.bounds.width, f = this.value.rawValue, x = this.sliderProps.get("minValue"), P = this.sliderProps.get("maxValue"), L = Me(f.min, x, P, 0, 1), z = Me(f.max, x, P, 0, 1); - Math.abs(z - p) <= 0.025 ? this.grabbing_ = "max" : Math.abs(L - p) <= 0.025 ? this.grabbing_ = "min" : p >= L && p <= z ? (this.grabbing_ = "length", this.grabOffset_ = Me(p - L, 0, 1, 0, P - x)) : p < L ? (this.grabbing_ = "min", this.onPointerMove_(o)) : p > z && (this.grabbing_ = "max", this.onPointerMove_(o)); + const u = o.data.point.x / o.data.bounds.width, f = this.value.rawValue, x = this.sliderProps.get("minValue"), T = this.sliderProps.get("maxValue"), A = Me2(f.min, x, T, 0, 1), z = Me2(f.max, x, T, 0, 1); + Math.abs(z - u) <= 0.025 ? this.grabbing_ = "max" : Math.abs(A - u) <= 0.025 ? this.grabbing_ = "min" : u >= A && u <= z ? (this.grabbing_ = "length", this.grabOffset_ = Me2(u - A, 0, 1, 0, T - x)) : u < A ? (this.grabbing_ = "min", this.onPointerMove_(o)) : u > z && (this.grabbing_ = "max", this.onPointerMove_(o)); } - applyPointToValue_(o, p) { + applyPointToValue_(o, u) { const f = this.valueFromData_(o); if (f === null) return; - const x = this.sliderProps.get("minValue"), P = this.sliderProps.get("maxValue"); + const x = this.sliderProps.get("minValue"), T = this.sliderProps.get("maxValue"); if (this.grabbing_ === "min") - this.value.setRawValue(new Ke(f, this.value.rawValue.max), p); + this.value.setRawValue(new Ke(f, this.value.rawValue.max), u); else if (this.grabbing_ === "max") - this.value.setRawValue(new Ke(this.value.rawValue.min, f), p); + this.value.setRawValue(new Ke(this.value.rawValue.min, f), u); else if (this.grabbing_ === "length") { - const L = this.value.rawValue.length; - let z = f - this.grabOffset_, oe = z + L; - z < x ? (z = x, oe = x + L) : oe > P && (z = P - L, oe = P), this.value.setRawValue(new Ke(z, oe), p); + const A = this.value.rawValue.length; + let z = f - this.grabOffset_, oe = z + A; + z < x ? (z = x, oe = x + A) : oe > T && (z = T - A, oe = T), this.value.setRawValue(new Ke(z, oe), u); } } onPointerMove_(o) { @@ -12895,24 +12971,24 @@ var Ph = { }), this.grabbing_ = null; } } - class bt { - constructor(o, p) { - this.value = p.value, this.viewProps = p.viewProps, this.sc_ = new Oi(o, p); + class gt { + constructor(o, u) { + this.value = u.value, this.viewProps = u.viewProps, this.sc_ = new Fi(o, u); const f = { - baseStep: p.baseStep, - constraint: p.constraint, + baseStep: u.baseStep, + constraint: u.constraint, textProps: K.fromObject({ - draggingScale: p.draggingScale, - formatter: p.formatter + draggingScale: u.draggingScale, + formatter: u.formatter }) }; - this.tc_ = new Lt(o, { - assembly: Vi, + this.tc_ = new Rt(o, { + assembly: Oi, axes: [f, f], - parser: p.parser, + parser: u.parser, value: this.value, - viewProps: p.viewProps - }), this.view = new ei(o, { + viewProps: u.viewProps + }), this.view = new ti(o, { sliderView: this.sc_.view, textView: this.tc_.view }); @@ -12921,30 +12997,30 @@ var Ph = { return this.tc_; } } - function Ps(m) { + function ks(m) { return Ke.isObject(m) ? new Ke(m.min, m.max) : new Ke(0, 0); } - function Ni(m, o) { + function Bi(m, o) { m.writeProperty("max", o.max), m.writeProperty("min", o.min); } - function Cr(m) { - const o = [], p = gn(m); - p && o.push(p); - const f = dr(m); - return f && o.push(f), new xn(new Kn(o)); + function Lr(m) { + const o = [], u = wn(m); + u && o.push(u); + const f = _r(m); + return f && o.push(f), new Cn(new $n(o)); } - const ti = { + const ni = { id: "input-interval", type: "input", css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}', accept: (m, o) => { if (!Ke.isObject(m)) return null; - const p = he, f = ee(o, { - format: p.optional.function, - max: p.optional.number, - min: p.optional.number, - step: p.optional.number + const u = he, f = ee(o, { + format: u.optional.function, + max: u.optional.number, + min: u.optional.number, + step: u.optional.number }); return f ? { initialValue: new Ke(m.min, m.max), @@ -12952,49 +13028,49 @@ var Ph = { } : null; }, binding: { - reader: (m) => Ps, - constraint: (m) => Cr(m.params), + reader: (m) => ks, + constraint: (m) => Lr(m.params), equals: Ke.equals, - writer: (m) => Ni + writer: (m) => Bi }, controller(m) { var o; - const p = m.value, f = m.constraint; - if (!(f instanceof xn)) + const u = m.value, f = m.constraint; + if (!(f instanceof Cn)) throw g.shouldNeverHappen(); - const x = (p.rawValue.min + p.rawValue.max) / 2, P = (o = m.params.format) !== null && o !== void 0 ? o : Le(vn(f.edge, x)), L = f.edge && xt(f.edge, ft); - if (L) - return new bt(m.document, { - baseStep: Ei(f.edge), + const x = (u.rawValue.min + u.rawValue.max) / 2, T = (o = m.params.format) !== null && o !== void 0 ? o : Re(gn(f.edge, x)), A = f.edge && Et2(f.edge, vt); + if (A) + return new gt(m.document, { + baseStep: Pi(f.edge), constraint: f.edge, - draggingScale: Qn(f.edge, x), - formatter: P, - parser: dn, + draggingScale: Zn(f.edge, x), + formatter: T, + parser: fn, sliderProps: new K({ - maxValue: L.values.value("max"), - minValue: L.values.value("min") + maxValue: A.values.value("max"), + minValue: A.values.value("min") }), - value: p, + value: u, viewProps: m.viewProps }); const z = { - baseStep: Ei(f.edge), + baseStep: Pi(f.edge), constraint: f.edge, textProps: K.fromObject({ draggingScale: x, - formatter: P + formatter: T }) }; - return new Lt(m.document, { - assembly: Vi, + return new Rt(m.document, { + assembly: Oi, axes: [z, z], - parser: dn, - value: p, + parser: fn, + value: u, viewProps: m.viewProps }); } }; - class Vt { + class Dt { constructor(o) { this.controller_ = o; } @@ -13012,105 +13088,105 @@ var Ph = { this.controller_.props.set("title", o); } } - class Dt extends c { - constructor(o, p, f, x, P) { - super(o, x, P), this.cell = p, this.index = f; + class Ot extends c { + constructor(o, u, f, x, T) { + super(o, x, T), this.cell = u, this.index = f; } } - class Cn extends s { + class Tn extends s { constructor(o) { super(o), this.cellToApiMap_ = /* @__PURE__ */ new Map(), this.controller_.valueController.cellControllers.forEach((f) => { - const x = new Vt(f); + const x = new Dt(f); this.cellToApiMap_.set(f, x); }); } get value() { return this.controller_.value; } - cell(o, p) { - const f = this.controller_.valueController, x = f.cellControllers[p * f.size[0] + o]; + cell(o, u) { + const f = this.controller_.valueController, x = f.cellControllers[u * f.size[0] + o]; return this.cellToApiMap_.get(x); } - on(o, p) { - const f = p.bind(this); + on(o, u) { + const f = u.bind(this); this.controller_.value.emitter.on(o, (x) => { - const P = this.controller_.valueController, L = P.findCellByValue(x.rawValue); - if (!L) + const T = this.controller_.valueController, A = T.findCellByValue(x.rawValue); + if (!A) return; - const z = this.cellToApiMap_.get(L); + const z = this.cellToApiMap_.get(A); if (!z) return; - const oe = P.cellControllers.indexOf(L); - f(new Dt(this, z, [oe % P.size[0], Math.floor(oe / P.size[0])], x.rawValue, void 0)); + const oe = T.cellControllers.indexOf(A); + f(new Ot(this, z, [oe % T.size[0], Math.floor(oe / T.size[0])], x.rawValue, void 0)); }); } } - const Pn = y("rad"); - class Ts { - constructor(o, p) { - this.element = o.createElement("div"), this.element.classList.add(Pn()), p.viewProps.bindClassModifiers(this.element); + const kn = y("rad"); + class Ms { + constructor(o, u) { + this.element = o.createElement("div"), this.element.classList.add(kn()), u.viewProps.bindClassModifiers(this.element); const f = o.createElement("label"); - f.classList.add(Pn("l")), this.element.appendChild(f); + f.classList.add(kn("l")), this.element.appendChild(f); const x = o.createElement("input"); - x.classList.add(Pn("i")), x.name = p.name, x.type = "radio", p.viewProps.bindDisabled(x), f.appendChild(x), this.inputElement = x; - const P = o.createElement("div"); - P.classList.add(Pn("b")), f.appendChild(P); - const L = o.createElement("div"); - L.classList.add(Pn("t")), P.appendChild(L), R(p.props, "title", (z) => { - L.textContent = z; + x.classList.add(kn("i")), x.name = u.name, x.type = "radio", u.viewProps.bindDisabled(x), f.appendChild(x), this.inputElement = x; + const T = o.createElement("div"); + T.classList.add(kn("b")), f.appendChild(T); + const A = o.createElement("div"); + A.classList.add(kn("t")), T.appendChild(A), R(u.props, "title", (z) => { + A.textContent = z; }); } } - class ks { - constructor(o, p) { - this.props = p.props, this.viewProps = p.viewProps, this.view = new Ts(o, { - name: p.name, + class Ss { + constructor(o, u) { + this.props = u.props, this.viewProps = u.viewProps, this.view = new Ms(o, { + name: u.name, props: this.props, viewProps: this.viewProps }); } } - class ni { - constructor(o, p) { - this.cellCs_ = [], this.cellValues_ = [], this.onCellInputChange_ = this.onCellInputChange_.bind(this), this.size = p.size; + class ii { + constructor(o, u) { + this.cellCs_ = [], this.cellValues_ = [], this.onCellInputChange_ = this.onCellInputChange_.bind(this), this.size = u.size; const [f, x] = this.size; - for (let P = 0; P < x; P++) - for (let L = 0; L < f; L++) { - const z = new ks(o, { - name: p.groupName, - props: K.fromObject(Object.assign({}, p.cellConfig(L, P))), + for (let T = 0; T < x; T++) + for (let A = 0; A < f; A++) { + const z = new Ss(o, { + name: u.groupName, + props: K.fromObject(Object.assign({}, u.cellConfig(A, T))), viewProps: be.create() }); - this.cellCs_.push(z), this.cellValues_.push(p.cellConfig(L, P).value); + this.cellCs_.push(z), this.cellValues_.push(u.cellConfig(A, T).value); } - this.value = p.value, S(this.value, (P) => { - const L = this.findCellByValue(P); - L && (L.view.inputElement.checked = true); - }), this.viewProps = be.create(), this.view = new yt(o, { + this.value = u.value, S(this.value, (T) => { + const A = this.findCellByValue(T); + A && (A.view.inputElement.checked = true); + }), this.viewProps = be.create(), this.view = new xt(o, { viewProps: this.viewProps, viewName: "radgrid" - }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((P) => { - P.view.inputElement.addEventListener("change", this.onCellInputChange_), this.view.element.appendChild(P.view.element); + }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((T) => { + T.view.inputElement.addEventListener("change", this.onCellInputChange_), this.view.element.appendChild(T.view.element); }); } get cellControllers() { return this.cellCs_; } findCellByValue(o) { - const p = this.cellValues_.findIndex((f) => f === o); - return p < 0 ? null : this.cellCs_[p]; + const u = this.cellValues_.findIndex((f) => f === o); + return u < 0 ? null : this.cellCs_[u]; } onCellInputChange_(o) { - const p = o.currentTarget, f = this.cellCs_.findIndex((x) => x.view.inputElement === p); + const u = o.currentTarget, f = this.cellCs_.findIndex((x) => x.view.inputElement === u); f < 0 || (this.value.rawValue = this.cellValues_[f]); } } - const Ot = function() { + const Nt = function() { return { id: "radiogrid", type: "blade", accept(m) { - const o = he, p = ee(m, { + const o = he, u = ee(m, { cells: o.required.function, groupName: o.required.string, size: o.required.array(o.required.number), @@ -13118,15 +13194,15 @@ var Ph = { view: o.required.constant("radiogrid"), label: o.optional.string }); - return p ? { params: p } : null; + return u ? { params: u } : null; }, controller(m) { - return new Mt2(m.document, { + return new St(m.document, { blade: m.blade, props: K.fromObject({ label: m.params.label }), - valueController: new ni(m.document, { + valueController: new ii(m.document, { groupName: m.params.groupName, cellConfig: m.params.cells, size: m.params.size, @@ -13135,18 +13211,18 @@ var Ph = { }); }, api(m) { - return !(m.controller instanceof Mt2) || !(m.controller.valueController instanceof ni) ? null : new Cn(m.controller); + return !(m.controller instanceof St) || !(m.controller.valueController instanceof ii) ? null : new Tn(m.controller); } }; }(); - function Fi(m) { + function ji(m) { return { id: "input-radiogrid", type: "input", - accept(o, p) { + accept(o, u) { if (!m.isType(o)) return null; - const f = he, x = ee(p, { + const f = he, x = ee(u, { cells: f.required.function, groupName: f.required.string, size: f.required.array(f.required.number), @@ -13158,7 +13234,7 @@ var Ph = { } : null; }, binding: m.binding, - controller: (o) => new ni(o.document, { + controller: (o) => new ii(o.document, { cellConfig: o.params.cells, groupName: o.params.groupName, size: o.params.size, @@ -13166,116 +13242,116 @@ var Ph = { }) }; } - const Pr = Fi({ + const Ar = ji({ isType: (m) => typeof m == "number", binding: { - reader: (m) => tr, - writer: (m) => et + reader: (m) => ar, + writer: (m) => tt } - }), Tr = Fi({ + }), Rr = ji({ isType: (m) => typeof m == "string", binding: { - reader: (m) => rs, - writer: (m) => et + reader: (m) => as, + writer: (m) => tt } - }), kr = Fi({ + }), Ir = ji({ isType: (m) => typeof m == "boolean", binding: { - reader: (m) => pn, - writer: (m) => et - } - }), Ms = [ - br, - It, - Ii, - ti, - Ot, - kr, - Pr, - Tr + reader: (m) => hn, + writer: (m) => tt + } + }), Ls = [ + Er, + Vt, + Di, + ni, + Nt, + Ir, + Ar, + Rr ]; - r.ButtonCellApi = gs, r.ButtonGridApi = _s, r.ButtonGridController = Pi, r.CubicBezier = Et, r.CubicBezierApi = ws, r.CubicBezierAssembly = ki, r.CubicBezierController = Jn, r.CubicBezierGraphController = lt, r.CubicBezierGraphView = Re, r.CubicBezierPickerController = Cs, r.CubicBezierPickerView = xs, r.CubicBezierPreviewView = qt, r.CubicBezierView = ys, r.FpsGraphBladeApi = _e, r.FpsGraphController = Ri, r.FpsView = He, r.Fpswatch = Se, r.Interval = Ke, r.IntervalAssembly = Vi, r.IntervalConstraint = xn, r.RadioCellApi = Vt, r.RadioController = ks, r.RadioGridApi = Cn, r.RadioGridController = ni, r.RadioView = Ts, r.RangeSliderController = Oi, r.RangeSliderTextController = bt, r.RangeSliderTextView = ei, r.RangeSliderView = En, r.TpRadioGridChangeEvent = Dt, r.plugins = Ms, Object.defineProperty(r, "__esModule", { value: true }); + r.ButtonCellApi = ws, r.ButtonGridApi = ys, r.ButtonGridController = ki, r.CubicBezier = Ct, r.CubicBezierApi = xs, r.CubicBezierAssembly = Si, r.CubicBezierController = ei, r.CubicBezierGraphController = ct, r.CubicBezierGraphView = Ie, r.CubicBezierPickerController = Ts, r.CubicBezierPickerView = Cs, r.CubicBezierPreviewView = Zt, r.CubicBezierView = Es, r.FpsGraphBladeApi = _e, r.FpsGraphController = Vi, r.FpsView = He, r.Fpswatch = Se, r.Interval = Ke, r.IntervalAssembly = Oi, r.IntervalConstraint = Cn, r.RadioCellApi = Dt, r.RadioController = Ss, r.RadioGridApi = Tn, r.RadioGridController = ii, r.RadioView = Ms, r.RangeSliderController = Fi, r.RangeSliderTextController = gt, r.RangeSliderTextView = ti, r.RangeSliderView = Pn, r.TpRadioGridChangeEvent = Ot, r.plugins = Ls, Object.defineProperty(r, "__esModule", { value: true }); }); -})(Ph, Ji); -var Th = ih(Ji); -var kh = Np({ +})(Oh, ts); +var Nh = dh(ts); +var Fh = Gu({ __proto__: null, - default: Th -}, [Ji]); -var Ln; -var Ds; -var md = (b = "tres-container") => { - Ln || (Ln = new js.Pane({ - container: document.querySelector(b) || void 0 - }), Ln.registerPlugin(kh), Ds = Ln.addBlade({ + default: Nh +}, [ts]); +var In; +var Ns; +var Sd = (v = "tres-container") => { + In || (In = new Gs.Pane({ + container: document.querySelector(v) || void 0 + }), In.registerPlugin(Fh), Ns = In.addBlade({ view: "fpsgraph", label: "fpsgraph" })); - function i() { - Ln && Ln.dispose(); + function n() { + In && In.dispose(); } return onMounted(() => { - const { onBeforeLoop: r, onAfterLoop: s, resume: a } = we(); - a(), r(() => Ds.begin()), s(() => Ds.end()); + const { onBeforeLoop: r, onAfterLoop: s, resume: a } = Me(); + a(), r(() => Ns.begin()), s(() => Ns.end()); }), onUnmounted(() => { - i(); - }), { pane: Ln, fpsGraph: Ds, disposeTweakPane: i }; + n(); + }), { pane: In, fpsGraph: Ns, disposeTweakPane: n }; }; -function fd(b, i) { - const r = ref(i), s = new AnimationMixer(r.value), a = shallowReactive({}); - b.forEach((u) => { - const h = s.clipAction(u, r.value); - a[u.name] = h; +function Ld(v, n) { + const r = ref(n), s = new AnimationMixer(r.value), a = shallowReactive({}); + v.forEach((p) => { + const h = s.clipAction(p, r.value); + a[p.name] = h; }); - const { onLoop: c } = we(); - return c(({ delta: u }) => { - s.update(u); + const { onLoop: c } = Me(); + return c(({ delta: p }) => { + s.update(p); }), { actions: a, mixer: s }; } -var Os = null; -function Mh(b, i) { +var Fs = null; +function Bh(v, n) { return (r) => { - i && i(r), b.draco && (Os || (Os = new rh()), Os.setDecoderPath(b.decoderPath || "https://www.gstatic.com/draco/versioned/decoders/1.4.3/"), r.setDRACOLoader(Os)); + n && n(r), v.draco && (Fs || (Fs = new fh()), Fs.setDecoderPath(v.decoderPath || "https://www.gstatic.com/draco/versioned/decoders/1.4.3/"), r.setDRACOLoader(Fs)); }; } -async function Sh(b, i = { +async function jh(v, n = { draco: false }, r) { - return await Mt(su, b, Mh(i, r)); + return await Et(mp, v, Bh(n, r)); } -var vd = defineComponent({ +var Ad = defineComponent({ name: "GLTFModel", props: ["path", "draco", "decoderPath"], - async setup(b, { expose: i }) { - const { state: r } = Fn(), s = ref(); - i({ model: s }); - const { scene: a } = await Sh(b.path, { draco: b.draco, decoderPath: b.decoderPath }); + async setup(v, { expose: n }) { + const { state: r } = Gt(), s = ref(); + n({ model: s }); + const { scene: a } = await jh(v.path, { draco: v.draco, decoderPath: v.decoderPath }); return s.value = a, r.scene && r.scene.add(a), () => { }; } }); -async function Ah(b) { - return await Mt(Uu, b); +async function zh(v) { + return await Et(Wp, v); } -var bd = defineComponent({ +var Rd = defineComponent({ name: "FBXModel", props: ["path"], - async setup(b, { expose: i }) { - const { state: r } = Fn(); + async setup(v, { expose: n }) { + const { state: r } = Gt(); let s = null; function a() { return s; } - return i({ getModel: a }), s = await Ah(b.path), r.scene && s.isObject3D && r.scene.add(s), () => { + return n({ getModel: a }), s = await zh(v.path), r.scene && s.isObject3D && r.scene.add(s), () => { }; } }); -var Lh = { key: 0 }; -var Rh = ["args", "center"]; -var gd = defineComponent({ +var Uh = { key: 0 }; +var Gh = ["args", "center"]; +var Id = defineComponent({ __name: "Text3D", props: { font: null, @@ -13290,14 +13366,14 @@ var gd = defineComponent({ bevelSegments: { default: 4 }, center: { type: Boolean, default: false } }, - async setup(b) { - let i, r; - const s = b, { extend: a } = Fn(); - a({ TextGeometry: Vu }); - const c = new eh(), u = useSlots(), h = computed(() => { + async setup(v) { + let n, r; + const s = v, { extend: a } = Gt(); + a({ TextGeometry: Hp }); + const c = new uh(), p = useSlots(), h = computed(() => { var w; - return s.text ? s.text : u.default ? (w = u.default()[0].children) == null ? void 0 : w.trim() : "TresJS"; - }), d = ([i, r] = withAsyncContext(() => new Promise((w, _) => { + return s.text ? s.text : p.default ? (w = p.default()[0].children) == null ? void 0 : w.trim() : "TresJS"; + }), d = ([n, r] = withAsyncContext(() => new Promise((w, _) => { try { typeof s.font == "string" ? c.load(s.font, (y) => { w(y); @@ -13305,7 +13381,7 @@ var gd = defineComponent({ } catch (y) { _(console.error("cientos", y)); } - })), i = await i, r(), i), g = computed(() => ({ + })), n = await n, r(), n), g = computed(() => ({ font: d, size: s.size, height: s.height, @@ -13316,182 +13392,182 @@ var gd = defineComponent({ bevelOffset: s.bevelOffset, bevelSegments: s.bevelSegments })); - return (w, _) => unref(d) ? (openBlock(), createElementBlock("TresMesh", Lh, [ + return (w, _) => unref(d) ? (openBlock(), createElementBlock("TresMesh", Uh, [ unref(h) ? (openBlock(), createElementBlock("TresTextGeometry", { key: 0, args: [unref(h), unref(g)], - center: b.center - }, null, 8, Rh)) : createCommentVNode("", true), + center: v.center + }, null, 8, Gh)) : createCommentVNode("", true), renderSlot(w.$slots, "default") ])) : createCommentVNode("", true); } }); -var Ih = ["rotation"]; -var Vh = ["args"]; -var Dh = ["color"]; -var _d = defineComponent({ +var Hh = ["rotation"]; +var Kh = ["args"]; +var $h = ["color"]; +var Vd = defineComponent({ __name: "Plane", props: { args: { default: () => [1, 1] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "planeRef", ref: r, rotation: [-Math.PI / 2, 0, 0] }, s.$attrs), [ - createBaseVNode("TresPlaneGeometry", { args: b.args }, null, 8, Vh), + createBaseVNode("TresPlaneGeometry", { args: v.args }, null, 8, Kh), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Dh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, $h) ]) - ], 16, Ih)); + ], 16, Hh)); } }); -var Oh = ["args"]; -var Nh = ["color"]; -var wd = defineComponent({ +var Xh = ["args"]; +var Yh = ["color"]; +var Dd = defineComponent({ __name: "Box", props: { args: { default: () => [1, 1, 1] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "boxRef", ref: r }, s.$attrs), [ - createBaseVNode("TresBoxGeometry", { args: b.args }, null, 8, Oh), + createBaseVNode("TresBoxGeometry", { args: v.args }, null, 8, Xh), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Nh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, Yh) ]) ], 16)); } }); -var Fh = ["args"]; -var Bh = ["color"]; -var yd = defineComponent({ +var qh = ["args"]; +var Qh = ["color"]; +var Od = defineComponent({ __name: "Sphere", props: { args: { default: () => [2, 32, 16] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "sphereRef", ref: r }, s.$attrs), [ - createBaseVNode("TresSphereGeometry", { args: b.args }, null, 8, Fh), + createBaseVNode("TresSphereGeometry", { args: v.args }, null, 8, qh), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Bh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, Qh) ]) ], 16)); } }); -var jh = ["args"]; -var zh = ["color"]; -var xd = defineComponent({ +var Zh = ["args"]; +var Wh = ["color"]; +var Nd = defineComponent({ __name: "Torus", props: { args: { default: () => [1, 1, 16, 80] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "torusRef", ref: r }, s.$attrs), [ - createBaseVNode("TresTorusGeometry", { args: b.args }, null, 8, jh), + createBaseVNode("TresTorusGeometry", { args: v.args }, null, 8, Zh), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, zh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, Wh) ]) ], 16)); } }); -var Uh = ["args"]; -var Gh = ["color"]; -var Ed = defineComponent({ +var Jh = ["args"]; +var ed = ["color"]; +var Fd = defineComponent({ __name: "TorusKnot", props: { args: { default: () => [1, 0.4, 64, 8] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "torusKnotRef", ref: r }, s.$attrs), [ - createBaseVNode("TresTorusKnotGeometry", { args: b.args }, null, 8, Uh), + createBaseVNode("TresTorusKnotGeometry", { args: v.args }, null, 8, Jh), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Gh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, ed) ]) ], 16)); } }); -var Hh = ["args"]; -var Kh = ["color"]; -var Cd = defineComponent({ +var td = ["args"]; +var nd = ["color"]; +var Bd = defineComponent({ __name: "Circle", props: { args: { default: () => [1, 32, 0, Math.PI * 2] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "circleRef", ref: r }, s.$attrs), [ - createBaseVNode("TresCircleGeometry", { args: b.args }, null, 8, Hh), + createBaseVNode("TresCircleGeometry", { args: v.args }, null, 8, td), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Kh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, nd) ]) ], 16)); } }); -var $h = ["args"]; -var Xh = ["color"]; -var Pd = defineComponent({ +var id = ["args"]; +var sd = ["color"]; +var jd = defineComponent({ __name: "Cone", props: { args: { default: () => [1, 1, 12, false, 0, Math.PI * 2] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "coneRef", ref: r }, s.$attrs), [ - createBaseVNode("TresConeGeometry", { args: b.args }, null, 8, $h), + createBaseVNode("TresConeGeometry", { args: v.args }, null, 8, id), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Xh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, sd) ]) ], 16)); } }); -var Yh = ["args"]; -var qh = ["color"]; -var Td = defineComponent({ +var rd = ["args"]; +var od = ["color"]; +var zd = defineComponent({ __name: "Tube", props: { args: { default: () => [ @@ -13503,200 +13579,259 @@ var Td = defineComponent({ ] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "tubeRef", ref: r }, s.$attrs), [ - createBaseVNode("TresTubeGeometry", { args: b.args }, null, 8, Yh), + createBaseVNode("TresTubeGeometry", { args: v.args }, null, 8, rd), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, qh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, od) ]) ], 16)); } }); -var Qh = ["args"]; -var Zh = ["color"]; -var kd = defineComponent({ +var ad = ["args"]; +var ld = ["color"]; +var Ud = defineComponent({ __name: "Ring", props: { args: { default: () => [0.5, 1, 32] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "ringRef", ref: r }, s.$attrs), [ - createBaseVNode("TresRingGeometry", { args: b.args }, null, 8, Qh), + createBaseVNode("TresRingGeometry", { args: v.args }, null, 8, ad), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, Zh) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, ld) ]) ], 16)); } }); -var Wh = ["rotation"]; -var Jh = ["args"]; -var ed = ["color"]; -var Md = defineComponent({ +var cd = ["rotation"]; +var ud = ["args"]; +var pd = ["color"]; +var Gd = defineComponent({ __name: "Tetrahedron", props: { args: { default: () => [1, 0] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "tetrahedronRef", ref: r, rotation: [-Math.PI / 2, 0, 0] }, s.$attrs), [ - createBaseVNode("TresTetrahedronGeometry", { args: b.args }, null, 8, Jh), + createBaseVNode("TresTetrahedronGeometry", { args: v.args }, null, 8, ud), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, ed) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, pd) ]) - ], 16, Wh)); + ], 16, cd)); } }); -var td = ["args"]; -var nd = ["color"]; -var Sd = defineComponent({ +var hd = ["args"]; +var dd = ["color"]; +var Hd = defineComponent({ __name: "Icosahedron", props: { args: { default: () => [1, 0] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "icosahedronRef", ref: r }, s.$attrs), [ - createBaseVNode("TresIcosahedronGeometry", { args: b.args }, null, 8, td), + createBaseVNode("TresIcosahedronGeometry", { args: v.args }, null, 8, hd), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, nd) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, dd) ]) ], 16)); } }); -var id = ["args"]; -var sd = ["color"]; -var Ad = defineComponent({ +var md = ["args"]; +var fd = ["color"]; +var Kd = defineComponent({ __name: "Octahedron", props: { args: { default: () => [1, 0] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "octahedronRef", ref: r }, s.$attrs), [ - createBaseVNode("TresOctahedronGeometry", { args: b.args }, null, 8, id), + createBaseVNode("TresOctahedronGeometry", { args: v.args }, null, 8, md), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, sd) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, fd) ]) ], 16)); } }); -var rd = ["args"]; -var od = ["color"]; -var Ld = defineComponent({ +var vd = ["args"]; +var bd = ["color"]; +var $d = defineComponent({ __name: "Dodecahedron", props: { args: { default: () => [1, 0] }, color: { default: "0xffffff" } }, - setup(b, { expose: i }) { + setup(v, { expose: n }) { const r = shallowRef(); - return i({ + return n({ value: r }), (s, a) => (openBlock(), createElementBlock("TresMesh", mergeProps({ ref_key: "dodecahedronRef", ref: r }, s.$attrs), [ - createBaseVNode("TresDodecahedronGeometry", { args: b.args }, null, 8, rd), + createBaseVNode("TresDodecahedronGeometry", { args: v.args }, null, 8, vd), renderSlot(s.$slots, "default", {}, () => [ - createBaseVNode("TresMeshBasicMaterial", { color: b.color }, null, 8, od) + createBaseVNode("TresMeshBasicMaterial", { color: v.color }, null, 8, bd) ]) ], 16)); } }); -var eo = { +var ao = { sunset: "venice/venice_sunset_4k.hdr" }; -async function ad({ - files: b = ["/px.png", "/nx.png", "/py.png", "/ny.png", "/pz.png", "/nz.png"], - blur: i = 0, +async function gd({ + files: v = ["/px.png", "/nx.png", "/py.png", "/ny.png", "/pz.png", "/nz.png"], + blur: n = 0, background: r = false, path: s = "/", preset: a = void 0, encoding: c = void 0 }) { - const { state: u } = Fn(); + const { state: p } = Gt(); if (a) { - if (!(a in eo)) - throw new Error("Preset must be one of: " + Object.keys(eo).join(", ")); - b = eo[a], s = "https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/"; + if (!(a in ao)) + throw new Error("Preset must be one of: " + Object.keys(ao).join(", ")); + v = ao[a], s = "https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/"; } - const h = Array.isArray(b), g = await Mt( - h ? CubeTextureLoader : sh, - h ? [b] : b, + const h = Array.isArray(v), g = await Et( + h ? CubeTextureLoader : mh, + h ? [v] : v, (_) => { s && _.setPath(s), c && (_.encoding = c); } ), w = h ? g[0] : g; - return w && (w.mapping = h ? CubeReflectionMapping : EquirectangularReflectionMapping, w.encoding = c ?? h ? sRGBEncoding : LinearEncoding), u.scene && (u.scene.environment = w, r !== void 0 && (u.scene.background = w), i && (u.scene.backgroundBlurriness = i | 0)), w; + return w && (w.mapping = h ? CubeReflectionMapping : EquirectangularReflectionMapping, w.encoding = c ?? h ? sRGBEncoding : LinearEncoding), p.scene && (p.scene.environment = w, r !== void 0 && (p.scene.background = w), n && (p.scene.backgroundBlurriness = n | 0)), w; } -var Rd = defineComponent({ +var Xd = defineComponent({ name: "Environment", props: ["background", "blur", "files", "encoding", "path", "preset"], - async setup(b, { expose: i }) { + async setup(v, { expose: n }) { let r = null; - return i({ getTexture: () => r }), r = await ad(b), () => { + return n({ getTexture: () => r }), r = await gd(v), () => { }; } }); +var _d = class extends MeshStandardMaterial { + constructor(r = {}) { + super(r); + Zr(this, "_time"); + Zr(this, "_factor"); + this.setValues(r), this._time = { value: 0 }, this._factor = { value: 1 }; + } + onBeforeCompile(r) { + r.uniforms.time = this._time, r.uniforms.factor = this._factor, r.vertexShader = ` + uniform float time; + uniform float factor; + ${r.vertexShader} + `, r.vertexShader = r.vertexShader.replace( + "#include ", + `float theta = sin( time + position.y ) / 2.0 * factor; + float c = cos( theta ); + float s = sin( theta ); + mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c ); + vec3 transformed = vec3( position ) * m; + vNormal = vNormal * m;` + ); + } + get time() { + return this._time.value; + } + set time(r) { + this._time.value = r; + } + get factor() { + return this._factor.value; + } + set factor(r) { + this._factor.value = r; + } +}; +var wd = ["factor"]; +var Yd = defineComponent({ + __name: "index", + props: { + speed: { default: 1 }, + factor: { default: 1 } + }, + setup(v) { + const n = v, r = shallowRef(), { extend: s } = Gt(); + s({ MeshWobbleMaterial: _d }); + const { onLoop: a } = Me(); + return watchEffect(() => { + console.log(r.value); + }), a(({ elapsed: c }) => { + r.value && (r.value.time = c * (n == null ? void 0 : n.speed)); + }), (c, p) => (openBlock(), createElementBlock("TresMeshWobbleMaterial", mergeProps({ + ref_key: "materialRef", + ref: r, + factor: v.factor + }, c.$attrs), null, 16, wd)); + } +}); export { - wd as Box, - Cd as Circle, - Pd as Cone, - Ld as Dodecahedron, - Rd as Environment, - bd as FBXModel, - vd as GLTFModel, - Sd as Icosahedron, - Ad as Octahedron, - ud as OrbitControls, - dd as PamCameraMouse, - _d as Plane, - kd as Ring, - yd as Sphere, - Md as Tetrahedron, - gd as Text3D, - xd as Torus, - Ed as TorusKnot, - hd as TransformControls, - Td as Tube, - fd as useAnimations, - ad as useEnvironment, - Ah as useFBX, - Sh as useGLTF, - Eh as usePamCameraMouse, - md as useTweakPane + Dd as Box, + Bd as Circle, + jd as Cone, + $d as Dodecahedron, + Xd as Environment, + Rd as FBXModel, + Ad as GLTFModel, + Hd as Icosahedron, + Yd as MeshWobbleMaterial, + Kd as Octahedron, + Pd as OrbitControls, + Md as PamCameraMouse, + Vd as Plane, + Td as PointerLockControls, + Ud as Ring, + Od as Sphere, + Gd as Tetrahedron, + Id as Text3D, + Nd as Torus, + Fd as TorusKnot, + kd as TransformControls, + zd as Tube, + Ld as useAnimations, + gd as useEnvironment, + zh as useFBX, + jh as useGLTF, + Vh as usePamCameraMouse, + Sd as useTweakPane }; /*! Bundled license information: diff --git a/docs/.vitepress/cache/deps/@tresjs_cientos.js.map b/docs/.vitepress/cache/deps/@tresjs_cientos.js.map index 67d933834..165cff770 100644 --- a/docs/.vitepress/cache/deps/@tresjs_cientos.js.map +++ b/docs/.vitepress/cache/deps/@tresjs_cientos.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../../../node_modules/.pnpm/@tresjs+cientos@2.0.0-beta.0_tmfoxhtycm6gvt37fuuvp77ciy/node_modules/@tresjs/cientos/dist/trescientos.js"], - "sourcesContent": ["/**\n * name: @tresjs/cientos\n * version: v2.0.0-alpha.5\n * (c) 2023\n * description: Collection of useful helpers and fully functional, ready-made abstractions for Tres\n * author: Alvaro Saburido (https://github.com/alvarosabu/)\n */\nimport { inject as sa, defineComponent as Ie, ref as on, watch as uo, unref as jt, openBlock as Be, createElementBlock as je, createCommentVNode as to, shallowRef as Je, computed as Yi, watchEffect as ho, onUnmounted as Ca, renderSlot as $e, getCurrentInstance as Yc, onMounted as Pa, nextTick as qc, getCurrentScope as Qc, onScopeDispose as Zc, shallowReactive as Wc, useSlots as Jc, withAsyncContext as ep, mergeProps as nt, createElementVNode as xe } from \"vue\";\nimport { useTres as tp, useLogger as np, useRenderLoop as Ta, useLoader as mo } from \"@tresjs/core\";\nimport { Object3D as On, Raycaster as ip, Vector3 as $, Quaternion as Te, Euler as pi, Matrix4 as Ee, Color as ke, MeshBasicMaterial as Dn, DoubleSide as fo, LineBasicMaterial as vo, CylinderGeometry as gt, BoxGeometry as Sn, BufferGeometry as zt, Float32BufferAttribute as Bt, Mesh as Z, Line as pe, OctahedronGeometry as An, PlaneGeometry as Rn, TorusGeometry as Ls, SphereGeometry as sp, EventDispatcher as rp, MOUSE as ai, TOUCH as li, PerspectiveCamera as sn, Spherical as ra, Vector2 as pt, OrthographicCamera as Ki, Loader as zs, LoaderUtils as Tt, FileLoader as ui, SpotLight as ka, PointLight as no, DirectionalLight as Ma, sRGBEncoding as ht, MeshPhysicalMaterial as Nn, TangentSpaceNormalMap as op, TextureLoader as Sa, ImageBitmapLoader as ap, InterleavedBuffer as lp, InterleavedBufferAttribute as cp, BufferAttribute as Ns, LinearFilter as Fs, LinearMipmapLinearFilter as Aa, RepeatWrapping as qi, PointsMaterial as pp, Material as Kr, MeshStandardMaterial as bo, PropertyBinding as Qi, SkinnedMesh as La, LineSegments as up, LineLoop as hp, Points as dp, Group as $i, MathUtils as wt, InterpolateLinear as Ra, AnimationClip as Ia, Bone as io, Skeleton as Va, TriangleFanDrawMode as Da, NearestFilter as mp, NearestMipmapNearestFilter as fp, LinearMipmapNearestFilter as vp, NearestMipmapLinearFilter as bp, ClampToEdgeWrapping as so, MirroredRepeatWrapping as gp, InterpolateDiscrete as _p, FrontSide as wp, Texture as Bs, TriangleStripDrawMode as yp, VectorKeyframeTrack as Oa, QuaternionKeyframeTrack as ro, NumberKeyframeTrack as Na, Box3 as xp, Sphere as Ep, Interpolant as Cp, ExtrudeGeometry as Pp, Vector4 as Us, Curve as Tp, MeshPhongMaterial as $r, MeshLambertMaterial as kp, EquirectangularReflectionMapping as Fa, AmbientLight as Mp, Uint16BufferAttribute as Sp, Matrix3 as Ap, ShapePath as Lp, DataTextureLoader as Rp, HalfFloatType as Rs, FloatType as Xr, DataUtils as Is, LinearEncoding as Ba, AnimationMixer as Ip, QuadraticBezierCurve3 as Vp, CubeReflectionMapping as Dp, CubeTextureLoader as Op } from \"three\";\nfunction Np(b, i) {\n for (var r = 0; r < i.length; r++) {\n const s = i[r];\n if (typeof s != \"string\" && !Array.isArray(s)) {\n for (const a in s)\n if (a !== \"default\" && !(a in b)) {\n const c = Object.getOwnPropertyDescriptor(s, a);\n c && Object.defineProperty(b, a, c.get ? c : {\n enumerable: !0,\n get: () => s[a]\n });\n }\n }\n }\n return Object.freeze(Object.defineProperty(b, Symbol.toStringTag, { value: \"Module\" }));\n}\nfunction Zi(b) {\n return Zi = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(i) {\n return typeof i;\n } : function(i) {\n return i && typeof Symbol == \"function\" && i.constructor === Symbol && i !== Symbol.prototype ? \"symbol\" : typeof i;\n }, Zi(b);\n}\nfunction Fp(b, i) {\n if (Zi(b) !== \"object\" || b === null)\n return b;\n var r = b[Symbol.toPrimitive];\n if (r !== void 0) {\n var s = r.call(b, i || \"default\");\n if (Zi(s) !== \"object\")\n return s;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (i === \"string\" ? String : Number)(b);\n}\nfunction Bp(b) {\n var i = Fp(b, \"string\");\n return Zi(i) === \"symbol\" ? i : String(i);\n}\nfunction T(b, i, r) {\n return i = Bp(i), i in b ? Object.defineProperty(b, i, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : b[i] = r, b;\n}\nvar ut = Uint8Array, rn = Uint16Array, oo = Uint32Array, ja = new ut([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n]), za = new ut([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n]), jp = new ut([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Ua = function(b, i) {\n for (var r = new rn(31), s = 0; s < 31; ++s)\n r[s] = i += 1 << b[s - 1];\n for (var a = new oo(r[30]), s = 1; s < 30; ++s)\n for (var c = r[s]; c < r[s + 1]; ++c)\n a[c] = c - r[s] << 5 | s;\n return [r, a];\n}, Ga = Ua(ja, 2), Ha = Ga[0], zp = Ga[1];\nHa[28] = 258, zp[258] = 28;\nvar Up = Ua(za, 0), Gp = Up[0], ao = new rn(32768);\nfor (var Ce = 0; Ce < 32768; ++Ce) {\n var tn = (Ce & 43690) >>> 1 | (Ce & 21845) << 1;\n tn = (tn & 52428) >>> 2 | (tn & 13107) << 2, tn = (tn & 61680) >>> 4 | (tn & 3855) << 4, ao[Ce] = ((tn & 65280) >>> 8 | (tn & 255) << 8) >>> 1;\n}\nvar Xi = function(b, i, r) {\n for (var s = b.length, a = 0, c = new rn(i); a < s; ++a)\n ++c[b[a] - 1];\n var u = new rn(i);\n for (a = 0; a < i; ++a)\n u[a] = u[a - 1] + c[a - 1] << 1;\n var h;\n if (r) {\n h = new rn(1 << i);\n var d = 15 - i;\n for (a = 0; a < s; ++a)\n if (b[a])\n for (var g = a << 4 | b[a], w = i - b[a], _ = u[b[a] - 1]++ << w, y = _ | (1 << w) - 1; _ <= y; ++_)\n h[ao[_] >>> d] = g;\n } else\n for (h = new rn(s), a = 0; a < s; ++a)\n b[a] && (h[a] = ao[u[b[a] - 1]++] >>> 15 - b[a]);\n return h;\n}, es = new ut(288);\nfor (var Ce = 0; Ce < 144; ++Ce)\n es[Ce] = 8;\nfor (var Ce = 144; Ce < 256; ++Ce)\n es[Ce] = 9;\nfor (var Ce = 256; Ce < 280; ++Ce)\n es[Ce] = 7;\nfor (var Ce = 280; Ce < 288; ++Ce)\n es[Ce] = 8;\nvar Ka = new ut(32);\nfor (var Ce = 0; Ce < 32; ++Ce)\n Ka[Ce] = 5;\nvar Hp = /* @__PURE__ */ Xi(es, 9, 1), Kp = /* @__PURE__ */ Xi(Ka, 5, 1), Yr = function(b) {\n for (var i = b[0], r = 1; r < b.length; ++r)\n b[r] > i && (i = b[r]);\n return i;\n}, _t = function(b, i, r) {\n var s = i / 8 | 0;\n return (b[s] | b[s + 1] << 8) >> (i & 7) & r;\n}, qr = function(b, i) {\n var r = i / 8 | 0;\n return (b[r] | b[r + 1] << 8 | b[r + 2] << 16) >> (i & 7);\n}, $p = function(b) {\n return (b / 8 | 0) + (b & 7 && 1);\n}, Xp = function(b, i, r) {\n (i == null || i < 0) && (i = 0), (r == null || r > b.length) && (r = b.length);\n var s = new (b instanceof rn ? rn : b instanceof oo ? oo : ut)(r - i);\n return s.set(b.subarray(i, r)), s;\n}, Yp = function(b, i, r) {\n var s = b.length;\n if (!s || r && !r.l && s < 5)\n return i || new ut(0);\n var a = !i || r, c = !r || r.i;\n r || (r = {}), i || (i = new ut(s * 3));\n var u = function(Ve) {\n var Ne = i.length;\n if (Ve > Ne) {\n var we = new ut(Math.max(Ne * 2, Ve));\n we.set(i), i = we;\n }\n }, h = r.f || 0, d = r.p || 0, g = r.b || 0, w = r.l, _ = r.d, y = r.m, C = r.n, I = s * 8;\n do {\n if (!w) {\n r.f = h = _t(b, d, 1);\n var S = _t(b, d + 1, 3);\n if (d += 3, S)\n if (S == 1)\n w = Hp, _ = Kp, y = 9, C = 5;\n else if (S == 2) {\n var V = _t(b, d, 31) + 257, D = _t(b, d + 10, 15) + 4, Y = V + _t(b, d + 5, 31) + 1;\n d += 14;\n for (var G = new ut(Y), N = new ut(19), O = 0; O < D; ++O)\n N[jp[O]] = _t(b, d + O * 3, 7);\n d += D * 3;\n for (var H = Yr(N), K = (1 << H) - 1, q = Xi(N, H, 1), O = 0; O < Y; ) {\n var ue = q[_t(b, d, K)];\n d += ue & 15;\n var R = ue >>> 4;\n if (R < 16)\n G[O++] = R;\n else {\n var ge = 0, ce = 0;\n for (R == 16 ? (ce = 3 + _t(b, d, 3), d += 2, ge = G[O - 1]) : R == 17 ? (ce = 3 + _t(b, d, 7), d += 3) : R == 18 && (ce = 11 + _t(b, d, 127), d += 7); ce--; )\n G[O++] = ge;\n }\n }\n var me = G.subarray(0, V), he = G.subarray(V);\n y = Yr(me), C = Yr(he), w = Xi(me, y, 1), _ = Xi(he, C, 1);\n } else\n throw \"invalid block type\";\n else {\n var R = $p(d) + 4, j = b[R - 4] | b[R - 3] << 8, F = R + j;\n if (F > s) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n a && u(g + j), i.set(b.subarray(R, F), g), r.b = g += j, r.p = d = F * 8;\n continue;\n }\n if (d > I) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n }\n a && u(g + 131072);\n for (var ee = (1 << y) - 1, X = (1 << C) - 1, Pe = d; ; Pe = d) {\n var ge = w[qr(b, d) & ee], fe = ge >>> 4;\n if (d += ge & 15, d > I) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n if (!ge)\n throw \"invalid length/literal\";\n if (fe < 256)\n i[g++] = fe;\n else if (fe == 256) {\n Pe = d, w = null;\n break;\n } else {\n var ae = fe - 254;\n if (fe > 264) {\n var O = fe - 257, ne = ja[O];\n ae = _t(b, d, (1 << ne) - 1) + Ha[O], d += ne;\n }\n var be = _[qr(b, d) & X], M = be >>> 4;\n if (!be)\n throw \"invalid distance\";\n d += be & 15;\n var he = Gp[M];\n if (M > 3) {\n var ne = za[M];\n he += qr(b, d) & (1 << ne) - 1, d += ne;\n }\n if (d > I) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n a && u(g + 131072);\n for (var le = g + ae; g < le; g += 4)\n i[g] = i[g - he], i[g + 1] = i[g + 1 - he], i[g + 2] = i[g + 2 - he], i[g + 3] = i[g + 3 - he];\n g = le;\n }\n }\n r.l = w, r.p = Pe, r.b = g, w && (h = 1, r.m = y, r.d = _, r.n = C);\n } while (!h);\n return g == i.length ? i : Xp(i, 0, g);\n}, qp = /* @__PURE__ */ new ut(0), Qp = function(b) {\n if ((b[0] & 15) != 8 || b[0] >>> 4 > 7 || (b[0] << 8 | b[1]) % 31)\n throw \"invalid zlib data\";\n if (b[1] & 32)\n throw \"invalid zlib data: preset dictionaries not supported\";\n};\nfunction Zp(b, i) {\n return Yp((Qp(b), b.subarray(2, -4)), i);\n}\nvar Wp = typeof TextDecoder < \"u\" && /* @__PURE__ */ new TextDecoder(), Jp = 0;\ntry {\n Wp.decode(qp, { stream: !0 }), Jp = 1;\n} catch {\n}\nclass eu extends On {\n // events\n constructor(i, r) {\n super(), T(this, \"isTransformControls\", !0), T(this, \"visible\", !1), T(this, \"domElement\", void 0), T(this, \"raycaster\", new ip()), T(this, \"gizmo\", void 0), T(this, \"plane\", void 0), T(this, \"tempVector\", new $()), T(this, \"tempVector2\", new $()), T(this, \"tempQuaternion\", new Te()), T(this, \"unit\", {\n X: new $(1, 0, 0),\n Y: new $(0, 1, 0),\n Z: new $(0, 0, 1)\n }), T(this, \"pointStart\", new $()), T(this, \"pointEnd\", new $()), T(this, \"offset\", new $()), T(this, \"rotationAxis\", new $()), T(this, \"startNorm\", new $()), T(this, \"endNorm\", new $()), T(this, \"rotationAngle\", 0), T(this, \"cameraPosition\", new $()), T(this, \"cameraQuaternion\", new Te()), T(this, \"cameraScale\", new $()), T(this, \"parentPosition\", new $()), T(this, \"parentQuaternion\", new Te()), T(this, \"parentQuaternionInv\", new Te()), T(this, \"parentScale\", new $()), T(this, \"worldPositionStart\", new $()), T(this, \"worldQuaternionStart\", new Te()), T(this, \"worldScaleStart\", new $()), T(this, \"worldPosition\", new $()), T(this, \"worldQuaternion\", new Te()), T(this, \"worldQuaternionInv\", new Te()), T(this, \"worldScale\", new $()), T(this, \"eye\", new $()), T(this, \"positionStart\", new $()), T(this, \"quaternionStart\", new Te()), T(this, \"scaleStart\", new $()), T(this, \"camera\", void 0), T(this, \"object\", void 0), T(this, \"enabled\", !0), T(this, \"axis\", null), T(this, \"mode\", \"translate\"), T(this, \"translationSnap\", null), T(this, \"rotationSnap\", null), T(this, \"scaleSnap\", null), T(this, \"space\", \"world\"), T(this, \"size\", 1), T(this, \"dragging\", !1), T(this, \"showX\", !0), T(this, \"showY\", !0), T(this, \"showZ\", !0), T(this, \"changeEvent\", {\n type: \"change\"\n }), T(this, \"mouseDownEvent\", {\n type: \"mouseDown\",\n mode: this.mode\n }), T(this, \"mouseUpEvent\", {\n type: \"mouseUp\",\n mode: this.mode\n }), T(this, \"objectChangeEvent\", {\n type: \"objectChange\"\n }), T(this, \"intersectObjectWithRay\", (a, c, u) => {\n const h = c.intersectObject(a, !0);\n for (let d = 0; d < h.length; d++)\n if (h[d].object.visible || u)\n return h[d];\n return !1;\n }), T(this, \"attach\", (a) => (this.object = a, this.visible = !0, this)), T(this, \"detach\", () => (this.object = void 0, this.visible = !1, this.axis = null, this)), T(this, \"reset\", () => this.enabled ? (this.dragging && this.object !== void 0 && (this.object.position.copy(this.positionStart), this.object.quaternion.copy(this.quaternionStart), this.object.scale.copy(this.scaleStart), this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent), this.pointStart.copy(this.pointEnd)), this) : this), T(this, \"updateMatrixWorld\", () => {\n this.object !== void 0 && (this.object.updateMatrixWorld(), this.object.parent === null ? console.error(\"TransformControls: The attached 3D object must be a part of the scene graph.\") : this.object.parent.matrixWorld.decompose(this.parentPosition, this.parentQuaternion, this.parentScale), this.object.matrixWorld.decompose(this.worldPosition, this.worldQuaternion, this.worldScale), this.parentQuaternionInv.copy(this.parentQuaternion).invert(), this.worldQuaternionInv.copy(this.worldQuaternion).invert()), this.camera.updateMatrixWorld(), this.camera.matrixWorld.decompose(this.cameraPosition, this.cameraQuaternion, this.cameraScale), this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(), super.updateMatrixWorld();\n }), T(this, \"pointerHover\", (a) => {\n if (this.object === void 0 || this.dragging === !0)\n return;\n this.raycaster.setFromCamera(a, this.camera);\n const c = this.intersectObjectWithRay(this.gizmo.picker[this.mode], this.raycaster);\n c ? this.axis = c.object.name : this.axis = null;\n }), T(this, \"pointerDown\", (a) => {\n if (!(this.object === void 0 || this.dragging === !0 || a.button !== 0) && this.axis !== null) {\n this.raycaster.setFromCamera(a, this.camera);\n const c = this.intersectObjectWithRay(this.plane, this.raycaster, !0);\n if (c) {\n let u = this.space;\n if (this.mode === \"scale\" ? u = \"local\" : (this.axis === \"E\" || this.axis === \"XYZE\" || this.axis === \"XYZ\") && (u = \"world\"), u === \"local\" && this.mode === \"rotate\") {\n const h = this.rotationSnap;\n this.axis === \"X\" && h && (this.object.rotation.x = Math.round(this.object.rotation.x / h) * h), this.axis === \"Y\" && h && (this.object.rotation.y = Math.round(this.object.rotation.y / h) * h), this.axis === \"Z\" && h && (this.object.rotation.z = Math.round(this.object.rotation.z / h) * h);\n }\n this.object.updateMatrixWorld(), this.object.parent && this.object.parent.updateMatrixWorld(), this.positionStart.copy(this.object.position), this.quaternionStart.copy(this.object.quaternion), this.scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this.worldScaleStart), this.pointStart.copy(c.point).sub(this.worldPositionStart);\n }\n this.dragging = !0, this.mouseDownEvent.mode = this.mode, this.dispatchEvent(this.mouseDownEvent);\n }\n }), T(this, \"pointerMove\", (a) => {\n const c = this.axis, u = this.mode, h = this.object;\n let d = this.space;\n if (u === \"scale\" ? d = \"local\" : (c === \"E\" || c === \"XYZE\" || c === \"XYZ\") && (d = \"world\"), h === void 0 || c === null || this.dragging === !1 || a.button !== -1)\n return;\n this.raycaster.setFromCamera(a, this.camera);\n const g = this.intersectObjectWithRay(this.plane, this.raycaster, !0);\n if (g) {\n if (this.pointEnd.copy(g.point).sub(this.worldPositionStart), u === \"translate\")\n this.offset.copy(this.pointEnd).sub(this.pointStart), d === \"local\" && c !== \"XYZ\" && this.offset.applyQuaternion(this.worldQuaternionInv), c.indexOf(\"X\") === -1 && (this.offset.x = 0), c.indexOf(\"Y\") === -1 && (this.offset.y = 0), c.indexOf(\"Z\") === -1 && (this.offset.z = 0), d === \"local\" && c !== \"XYZ\" ? this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale) : this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale), h.position.copy(this.offset).add(this.positionStart), this.translationSnap && (d === \"local\" && (h.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()), c.search(\"X\") !== -1 && (h.position.x = Math.round(h.position.x / this.translationSnap) * this.translationSnap), c.search(\"Y\") !== -1 && (h.position.y = Math.round(h.position.y / this.translationSnap) * this.translationSnap), c.search(\"Z\") !== -1 && (h.position.z = Math.round(h.position.z / this.translationSnap) * this.translationSnap), h.position.applyQuaternion(this.quaternionStart)), d === \"world\" && (h.parent && h.position.add(this.tempVector.setFromMatrixPosition(h.parent.matrixWorld)), c.search(\"X\") !== -1 && (h.position.x = Math.round(h.position.x / this.translationSnap) * this.translationSnap), c.search(\"Y\") !== -1 && (h.position.y = Math.round(h.position.y / this.translationSnap) * this.translationSnap), c.search(\"Z\") !== -1 && (h.position.z = Math.round(h.position.z / this.translationSnap) * this.translationSnap), h.parent && h.position.sub(this.tempVector.setFromMatrixPosition(h.parent.matrixWorld))));\n else if (u === \"scale\") {\n if (c.search(\"XYZ\") !== -1) {\n let w = this.pointEnd.length() / this.pointStart.length();\n this.pointEnd.dot(this.pointStart) < 0 && (w *= -1), this.tempVector2.set(w, w, w);\n } else\n this.tempVector.copy(this.pointStart), this.tempVector2.copy(this.pointEnd), this.tempVector.applyQuaternion(this.worldQuaternionInv), this.tempVector2.applyQuaternion(this.worldQuaternionInv), this.tempVector2.divide(this.tempVector), c.search(\"X\") === -1 && (this.tempVector2.x = 1), c.search(\"Y\") === -1 && (this.tempVector2.y = 1), c.search(\"Z\") === -1 && (this.tempVector2.z = 1);\n h.scale.copy(this.scaleStart).multiply(this.tempVector2), this.scaleSnap && this.object && (c.search(\"X\") !== -1 && (this.object.scale.x = Math.round(h.scale.x / this.scaleSnap) * this.scaleSnap || this.scaleSnap), c.search(\"Y\") !== -1 && (h.scale.y = Math.round(h.scale.y / this.scaleSnap) * this.scaleSnap || this.scaleSnap), c.search(\"Z\") !== -1 && (h.scale.z = Math.round(h.scale.z / this.scaleSnap) * this.scaleSnap || this.scaleSnap));\n } else if (u === \"rotate\") {\n this.offset.copy(this.pointEnd).sub(this.pointStart);\n const w = 20 / this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));\n c === \"E\" ? (this.rotationAxis.copy(this.eye), this.rotationAngle = this.pointEnd.angleTo(this.pointStart), this.startNorm.copy(this.pointStart).normalize(), this.endNorm.copy(this.pointEnd).normalize(), this.rotationAngle *= this.endNorm.cross(this.startNorm).dot(this.eye) < 0 ? 1 : -1) : c === \"XYZE\" ? (this.rotationAxis.copy(this.offset).cross(this.eye).normalize(), this.rotationAngle = this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye)) * w) : (c === \"X\" || c === \"Y\" || c === \"Z\") && (this.rotationAxis.copy(this.unit[c]), this.tempVector.copy(this.unit[c]), d === \"local\" && this.tempVector.applyQuaternion(this.worldQuaternion), this.rotationAngle = this.offset.dot(this.tempVector.cross(this.eye).normalize()) * w), this.rotationSnap && (this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap), d === \"local\" && c !== \"E\" && c !== \"XYZE\" ? (h.quaternion.copy(this.quaternionStart), h.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize()) : (this.rotationAxis.applyQuaternion(this.parentQuaternionInv), h.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)), h.quaternion.multiply(this.quaternionStart).normalize());\n }\n this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent);\n }\n }), T(this, \"pointerUp\", (a) => {\n a.button === 0 && (this.dragging && this.axis !== null && (this.mouseUpEvent.mode = this.mode, this.dispatchEvent(this.mouseUpEvent)), this.dragging = !1, this.axis = null);\n }), T(this, \"getPointer\", (a) => {\n var c;\n if (this.domElement && (c = this.domElement.ownerDocument) !== null && c !== void 0 && c.pointerLockElement)\n return {\n x: 0,\n y: 0,\n button: a.button\n };\n {\n var u;\n const h = a.changedTouches ? a.changedTouches[0] : a, d = (u = this.domElement) === null || u === void 0 ? void 0 : u.getBoundingClientRect();\n return {\n x: (h.clientX - d.left) / d.width * 2 - 1,\n y: -(h.clientY - d.top) / d.height * 2 + 1,\n button: a.button\n };\n }\n }), T(this, \"onPointerHover\", (a) => {\n if (this.enabled)\n switch (a.pointerType) {\n case \"mouse\":\n case \"pen\":\n this.pointerHover(this.getPointer(a));\n break;\n }\n }), T(this, \"onPointerDown\", (a) => {\n !this.enabled || !this.domElement || (this.domElement.style.touchAction = \"none\", this.domElement.ownerDocument.addEventListener(\"pointermove\", this.onPointerMove), this.pointerHover(this.getPointer(a)), this.pointerDown(this.getPointer(a)));\n }), T(this, \"onPointerMove\", (a) => {\n this.enabled && this.pointerMove(this.getPointer(a));\n }), T(this, \"onPointerUp\", (a) => {\n !this.enabled || !this.domElement || (this.domElement.style.touchAction = \"\", this.domElement.ownerDocument.removeEventListener(\"pointermove\", this.onPointerMove), this.pointerUp(this.getPointer(a)));\n }), T(this, \"getMode\", () => this.mode), T(this, \"setMode\", (a) => {\n this.mode = a;\n }), T(this, \"setTranslationSnap\", (a) => {\n this.translationSnap = a;\n }), T(this, \"setRotationSnap\", (a) => {\n this.rotationSnap = a;\n }), T(this, \"setScaleSnap\", (a) => {\n this.scaleSnap = a;\n }), T(this, \"setSize\", (a) => {\n this.size = a;\n }), T(this, \"setSpace\", (a) => {\n this.space = a;\n }), T(this, \"update\", () => {\n console.warn(\"THREE.TransformControls: update function has no more functionality and therefore has been deprecated.\");\n }), T(this, \"connect\", (a) => {\n a === document && console.error('THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.'), this.domElement = a, this.domElement.addEventListener(\"pointerdown\", this.onPointerDown), this.domElement.addEventListener(\"pointermove\", this.onPointerHover), this.domElement.ownerDocument.addEventListener(\"pointerup\", this.onPointerUp);\n }), T(this, \"dispose\", () => {\n var a, c, u, h, d, g;\n (a = this.domElement) === null || a === void 0 || a.removeEventListener(\"pointerdown\", this.onPointerDown), (c = this.domElement) === null || c === void 0 || c.removeEventListener(\"pointermove\", this.onPointerHover), (u = this.domElement) === null || u === void 0 || (h = u.ownerDocument) === null || h === void 0 || h.removeEventListener(\"pointermove\", this.onPointerMove), (d = this.domElement) === null || d === void 0 || (g = d.ownerDocument) === null || g === void 0 || g.removeEventListener(\"pointerup\", this.onPointerUp), this.traverse((w) => {\n const _ = w;\n _.geometry && _.geometry.dispose(), _.material && _.material.dispose();\n });\n }), this.domElement = r, this.camera = i, this.gizmo = new tu(), this.add(this.gizmo), this.plane = new nu(), this.add(this.plane);\n const s = (a, c) => {\n let u = c;\n Object.defineProperty(this, a, {\n get: function() {\n return u !== void 0 ? u : c;\n },\n set: function(h) {\n u !== h && (u = h, this.plane[a] = h, this.gizmo[a] = h, this.dispatchEvent({\n type: a + \"-changed\",\n value: h\n }), this.dispatchEvent(this.changeEvent));\n }\n }), this[a] = c, this.plane[a] = c, this.gizmo[a] = c;\n };\n s(\"camera\", this.camera), s(\"object\", this.object), s(\"enabled\", this.enabled), s(\"axis\", this.axis), s(\"mode\", this.mode), s(\"translationSnap\", this.translationSnap), s(\"rotationSnap\", this.rotationSnap), s(\"scaleSnap\", this.scaleSnap), s(\"space\", this.space), s(\"size\", this.size), s(\"dragging\", this.dragging), s(\"showX\", this.showX), s(\"showY\", this.showY), s(\"showZ\", this.showZ), s(\"worldPosition\", this.worldPosition), s(\"worldPositionStart\", this.worldPositionStart), s(\"worldQuaternion\", this.worldQuaternion), s(\"worldQuaternionStart\", this.worldQuaternionStart), s(\"cameraPosition\", this.cameraPosition), s(\"cameraQuaternion\", this.cameraQuaternion), s(\"pointStart\", this.pointStart), s(\"pointEnd\", this.pointEnd), s(\"rotationAxis\", this.rotationAxis), s(\"rotationAngle\", this.rotationAngle), s(\"eye\", this.eye), r !== void 0 && this.connect(r);\n }\n}\nclass tu extends On {\n // these are set from parent class TransformControls\n constructor() {\n super(), T(this, \"isTransformControlsGizmo\", !0), T(this, \"type\", \"TransformControlsGizmo\"), T(this, \"tempVector\", new $(0, 0, 0)), T(this, \"tempEuler\", new pi()), T(this, \"alignVector\", new $(0, 1, 0)), T(this, \"zeroVector\", new $(0, 0, 0)), T(this, \"lookAtMatrix\", new Ee()), T(this, \"tempQuaternion\", new Te()), T(this, \"tempQuaternion2\", new Te()), T(this, \"identityQuaternion\", new Te()), T(this, \"unitX\", new $(1, 0, 0)), T(this, \"unitY\", new $(0, 1, 0)), T(this, \"unitZ\", new $(0, 0, 1)), T(this, \"gizmo\", void 0), T(this, \"picker\", void 0), T(this, \"helper\", void 0), T(this, \"rotationAxis\", new $()), T(this, \"cameraPosition\", new $()), T(this, \"worldPositionStart\", new $()), T(this, \"worldQuaternionStart\", new Te()), T(this, \"worldPosition\", new $()), T(this, \"worldQuaternion\", new Te()), T(this, \"eye\", new $()), T(this, \"camera\", null), T(this, \"enabled\", !0), T(this, \"axis\", null), T(this, \"mode\", \"translate\"), T(this, \"space\", \"world\"), T(this, \"size\", 1), T(this, \"dragging\", !1), T(this, \"showX\", !0), T(this, \"showY\", !0), T(this, \"showZ\", !0), T(this, \"updateMatrixWorld\", () => {\n let fe = this.space;\n this.mode === \"scale\" && (fe = \"local\");\n const ae = fe === \"local\" ? this.worldQuaternion : this.identityQuaternion;\n this.gizmo.translate.visible = this.mode === \"translate\", this.gizmo.rotate.visible = this.mode === \"rotate\", this.gizmo.scale.visible = this.mode === \"scale\", this.helper.translate.visible = this.mode === \"translate\", this.helper.rotate.visible = this.mode === \"rotate\", this.helper.scale.visible = this.mode === \"scale\";\n let ne = [];\n ne = ne.concat(this.picker[this.mode].children), ne = ne.concat(this.gizmo[this.mode].children), ne = ne.concat(this.helper[this.mode].children);\n for (let be = 0; be < ne.length; be++) {\n const M = ne[be];\n M.visible = !0, M.rotation.set(0, 0, 0), M.position.copy(this.worldPosition);\n let le;\n if (this.camera.isOrthographicCamera ? le = (this.camera.top - this.camera.bottom) / this.camera.zoom : le = this.worldPosition.distanceTo(this.cameraPosition) * Math.min(1.9 * Math.tan(Math.PI * this.camera.fov / 360) / this.camera.zoom, 7), M.scale.set(1, 1, 1).multiplyScalar(le * this.size / 7), M.tag === \"helper\") {\n M.visible = !1, M.name === \"AXIS\" ? (M.position.copy(this.worldPositionStart), M.visible = !!this.axis, this.axis === \"X\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, 0, 0)), M.quaternion.copy(ae).multiply(this.tempQuaternion), Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye)) > 0.9 && (M.visible = !1)), this.axis === \"Y\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, 0, Math.PI / 2)), M.quaternion.copy(ae).multiply(this.tempQuaternion), Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye)) > 0.9 && (M.visible = !1)), this.axis === \"Z\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, Math.PI / 2, 0)), M.quaternion.copy(ae).multiply(this.tempQuaternion), Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye)) > 0.9 && (M.visible = !1)), this.axis === \"XYZE\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, Math.PI / 2, 0)), this.alignVector.copy(this.rotationAxis), M.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector, this.alignVector, this.unitY)), M.quaternion.multiply(this.tempQuaternion), M.visible = this.dragging), this.axis === \"E\" && (M.visible = !1)) : M.name === \"START\" ? (M.position.copy(this.worldPositionStart), M.visible = this.dragging) : M.name === \"END\" ? (M.position.copy(this.worldPosition), M.visible = this.dragging) : M.name === \"DELTA\" ? (M.position.copy(this.worldPositionStart), M.quaternion.copy(this.worldQuaternionStart), this.tempVector.set(1e-10, 1e-10, 1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1), this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()), M.scale.copy(this.tempVector), M.visible = this.dragging) : (M.quaternion.copy(ae), this.dragging ? M.position.copy(this.worldPositionStart) : M.position.copy(this.worldPosition), this.axis && (M.visible = this.axis.search(M.name) !== -1));\n continue;\n }\n M.quaternion.copy(ae), this.mode === \"translate\" || this.mode === \"scale\" ? ((M.name === \"X\" || M.name === \"XYZX\") && Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye)) > 0.99 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), (M.name === \"Y\" || M.name === \"XYZY\") && Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye)) > 0.99 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), (M.name === \"Z\" || M.name === \"XYZZ\") && Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye)) > 0.99 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name === \"XY\" && Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye)) < 0.2 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name === \"YZ\" && Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye)) < 0.2 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name === \"XZ\" && Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye)) < 0.2 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name.search(\"X\") !== -1 && (this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye) < 0 ? M.tag === \"fwd\" ? M.visible = !1 : M.scale.x *= -1 : M.tag === \"bwd\" && (M.visible = !1)), M.name.search(\"Y\") !== -1 && (this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye) < 0 ? M.tag === \"fwd\" ? M.visible = !1 : M.scale.y *= -1 : M.tag === \"bwd\" && (M.visible = !1)), M.name.search(\"Z\") !== -1 && (this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye) < 0 ? M.tag === \"fwd\" ? M.visible = !1 : M.scale.z *= -1 : M.tag === \"bwd\" && (M.visible = !1))) : this.mode === \"rotate\" && (this.tempQuaternion2.copy(ae), this.alignVector.copy(this.eye).applyQuaternion(this.tempQuaternion.copy(ae).invert()), M.name.search(\"E\") !== -1 && M.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.eye, this.zeroVector, this.unitY)), M.name === \"X\" && (this.tempQuaternion.setFromAxisAngle(this.unitX, Math.atan2(-this.alignVector.y, this.alignVector.z)), this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion), M.quaternion.copy(this.tempQuaternion)), M.name === \"Y\" && (this.tempQuaternion.setFromAxisAngle(this.unitY, Math.atan2(this.alignVector.x, this.alignVector.z)), this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion), M.quaternion.copy(this.tempQuaternion)), M.name === \"Z\" && (this.tempQuaternion.setFromAxisAngle(this.unitZ, Math.atan2(this.alignVector.y, this.alignVector.x)), this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion), M.quaternion.copy(this.tempQuaternion))), M.visible = M.visible && (M.name.indexOf(\"X\") === -1 || this.showX), M.visible = M.visible && (M.name.indexOf(\"Y\") === -1 || this.showY), M.visible = M.visible && (M.name.indexOf(\"Z\") === -1 || this.showZ), M.visible = M.visible && (M.name.indexOf(\"E\") === -1 || this.showX && this.showY && this.showZ), M.material.tempOpacity = M.material.tempOpacity || M.material.opacity, M.material.tempColor = M.material.tempColor || M.material.color.clone(), M.material.color.copy(M.material.tempColor), M.material.opacity = M.material.tempOpacity, this.enabled ? this.axis && (M.name === this.axis ? (M.material.opacity = 1, M.material.color.lerp(new ke(1, 1, 1), 0.5)) : this.axis.split(\"\").some(function(Ve) {\n return M.name === Ve;\n }) ? (M.material.opacity = 1, M.material.color.lerp(new ke(1, 1, 1), 0.5)) : (M.material.opacity *= 0.25, M.material.color.lerp(new ke(1, 1, 1), 0.5))) : (M.material.opacity *= 0.5, M.material.color.lerp(new ke(1, 1, 1), 0.5));\n }\n super.updateMatrixWorld();\n });\n const i = new Dn({\n depthTest: !1,\n depthWrite: !1,\n transparent: !0,\n side: fo,\n fog: !1,\n toneMapped: !1\n }), r = new vo({\n depthTest: !1,\n depthWrite: !1,\n transparent: !0,\n linewidth: 1,\n fog: !1,\n toneMapped: !1\n }), s = i.clone();\n s.opacity = 0.15;\n const a = i.clone();\n a.opacity = 0.33;\n const c = i.clone();\n c.color.set(16711680);\n const u = i.clone();\n u.color.set(65280);\n const h = i.clone();\n h.color.set(255);\n const d = i.clone();\n d.opacity = 0.25;\n const g = d.clone();\n g.color.set(16776960);\n const w = d.clone();\n w.color.set(65535);\n const _ = d.clone();\n _.color.set(16711935), i.clone().color.set(16776960);\n const C = r.clone();\n C.color.set(16711680);\n const I = r.clone();\n I.color.set(65280);\n const S = r.clone();\n S.color.set(255);\n const R = r.clone();\n R.color.set(65535);\n const j = r.clone();\n j.color.set(16711935);\n const F = r.clone();\n F.color.set(16776960);\n const V = r.clone();\n V.color.set(7895160);\n const D = F.clone();\n D.opacity = 0.25;\n const Y = new gt(0, 0.05, 0.2, 12, 1, !1), G = new Sn(0.125, 0.125, 0.125), N = new zt();\n N.setAttribute(\"position\", new Bt([0, 0, 0, 1, 0, 0], 3));\n const O = (fe, ae) => {\n const ne = new zt(), be = [];\n for (let M = 0; M <= 64 * ae; ++M)\n be.push(0, Math.cos(M / 32 * Math.PI) * fe, Math.sin(M / 32 * Math.PI) * fe);\n return ne.setAttribute(\"position\", new Bt(be, 3)), ne;\n }, H = () => {\n const fe = new zt();\n return fe.setAttribute(\"position\", new Bt([0, 0, 0, 1, 1, 1], 3)), fe;\n }, K = {\n X: [[new Z(Y, c), [1, 0, 0], [0, 0, -Math.PI / 2], null, \"fwd\"], [new Z(Y, c), [1, 0, 0], [0, 0, Math.PI / 2], null, \"bwd\"], [new pe(N, C)]],\n Y: [[new Z(Y, u), [0, 1, 0], null, null, \"fwd\"], [new Z(Y, u), [0, 1, 0], [Math.PI, 0, 0], null, \"bwd\"], [new pe(N, I), null, [0, 0, Math.PI / 2]]],\n Z: [[new Z(Y, h), [0, 0, 1], [Math.PI / 2, 0, 0], null, \"fwd\"], [new Z(Y, h), [0, 0, 1], [-Math.PI / 2, 0, 0], null, \"bwd\"], [new pe(N, S), null, [0, -Math.PI / 2, 0]]],\n XYZ: [[new Z(new An(0.1, 0), d.clone()), [0, 0, 0], [0, 0, 0]]],\n XY: [[new Z(new Rn(0.295, 0.295), g.clone()), [0.15, 0.15, 0]], [new pe(N, F), [0.18, 0.3, 0], null, [0.125, 1, 1]], [new pe(N, F), [0.3, 0.18, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]],\n YZ: [[new Z(new Rn(0.295, 0.295), w.clone()), [0, 0.15, 0.15], [0, Math.PI / 2, 0]], [new pe(N, R), [0, 0.18, 0.3], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new pe(N, R), [0, 0.3, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],\n XZ: [[new Z(new Rn(0.295, 0.295), _.clone()), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]], [new pe(N, j), [0.18, 0, 0.3], null, [0.125, 1, 1]], [new pe(N, j), [0.3, 0, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]]\n }, q = {\n X: [[new Z(new gt(0.2, 0, 1, 4, 1, !1), s), [0.6, 0, 0], [0, 0, -Math.PI / 2]]],\n Y: [[new Z(new gt(0.2, 0, 1, 4, 1, !1), s), [0, 0.6, 0]]],\n Z: [[new Z(new gt(0.2, 0, 1, 4, 1, !1), s), [0, 0, 0.6], [Math.PI / 2, 0, 0]]],\n XYZ: [[new Z(new An(0.2, 0), s)]],\n XY: [[new Z(new Rn(0.4, 0.4), s), [0.2, 0.2, 0]]],\n YZ: [[new Z(new Rn(0.4, 0.4), s), [0, 0.2, 0.2], [0, Math.PI / 2, 0]]],\n XZ: [[new Z(new Rn(0.4, 0.4), s), [0.2, 0, 0.2], [-Math.PI / 2, 0, 0]]]\n }, ue = {\n START: [[new Z(new An(0.01, 2), a), null, null, null, \"helper\"]],\n END: [[new Z(new An(0.01, 2), a), null, null, null, \"helper\"]],\n DELTA: [[new pe(H(), a), null, null, null, \"helper\"]],\n X: [[new pe(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]],\n Y: [[new pe(N, a.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], \"helper\"]],\n Z: [[new pe(N, a.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], \"helper\"]]\n }, ge = {\n X: [[new pe(O(1, 0.5), C)], [new Z(new An(0.04, 0), c), [0, 0, 0.99], null, [1, 3, 1]]],\n Y: [[new pe(O(1, 0.5), I), null, [0, 0, -Math.PI / 2]], [new Z(new An(0.04, 0), u), [0, 0, 0.99], null, [3, 1, 1]]],\n Z: [[new pe(O(1, 0.5), S), null, [0, Math.PI / 2, 0]], [new Z(new An(0.04, 0), h), [0.99, 0, 0], null, [1, 3, 1]]],\n E: [[new pe(O(1.25, 1), D), null, [0, Math.PI / 2, 0]], [new Z(new gt(0.03, 0, 0.15, 4, 1, !1), D), [1.17, 0, 0], [0, 0, -Math.PI / 2], [1, 1, 1e-3]], [new Z(new gt(0.03, 0, 0.15, 4, 1, !1), D), [-1.17, 0, 0], [0, 0, Math.PI / 2], [1, 1, 1e-3]], [new Z(new gt(0.03, 0, 0.15, 4, 1, !1), D), [0, -1.17, 0], [Math.PI, 0, 0], [1, 1, 1e-3]], [new Z(new gt(0.03, 0, 0.15, 4, 1, !1), D), [0, 1.17, 0], [0, 0, 0], [1, 1, 1e-3]]],\n XYZE: [[new pe(O(1, 1), V), null, [0, Math.PI / 2, 0]]]\n }, ce = {\n AXIS: [[new pe(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]]\n }, me = {\n X: [[new Z(new Ls(1, 0.1, 4, 24), s), [0, 0, 0], [0, -Math.PI / 2, -Math.PI / 2]]],\n Y: [[new Z(new Ls(1, 0.1, 4, 24), s), [0, 0, 0], [Math.PI / 2, 0, 0]]],\n Z: [[new Z(new Ls(1, 0.1, 4, 24), s), [0, 0, 0], [0, 0, -Math.PI / 2]]],\n E: [[new Z(new Ls(1.25, 0.1, 2, 24), s)]],\n XYZE: [[new Z(new sp(0.7, 10, 8), s)]]\n }, he = {\n X: [[new Z(G, c), [0.8, 0, 0], [0, 0, -Math.PI / 2]], [new pe(N, C), null, null, [0.8, 1, 1]]],\n Y: [[new Z(G, u), [0, 0.8, 0]], [new pe(N, I), null, [0, 0, Math.PI / 2], [0.8, 1, 1]]],\n Z: [[new Z(G, h), [0, 0, 0.8], [Math.PI / 2, 0, 0]], [new pe(N, S), null, [0, -Math.PI / 2, 0], [0.8, 1, 1]]],\n XY: [[new Z(G, g), [0.85, 0.85, 0], null, [2, 2, 0.2]], [new pe(N, F), [0.855, 0.98, 0], null, [0.125, 1, 1]], [new pe(N, F), [0.98, 0.855, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]],\n YZ: [[new Z(G, w), [0, 0.85, 0.85], null, [0.2, 2, 2]], [new pe(N, R), [0, 0.855, 0.98], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new pe(N, R), [0, 0.98, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],\n XZ: [[new Z(G, _), [0.85, 0, 0.85], null, [2, 0.2, 2]], [new pe(N, j), [0.855, 0, 0.98], null, [0.125, 1, 1]], [new pe(N, j), [0.98, 0, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],\n XYZX: [[new Z(new Sn(0.125, 0.125, 0.125), d.clone()), [1.1, 0, 0]]],\n XYZY: [[new Z(new Sn(0.125, 0.125, 0.125), d.clone()), [0, 1.1, 0]]],\n XYZZ: [[new Z(new Sn(0.125, 0.125, 0.125), d.clone()), [0, 0, 1.1]]]\n }, ee = {\n X: [[new Z(new gt(0.2, 0, 0.8, 4, 1, !1), s), [0.5, 0, 0], [0, 0, -Math.PI / 2]]],\n Y: [[new Z(new gt(0.2, 0, 0.8, 4, 1, !1), s), [0, 0.5, 0]]],\n Z: [[new Z(new gt(0.2, 0, 0.8, 4, 1, !1), s), [0, 0, 0.5], [Math.PI / 2, 0, 0]]],\n XY: [[new Z(G, s), [0.85, 0.85, 0], null, [3, 3, 0.2]]],\n YZ: [[new Z(G, s), [0, 0.85, 0.85], null, [0.2, 3, 3]]],\n XZ: [[new Z(G, s), [0.85, 0, 0.85], null, [3, 0.2, 3]]],\n XYZX: [[new Z(new Sn(0.2, 0.2, 0.2), s), [1.1, 0, 0]]],\n XYZY: [[new Z(new Sn(0.2, 0.2, 0.2), s), [0, 1.1, 0]]],\n XYZZ: [[new Z(new Sn(0.2, 0.2, 0.2), s), [0, 0, 1.1]]]\n }, X = {\n X: [[new pe(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]],\n Y: [[new pe(N, a.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], \"helper\"]],\n Z: [[new pe(N, a.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], \"helper\"]]\n }, Pe = (fe) => {\n const ae = new On();\n for (let ne in fe)\n for (let be = fe[ne].length; be--; ) {\n const M = fe[ne][be][0].clone(), le = fe[ne][be][1], Ve = fe[ne][be][2], Ne = fe[ne][be][3], we = fe[ne][be][4];\n M.name = ne, M.tag = we, le && M.position.set(le[0], le[1], le[2]), Ve && M.rotation.set(Ve[0], Ve[1], Ve[2]), Ne && M.scale.set(Ne[0], Ne[1], Ne[2]), M.updateMatrix();\n const it = M.geometry.clone();\n it.applyMatrix4(M.matrix), M.geometry = it, M.renderOrder = 1 / 0, M.position.set(0, 0, 0), M.rotation.set(0, 0, 0), M.scale.set(1, 1, 1), ae.add(M);\n }\n return ae;\n };\n this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = Pe(K)), this.add(this.gizmo.rotate = Pe(ge)), this.add(this.gizmo.scale = Pe(he)), this.add(this.picker.translate = Pe(q)), this.add(this.picker.rotate = Pe(me)), this.add(this.picker.scale = Pe(ee)), this.add(this.helper.translate = Pe(ue)), this.add(this.helper.rotate = Pe(ce)), this.add(this.helper.scale = Pe(X)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;\n }\n // updateMatrixWorld will update transformations and appearance of individual handles\n}\nclass nu extends Z {\n constructor() {\n super(new Rn(1e5, 1e5, 2, 2), new Dn({\n visible: !1,\n wireframe: !0,\n side: fo,\n transparent: !0,\n opacity: 0.1,\n toneMapped: !1\n })), T(this, \"isTransformControlsPlane\", !0), T(this, \"type\", \"TransformControlsPlane\"), T(this, \"unitX\", new $(1, 0, 0)), T(this, \"unitY\", new $(0, 1, 0)), T(this, \"unitZ\", new $(0, 0, 1)), T(this, \"tempVector\", new $()), T(this, \"dirVector\", new $()), T(this, \"alignVector\", new $()), T(this, \"tempMatrix\", new Ee()), T(this, \"identityQuaternion\", new Te()), T(this, \"cameraQuaternion\", new Te()), T(this, \"worldPosition\", new $()), T(this, \"worldQuaternion\", new Te()), T(this, \"eye\", new $()), T(this, \"axis\", null), T(this, \"mode\", \"translate\"), T(this, \"space\", \"world\"), T(this, \"updateMatrixWorld\", () => {\n let i = this.space;\n switch (this.position.copy(this.worldPosition), this.mode === \"scale\" && (i = \"local\"), this.unitX.set(1, 0, 0).applyQuaternion(i === \"local\" ? this.worldQuaternion : this.identityQuaternion), this.unitY.set(0, 1, 0).applyQuaternion(i === \"local\" ? this.worldQuaternion : this.identityQuaternion), this.unitZ.set(0, 0, 1).applyQuaternion(i === \"local\" ? this.worldQuaternion : this.identityQuaternion), this.alignVector.copy(this.unitY), this.mode) {\n case \"translate\":\n case \"scale\":\n switch (this.axis) {\n case \"X\":\n this.alignVector.copy(this.eye).cross(this.unitX), this.dirVector.copy(this.unitX).cross(this.alignVector);\n break;\n case \"Y\":\n this.alignVector.copy(this.eye).cross(this.unitY), this.dirVector.copy(this.unitY).cross(this.alignVector);\n break;\n case \"Z\":\n this.alignVector.copy(this.eye).cross(this.unitZ), this.dirVector.copy(this.unitZ).cross(this.alignVector);\n break;\n case \"XY\":\n this.dirVector.copy(this.unitZ);\n break;\n case \"YZ\":\n this.dirVector.copy(this.unitX);\n break;\n case \"XZ\":\n this.alignVector.copy(this.unitZ), this.dirVector.copy(this.unitY);\n break;\n case \"XYZ\":\n case \"E\":\n this.dirVector.set(0, 0, 0);\n break;\n }\n break;\n case \"rotate\":\n default:\n this.dirVector.set(0, 0, 0);\n }\n this.dirVector.length() === 0 ? this.quaternion.copy(this.cameraQuaternion) : (this.tempMatrix.lookAt(this.tempVector.set(0, 0, 0), this.dirVector, this.alignVector), this.quaternion.setFromRotationMatrix(this.tempMatrix)), super.updateMatrixWorld();\n });\n }\n}\nconst oa = (b, i) => (b % i + i) % i;\nclass iu extends rp {\n // Set to false to disable this control\n // \"target\" sets the location of focus, where the object orbits around\n // How far you can dolly in and out ( PerspectiveCamera only )\n // How far you can zoom in and out ( OrthographicCamera only )\n // How far you can orbit vertically, upper and lower limits.\n // Range is 0 to Math.PI radians.\n // radians\n // radians\n // How far you can orbit horizontally, upper and lower limits.\n // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n // radians\n // radians\n // Set to true to enable damping (inertia)\n // If damping is enabled, you must call controls.update() in your animation loop\n // This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n // Set to false to disable zooming\n // Set to false to disable rotating\n // Set to false to disable panning\n // if false, pan orthogonal to world-space direction camera.up\n // pixels moved per arrow key push\n // Set to true to automatically rotate around the target\n // If auto-rotate is enabled, you must call controls.update() in your animation loop\n // 30 seconds per orbit when fps is 60\n // true if you want to reverse the orbit to mouse drag from left to right = orbits left\n // The four arrow keys\n // Mouse buttons\n // Touch fingers\n // the target DOM element for key events\n constructor(i, r) {\n super(), T(this, \"object\", void 0), T(this, \"domElement\", void 0), T(this, \"enabled\", !0), T(this, \"target\", new $()), T(this, \"minDistance\", 0), T(this, \"maxDistance\", 1 / 0), T(this, \"minZoom\", 0), T(this, \"maxZoom\", 1 / 0), T(this, \"minPolarAngle\", 0), T(this, \"maxPolarAngle\", Math.PI), T(this, \"minAzimuthAngle\", -1 / 0), T(this, \"maxAzimuthAngle\", 1 / 0), T(this, \"enableDamping\", !1), T(this, \"dampingFactor\", 0.05), T(this, \"enableZoom\", !0), T(this, \"zoomSpeed\", 1), T(this, \"enableRotate\", !0), T(this, \"rotateSpeed\", 1), T(this, \"enablePan\", !0), T(this, \"panSpeed\", 1), T(this, \"screenSpacePanning\", !0), T(this, \"keyPanSpeed\", 7), T(this, \"autoRotate\", !1), T(this, \"autoRotateSpeed\", 2), T(this, \"reverseOrbit\", !1), T(this, \"keys\", {\n LEFT: \"ArrowLeft\",\n UP: \"ArrowUp\",\n RIGHT: \"ArrowRight\",\n BOTTOM: \"ArrowDown\"\n }), T(this, \"mouseButtons\", {\n LEFT: ai.ROTATE,\n MIDDLE: ai.DOLLY,\n RIGHT: ai.PAN\n }), T(this, \"touches\", {\n ONE: li.ROTATE,\n TWO: li.DOLLY_PAN\n }), T(this, \"target0\", void 0), T(this, \"position0\", void 0), T(this, \"zoom0\", void 0), T(this, \"_domElementKeyEvents\", null), T(this, \"getPolarAngle\", void 0), T(this, \"getAzimuthalAngle\", void 0), T(this, \"setPolarAngle\", void 0), T(this, \"setAzimuthalAngle\", void 0), T(this, \"getDistance\", void 0), T(this, \"listenToKeyEvents\", void 0), T(this, \"saveState\", void 0), T(this, \"reset\", void 0), T(this, \"update\", void 0), T(this, \"connect\", void 0), T(this, \"dispose\", void 0), this.object = i, this.domElement = r, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object instanceof sn ? this.object.zoom : 1, this.getPolarAngle = () => w.phi, this.getAzimuthalAngle = () => w.theta, this.setPolarAngle = (A) => {\n let U = oa(A, 2 * Math.PI), W = w.phi;\n W < 0 && (W += 2 * Math.PI), U < 0 && (U += 2 * Math.PI);\n let ie = Math.abs(U - W);\n 2 * Math.PI - ie < ie && (U < W ? U += 2 * Math.PI : W += 2 * Math.PI), _.phi = U - W, s.update();\n }, this.setAzimuthalAngle = (A) => {\n let U = oa(A, 2 * Math.PI), W = w.theta;\n W < 0 && (W += 2 * Math.PI), U < 0 && (U += 2 * Math.PI);\n let ie = Math.abs(U - W);\n 2 * Math.PI - ie < ie && (U < W ? U += 2 * Math.PI : W += 2 * Math.PI), _.theta = U - W, s.update();\n }, this.getDistance = () => s.object.position.distanceTo(s.target), this.listenToKeyEvents = (A) => {\n A.addEventListener(\"keydown\", yt), this._domElementKeyEvents = A;\n }, this.saveState = () => {\n s.target0.copy(s.target), s.position0.copy(s.object.position), s.zoom0 = s.object instanceof sn ? s.object.zoom : 1;\n }, this.reset = () => {\n s.target.copy(s.target0), s.object.position.copy(s.position0), s.object instanceof sn && (s.object.zoom = s.zoom0, s.object.updateProjectionMatrix()), s.dispatchEvent(a), s.update(), d = h.NONE;\n }, this.update = (() => {\n const A = new $(), U = new Te().setFromUnitVectors(i.up, new $(0, 1, 0)), W = U.clone().invert(), ie = new $(), ye = new Te(), De = 2 * Math.PI;\n return function() {\n const pn = s.object.position;\n A.copy(pn).sub(s.target), A.applyQuaternion(U), w.setFromVector3(A), s.autoRotate && d === h.NONE && ue(K()), s.enableDamping ? (w.theta += _.theta * s.dampingFactor, w.phi += _.phi * s.dampingFactor) : (w.theta += _.theta, w.phi += _.phi);\n let Ue = s.minAzimuthAngle, Ge = s.maxAzimuthAngle;\n return isFinite(Ue) && isFinite(Ge) && (Ue < -Math.PI ? Ue += De : Ue > Math.PI && (Ue -= De), Ge < -Math.PI ? Ge += De : Ge > Math.PI && (Ge -= De), Ue <= Ge ? w.theta = Math.max(Ue, Math.min(Ge, w.theta)) : w.theta = w.theta > (Ue + Ge) / 2 ? Math.max(Ue, w.theta) : Math.min(Ge, w.theta)), w.phi = Math.max(s.minPolarAngle, Math.min(s.maxPolarAngle, w.phi)), w.makeSafe(), w.radius *= y, w.radius = Math.max(s.minDistance, Math.min(s.maxDistance, w.radius)), s.enableDamping === !0 ? s.target.addScaledVector(C, s.dampingFactor) : s.target.add(C), A.setFromSpherical(w), A.applyQuaternion(W), pn.copy(s.target).add(A), s.object.lookAt(s.target), s.enableDamping === !0 ? (_.theta *= 1 - s.dampingFactor, _.phi *= 1 - s.dampingFactor, C.multiplyScalar(1 - s.dampingFactor)) : (_.set(0, 0, 0), C.set(0, 0, 0)), y = 1, I || ie.distanceToSquared(s.object.position) > g || 8 * (1 - ye.dot(s.object.quaternion)) > g ? (s.dispatchEvent(a), ie.copy(s.object.position), ye.copy(s.object.quaternion), I = !1, !0) : !1;\n };\n })(), this.connect = (A) => {\n A === document && console.error('THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.'), s.domElement = A, s.domElement.style.touchAction = \"none\", s.domElement.addEventListener(\"contextmenu\", cn), s.domElement.addEventListener(\"pointerdown\", st), s.domElement.addEventListener(\"pointercancel\", zn), s.domElement.addEventListener(\"wheel\", Gn);\n }, this.dispose = () => {\n var A, U, W, ie, ye, De;\n (A = s.domElement) === null || A === void 0 || A.removeEventListener(\"contextmenu\", cn), (U = s.domElement) === null || U === void 0 || U.removeEventListener(\"pointerdown\", st), (W = s.domElement) === null || W === void 0 || W.removeEventListener(\"pointercancel\", zn), (ie = s.domElement) === null || ie === void 0 || ie.removeEventListener(\"wheel\", Gn), (ye = s.domElement) === null || ye === void 0 || ye.ownerDocument.removeEventListener(\"pointermove\", ln), (De = s.domElement) === null || De === void 0 || De.ownerDocument.removeEventListener(\"pointerup\", mt), s._domElementKeyEvents !== null && s._domElementKeyEvents.removeEventListener(\"keydown\", yt);\n };\n const s = this, a = {\n type: \"change\"\n }, c = {\n type: \"start\"\n }, u = {\n type: \"end\"\n }, h = {\n NONE: -1,\n ROTATE: 0,\n DOLLY: 1,\n PAN: 2,\n TOUCH_ROTATE: 3,\n TOUCH_PAN: 4,\n TOUCH_DOLLY_PAN: 5,\n TOUCH_DOLLY_ROTATE: 6\n };\n let d = h.NONE;\n const g = 1e-6, w = new ra(), _ = new ra();\n let y = 1;\n const C = new $();\n let I = !1;\n const S = new pt(), R = new pt(), j = new pt(), F = new pt(), V = new pt(), D = new pt(), Y = new pt(), G = new pt(), N = new pt(), O = [], H = {};\n function K() {\n return 2 * Math.PI / 60 / 60 * s.autoRotateSpeed;\n }\n function q() {\n return Math.pow(0.95, s.zoomSpeed);\n }\n function ue(A) {\n s.reverseOrbit ? _.theta += A : _.theta -= A;\n }\n function ge(A) {\n s.reverseOrbit ? _.phi += A : _.phi -= A;\n }\n const ce = (() => {\n const A = new $();\n return function(W, ie) {\n A.setFromMatrixColumn(ie, 0), A.multiplyScalar(-W), C.add(A);\n };\n })(), me = (() => {\n const A = new $();\n return function(W, ie) {\n s.screenSpacePanning === !0 ? A.setFromMatrixColumn(ie, 1) : (A.setFromMatrixColumn(ie, 0), A.crossVectors(s.object.up, A)), A.multiplyScalar(W), C.add(A);\n };\n })(), he = (() => {\n const A = new $();\n return function(W, ie) {\n const ye = s.domElement;\n if (ye && s.object instanceof sn && s.object.isPerspectiveCamera) {\n const De = s.object.position;\n A.copy(De).sub(s.target);\n let Ut = A.length();\n Ut *= Math.tan(s.object.fov / 2 * Math.PI / 180), ce(2 * W * Ut / ye.clientHeight, s.object.matrix), me(2 * ie * Ut / ye.clientHeight, s.object.matrix);\n } else\n ye && s.object instanceof Ki && s.object.isOrthographicCamera ? (ce(W * (s.object.right - s.object.left) / s.object.zoom / ye.clientWidth, s.object.matrix), me(ie * (s.object.top - s.object.bottom) / s.object.zoom / ye.clientHeight, s.object.matrix)) : (console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"), s.enablePan = !1);\n };\n })();\n function ee(A) {\n s.object instanceof sn && s.object.isPerspectiveCamera ? y /= A : s.object instanceof Ki && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom * A)), s.object.updateProjectionMatrix(), I = !0) : (console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"), s.enableZoom = !1);\n }\n function X(A) {\n s.object instanceof sn && s.object.isPerspectiveCamera ? y *= A : s.object instanceof Ki && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom / A)), s.object.updateProjectionMatrix(), I = !0) : (console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"), s.enableZoom = !1);\n }\n function Pe(A) {\n S.set(A.clientX, A.clientY);\n }\n function fe(A) {\n Y.set(A.clientX, A.clientY);\n }\n function ae(A) {\n F.set(A.clientX, A.clientY);\n }\n function ne(A) {\n R.set(A.clientX, A.clientY), j.subVectors(R, S).multiplyScalar(s.rotateSpeed);\n const U = s.domElement;\n U && (ue(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R), s.update();\n }\n function be(A) {\n G.set(A.clientX, A.clientY), N.subVectors(G, Y), N.y > 0 ? ee(q()) : N.y < 0 && X(q()), Y.copy(G), s.update();\n }\n function M(A) {\n V.set(A.clientX, A.clientY), D.subVectors(V, F).multiplyScalar(s.panSpeed), he(D.x, D.y), F.copy(V), s.update();\n }\n function le(A) {\n A.deltaY < 0 ? X(q()) : A.deltaY > 0 && ee(q()), s.update();\n }\n function Ve(A) {\n let U = !1;\n switch (A.code) {\n case s.keys.UP:\n he(0, s.keyPanSpeed), U = !0;\n break;\n case s.keys.BOTTOM:\n he(0, -s.keyPanSpeed), U = !0;\n break;\n case s.keys.LEFT:\n he(s.keyPanSpeed, 0), U = !0;\n break;\n case s.keys.RIGHT:\n he(-s.keyPanSpeed, 0), U = !0;\n break;\n }\n U && (A.preventDefault(), s.update());\n }\n function Ne() {\n if (O.length == 1)\n S.set(O[0].pageX, O[0].pageY);\n else {\n const A = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY);\n S.set(A, U);\n }\n }\n function we() {\n if (O.length == 1)\n F.set(O[0].pageX, O[0].pageY);\n else {\n const A = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY);\n F.set(A, U);\n }\n }\n function it() {\n const A = O[0].pageX - O[1].pageX, U = O[0].pageY - O[1].pageY, W = Math.sqrt(A * A + U * U);\n Y.set(0, W);\n }\n function Bn() {\n s.enableZoom && it(), s.enablePan && we();\n }\n function Xe() {\n s.enableZoom && it(), s.enableRotate && Ne();\n }\n function jn(A) {\n if (O.length == 1)\n R.set(A.pageX, A.pageY);\n else {\n const W = St(A), ie = 0.5 * (A.pageX + W.x), ye = 0.5 * (A.pageY + W.y);\n R.set(ie, ye);\n }\n j.subVectors(R, S).multiplyScalar(s.rotateSpeed);\n const U = s.domElement;\n U && (ue(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R);\n }\n function an(A) {\n if (O.length == 1)\n V.set(A.pageX, A.pageY);\n else {\n const U = St(A), W = 0.5 * (A.pageX + U.x), ie = 0.5 * (A.pageY + U.y);\n V.set(W, ie);\n }\n D.subVectors(V, F).multiplyScalar(s.panSpeed), he(D.x, D.y), F.copy(V);\n }\n function dt(A) {\n const U = St(A), W = A.pageX - U.x, ie = A.pageY - U.y, ye = Math.sqrt(W * W + ie * ie);\n G.set(0, ye), N.set(0, Math.pow(G.y / Y.y, s.zoomSpeed)), ee(N.y), Y.copy(G);\n }\n function kt(A) {\n s.enableZoom && dt(A), s.enablePan && an(A);\n }\n function ze(A) {\n s.enableZoom && dt(A), s.enableRotate && jn(A);\n }\n function st(A) {\n if (s.enabled !== !1) {\n if (O.length === 0) {\n var U, W;\n (U = s.domElement) === null || U === void 0 || U.ownerDocument.addEventListener(\"pointermove\", ln), (W = s.domElement) === null || W === void 0 || W.ownerDocument.addEventListener(\"pointerup\", mt);\n }\n Kn(A), A.pointerType === \"touch\" ? Mt(A) : hi(A);\n }\n }\n function ln(A) {\n s.enabled !== !1 && (A.pointerType === \"touch\" ? Hn(A) : Un(A));\n }\n function mt(A) {\n if (xt(A), O.length === 0) {\n var U, W, ie;\n (U = s.domElement) === null || U === void 0 || U.releasePointerCapture(A.pointerId), (W = s.domElement) === null || W === void 0 || W.ownerDocument.removeEventListener(\"pointermove\", ln), (ie = s.domElement) === null || ie === void 0 || ie.ownerDocument.removeEventListener(\"pointerup\", mt);\n }\n s.dispatchEvent(u), d = h.NONE;\n }\n function zn(A) {\n xt(A);\n }\n function hi(A) {\n let U;\n switch (A.button) {\n case 0:\n U = s.mouseButtons.LEFT;\n break;\n case 1:\n U = s.mouseButtons.MIDDLE;\n break;\n case 2:\n U = s.mouseButtons.RIGHT;\n break;\n default:\n U = -1;\n }\n switch (U) {\n case ai.DOLLY:\n if (s.enableZoom === !1)\n return;\n fe(A), d = h.DOLLY;\n break;\n case ai.ROTATE:\n if (A.ctrlKey || A.metaKey || A.shiftKey) {\n if (s.enablePan === !1)\n return;\n ae(A), d = h.PAN;\n } else {\n if (s.enableRotate === !1)\n return;\n Pe(A), d = h.ROTATE;\n }\n break;\n case ai.PAN:\n if (A.ctrlKey || A.metaKey || A.shiftKey) {\n if (s.enableRotate === !1)\n return;\n Pe(A), d = h.ROTATE;\n } else {\n if (s.enablePan === !1)\n return;\n ae(A), d = h.PAN;\n }\n break;\n default:\n d = h.NONE;\n }\n d !== h.NONE && s.dispatchEvent(c);\n }\n function Un(A) {\n if (s.enabled !== !1)\n switch (d) {\n case h.ROTATE:\n if (s.enableRotate === !1)\n return;\n ne(A);\n break;\n case h.DOLLY:\n if (s.enableZoom === !1)\n return;\n be(A);\n break;\n case h.PAN:\n if (s.enablePan === !1)\n return;\n M(A);\n break;\n }\n }\n function Gn(A) {\n s.enabled === !1 || s.enableZoom === !1 || d !== h.NONE && d !== h.ROTATE || (A.preventDefault(), s.dispatchEvent(c), le(A), s.dispatchEvent(u));\n }\n function yt(A) {\n s.enabled === !1 || s.enablePan === !1 || Ve(A);\n }\n function Mt(A) {\n switch (ft(A), O.length) {\n case 1:\n switch (s.touches.ONE) {\n case li.ROTATE:\n if (s.enableRotate === !1)\n return;\n Ne(), d = h.TOUCH_ROTATE;\n break;\n case li.PAN:\n if (s.enablePan === !1)\n return;\n we(), d = h.TOUCH_PAN;\n break;\n default:\n d = h.NONE;\n }\n break;\n case 2:\n switch (s.touches.TWO) {\n case li.DOLLY_PAN:\n if (s.enableZoom === !1 && s.enablePan === !1)\n return;\n Bn(), d = h.TOUCH_DOLLY_PAN;\n break;\n case li.DOLLY_ROTATE:\n if (s.enableZoom === !1 && s.enableRotate === !1)\n return;\n Xe(), d = h.TOUCH_DOLLY_ROTATE;\n break;\n default:\n d = h.NONE;\n }\n break;\n default:\n d = h.NONE;\n }\n d !== h.NONE && s.dispatchEvent(c);\n }\n function Hn(A) {\n switch (ft(A), d) {\n case h.TOUCH_ROTATE:\n if (s.enableRotate === !1)\n return;\n jn(A), s.update();\n break;\n case h.TOUCH_PAN:\n if (s.enablePan === !1)\n return;\n an(A), s.update();\n break;\n case h.TOUCH_DOLLY_PAN:\n if (s.enableZoom === !1 && s.enablePan === !1)\n return;\n kt(A), s.update();\n break;\n case h.TOUCH_DOLLY_ROTATE:\n if (s.enableZoom === !1 && s.enableRotate === !1)\n return;\n ze(A), s.update();\n break;\n default:\n d = h.NONE;\n }\n }\n function cn(A) {\n s.enabled !== !1 && A.preventDefault();\n }\n function Kn(A) {\n O.push(A);\n }\n function xt(A) {\n delete H[A.pointerId];\n for (let U = 0; U < O.length; U++)\n if (O[U].pointerId == A.pointerId) {\n O.splice(U, 1);\n return;\n }\n }\n function ft(A) {\n let U = H[A.pointerId];\n U === void 0 && (U = new pt(), H[A.pointerId] = U), U.set(A.pageX, A.pageY);\n }\n function St(A) {\n const U = A.pointerId === O[0].pointerId ? O[1] : O[0];\n return H[U.pointerId];\n }\n r !== void 0 && this.connect(r), this.update();\n }\n}\nclass su extends zs {\n constructor(i) {\n super(i), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(r) {\n return new cu(r);\n }), this.register(function(r) {\n return new vu(r);\n }), this.register(function(r) {\n return new bu(r);\n }), this.register(function(r) {\n return new uu(r);\n }), this.register(function(r) {\n return new hu(r);\n }), this.register(function(r) {\n return new du(r);\n }), this.register(function(r) {\n return new mu(r);\n }), this.register(function(r) {\n return new lu(r);\n }), this.register(function(r) {\n return new fu(r);\n }), this.register(function(r) {\n return new pu(r);\n }), this.register(function(r) {\n return new ou(r);\n }), this.register(function(r) {\n return new gu(r);\n });\n }\n load(i, r, s, a) {\n const c = this;\n let u;\n this.resourcePath !== \"\" ? u = this.resourcePath : this.path !== \"\" ? u = this.path : u = Tt.extractUrlBase(i), this.manager.itemStart(i);\n const h = function(g) {\n a ? a(g) : console.error(g), c.manager.itemError(i), c.manager.itemEnd(i);\n }, d = new ui(this.manager);\n d.setPath(this.path), d.setResponseType(\"arraybuffer\"), d.setRequestHeader(this.requestHeader), d.setWithCredentials(this.withCredentials), d.load(i, function(g) {\n try {\n c.parse(g, u, function(w) {\n r(w), c.manager.itemEnd(i);\n }, h);\n } catch (w) {\n h(w);\n }\n }, s, h);\n }\n setDRACOLoader(i) {\n return this.dracoLoader = i, this;\n }\n setDDSLoader() {\n throw new Error('THREE.GLTFLoader: \"MSFT_texture_dds\" no longer supported. Please update to \"KHR_texture_basisu\".');\n }\n setKTX2Loader(i) {\n return this.ktx2Loader = i, this;\n }\n setMeshoptDecoder(i) {\n return this.meshoptDecoder = i, this;\n }\n register(i) {\n return this.pluginCallbacks.indexOf(i) === -1 && this.pluginCallbacks.push(i), this;\n }\n unregister(i) {\n return this.pluginCallbacks.indexOf(i) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(i), 1), this;\n }\n parse(i, r, s, a) {\n let c;\n const u = {}, h = {};\n if (typeof i == \"string\")\n c = i;\n else if (Tt.decodeText(new Uint8Array(i, 0, 4)) === $a) {\n try {\n u[re.KHR_BINARY_GLTF] = new _u(i);\n } catch (_) {\n a && a(_);\n return;\n }\n c = u[re.KHR_BINARY_GLTF].content;\n } else\n c = Tt.decodeText(new Uint8Array(i));\n const d = JSON.parse(c);\n if (d.asset === void 0 || d.asset.version[0] < 2) {\n a && a(new Error(\"THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.\"));\n return;\n }\n const g = new Ru(d, {\n path: r || this.resourcePath || \"\",\n crossOrigin: this.crossOrigin,\n requestHeader: this.requestHeader,\n manager: this.manager,\n ktx2Loader: this.ktx2Loader,\n meshoptDecoder: this.meshoptDecoder\n });\n g.fileLoader.setRequestHeader(this.requestHeader);\n for (let w = 0; w < this.pluginCallbacks.length; w++) {\n const _ = this.pluginCallbacks[w](g);\n h[_.name] = _, u[_.name] = !0;\n }\n if (d.extensionsUsed)\n for (let w = 0; w < d.extensionsUsed.length; ++w) {\n const _ = d.extensionsUsed[w], y = d.extensionsRequired || [];\n switch (_) {\n case re.KHR_MATERIALS_UNLIT:\n u[_] = new au();\n break;\n case re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:\n u[_] = new xu();\n break;\n case re.KHR_DRACO_MESH_COMPRESSION:\n u[_] = new wu(d, this.dracoLoader);\n break;\n case re.KHR_TEXTURE_TRANSFORM:\n u[_] = new yu();\n break;\n case re.KHR_MESH_QUANTIZATION:\n u[_] = new Eu();\n break;\n default:\n y.indexOf(_) >= 0 && h[_] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension \"' + _ + '\".');\n }\n }\n g.setExtensions(u), g.setPlugins(h), g.parse(s, a);\n }\n parseAsync(i, r) {\n const s = this;\n return new Promise(function(a, c) {\n s.parse(i, r, a, c);\n });\n }\n}\nfunction ru() {\n let b = {};\n return {\n get: function(i) {\n return b[i];\n },\n add: function(i, r) {\n b[i] = r;\n },\n remove: function(i) {\n delete b[i];\n },\n removeAll: function() {\n b = {};\n }\n };\n}\nconst re = {\n KHR_BINARY_GLTF: \"KHR_binary_glTF\",\n KHR_DRACO_MESH_COMPRESSION: \"KHR_draco_mesh_compression\",\n KHR_LIGHTS_PUNCTUAL: \"KHR_lights_punctual\",\n KHR_MATERIALS_CLEARCOAT: \"KHR_materials_clearcoat\",\n KHR_MATERIALS_IOR: \"KHR_materials_ior\",\n KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: \"KHR_materials_pbrSpecularGlossiness\",\n KHR_MATERIALS_SHEEN: \"KHR_materials_sheen\",\n KHR_MATERIALS_SPECULAR: \"KHR_materials_specular\",\n KHR_MATERIALS_TRANSMISSION: \"KHR_materials_transmission\",\n KHR_MATERIALS_IRIDESCENCE: \"KHR_materials_iridescence\",\n KHR_MATERIALS_UNLIT: \"KHR_materials_unlit\",\n KHR_MATERIALS_VOLUME: \"KHR_materials_volume\",\n KHR_TEXTURE_BASISU: \"KHR_texture_basisu\",\n KHR_TEXTURE_TRANSFORM: \"KHR_texture_transform\",\n KHR_MESH_QUANTIZATION: \"KHR_mesh_quantization\",\n KHR_MATERIALS_EMISSIVE_STRENGTH: \"KHR_materials_emissive_strength\",\n EXT_TEXTURE_WEBP: \"EXT_texture_webp\",\n EXT_MESHOPT_COMPRESSION: \"EXT_meshopt_compression\"\n};\nclass ou {\n constructor(i) {\n this.parser = i, this.name = re.KHR_LIGHTS_PUNCTUAL, this.cache = {\n refs: {},\n uses: {}\n };\n }\n _markDefs() {\n const i = this.parser, r = this.parser.json.nodes || [];\n for (let s = 0, a = r.length; s < a; s++) {\n const c = r[s];\n c.extensions && c.extensions[this.name] && c.extensions[this.name].light !== void 0 && i._addNodeRef(this.cache, c.extensions[this.name].light);\n }\n }\n _loadLight(i) {\n const r = this.parser, s = \"light:\" + i;\n let a = r.cache.get(s);\n if (a)\n return a;\n const c = r.json, d = ((c.extensions && c.extensions[this.name] || {}).lights || [])[i];\n let g;\n const w = new ke(16777215);\n d.color !== void 0 && w.fromArray(d.color);\n const _ = d.range !== void 0 ? d.range : 0;\n switch (d.type) {\n case \"directional\":\n g = new Ma(w), g.target.position.set(0, 0, -1), g.add(g.target);\n break;\n case \"point\":\n g = new no(w), g.distance = _;\n break;\n case \"spot\":\n g = new ka(w), g.distance = _, d.spot = d.spot || {}, d.spot.innerConeAngle = d.spot.innerConeAngle !== void 0 ? d.spot.innerConeAngle : 0, d.spot.outerConeAngle = d.spot.outerConeAngle !== void 0 ? d.spot.outerConeAngle : Math.PI / 4, g.angle = d.spot.outerConeAngle, g.penumbra = 1 - d.spot.innerConeAngle / d.spot.outerConeAngle, g.target.position.set(0, 0, -1), g.add(g.target);\n break;\n default:\n throw new Error(\"THREE.GLTFLoader: Unexpected light type: \" + d.type);\n }\n return g.position.set(0, 0, 0), g.decay = 2, d.intensity !== void 0 && (g.intensity = d.intensity), g.name = r.createUniqueName(d.name || \"light_\" + i), a = Promise.resolve(g), r.cache.add(s, a), a;\n }\n createNodeAttachment(i) {\n const r = this, s = this.parser, c = s.json.nodes[i], h = (c.extensions && c.extensions[this.name] || {}).light;\n return h === void 0 ? null : this._loadLight(h).then(function(d) {\n return s._getNodeRef(r.cache, h, d);\n });\n }\n}\nclass au {\n constructor() {\n this.name = re.KHR_MATERIALS_UNLIT;\n }\n getMaterialType() {\n return Dn;\n }\n extendParams(i, r, s) {\n const a = [];\n i.color = new ke(1, 1, 1), i.opacity = 1;\n const c = r.pbrMetallicRoughness;\n if (c) {\n if (Array.isArray(c.baseColorFactor)) {\n const u = c.baseColorFactor;\n i.color.fromArray(u), i.opacity = u[3];\n }\n c.baseColorTexture !== void 0 && a.push(s.assignTexture(i, \"map\", c.baseColorTexture, ht));\n }\n return Promise.all(a);\n }\n}\nclass lu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_EMISSIVE_STRENGTH;\n }\n extendMaterialParams(i, r) {\n const a = this.parser.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = a.extensions[this.name].emissiveStrength;\n return c !== void 0 && (r.emissiveIntensity = c), Promise.resolve();\n }\n}\nclass cu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_CLEARCOAT;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const s = this.parser, a = s.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], u = a.extensions[this.name];\n if (u.clearcoatFactor !== void 0 && (r.clearcoat = u.clearcoatFactor), u.clearcoatTexture !== void 0 && c.push(s.assignTexture(r, \"clearcoatMap\", u.clearcoatTexture)), u.clearcoatRoughnessFactor !== void 0 && (r.clearcoatRoughness = u.clearcoatRoughnessFactor), u.clearcoatRoughnessTexture !== void 0 && c.push(s.assignTexture(r, \"clearcoatRoughnessMap\", u.clearcoatRoughnessTexture)), u.clearcoatNormalTexture !== void 0 && (c.push(s.assignTexture(r, \"clearcoatNormalMap\", u.clearcoatNormalTexture)), u.clearcoatNormalTexture.scale !== void 0)) {\n const h = u.clearcoatNormalTexture.scale;\n r.clearcoatNormalScale = new pt(h, h);\n }\n return Promise.all(c);\n }\n}\nclass pu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_IRIDESCENCE;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const s = this.parser, a = s.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], u = a.extensions[this.name];\n return u.iridescenceFactor !== void 0 && (r.iridescence = u.iridescenceFactor), u.iridescenceTexture !== void 0 && c.push(s.assignTexture(r, \"iridescenceMap\", u.iridescenceTexture)), u.iridescenceIor !== void 0 && (r.iridescenceIOR = u.iridescenceIor), r.iridescenceThicknessRange === void 0 && (r.iridescenceThicknessRange = [100, 400]), u.iridescenceThicknessMinimum !== void 0 && (r.iridescenceThicknessRange[0] = u.iridescenceThicknessMinimum), u.iridescenceThicknessMaximum !== void 0 && (r.iridescenceThicknessRange[1] = u.iridescenceThicknessMaximum), u.iridescenceThicknessTexture !== void 0 && c.push(s.assignTexture(r, \"iridescenceThicknessMap\", u.iridescenceThicknessTexture)), Promise.all(c);\n }\n}\nclass uu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_SHEEN;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const s = this.parser, a = s.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [];\n r.sheenColor = new ke(0, 0, 0), r.sheenRoughness = 0, r.sheen = 1;\n const u = a.extensions[this.name];\n return u.sheenColorFactor !== void 0 && r.sheenColor.fromArray(u.sheenColorFactor), u.sheenRoughnessFactor !== void 0 && (r.sheenRoughness = u.sheenRoughnessFactor), u.sheenColorTexture !== void 0 && c.push(s.assignTexture(r, \"sheenColorMap\", u.sheenColorTexture, ht)), u.sheenRoughnessTexture !== void 0 && c.push(s.assignTexture(r, \"sheenRoughnessMap\", u.sheenRoughnessTexture)), Promise.all(c);\n }\n}\nclass hu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_TRANSMISSION;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const s = this.parser, a = s.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], u = a.extensions[this.name];\n return u.transmissionFactor !== void 0 && (r.transmission = u.transmissionFactor), u.transmissionTexture !== void 0 && c.push(s.assignTexture(r, \"transmissionMap\", u.transmissionTexture)), Promise.all(c);\n }\n}\nclass du {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_VOLUME;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const s = this.parser, a = s.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], u = a.extensions[this.name];\n r.thickness = u.thicknessFactor !== void 0 ? u.thicknessFactor : 0, u.thicknessTexture !== void 0 && c.push(s.assignTexture(r, \"thicknessMap\", u.thicknessTexture)), r.attenuationDistance = u.attenuationDistance || 1 / 0;\n const h = u.attenuationColor || [1, 1, 1];\n return r.attenuationColor = new ke(h[0], h[1], h[2]), Promise.all(c);\n }\n}\nclass mu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_IOR;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const a = this.parser.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = a.extensions[this.name];\n return r.ior = c.ior !== void 0 ? c.ior : 1.5, Promise.resolve();\n }\n}\nclass fu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_MATERIALS_SPECULAR;\n }\n getMaterialType(i) {\n const s = this.parser.json.materials[i];\n return !s.extensions || !s.extensions[this.name] ? null : Nn;\n }\n extendMaterialParams(i, r) {\n const s = this.parser, a = s.json.materials[i];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], u = a.extensions[this.name];\n r.specularIntensity = u.specularFactor !== void 0 ? u.specularFactor : 1, u.specularTexture !== void 0 && c.push(s.assignTexture(r, \"specularIntensityMap\", u.specularTexture));\n const h = u.specularColorFactor || [1, 1, 1];\n return r.specularColor = new ke(h[0], h[1], h[2]), u.specularColorTexture !== void 0 && c.push(s.assignTexture(r, \"specularColorMap\", u.specularColorTexture, ht)), Promise.all(c);\n }\n}\nclass vu {\n constructor(i) {\n this.parser = i, this.name = re.KHR_TEXTURE_BASISU;\n }\n loadTexture(i) {\n const r = this.parser, s = r.json, a = s.textures[i];\n if (!a.extensions || !a.extensions[this.name])\n return null;\n const c = a.extensions[this.name], u = r.options.ktx2Loader;\n if (!u) {\n if (s.extensionsRequired && s.extensionsRequired.indexOf(this.name) >= 0)\n throw new Error(\"THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures\");\n return null;\n }\n return r.loadTextureImage(i, c.source, u);\n }\n}\nclass bu {\n constructor(i) {\n this.parser = i, this.name = re.EXT_TEXTURE_WEBP, this.isSupported = null;\n }\n loadTexture(i) {\n const r = this.name, s = this.parser, a = s.json, c = a.textures[i];\n if (!c.extensions || !c.extensions[r])\n return null;\n const u = c.extensions[r], h = a.images[u.source];\n let d = s.textureLoader;\n if (h.uri) {\n const g = s.options.manager.getHandler(h.uri);\n g !== null && (d = g);\n }\n return this.detectSupport().then(function(g) {\n if (g)\n return s.loadTextureImage(i, u.source, d);\n if (a.extensionsRequired && a.extensionsRequired.indexOf(r) >= 0)\n throw new Error(\"THREE.GLTFLoader: WebP required by asset but unsupported.\");\n return s.loadTexture(i);\n });\n }\n detectSupport() {\n return this.isSupported || (this.isSupported = new Promise(function(i) {\n const r = new Image();\n r.src = \"data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA\", r.onload = r.onerror = function() {\n i(r.height === 1);\n };\n })), this.isSupported;\n }\n}\nclass gu {\n constructor(i) {\n this.name = re.EXT_MESHOPT_COMPRESSION, this.parser = i;\n }\n loadBufferView(i) {\n const r = this.parser.json, s = r.bufferViews[i];\n if (s.extensions && s.extensions[this.name]) {\n const a = s.extensions[this.name], c = this.parser.getDependency(\"buffer\", a.buffer), u = this.parser.options.meshoptDecoder;\n if (!u || !u.supported) {\n if (r.extensionsRequired && r.extensionsRequired.indexOf(this.name) >= 0)\n throw new Error(\"THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files\");\n return null;\n }\n return c.then(function(h) {\n const d = a.byteOffset || 0, g = a.byteLength || 0, w = a.count, _ = a.byteStride, y = new Uint8Array(h, d, g);\n return u.decodeGltfBufferAsync ? u.decodeGltfBufferAsync(w, _, y, a.mode, a.filter).then(function(C) {\n return C.buffer;\n }) : u.ready.then(function() {\n const C = new ArrayBuffer(w * _);\n return u.decodeGltfBuffer(new Uint8Array(C), w, _, y, a.mode, a.filter), C;\n });\n });\n } else\n return null;\n }\n}\nconst $a = \"glTF\", Gi = 12, aa = {\n JSON: 1313821514,\n BIN: 5130562\n};\nclass _u {\n constructor(i) {\n this.name = re.KHR_BINARY_GLTF, this.content = null, this.body = null;\n const r = new DataView(i, 0, Gi);\n if (this.header = {\n magic: Tt.decodeText(new Uint8Array(i.slice(0, 4))),\n version: r.getUint32(4, !0),\n length: r.getUint32(8, !0)\n }, this.header.magic !== $a)\n throw new Error(\"THREE.GLTFLoader: Unsupported glTF-Binary header.\");\n if (this.header.version < 2)\n throw new Error(\"THREE.GLTFLoader: Legacy binary file detected.\");\n const s = this.header.length - Gi, a = new DataView(i, Gi);\n let c = 0;\n for (; c < s; ) {\n const u = a.getUint32(c, !0);\n c += 4;\n const h = a.getUint32(c, !0);\n if (c += 4, h === aa.JSON) {\n const d = new Uint8Array(i, Gi + c, u);\n this.content = Tt.decodeText(d);\n } else if (h === aa.BIN) {\n const d = Gi + c;\n this.body = i.slice(d, d + u);\n }\n c += u;\n }\n if (this.content === null)\n throw new Error(\"THREE.GLTFLoader: JSON content not found.\");\n }\n}\nclass wu {\n constructor(i, r) {\n if (!r)\n throw new Error(\"THREE.GLTFLoader: No DRACOLoader instance provided.\");\n this.name = re.KHR_DRACO_MESH_COMPRESSION, this.json = i, this.dracoLoader = r, this.dracoLoader.preload();\n }\n decodePrimitive(i, r) {\n const s = this.json, a = this.dracoLoader, c = i.extensions[this.name].bufferView, u = i.extensions[this.name].attributes, h = {}, d = {}, g = {};\n for (const w in u) {\n const _ = co[w] || w.toLowerCase();\n h[_] = u[w];\n }\n for (const w in i.attributes) {\n const _ = co[w] || w.toLowerCase();\n if (u[w] !== void 0) {\n const y = s.accessors[i.attributes[w]], C = Wi[y.componentType];\n g[_] = C.name, d[_] = y.normalized === !0;\n }\n }\n return r.getDependency(\"bufferView\", c).then(function(w) {\n return new Promise(function(_) {\n a.decodeDracoFile(w, function(y) {\n for (const C in y.attributes) {\n const I = y.attributes[C], S = d[C];\n S !== void 0 && (I.normalized = S);\n }\n _(y);\n }, h, g);\n });\n });\n }\n}\nclass yu {\n constructor() {\n this.name = re.KHR_TEXTURE_TRANSFORM;\n }\n extendTexture(i, r) {\n return r.texCoord !== void 0 && console.warn('THREE.GLTFLoader: Custom UV sets in \"' + this.name + '\" extension not yet supported.'), r.offset === void 0 && r.rotation === void 0 && r.scale === void 0 || (i = i.clone(), r.offset !== void 0 && i.offset.fromArray(r.offset), r.rotation !== void 0 && (i.rotation = r.rotation), r.scale !== void 0 && i.repeat.fromArray(r.scale), i.needsUpdate = !0), i;\n }\n}\nclass lo extends bo {\n constructor(i) {\n super(), this.isGLTFSpecularGlossinessMaterial = !0;\n const r = [\"#ifdef USE_SPECULARMAP\", \"\tuniform sampler2D specularMap;\", \"#endif\"].join(`\n`), s = [\"#ifdef USE_GLOSSINESSMAP\", \"\tuniform sampler2D glossinessMap;\", \"#endif\"].join(`\n`), a = [\"vec3 specularFactor = specular;\", \"#ifdef USE_SPECULARMAP\", \"\tvec4 texelSpecular = texture2D( specularMap, vUv );\", \"\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture\", \"\tspecularFactor *= texelSpecular.rgb;\", \"#endif\"].join(`\n`), c = [\"float glossinessFactor = glossiness;\", \"#ifdef USE_GLOSSINESSMAP\", \"\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );\", \"\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture\", \"\tglossinessFactor *= texelGlossiness.a;\", \"#endif\"].join(`\n`), u = [\"PhysicalMaterial material;\", \"material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );\", \"vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\", \"float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\", \"material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.\", \"material.roughness += geometryRoughness;\", \"material.roughness = min( material.roughness, 1.0 );\", \"material.specularColor = specularFactor;\"].join(`\n`), h = {\n specular: {\n value: new ke().setHex(16777215)\n },\n glossiness: {\n value: 1\n },\n specularMap: {\n value: null\n },\n glossinessMap: {\n value: null\n }\n };\n this._extraUniforms = h, this.onBeforeCompile = function(d) {\n for (const g in h)\n d.uniforms[g] = h[g];\n d.fragmentShader = d.fragmentShader.replace(\"uniform float roughness;\", \"uniform vec3 specular;\").replace(\"uniform float metalness;\", \"uniform float glossiness;\").replace(\"#include \", r).replace(\"#include \", s).replace(\"#include \", a).replace(\"#include \", c).replace(\"#include \", u);\n }, Object.defineProperties(this, {\n specular: {\n get: function() {\n return h.specular.value;\n },\n set: function(d) {\n h.specular.value = d;\n }\n },\n specularMap: {\n get: function() {\n return h.specularMap.value;\n },\n set: function(d) {\n h.specularMap.value = d, d ? this.defines.USE_SPECULARMAP = \"\" : delete this.defines.USE_SPECULARMAP;\n }\n },\n glossiness: {\n get: function() {\n return h.glossiness.value;\n },\n set: function(d) {\n h.glossiness.value = d;\n }\n },\n glossinessMap: {\n get: function() {\n return h.glossinessMap.value;\n },\n set: function(d) {\n h.glossinessMap.value = d, d ? (this.defines.USE_GLOSSINESSMAP = \"\", this.defines.USE_UV = \"\") : (delete this.defines.USE_GLOSSINESSMAP, delete this.defines.USE_UV);\n }\n }\n }), delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this.setValues(i);\n }\n copy(i) {\n return super.copy(i), this.specularMap = i.specularMap, this.specular.copy(i.specular), this.glossinessMap = i.glossinessMap, this.glossiness = i.glossiness, delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this;\n }\n}\nclass xu {\n constructor() {\n this.name = re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS, this.specularGlossinessParams = [\"color\", \"map\", \"lightMap\", \"lightMapIntensity\", \"aoMap\", \"aoMapIntensity\", \"emissive\", \"emissiveIntensity\", \"emissiveMap\", \"bumpMap\", \"bumpScale\", \"normalMap\", \"normalMapType\", \"displacementMap\", \"displacementScale\", \"displacementBias\", \"specularMap\", \"specular\", \"glossinessMap\", \"glossiness\", \"alphaMap\", \"envMap\", \"envMapIntensity\", \"refractionRatio\"];\n }\n getMaterialType() {\n return lo;\n }\n extendParams(i, r, s) {\n const a = r.extensions[this.name];\n i.color = new ke(1, 1, 1), i.opacity = 1;\n const c = [];\n if (Array.isArray(a.diffuseFactor)) {\n const u = a.diffuseFactor;\n i.color.fromArray(u), i.opacity = u[3];\n }\n if (a.diffuseTexture !== void 0 && c.push(s.assignTexture(i, \"map\", a.diffuseTexture, ht)), i.emissive = new ke(0, 0, 0), i.glossiness = a.glossinessFactor !== void 0 ? a.glossinessFactor : 1, i.specular = new ke(1, 1, 1), Array.isArray(a.specularFactor) && i.specular.fromArray(a.specularFactor), a.specularGlossinessTexture !== void 0) {\n const u = a.specularGlossinessTexture;\n c.push(s.assignTexture(i, \"glossinessMap\", u)), c.push(s.assignTexture(i, \"specularMap\", u, ht));\n }\n return Promise.all(c);\n }\n createMaterial(i) {\n const r = new lo(i);\n return r.fog = !0, r.color = i.color, r.map = i.map === void 0 ? null : i.map, r.lightMap = null, r.lightMapIntensity = 1, r.aoMap = i.aoMap === void 0 ? null : i.aoMap, r.aoMapIntensity = 1, r.emissive = i.emissive, r.emissiveIntensity = i.emissiveIntensity === void 0 ? 1 : i.emissiveIntensity, r.emissiveMap = i.emissiveMap === void 0 ? null : i.emissiveMap, r.bumpMap = i.bumpMap === void 0 ? null : i.bumpMap, r.bumpScale = 1, r.normalMap = i.normalMap === void 0 ? null : i.normalMap, r.normalMapType = op, i.normalScale && (r.normalScale = i.normalScale), r.displacementMap = null, r.displacementScale = 1, r.displacementBias = 0, r.specularMap = i.specularMap === void 0 ? null : i.specularMap, r.specular = i.specular, r.glossinessMap = i.glossinessMap === void 0 ? null : i.glossinessMap, r.glossiness = i.glossiness, r.alphaMap = null, r.envMap = i.envMap === void 0 ? null : i.envMap, r.envMapIntensity = 1, r.refractionRatio = 0.98, r;\n }\n}\nclass Eu {\n constructor() {\n this.name = re.KHR_MESH_QUANTIZATION;\n }\n}\nclass Xa extends Cp {\n constructor(i, r, s, a) {\n super(i, r, s, a);\n }\n copySampleValue_(i) {\n const r = this.resultBuffer, s = this.sampleValues, a = this.valueSize, c = i * a * 3 + a;\n for (let u = 0; u !== a; u++)\n r[u] = s[c + u];\n return r;\n }\n interpolate_(i, r, s, a) {\n const c = this.resultBuffer, u = this.sampleValues, h = this.valueSize, d = h * 2, g = h * 3, w = a - r, _ = (s - r) / w, y = _ * _, C = y * _, I = i * g, S = I - g, R = -2 * C + 3 * y, j = C - y, F = 1 - R, V = j - y + _;\n for (let D = 0; D !== h; D++) {\n const Y = u[S + D + h], G = u[S + D + d] * w, N = u[I + D + h], O = u[I + D] * w;\n c[D] = F * Y + V * G + R * N + j * O;\n }\n return c;\n }\n}\nconst Cu = new Te();\nclass Pu extends Xa {\n interpolate_(i, r, s, a) {\n const c = super.interpolate_(i, r, s, a);\n return Cu.fromArray(c).normalize().toArray(c), c;\n }\n}\nconst Ft = {\n FLOAT: 5126,\n //FLOAT_MAT2: 35674,\n FLOAT_MAT3: 35675,\n FLOAT_MAT4: 35676,\n FLOAT_VEC2: 35664,\n FLOAT_VEC3: 35665,\n FLOAT_VEC4: 35666,\n LINEAR: 9729,\n REPEAT: 10497,\n SAMPLER_2D: 35678,\n POINTS: 0,\n LINES: 1,\n LINE_LOOP: 2,\n LINE_STRIP: 3,\n TRIANGLES: 4,\n TRIANGLE_STRIP: 5,\n TRIANGLE_FAN: 6,\n UNSIGNED_BYTE: 5121,\n UNSIGNED_SHORT: 5123\n}, Wi = {\n 5120: Int8Array,\n 5121: Uint8Array,\n 5122: Int16Array,\n 5123: Uint16Array,\n 5125: Uint32Array,\n 5126: Float32Array\n}, la = {\n 9728: mp,\n 9729: Fs,\n 9984: fp,\n 9985: vp,\n 9986: bp,\n 9987: Aa\n}, ca = {\n 33071: so,\n 33648: gp,\n 10497: qi\n}, pa = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n}, co = {\n POSITION: \"position\",\n NORMAL: \"normal\",\n TANGENT: \"tangent\",\n TEXCOORD_0: \"uv\",\n TEXCOORD_1: \"uv2\",\n COLOR_0: \"color\",\n WEIGHTS_0: \"skinWeight\",\n JOINTS_0: \"skinIndex\"\n}, nn = {\n scale: \"scale\",\n translation: \"position\",\n rotation: \"quaternion\",\n weights: \"morphTargetInfluences\"\n}, Tu = {\n CUBICSPLINE: void 0,\n // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each\n // keyframe track will be initialized with a default interpolation type, then modified.\n LINEAR: Ra,\n STEP: _p\n}, Qr = {\n OPAQUE: \"OPAQUE\",\n MASK: \"MASK\",\n BLEND: \"BLEND\"\n};\nfunction ku(b) {\n return b.DefaultMaterial === void 0 && (b.DefaultMaterial = new bo({\n color: 16777215,\n emissive: 0,\n metalness: 1,\n roughness: 1,\n transparent: !1,\n depthTest: !0,\n side: wp\n })), b.DefaultMaterial;\n}\nfunction Hi(b, i, r) {\n for (const s in r.extensions)\n b[s] === void 0 && (i.userData.gltfExtensions = i.userData.gltfExtensions || {}, i.userData.gltfExtensions[s] = r.extensions[s]);\n}\nfunction In(b, i) {\n i.extras !== void 0 && (typeof i.extras == \"object\" ? Object.assign(b.userData, i.extras) : console.warn(\"THREE.GLTFLoader: Ignoring primitive type .extras, \" + i.extras));\n}\nfunction Mu(b, i, r) {\n let s = !1, a = !1, c = !1;\n for (let g = 0, w = i.length; g < w; g++) {\n const _ = i[g];\n if (_.POSITION !== void 0 && (s = !0), _.NORMAL !== void 0 && (a = !0), _.COLOR_0 !== void 0 && (c = !0), s && a && c)\n break;\n }\n if (!s && !a && !c)\n return Promise.resolve(b);\n const u = [], h = [], d = [];\n for (let g = 0, w = i.length; g < w; g++) {\n const _ = i[g];\n if (s) {\n const y = _.POSITION !== void 0 ? r.getDependency(\"accessor\", _.POSITION) : b.attributes.position;\n u.push(y);\n }\n if (a) {\n const y = _.NORMAL !== void 0 ? r.getDependency(\"accessor\", _.NORMAL) : b.attributes.normal;\n h.push(y);\n }\n if (c) {\n const y = _.COLOR_0 !== void 0 ? r.getDependency(\"accessor\", _.COLOR_0) : b.attributes.color;\n d.push(y);\n }\n }\n return Promise.all([Promise.all(u), Promise.all(h), Promise.all(d)]).then(function(g) {\n const w = g[0], _ = g[1], y = g[2];\n return s && (b.morphAttributes.position = w), a && (b.morphAttributes.normal = _), c && (b.morphAttributes.color = y), b.morphTargetsRelative = !0, b;\n });\n}\nfunction Su(b, i) {\n if (b.updateMorphTargets(), i.weights !== void 0)\n for (let r = 0, s = i.weights.length; r < s; r++)\n b.morphTargetInfluences[r] = i.weights[r];\n if (i.extras && Array.isArray(i.extras.targetNames)) {\n const r = i.extras.targetNames;\n if (b.morphTargetInfluences.length === r.length) {\n b.morphTargetDictionary = {};\n for (let s = 0, a = r.length; s < a; s++)\n b.morphTargetDictionary[r[s]] = s;\n } else\n console.warn(\"THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.\");\n }\n}\nfunction Au(b) {\n const i = b.extensions && b.extensions[re.KHR_DRACO_MESH_COMPRESSION];\n let r;\n return i ? r = \"draco:\" + i.bufferView + \":\" + i.indices + \":\" + ua(i.attributes) : r = b.indices + \":\" + ua(b.attributes) + \":\" + b.mode, r;\n}\nfunction ua(b) {\n let i = \"\";\n const r = Object.keys(b).sort();\n for (let s = 0, a = r.length; s < a; s++)\n i += r[s] + \":\" + b[r[s]] + \";\";\n return i;\n}\nfunction po(b) {\n switch (b) {\n case Int8Array:\n return 1 / 127;\n case Uint8Array:\n return 1 / 255;\n case Int16Array:\n return 1 / 32767;\n case Uint16Array:\n return 1 / 65535;\n default:\n throw new Error(\"THREE.GLTFLoader: Unsupported normalized accessor component type.\");\n }\n}\nfunction Lu(b) {\n return b.search(/\\.jpe?g($|\\?)/i) > 0 || b.search(/^data\\:image\\/jpeg/) === 0 ? \"image/jpeg\" : b.search(/\\.webp($|\\?)/i) > 0 || b.search(/^data\\:image\\/webp/) === 0 ? \"image/webp\" : \"image/png\";\n}\nclass Ru {\n constructor(i = {}, r = {}) {\n var s, a;\n this.json = i, this.extensions = {}, this.plugins = {}, this.options = r, this.cache = new ru(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.meshCache = {\n refs: {},\n uses: {}\n }, this.cameraCache = {\n refs: {},\n uses: {}\n }, this.lightCache = {\n refs: {},\n uses: {}\n }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};\n const c = typeof navigator < \"u\" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === !0, u = typeof navigator < \"u\" && ((s = navigator.userAgent) === null || s === void 0 ? void 0 : s.indexOf(\"Firefox\")) > -1, h = typeof navigator < \"u\" && u ? (a = navigator.userAgent) === null || a === void 0 ? void 0 : a.match(/Firefox\\/([0-9]+)\\./)[1] : -1;\n typeof createImageBitmap > \"u\" || c || u && h < 98 ? this.textureLoader = new Sa(this.options.manager) : this.textureLoader = new ap(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new ui(this.options.manager), this.fileLoader.setResponseType(\"arraybuffer\"), this.options.crossOrigin === \"use-credentials\" && this.fileLoader.setWithCredentials(!0);\n }\n setExtensions(i) {\n this.extensions = i;\n }\n setPlugins(i) {\n this.plugins = i;\n }\n parse(i, r) {\n const s = this, a = this.json, c = this.extensions;\n this.cache.removeAll(), this._invokeAll(function(u) {\n return u._markDefs && u._markDefs();\n }), Promise.all(this._invokeAll(function(u) {\n return u.beforeRoot && u.beforeRoot();\n })).then(function() {\n return Promise.all([s.getDependencies(\"scene\"), s.getDependencies(\"animation\"), s.getDependencies(\"camera\")]);\n }).then(function(u) {\n const h = {\n scene: u[0][a.scene || 0],\n scenes: u[0],\n animations: u[1],\n cameras: u[2],\n asset: a.asset,\n parser: s,\n userData: {}\n };\n Hi(c, h, a), In(h, a), Promise.all(s._invokeAll(function(d) {\n return d.afterRoot && d.afterRoot(h);\n })).then(function() {\n i(h);\n });\n }).catch(r);\n }\n /**\n * Marks the special nodes/meshes in json for efficient parse.\n */\n _markDefs() {\n const i = this.json.nodes || [], r = this.json.skins || [], s = this.json.meshes || [];\n for (let a = 0, c = r.length; a < c; a++) {\n const u = r[a].joints;\n for (let h = 0, d = u.length; h < d; h++)\n i[u[h]].isBone = !0;\n }\n for (let a = 0, c = i.length; a < c; a++) {\n const u = i[a];\n u.mesh !== void 0 && (this._addNodeRef(this.meshCache, u.mesh), u.skin !== void 0 && (s[u.mesh].isSkinnedMesh = !0)), u.camera !== void 0 && this._addNodeRef(this.cameraCache, u.camera);\n }\n }\n /**\n * Counts references to shared node / Object3D resources. These resources\n * can be reused, or \"instantiated\", at multiple nodes in the scene\n * hierarchy. Mesh, Camera, and Light instances are instantiated and must\n * be marked. Non-scenegraph resources (like Materials, Geometries, and\n * Textures) can be reused directly and are not marked here.\n *\n * Example: CesiumMilkTruck sample model reuses \"Wheel\" meshes.\n */\n _addNodeRef(i, r) {\n r !== void 0 && (i.refs[r] === void 0 && (i.refs[r] = i.uses[r] = 0), i.refs[r]++);\n }\n /** Returns a reference to a shared resource, cloning it if necessary. */\n _getNodeRef(i, r, s) {\n if (i.refs[r] <= 1)\n return s;\n const a = s.clone(), c = (u, h) => {\n const d = this.associations.get(u);\n d != null && this.associations.set(h, d);\n for (const [g, w] of u.children.entries())\n c(w, h.children[g]);\n };\n return c(s, a), a.name += \"_instance_\" + i.uses[r]++, a;\n }\n _invokeOne(i) {\n const r = Object.values(this.plugins);\n r.push(this);\n for (let s = 0; s < r.length; s++) {\n const a = i(r[s]);\n if (a)\n return a;\n }\n return null;\n }\n _invokeAll(i) {\n const r = Object.values(this.plugins);\n r.unshift(this);\n const s = [];\n for (let a = 0; a < r.length; a++) {\n const c = i(r[a]);\n c && s.push(c);\n }\n return s;\n }\n /**\n * Requests the specified dependency asynchronously, with caching.\n * @param {string} type\n * @param {number} index\n * @return {Promise}\n */\n getDependency(i, r) {\n const s = i + \":\" + r;\n let a = this.cache.get(s);\n if (!a) {\n switch (i) {\n case \"scene\":\n a = this.loadScene(r);\n break;\n case \"node\":\n a = this.loadNode(r);\n break;\n case \"mesh\":\n a = this._invokeOne(function(c) {\n return c.loadMesh && c.loadMesh(r);\n });\n break;\n case \"accessor\":\n a = this.loadAccessor(r);\n break;\n case \"bufferView\":\n a = this._invokeOne(function(c) {\n return c.loadBufferView && c.loadBufferView(r);\n });\n break;\n case \"buffer\":\n a = this.loadBuffer(r);\n break;\n case \"material\":\n a = this._invokeOne(function(c) {\n return c.loadMaterial && c.loadMaterial(r);\n });\n break;\n case \"texture\":\n a = this._invokeOne(function(c) {\n return c.loadTexture && c.loadTexture(r);\n });\n break;\n case \"skin\":\n a = this.loadSkin(r);\n break;\n case \"animation\":\n a = this._invokeOne(function(c) {\n return c.loadAnimation && c.loadAnimation(r);\n });\n break;\n case \"camera\":\n a = this.loadCamera(r);\n break;\n default:\n throw new Error(\"Unknown type: \" + i);\n }\n this.cache.add(s, a);\n }\n return a;\n }\n /**\n * Requests all dependencies of the specified type asynchronously, with caching.\n * @param {string} type\n * @return {Promise>}\n */\n getDependencies(i) {\n let r = this.cache.get(i);\n if (!r) {\n const s = this, a = this.json[i + (i === \"mesh\" ? \"es\" : \"s\")] || [];\n r = Promise.all(a.map(function(c, u) {\n return s.getDependency(i, u);\n })), this.cache.add(i, r);\n }\n return r;\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n * @param {number} bufferIndex\n * @return {Promise}\n */\n loadBuffer(i) {\n const r = this.json.buffers[i], s = this.fileLoader;\n if (r.type && r.type !== \"arraybuffer\")\n throw new Error(\"THREE.GLTFLoader: \" + r.type + \" buffer type is not supported.\");\n if (r.uri === void 0 && i === 0)\n return Promise.resolve(this.extensions[re.KHR_BINARY_GLTF].body);\n const a = this.options;\n return new Promise(function(c, u) {\n s.load(Tt.resolveURL(r.uri, a.path), c, void 0, function() {\n u(new Error('THREE.GLTFLoader: Failed to load buffer \"' + r.uri + '\".'));\n });\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n * @param {number} bufferViewIndex\n * @return {Promise}\n */\n loadBufferView(i) {\n const r = this.json.bufferViews[i];\n return this.getDependency(\"buffer\", r.buffer).then(function(s) {\n const a = r.byteLength || 0, c = r.byteOffset || 0;\n return s.slice(c, c + a);\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors\n * @param {number} accessorIndex\n * @return {Promise}\n */\n loadAccessor(i) {\n const r = this, s = this.json, a = this.json.accessors[i];\n if (a.bufferView === void 0 && a.sparse === void 0)\n return Promise.resolve(null);\n const c = [];\n return a.bufferView !== void 0 ? c.push(this.getDependency(\"bufferView\", a.bufferView)) : c.push(null), a.sparse !== void 0 && (c.push(this.getDependency(\"bufferView\", a.sparse.indices.bufferView)), c.push(this.getDependency(\"bufferView\", a.sparse.values.bufferView))), Promise.all(c).then(function(u) {\n const h = u[0], d = pa[a.type], g = Wi[a.componentType], w = g.BYTES_PER_ELEMENT, _ = w * d, y = a.byteOffset || 0, C = a.bufferView !== void 0 ? s.bufferViews[a.bufferView].byteStride : void 0, I = a.normalized === !0;\n let S, R;\n if (C && C !== _) {\n const j = Math.floor(y / C), F = \"InterleavedBuffer:\" + a.bufferView + \":\" + a.componentType + \":\" + j + \":\" + a.count;\n let V = r.cache.get(F);\n V || (S = new g(h, j * C, a.count * C / w), V = new lp(S, C / w), r.cache.add(F, V)), R = new cp(V, d, y % C / w, I);\n } else\n h === null ? S = new g(a.count * d) : S = new g(h, y, a.count * d), R = new Ns(S, d, I);\n if (a.sparse !== void 0) {\n const j = pa.SCALAR, F = Wi[a.sparse.indices.componentType], V = a.sparse.indices.byteOffset || 0, D = a.sparse.values.byteOffset || 0, Y = new F(u[1], V, a.sparse.count * j), G = new g(u[2], D, a.sparse.count * d);\n h !== null && (R = new Ns(R.array.slice(), R.itemSize, R.normalized));\n for (let N = 0, O = Y.length; N < O; N++) {\n const H = Y[N];\n if (R.setX(H, G[N * d]), d >= 2 && R.setY(H, G[N * d + 1]), d >= 3 && R.setZ(H, G[N * d + 2]), d >= 4 && R.setW(H, G[N * d + 3]), d >= 5)\n throw new Error(\"THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.\");\n }\n }\n return R;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures\n * @param {number} textureIndex\n * @return {Promise}\n */\n loadTexture(i) {\n const r = this.json, s = this.options, c = r.textures[i].source, u = r.images[c];\n let h = this.textureLoader;\n if (u.uri) {\n const d = s.manager.getHandler(u.uri);\n d !== null && (h = d);\n }\n return this.loadTextureImage(i, c, h);\n }\n loadTextureImage(i, r, s) {\n const a = this, c = this.json, u = c.textures[i], h = c.images[r], d = (h.uri || h.bufferView) + \":\" + u.sampler;\n if (this.textureCache[d])\n return this.textureCache[d];\n const g = this.loadImageSource(r, s).then(function(w) {\n w.flipY = !1, u.name && (w.name = u.name);\n const y = (c.samplers || {})[u.sampler] || {};\n return w.magFilter = la[y.magFilter] || Fs, w.minFilter = la[y.minFilter] || Aa, w.wrapS = ca[y.wrapS] || qi, w.wrapT = ca[y.wrapT] || qi, a.associations.set(w, {\n textures: i\n }), w;\n }).catch(function() {\n return null;\n });\n return this.textureCache[d] = g, g;\n }\n loadImageSource(i, r) {\n const s = this, a = this.json, c = this.options;\n if (this.sourceCache[i] !== void 0)\n return this.sourceCache[i].then((_) => _.clone());\n const u = a.images[i], h = self.URL || self.webkitURL;\n let d = u.uri || \"\", g = !1;\n if (u.bufferView !== void 0)\n d = s.getDependency(\"bufferView\", u.bufferView).then(function(_) {\n g = !0;\n const y = new Blob([_], {\n type: u.mimeType\n });\n return d = h.createObjectURL(y), d;\n });\n else if (u.uri === void 0)\n throw new Error(\"THREE.GLTFLoader: Image \" + i + \" is missing URI and bufferView\");\n const w = Promise.resolve(d).then(function(_) {\n return new Promise(function(y, C) {\n let I = y;\n r.isImageBitmapLoader === !0 && (I = function(S) {\n const R = new Bs(S);\n R.needsUpdate = !0, y(R);\n }), r.load(Tt.resolveURL(_, c.path), I, void 0, C);\n });\n }).then(function(_) {\n return g === !0 && h.revokeObjectURL(d), _.userData.mimeType = u.mimeType || Lu(u.uri), _;\n }).catch(function(_) {\n throw console.error(\"THREE.GLTFLoader: Couldn't load texture\", d), _;\n });\n return this.sourceCache[i] = w, w;\n }\n /**\n * Asynchronously assigns a texture to the given material parameters.\n * @param {Object} materialParams\n * @param {string} mapName\n * @param {Object} mapDef\n * @return {Promise}\n */\n assignTexture(i, r, s, a) {\n const c = this;\n return this.getDependency(\"texture\", s.index).then(function(u) {\n if (s.texCoord !== void 0 && s.texCoord != 0 && !(r === \"aoMap\" && s.texCoord == 1) && console.warn(\"THREE.GLTFLoader: Custom UV set \" + s.texCoord + \" for texture \" + r + \" not yet supported.\"), c.extensions[re.KHR_TEXTURE_TRANSFORM]) {\n const h = s.extensions !== void 0 ? s.extensions[re.KHR_TEXTURE_TRANSFORM] : void 0;\n if (h) {\n const d = c.associations.get(u);\n u = c.extensions[re.KHR_TEXTURE_TRANSFORM].extendTexture(u, h), c.associations.set(u, d);\n }\n }\n return a !== void 0 && (u.encoding = a), i[r] = u, u;\n });\n }\n /**\n * Assigns final material to a Mesh, Line, or Points instance. The instance\n * already has a material (generated from the glTF material options alone)\n * but reuse of the same glTF material may require multiple threejs materials\n * to accommodate different primitive types, defines, etc. New materials will\n * be created if necessary, and reused from a cache.\n * @param {Object3D} mesh Mesh, Line, or Points instance.\n */\n assignFinalMaterial(i) {\n const r = i.geometry;\n let s = i.material;\n const a = r.attributes.tangent === void 0, c = r.attributes.color !== void 0, u = r.attributes.normal === void 0;\n if (i.isPoints) {\n const h = \"PointsMaterial:\" + s.uuid;\n let d = this.cache.get(h);\n d || (d = new pp(), Kr.prototype.copy.call(d, s), d.color.copy(s.color), d.map = s.map, d.sizeAttenuation = !1, this.cache.add(h, d)), s = d;\n } else if (i.isLine) {\n const h = \"LineBasicMaterial:\" + s.uuid;\n let d = this.cache.get(h);\n d || (d = new vo(), Kr.prototype.copy.call(d, s), d.color.copy(s.color), this.cache.add(h, d)), s = d;\n }\n if (a || c || u) {\n let h = \"ClonedMaterial:\" + s.uuid + \":\";\n s.isGLTFSpecularGlossinessMaterial && (h += \"specular-glossiness:\"), a && (h += \"derivative-tangents:\"), c && (h += \"vertex-colors:\"), u && (h += \"flat-shading:\");\n let d = this.cache.get(h);\n d || (d = s.clone(), c && (d.vertexColors = !0), u && (d.flatShading = !0), a && (d.normalScale && (d.normalScale.y *= -1), d.clearcoatNormalScale && (d.clearcoatNormalScale.y *= -1)), this.cache.add(h, d), this.associations.set(d, this.associations.get(s))), s = d;\n }\n s.aoMap && r.attributes.uv2 === void 0 && r.attributes.uv !== void 0 && r.setAttribute(\"uv2\", r.attributes.uv), i.material = s;\n }\n getMaterialType() {\n return bo;\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials\n * @param {number} materialIndex\n * @return {Promise}\n */\n loadMaterial(i) {\n const r = this, s = this.json, a = this.extensions, c = s.materials[i];\n let u;\n const h = {}, d = c.extensions || {}, g = [];\n if (d[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) {\n const _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];\n u = _.getMaterialType(), g.push(_.extendParams(h, c, r));\n } else if (d[re.KHR_MATERIALS_UNLIT]) {\n const _ = a[re.KHR_MATERIALS_UNLIT];\n u = _.getMaterialType(), g.push(_.extendParams(h, c, r));\n } else {\n const _ = c.pbrMetallicRoughness || {};\n if (h.color = new ke(1, 1, 1), h.opacity = 1, Array.isArray(_.baseColorFactor)) {\n const y = _.baseColorFactor;\n h.color.fromArray(y), h.opacity = y[3];\n }\n _.baseColorTexture !== void 0 && g.push(r.assignTexture(h, \"map\", _.baseColorTexture, ht)), h.metalness = _.metallicFactor !== void 0 ? _.metallicFactor : 1, h.roughness = _.roughnessFactor !== void 0 ? _.roughnessFactor : 1, _.metallicRoughnessTexture !== void 0 && (g.push(r.assignTexture(h, \"metalnessMap\", _.metallicRoughnessTexture)), g.push(r.assignTexture(h, \"roughnessMap\", _.metallicRoughnessTexture))), u = this._invokeOne(function(y) {\n return y.getMaterialType && y.getMaterialType(i);\n }), g.push(Promise.all(this._invokeAll(function(y) {\n return y.extendMaterialParams && y.extendMaterialParams(i, h);\n })));\n }\n c.doubleSided === !0 && (h.side = fo);\n const w = c.alphaMode || Qr.OPAQUE;\n if (w === Qr.BLEND ? (h.transparent = !0, h.depthWrite = !1) : (h.transparent = !1, w === Qr.MASK && (h.alphaTest = c.alphaCutoff !== void 0 ? c.alphaCutoff : 0.5)), c.normalTexture !== void 0 && u !== Dn && (g.push(r.assignTexture(h, \"normalMap\", c.normalTexture)), h.normalScale = new pt(1, 1), c.normalTexture.scale !== void 0)) {\n const _ = c.normalTexture.scale;\n h.normalScale.set(_, _);\n }\n return c.occlusionTexture !== void 0 && u !== Dn && (g.push(r.assignTexture(h, \"aoMap\", c.occlusionTexture)), c.occlusionTexture.strength !== void 0 && (h.aoMapIntensity = c.occlusionTexture.strength)), c.emissiveFactor !== void 0 && u !== Dn && (h.emissive = new ke().fromArray(c.emissiveFactor)), c.emissiveTexture !== void 0 && u !== Dn && g.push(r.assignTexture(h, \"emissiveMap\", c.emissiveTexture, ht)), Promise.all(g).then(function() {\n let _;\n return u === lo ? _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(h) : _ = new u(h), c.name && (_.name = c.name), In(_, c), r.associations.set(_, {\n materials: i\n }), c.extensions && Hi(a, _, c), _;\n });\n }\n /** When Object3D instances are targeted by animation, they need unique names. */\n createUniqueName(i) {\n const r = Qi.sanitizeNodeName(i || \"\");\n let s = r;\n for (let a = 1; this.nodeNamesUsed[s]; ++a)\n s = r + \"_\" + a;\n return this.nodeNamesUsed[s] = !0, s;\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry\n *\n * Creates BufferGeometries from primitives.\n *\n * @param {Array} primitives\n * @return {Promise>}\n */\n loadGeometries(i) {\n const r = this, s = this.extensions, a = this.primitiveCache;\n function c(h) {\n return s[re.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(h, r).then(function(d) {\n return ha(d, h, r);\n });\n }\n const u = [];\n for (let h = 0, d = i.length; h < d; h++) {\n const g = i[h], w = Au(g), _ = a[w];\n if (_)\n u.push(_.promise);\n else {\n let y;\n g.extensions && g.extensions[re.KHR_DRACO_MESH_COMPRESSION] ? y = c(g) : y = ha(new zt(), g, r), a[w] = {\n primitive: g,\n promise: y\n }, u.push(y);\n }\n }\n return Promise.all(u);\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes\n * @param {number} meshIndex\n * @return {Promise}\n */\n loadMesh(i) {\n const r = this, s = this.json, a = this.extensions, c = s.meshes[i], u = c.primitives, h = [];\n for (let d = 0, g = u.length; d < g; d++) {\n const w = u[d].material === void 0 ? ku(this.cache) : this.getDependency(\"material\", u[d].material);\n h.push(w);\n }\n return h.push(r.loadGeometries(u)), Promise.all(h).then(function(d) {\n const g = d.slice(0, d.length - 1), w = d[d.length - 1], _ = [];\n for (let C = 0, I = w.length; C < I; C++) {\n const S = w[C], R = u[C];\n let j;\n const F = g[C];\n if (R.mode === Ft.TRIANGLES || R.mode === Ft.TRIANGLE_STRIP || R.mode === Ft.TRIANGLE_FAN || R.mode === void 0)\n j = c.isSkinnedMesh === !0 ? new La(S, F) : new Z(S, F), j.isSkinnedMesh === !0 && !j.geometry.attributes.skinWeight.normalized && j.normalizeSkinWeights(), R.mode === Ft.TRIANGLE_STRIP ? j.geometry = da(j.geometry, yp) : R.mode === Ft.TRIANGLE_FAN && (j.geometry = da(j.geometry, Da));\n else if (R.mode === Ft.LINES)\n j = new up(S, F);\n else if (R.mode === Ft.LINE_STRIP)\n j = new pe(S, F);\n else if (R.mode === Ft.LINE_LOOP)\n j = new hp(S, F);\n else if (R.mode === Ft.POINTS)\n j = new dp(S, F);\n else\n throw new Error(\"THREE.GLTFLoader: Primitive mode unsupported: \" + R.mode);\n Object.keys(j.geometry.morphAttributes).length > 0 && Su(j, c), j.name = r.createUniqueName(c.name || \"mesh_\" + i), In(j, c), R.extensions && Hi(a, j, R), r.assignFinalMaterial(j), _.push(j);\n }\n for (let C = 0, I = _.length; C < I; C++)\n r.associations.set(_[C], {\n meshes: i,\n primitives: C\n });\n if (_.length === 1)\n return _[0];\n const y = new $i();\n r.associations.set(y, {\n meshes: i\n });\n for (let C = 0, I = _.length; C < I; C++)\n y.add(_[C]);\n return y;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras\n * @param {number} cameraIndex\n * @return {Promise}\n */\n loadCamera(i) {\n let r;\n const s = this.json.cameras[i], a = s[s.type];\n if (!a) {\n console.warn(\"THREE.GLTFLoader: Missing camera parameters.\");\n return;\n }\n return s.type === \"perspective\" ? r = new sn(wt.radToDeg(a.yfov), a.aspectRatio || 1, a.znear || 1, a.zfar || 2e6) : s.type === \"orthographic\" && (r = new Ki(-a.xmag, a.xmag, a.ymag, -a.ymag, a.znear, a.zfar)), s.name && (r.name = this.createUniqueName(s.name)), In(r, s), Promise.resolve(r);\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n * @param {number} skinIndex\n * @return {Promise}\n */\n loadSkin(i) {\n const r = this.json.skins[i], s = {\n joints: r.joints\n };\n return r.inverseBindMatrices === void 0 ? Promise.resolve(s) : this.getDependency(\"accessor\", r.inverseBindMatrices).then(function(a) {\n return s.inverseBindMatrices = a, s;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations\n * @param {number} animationIndex\n * @return {Promise}\n */\n loadAnimation(i) {\n const s = this.json.animations[i], a = [], c = [], u = [], h = [], d = [];\n for (let g = 0, w = s.channels.length; g < w; g++) {\n const _ = s.channels[g], y = s.samplers[_.sampler], C = _.target, I = C.node, S = s.parameters !== void 0 ? s.parameters[y.input] : y.input, R = s.parameters !== void 0 ? s.parameters[y.output] : y.output;\n a.push(this.getDependency(\"node\", I)), c.push(this.getDependency(\"accessor\", S)), u.push(this.getDependency(\"accessor\", R)), h.push(y), d.push(C);\n }\n return Promise.all([Promise.all(a), Promise.all(c), Promise.all(u), Promise.all(h), Promise.all(d)]).then(function(g) {\n const w = g[0], _ = g[1], y = g[2], C = g[3], I = g[4], S = [];\n for (let j = 0, F = w.length; j < F; j++) {\n const V = w[j], D = _[j], Y = y[j], G = C[j], N = I[j];\n if (V === void 0)\n continue;\n V.updateMatrix();\n let O;\n switch (nn[N.path]) {\n case nn.weights:\n O = Na;\n break;\n case nn.rotation:\n O = ro;\n break;\n case nn.position:\n case nn.scale:\n default:\n O = Oa;\n break;\n }\n const H = V.name ? V.name : V.uuid, K = G.interpolation !== void 0 ? Tu[G.interpolation] : Ra, q = [];\n nn[N.path] === nn.weights ? V.traverse(function(ge) {\n ge.morphTargetInfluences && q.push(ge.name ? ge.name : ge.uuid);\n }) : q.push(H);\n let ue = Y.array;\n if (Y.normalized) {\n const ge = po(ue.constructor), ce = new Float32Array(ue.length);\n for (let me = 0, he = ue.length; me < he; me++)\n ce[me] = ue[me] * ge;\n ue = ce;\n }\n for (let ge = 0, ce = q.length; ge < ce; ge++) {\n const me = new O(q[ge] + \".\" + nn[N.path], D.array, ue, K);\n G.interpolation === \"CUBICSPLINE\" && (me.createInterpolant = function(ee) {\n const X = this instanceof ro ? Pu : Xa;\n return new X(this.times, this.values, this.getValueSize() / 3, ee);\n }, me.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0), S.push(me);\n }\n }\n const R = s.name ? s.name : \"animation_\" + i;\n return new Ia(R, void 0, S);\n });\n }\n createNodeMesh(i) {\n const r = this.json, s = this, a = r.nodes[i];\n return a.mesh === void 0 ? null : s.getDependency(\"mesh\", a.mesh).then(function(c) {\n const u = s._getNodeRef(s.meshCache, a.mesh, c);\n return a.weights !== void 0 && u.traverse(function(h) {\n if (h.isMesh)\n for (let d = 0, g = a.weights.length; d < g; d++)\n h.morphTargetInfluences[d] = a.weights[d];\n }), u;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy\n * @param {number} nodeIndex\n * @return {Promise}\n */\n loadNode(i) {\n const r = this.json, s = this.extensions, a = this, c = r.nodes[i], u = c.name ? a.createUniqueName(c.name) : \"\";\n return function() {\n const h = [], d = a._invokeOne(function(g) {\n return g.createNodeMesh && g.createNodeMesh(i);\n });\n return d && h.push(d), c.camera !== void 0 && h.push(a.getDependency(\"camera\", c.camera).then(function(g) {\n return a._getNodeRef(a.cameraCache, c.camera, g);\n })), a._invokeAll(function(g) {\n return g.createNodeAttachment && g.createNodeAttachment(i);\n }).forEach(function(g) {\n h.push(g);\n }), Promise.all(h);\n }().then(function(h) {\n let d;\n if (c.isBone === !0 ? d = new io() : h.length > 1 ? d = new $i() : h.length === 1 ? d = h[0] : d = new On(), d !== h[0])\n for (let g = 0, w = h.length; g < w; g++)\n d.add(h[g]);\n if (c.name && (d.userData.name = c.name, d.name = u), In(d, c), c.extensions && Hi(s, d, c), c.matrix !== void 0) {\n const g = new Ee();\n g.fromArray(c.matrix), d.applyMatrix4(g);\n } else\n c.translation !== void 0 && d.position.fromArray(c.translation), c.rotation !== void 0 && d.quaternion.fromArray(c.rotation), c.scale !== void 0 && d.scale.fromArray(c.scale);\n return a.associations.has(d) || a.associations.set(d, {}), a.associations.get(d).nodes = i, d;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes\n * @param {number} sceneIndex\n * @return {Promise}\n */\n loadScene(i) {\n const r = this.json, s = this.extensions, a = this.json.scenes[i], c = this, u = new $i();\n a.name && (u.name = c.createUniqueName(a.name)), In(u, a), a.extensions && Hi(s, u, a);\n const h = a.nodes || [], d = [];\n for (let g = 0, w = h.length; g < w; g++)\n d.push(Ya(h[g], u, r, c));\n return Promise.all(d).then(function() {\n const g = (w) => {\n const _ = /* @__PURE__ */ new Map();\n for (const [y, C] of c.associations)\n (y instanceof Kr || y instanceof Bs) && _.set(y, C);\n return w.traverse((y) => {\n const C = c.associations.get(y);\n C != null && _.set(y, C);\n }), _;\n };\n return c.associations = g(u), u;\n });\n }\n}\nfunction Ya(b, i, r, s) {\n const a = r.nodes[b];\n return s.getDependency(\"node\", b).then(function(c) {\n if (a.skin === void 0)\n return c;\n let u;\n return s.getDependency(\"skin\", a.skin).then(function(h) {\n u = h;\n const d = [];\n for (let g = 0, w = u.joints.length; g < w; g++)\n d.push(s.getDependency(\"node\", u.joints[g]));\n return Promise.all(d);\n }).then(function(h) {\n return c.traverse(function(d) {\n if (!d.isMesh)\n return;\n const g = [], w = [];\n for (let _ = 0, y = h.length; _ < y; _++) {\n const C = h[_];\n if (C) {\n g.push(C);\n const I = new Ee();\n u.inverseBindMatrices !== void 0 && I.fromArray(u.inverseBindMatrices.array, _ * 16), w.push(I);\n } else\n console.warn('THREE.GLTFLoader: Joint \"%s\" could not be found.', u.joints[_]);\n }\n d.bind(new Va(g, w), d.matrixWorld);\n }), c;\n });\n }).then(function(c) {\n i.add(c);\n const u = [];\n if (a.children) {\n const h = a.children;\n for (let d = 0, g = h.length; d < g; d++) {\n const w = h[d];\n u.push(Ya(w, c, r, s));\n }\n }\n return Promise.all(u);\n });\n}\nfunction Iu(b, i, r) {\n const s = i.attributes, a = new xp();\n if (s.POSITION !== void 0) {\n const h = r.json.accessors[s.POSITION], d = h.min, g = h.max;\n if (d !== void 0 && g !== void 0) {\n if (a.set(new $(d[0], d[1], d[2]), new $(g[0], g[1], g[2])), h.normalized) {\n const w = po(Wi[h.componentType]);\n a.min.multiplyScalar(w), a.max.multiplyScalar(w);\n }\n } else {\n console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");\n return;\n }\n } else\n return;\n const c = i.targets;\n if (c !== void 0) {\n const h = new $(), d = new $();\n for (let g = 0, w = c.length; g < w; g++) {\n const _ = c[g];\n if (_.POSITION !== void 0) {\n const y = r.json.accessors[_.POSITION], C = y.min, I = y.max;\n if (C !== void 0 && I !== void 0) {\n if (d.setX(Math.max(Math.abs(C[0]), Math.abs(I[0]))), d.setY(Math.max(Math.abs(C[1]), Math.abs(I[1]))), d.setZ(Math.max(Math.abs(C[2]), Math.abs(I[2]))), y.normalized) {\n const S = po(Wi[y.componentType]);\n d.multiplyScalar(S);\n }\n h.max(d);\n } else\n console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");\n }\n }\n a.expandByVector(h);\n }\n b.boundingBox = a;\n const u = new Ep();\n a.getCenter(u.center), u.radius = a.min.distanceTo(a.max) / 2, b.boundingSphere = u;\n}\nfunction ha(b, i, r) {\n const s = i.attributes, a = [];\n function c(u, h) {\n return r.getDependency(\"accessor\", u).then(function(d) {\n b.setAttribute(h, d);\n });\n }\n for (const u in s) {\n const h = co[u] || u.toLowerCase();\n h in b.attributes || a.push(c(s[u], h));\n }\n if (i.indices !== void 0 && !b.index) {\n const u = r.getDependency(\"accessor\", i.indices).then(function(h) {\n b.setIndex(h);\n });\n a.push(u);\n }\n return In(b, i), Iu(b, i, r), Promise.all(a).then(function() {\n return i.targets !== void 0 ? Mu(b, i.targets, r) : b;\n });\n}\nfunction da(b, i) {\n let r = b.getIndex();\n if (r === null) {\n const u = [], h = b.getAttribute(\"position\");\n if (h !== void 0) {\n for (let d = 0; d < h.count; d++)\n u.push(d);\n b.setIndex(u), r = b.getIndex();\n } else\n return console.error(\"THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.\"), b;\n }\n const s = r.count - 2, a = [];\n if (i === Da)\n for (let u = 1; u <= s; u++)\n a.push(r.getX(0)), a.push(r.getX(u)), a.push(r.getX(u + 1));\n else\n for (let u = 0; u < s; u++)\n u % 2 === 0 ? (a.push(r.getX(u)), a.push(r.getX(u + 1)), a.push(r.getX(u + 2))) : (a.push(r.getX(u + 2)), a.push(r.getX(u + 1)), a.push(r.getX(u)));\n a.length / 3 !== s && console.error(\"THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.\");\n const c = b.clone();\n return c.setIndex(a), c;\n}\nclass Vu extends Pp {\n constructor(i, r = {}) {\n const {\n bevelEnabled: s = !1,\n bevelSize: a = 8,\n bevelThickness: c = 10,\n font: u,\n height: h = 50,\n size: d = 100,\n lineHeight: g = 1,\n letterSpacing: w = 0,\n ..._\n } = r;\n if (u === void 0)\n super();\n else {\n const y = u.generateShapes(i, d, {\n lineHeight: g,\n letterSpacing: w\n });\n super(y, {\n ..._,\n bevelEnabled: s,\n bevelSize: a,\n bevelThickness: c,\n depth: h\n });\n }\n this.type = \"TextGeometry\";\n }\n}\nfunction qa(b, i, r) {\n const s = r.length - b - 1;\n if (i >= r[s])\n return s - 1;\n if (i <= r[b])\n return b;\n let a = b, c = s, u = Math.floor((a + c) / 2);\n for (; i < r[u] || i >= r[u + 1]; )\n i < r[u] ? c = u : a = u, u = Math.floor((a + c) / 2);\n return u;\n}\nfunction Du(b, i, r, s) {\n const a = [], c = [], u = [];\n a[0] = 1;\n for (let h = 1; h <= r; ++h) {\n c[h] = i - s[b + 1 - h], u[h] = s[b + h] - i;\n let d = 0;\n for (let g = 0; g < h; ++g) {\n const w = u[g + 1], _ = c[h - g], y = a[g] / (w + _);\n a[g] = d + w * y, d = _ * y;\n }\n a[h] = d;\n }\n return a;\n}\nfunction Ou(b, i, r, s) {\n const a = qa(b, s, i), c = Du(a, s, b, i), u = new Us(0, 0, 0, 0);\n for (let h = 0; h <= b; ++h) {\n const d = r[a - b + h], g = c[h], w = d.w * g;\n u.x += d.x * w, u.y += d.y * w, u.z += d.z * w, u.w += d.w * g;\n }\n return u;\n}\nfunction Nu(b, i, r, s, a) {\n const c = [];\n for (let y = 0; y <= r; ++y)\n c[y] = 0;\n const u = [];\n for (let y = 0; y <= s; ++y)\n u[y] = c.slice(0);\n const h = [];\n for (let y = 0; y <= r; ++y)\n h[y] = c.slice(0);\n h[0][0] = 1;\n const d = c.slice(0), g = c.slice(0);\n for (let y = 1; y <= r; ++y) {\n d[y] = i - a[b + 1 - y], g[y] = a[b + y] - i;\n let C = 0;\n for (let I = 0; I < y; ++I) {\n const S = g[I + 1], R = d[y - I];\n h[y][I] = S + R;\n const j = h[I][y - 1] / h[y][I];\n h[I][y] = C + S * j, C = R * j;\n }\n h[y][y] = C;\n }\n for (let y = 0; y <= r; ++y)\n u[0][y] = h[y][r];\n for (let y = 0; y <= r; ++y) {\n let C = 0, I = 1;\n const S = [];\n for (let R = 0; R <= r; ++R)\n S[R] = c.slice(0);\n S[0][0] = 1;\n for (let R = 1; R <= s; ++R) {\n let j = 0;\n const F = y - R, V = r - R;\n y >= R && (S[I][0] = S[C][0] / h[V + 1][F], j = S[I][0] * h[F][V]);\n const D = F >= -1 ? 1 : -F, Y = y - 1 <= V ? R - 1 : r - y;\n for (let G = D; G <= Y; ++G)\n S[I][G] = (S[C][G] - S[C][G - 1]) / h[V + 1][F + G], j += S[I][G] * h[F + G][V];\n y <= V && (S[I][R] = -S[C][R - 1] / h[V + 1][y], j += S[I][R] * h[y][V]), u[R][y] = j;\n var w = C;\n C = I, I = w;\n }\n }\n var _ = r;\n for (let y = 1; y <= s; ++y) {\n for (let C = 0; C <= r; ++C)\n u[y][C] *= _;\n _ *= r - y;\n }\n return u;\n}\nfunction Fu(b, i, r, s, a) {\n const c = a < b ? a : b, u = [], h = qa(b, s, i), d = Nu(h, s, b, c, i), g = [];\n for (let _ = 0; _ < r.length; ++_) {\n var w = r[_].clone();\n const y = w.w;\n w.x *= y, w.y *= y, w.z *= y, g[_] = w;\n }\n for (let _ = 0; _ <= c; ++_) {\n var w = g[h - b].clone().multiplyScalar(d[_][0]);\n for (let C = 1; C <= b; ++C)\n w.add(g[h - b + C].clone().multiplyScalar(d[_][C]));\n u[_] = w;\n }\n for (let _ = c + 1; _ <= a + 1; ++_)\n u[_] = new Us(0, 0, 0);\n return u;\n}\nfunction Bu(b, i) {\n let r = 1;\n for (let a = 2; a <= b; ++a)\n r *= a;\n let s = 1;\n for (let a = 2; a <= i; ++a)\n s *= a;\n for (let a = 2; a <= b - i; ++a)\n s *= a;\n return r / s;\n}\nfunction ju(b) {\n const i = b.length, r = [], s = [];\n for (let c = 0; c < i; ++c) {\n const u = b[c];\n r[c] = new $(u.x, u.y, u.z), s[c] = u.w;\n }\n const a = [];\n for (let c = 0; c < i; ++c) {\n const u = r[c].clone();\n for (let h = 1; h <= c; ++h)\n u.sub(a[c - h].clone().multiplyScalar(Bu(c, h) * s[h]));\n a[c] = u.divideScalar(s[0]);\n }\n return a;\n}\nfunction zu(b, i, r, s, a) {\n const c = Fu(b, i, r, s, a);\n return ju(c);\n}\nclass ma extends Tp {\n constructor(i, r, s, a, c) {\n super(), this.degree = i, this.knots = r, this.controlPoints = [], this.startKnot = a || 0, this.endKnot = c || this.knots.length - 1;\n for (let u = 0; u < s.length; ++u) {\n const h = s[u];\n this.controlPoints[u] = new Us(h.x, h.y, h.z, h.w);\n }\n }\n getPoint(i, r) {\n const s = r || new $(), a = this.knots[this.startKnot] + i * (this.knots[this.endKnot] - this.knots[this.startKnot]), c = Ou(this.degree, this.knots, this.controlPoints, a);\n return c.w != 1 && c.divideScalar(c.w), s.set(c.x, c.y, c.z);\n }\n getTangent(i, r) {\n const s = r || new $(), a = this.knots[0] + i * (this.knots[this.knots.length - 1] - this.knots[0]), c = zu(this.degree, this.knots, this.controlPoints, a, 1);\n return s.copy(c[1]).normalize(), s;\n }\n}\nlet se, Ae, We;\nclass Uu extends zs {\n constructor(i) {\n super(i);\n }\n load(i, r, s, a) {\n const c = this, u = c.path === \"\" ? Tt.extractUrlBase(i) : c.path, h = new ui(this.manager);\n h.setPath(c.path), h.setResponseType(\"arraybuffer\"), h.setRequestHeader(c.requestHeader), h.setWithCredentials(c.withCredentials), h.load(i, function(d) {\n try {\n r(c.parse(d, u));\n } catch (g) {\n a ? a(g) : console.error(g), c.manager.itemError(i);\n }\n }, s, a);\n }\n parse(i, r) {\n if (Yu(i))\n se = new Xu().parse(i);\n else {\n const a = Ja(i);\n if (!qu(a))\n throw new Error(\"THREE.FBXLoader: Unknown format.\");\n if (va(a) < 7e3)\n throw new Error(\"THREE.FBXLoader: FBX version not supported, FileVersion: \" + va(a));\n se = new $u().parse(a);\n }\n const s = new Sa(this.manager).setPath(this.resourcePath || r).setCrossOrigin(this.crossOrigin);\n return new Gu(s, this.manager).parse(se);\n }\n}\nclass Gu {\n constructor(i, r) {\n this.textureLoader = i, this.manager = r;\n }\n parse() {\n Ae = this.parseConnections();\n const i = this.parseImages(), r = this.parseTextures(i), s = this.parseMaterials(r), a = this.parseDeformers(), c = new Hu().parse(a);\n return this.parseScene(a, c, s), We;\n }\n // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )\n // and details the connection type\n parseConnections() {\n const i = /* @__PURE__ */ new Map();\n return \"Connections\" in se && se.Connections.connections.forEach(function(s) {\n const a = s[0], c = s[1], u = s[2];\n i.has(a) || i.set(a, {\n parents: [],\n children: []\n });\n const h = {\n ID: c,\n relationship: u\n };\n i.get(a).parents.push(h), i.has(c) || i.set(c, {\n parents: [],\n children: []\n });\n const d = {\n ID: a,\n relationship: u\n };\n i.get(c).children.push(d);\n }), i;\n }\n // Parse FBXTree.Objects.Video for embedded image data\n // These images are connected to textures in FBXTree.Objects.Textures\n // via FBXTree.Connections.\n parseImages() {\n const i = {}, r = {};\n if (\"Video\" in se.Objects) {\n const s = se.Objects.Video;\n for (const a in s) {\n const c = s[a], u = parseInt(a);\n if (i[u] = c.RelativeFilename || c.Filename, \"Content\" in c) {\n const h = c.Content instanceof ArrayBuffer && c.Content.byteLength > 0, d = typeof c.Content == \"string\" && c.Content !== \"\";\n if (h || d) {\n const g = this.parseImage(s[a]);\n r[c.RelativeFilename || c.Filename] = g;\n }\n }\n }\n }\n for (const s in i) {\n const a = i[s];\n r[a] !== void 0 ? i[s] = r[a] : i[s] = i[s].split(\"\\\\\").pop();\n }\n return i;\n }\n // Parse embedded image data in FBXTree.Video.Content\n parseImage(i) {\n const r = i.Content, s = i.RelativeFilename || i.Filename, a = s.slice(s.lastIndexOf(\".\") + 1).toLowerCase();\n let c;\n switch (a) {\n case \"bmp\":\n c = \"image/bmp\";\n break;\n case \"jpg\":\n case \"jpeg\":\n c = \"image/jpeg\";\n break;\n case \"png\":\n c = \"image/png\";\n break;\n case \"tif\":\n c = \"image/tiff\";\n break;\n case \"tga\":\n this.manager.getHandler(\".tga\") === null && console.warn(\"FBXLoader: TGA loader not found, skipping \", s), c = \"image/tga\";\n break;\n default:\n console.warn('FBXLoader: Image type \"' + a + '\" is not supported.');\n return;\n }\n if (typeof r == \"string\")\n return \"data:\" + c + \";base64,\" + r;\n {\n const u = new Uint8Array(r);\n return window.URL.createObjectURL(new Blob([u], {\n type: c\n }));\n }\n }\n // Parse nodes in FBXTree.Objects.Texture\n // These contain details such as UV scaling, cropping, rotation etc and are connected\n // to images in FBXTree.Objects.Video\n parseTextures(i) {\n const r = /* @__PURE__ */ new Map();\n if (\"Texture\" in se.Objects) {\n const s = se.Objects.Texture;\n for (const a in s) {\n const c = this.parseTexture(s[a], i);\n r.set(parseInt(a), c);\n }\n }\n return r;\n }\n // Parse individual node in FBXTree.Objects.Texture\n parseTexture(i, r) {\n const s = this.loadTexture(i, r);\n s.ID = i.id, s.name = i.attrName;\n const a = i.WrapModeU, c = i.WrapModeV, u = a !== void 0 ? a.value : 0, h = c !== void 0 ? c.value : 0;\n if (s.wrapS = u === 0 ? qi : so, s.wrapT = h === 0 ? qi : so, \"Scaling\" in i) {\n const d = i.Scaling.value;\n s.repeat.x = d[0], s.repeat.y = d[1];\n }\n return s;\n }\n // load a texture specified as a blob or data URI, or via an external URL using TextureLoader\n loadTexture(i, r) {\n let s;\n const a = this.textureLoader.path, c = Ae.get(i.id).children;\n c !== void 0 && c.length > 0 && r[c[0].ID] !== void 0 && (s = r[c[0].ID], (s.indexOf(\"blob:\") === 0 || s.indexOf(\"data:\") === 0) && this.textureLoader.setPath(void 0));\n let u;\n const h = i.FileName.slice(-3).toLowerCase();\n if (h === \"tga\") {\n const d = this.manager.getHandler(\".tga\");\n d === null ? (console.warn(\"FBXLoader: TGA loader not found, creating placeholder texture for\", i.RelativeFilename), u = new Bs()) : (d.setPath(this.textureLoader.path), u = d.load(s));\n } else\n h === \"psd\" ? (console.warn(\"FBXLoader: PSD textures are not supported, creating placeholder texture for\", i.RelativeFilename), u = new Bs()) : u = this.textureLoader.load(s);\n return this.textureLoader.setPath(a), u;\n }\n // Parse nodes in FBXTree.Objects.Material\n parseMaterials(i) {\n const r = /* @__PURE__ */ new Map();\n if (\"Material\" in se.Objects) {\n const s = se.Objects.Material;\n for (const a in s) {\n const c = this.parseMaterial(s[a], i);\n c !== null && r.set(parseInt(a), c);\n }\n }\n return r;\n }\n // Parse single node in FBXTree.Objects.Material\n // Materials are connected to texture maps in FBXTree.Objects.Textures\n // FBX format currently only supports Lambert and Phong shading models\n parseMaterial(i, r) {\n const s = i.id, a = i.attrName;\n let c = i.ShadingModel;\n if (typeof c == \"object\" && (c = c.value), !Ae.has(s))\n return null;\n const u = this.parseParameters(i, r, s);\n let h;\n switch (c.toLowerCase()) {\n case \"phong\":\n h = new $r();\n break;\n case \"lambert\":\n h = new kp();\n break;\n default:\n console.warn('THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', c), h = new $r();\n break;\n }\n return h.setValues(u), h.name = a, h;\n }\n // Parse FBX material and return parameters suitable for a three.js material\n // Also parse the texture map and return any textures associated with the material\n parseParameters(i, r, s) {\n const a = {};\n i.BumpFactor && (a.bumpScale = i.BumpFactor.value), i.Diffuse ? a.color = new ke().fromArray(i.Diffuse.value) : i.DiffuseColor && (i.DiffuseColor.type === \"Color\" || i.DiffuseColor.type === \"ColorRGB\") && (a.color = new ke().fromArray(i.DiffuseColor.value)), i.DisplacementFactor && (a.displacementScale = i.DisplacementFactor.value), i.Emissive ? a.emissive = new ke().fromArray(i.Emissive.value) : i.EmissiveColor && (i.EmissiveColor.type === \"Color\" || i.EmissiveColor.type === \"ColorRGB\") && (a.emissive = new ke().fromArray(i.EmissiveColor.value)), i.EmissiveFactor && (a.emissiveIntensity = parseFloat(i.EmissiveFactor.value)), i.Opacity && (a.opacity = parseFloat(i.Opacity.value)), a.opacity < 1 && (a.transparent = !0), i.ReflectionFactor && (a.reflectivity = i.ReflectionFactor.value), i.Shininess && (a.shininess = i.Shininess.value), i.Specular ? a.specular = new ke().fromArray(i.Specular.value) : i.SpecularColor && i.SpecularColor.type === \"Color\" && (a.specular = new ke().fromArray(i.SpecularColor.value));\n const c = this;\n return Ae.get(s).children.forEach(function(u) {\n const h = u.relationship;\n switch (h) {\n case \"Bump\":\n a.bumpMap = c.getTexture(r, u.ID);\n break;\n case \"Maya|TEX_ao_map\":\n a.aoMap = c.getTexture(r, u.ID);\n break;\n case \"DiffuseColor\":\n case \"Maya|TEX_color_map\":\n a.map = c.getTexture(r, u.ID), a.map !== void 0 && (a.map.encoding = ht);\n break;\n case \"DisplacementColor\":\n a.displacementMap = c.getTexture(r, u.ID);\n break;\n case \"EmissiveColor\":\n a.emissiveMap = c.getTexture(r, u.ID), a.emissiveMap !== void 0 && (a.emissiveMap.encoding = ht);\n break;\n case \"NormalMap\":\n case \"Maya|TEX_normal_map\":\n a.normalMap = c.getTexture(r, u.ID);\n break;\n case \"ReflectionColor\":\n a.envMap = c.getTexture(r, u.ID), a.envMap !== void 0 && (a.envMap.mapping = Fa, a.envMap.encoding = ht);\n break;\n case \"SpecularColor\":\n a.specularMap = c.getTexture(r, u.ID), a.specularMap !== void 0 && (a.specularMap.encoding = ht);\n break;\n case \"TransparentColor\":\n case \"TransparencyFactor\":\n a.alphaMap = c.getTexture(r, u.ID), a.transparent = !0;\n break;\n case \"AmbientColor\":\n case \"ShininessExponent\":\n case \"SpecularFactor\":\n case \"VectorDisplacementColor\":\n default:\n console.warn(\"THREE.FBXLoader: %s map is not supported in three.js, skipping texture.\", h);\n break;\n }\n }), a;\n }\n // get a texture from the textureMap for use by a material.\n getTexture(i, r) {\n return \"LayeredTexture\" in se.Objects && r in se.Objects.LayeredTexture && (console.warn(\"THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.\"), r = Ae.get(r).children[0].ID), i.get(r);\n }\n // Parse nodes in FBXTree.Objects.Deformer\n // Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here\n // Generates map of Skeleton-like objects for use later when generating and binding skeletons.\n parseDeformers() {\n const i = {}, r = {};\n if (\"Deformer\" in se.Objects) {\n const s = se.Objects.Deformer;\n for (const a in s) {\n const c = s[a], u = Ae.get(parseInt(a));\n if (c.attrType === \"Skin\") {\n const h = this.parseSkeleton(u, s);\n h.ID = a, u.parents.length > 1 && console.warn(\"THREE.FBXLoader: skeleton attached to more than one geometry is not supported.\"), h.geometryID = u.parents[0].ID, i[a] = h;\n } else if (c.attrType === \"BlendShape\") {\n const h = {\n id: a\n };\n h.rawTargets = this.parseMorphTargets(u, s), h.id = a, u.parents.length > 1 && console.warn(\"THREE.FBXLoader: morph target attached to more than one geometry is not supported.\"), r[a] = h;\n }\n }\n }\n return {\n skeletons: i,\n morphTargets: r\n };\n }\n // Parse single nodes in FBXTree.Objects.Deformer\n // The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster'\n // Each skin node represents a skeleton and each cluster node represents a bone\n parseSkeleton(i, r) {\n const s = [];\n return i.children.forEach(function(a) {\n const c = r[a.ID];\n if (c.attrType !== \"Cluster\")\n return;\n const u = {\n ID: a.ID,\n indices: [],\n weights: [],\n transformLink: new Ee().fromArray(c.TransformLink.a)\n // transform: new Matrix4().fromArray( boneNode.Transform.a ),\n // linkMode: boneNode.Mode,\n };\n \"Indexes\" in c && (u.indices = c.Indexes.a, u.weights = c.Weights.a), s.push(u);\n }), {\n rawBones: s,\n bones: []\n };\n }\n // The top level morph deformer node has type \"BlendShape\" and sub nodes have type \"BlendShapeChannel\"\n parseMorphTargets(i, r) {\n const s = [];\n for (let a = 0; a < i.children.length; a++) {\n const c = i.children[a], u = r[c.ID], h = {\n name: u.attrName,\n initialWeight: u.DeformPercent,\n id: u.id,\n fullWeights: u.FullWeights.a\n };\n if (u.attrType !== \"BlendShapeChannel\")\n return;\n h.geoID = Ae.get(parseInt(c.ID)).children.filter(function(d) {\n return d.relationship === void 0;\n })[0].ID, s.push(h);\n }\n return s;\n }\n // create the main Group() to be returned by the loader\n parseScene(i, r, s) {\n We = new $i();\n const a = this.parseModels(i.skeletons, r, s), c = se.Objects.Model, u = this;\n a.forEach(function(d) {\n const g = c[d.ID];\n u.setLookAtProperties(d, g), Ae.get(d.ID).parents.forEach(function(_) {\n const y = a.get(_.ID);\n y !== void 0 && y.add(d);\n }), d.parent === null && We.add(d);\n }), this.bindSkeleton(i.skeletons, r, a), this.createAmbientLight(), We.traverse(function(d) {\n if (d.userData.transformData) {\n d.parent && (d.userData.transformData.parentMatrix = d.parent.matrix, d.userData.transformData.parentMatrixWorld = d.parent.matrixWorld);\n const g = Za(d.userData.transformData);\n d.applyMatrix4(g), d.updateWorldMatrix();\n }\n });\n const h = new Ku().parse();\n We.children.length === 1 && We.children[0].isGroup && (We.children[0].animations = h, We = We.children[0]), We.animations = h;\n }\n // parse nodes in FBXTree.Objects.Model\n parseModels(i, r, s) {\n const a = /* @__PURE__ */ new Map(), c = se.Objects.Model;\n for (const u in c) {\n const h = parseInt(u), d = c[u], g = Ae.get(h);\n let w = this.buildSkeleton(g, i, h, d.attrName);\n if (!w) {\n switch (d.attrType) {\n case \"Camera\":\n w = this.createCamera(g);\n break;\n case \"Light\":\n w = this.createLight(g);\n break;\n case \"Mesh\":\n w = this.createMesh(g, r, s);\n break;\n case \"NurbsCurve\":\n w = this.createCurve(g, r);\n break;\n case \"LimbNode\":\n case \"Root\":\n w = new io();\n break;\n case \"Null\":\n default:\n w = new $i();\n break;\n }\n w.name = d.attrName ? Qi.sanitizeNodeName(d.attrName) : \"\", w.ID = h;\n }\n this.getTransformData(w, d), a.set(h, w);\n }\n return a;\n }\n buildSkeleton(i, r, s, a) {\n let c = null;\n return i.parents.forEach(function(u) {\n for (const h in r) {\n const d = r[h];\n d.rawBones.forEach(function(g, w) {\n if (g.ID === u.ID) {\n const _ = c;\n c = new io(), c.matrixWorld.copy(g.transformLink), c.name = a ? Qi.sanitizeNodeName(a) : \"\", c.ID = s, d.bones[w] = c, _ !== null && c.add(_);\n }\n });\n }\n }), c;\n }\n // create a PerspectiveCamera or OrthographicCamera\n createCamera(i) {\n let r, s;\n if (i.children.forEach(function(a) {\n const c = se.Objects.NodeAttribute[a.ID];\n c !== void 0 && (s = c);\n }), s === void 0)\n r = new On();\n else {\n let a = 0;\n s.CameraProjectionType !== void 0 && s.CameraProjectionType.value === 1 && (a = 1);\n let c = 1;\n s.NearPlane !== void 0 && (c = s.NearPlane.value / 1e3);\n let u = 1e3;\n s.FarPlane !== void 0 && (u = s.FarPlane.value / 1e3);\n let h = window.innerWidth, d = window.innerHeight;\n s.AspectWidth !== void 0 && s.AspectHeight !== void 0 && (h = s.AspectWidth.value, d = s.AspectHeight.value);\n const g = h / d;\n let w = 45;\n s.FieldOfView !== void 0 && (w = s.FieldOfView.value);\n const _ = s.FocalLength ? s.FocalLength.value : null;\n switch (a) {\n case 0:\n r = new sn(w, g, c, u), _ !== null && r.setFocalLength(_);\n break;\n case 1:\n r = new Ki(-h / 2, h / 2, d / 2, -d / 2, c, u);\n break;\n default:\n console.warn(\"THREE.FBXLoader: Unknown camera type \" + a + \".\"), r = new On();\n break;\n }\n }\n return r;\n }\n // Create a DirectionalLight, PointLight or SpotLight\n createLight(i) {\n let r, s;\n if (i.children.forEach(function(a) {\n const c = se.Objects.NodeAttribute[a.ID];\n c !== void 0 && (s = c);\n }), s === void 0)\n r = new On();\n else {\n let a;\n s.LightType === void 0 ? a = 0 : a = s.LightType.value;\n let c = 16777215;\n s.Color !== void 0 && (c = new ke().fromArray(s.Color.value));\n let u = s.Intensity === void 0 ? 1 : s.Intensity.value / 100;\n s.CastLightOnObject !== void 0 && s.CastLightOnObject.value === 0 && (u = 0);\n let h = 0;\n s.FarAttenuationEnd !== void 0 && (s.EnableFarAttenuation !== void 0 && s.EnableFarAttenuation.value === 0 ? h = 0 : h = s.FarAttenuationEnd.value);\n const d = 1;\n switch (a) {\n case 0:\n r = new no(c, u, h, d);\n break;\n case 1:\n r = new Ma(c, u);\n break;\n case 2:\n let g = Math.PI / 3;\n s.InnerAngle !== void 0 && (g = wt.degToRad(s.InnerAngle.value));\n let w = 0;\n s.OuterAngle !== void 0 && (w = wt.degToRad(s.OuterAngle.value), w = Math.max(w, 1)), r = new ka(c, u, h, g, w, d);\n break;\n default:\n console.warn(\"THREE.FBXLoader: Unknown light type \" + s.LightType.value + \", defaulting to a PointLight.\"), r = new no(c, u);\n break;\n }\n s.CastShadows !== void 0 && s.CastShadows.value === 1 && (r.castShadow = !0);\n }\n return r;\n }\n createMesh(i, r, s) {\n let a, c = null, u = null;\n const h = [];\n return i.children.forEach(function(d) {\n r.has(d.ID) && (c = r.get(d.ID)), s.has(d.ID) && h.push(s.get(d.ID));\n }), h.length > 1 ? u = h : h.length > 0 ? u = h[0] : (u = new $r({\n color: 13421772\n }), h.push(u)), \"color\" in c.attributes && h.forEach(function(d) {\n d.vertexColors = !0;\n }), c.FBX_Deformer ? (a = new La(c, u), a.normalizeSkinWeights()) : a = new Z(c, u), a;\n }\n createCurve(i, r) {\n const s = i.children.reduce(function(c, u) {\n return r.has(u.ID) && (c = r.get(u.ID)), c;\n }, null), a = new vo({\n color: 3342591,\n linewidth: 1\n });\n return new pe(s, a);\n }\n // parse the model node for transform data\n getTransformData(i, r) {\n const s = {};\n \"InheritType\" in r && (s.inheritType = parseInt(r.InheritType.value)), \"RotationOrder\" in r ? s.eulerOrder = Wa(r.RotationOrder.value) : s.eulerOrder = \"ZYX\", \"Lcl_Translation\" in r && (s.translation = r.Lcl_Translation.value), \"PreRotation\" in r && (s.preRotation = r.PreRotation.value), \"Lcl_Rotation\" in r && (s.rotation = r.Lcl_Rotation.value), \"PostRotation\" in r && (s.postRotation = r.PostRotation.value), \"Lcl_Scaling\" in r && (s.scale = r.Lcl_Scaling.value), \"ScalingOffset\" in r && (s.scalingOffset = r.ScalingOffset.value), \"ScalingPivot\" in r && (s.scalingPivot = r.ScalingPivot.value), \"RotationOffset\" in r && (s.rotationOffset = r.RotationOffset.value), \"RotationPivot\" in r && (s.rotationPivot = r.RotationPivot.value), i.userData.transformData = s;\n }\n setLookAtProperties(i, r) {\n \"LookAtProperty\" in r && Ae.get(i.ID).children.forEach(function(a) {\n if (a.relationship === \"LookAtProperty\") {\n const c = se.Objects.Model[a.ID];\n if (\"Lcl_Translation\" in c) {\n const u = c.Lcl_Translation.value;\n i.target !== void 0 ? (i.target.position.fromArray(u), We.add(i.target)) : i.lookAt(new $().fromArray(u));\n }\n }\n });\n }\n bindSkeleton(i, r, s) {\n const a = this.parsePoseNodes();\n for (const c in i) {\n const u = i[c];\n Ae.get(parseInt(u.ID)).parents.forEach(function(d) {\n if (r.has(d.ID)) {\n const g = d.ID;\n Ae.get(g).parents.forEach(function(_) {\n s.has(_.ID) && s.get(_.ID).bind(new Va(u.bones), a[_.ID]);\n });\n }\n });\n }\n }\n parsePoseNodes() {\n const i = {};\n if (\"Pose\" in se.Objects) {\n const r = se.Objects.Pose;\n for (const s in r)\n if (r[s].attrType === \"BindPose\" && r[s].NbPoseNodes > 0) {\n const a = r[s].PoseNode;\n Array.isArray(a) ? a.forEach(function(c) {\n i[c.Node] = new Ee().fromArray(c.Matrix.a);\n }) : i[a.Node] = new Ee().fromArray(a.Matrix.a);\n }\n }\n return i;\n }\n // Parse ambient color in FBXTree.GlobalSettings - if it's not set to black (default), create an ambient light\n createAmbientLight() {\n if (\"GlobalSettings\" in se && \"AmbientColor\" in se.GlobalSettings) {\n const i = se.GlobalSettings.AmbientColor.value, r = i[0], s = i[1], a = i[2];\n if (r !== 0 || s !== 0 || a !== 0) {\n const c = new ke(r, s, a);\n We.add(new Mp(c, 1));\n }\n }\n }\n}\nclass Hu {\n // Parse nodes in FBXTree.Objects.Geometry\n parse(i) {\n const r = /* @__PURE__ */ new Map();\n if (\"Geometry\" in se.Objects) {\n const s = se.Objects.Geometry;\n for (const a in s) {\n const c = Ae.get(parseInt(a)), u = this.parseGeometry(c, s[a], i);\n r.set(parseInt(a), u);\n }\n }\n return r;\n }\n // Parse single node in FBXTree.Objects.Geometry\n parseGeometry(i, r, s) {\n switch (r.attrType) {\n case \"Mesh\":\n return this.parseMeshGeometry(i, r, s);\n case \"NurbsCurve\":\n return this.parseNurbsGeometry(r);\n }\n }\n // Parse single node mesh geometry in FBXTree.Objects.Geometry\n parseMeshGeometry(i, r, s) {\n const a = s.skeletons, c = [], u = i.parents.map(function(_) {\n return se.Objects.Model[_.ID];\n });\n if (u.length === 0)\n return;\n const h = i.children.reduce(function(_, y) {\n return a[y.ID] !== void 0 && (_ = a[y.ID]), _;\n }, null);\n i.children.forEach(function(_) {\n s.morphTargets[_.ID] !== void 0 && c.push(s.morphTargets[_.ID]);\n });\n const d = u[0], g = {};\n \"RotationOrder\" in d && (g.eulerOrder = Wa(d.RotationOrder.value)), \"InheritType\" in d && (g.inheritType = parseInt(d.InheritType.value)), \"GeometricTranslation\" in d && (g.translation = d.GeometricTranslation.value), \"GeometricRotation\" in d && (g.rotation = d.GeometricRotation.value), \"GeometricScaling\" in d && (g.scale = d.GeometricScaling.value);\n const w = Za(g);\n return this.genGeometry(r, h, c, w);\n }\n // Generate a BufferGeometry from a node in FBXTree.Objects.Geometry\n genGeometry(i, r, s, a) {\n const c = new zt();\n i.attrName && (c.name = i.attrName);\n const u = this.parseGeoNode(i, r), h = this.genBuffers(u), d = new Bt(h.vertex, 3);\n if (d.applyMatrix4(a), c.setAttribute(\"position\", d), h.colors.length > 0 && c.setAttribute(\"color\", new Bt(h.colors, 3)), r && (c.setAttribute(\"skinIndex\", new Sp(h.weightsIndices, 4)), c.setAttribute(\"skinWeight\", new Bt(h.vertexWeights, 4)), c.FBX_Deformer = r), h.normal.length > 0) {\n const g = new Ap().getNormalMatrix(a), w = new Bt(h.normal, 3);\n w.applyNormalMatrix(g), c.setAttribute(\"normal\", w);\n }\n if (h.uvs.forEach(function(g, w) {\n let _ = \"uv\" + (w + 1).toString();\n w === 0 && (_ = \"uv\"), c.setAttribute(_, new Bt(h.uvs[w], 2));\n }), u.material && u.material.mappingType !== \"AllSame\") {\n let g = h.materialIndex[0], w = 0;\n if (h.materialIndex.forEach(function(_, y) {\n _ !== g && (c.addGroup(w, y - w, g), g = _, w = y);\n }), c.groups.length > 0) {\n const _ = c.groups[c.groups.length - 1], y = _.start + _.count;\n y !== h.materialIndex.length && c.addGroup(y, h.materialIndex.length - y, g);\n }\n c.groups.length === 0 && c.addGroup(0, h.materialIndex.length, h.materialIndex[0]);\n }\n return this.addMorphTargets(c, i, s, a), c;\n }\n parseGeoNode(i, r) {\n const s = {};\n if (s.vertexPositions = i.Vertices !== void 0 ? i.Vertices.a : [], s.vertexIndices = i.PolygonVertexIndex !== void 0 ? i.PolygonVertexIndex.a : [], i.LayerElementColor && (s.color = this.parseVertexColors(i.LayerElementColor[0])), i.LayerElementMaterial && (s.material = this.parseMaterialIndices(i.LayerElementMaterial[0])), i.LayerElementNormal && (s.normal = this.parseNormals(i.LayerElementNormal[0])), i.LayerElementUV) {\n s.uv = [];\n let a = 0;\n for (; i.LayerElementUV[a]; )\n i.LayerElementUV[a].UV && s.uv.push(this.parseUVs(i.LayerElementUV[a])), a++;\n }\n return s.weightTable = {}, r !== null && (s.skeleton = r, r.rawBones.forEach(function(a, c) {\n a.indices.forEach(function(u, h) {\n s.weightTable[u] === void 0 && (s.weightTable[u] = []), s.weightTable[u].push({\n id: c,\n weight: a.weights[h]\n });\n });\n })), s;\n }\n genBuffers(i) {\n const r = {\n vertex: [],\n normal: [],\n colors: [],\n uvs: [],\n materialIndex: [],\n vertexWeights: [],\n weightsIndices: []\n };\n let s = 0, a = 0, c = !1, u = [], h = [], d = [], g = [], w = [], _ = [];\n const y = this;\n return i.vertexIndices.forEach(function(C, I) {\n let S, R = !1;\n C < 0 && (C = C ^ -1, R = !0);\n let j = [], F = [];\n if (u.push(C * 3, C * 3 + 1, C * 3 + 2), i.color) {\n const V = Vs(I, s, C, i.color);\n d.push(V[0], V[1], V[2]);\n }\n if (i.skeleton) {\n if (i.weightTable[C] !== void 0 && i.weightTable[C].forEach(function(V) {\n F.push(V.weight), j.push(V.id);\n }), F.length > 4) {\n c || (console.warn(\"THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.\"), c = !0);\n const V = [0, 0, 0, 0], D = [0, 0, 0, 0];\n F.forEach(function(Y, G) {\n let N = Y, O = j[G];\n D.forEach(function(H, K, q) {\n if (N > H) {\n q[K] = N, N = H;\n const ue = V[K];\n V[K] = O, O = ue;\n }\n });\n }), j = V, F = D;\n }\n for (; F.length < 4; )\n F.push(0), j.push(0);\n for (let V = 0; V < 4; ++V)\n w.push(F[V]), _.push(j[V]);\n }\n if (i.normal) {\n const V = Vs(I, s, C, i.normal);\n h.push(V[0], V[1], V[2]);\n }\n i.material && i.material.mappingType !== \"AllSame\" && (S = Vs(I, s, C, i.material)[0]), i.uv && i.uv.forEach(function(V, D) {\n const Y = Vs(I, s, C, V);\n g[D] === void 0 && (g[D] = []), g[D].push(Y[0]), g[D].push(Y[1]);\n }), a++, R && (y.genFace(r, i, u, S, h, d, g, w, _, a), s++, a = 0, u = [], h = [], d = [], g = [], w = [], _ = []);\n }), r;\n }\n // Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris\n genFace(i, r, s, a, c, u, h, d, g, w) {\n for (let _ = 2; _ < w; _++)\n i.vertex.push(r.vertexPositions[s[0]]), i.vertex.push(r.vertexPositions[s[1]]), i.vertex.push(r.vertexPositions[s[2]]), i.vertex.push(r.vertexPositions[s[(_ - 1) * 3]]), i.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 1]]), i.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 2]]), i.vertex.push(r.vertexPositions[s[_ * 3]]), i.vertex.push(r.vertexPositions[s[_ * 3 + 1]]), i.vertex.push(r.vertexPositions[s[_ * 3 + 2]]), r.skeleton && (i.vertexWeights.push(d[0]), i.vertexWeights.push(d[1]), i.vertexWeights.push(d[2]), i.vertexWeights.push(d[3]), i.vertexWeights.push(d[(_ - 1) * 4]), i.vertexWeights.push(d[(_ - 1) * 4 + 1]), i.vertexWeights.push(d[(_ - 1) * 4 + 2]), i.vertexWeights.push(d[(_ - 1) * 4 + 3]), i.vertexWeights.push(d[_ * 4]), i.vertexWeights.push(d[_ * 4 + 1]), i.vertexWeights.push(d[_ * 4 + 2]), i.vertexWeights.push(d[_ * 4 + 3]), i.weightsIndices.push(g[0]), i.weightsIndices.push(g[1]), i.weightsIndices.push(g[2]), i.weightsIndices.push(g[3]), i.weightsIndices.push(g[(_ - 1) * 4]), i.weightsIndices.push(g[(_ - 1) * 4 + 1]), i.weightsIndices.push(g[(_ - 1) * 4 + 2]), i.weightsIndices.push(g[(_ - 1) * 4 + 3]), i.weightsIndices.push(g[_ * 4]), i.weightsIndices.push(g[_ * 4 + 1]), i.weightsIndices.push(g[_ * 4 + 2]), i.weightsIndices.push(g[_ * 4 + 3])), r.color && (i.colors.push(u[0]), i.colors.push(u[1]), i.colors.push(u[2]), i.colors.push(u[(_ - 1) * 3]), i.colors.push(u[(_ - 1) * 3 + 1]), i.colors.push(u[(_ - 1) * 3 + 2]), i.colors.push(u[_ * 3]), i.colors.push(u[_ * 3 + 1]), i.colors.push(u[_ * 3 + 2])), r.material && r.material.mappingType !== \"AllSame\" && (i.materialIndex.push(a), i.materialIndex.push(a), i.materialIndex.push(a)), r.normal && (i.normal.push(c[0]), i.normal.push(c[1]), i.normal.push(c[2]), i.normal.push(c[(_ - 1) * 3]), i.normal.push(c[(_ - 1) * 3 + 1]), i.normal.push(c[(_ - 1) * 3 + 2]), i.normal.push(c[_ * 3]), i.normal.push(c[_ * 3 + 1]), i.normal.push(c[_ * 3 + 2])), r.uv && r.uv.forEach(function(y, C) {\n i.uvs[C] === void 0 && (i.uvs[C] = []), i.uvs[C].push(h[C][0]), i.uvs[C].push(h[C][1]), i.uvs[C].push(h[C][(_ - 1) * 2]), i.uvs[C].push(h[C][(_ - 1) * 2 + 1]), i.uvs[C].push(h[C][_ * 2]), i.uvs[C].push(h[C][_ * 2 + 1]);\n });\n }\n addMorphTargets(i, r, s, a) {\n if (s.length === 0)\n return;\n i.morphTargetsRelative = !0, i.morphAttributes.position = [];\n const c = this;\n s.forEach(function(u) {\n u.rawTargets.forEach(function(h) {\n const d = se.Objects.Geometry[h.geoID];\n d !== void 0 && c.genMorphGeometry(i, r, d, a, h.name);\n });\n });\n }\n // a morph geometry node is similar to a standard node, and the node is also contained\n // in FBXTree.Objects.Geometry, however it can only have attributes for position, normal\n // and a special attribute Index defining which vertices of the original geometry are affected\n // Normal and position attributes only have data for the vertices that are affected by the morph\n genMorphGeometry(i, r, s, a, c) {\n const u = r.PolygonVertexIndex !== void 0 ? r.PolygonVertexIndex.a : [], h = s.Vertices !== void 0 ? s.Vertices.a : [], d = s.Indexes !== void 0 ? s.Indexes.a : [], g = i.attributes.position.count * 3, w = new Float32Array(g);\n for (let I = 0; I < d.length; I++) {\n const S = d[I] * 3;\n w[S] = h[I * 3], w[S + 1] = h[I * 3 + 1], w[S + 2] = h[I * 3 + 2];\n }\n const _ = {\n vertexIndices: u,\n vertexPositions: w\n }, y = this.genBuffers(_), C = new Bt(y.vertex, 3);\n C.name = c || s.attrName, C.applyMatrix4(a), i.morphAttributes.position.push(C);\n }\n // Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists\n parseNormals(i) {\n const r = i.MappingInformationType, s = i.ReferenceInformationType, a = i.Normals.a;\n let c = [];\n return s === \"IndexToDirect\" && (\"NormalIndex\" in i ? c = i.NormalIndex.a : \"NormalsIndex\" in i && (c = i.NormalsIndex.a)), {\n dataSize: 3,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists\n parseUVs(i) {\n const r = i.MappingInformationType, s = i.ReferenceInformationType, a = i.UV.a;\n let c = [];\n return s === \"IndexToDirect\" && (c = i.UVIndex.a), {\n dataSize: 2,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists\n parseVertexColors(i) {\n const r = i.MappingInformationType, s = i.ReferenceInformationType, a = i.Colors.a;\n let c = [];\n return s === \"IndexToDirect\" && (c = i.ColorIndex.a), {\n dataSize: 4,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists\n parseMaterialIndices(i) {\n const r = i.MappingInformationType, s = i.ReferenceInformationType;\n if (r === \"NoMappingInformation\")\n return {\n dataSize: 1,\n buffer: [0],\n indices: [0],\n mappingType: \"AllSame\",\n referenceType: s\n };\n const a = i.Materials.a, c = [];\n for (let u = 0; u < a.length; ++u)\n c.push(u);\n return {\n dataSize: 1,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Generate a NurbGeometry from a node in FBXTree.Objects.Geometry\n parseNurbsGeometry(i) {\n if (ma === void 0)\n return console.error(\"THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry.\"), new zt();\n const r = parseInt(i.Order);\n if (isNaN(r))\n return console.error(\"THREE.FBXLoader: Invalid Order %s given for geometry ID: %s\", i.Order, i.id), new zt();\n const s = r - 1, a = i.KnotVector.a, c = [], u = i.Points.a;\n for (let _ = 0, y = u.length; _ < y; _ += 4)\n c.push(new Us().fromArray(u, _));\n let h, d;\n if (i.Form === \"Closed\")\n c.push(c[0]);\n else if (i.Form === \"Periodic\") {\n h = s, d = a.length - 1 - h;\n for (let _ = 0; _ < s; ++_)\n c.push(c[_]);\n }\n const w = new ma(s, a, c, h, d).getPoints(c.length * 12);\n return new zt().setFromPoints(w);\n }\n}\nclass Ku {\n // take raw animation clips and turn them into three.js animation clips\n parse() {\n const i = [], r = this.parseClips();\n if (r !== void 0)\n for (const s in r) {\n const a = r[s], c = this.addClip(a);\n i.push(c);\n }\n return i;\n }\n parseClips() {\n if (se.Objects.AnimationCurve === void 0)\n return;\n const i = this.parseAnimationCurveNodes();\n this.parseAnimationCurves(i);\n const r = this.parseAnimationLayers(i);\n return this.parseAnimStacks(r);\n }\n // parse nodes in FBXTree.Objects.AnimationCurveNode\n // each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )\n // and is referenced by an AnimationLayer\n parseAnimationCurveNodes() {\n const i = se.Objects.AnimationCurveNode, r = /* @__PURE__ */ new Map();\n for (const s in i) {\n const a = i[s];\n if (a.attrName.match(/S|R|T|DeformPercent/) !== null) {\n const c = {\n id: a.id,\n attr: a.attrName,\n curves: {}\n };\n r.set(c.id, c);\n }\n }\n return r;\n }\n // parse nodes in FBXTree.Objects.AnimationCurve and connect them up to\n // previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated\n // axis ( e.g. times and values of x rotation)\n parseAnimationCurves(i) {\n const r = se.Objects.AnimationCurve;\n for (const s in r) {\n const a = {\n id: r[s].id,\n times: r[s].KeyTime.a.map(Qu),\n values: r[s].KeyValueFloat.a\n }, c = Ae.get(a.id);\n if (c !== void 0) {\n const u = c.parents[0].ID, h = c.parents[0].relationship;\n h.match(/X/) ? i.get(u).curves.x = a : h.match(/Y/) ? i.get(u).curves.y = a : h.match(/Z/) ? i.get(u).curves.z = a : h.match(/d|DeformPercent/) && i.has(u) && (i.get(u).curves.morph = a);\n }\n }\n }\n // parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references\n // to various AnimationCurveNodes and is referenced by an AnimationStack node\n // note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack\n parseAnimationLayers(i) {\n const r = se.Objects.AnimationLayer, s = /* @__PURE__ */ new Map();\n for (const a in r) {\n const c = [], u = Ae.get(parseInt(a));\n u !== void 0 && (u.children.forEach(function(d, g) {\n if (i.has(d.ID)) {\n const w = i.get(d.ID);\n if (w.curves.x !== void 0 || w.curves.y !== void 0 || w.curves.z !== void 0) {\n if (c[g] === void 0) {\n const _ = Ae.get(d.ID).parents.filter(function(y) {\n return y.relationship !== void 0;\n })[0].ID;\n if (_ !== void 0) {\n const y = se.Objects.Model[_.toString()];\n if (y === void 0) {\n console.warn(\"THREE.FBXLoader: Encountered a unused curve.\", d);\n return;\n }\n const C = {\n modelName: y.attrName ? Qi.sanitizeNodeName(y.attrName) : \"\",\n ID: y.id,\n initialPosition: [0, 0, 0],\n initialRotation: [0, 0, 0],\n initialScale: [1, 1, 1]\n };\n We.traverse(function(I) {\n I.ID === y.id && (C.transform = I.matrix, I.userData.transformData && (C.eulerOrder = I.userData.transformData.eulerOrder));\n }), C.transform || (C.transform = new Ee()), \"PreRotation\" in y && (C.preRotation = y.PreRotation.value), \"PostRotation\" in y && (C.postRotation = y.PostRotation.value), c[g] = C;\n }\n }\n c[g] && (c[g][w.attr] = w);\n } else if (w.curves.morph !== void 0) {\n if (c[g] === void 0) {\n const _ = Ae.get(d.ID).parents.filter(function(j) {\n return j.relationship !== void 0;\n })[0].ID, y = Ae.get(_).parents[0].ID, C = Ae.get(y).parents[0].ID, I = Ae.get(C).parents[0].ID, S = se.Objects.Model[I], R = {\n modelName: S.attrName ? Qi.sanitizeNodeName(S.attrName) : \"\",\n morphName: se.Objects.Deformer[_].attrName\n };\n c[g] = R;\n }\n c[g][w.attr] = w;\n }\n }\n }), s.set(parseInt(a), c));\n }\n return s;\n }\n // parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation\n // hierarchy. Each Stack node will be used to create a AnimationClip\n parseAnimStacks(i) {\n const r = se.Objects.AnimationStack, s = {};\n for (const a in r) {\n const c = Ae.get(parseInt(a)).children;\n c.length > 1 && console.warn(\"THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.\");\n const u = i.get(c[0].ID);\n s[a] = {\n name: r[a].attrName,\n layer: u\n };\n }\n return s;\n }\n addClip(i) {\n let r = [];\n const s = this;\n return i.layer.forEach(function(a) {\n r = r.concat(s.generateTracks(a));\n }), new Ia(i.name, -1, r);\n }\n generateTracks(i) {\n const r = [];\n let s = new $(), a = new Te(), c = new $();\n if (i.transform && i.transform.decompose(s, a, c), s = s.toArray(), a = new pi().setFromQuaternion(a, i.eulerOrder).toArray(), c = c.toArray(), i.T !== void 0 && Object.keys(i.T.curves).length > 0) {\n const u = this.generateVectorTrack(i.modelName, i.T.curves, s, \"position\");\n u !== void 0 && r.push(u);\n }\n if (i.R !== void 0 && Object.keys(i.R.curves).length > 0) {\n const u = this.generateRotationTrack(i.modelName, i.R.curves, a, i.preRotation, i.postRotation, i.eulerOrder);\n u !== void 0 && r.push(u);\n }\n if (i.S !== void 0 && Object.keys(i.S.curves).length > 0) {\n const u = this.generateVectorTrack(i.modelName, i.S.curves, c, \"scale\");\n u !== void 0 && r.push(u);\n }\n if (i.DeformPercent !== void 0) {\n const u = this.generateMorphTrack(i);\n u !== void 0 && r.push(u);\n }\n return r;\n }\n generateVectorTrack(i, r, s, a) {\n const c = this.getTimesForAllAxes(r), u = this.getKeyframeTrackValues(c, r, s);\n return new Oa(i + \".\" + a, c, u);\n }\n generateRotationTrack(i, r, s, a, c, u) {\n r.x !== void 0 && (this.interpolateRotations(r.x), r.x.values = r.x.values.map(wt.degToRad)), r.y !== void 0 && (this.interpolateRotations(r.y), r.y.values = r.y.values.map(wt.degToRad)), r.z !== void 0 && (this.interpolateRotations(r.z), r.z.values = r.z.values.map(wt.degToRad));\n const h = this.getTimesForAllAxes(r), d = this.getKeyframeTrackValues(h, r, s);\n a !== void 0 && (a = a.map(wt.degToRad), a.push(u), a = new pi().fromArray(a), a = new Te().setFromEuler(a)), c !== void 0 && (c = c.map(wt.degToRad), c.push(u), c = new pi().fromArray(c), c = new Te().setFromEuler(c).invert());\n const g = new Te(), w = new pi(), _ = [];\n for (let y = 0; y < d.length; y += 3)\n w.set(d[y], d[y + 1], d[y + 2], u), g.setFromEuler(w), a !== void 0 && g.premultiply(a), c !== void 0 && g.multiply(c), g.toArray(_, y / 3 * 4);\n return new ro(i + \".quaternion\", h, _);\n }\n generateMorphTrack(i) {\n const r = i.DeformPercent.curves.morph, s = r.values.map(function(c) {\n return c / 100;\n }), a = We.getObjectByName(i.modelName).morphTargetDictionary[i.morphName];\n return new Na(i.modelName + \".morphTargetInfluences[\" + a + \"]\", r.times, s);\n }\n // For all animated objects, times are defined separately for each axis\n // Here we'll combine the times into one sorted array without duplicates\n getTimesForAllAxes(i) {\n let r = [];\n if (i.x !== void 0 && (r = r.concat(i.x.times)), i.y !== void 0 && (r = r.concat(i.y.times)), i.z !== void 0 && (r = r.concat(i.z.times)), r = r.sort(function(s, a) {\n return s - a;\n }), r.length > 1) {\n let s = 1, a = r[0];\n for (let c = 1; c < r.length; c++) {\n const u = r[c];\n u !== a && (r[s] = u, a = u, s++);\n }\n r = r.slice(0, s);\n }\n return r;\n }\n getKeyframeTrackValues(i, r, s) {\n const a = s, c = [];\n let u = -1, h = -1, d = -1;\n return i.forEach(function(g) {\n if (r.x && (u = r.x.times.indexOf(g)), r.y && (h = r.y.times.indexOf(g)), r.z && (d = r.z.times.indexOf(g)), u !== -1) {\n const w = r.x.values[u];\n c.push(w), a[0] = w;\n } else\n c.push(a[0]);\n if (h !== -1) {\n const w = r.y.values[h];\n c.push(w), a[1] = w;\n } else\n c.push(a[1]);\n if (d !== -1) {\n const w = r.z.values[d];\n c.push(w), a[2] = w;\n } else\n c.push(a[2]);\n }), c;\n }\n // Rotations are defined as Euler angles which can have values of any size\n // These will be converted to quaternions which don't support values greater than\n // PI, so we'll interpolate large rotations\n interpolateRotations(i) {\n for (let r = 1; r < i.values.length; r++) {\n const s = i.values[r - 1], a = i.values[r] - s, c = Math.abs(a);\n if (c >= 180) {\n const u = c / 180, h = a / u;\n let d = s + h;\n const g = i.times[r - 1], _ = (i.times[r] - g) / u;\n let y = g + _;\n const C = [], I = [];\n for (; y < i.times[r]; )\n C.push(y), y += _, I.push(d), d += h;\n i.times = ba(i.times, r, C), i.values = ba(i.values, r, I);\n }\n }\n }\n}\nclass $u {\n getPrevNode() {\n return this.nodeStack[this.currentIndent - 2];\n }\n getCurrentNode() {\n return this.nodeStack[this.currentIndent - 1];\n }\n getCurrentProp() {\n return this.currentProp;\n }\n pushStack(i) {\n this.nodeStack.push(i), this.currentIndent += 1;\n }\n popStack() {\n this.nodeStack.pop(), this.currentIndent -= 1;\n }\n setCurrentProp(i, r) {\n this.currentProp = i, this.currentPropName = r;\n }\n parse(i) {\n this.currentIndent = 0, this.allNodes = new Qa(), this.nodeStack = [], this.currentProp = [], this.currentPropName = \"\";\n const r = this, s = i.split(/[\\r\\n]+/);\n return s.forEach(function(a, c) {\n const u = a.match(/^[\\s\\t]*;/), h = a.match(/^[\\s\\t]*$/);\n if (u || h)\n return;\n const d = a.match(\"^\\\\t{\" + r.currentIndent + \"}(\\\\w+):(.*){\", \"\"), g = a.match(\"^\\\\t{\" + r.currentIndent + \"}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)\"), w = a.match(\"^\\\\t{\" + (r.currentIndent - 1) + \"}}\");\n d ? r.parseNodeBegin(a, d) : g ? r.parseNodeProperty(a, g, s[++c]) : w ? r.popStack() : a.match(/^[^\\s\\t}]/) && r.parseNodePropertyContinued(a);\n }), this.allNodes;\n }\n parseNodeBegin(i, r) {\n const s = r[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\"), a = r[2].split(\",\").map(function(d) {\n return d.trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n }), c = {\n name: s\n }, u = this.parseNodeAttr(a), h = this.getCurrentNode();\n this.currentIndent === 0 ? this.allNodes.add(s, c) : s in h ? (s === \"PoseNode\" ? h.PoseNode.push(c) : h[s].id !== void 0 && (h[s] = {}, h[s][h[s].id] = h[s]), u.id !== \"\" && (h[s][u.id] = c)) : typeof u.id == \"number\" ? (h[s] = {}, h[s][u.id] = c) : s !== \"Properties70\" && (s === \"PoseNode\" ? h[s] = [c] : h[s] = c), typeof u.id == \"number\" && (c.id = u.id), u.name !== \"\" && (c.attrName = u.name), u.type !== \"\" && (c.attrType = u.type), this.pushStack(c);\n }\n parseNodeAttr(i) {\n let r = i[0];\n i[0] !== \"\" && (r = parseInt(i[0]), isNaN(r) && (r = i[0]));\n let s = \"\", a = \"\";\n return i.length > 1 && (s = i[1].replace(/^(\\w+)::/, \"\"), a = i[2]), {\n id: r,\n name: s,\n type: a\n };\n }\n parseNodeProperty(i, r, s) {\n let a = r[1].replace(/^\"/, \"\").replace(/\"$/, \"\").trim(), c = r[2].replace(/^\"/, \"\").replace(/\"$/, \"\").trim();\n a === \"Content\" && c === \",\" && (c = s.replace(/\"/g, \"\").replace(/,$/, \"\").trim());\n const u = this.getCurrentNode();\n if (u.name === \"Properties70\") {\n this.parseNodeSpecialProperty(i, a, c);\n return;\n }\n if (a === \"C\") {\n const d = c.split(\",\").slice(1), g = parseInt(d[0]), w = parseInt(d[1]);\n let _ = c.split(\",\").slice(3);\n _ = _.map(function(y) {\n return y.trim().replace(/^\"/, \"\");\n }), a = \"connections\", c = [g, w], Wu(c, _), u[a] === void 0 && (u[a] = []);\n }\n a === \"Node\" && (u.id = c), a in u && Array.isArray(u[a]) ? u[a].push(c) : a !== \"a\" ? u[a] = c : u.a = c, this.setCurrentProp(u, a), a === \"a\" && c.slice(-1) !== \",\" && (u.a = Wr(c));\n }\n parseNodePropertyContinued(i) {\n const r = this.getCurrentNode();\n r.a += i, i.slice(-1) !== \",\" && (r.a = Wr(r.a));\n }\n // parse \"Property70\"\n parseNodeSpecialProperty(i, r, s) {\n const a = s.split('\",').map(function(w) {\n return w.trim().replace(/^\\\"/, \"\").replace(/\\s/, \"_\");\n }), c = a[0], u = a[1], h = a[2], d = a[3];\n let g = a[4];\n switch (u) {\n case \"int\":\n case \"enum\":\n case \"bool\":\n case \"ULongLong\":\n case \"double\":\n case \"Number\":\n case \"FieldOfView\":\n g = parseFloat(g);\n break;\n case \"Color\":\n case \"ColorRGB\":\n case \"Vector3D\":\n case \"Lcl_Translation\":\n case \"Lcl_Rotation\":\n case \"Lcl_Scaling\":\n g = Wr(g);\n break;\n }\n this.getPrevNode()[c] = {\n type: u,\n type2: h,\n flag: d,\n value: g\n }, this.setCurrentProp(this.getPrevNode(), c);\n }\n}\nclass Xu {\n parse(i) {\n const r = new fa(i);\n r.skip(23);\n const s = r.getUint32();\n if (s < 6400)\n throw new Error(\"THREE.FBXLoader: FBX version not supported, FileVersion: \" + s);\n const a = new Qa();\n for (; !this.endOfContent(r); ) {\n const c = this.parseNode(r, s);\n c !== null && a.add(c.name, c);\n }\n return a;\n }\n // Check if reader has reached the end of content.\n endOfContent(i) {\n return i.size() % 16 === 0 ? (i.getOffset() + 160 + 16 & -16) >= i.size() : i.getOffset() + 160 + 16 >= i.size();\n }\n // recursively parse nodes until the end of the file is reached\n parseNode(i, r) {\n const s = {}, a = r >= 7500 ? i.getUint64() : i.getUint32(), c = r >= 7500 ? i.getUint64() : i.getUint32();\n r >= 7500 ? i.getUint64() : i.getUint32();\n const u = i.getUint8(), h = i.getString(u);\n if (a === 0)\n return null;\n const d = [];\n for (let y = 0; y < c; y++)\n d.push(this.parseProperty(i));\n const g = d.length > 0 ? d[0] : \"\", w = d.length > 1 ? d[1] : \"\", _ = d.length > 2 ? d[2] : \"\";\n for (s.singleProperty = c === 1 && i.getOffset() === a; a > i.getOffset(); ) {\n const y = this.parseNode(i, r);\n y !== null && this.parseSubNode(h, s, y);\n }\n return s.propertyList = d, typeof g == \"number\" && (s.id = g), w !== \"\" && (s.attrName = w), _ !== \"\" && (s.attrType = _), h !== \"\" && (s.name = h), s;\n }\n parseSubNode(i, r, s) {\n if (s.singleProperty === !0) {\n const a = s.propertyList[0];\n Array.isArray(a) ? (r[s.name] = s, s.a = a) : r[s.name] = a;\n } else if (i === \"Connections\" && s.name === \"C\") {\n const a = [];\n s.propertyList.forEach(function(c, u) {\n u !== 0 && a.push(c);\n }), r.connections === void 0 && (r.connections = []), r.connections.push(a);\n } else if (s.name === \"Properties70\")\n Object.keys(s).forEach(function(c) {\n r[c] = s[c];\n });\n else if (i === \"Properties70\" && s.name === \"P\") {\n let a = s.propertyList[0], c = s.propertyList[1];\n const u = s.propertyList[2], h = s.propertyList[3];\n let d;\n a.indexOf(\"Lcl \") === 0 && (a = a.replace(\"Lcl \", \"Lcl_\")), c.indexOf(\"Lcl \") === 0 && (c = c.replace(\"Lcl \", \"Lcl_\")), c === \"Color\" || c === \"ColorRGB\" || c === \"Vector\" || c === \"Vector3D\" || c.indexOf(\"Lcl_\") === 0 ? d = [s.propertyList[4], s.propertyList[5], s.propertyList[6]] : d = s.propertyList[4], r[a] = {\n type: c,\n type2: u,\n flag: h,\n value: d\n };\n } else\n r[s.name] === void 0 ? typeof s.id == \"number\" ? (r[s.name] = {}, r[s.name][s.id] = s) : r[s.name] = s : s.name === \"PoseNode\" ? (Array.isArray(r[s.name]) || (r[s.name] = [r[s.name]]), r[s.name].push(s)) : r[s.name][s.id] === void 0 && (r[s.name][s.id] = s);\n }\n parseProperty(i) {\n const r = i.getString(1);\n let s;\n switch (r) {\n case \"C\":\n return i.getBoolean();\n case \"D\":\n return i.getFloat64();\n case \"F\":\n return i.getFloat32();\n case \"I\":\n return i.getInt32();\n case \"L\":\n return i.getInt64();\n case \"R\":\n return s = i.getUint32(), i.getArrayBuffer(s);\n case \"S\":\n return s = i.getUint32(), i.getString(s);\n case \"Y\":\n return i.getInt16();\n case \"b\":\n case \"c\":\n case \"d\":\n case \"f\":\n case \"i\":\n case \"l\":\n const a = i.getUint32(), c = i.getUint32(), u = i.getUint32();\n if (c === 0)\n switch (r) {\n case \"b\":\n case \"c\":\n return i.getBooleanArray(a);\n case \"d\":\n return i.getFloat64Array(a);\n case \"f\":\n return i.getFloat32Array(a);\n case \"i\":\n return i.getInt32Array(a);\n case \"l\":\n return i.getInt64Array(a);\n }\n const h = Zp(new Uint8Array(i.getArrayBuffer(u))), d = new fa(h.buffer);\n switch (r) {\n case \"b\":\n case \"c\":\n return d.getBooleanArray(a);\n case \"d\":\n return d.getFloat64Array(a);\n case \"f\":\n return d.getFloat32Array(a);\n case \"i\":\n return d.getInt32Array(a);\n case \"l\":\n return d.getInt64Array(a);\n }\n default:\n throw new Error(\"THREE.FBXLoader: Unknown property type \" + r);\n }\n }\n}\nclass fa {\n constructor(i, r) {\n this.dv = new DataView(i), this.offset = 0, this.littleEndian = r !== void 0 ? r : !0;\n }\n getOffset() {\n return this.offset;\n }\n size() {\n return this.dv.buffer.byteLength;\n }\n skip(i) {\n this.offset += i;\n }\n // seems like true/false representation depends on exporter.\n // true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54)\n // then sees LSB.\n getBoolean() {\n return (this.getUint8() & 1) === 1;\n }\n getBooleanArray(i) {\n const r = [];\n for (let s = 0; s < i; s++)\n r.push(this.getBoolean());\n return r;\n }\n getUint8() {\n const i = this.dv.getUint8(this.offset);\n return this.offset += 1, i;\n }\n getInt16() {\n const i = this.dv.getInt16(this.offset, this.littleEndian);\n return this.offset += 2, i;\n }\n getInt32() {\n const i = this.dv.getInt32(this.offset, this.littleEndian);\n return this.offset += 4, i;\n }\n getInt32Array(i) {\n const r = [];\n for (let s = 0; s < i; s++)\n r.push(this.getInt32());\n return r;\n }\n getUint32() {\n const i = this.dv.getUint32(this.offset, this.littleEndian);\n return this.offset += 4, i;\n }\n // JavaScript doesn't support 64-bit integer so calculate this here\n // 1 << 32 will return 1 so using multiply operation instead here.\n // There's a possibility that this method returns wrong value if the value\n // is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER.\n // TODO: safely handle 64-bit integer\n getInt64() {\n let i, r;\n return this.littleEndian ? (i = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), i = this.getUint32()), r & 2147483648 ? (r = ~r & 4294967295, i = ~i & 4294967295, i === 4294967295 && (r = r + 1 & 4294967295), i = i + 1 & 4294967295, -(r * 4294967296 + i)) : r * 4294967296 + i;\n }\n getInt64Array(i) {\n const r = [];\n for (let s = 0; s < i; s++)\n r.push(this.getInt64());\n return r;\n }\n // Note: see getInt64() comment\n getUint64() {\n let i, r;\n return this.littleEndian ? (i = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), i = this.getUint32()), r * 4294967296 + i;\n }\n getFloat32() {\n const i = this.dv.getFloat32(this.offset, this.littleEndian);\n return this.offset += 4, i;\n }\n getFloat32Array(i) {\n const r = [];\n for (let s = 0; s < i; s++)\n r.push(this.getFloat32());\n return r;\n }\n getFloat64() {\n const i = this.dv.getFloat64(this.offset, this.littleEndian);\n return this.offset += 8, i;\n }\n getFloat64Array(i) {\n const r = [];\n for (let s = 0; s < i; s++)\n r.push(this.getFloat64());\n return r;\n }\n getArrayBuffer(i) {\n const r = this.dv.buffer.slice(this.offset, this.offset + i);\n return this.offset += i, r;\n }\n getString(i) {\n let r = [];\n for (let a = 0; a < i; a++)\n r[a] = this.getUint8();\n const s = r.indexOf(0);\n return s >= 0 && (r = r.slice(0, s)), Tt.decodeText(new Uint8Array(r));\n }\n}\nclass Qa {\n add(i, r) {\n this[i] = r;\n }\n}\nfunction Yu(b) {\n const i = \"Kaydara FBX Binary \\0\";\n return b.byteLength >= i.length && i === Ja(b, 0, i.length);\n}\nfunction qu(b) {\n const i = [\"K\", \"a\", \"y\", \"d\", \"a\", \"r\", \"a\", \"\\\\\", \"F\", \"B\", \"X\", \"\\\\\", \"B\", \"i\", \"n\", \"a\", \"r\", \"y\", \"\\\\\", \"\\\\\"];\n let r = 0;\n function s(a) {\n const c = b[a - 1];\n return b = b.slice(r + a), r++, c;\n }\n for (let a = 0; a < i.length; ++a)\n if (s(1) === i[a])\n return !1;\n return !0;\n}\nfunction va(b) {\n const i = /FBXVersion: (\\d+)/, r = b.match(i);\n if (r)\n return parseInt(r[1]);\n throw new Error(\"THREE.FBXLoader: Cannot find the version number for the file given.\");\n}\nfunction Qu(b) {\n return b / 46186158e3;\n}\nconst Zu = [];\nfunction Vs(b, i, r, s) {\n let a;\n switch (s.mappingType) {\n case \"ByPolygonVertex\":\n a = b;\n break;\n case \"ByPolygon\":\n a = i;\n break;\n case \"ByVertice\":\n a = r;\n break;\n case \"AllSame\":\n a = s.indices[0];\n break;\n default:\n console.warn(\"THREE.FBXLoader: unknown attribute mapping type \" + s.mappingType);\n }\n s.referenceType === \"IndexToDirect\" && (a = s.indices[a]);\n const c = a * s.dataSize, u = c + s.dataSize;\n return Ju(Zu, s.buffer, c, u);\n}\nconst Zr = new pi(), ci = new $();\nfunction Za(b) {\n const i = new Ee(), r = new Ee(), s = new Ee(), a = new Ee(), c = new Ee(), u = new Ee(), h = new Ee(), d = new Ee(), g = new Ee(), w = new Ee(), _ = new Ee(), y = new Ee(), C = b.inheritType ? b.inheritType : 0;\n if (b.translation && i.setPosition(ci.fromArray(b.translation)), b.preRotation) {\n const K = b.preRotation.map(wt.degToRad);\n K.push(b.eulerOrder), r.makeRotationFromEuler(Zr.fromArray(K));\n }\n if (b.rotation) {\n const K = b.rotation.map(wt.degToRad);\n K.push(b.eulerOrder), s.makeRotationFromEuler(Zr.fromArray(K));\n }\n if (b.postRotation) {\n const K = b.postRotation.map(wt.degToRad);\n K.push(b.eulerOrder), a.makeRotationFromEuler(Zr.fromArray(K)), a.invert();\n }\n b.scale && c.scale(ci.fromArray(b.scale)), b.scalingOffset && h.setPosition(ci.fromArray(b.scalingOffset)), b.scalingPivot && u.setPosition(ci.fromArray(b.scalingPivot)), b.rotationOffset && d.setPosition(ci.fromArray(b.rotationOffset)), b.rotationPivot && g.setPosition(ci.fromArray(b.rotationPivot)), b.parentMatrixWorld && (_.copy(b.parentMatrix), w.copy(b.parentMatrixWorld));\n const I = r.clone().multiply(s).multiply(a), S = new Ee();\n S.extractRotation(w);\n const R = new Ee();\n R.copyPosition(w);\n const j = R.clone().invert().multiply(w), F = S.clone().invert().multiply(j), V = c, D = new Ee();\n if (C === 0)\n D.copy(S).multiply(I).multiply(F).multiply(V);\n else if (C === 1)\n D.copy(S).multiply(F).multiply(I).multiply(V);\n else {\n const q = new Ee().scale(new $().setFromMatrixScale(_)).clone().invert(), ue = F.clone().multiply(q);\n D.copy(S).multiply(I).multiply(ue).multiply(V);\n }\n const Y = g.clone().invert(), G = u.clone().invert();\n let N = i.clone().multiply(d).multiply(g).multiply(r).multiply(s).multiply(a).multiply(Y).multiply(h).multiply(u).multiply(c).multiply(G);\n const O = new Ee().copyPosition(N), H = w.clone().multiply(O);\n return y.copyPosition(H), N = y.clone().multiply(D), N.premultiply(w.invert()), N;\n}\nfunction Wa(b) {\n b = b || 0;\n const i = [\n \"ZYX\",\n // -> XYZ extrinsic\n \"YZX\",\n // -> XZY extrinsic\n \"XZY\",\n // -> YZX extrinsic\n \"ZXY\",\n // -> YXZ extrinsic\n \"YXZ\",\n // -> ZXY extrinsic\n \"XYZ\"\n // -> ZYX extrinsic\n //'SphericXYZ', // not possible to support\n ];\n return b === 6 ? (console.warn(\"THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.\"), i[0]) : i[b];\n}\nfunction Wr(b) {\n return b.split(\",\").map(function(r) {\n return parseFloat(r);\n });\n}\nfunction Ja(b, i, r) {\n return i === void 0 && (i = 0), r === void 0 && (r = b.byteLength), Tt.decodeText(new Uint8Array(b, i, r));\n}\nfunction Wu(b, i) {\n for (let r = 0, s = b.length, a = i.length; r < a; r++, s++)\n b[s] = i[r];\n}\nfunction Ju(b, i, r, s) {\n for (let a = r, c = 0; a < s; a++, c++)\n b[c] = i[a];\n return b;\n}\nfunction ba(b, i, r) {\n return b.slice(0, i).concat(r).concat(b.slice(i));\n}\nclass eh extends zs {\n constructor(i) {\n super(i);\n }\n load(i, r, s, a) {\n const c = new ui(this.manager);\n c.setPath(this.path), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(i, (u) => {\n if (typeof u != \"string\")\n throw new Error(\"unsupported data type\");\n const h = JSON.parse(u), d = this.parse(h);\n r && r(d);\n }, s, a);\n }\n parse(i) {\n return new go(i);\n }\n}\nclass go {\n constructor(i) {\n T(this, \"data\", void 0), this.data = i;\n }\n generateShapes(i, r = 100, s) {\n const a = [], c = {\n letterSpacing: 0,\n lineHeight: 1,\n ...s\n }, u = th(i, r, this.data, c);\n for (let h = 0, d = u.length; h < d; h++)\n Array.prototype.push.apply(a, u[h].toShapes(!1));\n return a;\n }\n}\nT(go, \"isFont\", void 0);\nT(go, \"type\", void 0);\nfunction th(b, i, r, s) {\n const a = Array.from(b), c = i / r.resolution, u = (r.boundingBox.yMax - r.boundingBox.yMin + r.underlineThickness) * c, h = [];\n let d = 0, g = 0;\n for (let w = 0; w < a.length; w++) {\n const _ = a[w];\n if (_ === `\n`)\n d = 0, g -= u * s.lineHeight;\n else {\n const y = nh(_, c, d, g, r);\n y && (d += y.offsetX + s.letterSpacing, h.push(y.path));\n }\n }\n return h;\n}\nfunction nh(b, i, r, s, a) {\n const c = a.glyphs[b] || a.glyphs[\"?\"];\n if (!c) {\n console.error('THREE.Font: character \"' + b + '\" does not exists in font family ' + a.familyName + \".\");\n return;\n }\n const u = new Lp();\n let h, d, g, w, _, y, C, I;\n if (c.o) {\n const S = c._cachedOutline || (c._cachedOutline = c.o.split(\" \"));\n for (let R = 0, j = S.length; R < j; )\n switch (S[R++]) {\n case \"m\":\n h = parseInt(S[R++]) * i + r, d = parseInt(S[R++]) * i + s, u.moveTo(h, d);\n break;\n case \"l\":\n h = parseInt(S[R++]) * i + r, d = parseInt(S[R++]) * i + s, u.lineTo(h, d);\n break;\n case \"q\":\n g = parseInt(S[R++]) * i + r, w = parseInt(S[R++]) * i + s, _ = parseInt(S[R++]) * i + r, y = parseInt(S[R++]) * i + s, u.quadraticCurveTo(_, y, g, w);\n break;\n case \"b\":\n g = parseInt(S[R++]) * i + r, w = parseInt(S[R++]) * i + s, _ = parseInt(S[R++]) * i + r, y = parseInt(S[R++]) * i + s, C = parseInt(S[R++]) * i + r, I = parseInt(S[R++]) * i + s, u.bezierCurveTo(_, y, C, I, g, w);\n break;\n }\n }\n return {\n offsetX: c.ha * i,\n path: u\n };\n}\nvar el = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction ih(b) {\n return b && b.__esModule && Object.prototype.hasOwnProperty.call(b, \"default\") ? b.default : b;\n}\nclass sh extends Rp {\n constructor(i) {\n super(i), this.type = Rs;\n }\n // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n parse(i) {\n const h = function(V, D) {\n switch (V) {\n case 1:\n console.error(\"THREE.RGBELoader Read Error: \" + (D || \"\"));\n break;\n case 2:\n console.error(\"THREE.RGBELoader Write Error: \" + (D || \"\"));\n break;\n case 3:\n console.error(\"THREE.RGBELoader Bad File Format: \" + (D || \"\"));\n break;\n default:\n case 4:\n console.error(\"THREE.RGBELoader: Error: \" + (D || \"\"));\n }\n return -1;\n }, _ = `\n`, y = function(V, D, Y) {\n D = D || 1024;\n let N = V.pos, O = -1, H = 0, K = \"\", q = String.fromCharCode.apply(null, new Uint16Array(V.subarray(N, N + 128)));\n for (; 0 > (O = q.indexOf(_)) && H < D && N < V.byteLength; )\n K += q, H += q.length, N += 128, q += String.fromCharCode.apply(null, new Uint16Array(V.subarray(N, N + 128)));\n return -1 < O ? (Y !== !1 && (V.pos += H + O + 1), K + q.slice(0, O)) : !1;\n }, C = function(V) {\n const D = /^#\\?(\\S+)/, Y = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, G = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, N = /^\\s*FORMAT=(\\S+)\\s*$/, O = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/, H = {\n valid: 0,\n string: \"\",\n comments: \"\",\n programtype: \"RGBE\",\n format: \"\",\n gamma: 1,\n exposure: 1,\n width: 0,\n height: 0\n /* image dimensions, width/height */\n };\n let K, q;\n if (V.pos >= V.byteLength || !(K = y(V)))\n return h(1, \"no header found\");\n if (!(q = K.match(D)))\n return h(3, \"bad initial token\");\n for (H.valid |= 1, H.programtype = q[1], H.string += K + `\n`; K = y(V), K !== !1; ) {\n if (H.string += K + `\n`, K.charAt(0) === \"#\") {\n H.comments += K + `\n`;\n continue;\n }\n if ((q = K.match(Y)) && (H.gamma = parseFloat(q[1])), (q = K.match(G)) && (H.exposure = parseFloat(q[1])), (q = K.match(N)) && (H.valid |= 2, H.format = q[1]), (q = K.match(O)) && (H.valid |= 4, H.height = parseInt(q[1], 10), H.width = parseInt(q[2], 10)), H.valid & 2 && H.valid & 4)\n break;\n }\n return H.valid & 2 ? H.valid & 4 ? H : h(3, \"missing image size specifier\") : h(3, \"missing format specifier\");\n }, I = function(V, D, Y) {\n const G = D;\n if (\n // run length encoding is not allowed so read flat\n G < 8 || G > 32767 || // this file is not run length encoded\n V[0] !== 2 || V[1] !== 2 || V[2] & 128\n )\n return new Uint8Array(V);\n if (G !== (V[2] << 8 | V[3]))\n return h(3, \"wrong scanline width\");\n const N = new Uint8Array(4 * D * Y);\n if (!N.length)\n return h(4, \"unable to allocate buffer space\");\n let O = 0, H = 0;\n const K = 4 * G, q = new Uint8Array(4), ue = new Uint8Array(K);\n let ge = Y;\n for (; ge > 0 && H < V.byteLength; ) {\n if (H + 4 > V.byteLength)\n return h(1);\n if (q[0] = V[H++], q[1] = V[H++], q[2] = V[H++], q[3] = V[H++], q[0] != 2 || q[1] != 2 || (q[2] << 8 | q[3]) != G)\n return h(3, \"bad rgbe scanline format\");\n let ce = 0, me;\n for (; ce < K && H < V.byteLength; ) {\n me = V[H++];\n const ee = me > 128;\n if (ee && (me -= 128), me === 0 || ce + me > K)\n return h(3, \"bad scanline data\");\n if (ee) {\n const X = V[H++];\n for (let Pe = 0; Pe < me; Pe++)\n ue[ce++] = X;\n } else\n ue.set(V.subarray(H, H + me), ce), ce += me, H += me;\n }\n const he = G;\n for (let ee = 0; ee < he; ee++) {\n let X = 0;\n N[O] = ue[ee + X], X += G, N[O + 1] = ue[ee + X], X += G, N[O + 2] = ue[ee + X], X += G, N[O + 3] = ue[ee + X], O += 4;\n }\n ge--;\n }\n return N;\n }, S = function(V, D, Y, G) {\n const N = V[D + 3], O = Math.pow(2, N - 128) / 255;\n Y[G + 0] = V[D + 0] * O, Y[G + 1] = V[D + 1] * O, Y[G + 2] = V[D + 2] * O, Y[G + 3] = 1;\n }, R = function(V, D, Y, G) {\n const N = V[D + 3], O = Math.pow(2, N - 128) / 255;\n Y[G + 0] = Is.toHalfFloat(Math.min(V[D + 0] * O, 65504)), Y[G + 1] = Is.toHalfFloat(Math.min(V[D + 1] * O, 65504)), Y[G + 2] = Is.toHalfFloat(Math.min(V[D + 2] * O, 65504)), Y[G + 3] = Is.toHalfFloat(1);\n }, j = new Uint8Array(i);\n j.pos = 0;\n const F = C(j);\n if (F !== -1) {\n const V = F.width, D = F.height, Y = I(j.subarray(j.pos), V, D);\n if (Y !== -1) {\n let G, N, O;\n switch (this.type) {\n case Xr:\n O = Y.length / 4;\n const H = new Float32Array(O * 4);\n for (let q = 0; q < O; q++)\n S(Y, q * 4, H, q * 4);\n G = H, N = Xr;\n break;\n case Rs:\n O = Y.length / 4;\n const K = new Uint16Array(O * 4);\n for (let q = 0; q < O; q++)\n R(Y, q * 4, K, q * 4);\n G = K, N = Rs;\n break;\n default:\n console.error(\"THREE.RGBELoader: unsupported type: \", this.type);\n break;\n }\n return {\n width: V,\n height: D,\n data: G,\n header: F.string,\n gamma: F.gamma,\n exposure: F.exposure,\n type: N\n };\n }\n }\n return null;\n }\n setDataType(i) {\n return this.type = i, this;\n }\n load(i, r, s, a) {\n function c(u, h) {\n switch (u.type) {\n case Xr:\n case Rs:\n u.encoding = Ba, u.minFilter = Fs, u.magFilter = Fs, u.generateMipmaps = !1, u.flipY = !0;\n break;\n }\n r && r(u, h);\n }\n return super.load(i, c, s, a);\n }\n}\nconst Jr = /* @__PURE__ */ new WeakMap();\nclass rh extends zs {\n constructor(i) {\n super(i), this.decoderPath = \"\", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = \"\", this.defaultAttributeIDs = {\n position: \"POSITION\",\n normal: \"NORMAL\",\n color: \"COLOR\",\n uv: \"TEX_COORD\"\n }, this.defaultAttributeTypes = {\n position: \"Float32Array\",\n normal: \"Float32Array\",\n color: \"Float32Array\",\n uv: \"Float32Array\"\n };\n }\n setDecoderPath(i) {\n return this.decoderPath = i, this;\n }\n setDecoderConfig(i) {\n return this.decoderConfig = i, this;\n }\n setWorkerLimit(i) {\n return this.workerLimit = i, this;\n }\n load(i, r, s, a) {\n const c = new ui(this.manager);\n c.setPath(this.path), c.setResponseType(\"arraybuffer\"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(i, (u) => {\n const h = {\n attributeIDs: this.defaultAttributeIDs,\n attributeTypes: this.defaultAttributeTypes,\n useUniqueIDs: !1\n };\n this.decodeGeometry(u, h).then(r).catch(a);\n }, s, a);\n }\n /** @deprecated Kept for backward-compatibility with previous DRACOLoader versions. */\n decodeDracoFile(i, r, s, a) {\n const c = {\n attributeIDs: s || this.defaultAttributeIDs,\n attributeTypes: a || this.defaultAttributeTypes,\n useUniqueIDs: !!s\n };\n this.decodeGeometry(i, c).then(r);\n }\n decodeGeometry(i, r) {\n for (const d in r.attributeTypes) {\n const g = r.attributeTypes[d];\n g.BYTES_PER_ELEMENT !== void 0 && (r.attributeTypes[d] = g.name);\n }\n const s = JSON.stringify(r);\n if (Jr.has(i)) {\n const d = Jr.get(i);\n if (d.key === s)\n return d.promise;\n if (i.byteLength === 0)\n throw new Error(\"THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.\");\n }\n let a;\n const c = this.workerNextTaskID++, u = i.byteLength, h = this._getWorker(c, u).then((d) => (a = d, new Promise((g, w) => {\n a._callbacks[c] = {\n resolve: g,\n reject: w\n }, a.postMessage({\n type: \"decode\",\n id: c,\n taskConfig: r,\n buffer: i\n }, [i]);\n }))).then((d) => this._createGeometry(d.geometry));\n return h.catch(() => !0).then(() => {\n a && c && this._releaseTask(a, c);\n }), Jr.set(i, {\n key: s,\n promise: h\n }), h;\n }\n _createGeometry(i) {\n const r = new zt();\n i.index && r.setIndex(new Ns(i.index.array, 1));\n for (let s = 0; s < i.attributes.length; s++) {\n const a = i.attributes[s], c = a.name, u = a.array, h = a.itemSize;\n r.setAttribute(c, new Ns(u, h));\n }\n return r;\n }\n _loadLibrary(i, r) {\n const s = new ui(this.manager);\n return s.setPath(this.decoderPath), s.setResponseType(r), s.setWithCredentials(this.withCredentials), new Promise((a, c) => {\n s.load(i, a, void 0, c);\n });\n }\n preload() {\n return this._initDecoder(), this;\n }\n _initDecoder() {\n if (this.decoderPending)\n return this.decoderPending;\n const i = typeof WebAssembly != \"object\" || this.decoderConfig.type === \"js\", r = [];\n return i ? r.push(this._loadLibrary(\"draco_decoder.js\", \"text\")) : (r.push(this._loadLibrary(\"draco_wasm_wrapper.js\", \"text\")), r.push(this._loadLibrary(\"draco_decoder.wasm\", \"arraybuffer\"))), this.decoderPending = Promise.all(r).then((s) => {\n const a = s[0];\n i || (this.decoderConfig.wasmBinary = s[1]);\n const c = oh.toString(), u = [\"/* draco decoder */\", a, \"\", \"/* worker */\", c.substring(c.indexOf(\"{\") + 1, c.lastIndexOf(\"}\"))].join(`\n`);\n this.workerSourceURL = URL.createObjectURL(new Blob([u]));\n }), this.decoderPending;\n }\n _getWorker(i, r) {\n return this._initDecoder().then(() => {\n if (this.workerPool.length < this.workerLimit) {\n const a = new Worker(this.workerSourceURL);\n a._callbacks = {}, a._taskCosts = {}, a._taskLoad = 0, a.postMessage({\n type: \"init\",\n decoderConfig: this.decoderConfig\n }), a.onmessage = function(c) {\n const u = c.data;\n switch (u.type) {\n case \"decode\":\n a._callbacks[u.id].resolve(u);\n break;\n case \"error\":\n a._callbacks[u.id].reject(u);\n break;\n default:\n console.error('THREE.DRACOLoader: Unexpected message, \"' + u.type + '\"');\n }\n }, this.workerPool.push(a);\n } else\n this.workerPool.sort(function(a, c) {\n return a._taskLoad > c._taskLoad ? -1 : 1;\n });\n const s = this.workerPool[this.workerPool.length - 1];\n return s._taskCosts[i] = r, s._taskLoad += r, s;\n });\n }\n _releaseTask(i, r) {\n i._taskLoad -= i._taskCosts[r], delete i._callbacks[r], delete i._taskCosts[r];\n }\n debug() {\n console.log(\"Task load: \", this.workerPool.map((i) => i._taskLoad));\n }\n dispose() {\n for (let i = 0; i < this.workerPool.length; ++i)\n this.workerPool[i].terminate();\n return this.workerPool.length = 0, this;\n }\n}\nfunction oh() {\n let b, i;\n onmessage = function(u) {\n const h = u.data;\n switch (h.type) {\n case \"init\":\n b = h.decoderConfig, i = new Promise(function(w) {\n b.onModuleLoaded = function(_) {\n w({\n draco: _\n });\n }, DracoDecoderModule(b);\n });\n break;\n case \"decode\":\n const d = h.buffer, g = h.taskConfig;\n i.then((w) => {\n const _ = w.draco, y = new _.Decoder(), C = new _.DecoderBuffer();\n C.Init(new Int8Array(d), d.byteLength);\n try {\n const I = r(_, y, C, g), S = I.attributes.map((R) => R.array.buffer);\n I.index && S.push(I.index.array.buffer), self.postMessage({\n type: \"decode\",\n id: h.id,\n geometry: I\n }, S);\n } catch (I) {\n console.error(I), self.postMessage({\n type: \"error\",\n id: h.id,\n error: I.message\n });\n } finally {\n _.destroy(C), _.destroy(y);\n }\n });\n break;\n }\n };\n function r(u, h, d, g) {\n const w = g.attributeIDs, _ = g.attributeTypes;\n let y, C;\n const I = h.GetEncodedGeometryType(d);\n if (I === u.TRIANGULAR_MESH)\n y = new u.Mesh(), C = h.DecodeBufferToMesh(d, y);\n else if (I === u.POINT_CLOUD)\n y = new u.PointCloud(), C = h.DecodeBufferToPointCloud(d, y);\n else\n throw new Error(\"THREE.DRACOLoader: Unexpected geometry type.\");\n if (!C.ok() || y.ptr === 0)\n throw new Error(\"THREE.DRACOLoader: Decoding failed: \" + C.error_msg());\n const S = {\n index: null,\n attributes: []\n };\n for (const R in w) {\n const j = self[_[R]];\n let F, V;\n if (g.useUniqueIDs)\n V = w[R], F = h.GetAttributeByUniqueId(y, V);\n else {\n if (V = h.GetAttributeId(y, u[w[R]]), V === -1)\n continue;\n F = h.GetAttribute(y, V);\n }\n S.attributes.push(a(u, h, y, R, j, F));\n }\n return I === u.TRIANGULAR_MESH && (S.index = s(u, h, y)), u.destroy(y), S;\n }\n function s(u, h, d) {\n const w = d.num_faces() * 3, _ = w * 4, y = u._malloc(_);\n h.GetTrianglesUInt32Array(d, _, y);\n const C = new Uint32Array(u.HEAPF32.buffer, y, w).slice();\n return u._free(y), {\n array: C,\n itemSize: 1\n };\n }\n function a(u, h, d, g, w, _) {\n const y = _.num_components(), I = d.num_points() * y, S = I * w.BYTES_PER_ELEMENT, R = c(u, w), j = u._malloc(S);\n h.GetAttributeDataArrayForAllPoints(d, _, R, S, j);\n const F = new w(u.HEAPF32.buffer, j, I).slice();\n return u._free(j), {\n name: g,\n array: F,\n itemSize: y\n };\n }\n function c(u, h) {\n switch (h) {\n case Float32Array:\n return u.DT_FLOAT32;\n case Int8Array:\n return u.DT_INT8;\n case Int16Array:\n return u.DT_INT16;\n case Int32Array:\n return u.DT_INT32;\n case Uint8Array:\n return u.DT_UINT8;\n case Uint16Array:\n return u.DT_UINT16;\n case Uint32Array:\n return u.DT_UINT32;\n }\n }\n}\nfunction Fn() {\n const { state: b, setState: i } = sa(\"useTres\", tp()), r = sa(\"extend\") || (() => {\n });\n return {\n state: b,\n setState: i,\n extend: r\n };\n}\nconst ah = [\"args\"], ud = /* @__PURE__ */ Ie({\n __name: \"OrbitControls\",\n props: {\n makeDefault: { type: Boolean, default: !1 },\n camera: null,\n domElement: null,\n target: null,\n enableDamping: { type: Boolean }\n },\n setup(b) {\n const i = b, { state: r, setState: s, extend: a } = Fn(), c = on(null);\n return a({ OrbitControls: iu }), uo(c, (u) => {\n u && i.makeDefault ? s(\"controls\", u) : s(\"controls\", null);\n }), (u, h) => {\n var d;\n return jt(r).camera && jt(r).renderer ? (Be(), je(\"TresOrbitControls\", {\n key: 0,\n ref_key: \"controls\",\n ref: c,\n args: [jt(r).camera || b.camera, ((d = jt(r).renderer) == null ? void 0 : d.domElement) || b.domElement]\n }, null, 8, ah)) : to(\"\", !0);\n };\n }\n});\nfunction lh(b, i) {\n const r = {};\n for (const s of i)\n Object.prototype.hasOwnProperty.call(b, s) && (r[s] = b[s]);\n return r;\n}\nfunction ch(b, i) {\n const r = `set${i[0].toUpperCase()}${i.slice(1)}`;\n return b[r] !== void 0;\n}\nconst hd = /* @__PURE__ */ Ie({\n __name: \"TransformControls\",\n props: {\n object: null,\n mode: null,\n enabled: { type: Boolean, default: !0 },\n axis: null,\n translationSnap: null,\n rotationSnap: null,\n scaleSnap: null,\n space: null,\n size: null,\n showX: { type: Boolean },\n showY: { type: Boolean },\n showZ: { type: Boolean }\n },\n emits: [\"dragging\", \"change\", \"mouseDown\", \"mouseUp\", \"objectChange\"],\n setup(b, { emit: i }) {\n const r = b;\n let s = Je();\n const { state: a } = Fn(), c = Yi(\n () => lh(r, [\n \"enabled\",\n \"axis\",\n \"mode\",\n \"translationSnap\",\n \"rotationSnap\",\n \"scaleSnap\",\n \"space\",\n \"size\",\n \"showX\",\n \"showY\",\n \"showZ\"\n ])\n ), u = () => i(\"change\", s.value), h = () => i(\"mouseDown\", s.value), d = () => i(\"mouseUp\", s.value), g = () => i(\"objectChange\", s.value), w = (y) => {\n a.controls && (a.controls.enabled = !y.value), i(\"dragging\", y.value);\n };\n function _(y) {\n y.addEventListener(\"dragging-changed\", w), y.addEventListener(\"change\", u), y.addEventListener(\"mouseDown\", h), y.addEventListener(\"mouseUp\", d), y.addEventListener(\"objectChange\", g);\n }\n return ho(() => {\n a.camera && a.renderer && a.scene && r.object && (s.value = new eu(a.camera, a.renderer.domElement), s.value.attach(r.object), a.scene.add(s.value), _(s.value));\n }), uo(\n [c, s],\n // TODO: properly type this\n ([y, C]) => {\n if (y && C)\n for (const I in y)\n if (!ch(C, I))\n C[I] = y[I];\n else {\n const S = `set${I[0].toUpperCase()}${I.slice(1)}`;\n typeof C[S] == \"function\" && y[I] !== void 0 && C[S](y[I]);\n }\n },\n {\n immediate: !0\n }\n ), Ca(() => {\n s.value && (s.value.removeEventListener(\"dragging-changed\", w), s.value.removeEventListener(\"change\", u), s.value.removeEventListener(\"mouseDown\", h), s.value.removeEventListener(\"mouseUp\", d), s.value.removeEventListener(\"objectChange\", g));\n }), (y, C) => $e(y.$slots, \"default\");\n }\n});\nvar ga;\nconst tl = typeof window < \"u\", ph = (b) => typeof b == \"string\", uh = () => {\n};\ntl && ((ga = window == null ? void 0 : window.navigator) != null && ga.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction nl(b) {\n return typeof b == \"function\" ? b() : jt(b);\n}\nfunction hh(b) {\n return b;\n}\nfunction dh(b) {\n return Qc() ? (Zc(b), !0) : !1;\n}\nfunction mh(b, i = !0) {\n Yc() ? Pa(b) : i ? b() : qc(b);\n}\nfunction fh(b) {\n var i;\n const r = nl(b);\n return (i = r == null ? void 0 : r.$el) != null ? i : r;\n}\nconst _o = tl ? window : void 0;\nfunction Vn(...b) {\n let i, r, s, a;\n if (ph(b[0]) || Array.isArray(b[0]) ? ([r, s, a] = b, i = _o) : [i, r, s, a] = b, !i)\n return uh;\n Array.isArray(r) || (r = [r]), Array.isArray(s) || (s = [s]);\n const c = [], u = () => {\n c.forEach((w) => w()), c.length = 0;\n }, h = (w, _, y, C) => (w.addEventListener(_, y, C), () => w.removeEventListener(_, y, C)), d = uo(() => [fh(i), nl(a)], ([w, _]) => {\n u(), w && c.push(...r.flatMap((y) => s.map((C) => h(w, y, C, _))));\n }, { immediate: !0, flush: \"post\" }), g = () => {\n d(), u();\n };\n return dh(g), g;\n}\nconst _a = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, wa = \"__vueuse_ssr_handlers__\";\n_a[wa] = _a[wa] || {};\nfunction vh(b = {}) {\n const {\n type: i = \"page\",\n touch: r = !0,\n resetOnTouchEnds: s = !1,\n initialValue: a = { x: 0, y: 0 },\n window: c = _o,\n eventFilter: u\n } = b, h = on(a.x), d = on(a.y), g = on(null), w = (S) => {\n i === \"page\" ? (h.value = S.pageX, d.value = S.pageY) : i === \"client\" ? (h.value = S.clientX, d.value = S.clientY) : i === \"movement\" && (h.value = S.movementX, d.value = S.movementY), g.value = \"mouse\";\n }, _ = () => {\n h.value = a.x, d.value = a.y;\n }, y = (S) => {\n if (S.touches.length > 0) {\n const R = S.touches[0];\n i === \"page\" ? (h.value = R.pageX, d.value = R.pageY) : i === \"client\" && (h.value = R.clientX, d.value = R.clientY), g.value = \"touch\";\n }\n }, C = (S) => u === void 0 ? w(S) : u(() => w(S), {}), I = (S) => u === void 0 ? y(S) : u(() => y(S), {});\n return c && (Vn(c, \"mousemove\", C, { passive: !0 }), Vn(c, \"dragover\", C, { passive: !0 }), r && i !== \"movement\" && (Vn(c, \"touchstart\", I, { passive: !0 }), Vn(c, \"touchmove\", I, { passive: !0 }), s && Vn(c, \"touchend\", _, { passive: !0 }))), {\n x: h,\n y: d,\n sourceType: g\n };\n}\nvar ya;\n(function(b) {\n b.UP = \"UP\", b.RIGHT = \"RIGHT\", b.DOWN = \"DOWN\", b.LEFT = \"LEFT\", b.NONE = \"NONE\";\n})(ya || (ya = {}));\nvar bh = Object.defineProperty, xa = Object.getOwnPropertySymbols, gh = Object.prototype.hasOwnProperty, _h = Object.prototype.propertyIsEnumerable, Ea = (b, i, r) => i in b ? bh(b, i, { enumerable: !0, configurable: !0, writable: !0, value: r }) : b[i] = r, wh = (b, i) => {\n for (var r in i || (i = {}))\n gh.call(i, r) && Ea(b, r, i[r]);\n if (xa)\n for (var r of xa(i))\n _h.call(i, r) && Ea(b, r, i[r]);\n return b;\n};\nconst yh = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nwh({\n linear: hh\n}, yh);\nfunction xh(b = {}) {\n const {\n window: i = _o,\n initialWidth: r = 1 / 0,\n initialHeight: s = 1 / 0,\n listenOrientation: a = !0,\n includeScrollbar: c = !0\n } = b, u = on(r), h = on(s), d = () => {\n i && (c ? (u.value = i.innerWidth, h.value = i.innerHeight) : (u.value = i.document.documentElement.clientWidth, h.value = i.document.documentElement.clientHeight));\n };\n return d(), mh(d), Vn(\"resize\", d, { passive: !0 }), a && Vn(\"orientationchange\", d, { passive: !0 }), { width: u, height: h };\n}\nfunction Eh(b = !1, i = 5, r) {\n const { x: s, y: a } = vh(), { logWarning: c } = np(), { width: u, height: h } = xh(), d = Yi(() => (s.value / u.value - 0.5) * i), g = Yi(() => -(a.value / h.value - 0.5) * i);\n if (r) {\n const { x: w, y: _ } = r.position;\n ho(() => {\n b || r && (r.position.x = w + d.value, r.position.y = _ + g.value);\n });\n } else\n c(\"Scene must contain a Camera component to use this composable\");\n}\nconst dd = Ie({\n name: \"PamCameraMouse\",\n props: [\"disabled\", \"factor\"],\n setup(b) {\n const { state: i } = Fn();\n return ho(() => {\n if (i != null && i.camera) {\n const r = i == null ? void 0 : i.camera;\n Eh(b.disabled, b.factor, r);\n }\n }), () => {\n };\n }\n});\nvar js = {}, Ch = {\n get exports() {\n return js;\n },\n set exports(b) {\n js = b;\n }\n};\n/*! Tweakpane 3.1.7 (c) 2016 cocopon, licensed under the MIT license. */\n(function(b, i) {\n (function(r, s) {\n s(i);\n })(el, function(r) {\n class s {\n /**\n * @hidden\n */\n constructor(e) {\n const [t, l] = e.split(\"-\"), v = t.split(\".\");\n this.major = parseInt(v[0], 10), this.minor = parseInt(v[1], 10), this.patch = parseInt(v[2], 10), this.prerelease = l ?? null;\n }\n toString() {\n const e = [this.major, this.minor, this.patch].join(\".\");\n return this.prerelease !== null ? [e, this.prerelease].join(\"-\") : e;\n }\n }\n class a {\n constructor(e) {\n this.controller_ = e;\n }\n get element() {\n return this.controller_.view.element;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(e) {\n this.controller_.viewProps.set(\"disabled\", e);\n }\n get hidden() {\n return this.controller_.viewProps.get(\"hidden\");\n }\n set hidden(e) {\n this.controller_.viewProps.set(\"hidden\", e);\n }\n dispose() {\n this.controller_.viewProps.set(\"disposed\", !0);\n }\n }\n class c {\n constructor(e) {\n this.target = e;\n }\n }\n class u extends c {\n constructor(e, t, l, v) {\n super(e), this.value = t, this.presetKey = l, this.last = v ?? !0;\n }\n }\n class h extends c {\n constructor(e, t, l) {\n super(e), this.value = t, this.presetKey = l;\n }\n }\n class d extends c {\n constructor(e, t) {\n super(e), this.expanded = t;\n }\n }\n class g extends c {\n constructor(e, t) {\n super(e), this.index = t;\n }\n }\n function w(n) {\n return n;\n }\n function _(n) {\n return n == null;\n }\n function y(n, e) {\n if (n.length !== e.length)\n return !1;\n for (let t = 0; t < n.length; t++)\n if (n[t] !== e[t])\n return !1;\n return !0;\n }\n function C(n, e) {\n let t = n;\n do {\n const l = Object.getOwnPropertyDescriptor(t, e);\n if (l && (l.set !== void 0 || l.writable === !0))\n return !0;\n t = Object.getPrototypeOf(t);\n } while (t !== null);\n return !1;\n }\n const I = {\n alreadydisposed: () => \"View has been already disposed\",\n invalidparams: (n) => `Invalid parameters for '${n.name}'`,\n nomatchingcontroller: (n) => `No matching controller for '${n.key}'`,\n nomatchingview: (n) => `No matching view for '${JSON.stringify(n.params)}'`,\n notbindable: () => \"Value is not bindable\",\n propertynotfound: (n) => `Property '${n.name}' not found`,\n shouldneverhappen: () => \"This error should never happen\"\n };\n class S {\n static alreadyDisposed() {\n return new S({ type: \"alreadydisposed\" });\n }\n static notBindable() {\n return new S({\n type: \"notbindable\"\n });\n }\n static propertyNotFound(e) {\n return new S({\n type: \"propertynotfound\",\n context: {\n name: e\n }\n });\n }\n static shouldNeverHappen() {\n return new S({ type: \"shouldneverhappen\" });\n }\n constructor(e) {\n var t;\n this.message = (t = I[e.type](e.context)) !== null && t !== void 0 ? t : \"Unexpected error\", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = e.type;\n }\n }\n class R {\n constructor(e, t, l) {\n this.obj_ = e, this.key_ = t, this.presetKey_ = l ?? t;\n }\n static isBindable(e) {\n return !(e === null || typeof e != \"object\");\n }\n get key() {\n return this.key_;\n }\n get presetKey() {\n return this.presetKey_;\n }\n read() {\n return this.obj_[this.key_];\n }\n write(e) {\n this.obj_[this.key_] = e;\n }\n writeProperty(e, t) {\n const l = this.read();\n if (!R.isBindable(l))\n throw S.notBindable();\n if (!(e in l))\n throw S.propertyNotFound(e);\n l[e] = t;\n }\n }\n class j extends a {\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get title() {\n var e;\n return (e = this.controller_.valueController.props.get(\"title\")) !== null && e !== void 0 ? e : \"\";\n }\n set title(e) {\n this.controller_.valueController.props.set(\"title\", e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.controller_.valueController.emitter.on(e, () => {\n l(new c(this));\n }), this;\n }\n }\n class F {\n constructor() {\n this.observers_ = {};\n }\n on(e, t) {\n let l = this.observers_[e];\n return l || (l = this.observers_[e] = []), l.push({\n handler: t\n }), this;\n }\n off(e, t) {\n const l = this.observers_[e];\n return l && (this.observers_[e] = l.filter((v) => v.handler !== t)), this;\n }\n emit(e, t) {\n const l = this.observers_[e];\n l && l.forEach((v) => {\n v.handler(t);\n });\n }\n }\n const V = \"tp\";\n function D(n) {\n return (t, l) => [\n V,\n \"-\",\n n,\n \"v\",\n t ? `_${t}` : \"\",\n l ? `-${l}` : \"\"\n ].join(\"\");\n }\n function Y(n, e) {\n return (t) => e(n(t));\n }\n function G(n) {\n return n.rawValue;\n }\n function N(n, e) {\n n.emitter.on(\"change\", Y(G, e)), e(n.rawValue);\n }\n function O(n, e, t) {\n N(n.value(e), t);\n }\n function H(n, e, t) {\n t ? n.classList.add(e) : n.classList.remove(e);\n }\n function K(n, e) {\n return (t) => {\n H(n, e, t);\n };\n }\n function q(n, e) {\n N(n, (t) => {\n e.textContent = t ?? \"\";\n });\n }\n const ue = D(\"btn\");\n class ge {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(ue()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"button\");\n l.classList.add(ue(\"b\")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(ue(\"t\")), q(t.props.value(\"title\"), v), this.buttonElement.appendChild(v);\n }\n }\n class ce {\n constructor(e, t) {\n this.emitter = new F(), this.onClick_ = this.onClick_.bind(this), this.props = t.props, this.viewProps = t.viewProps, this.view = new ge(e, {\n props: this.props,\n viewProps: this.viewProps\n }), this.view.buttonElement.addEventListener(\"click\", this.onClick_);\n }\n onClick_() {\n this.emitter.emit(\"click\", {\n sender: this\n });\n }\n }\n class me {\n constructor(e, t) {\n var l;\n this.constraint_ = t == null ? void 0 : t.constraint, this.equals_ = (l = t == null ? void 0 : t.equals) !== null && l !== void 0 ? l : (v, E) => v === E, this.emitter = new F(), this.rawValue_ = e;\n }\n get constraint() {\n return this.constraint_;\n }\n get rawValue() {\n return this.rawValue_;\n }\n set rawValue(e) {\n this.setRawValue(e, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(e, t) {\n const l = t ?? {\n forceEmit: !1,\n last: !0\n }, v = this.constraint_ ? this.constraint_.constrain(e) : e, E = this.rawValue_;\n this.equals_(E, v) && !l.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.rawValue_ = v, this.emitter.emit(\"change\", {\n options: l,\n previousRawValue: E,\n rawValue: v,\n sender: this\n }));\n }\n }\n class he {\n constructor(e) {\n this.emitter = new F(), this.value_ = e;\n }\n get rawValue() {\n return this.value_;\n }\n set rawValue(e) {\n this.setRawValue(e, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(e, t) {\n const l = t ?? {\n forceEmit: !1,\n last: !0\n }, v = this.value_;\n v === e && !l.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.value_ = e, this.emitter.emit(\"change\", {\n options: l,\n previousRawValue: v,\n rawValue: this.value_,\n sender: this\n }));\n }\n }\n function ee(n, e) {\n const t = e == null ? void 0 : e.constraint, l = e == null ? void 0 : e.equals;\n return !t && !l ? new he(n) : new me(n, e);\n }\n class X {\n constructor(e) {\n this.emitter = new F(), this.valMap_ = e;\n for (const t in this.valMap_)\n this.valMap_[t].emitter.on(\"change\", () => {\n this.emitter.emit(\"change\", {\n key: t,\n sender: this\n });\n });\n }\n static createCore(e) {\n return Object.keys(e).reduce((l, v) => Object.assign(l, {\n [v]: ee(e[v])\n }), {});\n }\n static fromObject(e) {\n const t = this.createCore(e);\n return new X(t);\n }\n get(e) {\n return this.valMap_[e].rawValue;\n }\n set(e, t) {\n this.valMap_[e].rawValue = t;\n }\n value(e) {\n return this.valMap_[e];\n }\n }\n function Pe(n, e) {\n const l = Object.keys(e).reduce((v, E) => {\n if (v === void 0)\n return;\n const k = e[E], B = k(n[E]);\n return B.succeeded ? Object.assign(Object.assign({}, v), { [E]: B.value }) : void 0;\n }, {});\n return l;\n }\n function fe(n, e) {\n return n.reduce((t, l) => {\n if (t === void 0)\n return;\n const v = e(l);\n if (!(!v.succeeded || v.value === void 0))\n return [...t, v.value];\n }, []);\n }\n function ae(n) {\n return n === null ? !1 : typeof n == \"object\";\n }\n function ne(n) {\n return (e) => (t) => {\n if (!e && t === void 0)\n return {\n succeeded: !1,\n value: void 0\n };\n if (e && t === void 0)\n return {\n succeeded: !0,\n value: void 0\n };\n const l = n(t);\n return l !== void 0 ? {\n succeeded: !0,\n value: l\n } : {\n succeeded: !1,\n value: void 0\n };\n };\n }\n function be(n) {\n return {\n custom: (e) => ne(e)(n),\n boolean: ne((e) => typeof e == \"boolean\" ? e : void 0)(n),\n number: ne((e) => typeof e == \"number\" ? e : void 0)(n),\n string: ne((e) => typeof e == \"string\" ? e : void 0)(n),\n function: ne((e) => typeof e == \"function\" ? e : void 0)(n),\n constant: (e) => ne((t) => t === e ? e : void 0)(n),\n raw: ne((e) => e)(n),\n object: (e) => ne((t) => {\n if (ae(t))\n return Pe(t, e);\n })(n),\n array: (e) => ne((t) => {\n if (Array.isArray(t))\n return fe(t, e);\n })(n)\n };\n }\n const M = {\n optional: be(!0),\n required: be(!1)\n };\n function le(n, e) {\n const t = M.required.object(e)(n);\n return t.succeeded ? t.value : void 0;\n }\n function Ve(n) {\n console.warn([\n `Missing '${n.key}' of ${n.target} in ${n.place}.`,\n \"Please rebuild plugins with the latest core package.\"\n ].join(\" \"));\n }\n function Ne(n) {\n return n && n.parentElement && n.parentElement.removeChild(n), null;\n }\n class we {\n constructor(e) {\n this.value_ = e;\n }\n static create(e) {\n return [\n new we(e),\n (t, l) => {\n e.setRawValue(t, l);\n }\n ];\n }\n get emitter() {\n return this.value_.emitter;\n }\n get rawValue() {\n return this.value_.rawValue;\n }\n }\n const it = D(\"\");\n function Bn(n, e) {\n return K(n, it(void 0, e));\n }\n class Xe extends X {\n constructor(e) {\n var t;\n super(e), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = we.create(ee(this.getGlobalDisabled_())), this.value(\"disabled\").emitter.on(\"change\", this.onDisabledChange_), this.value(\"parent\").emitter.on(\"change\", this.onParentChange_), (t = this.get(\"parent\")) === null || t === void 0 || t.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_);\n }\n static create(e) {\n var t, l, v;\n const E = e ?? {};\n return new Xe(X.createCore({\n disabled: (t = E.disabled) !== null && t !== void 0 ? t : !1,\n disposed: !1,\n hidden: (l = E.hidden) !== null && l !== void 0 ? l : !1,\n parent: (v = E.parent) !== null && v !== void 0 ? v : null\n }));\n }\n get globalDisabled() {\n return this.globalDisabled_;\n }\n bindClassModifiers(e) {\n N(this.globalDisabled_, Bn(e, \"disabled\")), O(this, \"hidden\", Bn(e, \"hidden\"));\n }\n bindDisabled(e) {\n N(this.globalDisabled_, (t) => {\n e.disabled = t;\n });\n }\n bindTabIndex(e) {\n N(this.globalDisabled_, (t) => {\n e.tabIndex = t ? -1 : 0;\n });\n }\n handleDispose(e) {\n this.value(\"disposed\").emitter.on(\"change\", (t) => {\n t && e();\n });\n }\n getGlobalDisabled_() {\n const e = this.get(\"parent\");\n return (e ? e.globalDisabled.rawValue : !1) || this.get(\"disabled\");\n }\n updateGlobalDisabled_() {\n this.setGlobalDisabled_(this.getGlobalDisabled_());\n }\n onDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentGlobalDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentChange_(e) {\n var t;\n const l = e.previousRawValue;\n l == null || l.globalDisabled.emitter.off(\"change\", this.onParentGlobalDisabledChange_), (t = this.get(\"parent\")) === null || t === void 0 || t.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_();\n }\n }\n function jn() {\n return [\"veryfirst\", \"first\", \"last\", \"verylast\"];\n }\n const an = D(\"\"), dt = {\n veryfirst: \"vfst\",\n first: \"fst\",\n last: \"lst\",\n verylast: \"vlst\"\n };\n class kt {\n constructor(e) {\n this.parent_ = null, this.blade = e.blade, this.view = e.view, this.viewProps = e.viewProps;\n const t = this.view.element;\n this.blade.value(\"positions\").emitter.on(\"change\", () => {\n jn().forEach((l) => {\n t.classList.remove(an(void 0, dt[l]));\n }), this.blade.get(\"positions\").forEach((l) => {\n t.classList.add(an(void 0, dt[l]));\n });\n }), this.viewProps.handleDispose(() => {\n Ne(t);\n });\n }\n get parent() {\n return this.parent_;\n }\n set parent(e) {\n if (this.parent_ = e, !(\"parent\" in this.viewProps.valMap_)) {\n Ve({\n key: \"parent\",\n target: Xe.name,\n place: \"BladeController.parent\"\n });\n return;\n }\n this.viewProps.set(\"parent\", this.parent_ ? this.parent_.viewProps : null);\n }\n }\n const ze = \"http://www.w3.org/2000/svg\";\n function st(n) {\n n.offsetHeight;\n }\n function ln(n, e) {\n const t = n.style.transition;\n n.style.transition = \"none\", e(), n.style.transition = t;\n }\n function mt(n) {\n return n.ontouchstart !== void 0;\n }\n function zn() {\n return globalThis;\n }\n function hi() {\n return zn().document;\n }\n function Un(n) {\n const e = n.ownerDocument.defaultView;\n return e && \"document\" in e ? n.getContext(\"2d\", {\n willReadFrequently: !0\n }) : null;\n }\n const Gn = {\n check: '',\n dropdown: '',\n p2dpad: ''\n };\n function yt(n, e) {\n const t = n.createElementNS(ze, \"svg\");\n return t.innerHTML = Gn[e], t;\n }\n function Mt(n, e, t) {\n n.insertBefore(e, n.children[t]);\n }\n function Hn(n) {\n n.parentElement && n.parentElement.removeChild(n);\n }\n function cn(n) {\n for (; n.children.length > 0; )\n n.removeChild(n.children[0]);\n }\n function Kn(n) {\n for (; n.childNodes.length > 0; )\n n.removeChild(n.childNodes[0]);\n }\n function xt(n) {\n return n.relatedTarget ? n.relatedTarget : \"explicitOriginalTarget\" in n ? n.explicitOriginalTarget : null;\n }\n const ft = D(\"lbl\");\n function St(n, e) {\n const t = n.createDocumentFragment();\n return e.split(`\n`).map((v) => n.createTextNode(v)).forEach((v, E) => {\n E > 0 && t.appendChild(n.createElement(\"br\")), t.appendChild(v);\n }), t;\n }\n class A {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(ft()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(ft(\"l\")), O(t.props, \"label\", (E) => {\n _(E) ? this.element.classList.add(ft(void 0, \"nol\")) : (this.element.classList.remove(ft(void 0, \"nol\")), Kn(l), l.appendChild(St(e, E)));\n }), this.element.appendChild(l), this.labelElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(ft(\"v\")), this.element.appendChild(v), this.valueElement = v;\n }\n }\n class U extends kt {\n constructor(e, t) {\n const l = t.valueController.viewProps;\n super(Object.assign(Object.assign({}, t), { view: new A(e, {\n props: t.props,\n viewProps: l\n }), viewProps: l })), this.props = t.props, this.valueController = t.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n const W = {\n id: \"button\",\n type: \"blade\",\n accept(n) {\n const e = M, t = le(n, {\n title: e.required.string,\n view: e.required.constant(\"button\"),\n label: e.optional.string\n });\n return t ? { params: t } : null;\n },\n controller(n) {\n return new U(n.document, {\n blade: n.blade,\n props: X.fromObject({\n label: n.params.label\n }),\n valueController: new ce(n.document, {\n props: X.fromObject({\n title: n.params.title\n }),\n viewProps: n.viewProps\n })\n });\n },\n api(n) {\n return !(n.controller instanceof U) || !(n.controller.valueController instanceof ce) ? null : new j(n.controller);\n }\n };\n class ie extends kt {\n constructor(e) {\n super(e), this.value = e.value;\n }\n }\n function ye() {\n return new X({\n positions: ee([], {\n equals: y\n })\n });\n }\n class De extends X {\n constructor(e) {\n super(e);\n }\n static create(e) {\n const t = {\n completed: !0,\n expanded: e,\n expandedHeight: null,\n shouldFixHeight: !1,\n temporaryExpanded: null\n }, l = X.createCore(t);\n return new De(l);\n }\n get styleExpanded() {\n var e;\n return (e = this.get(\"temporaryExpanded\")) !== null && e !== void 0 ? e : this.get(\"expanded\");\n }\n get styleHeight() {\n if (!this.styleExpanded)\n return \"0\";\n const e = this.get(\"expandedHeight\");\n return this.get(\"shouldFixHeight\") && !_(e) ? `${e}px` : \"auto\";\n }\n bindExpandedClass(e, t) {\n const l = () => {\n this.styleExpanded ? e.classList.add(t) : e.classList.remove(t);\n };\n O(this, \"expanded\", l), O(this, \"temporaryExpanded\", l);\n }\n cleanUpTransition() {\n this.set(\"shouldFixHeight\", !1), this.set(\"expandedHeight\", null), this.set(\"completed\", !0);\n }\n }\n function Ut(n, e) {\n let t = 0;\n return ln(e, () => {\n n.set(\"expandedHeight\", null), n.set(\"temporaryExpanded\", !0), st(e), t = e.clientHeight, n.set(\"temporaryExpanded\", null), st(e);\n }), t;\n }\n function pn(n, e) {\n e.style.height = n.styleHeight;\n }\n function Ue(n, e) {\n n.value(\"expanded\").emitter.on(\"beforechange\", () => {\n if (n.set(\"completed\", !1), _(n.get(\"expandedHeight\"))) {\n const t = Ut(n, e);\n t > 0 && n.set(\"expandedHeight\", t);\n }\n n.set(\"shouldFixHeight\", !0), st(e);\n }), n.emitter.on(\"change\", () => {\n pn(n, e);\n }), pn(n, e), e.addEventListener(\"transitionend\", (t) => {\n t.propertyName === \"height\" && n.cleanUpTransition();\n });\n }\n class Ge extends a {\n constructor(e, t) {\n super(e), this.rackApi_ = t;\n }\n }\n function Gs(n, e) {\n return n.addBlade(Object.assign(Object.assign({}, e), { view: \"button\" }));\n }\n function Hs(n, e) {\n return n.addBlade(Object.assign(Object.assign({}, e), { view: \"folder\" }));\n }\n function Ks(n, e) {\n const t = e ?? {};\n return n.addBlade(Object.assign(Object.assign({}, t), { view: \"separator\" }));\n }\n function di(n, e) {\n return n.addBlade(Object.assign(Object.assign({}, e), { view: \"tab\" }));\n }\n class At {\n constructor(e) {\n this.emitter = new F(), this.items_ = [], this.cache_ = /* @__PURE__ */ new Set(), this.onSubListAdd_ = this.onSubListAdd_.bind(this), this.onSubListRemove_ = this.onSubListRemove_.bind(this), this.extract_ = e;\n }\n get items() {\n return this.items_;\n }\n allItems() {\n return Array.from(this.cache_);\n }\n find(e) {\n for (const t of this.allItems())\n if (e(t))\n return t;\n return null;\n }\n includes(e) {\n return this.cache_.has(e);\n }\n add(e, t) {\n if (this.includes(e))\n throw S.shouldNeverHappen();\n const l = t !== void 0 ? t : this.items_.length;\n this.items_.splice(l, 0, e), this.cache_.add(e);\n const v = this.extract_(e);\n v && (v.emitter.on(\"add\", this.onSubListAdd_), v.emitter.on(\"remove\", this.onSubListRemove_), v.allItems().forEach((E) => {\n this.cache_.add(E);\n })), this.emitter.emit(\"add\", {\n index: l,\n item: e,\n root: this,\n target: this\n });\n }\n remove(e) {\n const t = this.items_.indexOf(e);\n if (t < 0)\n return;\n this.items_.splice(t, 1), this.cache_.delete(e);\n const l = this.extract_(e);\n l && (l.emitter.off(\"add\", this.onSubListAdd_), l.emitter.off(\"remove\", this.onSubListRemove_)), this.emitter.emit(\"remove\", {\n index: t,\n item: e,\n root: this,\n target: this\n });\n }\n onSubListAdd_(e) {\n this.cache_.add(e.item), this.emitter.emit(\"add\", {\n index: e.index,\n item: e.item,\n root: this,\n target: e.target\n });\n }\n onSubListRemove_(e) {\n this.cache_.delete(e.item), this.emitter.emit(\"remove\", {\n index: e.index,\n item: e.item,\n root: this,\n target: e.target\n });\n }\n }\n class mi extends a {\n constructor(e) {\n super(e), this.onBindingChange_ = this.onBindingChange_.bind(this), this.emitter_ = new F(), this.controller_.binding.emitter.on(\"change\", this.onBindingChange_);\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n refresh() {\n this.controller_.binding.read();\n }\n onBindingChange_(e) {\n const t = e.sender.target.read();\n this.emitter_.emit(\"change\", {\n event: new u(this, t, this.controller_.binding.target.presetKey, e.options.last)\n });\n }\n }\n class Fe extends U {\n constructor(e, t) {\n super(e, t), this.binding = t.binding;\n }\n }\n class fi extends a {\n constructor(e) {\n super(e), this.onBindingUpdate_ = this.onBindingUpdate_.bind(this), this.emitter_ = new F(), this.controller_.binding.emitter.on(\"update\", this.onBindingUpdate_);\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n refresh() {\n this.controller_.binding.read();\n }\n onBindingUpdate_(e) {\n const t = e.sender.target.read();\n this.emitter_.emit(\"update\", {\n event: new h(this, t, this.controller_.binding.target.presetKey)\n });\n }\n }\n class rt extends U {\n constructor(e, t) {\n super(e, t), this.binding = t.binding, this.viewProps.bindDisabled(this.binding.ticker), this.viewProps.handleDispose(() => {\n this.binding.dispose();\n });\n }\n }\n function ts(n) {\n return n instanceof $n ? n.apiSet_ : n instanceof Ge ? n.rackApi_.apiSet_ : null;\n }\n function un(n, e) {\n const t = n.find((l) => l.controller_ === e);\n if (!t)\n throw S.shouldNeverHappen();\n return t;\n }\n function ns(n, e, t) {\n if (!R.isBindable(n))\n throw S.notBindable();\n return new R(n, e, t);\n }\n class $n extends a {\n constructor(e, t) {\n super(e), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this), this.onRackInputChange_ = this.onRackInputChange_.bind(this), this.onRackMonitorUpdate_ = this.onRackMonitorUpdate_.bind(this), this.emitter_ = new F(), this.apiSet_ = new At(ts), this.pool_ = t;\n const l = this.controller_.rack;\n l.emitter.on(\"add\", this.onRackAdd_), l.emitter.on(\"remove\", this.onRackRemove_), l.emitter.on(\"inputchange\", this.onRackInputChange_), l.emitter.on(\"monitorupdate\", this.onRackMonitorUpdate_), l.children.forEach((v) => {\n this.setUpApi_(v);\n });\n }\n get children() {\n return this.controller_.rack.children.map((e) => un(this.apiSet_, e));\n }\n addInput(e, t, l) {\n const v = l ?? {}, E = this.controller_.view.element.ownerDocument, k = this.pool_.createInput(E, ns(e, t, v.presetKey), v), B = new mi(k);\n return this.add(B, v.index);\n }\n addMonitor(e, t, l) {\n const v = l ?? {}, E = this.controller_.view.element.ownerDocument, k = this.pool_.createMonitor(E, ns(e, t), v), B = new fi(k);\n return this.add(B, v.index);\n }\n addFolder(e) {\n return Hs(this, e);\n }\n addButton(e) {\n return Gs(this, e);\n }\n addSeparator(e) {\n return Ks(this, e);\n }\n addTab(e) {\n return di(this, e);\n }\n add(e, t) {\n this.controller_.rack.add(e.controller_, t);\n const l = this.apiSet_.find((v) => v.controller_ === e.controller_);\n return l && this.apiSet_.remove(l), this.apiSet_.add(e), e;\n }\n remove(e) {\n this.controller_.rack.remove(e.controller_);\n }\n addBlade(e) {\n const t = this.controller_.view.element.ownerDocument, l = this.pool_.createBlade(t, e), v = this.pool_.createBladeApi(l);\n return this.add(v, e.index);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n setUpApi_(e) {\n this.apiSet_.find((l) => l.controller_ === e) || this.apiSet_.add(this.pool_.createBladeApi(e));\n }\n onRackAdd_(e) {\n this.setUpApi_(e.bladeController);\n }\n onRackRemove_(e) {\n if (e.isRoot) {\n const t = un(this.apiSet_, e.bladeController);\n this.apiSet_.remove(t);\n }\n }\n onRackInputChange_(e) {\n const t = e.bladeController;\n if (t instanceof Fe) {\n const l = un(this.apiSet_, t), v = t.binding;\n this.emitter_.emit(\"change\", {\n event: new u(l, v.target.read(), v.target.presetKey, e.options.last)\n });\n } else if (t instanceof ie) {\n const l = un(this.apiSet_, t);\n this.emitter_.emit(\"change\", {\n event: new u(l, t.value.rawValue, void 0, e.options.last)\n });\n }\n }\n onRackMonitorUpdate_(e) {\n if (!(e.bladeController instanceof rt))\n throw S.shouldNeverHappen();\n const t = un(this.apiSet_, e.bladeController), l = e.bladeController.binding;\n this.emitter_.emit(\"update\", {\n event: new h(t, l.target.read(), l.target.presetKey)\n });\n }\n }\n class vi extends Ge {\n constructor(e, t) {\n super(e, new $n(e.rackController, t)), this.emitter_ = new F(), this.controller_.foldable.value(\"expanded\").emitter.on(\"change\", (l) => {\n this.emitter_.emit(\"fold\", {\n event: new d(this, l.sender.rawValue)\n });\n }), this.rackApi_.on(\"change\", (l) => {\n this.emitter_.emit(\"change\", {\n event: l\n });\n }), this.rackApi_.on(\"update\", (l) => {\n this.emitter_.emit(\"update\", {\n event: l\n });\n });\n }\n get expanded() {\n return this.controller_.foldable.get(\"expanded\");\n }\n set expanded(e) {\n this.controller_.foldable.set(\"expanded\", e);\n }\n get title() {\n return this.controller_.props.get(\"title\");\n }\n set title(e) {\n this.controller_.props.set(\"title\", e);\n }\n get children() {\n return this.rackApi_.children;\n }\n addInput(e, t, l) {\n return this.rackApi_.addInput(e, t, l);\n }\n addMonitor(e, t, l) {\n return this.rackApi_.addMonitor(e, t, l);\n }\n addFolder(e) {\n return this.rackApi_.addFolder(e);\n }\n addButton(e) {\n return this.rackApi_.addButton(e);\n }\n addSeparator(e) {\n return this.rackApi_.addSeparator(e);\n }\n addTab(e) {\n return this.rackApi_.addTab(e);\n }\n add(e, t) {\n return this.rackApi_.add(e, t);\n }\n remove(e) {\n this.rackApi_.remove(e);\n }\n addBlade(e) {\n return this.rackApi_.addBlade(e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n }\n class bi extends kt {\n constructor(e) {\n super({\n blade: e.blade,\n view: e.view,\n viewProps: e.rackController.viewProps\n }), this.rackController = e.rackController;\n }\n }\n class $s {\n constructor(e, t) {\n const l = D(t.viewName);\n this.element = e.createElement(\"div\"), this.element.classList.add(l()), t.viewProps.bindClassModifiers(this.element);\n }\n }\n function Xs(n, e) {\n for (let t = 0; t < n.length; t++) {\n const l = n[t];\n if (l instanceof Fe && l.binding === e)\n return l;\n }\n return null;\n }\n function Ys(n, e) {\n for (let t = 0; t < n.length; t++) {\n const l = n[t];\n if (l instanceof rt && l.binding === e)\n return l;\n }\n return null;\n }\n function qs(n, e) {\n for (let t = 0; t < n.length; t++) {\n const l = n[t];\n if (l instanceof ie && l.value === e)\n return l;\n }\n return null;\n }\n function gi(n) {\n return n instanceof hn ? n.rack : n instanceof bi ? n.rackController.rack : null;\n }\n function Qs(n) {\n const e = gi(n);\n return e ? e.bcSet_ : null;\n }\n class Zs {\n constructor(e) {\n var t, l;\n this.onBladePositionsChange_ = this.onBladePositionsChange_.bind(this), this.onSetAdd_ = this.onSetAdd_.bind(this), this.onSetRemove_ = this.onSetRemove_.bind(this), this.onChildDispose_ = this.onChildDispose_.bind(this), this.onChildPositionsChange_ = this.onChildPositionsChange_.bind(this), this.onChildInputChange_ = this.onChildInputChange_.bind(this), this.onChildMonitorUpdate_ = this.onChildMonitorUpdate_.bind(this), this.onChildValueChange_ = this.onChildValueChange_.bind(this), this.onChildViewPropsChange_ = this.onChildViewPropsChange_.bind(this), this.onDescendantLayout_ = this.onDescendantLayout_.bind(this), this.onDescendantInputChange_ = this.onDescendantInputChange_.bind(this), this.onDescendantMonitorUpdate_ = this.onDescendantMonitorUpdate_.bind(this), this.emitter = new F(), this.blade_ = (t = e.blade) !== null && t !== void 0 ? t : null, (l = this.blade_) === null || l === void 0 || l.value(\"positions\").emitter.on(\"change\", this.onBladePositionsChange_), this.viewProps = e.viewProps, this.bcSet_ = new At(Qs), this.bcSet_.emitter.on(\"add\", this.onSetAdd_), this.bcSet_.emitter.on(\"remove\", this.onSetRemove_);\n }\n get children() {\n return this.bcSet_.items;\n }\n add(e, t) {\n var l;\n (l = e.parent) === null || l === void 0 || l.remove(e), C(e, \"parent\") ? e.parent = this : (e.parent_ = this, Ve({\n key: \"parent\",\n target: \"BladeController\",\n place: \"BladeRack.add\"\n })), this.bcSet_.add(e, t);\n }\n remove(e) {\n C(e, \"parent\") ? e.parent = null : (e.parent_ = null, Ve({\n key: \"parent\",\n target: \"BladeController\",\n place: \"BladeRack.remove\"\n })), this.bcSet_.remove(e);\n }\n find(e) {\n return this.bcSet_.allItems().filter((t) => t instanceof e);\n }\n onSetAdd_(e) {\n this.updatePositions_();\n const t = e.target === e.root;\n if (this.emitter.emit(\"add\", {\n bladeController: e.item,\n index: e.index,\n isRoot: t,\n sender: this\n }), !t)\n return;\n const l = e.item;\n if (l.viewProps.emitter.on(\"change\", this.onChildViewPropsChange_), l.blade.value(\"positions\").emitter.on(\"change\", this.onChildPositionsChange_), l.viewProps.handleDispose(this.onChildDispose_), l instanceof Fe)\n l.binding.emitter.on(\"change\", this.onChildInputChange_);\n else if (l instanceof rt)\n l.binding.emitter.on(\"update\", this.onChildMonitorUpdate_);\n else if (l instanceof ie)\n l.value.emitter.on(\"change\", this.onChildValueChange_);\n else {\n const v = gi(l);\n if (v) {\n const E = v.emitter;\n E.on(\"layout\", this.onDescendantLayout_), E.on(\"inputchange\", this.onDescendantInputChange_), E.on(\"monitorupdate\", this.onDescendantMonitorUpdate_);\n }\n }\n }\n onSetRemove_(e) {\n this.updatePositions_();\n const t = e.target === e.root;\n if (this.emitter.emit(\"remove\", {\n bladeController: e.item,\n isRoot: t,\n sender: this\n }), !t)\n return;\n const l = e.item;\n if (l instanceof Fe)\n l.binding.emitter.off(\"change\", this.onChildInputChange_);\n else if (l instanceof rt)\n l.binding.emitter.off(\"update\", this.onChildMonitorUpdate_);\n else if (l instanceof ie)\n l.value.emitter.off(\"change\", this.onChildValueChange_);\n else {\n const v = gi(l);\n if (v) {\n const E = v.emitter;\n E.off(\"layout\", this.onDescendantLayout_), E.off(\"inputchange\", this.onDescendantInputChange_), E.off(\"monitorupdate\", this.onDescendantMonitorUpdate_);\n }\n }\n }\n updatePositions_() {\n const e = this.bcSet_.items.filter((v) => !v.viewProps.get(\"hidden\")), t = e[0], l = e[e.length - 1];\n this.bcSet_.items.forEach((v) => {\n const E = [];\n v === t && (E.push(\"first\"), (!this.blade_ || this.blade_.get(\"positions\").includes(\"veryfirst\")) && E.push(\"veryfirst\")), v === l && (E.push(\"last\"), (!this.blade_ || this.blade_.get(\"positions\").includes(\"verylast\")) && E.push(\"verylast\")), v.blade.set(\"positions\", E);\n });\n }\n onChildPositionsChange_() {\n this.updatePositions_(), this.emitter.emit(\"layout\", {\n sender: this\n });\n }\n onChildViewPropsChange_(e) {\n this.updatePositions_(), this.emitter.emit(\"layout\", {\n sender: this\n });\n }\n onChildDispose_() {\n this.bcSet_.items.filter((t) => t.viewProps.get(\"disposed\")).forEach((t) => {\n this.bcSet_.remove(t);\n });\n }\n onChildInputChange_(e) {\n const t = Xs(this.find(Fe), e.sender);\n if (!t)\n throw S.alreadyDisposed();\n this.emitter.emit(\"inputchange\", {\n bladeController: t,\n options: e.options,\n sender: this\n });\n }\n onChildMonitorUpdate_(e) {\n const t = Ys(this.find(rt), e.sender);\n if (!t)\n throw S.alreadyDisposed();\n this.emitter.emit(\"monitorupdate\", {\n bladeController: t,\n sender: this\n });\n }\n onChildValueChange_(e) {\n const t = qs(this.find(ie), e.sender);\n if (!t)\n throw S.alreadyDisposed();\n this.emitter.emit(\"inputchange\", {\n bladeController: t,\n options: e.options,\n sender: this\n });\n }\n onDescendantLayout_(e) {\n this.updatePositions_(), this.emitter.emit(\"layout\", {\n sender: this\n });\n }\n onDescendantInputChange_(e) {\n this.emitter.emit(\"inputchange\", {\n bladeController: e.bladeController,\n options: e.options,\n sender: this\n });\n }\n onDescendantMonitorUpdate_(e) {\n this.emitter.emit(\"monitorupdate\", {\n bladeController: e.bladeController,\n sender: this\n });\n }\n onBladePositionsChange_() {\n this.updatePositions_();\n }\n }\n class hn extends kt {\n constructor(e, t) {\n super(Object.assign(Object.assign({}, t), { view: new $s(e, {\n viewName: \"brk\",\n viewProps: t.viewProps\n }) })), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this);\n const l = new Zs({\n blade: t.root ? void 0 : t.blade,\n viewProps: t.viewProps\n });\n l.emitter.on(\"add\", this.onRackAdd_), l.emitter.on(\"remove\", this.onRackRemove_), this.rack = l, this.viewProps.handleDispose(() => {\n for (let v = this.rack.children.length - 1; v >= 0; v--)\n this.rack.children[v].viewProps.set(\"disposed\", !0);\n });\n }\n onRackAdd_(e) {\n e.isRoot && Mt(this.view.element, e.bladeController.view.element, e.index);\n }\n onRackRemove_(e) {\n e.isRoot && Hn(e.bladeController.view.element);\n }\n }\n const is = D(\"cnt\");\n class Ws {\n constructor(e, t) {\n var l;\n this.className_ = D((l = t.viewName) !== null && l !== void 0 ? l : \"fld\"), this.element = e.createElement(\"div\"), this.element.classList.add(this.className_(), is()), t.viewProps.bindClassModifiers(this.element), this.foldable_ = t.foldable, this.foldable_.bindExpandedClass(this.element, this.className_(void 0, \"expanded\")), O(this.foldable_, \"completed\", K(this.element, this.className_(void 0, \"cpl\")));\n const v = e.createElement(\"button\");\n v.classList.add(this.className_(\"b\")), O(t.props, \"title\", (J) => {\n _(J) ? this.element.classList.add(this.className_(void 0, \"not\")) : this.element.classList.remove(this.className_(void 0, \"not\"));\n }), t.viewProps.bindDisabled(v), this.element.appendChild(v), this.buttonElement = v;\n const E = e.createElement(\"div\");\n E.classList.add(this.className_(\"i\")), this.element.appendChild(E);\n const k = e.createElement(\"div\");\n k.classList.add(this.className_(\"t\")), q(t.props.value(\"title\"), k), this.buttonElement.appendChild(k), this.titleElement = k;\n const B = e.createElement(\"div\");\n B.classList.add(this.className_(\"m\")), this.buttonElement.appendChild(B);\n const Q = t.containerElement;\n Q.classList.add(this.className_(\"c\")), this.element.appendChild(Q), this.containerElement = Q;\n }\n }\n class Xn extends bi {\n constructor(e, t) {\n var l;\n const v = De.create((l = t.expanded) !== null && l !== void 0 ? l : !0), E = new hn(e, {\n blade: t.blade,\n root: t.root,\n viewProps: t.viewProps\n });\n super(Object.assign(Object.assign({}, t), { rackController: E, view: new Ws(e, {\n containerElement: E.view.element,\n foldable: v,\n props: t.props,\n viewName: t.root ? \"rot\" : void 0,\n viewProps: t.viewProps\n }) })), this.onTitleClick_ = this.onTitleClick_.bind(this), this.props = t.props, this.foldable = v, Ue(this.foldable, this.view.containerElement), this.rackController.rack.emitter.on(\"add\", () => {\n this.foldable.cleanUpTransition();\n }), this.rackController.rack.emitter.on(\"remove\", () => {\n this.foldable.cleanUpTransition();\n }), this.view.buttonElement.addEventListener(\"click\", this.onTitleClick_);\n }\n get document() {\n return this.view.element.ownerDocument;\n }\n onTitleClick_() {\n this.foldable.set(\"expanded\", !this.foldable.get(\"expanded\"));\n }\n }\n const Js = {\n id: \"folder\",\n type: \"blade\",\n accept(n) {\n const e = M, t = le(n, {\n title: e.required.string,\n view: e.required.constant(\"folder\"),\n expanded: e.optional.boolean\n });\n return t ? { params: t } : null;\n },\n controller(n) {\n return new Xn(n.document, {\n blade: n.blade,\n expanded: n.params.expanded,\n props: X.fromObject({\n title: n.params.title\n }),\n viewProps: n.viewProps\n });\n },\n api(n) {\n return n.controller instanceof Xn ? new vi(n.controller, n.pool) : null;\n }\n };\n class Gt extends ie {\n constructor(e, t) {\n const l = t.valueController.viewProps;\n super(Object.assign(Object.assign({}, t), { value: t.valueController.value, view: new A(e, {\n props: t.props,\n viewProps: l\n }), viewProps: l })), this.props = t.props, this.valueController = t.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n class ss extends a {\n }\n const _i = D(\"spr\");\n class er {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(_i()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"hr\");\n l.classList.add(_i(\"r\")), this.element.appendChild(l);\n }\n }\n class dn extends kt {\n constructor(e, t) {\n super(Object.assign(Object.assign({}, t), { view: new er(e, {\n viewProps: t.viewProps\n }) }));\n }\n }\n const tr = {\n id: \"separator\",\n type: \"blade\",\n accept(n) {\n const t = le(n, {\n view: M.required.constant(\"separator\")\n });\n return t ? { params: t } : null;\n },\n controller(n) {\n return new dn(n.document, {\n blade: n.blade,\n viewProps: n.viewProps\n });\n },\n api(n) {\n return n.controller instanceof dn ? new ss(n.controller) : null;\n }\n }, Le = D(\"tbi\");\n class nr {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(Le()), t.viewProps.bindClassModifiers(this.element), O(t.props, \"selected\", (E) => {\n E ? this.element.classList.add(Le(void 0, \"sel\")) : this.element.classList.remove(Le(void 0, \"sel\"));\n });\n const l = e.createElement(\"button\");\n l.classList.add(Le(\"b\")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(Le(\"t\")), q(t.props.value(\"title\"), v), this.buttonElement.appendChild(v), this.titleElement = v;\n }\n }\n class Yn {\n constructor(e, t) {\n this.emitter = new F(), this.onClick_ = this.onClick_.bind(this), this.props = t.props, this.viewProps = t.viewProps, this.view = new nr(e, {\n props: t.props,\n viewProps: t.viewProps\n }), this.view.buttonElement.addEventListener(\"click\", this.onClick_);\n }\n onClick_() {\n this.emitter.emit(\"click\", {\n sender: this\n });\n }\n }\n class rs {\n constructor(e, t) {\n this.onItemClick_ = this.onItemClick_.bind(this), this.ic_ = new Yn(e, {\n props: t.itemProps,\n viewProps: Xe.create()\n }), this.ic_.emitter.on(\"click\", this.onItemClick_), this.cc_ = new hn(e, {\n blade: ye(),\n viewProps: Xe.create()\n }), this.props = t.props, O(this.props, \"selected\", (l) => {\n this.itemController.props.set(\"selected\", l), this.contentController.viewProps.set(\"hidden\", !l);\n });\n }\n get itemController() {\n return this.ic_;\n }\n get contentController() {\n return this.cc_;\n }\n onItemClick_() {\n this.props.set(\"selected\", !0);\n }\n }\n class wi {\n constructor(e, t) {\n this.controller_ = e, this.rackApi_ = t;\n }\n get title() {\n var e;\n return (e = this.controller_.itemController.props.get(\"title\")) !== null && e !== void 0 ? e : \"\";\n }\n set title(e) {\n this.controller_.itemController.props.set(\"title\", e);\n }\n get selected() {\n return this.controller_.props.get(\"selected\");\n }\n set selected(e) {\n this.controller_.props.set(\"selected\", e);\n }\n get children() {\n return this.rackApi_.children;\n }\n addButton(e) {\n return this.rackApi_.addButton(e);\n }\n addFolder(e) {\n return this.rackApi_.addFolder(e);\n }\n addSeparator(e) {\n return this.rackApi_.addSeparator(e);\n }\n addTab(e) {\n return this.rackApi_.addTab(e);\n }\n add(e, t) {\n this.rackApi_.add(e, t);\n }\n remove(e) {\n this.rackApi_.remove(e);\n }\n addInput(e, t, l) {\n return this.rackApi_.addInput(e, t, l);\n }\n addMonitor(e, t, l) {\n return this.rackApi_.addMonitor(e, t, l);\n }\n addBlade(e) {\n return this.rackApi_.addBlade(e);\n }\n }\n class os extends Ge {\n constructor(e, t) {\n super(e, new $n(e.rackController, t)), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.onSelect_ = this.onSelect_.bind(this), this.emitter_ = new F(), this.pageApiMap_ = /* @__PURE__ */ new Map(), this.rackApi_.on(\"change\", (l) => {\n this.emitter_.emit(\"change\", {\n event: l\n });\n }), this.rackApi_.on(\"update\", (l) => {\n this.emitter_.emit(\"update\", {\n event: l\n });\n }), this.controller_.tab.selectedIndex.emitter.on(\"change\", this.onSelect_), this.controller_.pageSet.emitter.on(\"add\", this.onPageAdd_), this.controller_.pageSet.emitter.on(\"remove\", this.onPageRemove_), this.controller_.pageSet.items.forEach((l) => {\n this.setUpPageApi_(l);\n });\n }\n get pages() {\n return this.controller_.pageSet.items.map((e) => {\n const t = this.pageApiMap_.get(e);\n if (!t)\n throw S.shouldNeverHappen();\n return t;\n });\n }\n addPage(e) {\n const t = this.controller_.view.element.ownerDocument, l = new rs(t, {\n itemProps: X.fromObject({\n selected: !1,\n title: e.title\n }),\n props: X.fromObject({\n selected: !1\n })\n });\n this.controller_.add(l, e.index);\n const v = this.pageApiMap_.get(l);\n if (!v)\n throw S.shouldNeverHappen();\n return v;\n }\n removePage(e) {\n this.controller_.remove(e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n setUpPageApi_(e) {\n const t = this.rackApi_.apiSet_.find((v) => v.controller_ === e.contentController);\n if (!t)\n throw S.shouldNeverHappen();\n const l = new wi(e, t);\n this.pageApiMap_.set(e, l);\n }\n onPageAdd_(e) {\n this.setUpPageApi_(e.item);\n }\n onPageRemove_(e) {\n if (!this.pageApiMap_.get(e.item))\n throw S.shouldNeverHappen();\n this.pageApiMap_.delete(e.item);\n }\n onSelect_(e) {\n this.emitter_.emit(\"select\", {\n event: new g(this, e.rawValue)\n });\n }\n }\n const as = -1;\n class ir {\n constructor() {\n this.onItemSelectedChange_ = this.onItemSelectedChange_.bind(this), this.empty = ee(!0), this.selectedIndex = ee(as), this.items_ = [];\n }\n add(e, t) {\n const l = t ?? this.items_.length;\n this.items_.splice(l, 0, e), e.emitter.on(\"change\", this.onItemSelectedChange_), this.keepSelection_();\n }\n remove(e) {\n const t = this.items_.indexOf(e);\n t < 0 || (this.items_.splice(t, 1), e.emitter.off(\"change\", this.onItemSelectedChange_), this.keepSelection_());\n }\n keepSelection_() {\n if (this.items_.length === 0) {\n this.selectedIndex.rawValue = as, this.empty.rawValue = !0;\n return;\n }\n const e = this.items_.findIndex((t) => t.rawValue);\n e < 0 ? (this.items_.forEach((t, l) => {\n t.rawValue = l === 0;\n }), this.selectedIndex.rawValue = 0) : (this.items_.forEach((t, l) => {\n t.rawValue = l === e;\n }), this.selectedIndex.rawValue = e), this.empty.rawValue = !1;\n }\n onItemSelectedChange_(e) {\n if (e.rawValue) {\n const t = this.items_.findIndex((l) => l === e.sender);\n this.items_.forEach((l, v) => {\n l.rawValue = v === t;\n }), this.selectedIndex.rawValue = t;\n } else\n this.keepSelection_();\n }\n }\n const Ht = D(\"tab\");\n class Kt {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(Ht(), is()), t.viewProps.bindClassModifiers(this.element), N(t.empty, K(this.element, Ht(void 0, \"nop\")));\n const l = e.createElement(\"div\");\n l.classList.add(Ht(\"t\")), this.element.appendChild(l), this.itemsElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(Ht(\"i\")), this.element.appendChild(v);\n const E = t.contentsElement;\n E.classList.add(Ht(\"c\")), this.element.appendChild(E), this.contentsElement = E;\n }\n }\n class mn extends bi {\n constructor(e, t) {\n const l = new hn(e, {\n blade: t.blade,\n viewProps: t.viewProps\n }), v = new ir();\n super({\n blade: t.blade,\n rackController: l,\n view: new Kt(e, {\n contentsElement: l.view.element,\n empty: v.empty,\n viewProps: t.viewProps\n })\n }), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.pageSet_ = new At(() => null), this.pageSet_.emitter.on(\"add\", this.onPageAdd_), this.pageSet_.emitter.on(\"remove\", this.onPageRemove_), this.tab = v;\n }\n get pageSet() {\n return this.pageSet_;\n }\n add(e, t) {\n this.pageSet_.add(e, t);\n }\n remove(e) {\n this.pageSet_.remove(this.pageSet_.items[e]);\n }\n onPageAdd_(e) {\n const t = e.item;\n Mt(this.view.itemsElement, t.itemController.view.element, e.index), t.itemController.viewProps.set(\"parent\", this.viewProps), this.rackController.rack.add(t.contentController, e.index), this.tab.add(t.props.value(\"selected\"));\n }\n onPageRemove_(e) {\n const t = e.item;\n Hn(t.itemController.view.element), t.itemController.viewProps.set(\"parent\", null), this.rackController.rack.remove(t.contentController), this.tab.remove(t.props.value(\"selected\"));\n }\n }\n const yi = {\n id: \"tab\",\n type: \"blade\",\n accept(n) {\n const e = M, t = le(n, {\n pages: e.required.array(e.required.object({ title: e.required.string })),\n view: e.required.constant(\"tab\")\n });\n return !t || t.pages.length === 0 ? null : { params: t };\n },\n controller(n) {\n const e = new mn(n.document, {\n blade: n.blade,\n viewProps: n.viewProps\n });\n return n.params.pages.forEach((t) => {\n const l = new rs(n.document, {\n itemProps: X.fromObject({\n selected: !1,\n title: t.title\n }),\n props: X.fromObject({\n selected: !1\n })\n });\n e.add(l);\n }), e;\n },\n api(n) {\n return n.controller instanceof mn ? new os(n.controller, n.pool) : null;\n }\n };\n function sr(n, e) {\n const t = n.accept(e.params);\n if (!t)\n return null;\n const l = M.optional.boolean(e.params.disabled).value, v = M.optional.boolean(e.params.hidden).value;\n return n.controller({\n blade: ye(),\n document: e.document,\n params: Object.assign(Object.assign({}, t.params), { disabled: l, hidden: v }),\n viewProps: Xe.create({\n disabled: l,\n hidden: v\n })\n });\n }\n class ls {\n constructor() {\n this.disabled = !1, this.emitter = new F();\n }\n dispose() {\n }\n tick() {\n this.disabled || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class xi {\n constructor(e, t) {\n this.disabled_ = !1, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = e, this.emitter = new F(), this.interval_ = t, this.setTimer_();\n }\n get disabled() {\n return this.disabled_;\n }\n set disabled(e) {\n this.disabled_ = e, this.disabled_ ? this.clearTimer_() : this.setTimer_();\n }\n dispose() {\n this.clearTimer_();\n }\n clearTimer_() {\n if (this.timerId_ === null)\n return;\n const e = this.doc_.defaultView;\n e && e.clearInterval(this.timerId_), this.timerId_ = null;\n }\n setTimer_() {\n if (this.clearTimer_(), this.interval_ <= 0)\n return;\n const e = this.doc_.defaultView;\n e && (this.timerId_ = e.setInterval(this.onTick_, this.interval_));\n }\n onTick_() {\n this.disabled_ || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class qn {\n constructor(e) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.reader = e.reader, this.writer = e.writer, this.emitter = new F(), this.value = e.value, this.value.emitter.on(\"change\", this.onValueChange_), this.target = e.target, this.read();\n }\n read() {\n const e = this.target.read();\n e !== void 0 && (this.value.rawValue = this.reader(e));\n }\n write_(e) {\n this.writer(this.target, e);\n }\n onValueChange_(e) {\n this.write_(e.rawValue), this.emitter.emit(\"change\", {\n options: e.options,\n rawValue: e.rawValue,\n sender: this\n });\n }\n }\n function Me(n, e) {\n for (; n.length < e; )\n n.push(void 0);\n }\n function cs(n) {\n const e = [];\n return Me(e, n), ee(e);\n }\n function $t(n) {\n const e = n.indexOf(void 0);\n return e < 0 ? n : n.slice(0, e);\n }\n function Ye(n, e) {\n const t = [...$t(n), e];\n return t.length > n.length ? t.splice(0, t.length - n.length) : Me(t, n.length), t;\n }\n class rr {\n constructor(e) {\n this.onTick_ = this.onTick_.bind(this), this.reader_ = e.reader, this.target = e.target, this.emitter = new F(), this.value = e.value, this.ticker = e.ticker, this.ticker.emitter.on(\"tick\", this.onTick_), this.read();\n }\n dispose() {\n this.ticker.dispose();\n }\n read() {\n const e = this.target.read();\n if (e === void 0)\n return;\n const t = this.value.rawValue, l = this.reader_(e);\n this.value.rawValue = Ye(t, l), this.emitter.emit(\"update\", {\n rawValue: l,\n sender: this\n });\n }\n onTick_(e) {\n this.read();\n }\n }\n class fn {\n constructor(e) {\n this.constraints = e;\n }\n constrain(e) {\n return this.constraints.reduce((t, l) => l.constrain(t), e);\n }\n }\n function et(n, e) {\n if (n instanceof e)\n return n;\n if (n instanceof fn) {\n const t = n.constraints.reduce((l, v) => l || (v instanceof e ? v : null), null);\n if (t)\n return t;\n }\n return null;\n }\n class Xt {\n constructor(e) {\n this.values = X.fromObject({\n max: e.max,\n min: e.min\n });\n }\n constrain(e) {\n const t = this.values.get(\"max\"), l = this.values.get(\"min\");\n return Math.min(Math.max(e, l), t);\n }\n }\n class vn {\n constructor(e) {\n this.values = X.fromObject({\n options: e\n });\n }\n get options() {\n return this.values.get(\"options\");\n }\n constrain(e) {\n const t = this.values.get(\"options\");\n return t.length === 0 || t.filter((v) => v.value === e).length > 0 ? e : t[0].value;\n }\n }\n class Ei {\n constructor(e) {\n this.values = X.fromObject({\n max: e.max,\n min: e.min\n });\n }\n get maxValue() {\n return this.values.get(\"max\");\n }\n get minValue() {\n return this.values.get(\"min\");\n }\n constrain(e) {\n const t = this.values.get(\"max\"), l = this.values.get(\"min\");\n let v = e;\n return _(l) || (v = Math.max(v, l)), _(t) || (v = Math.min(v, t)), v;\n }\n }\n class Qn {\n constructor(e, t = 0) {\n this.step = e, this.origin = t;\n }\n constrain(e) {\n const t = this.origin % this.step, l = Math.round((e - t) / this.step);\n return t + l * this.step;\n }\n }\n const Yt = D(\"lst\");\n class ps {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.props_ = t.props, this.element = e.createElement(\"div\"), this.element.classList.add(Yt()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"select\");\n l.classList.add(Yt(\"s\")), O(this.props_, \"options\", (E) => {\n cn(l), E.forEach((k, B) => {\n const Q = e.createElement(\"option\");\n Q.dataset.index = String(B), Q.textContent = k.text, Q.value = String(k.value), l.appendChild(Q);\n });\n }), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.selectElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(Yt(\"m\")), v.appendChild(yt(e, \"dropdown\")), this.element.appendChild(v), t.value.emitter.on(\"change\", this.onValueChange_), this.value_ = t.value, this.update_();\n }\n update_() {\n this.selectElement.value = String(this.value_.rawValue);\n }\n onValueChange_() {\n this.update_();\n }\n }\n class bn {\n constructor(e, t) {\n this.onSelectChange_ = this.onSelectChange_.bind(this), this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new ps(e, {\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.selectElement.addEventListener(\"change\", this.onSelectChange_);\n }\n onSelectChange_(e) {\n const l = e.currentTarget.selectedOptions.item(0);\n if (!l)\n return;\n const v = Number(l.dataset.index);\n this.value.rawValue = this.props.get(\"options\")[v].value;\n }\n }\n const us = D(\"pop\");\n class or {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(us()), t.viewProps.bindClassModifiers(this.element), N(t.shows, K(this.element, us(void 0, \"v\")));\n }\n }\n class hs {\n constructor(e, t) {\n this.shows = ee(!1), this.viewProps = t.viewProps, this.view = new or(e, {\n shows: this.shows,\n viewProps: this.viewProps\n });\n }\n }\n const ds = D(\"txt\");\n class ar {\n constructor(e, t) {\n this.onChange_ = this.onChange_.bind(this), this.element = e.createElement(\"div\"), this.element.classList.add(ds()), t.viewProps.bindClassModifiers(this.element), this.props_ = t.props, this.props_.emitter.on(\"change\", this.onChange_);\n const l = e.createElement(\"input\");\n l.classList.add(ds(\"i\")), l.type = \"text\", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on(\"change\", this.onChange_), this.value_ = t.value, this.refresh();\n }\n refresh() {\n const e = this.props_.get(\"formatter\");\n this.inputElement.value = e(this.value_.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class Zn {\n constructor(e, t) {\n this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = t.parser, this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new ar(e, {\n props: t.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_);\n }\n onInputChange_(e) {\n const l = e.currentTarget.value, v = this.parser_(l);\n _(v) || (this.value.rawValue = v), this.view.refresh();\n }\n }\n function lr(n) {\n return String(n);\n }\n function ms(n) {\n return n === \"false\" ? !1 : !!n;\n }\n function fs(n) {\n return lr(n);\n }\n class cr {\n constructor(e) {\n this.text = e;\n }\n evaluate() {\n return Number(this.text);\n }\n toString() {\n return this.text;\n }\n }\n const pr = {\n \"**\": (n, e) => Math.pow(n, e),\n \"*\": (n, e) => n * e,\n \"/\": (n, e) => n / e,\n \"%\": (n, e) => n % e,\n \"+\": (n, e) => n + e,\n \"-\": (n, e) => n - e,\n \"<<\": (n, e) => n << e,\n \">>\": (n, e) => n >> e,\n \">>>\": (n, e) => n >>> e,\n \"&\": (n, e) => n & e,\n \"^\": (n, e) => n ^ e,\n \"|\": (n, e) => n | e\n };\n class ur {\n constructor(e, t, l) {\n this.left = t, this.operator = e, this.right = l;\n }\n evaluate() {\n const e = pr[this.operator];\n if (!e)\n throw new Error(`unexpected binary operator: '${this.operator}`);\n return e(this.left.evaluate(), this.right.evaluate());\n }\n toString() {\n return [\n \"b(\",\n this.left.toString(),\n this.operator,\n this.right.toString(),\n \")\"\n ].join(\" \");\n }\n }\n const vs = {\n \"+\": (n) => n,\n \"-\": (n) => -n,\n \"~\": (n) => ~n\n };\n class hr {\n constructor(e, t) {\n this.operator = e, this.expression = t;\n }\n evaluate() {\n const e = vs[this.operator];\n if (!e)\n throw new Error(`unexpected unary operator: '${this.operator}`);\n return e(this.expression.evaluate());\n }\n toString() {\n return [\"u(\", this.operator, this.expression.toString(), \")\"].join(\" \");\n }\n }\n function Ci(n) {\n return (e, t) => {\n for (let l = 0; l < n.length; l++) {\n const v = n[l](e, t);\n if (v !== \"\")\n return v;\n }\n return \"\";\n };\n }\n function Lt(n, e) {\n var t;\n const l = n.substr(e).match(/^\\s+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function dr(n, e) {\n const t = n.substr(e, 1);\n return t.match(/^[1-9]$/) ? t : \"\";\n }\n function gn(n, e) {\n var t;\n const l = n.substr(e).match(/^[0-9]+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function mr(n, e) {\n const t = gn(n, e);\n if (t !== \"\")\n return t;\n const l = n.substr(e, 1);\n if (e += 1, l !== \"-\" && l !== \"+\")\n return \"\";\n const v = gn(n, e);\n return v === \"\" ? \"\" : l + v;\n }\n function ot(n, e) {\n const t = n.substr(e, 1);\n if (e += 1, t.toLowerCase() !== \"e\")\n return \"\";\n const l = mr(n, e);\n return l === \"\" ? \"\" : t + l;\n }\n function bs(n, e) {\n const t = n.substr(e, 1);\n if (t === \"0\")\n return t;\n const l = dr(n, e);\n return e += l.length, l === \"\" ? \"\" : l + gn(n, e);\n }\n function fr(n, e) {\n const t = bs(n, e);\n if (e += t.length, t === \"\")\n return \"\";\n const l = n.substr(e, 1);\n if (e += l.length, l !== \".\")\n return \"\";\n const v = gn(n, e);\n return e += v.length, t + l + v + ot(n, e);\n }\n function gs(n, e) {\n const t = n.substr(e, 1);\n if (e += t.length, t !== \".\")\n return \"\";\n const l = gn(n, e);\n return e += l.length, l === \"\" ? \"\" : t + l + ot(n, e);\n }\n function vr(n, e) {\n const t = bs(n, e);\n return e += t.length, t === \"\" ? \"\" : t + ot(n, e);\n }\n const _s = Ci([\n fr,\n gs,\n vr\n ]);\n function Pi(n, e) {\n var t;\n const l = n.substr(e).match(/^[01]+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function br(n, e) {\n const t = n.substr(e, 2);\n if (e += t.length, t.toLowerCase() !== \"0b\")\n return \"\";\n const l = Pi(n, e);\n return l === \"\" ? \"\" : t + l;\n }\n function ws(n, e) {\n var t;\n const l = n.substr(e).match(/^[0-7]+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function qe(n, e) {\n const t = n.substr(e, 2);\n if (e += t.length, t.toLowerCase() !== \"0o\")\n return \"\";\n const l = ws(n, e);\n return l === \"\" ? \"\" : t + l;\n }\n function gr(n, e) {\n var t;\n const l = n.substr(e).match(/^[0-9a-f]+/i);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function _r(n, e) {\n const t = n.substr(e, 2);\n if (e += t.length, t.toLowerCase() !== \"0x\")\n return \"\";\n const l = gr(n, e);\n return l === \"\" ? \"\" : t + l;\n }\n const Ti = Ci([\n br,\n qe,\n _r\n ]), wr = Ci([\n Ti,\n _s\n ]);\n function Et(n, e) {\n const t = wr(n, e);\n return e += t.length, t === \"\" ? null : {\n evaluable: new cr(t),\n cursor: e\n };\n }\n function ki(n, e) {\n const t = n.substr(e, 1);\n if (e += t.length, t !== \"(\")\n return null;\n const l = Wn(n, e);\n if (!l)\n return null;\n e = l.cursor, e += Lt(n, e).length;\n const v = n.substr(e, 1);\n return e += v.length, v !== \")\" ? null : {\n evaluable: l.evaluable,\n cursor: e\n };\n }\n function yr(n, e) {\n var t;\n return (t = Et(n, e)) !== null && t !== void 0 ? t : ki(n, e);\n }\n function Mi(n, e) {\n const t = yr(n, e);\n if (t)\n return t;\n const l = n.substr(e, 1);\n if (e += l.length, l !== \"+\" && l !== \"-\" && l !== \"~\")\n return null;\n const v = Mi(n, e);\n return v ? (e = v.cursor, {\n cursor: e,\n evaluable: new hr(l, v.evaluable)\n }) : null;\n }\n function xr(n, e, t) {\n t += Lt(e, t).length;\n const l = n.filter((v) => e.startsWith(v, t))[0];\n return l ? (t += l.length, t += Lt(e, t).length, {\n cursor: t,\n operator: l\n }) : null;\n }\n function Rt(n, e) {\n return (t, l) => {\n const v = n(t, l);\n if (!v)\n return null;\n l = v.cursor;\n let E = v.evaluable;\n for (; ; ) {\n const k = xr(e, t, l);\n if (!k)\n break;\n l = k.cursor;\n const B = n(t, l);\n if (!B)\n return null;\n l = B.cursor, E = new ur(k.operator, E, B.evaluable);\n }\n return E ? {\n cursor: l,\n evaluable: E\n } : null;\n };\n }\n const ys = [\n [\"**\"],\n [\"*\", \"/\", \"%\"],\n [\"+\", \"-\"],\n [\"<<\", \">>>\", \">>\"],\n [\"&\"],\n [\"^\"],\n [\"|\"]\n ].reduce((n, e) => Rt(n, e), Mi);\n function Wn(n, e) {\n return e += Lt(n, e).length, ys(n, e);\n }\n function xs(n) {\n const e = Wn(n, 0);\n return !e || e.cursor + Lt(n, e.cursor).length !== n.length ? null : e.evaluable;\n }\n function at(n) {\n var e;\n const t = xs(n);\n return (e = t == null ? void 0 : t.evaluate()) !== null && e !== void 0 ? e : null;\n }\n function vt(n) {\n if (typeof n == \"number\")\n return n;\n if (typeof n == \"string\") {\n const e = at(n);\n if (!_(e))\n return e;\n }\n return 0;\n }\n function Er(n) {\n return String(n);\n }\n function Re(n) {\n return (e) => e.toFixed(Math.max(Math.min(n, 20), 0));\n }\n const Es = Re(0);\n function _n(n) {\n return Es(n) + \"%\";\n }\n function Si(n) {\n return String(n);\n }\n function Ct(n) {\n return n;\n }\n function qt({ primary: n, secondary: e, forward: t, backward: l }) {\n let v = !1;\n function E(k) {\n v || (v = !0, k(), v = !1);\n }\n n.emitter.on(\"change\", (k) => {\n E(() => {\n e.setRawValue(t(n, e), k.options);\n });\n }), e.emitter.on(\"change\", (k) => {\n E(() => {\n n.setRawValue(l(n, e), k.options);\n }), E(() => {\n e.setRawValue(t(n, e), k.options);\n });\n }), E(() => {\n e.setRawValue(t(n, e), {\n forceEmit: !1,\n last: !0\n });\n });\n }\n function Oe(n, e) {\n const t = n * (e.altKey ? 0.1 : 1) * (e.shiftKey ? 10 : 1);\n return e.upKey ? +t : e.downKey ? -t : 0;\n }\n function wn(n) {\n return {\n altKey: n.altKey,\n downKey: n.key === \"ArrowDown\",\n shiftKey: n.shiftKey,\n upKey: n.key === \"ArrowUp\"\n };\n }\n function lt(n) {\n return {\n altKey: n.altKey,\n downKey: n.key === \"ArrowLeft\",\n shiftKey: n.shiftKey,\n upKey: n.key === \"ArrowRight\"\n };\n }\n function Cs(n) {\n return n === \"ArrowUp\" || n === \"ArrowDown\";\n }\n function Jn(n) {\n return Cs(n) || n === \"ArrowLeft\" || n === \"ArrowRight\";\n }\n function Ai(n, e) {\n var t, l;\n const v = e.ownerDocument.defaultView, E = e.getBoundingClientRect();\n return {\n x: n.pageX - (((t = v && v.scrollX) !== null && t !== void 0 ? t : 0) + E.left),\n y: n.pageY - (((l = v && v.scrollY) !== null && l !== void 0 ? l : 0) + E.top)\n };\n }\n class It {\n constructor(e) {\n this.lastTouch_ = null, this.onDocumentMouseMove_ = this.onDocumentMouseMove_.bind(this), this.onDocumentMouseUp_ = this.onDocumentMouseUp_.bind(this), this.onMouseDown_ = this.onMouseDown_.bind(this), this.onTouchEnd_ = this.onTouchEnd_.bind(this), this.onTouchMove_ = this.onTouchMove_.bind(this), this.onTouchStart_ = this.onTouchStart_.bind(this), this.elem_ = e, this.emitter = new F(), e.addEventListener(\"touchstart\", this.onTouchStart_, {\n passive: !1\n }), e.addEventListener(\"touchmove\", this.onTouchMove_, {\n passive: !0\n }), e.addEventListener(\"touchend\", this.onTouchEnd_), e.addEventListener(\"mousedown\", this.onMouseDown_);\n }\n computePosition_(e) {\n const t = this.elem_.getBoundingClientRect();\n return {\n bounds: {\n width: t.width,\n height: t.height\n },\n point: e ? {\n x: e.x,\n y: e.y\n } : null\n };\n }\n onMouseDown_(e) {\n var t;\n e.preventDefault(), (t = e.currentTarget) === null || t === void 0 || t.focus();\n const l = this.elem_.ownerDocument;\n l.addEventListener(\"mousemove\", this.onDocumentMouseMove_), l.addEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"down\", {\n altKey: e.altKey,\n data: this.computePosition_(Ai(e, this.elem_)),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n onDocumentMouseMove_(e) {\n this.emitter.emit(\"move\", {\n altKey: e.altKey,\n data: this.computePosition_(Ai(e, this.elem_)),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n onDocumentMouseUp_(e) {\n const t = this.elem_.ownerDocument;\n t.removeEventListener(\"mousemove\", this.onDocumentMouseMove_), t.removeEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"up\", {\n altKey: e.altKey,\n data: this.computePosition_(Ai(e, this.elem_)),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n onTouchStart_(e) {\n e.preventDefault();\n const t = e.targetTouches.item(0), l = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"down\", {\n altKey: e.altKey,\n data: this.computePosition_(t ? {\n x: t.clientX - l.left,\n y: t.clientY - l.top\n } : void 0),\n sender: this,\n shiftKey: e.shiftKey\n }), this.lastTouch_ = t;\n }\n onTouchMove_(e) {\n const t = e.targetTouches.item(0), l = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"move\", {\n altKey: e.altKey,\n data: this.computePosition_(t ? {\n x: t.clientX - l.left,\n y: t.clientY - l.top\n } : void 0),\n sender: this,\n shiftKey: e.shiftKey\n }), this.lastTouch_ = t;\n }\n onTouchEnd_(e) {\n var t;\n const l = (t = e.targetTouches.item(0)) !== null && t !== void 0 ? t : this.lastTouch_, v = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"up\", {\n altKey: e.altKey,\n data: this.computePosition_(l ? {\n x: l.clientX - v.left,\n y: l.clientY - v.top\n } : void 0),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n }\n function _e(n, e, t, l, v) {\n const E = (n - e) / (t - e);\n return l + E * (v - l);\n }\n function Li(n) {\n return String(n.toFixed(10)).split(\".\")[1].replace(/0+$/, \"\").length;\n }\n function Se(n, e, t) {\n return Math.min(Math.max(n, e), t);\n }\n function Qt(n, e) {\n return (n % e + e) % e;\n }\n const He = D(\"txt\");\n class Ri {\n constructor(e, t) {\n this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on(\"change\", this.onChange_), this.element = e.createElement(\"div\"), this.element.classList.add(He(), He(void 0, \"num\")), t.arrayPosition && this.element.classList.add(He(void 0, t.arrayPosition)), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"input\");\n l.classList.add(He(\"i\")), l.type = \"text\", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = t.dragging, this.dragging_.emitter.on(\"change\", this.onDraggingChange_), this.element.classList.add(He()), this.inputElement.classList.add(He(\"i\"));\n const v = e.createElement(\"div\");\n v.classList.add(He(\"k\")), this.element.appendChild(v), this.knobElement = v;\n const E = e.createElementNS(ze, \"svg\");\n E.classList.add(He(\"g\")), this.knobElement.appendChild(E);\n const k = e.createElementNS(ze, \"path\");\n k.classList.add(He(\"gb\")), E.appendChild(k), this.guideBodyElem_ = k;\n const B = e.createElementNS(ze, \"path\");\n B.classList.add(He(\"gh\")), E.appendChild(B), this.guideHeadElem_ = B;\n const Q = e.createElement(\"div\");\n Q.classList.add(D(\"tt\")()), this.knobElement.appendChild(Q), this.tooltipElem_ = Q, t.value.emitter.on(\"change\", this.onChange_), this.value = t.value, this.refresh();\n }\n onDraggingChange_(e) {\n if (e.rawValue === null) {\n this.element.classList.remove(He(void 0, \"drg\"));\n return;\n }\n this.element.classList.add(He(void 0, \"drg\"));\n const t = e.rawValue / this.props_.get(\"draggingScale\"), l = t + (t > 0 ? -1 : t < 0 ? 1 : 0), v = Se(-l, -4, 4);\n this.guideHeadElem_.setAttributeNS(null, \"d\", [`M ${l + v},0 L${l},4 L${l + v},8`, `M ${t},-1 L${t},9`].join(\" \")), this.guideBodyElem_.setAttributeNS(null, \"d\", `M 0,4 L${t},4`);\n const E = this.props_.get(\"formatter\");\n this.tooltipElem_.textContent = E(this.value.rawValue), this.tooltipElem_.style.left = `${t}px`;\n }\n refresh() {\n const e = this.props_.get(\"formatter\");\n this.inputElement.value = e(this.value.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class yn {\n constructor(e, t) {\n var l;\n this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.parser_ = t.parser, this.props = t.props, this.sliderProps_ = (l = t.sliderProps) !== null && l !== void 0 ? l : null, this.value = t.value, this.viewProps = t.viewProps, this.dragging_ = ee(null), this.view = new Ri(e, {\n arrayPosition: t.arrayPosition,\n dragging: this.dragging_,\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_), this.view.inputElement.addEventListener(\"keydown\", this.onInputKeyDown_), this.view.inputElement.addEventListener(\"keyup\", this.onInputKeyUp_);\n const v = new It(this.view.knobElement);\n v.emitter.on(\"down\", this.onPointerDown_), v.emitter.on(\"move\", this.onPointerMove_), v.emitter.on(\"up\", this.onPointerUp_);\n }\n constrainValue_(e) {\n var t, l;\n const v = (t = this.sliderProps_) === null || t === void 0 ? void 0 : t.get(\"minValue\"), E = (l = this.sliderProps_) === null || l === void 0 ? void 0 : l.get(\"maxValue\");\n let k = e;\n return v !== void 0 && (k = Math.max(k, v)), E !== void 0 && (k = Math.min(k, E)), k;\n }\n onInputChange_(e) {\n const l = e.currentTarget.value, v = this.parser_(l);\n _(v) || (this.value.rawValue = this.constrainValue_(v)), this.view.refresh();\n }\n onInputKeyDown_(e) {\n const t = Oe(this.baseStep_, wn(e));\n t !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + t), {\n forceEmit: !1,\n last: !1\n });\n }\n onInputKeyUp_(e) {\n Oe(this.baseStep_, wn(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n onPointerDown_() {\n this.originRawValue_ = this.value.rawValue, this.dragging_.rawValue = 0;\n }\n computeDraggingValue_(e) {\n if (!e.point)\n return null;\n const t = e.point.x - e.bounds.width / 2;\n return this.constrainValue_(this.originRawValue_ + t * this.props.get(\"draggingScale\"));\n }\n onPointerMove_(e) {\n const t = this.computeDraggingValue_(e.data);\n t !== null && (this.value.setRawValue(t, {\n forceEmit: !1,\n last: !1\n }), this.dragging_.rawValue = this.value.rawValue - this.originRawValue_);\n }\n onPointerUp_(e) {\n const t = this.computeDraggingValue_(e.data);\n t !== null && (this.value.setRawValue(t, {\n forceEmit: !0,\n last: !0\n }), this.dragging_.rawValue = null);\n }\n }\n const Ii = D(\"sld\");\n class Ke {\n constructor(e, t) {\n this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on(\"change\", this.onChange_), this.element = e.createElement(\"div\"), this.element.classList.add(Ii()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Ii(\"t\")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.trackElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(Ii(\"k\")), this.trackElement.appendChild(v), this.knobElement = v, t.value.emitter.on(\"change\", this.onChange_), this.value = t.value, this.update_();\n }\n update_() {\n const e = Se(_e(this.value.rawValue, this.props_.get(\"minValue\"), this.props_.get(\"maxValue\"), 0, 100), 0, 100);\n this.knobElement.style.width = `${e}%`;\n }\n onChange_() {\n this.update_();\n }\n }\n class Vi {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDownOrMove_ = this.onPointerDownOrMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.value = t.value, this.viewProps = t.viewProps, this.props = t.props, this.view = new Ke(e, {\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new It(this.view.trackElement), this.ptHandler_.emitter.on(\"down\", this.onPointerDownOrMove_), this.ptHandler_.emitter.on(\"move\", this.onPointerDownOrMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.trackElement.addEventListener(\"keydown\", this.onKeyDown_), this.view.trackElement.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n e.point && this.value.setRawValue(_e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, this.props.get(\"minValue\"), this.props.get(\"maxValue\")), t);\n }\n onPointerDownOrMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n const t = Oe(this.baseStep_, lt(e));\n t !== 0 && this.value.setRawValue(this.value.rawValue + t, {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n Oe(this.baseStep_, lt(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n const xn = D(\"sldtxt\");\n class Di {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(xn());\n const l = e.createElement(\"div\");\n l.classList.add(xn(\"s\")), this.sliderView_ = t.sliderView, l.appendChild(this.sliderView_.element), this.element.appendChild(l);\n const v = e.createElement(\"div\");\n v.classList.add(xn(\"t\")), this.textView_ = t.textView, v.appendChild(this.textView_.element), this.element.appendChild(v);\n }\n }\n class ei {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.sliderC_ = new Vi(e, {\n baseStep: t.baseStep,\n props: t.sliderProps,\n value: t.value,\n viewProps: this.viewProps\n }), this.textC_ = new yn(e, {\n baseStep: t.baseStep,\n parser: t.parser,\n props: t.textProps,\n sliderProps: t.sliderProps,\n value: t.value,\n viewProps: t.viewProps\n }), this.view = new Di(e, {\n sliderView: this.sliderC_.view,\n textView: this.textC_.view\n });\n }\n get sliderController() {\n return this.sliderC_;\n }\n get textController() {\n return this.textC_;\n }\n }\n function tt(n, e) {\n n.write(e);\n }\n function En(n) {\n const e = M;\n if (Array.isArray(n))\n return e.required.array(e.required.object({\n text: e.required.string,\n value: e.required.raw\n }))(n).value;\n if (typeof n == \"object\")\n return e.required.raw(n).value;\n }\n function Oi(n) {\n if (n === \"inline\" || n === \"popup\")\n return n;\n }\n function bt(n) {\n const e = M;\n return e.required.object({\n max: e.optional.number,\n min: e.optional.number,\n step: e.optional.number\n })(n).value;\n }\n function Ps(n) {\n if (Array.isArray(n))\n return n;\n const e = [];\n return Object.keys(n).forEach((t) => {\n e.push({ text: t, value: n[t] });\n }), e;\n }\n function Ni(n) {\n return _(n) ? null : new vn(Ps(n));\n }\n function Cr(n) {\n const e = n ? et(n, Qn) : null;\n return e ? e.step : null;\n }\n function ti(n, e) {\n const t = n && et(n, Qn);\n return t ? Li(t.step) : Math.max(Li(e), 2);\n }\n function Vt(n) {\n const e = Cr(n);\n return e ?? 1;\n }\n function Dt(n, e) {\n var t;\n const l = n && et(n, Qn), v = Math.abs((t = l == null ? void 0 : l.step) !== null && t !== void 0 ? t : e);\n return v === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(v)) - 1);\n }\n const Cn = D(\"ckb\");\n class Pn {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.element = e.createElement(\"div\"), this.element.classList.add(Cn()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"label\");\n l.classList.add(Cn(\"l\")), this.element.appendChild(l);\n const v = e.createElement(\"input\");\n v.classList.add(Cn(\"i\")), v.type = \"checkbox\", l.appendChild(v), this.inputElement = v, t.viewProps.bindDisabled(this.inputElement);\n const E = e.createElement(\"div\");\n E.classList.add(Cn(\"w\")), l.appendChild(E);\n const k = yt(e, \"check\");\n E.appendChild(k), t.value.emitter.on(\"change\", this.onValueChange_), this.value = t.value, this.update_();\n }\n update_() {\n this.inputElement.checked = this.value.rawValue;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Ts {\n constructor(e, t) {\n this.onInputChange_ = this.onInputChange_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Pn(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_);\n }\n onInputChange_(e) {\n const t = e.currentTarget;\n this.value.rawValue = t.checked;\n }\n }\n function ks(n) {\n const e = [], t = Ni(n.options);\n return t && e.push(t), new fn(e);\n }\n const ni = {\n id: \"input-bool\",\n type: \"input\",\n accept: (n, e) => {\n if (typeof n != \"boolean\")\n return null;\n const l = le(e, {\n options: M.optional.custom(En)\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => ms,\n constraint: (n) => ks(n.params),\n writer: (n) => tt\n },\n controller: (n) => {\n const e = n.document, t = n.value, l = n.constraint, v = l && et(l, vn);\n return v ? new bn(e, {\n props: new X({\n options: v.values.value(\"options\")\n }),\n value: t,\n viewProps: n.viewProps\n }) : new Ts(e, {\n value: t,\n viewProps: n.viewProps\n });\n }\n }, Ot = D(\"col\");\n class Fi {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(Ot()), t.foldable.bindExpandedClass(this.element, Ot(void 0, \"expanded\")), O(t.foldable, \"completed\", K(this.element, Ot(void 0, \"cpl\")));\n const l = e.createElement(\"div\");\n l.classList.add(Ot(\"h\")), this.element.appendChild(l);\n const v = e.createElement(\"div\");\n v.classList.add(Ot(\"s\")), l.appendChild(v), this.swatchElement = v;\n const E = e.createElement(\"div\");\n if (E.classList.add(Ot(\"t\")), l.appendChild(E), this.textElement = E, t.pickerLayout === \"inline\") {\n const k = e.createElement(\"div\");\n k.classList.add(Ot(\"p\")), this.element.appendChild(k), this.pickerElement = k;\n } else\n this.pickerElement = null;\n }\n }\n function Pr(n, e, t) {\n const l = Se(n / 255, 0, 1), v = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k = Math.max(l, v, E), B = Math.min(l, v, E), Q = k - B;\n let J = 0, de = 0;\n const ve = (B + k) / 2;\n return Q !== 0 && (de = Q / (1 - Math.abs(k + B - 1)), l === k ? J = (v - E) / Q : v === k ? J = 2 + (E - l) / Q : J = 4 + (l - v) / Q, J = J / 6 + (J < 0 ? 1 : 0)), [J * 360, de * 100, ve * 100];\n }\n function Tr(n, e, t) {\n const l = (n % 360 + 360) % 360, v = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k = (1 - Math.abs(2 * E - 1)) * v, B = k * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k / 2;\n let J, de, ve;\n return l >= 0 && l < 60 ? [J, de, ve] = [k, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k] : [J, de, ve] = [k, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255];\n }\n function kr(n, e, t) {\n const l = Se(n / 255, 0, 1), v = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k = Math.max(l, v, E), B = Math.min(l, v, E), Q = k - B;\n let J;\n Q === 0 ? J = 0 : k === l ? J = 60 * (((v - E) / Q % 6 + 6) % 6) : k === v ? J = 60 * ((E - l) / Q + 2) : J = 60 * ((l - v) / Q + 4);\n const de = k === 0 ? 0 : Q / k, ve = k;\n return [J, de * 100, ve * 100];\n }\n function Ms(n, e, t) {\n const l = Qt(n, 360), v = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k = E * v, B = k * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k;\n let J, de, ve;\n return l >= 0 && l < 60 ? [J, de, ve] = [k, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k] : [J, de, ve] = [k, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255];\n }\n function m(n, e, t) {\n const l = t + e * (100 - Math.abs(2 * t - 100)) / 200;\n return [\n n,\n l !== 0 ? e * (100 - Math.abs(2 * t - 100)) / l : 0,\n t + e * (100 - Math.abs(2 * t - 100)) / (2 * 100)\n ];\n }\n function o(n, e, t) {\n const l = 100 - Math.abs(t * (200 - e) / 100 - 100);\n return [n, l !== 0 ? e * t / l : 0, t * (200 - e) / (2 * 100)];\n }\n function p(n) {\n return [n[0], n[1], n[2]];\n }\n function f(n, e) {\n return [n[0], n[1], n[2], e];\n }\n const x = {\n hsl: {\n hsl: (n, e, t) => [n, e, t],\n hsv: m,\n rgb: Tr\n },\n hsv: {\n hsl: o,\n hsv: (n, e, t) => [n, e, t],\n rgb: Ms\n },\n rgb: {\n hsl: Pr,\n hsv: kr,\n rgb: (n, e, t) => [n, e, t]\n }\n };\n function P(n, e) {\n return [\n e === \"float\" ? 1 : n === \"rgb\" ? 255 : 360,\n e === \"float\" ? 1 : n === \"rgb\" ? 255 : 100,\n e === \"float\" ? 1 : n === \"rgb\" ? 255 : 100\n ];\n }\n function L(n, e) {\n return n === e ? e : Qt(n, e);\n }\n function z(n, e, t) {\n var l;\n const v = P(e, t);\n return [\n e === \"rgb\" ? Se(n[0], 0, v[0]) : L(n[0], v[0]),\n Se(n[1], 0, v[1]),\n Se(n[2], 0, v[2]),\n Se((l = n[3]) !== null && l !== void 0 ? l : 1, 0, 1)\n ];\n }\n function oe(n, e, t, l) {\n const v = P(e, t), E = P(e, l);\n return n.map((k, B) => k / v[B] * E[B]);\n }\n function Qe(n, e, t) {\n const l = oe(n, e.mode, e.type, \"int\"), v = x[e.mode][t.mode](...l);\n return oe(v, t.mode, \"int\", t.type);\n }\n function Ze(n, e) {\n return typeof n != \"object\" || _(n) ? !1 : e in n && typeof n[e] == \"number\";\n }\n class te {\n static black(e = \"int\") {\n return new te([0, 0, 0], \"rgb\", e);\n }\n static fromObject(e, t = \"int\") {\n const l = \"a\" in e ? [e.r, e.g, e.b, e.a] : [e.r, e.g, e.b];\n return new te(l, \"rgb\", t);\n }\n static toRgbaObject(e, t = \"int\") {\n return e.toRgbaObject(t);\n }\n static isRgbColorObject(e) {\n return Ze(e, \"r\") && Ze(e, \"g\") && Ze(e, \"b\");\n }\n static isRgbaColorObject(e) {\n return this.isRgbColorObject(e) && Ze(e, \"a\");\n }\n static isColorObject(e) {\n return this.isRgbColorObject(e);\n }\n static equals(e, t) {\n if (e.mode !== t.mode)\n return !1;\n const l = e.comps_, v = t.comps_;\n for (let E = 0; E < l.length; E++)\n if (l[E] !== v[E])\n return !1;\n return !0;\n }\n constructor(e, t, l = \"int\") {\n this.mode = t, this.type = l, this.comps_ = z(e, t, l);\n }\n getComponents(e, t = \"int\") {\n return f(Qe(p(this.comps_), { mode: this.mode, type: this.type }, { mode: e ?? this.mode, type: t }), this.comps_[3]);\n }\n toRgbaObject(e = \"int\") {\n const t = this.getComponents(\"rgb\", e);\n return {\n r: t[0],\n g: t[1],\n b: t[2],\n a: t[3]\n };\n }\n }\n const Pt = D(\"colp\");\n class Mr {\n constructor(e, t) {\n this.alphaViews_ = null, this.element = e.createElement(\"div\"), this.element.classList.add(Pt()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Pt(\"hsv\"));\n const v = e.createElement(\"div\");\n v.classList.add(Pt(\"sv\")), this.svPaletteView_ = t.svPaletteView, v.appendChild(this.svPaletteView_.element), l.appendChild(v);\n const E = e.createElement(\"div\");\n E.classList.add(Pt(\"h\")), this.hPaletteView_ = t.hPaletteView, E.appendChild(this.hPaletteView_.element), l.appendChild(E), this.element.appendChild(l);\n const k = e.createElement(\"div\");\n if (k.classList.add(Pt(\"rgb\")), this.textView_ = t.textView, k.appendChild(this.textView_.element), this.element.appendChild(k), t.alphaViews) {\n this.alphaViews_ = {\n palette: t.alphaViews.palette,\n text: t.alphaViews.text\n };\n const B = e.createElement(\"div\");\n B.classList.add(Pt(\"a\"));\n const Q = e.createElement(\"div\");\n Q.classList.add(Pt(\"ap\")), Q.appendChild(this.alphaViews_.palette.element), B.appendChild(Q);\n const J = e.createElement(\"div\");\n J.classList.add(Pt(\"at\")), J.appendChild(this.alphaViews_.text.element), B.appendChild(J), this.element.appendChild(B);\n }\n }\n get allFocusableElements() {\n const e = [\n this.svPaletteView_.element,\n this.hPaletteView_.element,\n this.textView_.modeSelectElement,\n ...this.textView_.textViews.map((t) => t.inputElement)\n ];\n return this.alphaViews_ && e.push(this.alphaViews_.palette.element, this.alphaViews_.text.inputElement), e;\n }\n }\n function il(n) {\n return n === \"int\" ? \"int\" : n === \"float\" ? \"float\" : void 0;\n }\n function Sr(n) {\n const e = M;\n return le(n, {\n alpha: e.optional.boolean,\n color: e.optional.object({\n alpha: e.optional.boolean,\n type: e.optional.custom(il)\n }),\n expanded: e.optional.boolean,\n picker: e.optional.custom(Oi)\n });\n }\n function Tn(n) {\n return n ? 0.1 : 1;\n }\n function kn(n) {\n var e;\n return (e = n.color) === null || e === void 0 ? void 0 : e.type;\n }\n function sl(n, e) {\n return n.alpha === e.alpha && n.mode === e.mode && n.notation === e.notation && n.type === e.type;\n }\n function ct(n, e) {\n const t = n.match(/^(.+)%$/);\n return Math.min(t ? parseFloat(t[1]) * 0.01 * e : parseFloat(n), e);\n }\n const rl = {\n deg: (n) => n,\n grad: (n) => n * 360 / 400,\n rad: (n) => n * 360 / (2 * Math.PI),\n turn: (n) => n * 360\n };\n function wo(n) {\n const e = n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);\n if (!e)\n return parseFloat(n);\n const t = parseFloat(e[1]), l = e[2];\n return rl[l](t);\n }\n function yo(n) {\n const e = n.match(/^rgb\\(\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n ct(e[1], 255),\n ct(e[2], 255),\n ct(e[3], 255)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t;\n }\n function xo(n) {\n return (e) => {\n const t = yo(e);\n return t ? new te(t, \"rgb\", n) : null;\n };\n }\n function Eo(n) {\n const e = n.match(/^rgba\\(\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n ct(e[1], 255),\n ct(e[2], 255),\n ct(e[3], 255),\n ct(e[4], 1)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t;\n }\n function Co(n) {\n return (e) => {\n const t = Eo(e);\n return t ? new te(t, \"rgb\", n) : null;\n };\n }\n function Po(n) {\n const e = n.match(/^hsl\\(\\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n wo(e[1]),\n ct(e[2], 100),\n ct(e[3], 100)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t;\n }\n function To(n) {\n return (e) => {\n const t = Po(e);\n return t ? new te(t, \"hsl\", n) : null;\n };\n }\n function ko(n) {\n const e = n.match(/^hsla\\(\\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n wo(e[1]),\n ct(e[2], 100),\n ct(e[3], 100),\n ct(e[4], 1)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t;\n }\n function Mo(n) {\n return (e) => {\n const t = ko(e);\n return t ? new te(t, \"hsl\", n) : null;\n };\n }\n function So(n) {\n const e = n.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);\n if (e)\n return [\n parseInt(e[1] + e[1], 16),\n parseInt(e[2] + e[2], 16),\n parseInt(e[3] + e[3], 16)\n ];\n const t = n.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);\n return t ? [\n parseInt(t[1], 16),\n parseInt(t[2], 16),\n parseInt(t[3], 16)\n ] : null;\n }\n function ol(n) {\n const e = So(n);\n return e ? new te(e, \"rgb\", \"int\") : null;\n }\n function Ao(n) {\n const e = n.match(/^#?([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);\n if (e)\n return [\n parseInt(e[1] + e[1], 16),\n parseInt(e[2] + e[2], 16),\n parseInt(e[3] + e[3], 16),\n _e(parseInt(e[4] + e[4], 16), 0, 255, 0, 1)\n ];\n const t = n.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);\n return t ? [\n parseInt(t[1], 16),\n parseInt(t[2], 16),\n parseInt(t[3], 16),\n _e(parseInt(t[4], 16), 0, 255, 0, 1)\n ] : null;\n }\n function al(n) {\n const e = Ao(n);\n return e ? new te(e, \"rgb\", \"int\") : null;\n }\n function Lo(n) {\n const e = n.match(/^\\{\\s*r\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*g\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*b\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*\\}$/);\n if (!e)\n return null;\n const t = [\n parseFloat(e[1]),\n parseFloat(e[2]),\n parseFloat(e[3])\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t;\n }\n function Ro(n) {\n return (e) => {\n const t = Lo(e);\n return t ? new te(t, \"rgb\", n) : null;\n };\n }\n function Io(n) {\n const e = n.match(/^\\{\\s*r\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*g\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*b\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*a\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*\\}$/);\n if (!e)\n return null;\n const t = [\n parseFloat(e[1]),\n parseFloat(e[2]),\n parseFloat(e[3]),\n parseFloat(e[4])\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t;\n }\n function Vo(n) {\n return (e) => {\n const t = Io(e);\n return t ? new te(t, \"rgb\", n) : null;\n };\n }\n const ll = [\n {\n parser: So,\n result: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"hex\"\n }\n },\n {\n parser: Ao,\n result: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"hex\"\n }\n },\n {\n parser: yo,\n result: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"func\"\n }\n },\n {\n parser: Eo,\n result: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"func\"\n }\n },\n {\n parser: Po,\n result: {\n alpha: !1,\n mode: \"hsl\",\n notation: \"func\"\n }\n },\n {\n parser: ko,\n result: {\n alpha: !0,\n mode: \"hsl\",\n notation: \"func\"\n }\n },\n {\n parser: Lo,\n result: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"object\"\n }\n },\n {\n parser: Io,\n result: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"object\"\n }\n }\n ];\n function cl(n) {\n return ll.reduce((e, { parser: t, result: l }) => e || (t(n) ? l : null), null);\n }\n function Ar(n, e = \"int\") {\n const t = cl(n);\n return t ? t.notation === \"hex\" && e !== \"float\" ? Object.assign(Object.assign({}, t), { type: \"int\" }) : t.notation === \"func\" ? Object.assign(Object.assign({}, t), { type: e }) : null : null;\n }\n const Do = {\n int: [\n ol,\n al,\n xo(\"int\"),\n Co(\"int\"),\n To(\"int\"),\n Mo(\"int\"),\n Ro(\"int\"),\n Vo(\"int\")\n ],\n float: [\n xo(\"float\"),\n Co(\"float\"),\n To(\"float\"),\n Mo(\"float\"),\n Ro(\"float\"),\n Vo(\"float\")\n ]\n };\n function pl(n) {\n const e = Do[n];\n return (t) => {\n if (typeof t != \"string\")\n return te.black(n);\n const l = e.reduce((v, E) => v || E(t), null);\n return l ?? te.black(n);\n };\n }\n function Lr(n) {\n const e = Do[n];\n return (t) => e.reduce((l, v) => l || v(t), null);\n }\n function Oo(n) {\n const e = Se(Math.floor(n), 0, 255).toString(16);\n return e.length === 1 ? `0${e}` : e;\n }\n function No(n, e = \"#\") {\n const t = p(n.getComponents(\"rgb\")).map(Oo).join(\"\");\n return `${e}${t}`;\n }\n function Rr(n, e = \"#\") {\n const t = n.getComponents(\"rgb\"), l = [t[0], t[1], t[2], t[3] * 255].map(Oo).join(\"\");\n return `${e}${l}`;\n }\n function Fo(n, e) {\n const t = Re(e === \"float\" ? 2 : 0);\n return `rgb(${p(n.getComponents(\"rgb\", e)).map((v) => t(v)).join(\", \")})`;\n }\n function ul(n) {\n return (e) => Fo(e, n);\n }\n function Ss(n, e) {\n const t = Re(2), l = Re(e === \"float\" ? 2 : 0);\n return `rgba(${n.getComponents(\"rgb\", e).map((E, k) => (k === 3 ? t : l)(E)).join(\", \")})`;\n }\n function hl(n) {\n return (e) => Ss(e, n);\n }\n function dl(n) {\n const e = [\n Re(0),\n _n,\n _n\n ];\n return `hsl(${p(n.getComponents(\"hsl\")).map((l, v) => e[v](l)).join(\", \")})`;\n }\n function ml(n) {\n const e = [\n Re(0),\n _n,\n _n,\n Re(2)\n ];\n return `hsla(${n.getComponents(\"hsl\").map((l, v) => e[v](l)).join(\", \")})`;\n }\n function Bo(n, e) {\n const t = Re(e === \"float\" ? 2 : 0), l = [\"r\", \"g\", \"b\"];\n return `{${p(n.getComponents(\"rgb\", e)).map((E, k) => `${l[k]}: ${t(E)}`).join(\", \")}}`;\n }\n function fl(n) {\n return (e) => Bo(e, n);\n }\n function jo(n, e) {\n const t = Re(2), l = Re(e === \"float\" ? 2 : 0), v = [\"r\", \"g\", \"b\", \"a\"];\n return `{${n.getComponents(\"rgb\", e).map((k, B) => {\n const Q = B === 3 ? t : l;\n return `${v[B]}: ${Q(k)}`;\n }).join(\", \")}}`;\n }\n function vl(n) {\n return (e) => jo(e, n);\n }\n const bl = [\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"hex\",\n type: \"int\"\n },\n stringifier: No\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"hex\",\n type: \"int\"\n },\n stringifier: Rr\n },\n {\n format: {\n alpha: !1,\n mode: \"hsl\",\n notation: \"func\",\n type: \"int\"\n },\n stringifier: dl\n },\n {\n format: {\n alpha: !0,\n mode: \"hsl\",\n notation: \"func\",\n type: \"int\"\n },\n stringifier: ml\n },\n ...[\"int\", \"float\"].reduce((n, e) => [\n ...n,\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"func\",\n type: e\n },\n stringifier: ul(e)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"func\",\n type: e\n },\n stringifier: hl(e)\n },\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"object\",\n type: e\n },\n stringifier: fl(e)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"object\",\n type: e\n },\n stringifier: vl(e)\n }\n ], [])\n ];\n function Ir(n) {\n return bl.reduce((e, t) => e || (sl(t.format, n) ? t.stringifier : null), null);\n }\n const Bi = D(\"apl\");\n class gl {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on(\"change\", this.onValueChange_), this.element = e.createElement(\"div\"), this.element.classList.add(Bi()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Bi(\"b\")), this.element.appendChild(l);\n const v = e.createElement(\"div\");\n v.classList.add(Bi(\"c\")), l.appendChild(v), this.colorElem_ = v;\n const E = e.createElement(\"div\");\n E.classList.add(Bi(\"m\")), this.element.appendChild(E), this.markerElem_ = E;\n const k = e.createElement(\"div\");\n k.classList.add(Bi(\"p\")), this.markerElem_.appendChild(k), this.previewElem_ = k, this.update_();\n }\n update_() {\n const e = this.value.rawValue, t = e.getComponents(\"rgb\"), l = new te([t[0], t[1], t[2], 0], \"rgb\"), v = new te([t[0], t[1], t[2], 255], \"rgb\"), E = [\n \"to right\",\n Ss(l),\n Ss(v)\n ];\n this.colorElem_.style.background = `linear-gradient(${E.join(\",\")})`, this.previewElem_.style.backgroundColor = Ss(e);\n const k = _e(t[3], 0, 1, 0, 100);\n this.markerElem_.style.left = `${k}%`;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class _l {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new gl(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new It(this.view.element), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = e.point.x / e.bounds.width, v = this.value.rawValue, [E, k, B] = v.getComponents(\"hsv\");\n this.value.setRawValue(new te([E, k, B, l], \"hsv\"), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n const t = Oe(Tn(!0), lt(e));\n if (t === 0)\n return;\n const l = this.value.rawValue, [v, E, k, B] = l.getComponents(\"hsv\");\n this.value.setRawValue(new te([v, E, k, B + t], \"hsv\"), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n Oe(Tn(!0), lt(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n const ii = D(\"coltxt\");\n function wl(n) {\n const e = n.createElement(\"select\"), t = [\n { text: \"RGB\", value: \"rgb\" },\n { text: \"HSL\", value: \"hsl\" },\n { text: \"HSV\", value: \"hsv\" }\n ];\n return e.appendChild(t.reduce((l, v) => {\n const E = n.createElement(\"option\");\n return E.textContent = v.text, E.value = v.value, l.appendChild(E), l;\n }, n.createDocumentFragment())), e;\n }\n class yl {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(ii()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(ii(\"m\")), this.modeElem_ = wl(e), this.modeElem_.classList.add(ii(\"ms\")), l.appendChild(this.modeSelectElement), t.viewProps.bindDisabled(this.modeElem_);\n const v = e.createElement(\"div\");\n v.classList.add(ii(\"mm\")), v.appendChild(yt(e, \"dropdown\")), l.appendChild(v), this.element.appendChild(l);\n const E = e.createElement(\"div\");\n E.classList.add(ii(\"w\")), this.element.appendChild(E), this.textsElem_ = E, this.textViews_ = t.textViews, this.applyTextViews_(), N(t.colorMode, (k) => {\n this.modeElem_.value = k;\n });\n }\n get modeSelectElement() {\n return this.modeElem_;\n }\n get textViews() {\n return this.textViews_;\n }\n set textViews(e) {\n this.textViews_ = e, this.applyTextViews_();\n }\n applyTextViews_() {\n cn(this.textsElem_);\n const e = this.element.ownerDocument;\n this.textViews_.forEach((t) => {\n const l = e.createElement(\"div\");\n l.classList.add(ii(\"c\")), l.appendChild(t.element), this.textsElem_.appendChild(l);\n });\n }\n }\n function xl(n) {\n return Re(n === \"float\" ? 2 : 0);\n }\n function El(n, e, t) {\n const l = P(n, e)[t];\n return new Xt({\n min: 0,\n max: l\n });\n }\n function Vr(n, e, t) {\n return new yn(n, {\n arrayPosition: t === 0 ? \"fst\" : t === 3 - 1 ? \"lst\" : \"mid\",\n baseStep: Tn(!1),\n parser: e.parser,\n props: X.fromObject({\n draggingScale: e.colorType === \"float\" ? 0.01 : 1,\n formatter: xl(e.colorType)\n }),\n value: ee(0, {\n constraint: El(e.colorMode, e.colorType, t)\n }),\n viewProps: e.viewProps\n });\n }\n class Cl {\n constructor(e, t) {\n this.onModeSelectChange_ = this.onModeSelectChange_.bind(this), this.colorType_ = t.colorType, this.parser_ = t.parser, this.value = t.value, this.viewProps = t.viewProps, this.colorMode = ee(this.value.rawValue.mode), this.ccs_ = this.createComponentControllers_(e), this.view = new yl(e, {\n colorMode: this.colorMode,\n textViews: [this.ccs_[0].view, this.ccs_[1].view, this.ccs_[2].view],\n viewProps: this.viewProps\n }), this.view.modeSelectElement.addEventListener(\"change\", this.onModeSelectChange_);\n }\n createComponentControllers_(e) {\n const t = {\n colorMode: this.colorMode.rawValue,\n colorType: this.colorType_,\n parser: this.parser_,\n viewProps: this.viewProps\n }, l = [\n Vr(e, t, 0),\n Vr(e, t, 1),\n Vr(e, t, 2)\n ];\n return l.forEach((v, E) => {\n qt({\n primary: this.value,\n secondary: v.value,\n forward: (k) => k.rawValue.getComponents(this.colorMode.rawValue, this.colorType_)[E],\n backward: (k, B) => {\n const Q = this.colorMode.rawValue, J = k.rawValue.getComponents(Q, this.colorType_);\n return J[E] = B.rawValue, new te(f(p(J), J[3]), Q, this.colorType_);\n }\n });\n }), l;\n }\n onModeSelectChange_(e) {\n const t = e.currentTarget;\n this.colorMode.rawValue = t.value, this.ccs_ = this.createComponentControllers_(this.view.element.ownerDocument), this.view.textViews = [\n this.ccs_[0].view,\n this.ccs_[1].view,\n this.ccs_[2].view\n ];\n }\n }\n const Dr = D(\"hpl\");\n class Pl {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on(\"change\", this.onValueChange_), this.element = e.createElement(\"div\"), this.element.classList.add(Dr()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Dr(\"c\")), this.element.appendChild(l);\n const v = e.createElement(\"div\");\n v.classList.add(Dr(\"m\")), this.element.appendChild(v), this.markerElem_ = v, this.update_();\n }\n update_() {\n const e = this.value.rawValue, [t] = e.getComponents(\"hsv\");\n this.markerElem_.style.backgroundColor = Fo(new te([t, 100, 100], \"hsv\"));\n const l = _e(t, 0, 360, 0, 100);\n this.markerElem_.style.left = `${l}%`;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Tl {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Pl(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new It(this.view.element), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = _e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, 0, 360), v = this.value.rawValue, [, E, k, B] = v.getComponents(\"hsv\");\n this.value.setRawValue(new te([l, E, k, B], \"hsv\"), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n const t = Oe(Tn(!1), lt(e));\n if (t === 0)\n return;\n const l = this.value.rawValue, [v, E, k, B] = l.getComponents(\"hsv\");\n this.value.setRawValue(new te([v + t, E, k, B], \"hsv\"), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n Oe(Tn(!1), lt(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n const Or = D(\"svp\"), zo = 64;\n class kl {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on(\"change\", this.onValueChange_), this.element = e.createElement(\"div\"), this.element.classList.add(Or()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element);\n const l = e.createElement(\"canvas\");\n l.height = zo, l.width = zo, l.classList.add(Or(\"c\")), this.element.appendChild(l), this.canvasElement = l;\n const v = e.createElement(\"div\");\n v.classList.add(Or(\"m\")), this.element.appendChild(v), this.markerElem_ = v, this.update_();\n }\n update_() {\n const e = Un(this.canvasElement);\n if (!e)\n return;\n const l = this.value.rawValue.getComponents(\"hsv\"), v = this.canvasElement.width, E = this.canvasElement.height, k = e.getImageData(0, 0, v, E), B = k.data;\n for (let de = 0; de < E; de++)\n for (let ve = 0; ve < v; ve++) {\n const Mn = _e(ve, 0, v, 0, 100), zi = _e(de, 0, E, 100, 0), Ui = Ms(l[0], Mn, zi), As = (de * v + ve) * 4;\n B[As] = Ui[0], B[As + 1] = Ui[1], B[As + 2] = Ui[2], B[As + 3] = 255;\n }\n e.putImageData(k, 0, 0);\n const Q = _e(l[1], 0, 100, 0, 100);\n this.markerElem_.style.left = `${Q}%`;\n const J = _e(l[2], 0, 100, 100, 0);\n this.markerElem_.style.top = `${J}%`;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Ml {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new kl(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new It(this.view.element), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = _e(e.point.x, 0, e.bounds.width, 0, 100), v = _e(e.point.y, 0, e.bounds.height, 100, 0), [E, , , k] = this.value.rawValue.getComponents(\"hsv\");\n this.value.setRawValue(new te([E, l, v, k], \"hsv\"), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n Jn(e.key) && e.preventDefault();\n const [t, l, v, E] = this.value.rawValue.getComponents(\"hsv\"), k = Tn(!1), B = Oe(k, lt(e)), Q = Oe(k, wn(e));\n B === 0 && Q === 0 || this.value.setRawValue(new te([t, l + B, v + Q, E], \"hsv\"), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n const t = Tn(!1), l = Oe(t, lt(e)), v = Oe(t, wn(e));\n l === 0 && v === 0 || this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n class Sl {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.hPaletteC_ = new Tl(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.svPaletteC_ = new Ml(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.alphaIcs_ = t.supportsAlpha ? {\n palette: new _l(e, {\n value: this.value,\n viewProps: this.viewProps\n }),\n text: new yn(e, {\n parser: at,\n baseStep: 0.1,\n props: X.fromObject({\n draggingScale: 0.01,\n formatter: Re(2)\n }),\n value: ee(0, {\n constraint: new Xt({ min: 0, max: 1 })\n }),\n viewProps: this.viewProps\n })\n } : null, this.alphaIcs_ && qt({\n primary: this.value,\n secondary: this.alphaIcs_.text.value,\n forward: (l) => l.rawValue.getComponents()[3],\n backward: (l, v) => {\n const E = l.rawValue.getComponents();\n return E[3] = v.rawValue, new te(E, l.rawValue.mode);\n }\n }), this.textC_ = new Cl(e, {\n colorType: t.colorType,\n parser: at,\n value: this.value,\n viewProps: this.viewProps\n }), this.view = new Mr(e, {\n alphaViews: this.alphaIcs_ ? {\n palette: this.alphaIcs_.palette.view,\n text: this.alphaIcs_.text.view\n } : null,\n hPaletteView: this.hPaletteC_.view,\n supportsAlpha: t.supportsAlpha,\n svPaletteView: this.svPaletteC_.view,\n textView: this.textC_.view,\n viewProps: this.viewProps\n });\n }\n get textController() {\n return this.textC_;\n }\n }\n const Nr = D(\"colsw\");\n class Al {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), t.value.emitter.on(\"change\", this.onValueChange_), this.value = t.value, this.element = e.createElement(\"div\"), this.element.classList.add(Nr()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Nr(\"sw\")), this.element.appendChild(l), this.swatchElem_ = l;\n const v = e.createElement(\"button\");\n v.classList.add(Nr(\"b\")), t.viewProps.bindDisabled(v), this.element.appendChild(v), this.buttonElement = v, this.update_();\n }\n update_() {\n const e = this.value.rawValue;\n this.swatchElem_.style.backgroundColor = Rr(e);\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Ll {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.view = new Al(e, {\n value: this.value,\n viewProps: this.viewProps\n });\n }\n }\n class Fr {\n constructor(e, t) {\n this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.swatchC_ = new Ll(e, {\n value: this.value,\n viewProps: this.viewProps\n });\n const l = this.swatchC_.view.buttonElement;\n l.addEventListener(\"blur\", this.onButtonBlur_), l.addEventListener(\"click\", this.onButtonClick_), this.textC_ = new Zn(e, {\n parser: t.parser,\n props: X.fromObject({\n formatter: t.formatter\n }),\n value: this.value,\n viewProps: this.viewProps\n }), this.view = new Fi(e, {\n foldable: this.foldable_,\n pickerLayout: t.pickerLayout\n }), this.view.swatchElement.appendChild(this.swatchC_.view.element), this.view.textElement.appendChild(this.textC_.view.element), this.popC_ = t.pickerLayout === \"popup\" ? new hs(e, {\n viewProps: this.viewProps\n }) : null;\n const v = new Sl(e, {\n colorType: t.colorType,\n supportsAlpha: t.supportsAlpha,\n value: this.value,\n viewProps: this.viewProps\n });\n v.view.allFocusableElements.forEach((E) => {\n E.addEventListener(\"blur\", this.onPopupChildBlur_), E.addEventListener(\"keydown\", this.onPopupChildKeydown_);\n }), this.pickerC_ = v, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(v.view.element), qt({\n primary: this.foldable_.value(\"expanded\"),\n secondary: this.popC_.shows,\n forward: (E) => E.rawValue,\n backward: (E, k) => k.rawValue\n })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Ue(this.foldable_, this.view.pickerElement));\n }\n get textController() {\n return this.textC_;\n }\n onButtonBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.view.element, l = e.relatedTarget;\n (!l || !t.contains(l)) && (this.popC_.shows.rawValue = !1);\n }\n onButtonClick_() {\n this.foldable_.set(\"expanded\", !this.foldable_.get(\"expanded\")), this.foldable_.get(\"expanded\") && this.pickerC_.view.allFocusableElements[0].focus();\n }\n onPopupChildBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.popC_.view.element, l = xt(e);\n l && t.contains(l) || l && l === this.swatchC_.view.buttonElement && !mt(t.ownerDocument) || (this.popC_.shows.rawValue = !1);\n }\n onPopupChildKeydown_(e) {\n this.popC_ ? e.key === \"Escape\" && (this.popC_.shows.rawValue = !1) : this.view.pickerElement && e.key === \"Escape\" && this.swatchC_.view.buttonElement.focus();\n }\n }\n function Rl(n, e) {\n return te.isColorObject(n) ? te.fromObject(n, e) : te.black(e);\n }\n function Il(n) {\n return p(n.getComponents(\"rgb\")).reduce((e, t) => e << 8 | Math.floor(t) & 255, 0);\n }\n function Vl(n) {\n return n.getComponents(\"rgb\").reduce((e, t, l) => {\n const v = Math.floor(l === 3 ? t * 255 : t) & 255;\n return e << 8 | v;\n }, 0) >>> 0;\n }\n function Dl(n) {\n return new te([n >> 16 & 255, n >> 8 & 255, n & 255], \"rgb\");\n }\n function Ol(n) {\n return new te([\n n >> 24 & 255,\n n >> 16 & 255,\n n >> 8 & 255,\n _e(n & 255, 0, 255, 0, 1)\n ], \"rgb\");\n }\n function Nl(n) {\n return typeof n != \"number\" ? te.black() : Dl(n);\n }\n function Fl(n) {\n return typeof n != \"number\" ? te.black() : Ol(n);\n }\n function Bl(n) {\n const e = Ir(n);\n return e ? (t, l) => {\n tt(t, e(l));\n } : null;\n }\n function jl(n) {\n const e = n ? Vl : Il;\n return (t, l) => {\n tt(t, e(l));\n };\n }\n function zl(n, e, t) {\n const l = e.toRgbaObject(t);\n n.writeProperty(\"r\", l.r), n.writeProperty(\"g\", l.g), n.writeProperty(\"b\", l.b), n.writeProperty(\"a\", l.a);\n }\n function Ul(n, e, t) {\n const l = e.toRgbaObject(t);\n n.writeProperty(\"r\", l.r), n.writeProperty(\"g\", l.g), n.writeProperty(\"b\", l.b);\n }\n function Gl(n, e) {\n return (t, l) => {\n n ? zl(t, l, e) : Ul(t, l, e);\n };\n }\n function Br(n) {\n var e;\n return !!(n != null && n.alpha || !((e = n == null ? void 0 : n.color) === null || e === void 0) && e.alpha);\n }\n function Hl(n) {\n return n ? (e) => Rr(e, \"0x\") : (e) => No(e, \"0x\");\n }\n function Kl(n) {\n return \"color\" in n || \"view\" in n && n.view === \"color\";\n }\n const $l = {\n id: \"input-color-number\",\n type: \"input\",\n accept: (n, e) => {\n if (typeof n != \"number\" || !Kl(e))\n return null;\n const t = Sr(e);\n return t ? {\n initialValue: n,\n params: t\n } : null;\n },\n binding: {\n reader: (n) => Br(n.params) ? Fl : Nl,\n equals: te.equals,\n writer: (n) => jl(Br(n.params))\n },\n controller: (n) => {\n const e = Br(n.params), t = \"expanded\" in n.params ? n.params.expanded : void 0, l = \"picker\" in n.params ? n.params.picker : void 0;\n return new Fr(n.document, {\n colorType: \"int\",\n expanded: t ?? !1,\n formatter: Hl(e),\n parser: Lr(\"int\"),\n pickerLayout: l ?? \"popup\",\n supportsAlpha: e,\n value: n.value,\n viewProps: n.viewProps\n });\n }\n };\n function Xl(n) {\n return te.isRgbaColorObject(n);\n }\n function Yl(n) {\n return (e) => Rl(e, n);\n }\n function ql(n, e) {\n return (t) => n ? jo(t, e) : Bo(t, e);\n }\n const Ql = {\n id: \"input-color-object\",\n type: \"input\",\n accept: (n, e) => {\n if (!te.isColorObject(n))\n return null;\n const t = Sr(e);\n return t ? {\n initialValue: n,\n params: t\n } : null;\n },\n binding: {\n reader: (n) => Yl(kn(n.params)),\n equals: te.equals,\n writer: (n) => Gl(Xl(n.initialValue), kn(n.params))\n },\n controller: (n) => {\n var e;\n const t = te.isRgbaColorObject(n.initialValue), l = \"expanded\" in n.params ? n.params.expanded : void 0, v = \"picker\" in n.params ? n.params.picker : void 0, E = (e = kn(n.params)) !== null && e !== void 0 ? e : \"int\";\n return new Fr(n.document, {\n colorType: E,\n expanded: l ?? !1,\n formatter: ql(t, E),\n parser: Lr(E),\n pickerLayout: v ?? \"popup\",\n supportsAlpha: t,\n value: n.value,\n viewProps: n.viewProps\n });\n }\n }, Zl = {\n id: \"input-color-string\",\n type: \"input\",\n accept: (n, e) => {\n if (typeof n != \"string\" || \"view\" in e && e.view === \"text\")\n return null;\n const t = Ar(n, kn(e));\n if (!t || !Ir(t))\n return null;\n const v = Sr(e);\n return v ? {\n initialValue: n,\n params: v\n } : null;\n },\n binding: {\n reader: (n) => {\n var e;\n return pl((e = kn(n.params)) !== null && e !== void 0 ? e : \"int\");\n },\n equals: te.equals,\n writer: (n) => {\n const e = Ar(n.initialValue, kn(n.params));\n if (!e)\n throw S.shouldNeverHappen();\n const t = Bl(e);\n if (!t)\n throw S.notBindable();\n return t;\n }\n },\n controller: (n) => {\n const e = Ar(n.initialValue, kn(n.params));\n if (!e)\n throw S.shouldNeverHappen();\n const t = Ir(e);\n if (!t)\n throw S.shouldNeverHappen();\n const l = \"expanded\" in n.params ? n.params.expanded : void 0, v = \"picker\" in n.params ? n.params.picker : void 0;\n return new Fr(n.document, {\n colorType: e.type,\n expanded: l ?? !1,\n formatter: t,\n parser: Lr(e.type),\n pickerLayout: v ?? \"popup\",\n supportsAlpha: e.alpha,\n value: n.value,\n viewProps: n.viewProps\n });\n }\n };\n class Zt {\n constructor(e) {\n this.components = e.components, this.asm_ = e.assembly;\n }\n constrain(e) {\n const t = this.asm_.toComponents(e).map((l, v) => {\n var E, k;\n return (k = (E = this.components[v]) === null || E === void 0 ? void 0 : E.constrain(l)) !== null && k !== void 0 ? k : l;\n });\n return this.asm_.fromComponents(t);\n }\n }\n const Uo = D(\"pndtxt\");\n class Wl {\n constructor(e, t) {\n this.textViews = t.textViews, this.element = e.createElement(\"div\"), this.element.classList.add(Uo()), this.textViews.forEach((l) => {\n const v = e.createElement(\"div\");\n v.classList.add(Uo(\"a\")), v.appendChild(l.element), this.element.appendChild(v);\n });\n }\n }\n function Jl(n, e, t) {\n return new yn(n, {\n arrayPosition: t === 0 ? \"fst\" : t === e.axes.length - 1 ? \"lst\" : \"mid\",\n baseStep: e.axes[t].baseStep,\n parser: e.parser,\n props: e.axes[t].textProps,\n value: ee(0, {\n constraint: e.axes[t].constraint\n }),\n viewProps: e.viewProps\n });\n }\n class jr {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.acs_ = t.axes.map((l, v) => Jl(e, t, v)), this.acs_.forEach((l, v) => {\n qt({\n primary: this.value,\n secondary: l.value,\n forward: (E) => t.assembly.toComponents(E.rawValue)[v],\n backward: (E, k) => {\n const B = t.assembly.toComponents(E.rawValue);\n return B[v] = k.rawValue, t.assembly.fromComponents(B);\n }\n });\n }), this.view = new Wl(e, {\n textViews: this.acs_.map((l) => l.view)\n });\n }\n }\n function Go(n, e) {\n return \"step\" in n && !_(n.step) ? new Qn(n.step, e) : null;\n }\n function Ho(n) {\n return !_(n.max) && !_(n.min) ? new Xt({\n max: n.max,\n min: n.min\n }) : !_(n.max) || !_(n.min) ? new Ei({\n max: n.max,\n min: n.min\n }) : null;\n }\n function ec(n) {\n const e = et(n, Xt);\n if (e)\n return [e.values.get(\"min\"), e.values.get(\"max\")];\n const t = et(n, Ei);\n return t ? [t.minValue, t.maxValue] : [void 0, void 0];\n }\n function tc(n, e) {\n const t = [], l = Go(n, e);\n l && t.push(l);\n const v = Ho(n);\n v && t.push(v);\n const E = Ni(n.options);\n return E && t.push(E), new fn(t);\n }\n const nc = {\n id: \"input-number\",\n type: \"input\",\n accept: (n, e) => {\n if (typeof n != \"number\")\n return null;\n const t = M, l = le(e, {\n format: t.optional.function,\n max: t.optional.number,\n min: t.optional.number,\n options: t.optional.custom(En),\n step: t.optional.number\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => vt,\n constraint: (n) => tc(n.params, n.initialValue),\n writer: (n) => tt\n },\n controller: (n) => {\n var e;\n const t = n.value, l = n.constraint, v = l && et(l, vn);\n if (v)\n return new bn(n.document, {\n props: new X({\n options: v.values.value(\"options\")\n }),\n value: t,\n viewProps: n.viewProps\n });\n const E = (e = \"format\" in n.params ? n.params.format : void 0) !== null && e !== void 0 ? e : Re(ti(l, t.rawValue)), k = l && et(l, Xt);\n return k ? new ei(n.document, {\n baseStep: Vt(l),\n parser: at,\n sliderProps: new X({\n maxValue: k.values.value(\"max\"),\n minValue: k.values.value(\"min\")\n }),\n textProps: X.fromObject({\n draggingScale: Dt(l, t.rawValue),\n formatter: E\n }),\n value: t,\n viewProps: n.viewProps\n }) : new yn(n.document, {\n baseStep: Vt(l),\n parser: at,\n props: X.fromObject({\n draggingScale: Dt(l, t.rawValue),\n formatter: E\n }),\n value: t,\n viewProps: n.viewProps\n });\n }\n };\n class Wt {\n constructor(e = 0, t = 0) {\n this.x = e, this.y = t;\n }\n getComponents() {\n return [this.x, this.y];\n }\n static isObject(e) {\n if (_(e))\n return !1;\n const t = e.x, l = e.y;\n return !(typeof t != \"number\" || typeof l != \"number\");\n }\n static equals(e, t) {\n return e.x === t.x && e.y === t.y;\n }\n toObject() {\n return {\n x: this.x,\n y: this.y\n };\n }\n }\n const Ko = {\n toComponents: (n) => n.getComponents(),\n fromComponents: (n) => new Wt(...n)\n }, si = D(\"p2d\");\n class ic {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(si()), t.viewProps.bindClassModifiers(this.element), N(t.expanded, K(this.element, si(void 0, \"expanded\")));\n const l = e.createElement(\"div\");\n l.classList.add(si(\"h\")), this.element.appendChild(l);\n const v = e.createElement(\"button\");\n v.classList.add(si(\"b\")), v.appendChild(yt(e, \"p2dpad\")), t.viewProps.bindDisabled(v), l.appendChild(v), this.buttonElement = v;\n const E = e.createElement(\"div\");\n if (E.classList.add(si(\"t\")), l.appendChild(E), this.textElement = E, t.pickerLayout === \"inline\") {\n const k = e.createElement(\"div\");\n k.classList.add(si(\"p\")), this.element.appendChild(k), this.pickerElement = k;\n } else\n this.pickerElement = null;\n }\n }\n const Jt = D(\"p2dp\");\n class sc {\n constructor(e, t) {\n this.onFoldableChange_ = this.onFoldableChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.invertsY_ = t.invertsY, this.maxValue_ = t.maxValue, this.element = e.createElement(\"div\"), this.element.classList.add(Jt()), t.layout === \"popup\" && this.element.classList.add(Jt(void 0, \"p\")), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Jt(\"p\")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.padElement = l;\n const v = e.createElementNS(ze, \"svg\");\n v.classList.add(Jt(\"g\")), this.padElement.appendChild(v), this.svgElem_ = v;\n const E = e.createElementNS(ze, \"line\");\n E.classList.add(Jt(\"ax\")), E.setAttributeNS(null, \"x1\", \"0\"), E.setAttributeNS(null, \"y1\", \"50%\"), E.setAttributeNS(null, \"x2\", \"100%\"), E.setAttributeNS(null, \"y2\", \"50%\"), this.svgElem_.appendChild(E);\n const k = e.createElementNS(ze, \"line\");\n k.classList.add(Jt(\"ax\")), k.setAttributeNS(null, \"x1\", \"50%\"), k.setAttributeNS(null, \"y1\", \"0\"), k.setAttributeNS(null, \"x2\", \"50%\"), k.setAttributeNS(null, \"y2\", \"100%\"), this.svgElem_.appendChild(k);\n const B = e.createElementNS(ze, \"line\");\n B.classList.add(Jt(\"l\")), B.setAttributeNS(null, \"x1\", \"50%\"), B.setAttributeNS(null, \"y1\", \"50%\"), this.svgElem_.appendChild(B), this.lineElem_ = B;\n const Q = e.createElement(\"div\");\n Q.classList.add(Jt(\"m\")), this.padElement.appendChild(Q), this.markerElem_ = Q, t.value.emitter.on(\"change\", this.onValueChange_), this.value = t.value, this.update_();\n }\n get allFocusableElements() {\n return [this.padElement];\n }\n update_() {\n const [e, t] = this.value.rawValue.getComponents(), l = this.maxValue_, v = _e(e, -l, +l, 0, 100), E = _e(t, -l, +l, 0, 100), k = this.invertsY_ ? 100 - E : E;\n this.lineElem_.setAttributeNS(null, \"x2\", `${v}%`), this.lineElem_.setAttributeNS(null, \"y2\", `${k}%`), this.markerElem_.style.left = `${v}%`, this.markerElem_.style.top = `${k}%`;\n }\n onValueChange_() {\n this.update_();\n }\n onFoldableChange_() {\n this.update_();\n }\n }\n function $o(n, e, t) {\n return [\n Oe(e[0], lt(n)),\n Oe(e[1], wn(n)) * (t ? 1 : -1)\n ];\n }\n class rc {\n constructor(e, t) {\n this.onPadKeyDown_ = this.onPadKeyDown_.bind(this), this.onPadKeyUp_ = this.onPadKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.baseSteps_ = t.baseSteps, this.maxValue_ = t.maxValue, this.invertsY_ = t.invertsY, this.view = new sc(e, {\n invertsY: this.invertsY_,\n layout: t.layout,\n maxValue: this.maxValue_,\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new It(this.view.padElement), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.padElement.addEventListener(\"keydown\", this.onPadKeyDown_), this.view.padElement.addEventListener(\"keyup\", this.onPadKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = this.maxValue_, v = _e(e.point.x, 0, e.bounds.width, -l, +l), E = _e(this.invertsY_ ? e.bounds.height - e.point.y : e.point.y, 0, e.bounds.height, -l, +l);\n this.value.setRawValue(new Wt(v, E), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onPadKeyDown_(e) {\n Jn(e.key) && e.preventDefault();\n const [t, l] = $o(e, this.baseSteps_, this.invertsY_);\n t === 0 && l === 0 || this.value.setRawValue(new Wt(this.value.rawValue.x + t, this.value.rawValue.y + l), {\n forceEmit: !1,\n last: !1\n });\n }\n onPadKeyUp_(e) {\n const [t, l] = $o(e, this.baseSteps_, this.invertsY_);\n t === 0 && l === 0 || this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n class oc {\n constructor(e, t) {\n var l, v;\n this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.onPadButtonBlur_ = this.onPadButtonBlur_.bind(this), this.onPadButtonClick_ = this.onPadButtonClick_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.popC_ = t.pickerLayout === \"popup\" ? new hs(e, {\n viewProps: this.viewProps\n }) : null;\n const E = new rc(e, {\n baseSteps: [t.axes[0].baseStep, t.axes[1].baseStep],\n invertsY: t.invertsY,\n layout: t.pickerLayout,\n maxValue: t.maxValue,\n value: this.value,\n viewProps: this.viewProps\n });\n E.view.allFocusableElements.forEach((k) => {\n k.addEventListener(\"blur\", this.onPopupChildBlur_), k.addEventListener(\"keydown\", this.onPopupChildKeydown_);\n }), this.pickerC_ = E, this.textC_ = new jr(e, {\n assembly: Ko,\n axes: t.axes,\n parser: t.parser,\n value: this.value,\n viewProps: this.viewProps\n }), this.view = new ic(e, {\n expanded: this.foldable_.value(\"expanded\"),\n pickerLayout: t.pickerLayout,\n viewProps: this.viewProps\n }), this.view.textElement.appendChild(this.textC_.view.element), (l = this.view.buttonElement) === null || l === void 0 || l.addEventListener(\"blur\", this.onPadButtonBlur_), (v = this.view.buttonElement) === null || v === void 0 || v.addEventListener(\"click\", this.onPadButtonClick_), this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), qt({\n primary: this.foldable_.value(\"expanded\"),\n secondary: this.popC_.shows,\n forward: (k) => k.rawValue,\n backward: (k, B) => B.rawValue\n })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Ue(this.foldable_, this.view.pickerElement));\n }\n onPadButtonBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.view.element, l = e.relatedTarget;\n (!l || !t.contains(l)) && (this.popC_.shows.rawValue = !1);\n }\n onPadButtonClick_() {\n this.foldable_.set(\"expanded\", !this.foldable_.get(\"expanded\")), this.foldable_.get(\"expanded\") && this.pickerC_.view.allFocusableElements[0].focus();\n }\n onPopupChildBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.popC_.view.element, l = xt(e);\n l && t.contains(l) || l && l === this.view.buttonElement && !mt(t.ownerDocument) || (this.popC_.shows.rawValue = !1);\n }\n onPopupChildKeydown_(e) {\n this.popC_ ? e.key === \"Escape\" && (this.popC_.shows.rawValue = !1) : this.view.pickerElement && e.key === \"Escape\" && this.view.buttonElement.focus();\n }\n }\n class ri {\n constructor(e = 0, t = 0, l = 0) {\n this.x = e, this.y = t, this.z = l;\n }\n getComponents() {\n return [this.x, this.y, this.z];\n }\n static isObject(e) {\n if (_(e))\n return !1;\n const t = e.x, l = e.y, v = e.z;\n return !(typeof t != \"number\" || typeof l != \"number\" || typeof v != \"number\");\n }\n static equals(e, t) {\n return e.x === t.x && e.y === t.y && e.z === t.z;\n }\n toObject() {\n return {\n x: this.x,\n y: this.y,\n z: this.z\n };\n }\n }\n const Xo = {\n toComponents: (n) => n.getComponents(),\n fromComponents: (n) => new ri(...n)\n };\n function ac(n) {\n return ri.isObject(n) ? new ri(n.x, n.y, n.z) : new ri();\n }\n function lc(n, e) {\n n.writeProperty(\"x\", e.x), n.writeProperty(\"y\", e.y), n.writeProperty(\"z\", e.z);\n }\n function cc(n, e) {\n return new Zt({\n assembly: Xo,\n components: [\n Nt(\"x\" in n ? n.x : void 0, e.x),\n Nt(\"y\" in n ? n.y : void 0, e.y),\n Nt(\"z\" in n ? n.z : void 0, e.z)\n ]\n });\n }\n function zr(n, e) {\n return {\n baseStep: Vt(e),\n constraint: e,\n textProps: X.fromObject({\n draggingScale: Dt(e, n),\n formatter: Re(ti(e, n))\n })\n };\n }\n const pc = {\n id: \"input-point3d\",\n type: \"input\",\n accept: (n, e) => {\n if (!ri.isObject(n))\n return null;\n const t = M, l = le(e, {\n x: t.optional.custom(bt),\n y: t.optional.custom(bt),\n z: t.optional.custom(bt)\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => ac,\n constraint: (n) => cc(n.params, n.initialValue),\n equals: ri.equals,\n writer: (n) => lc\n },\n controller: (n) => {\n const e = n.value, t = n.constraint;\n if (!(t instanceof Zt))\n throw S.shouldNeverHappen();\n return new jr(n.document, {\n assembly: Xo,\n axes: [\n zr(e.rawValue.x, t.components[0]),\n zr(e.rawValue.y, t.components[1]),\n zr(e.rawValue.z, t.components[2])\n ],\n parser: at,\n value: e,\n viewProps: n.viewProps\n });\n }\n };\n class oi {\n constructor(e = 0, t = 0, l = 0, v = 0) {\n this.x = e, this.y = t, this.z = l, this.w = v;\n }\n getComponents() {\n return [this.x, this.y, this.z, this.w];\n }\n static isObject(e) {\n if (_(e))\n return !1;\n const t = e.x, l = e.y, v = e.z, E = e.w;\n return !(typeof t != \"number\" || typeof l != \"number\" || typeof v != \"number\" || typeof E != \"number\");\n }\n static equals(e, t) {\n return e.x === t.x && e.y === t.y && e.z === t.z && e.w === t.w;\n }\n toObject() {\n return {\n x: this.x,\n y: this.y,\n z: this.z,\n w: this.w\n };\n }\n }\n const Yo = {\n toComponents: (n) => n.getComponents(),\n fromComponents: (n) => new oi(...n)\n };\n function uc(n) {\n return oi.isObject(n) ? new oi(n.x, n.y, n.z, n.w) : new oi();\n }\n function hc(n, e) {\n n.writeProperty(\"x\", e.x), n.writeProperty(\"y\", e.y), n.writeProperty(\"z\", e.z), n.writeProperty(\"w\", e.w);\n }\n function dc(n, e) {\n return new Zt({\n assembly: Yo,\n components: [\n Nt(\"x\" in n ? n.x : void 0, e.x),\n Nt(\"y\" in n ? n.y : void 0, e.y),\n Nt(\"z\" in n ? n.z : void 0, e.z),\n Nt(\"w\" in n ? n.w : void 0, e.w)\n ]\n });\n }\n function mc(n, e) {\n return {\n baseStep: Vt(e),\n constraint: e,\n textProps: X.fromObject({\n draggingScale: Dt(e, n),\n formatter: Re(ti(e, n))\n })\n };\n }\n const fc = {\n id: \"input-point4d\",\n type: \"input\",\n accept: (n, e) => {\n if (!oi.isObject(n))\n return null;\n const t = M, l = le(e, {\n x: t.optional.custom(bt),\n y: t.optional.custom(bt),\n z: t.optional.custom(bt),\n w: t.optional.custom(bt)\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => uc,\n constraint: (n) => dc(n.params, n.initialValue),\n equals: oi.equals,\n writer: (n) => hc\n },\n controller: (n) => {\n const e = n.value, t = n.constraint;\n if (!(t instanceof Zt))\n throw S.shouldNeverHappen();\n return new jr(n.document, {\n assembly: Yo,\n axes: e.rawValue.getComponents().map((l, v) => mc(l, t.components[v])),\n parser: at,\n value: e,\n viewProps: n.viewProps\n });\n }\n };\n function vc(n) {\n const e = [], t = Ni(n.options);\n return t && e.push(t), new fn(e);\n }\n const bc = {\n id: \"input-string\",\n type: \"input\",\n accept: (n, e) => {\n if (typeof n != \"string\")\n return null;\n const l = le(e, {\n options: M.optional.custom(En)\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => Si,\n constraint: (n) => vc(n.params),\n writer: (n) => tt\n },\n controller: (n) => {\n const e = n.document, t = n.value, l = n.constraint, v = l && et(l, vn);\n return v ? new bn(e, {\n props: new X({\n options: v.values.value(\"options\")\n }),\n value: t,\n viewProps: n.viewProps\n }) : new Zn(e, {\n parser: (E) => E,\n props: X.fromObject({\n formatter: Ct\n }),\n value: t,\n viewProps: n.viewProps\n });\n }\n }, ji = {\n monitor: {\n defaultInterval: 200,\n defaultLineCount: 3\n }\n }, qo = D(\"mll\");\n class gc {\n constructor(e, t) {\n this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement(\"div\"), this.element.classList.add(qo()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"textarea\");\n l.classList.add(qo(\"i\")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, l.readOnly = !0, t.viewProps.bindDisabled(l), this.element.appendChild(l), this.textareaElem_ = l, t.value.emitter.on(\"change\", this.onValueUpdate_), this.value = t.value, this.update_();\n }\n update_() {\n const e = this.textareaElem_, t = e.scrollTop === e.scrollHeight - e.clientHeight, l = [];\n this.value.rawValue.forEach((v) => {\n v !== void 0 && l.push(this.formatter_(v));\n }), e.textContent = l.join(`\n`), t && (e.scrollTop = e.scrollHeight);\n }\n onValueUpdate_() {\n this.update_();\n }\n }\n class Ur {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.view = new gc(e, {\n formatter: t.formatter,\n lineCount: t.lineCount,\n value: this.value,\n viewProps: this.viewProps\n });\n }\n }\n const Qo = D(\"sgl\");\n class _c {\n constructor(e, t) {\n this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement(\"div\"), this.element.classList.add(Qo()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"input\");\n l.classList.add(Qo(\"i\")), l.readOnly = !0, l.type = \"text\", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on(\"change\", this.onValueUpdate_), this.value = t.value, this.update_();\n }\n update_() {\n const e = this.value.rawValue, t = e[e.length - 1];\n this.inputElement.value = t !== void 0 ? this.formatter_(t) : \"\";\n }\n onValueUpdate_() {\n this.update_();\n }\n }\n class Gr {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.view = new _c(e, {\n formatter: t.formatter,\n value: this.value,\n viewProps: this.viewProps\n });\n }\n }\n const wc = {\n id: \"monitor-bool\",\n type: \"monitor\",\n accept: (n, e) => {\n if (typeof n != \"boolean\")\n return null;\n const l = le(e, {\n lineCount: M.optional.number\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => ms\n },\n controller: (n) => {\n var e;\n return n.value.rawValue.length === 1 ? new Gr(n.document, {\n formatter: fs,\n value: n.value,\n viewProps: n.viewProps\n }) : new Ur(n.document, {\n formatter: fs,\n lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount,\n value: n.value,\n viewProps: n.viewProps\n });\n }\n }, en = D(\"grl\");\n class yc {\n constructor(e, t) {\n this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = e.createElement(\"div\"), this.element.classList.add(en()), t.viewProps.bindClassModifiers(this.element), this.formatter_ = t.formatter, this.props_ = t.props, this.cursor_ = t.cursor, this.cursor_.emitter.on(\"change\", this.onCursorChange_);\n const l = e.createElementNS(ze, \"svg\");\n l.classList.add(en(\"g\")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, this.element.appendChild(l), this.svgElem_ = l;\n const v = e.createElementNS(ze, \"polyline\");\n this.svgElem_.appendChild(v), this.lineElem_ = v;\n const E = e.createElement(\"div\");\n E.classList.add(en(\"t\"), D(\"tt\")()), this.element.appendChild(E), this.tooltipElem_ = E, t.value.emitter.on(\"change\", this.onValueUpdate_), this.value = t.value, this.update_();\n }\n get graphElement() {\n return this.svgElem_;\n }\n update_() {\n const e = this.svgElem_.getBoundingClientRect(), t = this.value.rawValue.length - 1, l = this.props_.get(\"minValue\"), v = this.props_.get(\"maxValue\"), E = [];\n this.value.rawValue.forEach((de, ve) => {\n if (de === void 0)\n return;\n const Mn = _e(ve, 0, t, 0, e.width), zi = _e(de, l, v, e.height, 0);\n E.push([Mn, zi].join(\",\"));\n }), this.lineElem_.setAttributeNS(null, \"points\", E.join(\" \"));\n const k = this.tooltipElem_, B = this.value.rawValue[this.cursor_.rawValue];\n if (B === void 0) {\n k.classList.remove(en(\"t\", \"a\"));\n return;\n }\n const Q = _e(this.cursor_.rawValue, 0, t, 0, e.width), J = _e(B, l, v, e.height, 0);\n k.style.left = `${Q}px`, k.style.top = `${J}px`, k.textContent = `${this.formatter_(B)}`, k.classList.contains(en(\"t\", \"a\")) || (k.classList.add(en(\"t\", \"a\"), en(\"t\", \"in\")), st(k), k.classList.remove(en(\"t\", \"in\")));\n }\n onValueUpdate_() {\n this.update_();\n }\n onCursorChange_() {\n this.update_();\n }\n }\n class xc {\n constructor(e, t) {\n if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = t.props, this.value = t.value, this.viewProps = t.viewProps, this.cursor_ = ee(-1), this.view = new yc(e, {\n cursor: this.cursor_,\n formatter: t.formatter,\n lineCount: t.lineCount,\n props: this.props_,\n value: this.value,\n viewProps: this.viewProps\n }), !mt(e))\n this.view.element.addEventListener(\"mousemove\", this.onGraphMouseMove_), this.view.element.addEventListener(\"mouseleave\", this.onGraphMouseLeave_);\n else {\n const l = new It(this.view.element);\n l.emitter.on(\"down\", this.onGraphPointerDown_), l.emitter.on(\"move\", this.onGraphPointerMove_), l.emitter.on(\"up\", this.onGraphPointerUp_);\n }\n }\n onGraphMouseLeave_() {\n this.cursor_.rawValue = -1;\n }\n onGraphMouseMove_(e) {\n const t = this.view.element.getBoundingClientRect();\n this.cursor_.rawValue = Math.floor(_e(e.offsetX, 0, t.width, 0, this.value.rawValue.length));\n }\n onGraphPointerDown_(e) {\n this.onGraphPointerMove_(e);\n }\n onGraphPointerMove_(e) {\n if (!e.data.point) {\n this.cursor_.rawValue = -1;\n return;\n }\n this.cursor_.rawValue = Math.floor(_e(e.data.point.x, 0, e.data.bounds.width, 0, this.value.rawValue.length));\n }\n onGraphPointerUp_() {\n this.cursor_.rawValue = -1;\n }\n }\n function Hr(n) {\n return \"format\" in n && !_(n.format) ? n.format : Re(2);\n }\n function Ec(n) {\n var e;\n return n.value.rawValue.length === 1 ? new Gr(n.document, {\n formatter: Hr(n.params),\n value: n.value,\n viewProps: n.viewProps\n }) : new Ur(n.document, {\n formatter: Hr(n.params),\n lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount,\n value: n.value,\n viewProps: n.viewProps\n });\n }\n function Cc(n) {\n var e, t, l;\n return new xc(n.document, {\n formatter: Hr(n.params),\n lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount,\n props: X.fromObject({\n maxValue: (t = \"max\" in n.params ? n.params.max : null) !== null && t !== void 0 ? t : 100,\n minValue: (l = \"min\" in n.params ? n.params.min : null) !== null && l !== void 0 ? l : 0\n }),\n value: n.value,\n viewProps: n.viewProps\n });\n }\n function Zo(n) {\n return \"view\" in n && n.view === \"graph\";\n }\n const Pc = {\n id: \"monitor-number\",\n type: \"monitor\",\n accept: (n, e) => {\n if (typeof n != \"number\")\n return null;\n const t = M, l = le(e, {\n format: t.optional.function,\n lineCount: t.optional.number,\n max: t.optional.number,\n min: t.optional.number,\n view: t.optional.string\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n defaultBufferSize: (n) => Zo(n) ? 64 : 1,\n reader: (n) => vt\n },\n controller: (n) => Zo(n.params) ? Cc(n) : Ec(n)\n }, Tc = {\n id: \"monitor-string\",\n type: \"monitor\",\n accept: (n, e) => {\n if (typeof n != \"string\")\n return null;\n const t = M, l = le(e, {\n lineCount: t.optional.number,\n multiline: t.optional.boolean\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => Si\n },\n controller: (n) => {\n var e;\n const t = n.value;\n return t.rawValue.length > 1 || \"multiline\" in n.params && n.params.multiline ? new Ur(n.document, {\n formatter: Ct,\n lineCount: (e = n.params.lineCount) !== null && e !== void 0 ? e : ji.monitor.defaultLineCount,\n value: t,\n viewProps: n.viewProps\n }) : new Gr(n.document, {\n formatter: Ct,\n value: t,\n viewProps: n.viewProps\n });\n }\n };\n function kc(n, e) {\n var t;\n const l = n.accept(e.target.read(), e.params);\n if (_(l))\n return null;\n const v = M, E = {\n target: e.target,\n initialValue: l.initialValue,\n params: l.params\n }, k = n.binding.reader(E), B = n.binding.constraint ? n.binding.constraint(E) : void 0, Q = ee(k(l.initialValue), {\n constraint: B,\n equals: n.binding.equals\n }), J = new qn({\n reader: k,\n target: e.target,\n value: Q,\n writer: n.binding.writer(E)\n }), de = v.optional.boolean(e.params.disabled).value, ve = v.optional.boolean(e.params.hidden).value, Mn = n.controller({\n constraint: B,\n document: e.document,\n initialValue: l.initialValue,\n params: l.params,\n value: J.value,\n viewProps: Xe.create({\n disabled: de,\n hidden: ve\n })\n });\n return new Fe(e.document, {\n binding: J,\n blade: ye(),\n props: X.fromObject({\n label: \"label\" in e.params ? (t = v.optional.string(e.params.label).value) !== null && t !== void 0 ? t : null : e.target.key\n }),\n valueController: Mn\n });\n }\n function Mc(n, e) {\n return e === 0 ? new ls() : new xi(n, e ?? ji.monitor.defaultInterval);\n }\n function Sc(n, e) {\n var t, l, v;\n const E = M, k = n.accept(e.target.read(), e.params);\n if (_(k))\n return null;\n const B = {\n target: e.target,\n initialValue: k.initialValue,\n params: k.params\n }, Q = n.binding.reader(B), J = (l = (t = E.optional.number(e.params.bufferSize).value) !== null && t !== void 0 ? t : n.binding.defaultBufferSize && n.binding.defaultBufferSize(k.params)) !== null && l !== void 0 ? l : 1, de = E.optional.number(e.params.interval).value, ve = new rr({\n reader: Q,\n target: e.target,\n ticker: Mc(e.document, de),\n value: cs(J)\n }), Mn = E.optional.boolean(e.params.disabled).value, zi = E.optional.boolean(e.params.hidden).value, Ui = n.controller({\n document: e.document,\n params: k.params,\n value: ve.value,\n viewProps: Xe.create({\n disabled: Mn,\n hidden: zi\n })\n });\n return new rt(e.document, {\n binding: ve,\n blade: ye(),\n props: X.fromObject({\n label: \"label\" in e.params ? (v = E.optional.string(e.params.label).value) !== null && v !== void 0 ? v : null : e.target.key\n }),\n valueController: Ui\n });\n }\n class Ac {\n constructor() {\n this.pluginsMap_ = {\n blades: [],\n inputs: [],\n monitors: []\n };\n }\n getAll() {\n return [\n ...this.pluginsMap_.blades,\n ...this.pluginsMap_.inputs,\n ...this.pluginsMap_.monitors\n ];\n }\n register(e) {\n e.type === \"blade\" ? this.pluginsMap_.blades.unshift(e) : e.type === \"input\" ? this.pluginsMap_.inputs.unshift(e) : e.type === \"monitor\" && this.pluginsMap_.monitors.unshift(e);\n }\n createInput(e, t, l) {\n const v = t.read();\n if (_(v))\n throw new S({\n context: {\n key: t.key\n },\n type: \"nomatchingcontroller\"\n });\n const E = this.pluginsMap_.inputs.reduce((k, B) => k ?? kc(B, {\n document: e,\n target: t,\n params: l\n }), null);\n if (E)\n return E;\n throw new S({\n context: {\n key: t.key\n },\n type: \"nomatchingcontroller\"\n });\n }\n createMonitor(e, t, l) {\n const v = this.pluginsMap_.monitors.reduce((E, k) => E ?? Sc(k, {\n document: e,\n params: l,\n target: t\n }), null);\n if (v)\n return v;\n throw new S({\n context: {\n key: t.key\n },\n type: \"nomatchingcontroller\"\n });\n }\n createBlade(e, t) {\n const l = this.pluginsMap_.blades.reduce((v, E) => v ?? sr(E, {\n document: e,\n params: t\n }), null);\n if (!l)\n throw new S({\n type: \"nomatchingview\",\n context: {\n params: t\n }\n });\n return l;\n }\n createBladeApi(e) {\n if (e instanceof Fe)\n return new mi(e);\n if (e instanceof rt)\n return new fi(e);\n if (e instanceof hn)\n return new $n(e, this);\n const t = this.pluginsMap_.blades.reduce((l, v) => l ?? v.api({\n controller: e,\n pool: this\n }), null);\n if (!t)\n throw S.shouldNeverHappen();\n return t;\n }\n }\n function Lc() {\n const n = new Ac();\n return [\n Nc,\n pc,\n fc,\n bc,\n nc,\n Zl,\n Ql,\n $l,\n ni,\n wc,\n Tc,\n Pc,\n W,\n Js,\n tr,\n yi\n ].forEach((e) => {\n n.register(e);\n }), n;\n }\n function Rc(n) {\n return Wt.isObject(n) ? new Wt(n.x, n.y) : new Wt();\n }\n function Ic(n, e) {\n n.writeProperty(\"x\", e.x), n.writeProperty(\"y\", e.y);\n }\n function Nt(n, e) {\n if (!n)\n return;\n const t = [], l = Go(n, e);\n l && t.push(l);\n const v = Ho(n);\n return v && t.push(v), new fn(t);\n }\n function Vc(n, e) {\n return new Zt({\n assembly: Ko,\n components: [\n Nt(\"x\" in n ? n.x : void 0, e.x),\n Nt(\"y\" in n ? n.y : void 0, e.y)\n ]\n });\n }\n function Wo(n, e) {\n const [t, l] = n ? ec(n) : [];\n if (!_(t) || !_(l))\n return Math.max(Math.abs(t ?? 0), Math.abs(l ?? 0));\n const v = Vt(n);\n return Math.max(Math.abs(v) * 10, Math.abs(e) * 10);\n }\n function Dc(n, e) {\n const t = e instanceof Zt ? e.components[0] : void 0, l = e instanceof Zt ? e.components[1] : void 0, v = Wo(t, n.x), E = Wo(l, n.y);\n return Math.max(v, E);\n }\n function Jo(n, e) {\n return {\n baseStep: Vt(e),\n constraint: e,\n textProps: X.fromObject({\n draggingScale: Dt(e, n),\n formatter: Re(ti(e, n))\n })\n };\n }\n function Oc(n) {\n if (!(\"y\" in n))\n return !1;\n const e = n.y;\n return e && \"inverted\" in e ? !!e.inverted : !1;\n }\n const Nc = {\n id: \"input-point2d\",\n type: \"input\",\n accept: (n, e) => {\n if (!Wt.isObject(n))\n return null;\n const t = M, l = le(e, {\n expanded: t.optional.boolean,\n picker: t.optional.custom(Oi),\n x: t.optional.custom(bt),\n y: t.optional.object({\n inverted: t.optional.boolean,\n max: t.optional.number,\n min: t.optional.number,\n step: t.optional.number\n })\n });\n return l ? {\n initialValue: n,\n params: l\n } : null;\n },\n binding: {\n reader: (n) => Rc,\n constraint: (n) => Vc(n.params, n.initialValue),\n equals: Wt.equals,\n writer: (n) => Ic\n },\n controller: (n) => {\n const e = n.document, t = n.value, l = n.constraint;\n if (!(l instanceof Zt))\n throw S.shouldNeverHappen();\n const v = \"expanded\" in n.params ? n.params.expanded : void 0, E = \"picker\" in n.params ? n.params.picker : void 0;\n return new oc(e, {\n axes: [\n Jo(t.rawValue.x, l.components[0]),\n Jo(t.rawValue.y, l.components[1])\n ],\n expanded: v ?? !1,\n invertsY: Oc(n.params),\n maxValue: Dc(t.rawValue, l),\n parser: at,\n pickerLayout: E ?? \"popup\",\n value: t,\n viewProps: n.viewProps\n });\n }\n };\n class ea extends a {\n constructor(e) {\n super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on(\"change\", (t) => {\n this.emitter_.emit(\"change\", {\n event: new u(this, t.rawValue)\n });\n });\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get options() {\n return this.controller_.valueController.props.get(\"options\");\n }\n set options(e) {\n this.controller_.valueController.props.set(\"options\", e);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(e) {\n this.controller_.valueController.value.rawValue = e;\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n }\n class ta extends a {\n constructor(e) {\n super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on(\"change\", (t) => {\n this.emitter_.emit(\"change\", {\n event: new u(this, t.rawValue)\n });\n });\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get maxValue() {\n return this.controller_.valueController.sliderController.props.get(\"maxValue\");\n }\n set maxValue(e) {\n this.controller_.valueController.sliderController.props.set(\"maxValue\", e);\n }\n get minValue() {\n return this.controller_.valueController.sliderController.props.get(\"minValue\");\n }\n set minValue(e) {\n this.controller_.valueController.sliderController.props.set(\"minValue\", e);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(e) {\n this.controller_.valueController.value.rawValue = e;\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n }\n class na extends a {\n constructor(e) {\n super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on(\"change\", (t) => {\n this.emitter_.emit(\"change\", {\n event: new u(this, t.rawValue)\n });\n });\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get formatter() {\n return this.controller_.valueController.props.get(\"formatter\");\n }\n set formatter(e) {\n this.controller_.valueController.props.set(\"formatter\", e);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(e) {\n this.controller_.valueController.value.rawValue = e;\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (v) => {\n l(v.event);\n }), this;\n }\n }\n const Fc = function() {\n return {\n id: \"list\",\n type: \"blade\",\n accept(n) {\n const e = M, t = le(n, {\n options: e.required.custom(En),\n value: e.required.raw,\n view: e.required.constant(\"list\"),\n label: e.optional.string\n });\n return t ? { params: t } : null;\n },\n controller(n) {\n const e = new vn(Ps(n.params.options)), t = ee(n.params.value, {\n constraint: e\n }), l = new bn(n.document, {\n props: new X({\n options: e.values.value(\"options\")\n }),\n value: t,\n viewProps: n.viewProps\n });\n return new Gt(n.document, {\n blade: n.blade,\n props: X.fromObject({\n label: n.params.label\n }),\n valueController: l\n });\n },\n api(n) {\n return !(n.controller instanceof Gt) || !(n.controller.valueController instanceof bn) ? null : new ea(n.controller);\n }\n };\n }();\n function Bc(n) {\n return n.reduce((e, t) => Object.assign(e, {\n [t.presetKey]: t.read()\n }), {});\n }\n function jc(n, e) {\n n.forEach((t) => {\n const l = e[t.target.presetKey];\n l !== void 0 && t.writer(t.target, t.reader(l));\n });\n }\n class zc extends vi {\n /**\n * @hidden\n */\n constructor(e, t) {\n super(e, t);\n }\n get element() {\n return this.controller_.view.element;\n }\n /**\n * Imports a preset of all inputs.\n * @param preset The preset object to import.\n */\n importPreset(e) {\n const t = this.controller_.rackController.rack.find(Fe).map((l) => l.binding);\n jc(t, e), this.refresh();\n }\n /**\n * Exports a preset of all inputs.\n * @return An exported preset object.\n */\n exportPreset() {\n const e = this.controller_.rackController.rack.find(Fe).map((t) => t.binding.target);\n return Bc(e);\n }\n /**\n * Refreshes all bindings of the pane.\n */\n refresh() {\n this.controller_.rackController.rack.find(Fe).forEach((e) => {\n e.binding.read();\n }), this.controller_.rackController.rack.find(rt).forEach((e) => {\n e.binding.read();\n });\n }\n }\n class Uc extends Xn {\n constructor(e, t) {\n super(e, {\n expanded: t.expanded,\n blade: t.blade,\n props: t.props,\n root: !0,\n viewProps: t.viewProps\n });\n }\n }\n const Gc = {\n id: \"slider\",\n type: \"blade\",\n accept(n) {\n const e = M, t = le(n, {\n max: e.required.number,\n min: e.required.number,\n view: e.required.constant(\"slider\"),\n format: e.optional.function,\n label: e.optional.string,\n value: e.optional.number\n });\n return t ? { params: t } : null;\n },\n controller(n) {\n var e, t;\n const l = (e = n.params.value) !== null && e !== void 0 ? e : 0, v = new Xt({\n max: n.params.max,\n min: n.params.min\n }), E = new ei(n.document, {\n baseStep: 1,\n parser: at,\n sliderProps: new X({\n maxValue: v.values.value(\"max\"),\n minValue: v.values.value(\"min\")\n }),\n textProps: X.fromObject({\n draggingScale: Dt(void 0, l),\n formatter: (t = n.params.format) !== null && t !== void 0 ? t : Er\n }),\n value: ee(l, {\n constraint: v\n }),\n viewProps: n.viewProps\n });\n return new Gt(n.document, {\n blade: n.blade,\n props: X.fromObject({\n label: n.params.label\n }),\n valueController: E\n });\n },\n api(n) {\n return !(n.controller instanceof Gt) || !(n.controller.valueController instanceof ei) ? null : new ta(n.controller);\n }\n }, Hc = function() {\n return {\n id: \"text\",\n type: \"blade\",\n accept(n) {\n const e = M, t = le(n, {\n parse: e.required.function,\n value: e.required.raw,\n view: e.required.constant(\"text\"),\n format: e.optional.function,\n label: e.optional.string\n });\n return t ? { params: t } : null;\n },\n controller(n) {\n var e;\n const t = new Zn(n.document, {\n parser: n.params.parse,\n props: X.fromObject({\n formatter: (e = n.params.format) !== null && e !== void 0 ? e : (l) => String(l)\n }),\n value: ee(n.params.value),\n viewProps: n.viewProps\n });\n return new Gt(n.document, {\n blade: n.blade,\n props: X.fromObject({\n label: n.params.label\n }),\n valueController: t\n });\n },\n api(n) {\n return !(n.controller instanceof Gt) || !(n.controller.valueController instanceof Zn) ? null : new na(n.controller);\n }\n };\n }();\n function Kc(n) {\n const e = n.createElement(\"div\");\n return e.classList.add(D(\"dfw\")()), n.body && n.body.appendChild(e), e;\n }\n function ia(n, e, t) {\n if (n.querySelector(`style[data-tp-style=${e}]`))\n return;\n const l = n.createElement(\"style\");\n l.dataset.tpStyle = e, l.textContent = t, n.head.appendChild(l);\n }\n class $c extends zc {\n constructor(e) {\n var t, l;\n const v = e ?? {}, E = (t = v.document) !== null && t !== void 0 ? t : hi(), k = Lc(), B = new Uc(E, {\n expanded: v.expanded,\n blade: ye(),\n props: X.fromObject({\n title: v.title\n }),\n viewProps: Xe.create()\n });\n super(B, k), this.pool_ = k, this.containerElem_ = (l = v.container) !== null && l !== void 0 ? l : Kc(E), this.containerElem_.appendChild(this.element), this.doc_ = E, this.usesDefaultWrapper_ = !v.container, this.setUpDefaultPlugins_();\n }\n get document() {\n if (!this.doc_)\n throw S.alreadyDisposed();\n return this.doc_;\n }\n dispose() {\n const e = this.containerElem_;\n if (!e)\n throw S.alreadyDisposed();\n if (this.usesDefaultWrapper_) {\n const t = e.parentElement;\n t && t.removeChild(e);\n }\n this.containerElem_ = null, this.doc_ = null, super.dispose();\n }\n registerPlugin(e) {\n (\"plugin\" in e ? [e.plugin] : \"plugins\" in e ? e.plugins : []).forEach((l) => {\n this.pool_.register(l), this.embedPluginStyle_(l);\n });\n }\n embedPluginStyle_(e) {\n e.css && ia(this.document, `plugin-${e.id}`, e.css);\n }\n setUpDefaultPlugins_() {\n ia(this.document, \"default\", '.tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:\"\";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:\"\";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:\"\";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:\"\";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:\"\";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:\"\";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:\"\";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:\"\";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:\"\";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}'), this.pool_.getAll().forEach((e) => {\n this.embedPluginStyle_(e);\n }), this.registerPlugin({\n plugins: [\n Gc,\n Fc,\n yi,\n Hc\n ]\n });\n }\n }\n const Xc = new s(\"3.1.7\");\n r.BladeApi = a, r.ButtonApi = j, r.FolderApi = vi, r.InputBindingApi = mi, r.ListApi = ea, r.MonitorBindingApi = fi, r.Pane = $c, r.SeparatorApi = ss, r.SliderApi = ta, r.TabApi = os, r.TabPageApi = wi, r.TextApi = na, r.TpChangeEvent = u, r.VERSION = Xc, Object.defineProperty(r, \"__esModule\", { value: !0 });\n });\n})(Ch, js);\nvar Ji = {}, Ph = {\n get exports() {\n return Ji;\n },\n set exports(b) {\n Ji = b;\n }\n};\n(function(b, i) {\n (function(r, s) {\n s(i);\n })(el, function(r) {\n class s {\n constructor(o) {\n this.controller_ = o;\n }\n get element() {\n return this.controller_.view.element;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(o) {\n this.controller_.viewProps.set(\"disabled\", o);\n }\n get hidden() {\n return this.controller_.viewProps.get(\"hidden\");\n }\n set hidden(o) {\n this.controller_.viewProps.set(\"hidden\", o);\n }\n dispose() {\n this.controller_.viewProps.set(\"disposed\", !0);\n }\n }\n class a {\n constructor(o) {\n this.target = o;\n }\n }\n class c extends a {\n constructor(o, p, f, x) {\n super(o), this.value = p, this.presetKey = f, this.last = x ?? !0;\n }\n }\n function u(m) {\n return m;\n }\n function h(m) {\n return m == null;\n }\n const d = {\n alreadydisposed: () => \"View has been already disposed\",\n invalidparams: (m) => `Invalid parameters for '${m.name}'`,\n nomatchingcontroller: (m) => `No matching controller for '${m.key}'`,\n nomatchingview: (m) => `No matching view for '${JSON.stringify(m.params)}'`,\n notbindable: () => \"Value is not bindable\",\n propertynotfound: (m) => `Property '${m.name}' not found`,\n shouldneverhappen: () => \"This error should never happen\"\n };\n class g {\n constructor(o) {\n var p;\n this.message = (p = d[o.type](o.context)) !== null && p !== void 0 ? p : \"Unexpected error\", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = o.type;\n }\n static alreadyDisposed() {\n return new g({ type: \"alreadydisposed\" });\n }\n static notBindable() {\n return new g({\n type: \"notbindable\"\n });\n }\n static propertyNotFound(o) {\n return new g({\n type: \"propertynotfound\",\n context: {\n name: o\n }\n });\n }\n static shouldNeverHappen() {\n return new g({ type: \"shouldneverhappen\" });\n }\n }\n class w {\n constructor() {\n this.observers_ = {};\n }\n on(o, p) {\n let f = this.observers_[o];\n return f || (f = this.observers_[o] = []), f.push({\n handler: p\n }), this;\n }\n off(o, p) {\n const f = this.observers_[o];\n return f && (this.observers_[o] = f.filter((x) => x.handler !== p)), this;\n }\n emit(o, p) {\n const f = this.observers_[o];\n f && f.forEach((x) => {\n x.handler(p);\n });\n }\n }\n const _ = \"tp\";\n function y(m) {\n return (p, f) => [\n _,\n \"-\",\n m,\n \"v\",\n p ? `_${p}` : \"\",\n f ? `-${f}` : \"\"\n ].join(\"\");\n }\n function C(m, o) {\n return (p) => o(m(p));\n }\n function I(m) {\n return m.rawValue;\n }\n function S(m, o) {\n m.emitter.on(\"change\", C(I, o)), o(m.rawValue);\n }\n function R(m, o, p) {\n S(m.value(o), p);\n }\n function j(m, o, p) {\n p ? m.classList.add(o) : m.classList.remove(o);\n }\n function F(m, o) {\n return (p) => {\n j(m, o, p);\n };\n }\n function V(m, o) {\n S(m, (p) => {\n o.textContent = p ?? \"\";\n });\n }\n const D = y(\"btn\");\n class Y {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(D()), p.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"button\");\n f.classList.add(D(\"b\")), p.viewProps.bindDisabled(f), this.element.appendChild(f), this.buttonElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(D(\"t\")), V(p.props.value(\"title\"), x), this.buttonElement.appendChild(x);\n }\n }\n class G {\n constructor(o, p) {\n this.emitter = new w(), this.onClick_ = this.onClick_.bind(this), this.props = p.props, this.viewProps = p.viewProps, this.view = new Y(o, {\n props: this.props,\n viewProps: this.viewProps\n }), this.view.buttonElement.addEventListener(\"click\", this.onClick_);\n }\n onClick_() {\n this.emitter.emit(\"click\", {\n sender: this\n });\n }\n }\n class N {\n constructor(o, p) {\n var f;\n this.constraint_ = p == null ? void 0 : p.constraint, this.equals_ = (f = p == null ? void 0 : p.equals) !== null && f !== void 0 ? f : (x, P) => x === P, this.emitter = new w(), this.rawValue_ = o;\n }\n get constraint() {\n return this.constraint_;\n }\n get rawValue() {\n return this.rawValue_;\n }\n set rawValue(o) {\n this.setRawValue(o, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(o, p) {\n const f = p ?? {\n forceEmit: !1,\n last: !0\n }, x = this.constraint_ ? this.constraint_.constrain(o) : o, P = this.rawValue_;\n this.equals_(P, x) && !f.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.rawValue_ = x, this.emitter.emit(\"change\", {\n options: f,\n previousRawValue: P,\n rawValue: x,\n sender: this\n }));\n }\n }\n class O {\n constructor(o) {\n this.emitter = new w(), this.value_ = o;\n }\n get rawValue() {\n return this.value_;\n }\n set rawValue(o) {\n this.setRawValue(o, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(o, p) {\n const f = p ?? {\n forceEmit: !1,\n last: !0\n }, x = this.value_;\n x === o && !f.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.value_ = o, this.emitter.emit(\"change\", {\n options: f,\n previousRawValue: x,\n rawValue: this.value_,\n sender: this\n }));\n }\n }\n function H(m, o) {\n const p = o == null ? void 0 : o.constraint, f = o == null ? void 0 : o.equals;\n return !p && !f ? new O(m) : new N(m, o);\n }\n class K {\n constructor(o) {\n this.emitter = new w(), this.valMap_ = o;\n for (const p in this.valMap_)\n this.valMap_[p].emitter.on(\"change\", () => {\n this.emitter.emit(\"change\", {\n key: p,\n sender: this\n });\n });\n }\n static createCore(o) {\n return Object.keys(o).reduce((f, x) => Object.assign(f, {\n [x]: H(o[x])\n }), {});\n }\n static fromObject(o) {\n const p = this.createCore(o);\n return new K(p);\n }\n get(o) {\n return this.valMap_[o].rawValue;\n }\n set(o, p) {\n this.valMap_[o].rawValue = p;\n }\n value(o) {\n return this.valMap_[o];\n }\n }\n function q(m, o) {\n const f = Object.keys(o).reduce((x, P) => {\n if (x === void 0)\n return;\n const L = o[P], z = L(m[P]);\n return z.succeeded ? Object.assign(Object.assign({}, x), { [P]: z.value }) : void 0;\n }, {});\n return f;\n }\n function ue(m, o) {\n return m.reduce((p, f) => {\n if (p === void 0)\n return;\n const x = o(f);\n if (!(!x.succeeded || x.value === void 0))\n return [...p, x.value];\n }, []);\n }\n function ge(m) {\n return m === null ? !1 : typeof m == \"object\";\n }\n function ce(m) {\n return (o) => (p) => {\n if (!o && p === void 0)\n return {\n succeeded: !1,\n value: void 0\n };\n if (o && p === void 0)\n return {\n succeeded: !0,\n value: void 0\n };\n const f = m(p);\n return f !== void 0 ? {\n succeeded: !0,\n value: f\n } : {\n succeeded: !1,\n value: void 0\n };\n };\n }\n function me(m) {\n return {\n custom: (o) => ce(o)(m),\n boolean: ce((o) => typeof o == \"boolean\" ? o : void 0)(m),\n number: ce((o) => typeof o == \"number\" ? o : void 0)(m),\n string: ce((o) => typeof o == \"string\" ? o : void 0)(m),\n function: ce((o) => typeof o == \"function\" ? o : void 0)(m),\n constant: (o) => ce((p) => p === o ? o : void 0)(m),\n raw: ce((o) => o)(m),\n object: (o) => ce((p) => {\n if (ge(p))\n return q(p, o);\n })(m),\n array: (o) => ce((p) => {\n if (Array.isArray(p))\n return ue(p, o);\n })(m)\n };\n }\n const he = {\n optional: me(!0),\n required: me(!1)\n };\n function ee(m, o) {\n const p = he.required.object(o)(m);\n return p.succeeded ? p.value : void 0;\n }\n function X(m) {\n console.warn([\n `Missing '${m.key}' of ${m.target} in ${m.place}.`,\n \"Please rebuild plugins with the latest core package.\"\n ].join(\" \"));\n }\n function Pe(m) {\n return m && m.parentElement && m.parentElement.removeChild(m), null;\n }\n class fe {\n constructor(o) {\n this.value_ = o;\n }\n static create(o) {\n return [\n new fe(o),\n (p, f) => {\n o.setRawValue(p, f);\n }\n ];\n }\n get emitter() {\n return this.value_.emitter;\n }\n get rawValue() {\n return this.value_.rawValue;\n }\n }\n const ae = y(\"\");\n function ne(m, o) {\n return F(m, ae(void 0, o));\n }\n class be extends K {\n constructor(o) {\n var p;\n super(o), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = fe.create(H(this.getGlobalDisabled_())), this.value(\"disabled\").emitter.on(\"change\", this.onDisabledChange_), this.value(\"parent\").emitter.on(\"change\", this.onParentChange_), (p = this.get(\"parent\")) === null || p === void 0 || p.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_);\n }\n static create(o) {\n var p, f, x;\n const P = o ?? {};\n return new be(K.createCore({\n disabled: (p = P.disabled) !== null && p !== void 0 ? p : !1,\n disposed: !1,\n hidden: (f = P.hidden) !== null && f !== void 0 ? f : !1,\n parent: (x = P.parent) !== null && x !== void 0 ? x : null\n }));\n }\n get globalDisabled() {\n return this.globalDisabled_;\n }\n bindClassModifiers(o) {\n S(this.globalDisabled_, ne(o, \"disabled\")), R(this, \"hidden\", ne(o, \"hidden\"));\n }\n bindDisabled(o) {\n S(this.globalDisabled_, (p) => {\n o.disabled = p;\n });\n }\n bindTabIndex(o) {\n S(this.globalDisabled_, (p) => {\n o.tabIndex = p ? -1 : 0;\n });\n }\n handleDispose(o) {\n this.value(\"disposed\").emitter.on(\"change\", (p) => {\n p && o();\n });\n }\n getGlobalDisabled_() {\n const o = this.get(\"parent\");\n return (o ? o.globalDisabled.rawValue : !1) || this.get(\"disabled\");\n }\n updateGlobalDisabled_() {\n this.setGlobalDisabled_(this.getGlobalDisabled_());\n }\n onDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentGlobalDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentChange_(o) {\n var p;\n const f = o.previousRawValue;\n f == null || f.globalDisabled.emitter.off(\"change\", this.onParentGlobalDisabledChange_), (p = this.get(\"parent\")) === null || p === void 0 || p.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_();\n }\n }\n function M() {\n return [\"veryfirst\", \"first\", \"last\", \"verylast\"];\n }\n const le = y(\"\"), Ve = {\n veryfirst: \"vfst\",\n first: \"fst\",\n last: \"lst\",\n verylast: \"vlst\"\n };\n class Ne {\n constructor(o) {\n this.parent_ = null, this.blade = o.blade, this.view = o.view, this.viewProps = o.viewProps;\n const p = this.view.element;\n this.blade.value(\"positions\").emitter.on(\"change\", () => {\n M().forEach((f) => {\n p.classList.remove(le(void 0, Ve[f]));\n }), this.blade.get(\"positions\").forEach((f) => {\n p.classList.add(le(void 0, Ve[f]));\n });\n }), this.viewProps.handleDispose(() => {\n Pe(p);\n });\n }\n get parent() {\n return this.parent_;\n }\n set parent(o) {\n if (this.parent_ = o, !(\"parent\" in this.viewProps.valMap_)) {\n X({\n key: \"parent\",\n target: be.name,\n place: \"BladeController.parent\"\n });\n return;\n }\n this.viewProps.set(\"parent\", this.parent_ ? this.parent_.viewProps : null);\n }\n }\n const we = \"http://www.w3.org/2000/svg\";\n function it(m) {\n m.offsetHeight;\n }\n function Bn(m, o) {\n const p = m.style.transition;\n m.style.transition = \"none\", o(), m.style.transition = p;\n }\n function Xe(m) {\n return m.ontouchstart !== void 0;\n }\n function jn(m) {\n for (; m.childNodes.length > 0; )\n m.removeChild(m.childNodes[0]);\n }\n function an(m) {\n return m.relatedTarget ? m.relatedTarget : \"explicitOriginalTarget\" in m ? m.explicitOriginalTarget : null;\n }\n const dt = y(\"lbl\");\n function kt(m, o) {\n const p = m.createDocumentFragment();\n return o.split(`\n`).map((x) => m.createTextNode(x)).forEach((x, P) => {\n P > 0 && p.appendChild(m.createElement(\"br\")), p.appendChild(x);\n }), p;\n }\n class ze {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(dt()), p.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"div\");\n f.classList.add(dt(\"l\")), R(p.props, \"label\", (P) => {\n h(P) ? this.element.classList.add(dt(void 0, \"nol\")) : (this.element.classList.remove(dt(void 0, \"nol\")), jn(f), f.appendChild(kt(o, P)));\n }), this.element.appendChild(f), this.labelElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(dt(\"v\")), this.element.appendChild(x), this.valueElement = x;\n }\n }\n class st extends Ne {\n constructor(o, p) {\n const f = p.valueController.viewProps;\n super(Object.assign(Object.assign({}, p), { view: new ze(o, {\n props: p.props,\n viewProps: f\n }), viewProps: f })), this.props = p.props, this.valueController = p.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n class ln extends Ne {\n constructor(o) {\n super(o), this.value = o.value;\n }\n }\n class mt extends K {\n constructor(o) {\n super(o);\n }\n static create(o) {\n const p = {\n completed: !0,\n expanded: o,\n expandedHeight: null,\n shouldFixHeight: !1,\n temporaryExpanded: null\n }, f = K.createCore(p);\n return new mt(f);\n }\n get styleExpanded() {\n var o;\n return (o = this.get(\"temporaryExpanded\")) !== null && o !== void 0 ? o : this.get(\"expanded\");\n }\n get styleHeight() {\n if (!this.styleExpanded)\n return \"0\";\n const o = this.get(\"expandedHeight\");\n return this.get(\"shouldFixHeight\") && !h(o) ? `${o}px` : \"auto\";\n }\n bindExpandedClass(o, p) {\n const f = () => {\n this.styleExpanded ? o.classList.add(p) : o.classList.remove(p);\n };\n R(this, \"expanded\", f), R(this, \"temporaryExpanded\", f);\n }\n cleanUpTransition() {\n this.set(\"shouldFixHeight\", !1), this.set(\"expandedHeight\", null), this.set(\"completed\", !0);\n }\n }\n function zn(m) {\n return mt.create(m);\n }\n function hi(m, o) {\n let p = 0;\n return Bn(o, () => {\n m.set(\"expandedHeight\", null), m.set(\"temporaryExpanded\", !0), it(o), p = o.clientHeight, m.set(\"temporaryExpanded\", null), it(o);\n }), p;\n }\n function Un(m, o) {\n o.style.height = m.styleHeight;\n }\n function Gn(m, o) {\n m.value(\"expanded\").emitter.on(\"beforechange\", () => {\n m.set(\"completed\", !1), h(m.get(\"expandedHeight\")) && m.set(\"expandedHeight\", hi(m, o)), m.set(\"shouldFixHeight\", !0), it(o);\n }), m.emitter.on(\"change\", () => {\n Un(m, o);\n }), Un(m, o), o.addEventListener(\"transitionend\", (p) => {\n p.propertyName === \"height\" && m.cleanUpTransition();\n });\n }\n class yt {\n constructor(o, p) {\n const f = y(p.viewName);\n this.element = o.createElement(\"div\"), this.element.classList.add(f()), p.viewProps.bindClassModifiers(this.element);\n }\n }\n class Mt extends ln {\n constructor(o, p) {\n const f = p.valueController.viewProps;\n super(Object.assign(Object.assign({}, p), { value: p.valueController.value, view: new ze(o, {\n props: p.props,\n viewProps: f\n }), viewProps: f })), this.props = p.props, this.valueController = p.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n class Hn {\n constructor() {\n this.disabled = !1, this.emitter = new w();\n }\n dispose() {\n }\n tick() {\n this.disabled || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class cn {\n constructor(o, p) {\n this.disabled_ = !1, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = o, this.emitter = new w(), this.interval_ = p, this.setTimer_();\n }\n get disabled() {\n return this.disabled_;\n }\n set disabled(o) {\n this.disabled_ = o, this.disabled_ ? this.clearTimer_() : this.setTimer_();\n }\n dispose() {\n this.clearTimer_();\n }\n clearTimer_() {\n if (this.timerId_ === null)\n return;\n const o = this.doc_.defaultView;\n o && o.clearInterval(this.timerId_), this.timerId_ = null;\n }\n setTimer_() {\n if (this.clearTimer_(), this.interval_ <= 0)\n return;\n const o = this.doc_.defaultView;\n o && (this.timerId_ = o.setInterval(this.onTick_, this.interval_));\n }\n onTick_() {\n this.disabled_ || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class Kn {\n constructor(o) {\n this.constraints = o;\n }\n constrain(o) {\n return this.constraints.reduce((p, f) => f.constrain(p), o);\n }\n }\n function xt(m, o) {\n if (m instanceof o)\n return m;\n if (m instanceof Kn) {\n const p = m.constraints.reduce((f, x) => f || (x instanceof o ? x : null), null);\n if (p)\n return p;\n }\n return null;\n }\n class ft {\n constructor(o) {\n this.values = K.fromObject({\n max: o.max,\n min: o.min\n });\n }\n constrain(o) {\n const p = this.values.get(\"max\"), f = this.values.get(\"min\");\n return Math.min(Math.max(o, f), p);\n }\n }\n class St {\n constructor(o) {\n this.values = K.fromObject({\n max: o.max,\n min: o.min\n });\n }\n get maxValue() {\n return this.values.get(\"max\");\n }\n get minValue() {\n return this.values.get(\"min\");\n }\n constrain(o) {\n const p = this.values.get(\"max\"), f = this.values.get(\"min\");\n let x = o;\n return h(f) || (x = Math.max(x, f)), h(p) || (x = Math.min(x, p)), x;\n }\n }\n class A {\n constructor(o, p = 0) {\n this.step = o, this.origin = p;\n }\n constrain(o) {\n const p = this.origin % this.step, f = Math.round((o - p) / this.step);\n return p + f * this.step;\n }\n }\n const U = y(\"pop\");\n class W {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(U()), p.viewProps.bindClassModifiers(this.element), S(p.shows, F(this.element, U(void 0, \"v\")));\n }\n }\n class ie {\n constructor(o, p) {\n this.shows = H(!1), this.viewProps = p.viewProps, this.view = new W(o, {\n shows: this.shows,\n viewProps: this.viewProps\n });\n }\n }\n const ye = y(\"txt\");\n class De {\n constructor(o, p) {\n this.onChange_ = this.onChange_.bind(this), this.element = o.createElement(\"div\"), this.element.classList.add(ye()), p.viewProps.bindClassModifiers(this.element), this.props_ = p.props, this.props_.emitter.on(\"change\", this.onChange_);\n const f = o.createElement(\"input\");\n f.classList.add(ye(\"i\")), f.type = \"text\", p.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, p.value.emitter.on(\"change\", this.onChange_), this.value_ = p.value, this.refresh();\n }\n refresh() {\n const o = this.props_.get(\"formatter\");\n this.inputElement.value = o(this.value_.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class Ut {\n constructor(o, p) {\n this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = p.parser, this.props = p.props, this.value = p.value, this.viewProps = p.viewProps, this.view = new De(o, {\n props: p.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_);\n }\n onInputChange_(o) {\n const f = o.currentTarget.value, x = this.parser_(f);\n h(x) || (this.value.rawValue = x), this.view.refresh();\n }\n }\n function pn(m) {\n return m === \"false\" ? !1 : !!m;\n }\n class Ue {\n constructor(o) {\n this.text = o;\n }\n evaluate() {\n return Number(this.text);\n }\n toString() {\n return this.text;\n }\n }\n const Ge = {\n \"**\": (m, o) => Math.pow(m, o),\n \"*\": (m, o) => m * o,\n \"/\": (m, o) => m / o,\n \"%\": (m, o) => m % o,\n \"+\": (m, o) => m + o,\n \"-\": (m, o) => m - o,\n \"<<\": (m, o) => m << o,\n \">>\": (m, o) => m >> o,\n \">>>\": (m, o) => m >>> o,\n \"&\": (m, o) => m & o,\n \"^\": (m, o) => m ^ o,\n \"|\": (m, o) => m | o\n };\n class Gs {\n constructor(o, p, f) {\n this.left = p, this.operator = o, this.right = f;\n }\n evaluate() {\n const o = Ge[this.operator];\n if (!o)\n throw new Error(`unexpected binary operator: '${this.operator}`);\n return o(this.left.evaluate(), this.right.evaluate());\n }\n toString() {\n return [\n \"b(\",\n this.left.toString(),\n this.operator,\n this.right.toString(),\n \")\"\n ].join(\" \");\n }\n }\n const Hs = {\n \"+\": (m) => m,\n \"-\": (m) => -m,\n \"~\": (m) => ~m\n };\n class Ks {\n constructor(o, p) {\n this.operator = o, this.expression = p;\n }\n evaluate() {\n const o = Hs[this.operator];\n if (!o)\n throw new Error(`unexpected unary operator: '${this.operator}`);\n return o(this.expression.evaluate());\n }\n toString() {\n return [\"u(\", this.operator, this.expression.toString(), \")\"].join(\" \");\n }\n }\n function di(m) {\n return (o, p) => {\n for (let f = 0; f < m.length; f++) {\n const x = m[f](o, p);\n if (x !== \"\")\n return x;\n }\n return \"\";\n };\n }\n function At(m, o) {\n var p;\n const f = m.substr(o).match(/^\\s+/);\n return (p = f && f[0]) !== null && p !== void 0 ? p : \"\";\n }\n function mi(m, o) {\n const p = m.substr(o, 1);\n return p.match(/^[1-9]$/) ? p : \"\";\n }\n function Fe(m, o) {\n var p;\n const f = m.substr(o).match(/^[0-9]+/);\n return (p = f && f[0]) !== null && p !== void 0 ? p : \"\";\n }\n function fi(m, o) {\n const p = Fe(m, o);\n if (p !== \"\")\n return p;\n const f = m.substr(o, 1);\n if (o += 1, f !== \"-\" && f !== \"+\")\n return \"\";\n const x = Fe(m, o);\n return x === \"\" ? \"\" : f + x;\n }\n function rt(m, o) {\n const p = m.substr(o, 1);\n if (o += 1, p.toLowerCase() !== \"e\")\n return \"\";\n const f = fi(m, o);\n return f === \"\" ? \"\" : p + f;\n }\n function ts(m, o) {\n const p = m.substr(o, 1);\n if (p === \"0\")\n return p;\n const f = mi(m, o);\n return o += f.length, f === \"\" ? \"\" : f + Fe(m, o);\n }\n function un(m, o) {\n const p = ts(m, o);\n if (o += p.length, p === \"\")\n return \"\";\n const f = m.substr(o, 1);\n if (o += f.length, f !== \".\")\n return \"\";\n const x = Fe(m, o);\n return o += x.length, p + f + x + rt(m, o);\n }\n function ns(m, o) {\n const p = m.substr(o, 1);\n if (o += p.length, p !== \".\")\n return \"\";\n const f = Fe(m, o);\n return o += f.length, f === \"\" ? \"\" : p + f + rt(m, o);\n }\n function $n(m, o) {\n const p = ts(m, o);\n return o += p.length, p === \"\" ? \"\" : p + rt(m, o);\n }\n const vi = di([\n un,\n ns,\n $n\n ]);\n function bi(m, o) {\n var p;\n const f = m.substr(o).match(/^[01]+/);\n return (p = f && f[0]) !== null && p !== void 0 ? p : \"\";\n }\n function $s(m, o) {\n const p = m.substr(o, 2);\n if (o += p.length, p.toLowerCase() !== \"0b\")\n return \"\";\n const f = bi(m, o);\n return f === \"\" ? \"\" : p + f;\n }\n function Xs(m, o) {\n var p;\n const f = m.substr(o).match(/^[0-7]+/);\n return (p = f && f[0]) !== null && p !== void 0 ? p : \"\";\n }\n function Ys(m, o) {\n const p = m.substr(o, 2);\n if (o += p.length, p.toLowerCase() !== \"0o\")\n return \"\";\n const f = Xs(m, o);\n return f === \"\" ? \"\" : p + f;\n }\n function qs(m, o) {\n var p;\n const f = m.substr(o).match(/^[0-9a-f]+/i);\n return (p = f && f[0]) !== null && p !== void 0 ? p : \"\";\n }\n function gi(m, o) {\n const p = m.substr(o, 2);\n if (o += p.length, p.toLowerCase() !== \"0x\")\n return \"\";\n const f = qs(m, o);\n return f === \"\" ? \"\" : p + f;\n }\n const Qs = di([\n $s,\n Ys,\n gi\n ]), Zs = di([\n Qs,\n vi\n ]);\n function hn(m, o) {\n const p = Zs(m, o);\n return o += p.length, p === \"\" ? null : {\n evaluable: new Ue(p),\n cursor: o\n };\n }\n function is(m, o) {\n const p = m.substr(o, 1);\n if (o += p.length, p !== \"(\")\n return null;\n const f = _i(m, o);\n if (!f)\n return null;\n o = f.cursor, o += At(m, o).length;\n const x = m.substr(o, 1);\n return o += x.length, x !== \")\" ? null : {\n evaluable: f.evaluable,\n cursor: o\n };\n }\n function Ws(m, o) {\n var p;\n return (p = hn(m, o)) !== null && p !== void 0 ? p : is(m, o);\n }\n function Xn(m, o) {\n const p = Ws(m, o);\n if (p)\n return p;\n const f = m.substr(o, 1);\n if (o += f.length, f !== \"+\" && f !== \"-\" && f !== \"~\")\n return null;\n const x = Xn(m, o);\n return x ? (o = x.cursor, {\n cursor: o,\n evaluable: new Ks(f, x.evaluable)\n }) : null;\n }\n function Js(m, o, p) {\n p += At(o, p).length;\n const f = m.filter((x) => o.startsWith(x, p))[0];\n return f ? (p += f.length, p += At(o, p).length, {\n cursor: p,\n operator: f\n }) : null;\n }\n function Gt(m, o) {\n return (p, f) => {\n const x = m(p, f);\n if (!x)\n return null;\n f = x.cursor;\n let P = x.evaluable;\n for (; ; ) {\n const L = Js(o, p, f);\n if (!L)\n break;\n f = L.cursor;\n const z = m(p, f);\n if (!z)\n return null;\n f = z.cursor, P = new Gs(L.operator, P, z.evaluable);\n }\n return P ? {\n cursor: f,\n evaluable: P\n } : null;\n };\n }\n const ss = [\n [\"**\"],\n [\"*\", \"/\", \"%\"],\n [\"+\", \"-\"],\n [\"<<\", \">>>\", \">>\"],\n [\"&\"],\n [\"^\"],\n [\"|\"]\n ].reduce((m, o) => Gt(m, o), Xn);\n function _i(m, o) {\n return o += At(m, o).length, ss(m, o);\n }\n function er(m) {\n const o = _i(m, 0);\n return !o || o.cursor + At(m, o.cursor).length !== m.length ? null : o.evaluable;\n }\n function dn(m) {\n var o;\n const p = er(m);\n return (o = p == null ? void 0 : p.evaluate()) !== null && o !== void 0 ? o : null;\n }\n function tr(m) {\n if (typeof m == \"number\")\n return m;\n if (typeof m == \"string\") {\n const o = dn(m);\n if (!h(o))\n return o;\n }\n return 0;\n }\n function Le(m) {\n return (o) => o.toFixed(Math.max(Math.min(m, 20), 0));\n }\n const nr = Le(0);\n function Yn(m) {\n return nr(m) + \"%\";\n }\n function rs(m) {\n return String(m);\n }\n function wi(m, o) {\n for (; m.length < o; )\n m.push(void 0);\n }\n function os(m) {\n const o = [];\n return wi(o, m), H(o);\n }\n function as(m) {\n const o = m.indexOf(void 0);\n return o < 0 ? m : m.slice(0, o);\n }\n function ir(m, o) {\n const p = [...as(m), o];\n return p.length > m.length ? p.splice(0, p.length - m.length) : wi(p, m.length), p;\n }\n function Ht({ primary: m, secondary: o, forward: p, backward: f }) {\n let x = !1;\n function P(L) {\n x || (x = !0, L(), x = !1);\n }\n m.emitter.on(\"change\", (L) => {\n P(() => {\n o.setRawValue(p(m, o), L.options);\n });\n }), o.emitter.on(\"change\", (L) => {\n P(() => {\n m.setRawValue(f(m, o), L.options);\n }), P(() => {\n o.setRawValue(p(m, o), L.options);\n });\n }), P(() => {\n o.setRawValue(p(m, o), {\n forceEmit: !1,\n last: !0\n });\n });\n }\n function Kt(m, o) {\n const p = m * (o.altKey ? 0.1 : 1) * (o.shiftKey ? 10 : 1);\n return o.upKey ? +p : o.downKey ? -p : 0;\n }\n function mn(m) {\n return {\n altKey: m.altKey,\n downKey: m.key === \"ArrowDown\",\n shiftKey: m.shiftKey,\n upKey: m.key === \"ArrowUp\"\n };\n }\n function yi(m) {\n return {\n altKey: m.altKey,\n downKey: m.key === \"ArrowLeft\",\n shiftKey: m.shiftKey,\n upKey: m.key === \"ArrowRight\"\n };\n }\n function sr(m) {\n return m === \"ArrowUp\" || m === \"ArrowDown\";\n }\n function ls(m) {\n return sr(m) || m === \"ArrowLeft\" || m === \"ArrowRight\";\n }\n function xi(m, o) {\n var p, f;\n const x = o.ownerDocument.defaultView, P = o.getBoundingClientRect();\n return {\n x: m.pageX - (((p = x && x.scrollX) !== null && p !== void 0 ? p : 0) + P.left),\n y: m.pageY - (((f = x && x.scrollY) !== null && f !== void 0 ? f : 0) + P.top)\n };\n }\n class qn {\n constructor(o) {\n this.lastTouch_ = null, this.onDocumentMouseMove_ = this.onDocumentMouseMove_.bind(this), this.onDocumentMouseUp_ = this.onDocumentMouseUp_.bind(this), this.onMouseDown_ = this.onMouseDown_.bind(this), this.onTouchEnd_ = this.onTouchEnd_.bind(this), this.onTouchMove_ = this.onTouchMove_.bind(this), this.onTouchStart_ = this.onTouchStart_.bind(this), this.elem_ = o, this.emitter = new w(), o.addEventListener(\"touchstart\", this.onTouchStart_, {\n passive: !1\n }), o.addEventListener(\"touchmove\", this.onTouchMove_, {\n passive: !0\n }), o.addEventListener(\"touchend\", this.onTouchEnd_), o.addEventListener(\"mousedown\", this.onMouseDown_);\n }\n computePosition_(o) {\n const p = this.elem_.getBoundingClientRect();\n return {\n bounds: {\n width: p.width,\n height: p.height\n },\n point: o ? {\n x: o.x,\n y: o.y\n } : null\n };\n }\n onMouseDown_(o) {\n var p;\n o.preventDefault(), (p = o.currentTarget) === null || p === void 0 || p.focus();\n const f = this.elem_.ownerDocument;\n f.addEventListener(\"mousemove\", this.onDocumentMouseMove_), f.addEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"down\", {\n altKey: o.altKey,\n data: this.computePosition_(xi(o, this.elem_)),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n onDocumentMouseMove_(o) {\n this.emitter.emit(\"move\", {\n altKey: o.altKey,\n data: this.computePosition_(xi(o, this.elem_)),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n onDocumentMouseUp_(o) {\n const p = this.elem_.ownerDocument;\n p.removeEventListener(\"mousemove\", this.onDocumentMouseMove_), p.removeEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"up\", {\n altKey: o.altKey,\n data: this.computePosition_(xi(o, this.elem_)),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n onTouchStart_(o) {\n o.preventDefault();\n const p = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"down\", {\n altKey: o.altKey,\n data: this.computePosition_(p ? {\n x: p.clientX - f.left,\n y: p.clientY - f.top\n } : void 0),\n sender: this,\n shiftKey: o.shiftKey\n }), this.lastTouch_ = p;\n }\n onTouchMove_(o) {\n const p = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"move\", {\n altKey: o.altKey,\n data: this.computePosition_(p ? {\n x: p.clientX - f.left,\n y: p.clientY - f.top\n } : void 0),\n sender: this,\n shiftKey: o.shiftKey\n }), this.lastTouch_ = p;\n }\n onTouchEnd_(o) {\n var p;\n const f = (p = o.targetTouches.item(0)) !== null && p !== void 0 ? p : this.lastTouch_, x = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"up\", {\n altKey: o.altKey,\n data: this.computePosition_(f ? {\n x: f.clientX - x.left,\n y: f.clientY - x.top\n } : void 0),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n }\n function Me(m, o, p, f, x) {\n const P = (m - o) / (p - o);\n return f + P * (x - f);\n }\n function cs(m) {\n return String(m.toFixed(10)).split(\".\")[1].replace(/0+$/, \"\").length;\n }\n function $t(m, o, p) {\n return Math.min(Math.max(m, o), p);\n }\n const Ye = y(\"txt\");\n class rr {\n constructor(o, p) {\n this.onChange_ = this.onChange_.bind(this), this.props_ = p.props, this.props_.emitter.on(\"change\", this.onChange_), this.element = o.createElement(\"div\"), this.element.classList.add(Ye(), Ye(void 0, \"num\")), p.arrayPosition && this.element.classList.add(Ye(void 0, p.arrayPosition)), p.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"input\");\n f.classList.add(Ye(\"i\")), f.type = \"text\", p.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = p.dragging, this.dragging_.emitter.on(\"change\", this.onDraggingChange_), this.element.classList.add(Ye()), this.inputElement.classList.add(Ye(\"i\"));\n const x = o.createElement(\"div\");\n x.classList.add(Ye(\"k\")), this.element.appendChild(x), this.knobElement = x;\n const P = o.createElementNS(we, \"svg\");\n P.classList.add(Ye(\"g\")), this.knobElement.appendChild(P);\n const L = o.createElementNS(we, \"path\");\n L.classList.add(Ye(\"gb\")), P.appendChild(L), this.guideBodyElem_ = L;\n const z = o.createElementNS(we, \"path\");\n z.classList.add(Ye(\"gh\")), P.appendChild(z), this.guideHeadElem_ = z;\n const oe = o.createElement(\"div\");\n oe.classList.add(y(\"tt\")()), this.knobElement.appendChild(oe), this.tooltipElem_ = oe, p.value.emitter.on(\"change\", this.onChange_), this.value = p.value, this.refresh();\n }\n onDraggingChange_(o) {\n if (o.rawValue === null) {\n this.element.classList.remove(Ye(void 0, \"drg\"));\n return;\n }\n this.element.classList.add(Ye(void 0, \"drg\"));\n const p = o.rawValue / this.props_.get(\"draggingScale\"), f = p + (p > 0 ? -1 : p < 0 ? 1 : 0), x = $t(-f, -4, 4);\n this.guideHeadElem_.setAttributeNS(null, \"d\", [`M ${f + x},0 L${f},4 L${f + x},8`, `M ${p},-1 L${p},9`].join(\" \")), this.guideBodyElem_.setAttributeNS(null, \"d\", `M 0,4 L${p},4`);\n const P = this.props_.get(\"formatter\");\n this.tooltipElem_.textContent = P(this.value.rawValue), this.tooltipElem_.style.left = `${p}px`;\n }\n refresh() {\n const o = this.props_.get(\"formatter\");\n this.inputElement.value = o(this.value.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class fn {\n constructor(o, p) {\n var f;\n this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = p.baseStep, this.parser_ = p.parser, this.props = p.props, this.sliderProps_ = (f = p.sliderProps) !== null && f !== void 0 ? f : null, this.value = p.value, this.viewProps = p.viewProps, this.dragging_ = H(null), this.view = new rr(o, {\n arrayPosition: p.arrayPosition,\n dragging: this.dragging_,\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_), this.view.inputElement.addEventListener(\"keydown\", this.onInputKeyDown_), this.view.inputElement.addEventListener(\"keyup\", this.onInputKeyUp_);\n const x = new qn(this.view.knobElement);\n x.emitter.on(\"down\", this.onPointerDown_), x.emitter.on(\"move\", this.onPointerMove_), x.emitter.on(\"up\", this.onPointerUp_);\n }\n constrainValue_(o) {\n var p, f;\n const x = (p = this.sliderProps_) === null || p === void 0 ? void 0 : p.get(\"minValue\"), P = (f = this.sliderProps_) === null || f === void 0 ? void 0 : f.get(\"maxValue\");\n let L = o;\n return x !== void 0 && (L = Math.max(L, x)), P !== void 0 && (L = Math.min(L, P)), L;\n }\n onInputChange_(o) {\n const f = o.currentTarget.value, x = this.parser_(f);\n h(x) || (this.value.rawValue = this.constrainValue_(x)), this.view.refresh();\n }\n onInputKeyDown_(o) {\n const p = Kt(this.baseStep_, mn(o));\n p !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + p), {\n forceEmit: !1,\n last: !1\n });\n }\n onInputKeyUp_(o) {\n Kt(this.baseStep_, mn(o)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n onPointerDown_() {\n this.originRawValue_ = this.value.rawValue, this.dragging_.rawValue = 0;\n }\n computeDraggingValue_(o) {\n if (!o.point)\n return null;\n const p = o.point.x - o.bounds.width / 2;\n return this.constrainValue_(this.originRawValue_ + p * this.props.get(\"draggingScale\"));\n }\n onPointerMove_(o) {\n const p = this.computeDraggingValue_(o.data);\n p !== null && (this.value.setRawValue(p, {\n forceEmit: !1,\n last: !1\n }), this.dragging_.rawValue = this.value.rawValue - this.originRawValue_);\n }\n onPointerUp_(o) {\n const p = this.computeDraggingValue_(o.data);\n p !== null && (this.value.setRawValue(p, {\n forceEmit: !0,\n last: !0\n }), this.dragging_.rawValue = null);\n }\n }\n function et(m, o) {\n m.write(o);\n }\n function Xt(m) {\n const o = m ? xt(m, A) : null;\n return o ? o.step : null;\n }\n function vn(m, o) {\n const p = m && xt(m, A);\n return p ? cs(p.step) : Math.max(cs(o), 2);\n }\n function Ei(m) {\n const o = Xt(m);\n return o ?? 1;\n }\n function Qn(m, o) {\n var p;\n const f = m && xt(m, A), x = Math.abs((p = f == null ? void 0 : f.step) !== null && p !== void 0 ? p : o);\n return x === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(x)) - 1);\n }\n function Yt(m) {\n return [m[0], m[1], m[2]];\n }\n function ps(m) {\n const o = $t(Math.floor(m), 0, 255).toString(16);\n return o.length === 1 ? `0${o}` : o;\n }\n function bn(m, o = \"#\") {\n const p = Yt(m.getComponents(\"rgb\")).map(ps).join(\"\");\n return `${o}${p}`;\n }\n function us(m, o = \"#\") {\n const p = m.getComponents(\"rgb\"), f = [p[0], p[1], p[2], p[3] * 255].map(ps).join(\"\");\n return `${o}${f}`;\n }\n function or(m, o) {\n const p = Le(o === \"float\" ? 2 : 0);\n return `rgb(${Yt(m.getComponents(\"rgb\", o)).map((x) => p(x)).join(\", \")})`;\n }\n function hs(m) {\n return (o) => or(o, m);\n }\n function ds(m, o) {\n const p = Le(2), f = Le(o === \"float\" ? 2 : 0);\n return `rgba(${m.getComponents(\"rgb\", o).map((P, L) => (L === 3 ? p : f)(P)).join(\", \")})`;\n }\n function ar(m) {\n return (o) => ds(o, m);\n }\n function Zn(m) {\n const o = [\n Le(0),\n Yn,\n Yn\n ];\n return `hsl(${Yt(m.getComponents(\"hsl\")).map((f, x) => o[x](f)).join(\", \")})`;\n }\n function lr(m) {\n const o = [\n Le(0),\n Yn,\n Yn,\n Le(2)\n ];\n return `hsla(${m.getComponents(\"hsl\").map((f, x) => o[x](f)).join(\", \")})`;\n }\n function ms(m, o) {\n const p = Le(o === \"float\" ? 2 : 0), f = [\"r\", \"g\", \"b\"];\n return `{${Yt(m.getComponents(\"rgb\", o)).map((P, L) => `${f[L]}: ${p(P)}`).join(\", \")}}`;\n }\n function fs(m) {\n return (o) => ms(o, m);\n }\n function cr(m, o) {\n const p = Le(2), f = Le(o === \"float\" ? 2 : 0), x = [\"r\", \"g\", \"b\", \"a\"];\n return `{${m.getComponents(\"rgb\", o).map((L, z) => {\n const oe = z === 3 ? p : f;\n return `${x[z]}: ${oe(L)}`;\n }).join(\", \")}}`;\n }\n function pr(m) {\n return (o) => cr(o, m);\n }\n [\n ...[\"int\", \"float\"].reduce((m, o) => [\n ...m,\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"func\",\n type: o\n },\n stringifier: hs(o)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"func\",\n type: o\n },\n stringifier: ar(o)\n },\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"object\",\n type: o\n },\n stringifier: fs(o)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"object\",\n type: o\n },\n stringifier: pr(o)\n }\n ], [])\n ];\n class ur {\n constructor(o) {\n this.components = o.components, this.asm_ = o.assembly;\n }\n constrain(o) {\n const p = this.asm_.toComponents(o).map((f, x) => {\n var P, L;\n return (L = (P = this.components[x]) === null || P === void 0 ? void 0 : P.constrain(f)) !== null && L !== void 0 ? L : f;\n });\n return this.asm_.fromComponents(p);\n }\n }\n const vs = y(\"pndtxt\");\n class hr {\n constructor(o, p) {\n this.textViews = p.textViews, this.element = o.createElement(\"div\"), this.element.classList.add(vs()), this.textViews.forEach((f) => {\n const x = o.createElement(\"div\");\n x.classList.add(vs(\"a\")), x.appendChild(f.element), this.element.appendChild(x);\n });\n }\n }\n function Ci(m, o, p) {\n return new fn(m, {\n arrayPosition: p === 0 ? \"fst\" : p === o.axes.length - 1 ? \"lst\" : \"mid\",\n baseStep: o.axes[p].baseStep,\n parser: o.parser,\n props: o.axes[p].textProps,\n value: H(0, {\n constraint: o.axes[p].constraint\n }),\n viewProps: o.viewProps\n });\n }\n class Lt {\n constructor(o, p) {\n this.value = p.value, this.viewProps = p.viewProps, this.acs_ = p.axes.map((f, x) => Ci(o, p, x)), this.acs_.forEach((f, x) => {\n Ht({\n primary: this.value,\n secondary: f.value,\n forward: (P) => p.assembly.toComponents(P.rawValue)[x],\n backward: (P, L) => {\n const z = p.assembly.toComponents(P.rawValue);\n return z[x] = L.rawValue, p.assembly.fromComponents(z);\n }\n });\n }), this.view = new hr(o, {\n textViews: this.acs_.map((f) => f.view)\n });\n }\n }\n function dr(m, o) {\n return \"step\" in m && !h(m.step) ? new A(m.step, o) : null;\n }\n function gn(m) {\n return !h(m.max) && !h(m.min) ? new ft({\n max: m.max,\n min: m.min\n }) : !h(m.max) || !h(m.min) ? new St({\n max: m.max,\n min: m.min\n }) : null;\n }\n const mr = {\n monitor: {\n defaultInterval: 200,\n defaultLineCount: 3\n }\n }, ot = y(\"grl\");\n class bs {\n constructor(o, p) {\n this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = o.createElement(\"div\"), this.element.classList.add(ot()), p.viewProps.bindClassModifiers(this.element), this.formatter_ = p.formatter, this.props_ = p.props, this.cursor_ = p.cursor, this.cursor_.emitter.on(\"change\", this.onCursorChange_);\n const f = o.createElementNS(we, \"svg\");\n f.classList.add(ot(\"g\")), f.style.height = `calc(var(--bld-us) * ${p.lineCount})`, this.element.appendChild(f), this.svgElem_ = f;\n const x = o.createElementNS(we, \"polyline\");\n this.svgElem_.appendChild(x), this.lineElem_ = x;\n const P = o.createElement(\"div\");\n P.classList.add(ot(\"t\"), y(\"tt\")()), this.element.appendChild(P), this.tooltipElem_ = P, p.value.emitter.on(\"change\", this.onValueUpdate_), this.value = p.value, this.update_();\n }\n get graphElement() {\n return this.svgElem_;\n }\n update_() {\n const o = this.svgElem_.getBoundingClientRect(), p = this.value.rawValue.length - 1, f = this.props_.get(\"minValue\"), x = this.props_.get(\"maxValue\"), P = [];\n this.value.rawValue.forEach((Ze, te) => {\n if (Ze === void 0)\n return;\n const Pt = Me(te, 0, p, 0, o.width), Mr = Me(Ze, f, x, o.height, 0);\n P.push([Pt, Mr].join(\",\"));\n }), this.lineElem_.setAttributeNS(null, \"points\", P.join(\" \"));\n const L = this.tooltipElem_, z = this.value.rawValue[this.cursor_.rawValue];\n if (z === void 0) {\n L.classList.remove(ot(\"t\", \"a\"));\n return;\n }\n const oe = Me(this.cursor_.rawValue, 0, p, 0, o.width), Qe = Me(z, f, x, o.height, 0);\n L.style.left = `${oe}px`, L.style.top = `${Qe}px`, L.textContent = `${this.formatter_(z)}`, L.classList.contains(ot(\"t\", \"a\")) || (L.classList.add(ot(\"t\", \"a\"), ot(\"t\", \"in\")), it(L), L.classList.remove(ot(\"t\", \"in\")));\n }\n onValueUpdate_() {\n this.update_();\n }\n onCursorChange_() {\n this.update_();\n }\n }\n class fr {\n constructor(o, p) {\n if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = p.props, this.value = p.value, this.viewProps = p.viewProps, this.cursor_ = H(-1), this.view = new bs(o, {\n cursor: this.cursor_,\n formatter: p.formatter,\n lineCount: p.lineCount,\n props: this.props_,\n value: this.value,\n viewProps: this.viewProps\n }), !Xe(o))\n this.view.element.addEventListener(\"mousemove\", this.onGraphMouseMove_), this.view.element.addEventListener(\"mouseleave\", this.onGraphMouseLeave_);\n else {\n const f = new qn(this.view.element);\n f.emitter.on(\"down\", this.onGraphPointerDown_), f.emitter.on(\"move\", this.onGraphPointerMove_), f.emitter.on(\"up\", this.onGraphPointerUp_);\n }\n }\n onGraphMouseLeave_() {\n this.cursor_.rawValue = -1;\n }\n onGraphMouseMove_(o) {\n const p = this.view.element.getBoundingClientRect();\n this.cursor_.rawValue = Math.floor(Me(o.offsetX, 0, p.width, 0, this.value.rawValue.length));\n }\n onGraphPointerDown_(o) {\n this.onGraphPointerMove_(o);\n }\n onGraphPointerMove_(o) {\n if (!o.data.point) {\n this.cursor_.rawValue = -1;\n return;\n }\n this.cursor_.rawValue = Math.floor(Me(o.data.point.x, 0, o.data.bounds.width, 0, this.value.rawValue.length));\n }\n onGraphPointerUp_() {\n this.cursor_.rawValue = -1;\n }\n }\n class gs {\n constructor(o) {\n this.controller_ = o;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(o) {\n this.controller_.viewProps.set(\"disabled\", o);\n }\n get title() {\n var o;\n return (o = this.controller_.props.get(\"title\")) !== null && o !== void 0 ? o : \"\";\n }\n set title(o) {\n this.controller_.props.set(\"title\", o);\n }\n on(o, p) {\n const f = p.bind(this);\n return this.controller_.emitter.on(o, () => {\n f(new a(this));\n }), this;\n }\n }\n class vr extends a {\n constructor(o, p, f) {\n super(o), this.cell = p, this.index = f;\n }\n }\n class _s extends s {\n constructor(o) {\n super(o), this.cellToApiMap_ = /* @__PURE__ */ new Map(), this.emitter_ = new w();\n const p = this.controller_.valueController;\n p.cellControllers.forEach((f, x) => {\n const P = new gs(f);\n this.cellToApiMap_.set(f, P), f.emitter.on(\"click\", () => {\n const L = x % p.size[0], z = Math.floor(x / p.size[0]);\n this.emitter_.emit(\"click\", {\n event: new vr(this, P, [L, z])\n });\n });\n });\n }\n cell(o, p) {\n const f = this.controller_.valueController, x = f.cellControllers[p * f.size[0] + o];\n return this.cellToApiMap_.get(x);\n }\n on(o, p) {\n const f = p.bind(this);\n return this.emitter_.on(o, (x) => {\n f(x.event);\n }), this;\n }\n }\n class Pi {\n constructor(o, p) {\n this.size = p.size;\n const [f, x] = this.size, P = [];\n for (let L = 0; L < x; L++)\n for (let z = 0; z < f; z++) {\n const oe = new G(o, {\n props: K.fromObject(Object.assign({}, p.cellConfig(z, L))),\n viewProps: be.create()\n });\n P.push(oe);\n }\n this.cellCs_ = P, this.viewProps = be.create(), this.viewProps.handleDispose(() => {\n this.cellCs_.forEach((L) => {\n L.viewProps.set(\"disposed\", !0);\n });\n }), this.view = new yt(o, {\n viewProps: this.viewProps,\n viewName: \"btngrid\"\n }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((L) => {\n this.view.element.appendChild(L.view.element);\n });\n }\n get cellControllers() {\n return this.cellCs_;\n }\n }\n const br = {\n id: \"buttongrid\",\n type: \"blade\",\n // TODO:\n css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',\n accept(m) {\n const o = he, p = ee(m, {\n cells: o.required.function,\n size: o.required.array(o.required.number),\n view: o.required.constant(\"buttongrid\"),\n label: o.optional.string\n });\n return p ? { params: p } : null;\n },\n controller(m) {\n return new st(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: new Pi(m.document, {\n cellConfig: m.params.cells,\n size: m.params.size\n })\n });\n },\n api(m) {\n return !(m.controller instanceof st) || !(m.controller.valueController instanceof Pi) ? null : new _s(m.controller);\n }\n };\n class ws extends s {\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(o) {\n this.controller_.props.set(\"label\", o);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(o) {\n this.controller_.valueController.value.rawValue = o;\n }\n on(o, p) {\n const f = p.bind(this);\n return this.controller_.valueController.value.emitter.on(o, (x) => {\n f(new c(this, x.rawValue, void 0, x.options.last));\n }), this;\n }\n }\n function qe(m, o, p) {\n return m * (1 - p) + o * p;\n }\n const gr = 20, _r = 1e-3, Ti = 100;\n function wr(m, o) {\n let p = 0.25, f = 0.5, x = -1;\n for (let P = 0; P < gr; P++) {\n const [L, z] = m.curve(f);\n if (f += p * (L < o ? 1 : -1), x = z, p *= 0.5, Math.abs(o - L) < _r)\n break;\n }\n return x;\n }\n class Et {\n constructor(o = 0, p = 0, f = 1, x = 1) {\n this.cache_ = [], this.comps_ = [o, p, f, x];\n }\n get x1() {\n return this.comps_[0];\n }\n get y1() {\n return this.comps_[1];\n }\n get x2() {\n return this.comps_[2];\n }\n get y2() {\n return this.comps_[3];\n }\n static isObject(o) {\n return h(o) || !Array.isArray(o) ? !1 : typeof o[0] == \"number\" && typeof o[1] == \"number\" && typeof o[2] == \"number\" && typeof o[3] == \"number\";\n }\n static equals(o, p) {\n return o.x1 === p.x1 && o.y1 === p.y1 && o.x2 === p.x2 && o.y2 === p.y2;\n }\n curve(o) {\n const p = qe(0, this.x1, o), f = qe(0, this.y1, o), x = qe(this.x1, this.x2, o), P = qe(this.y1, this.y2, o), L = qe(this.x2, 1, o), z = qe(this.y2, 1, o), oe = qe(p, x, o), Qe = qe(f, P, o), Ze = qe(x, L, o), te = qe(P, z, o);\n return [qe(oe, Ze, o), qe(Qe, te, o)];\n }\n y(o) {\n if (this.cache_.length === 0) {\n const p = [];\n for (let f = 0; f < Ti; f++)\n p.push(wr(this, Me(f, 0, Ti - 1, 0, 1)));\n this.cache_ = p;\n }\n return this.cache_[Math.round(Me($t(o, 0, 1), 0, 1, 0, Ti - 1))];\n }\n toObject() {\n return [this.comps_[0], this.comps_[1], this.comps_[2], this.comps_[3]];\n }\n }\n const ki = {\n toComponents: (m) => m.toObject(),\n fromComponents: (m) => new Et(...m)\n };\n function yr(m) {\n const o = Le(2);\n return `cubic-bezier(${m.toObject().map((f) => o(f)).join(\", \")})`;\n }\n const Mi = [0, 0.5, 0.5, 1];\n function xr(m) {\n const o = m.match(/^cubic-bezier\\s*\\(\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*\\)$/);\n if (!o)\n return new Et(...Mi);\n const p = [o[1], o[2], o[3], o[4]].reduce((f, x) => {\n if (!f)\n return null;\n const P = Number(x);\n return isNaN(P) ? null : [...f, P];\n }, []);\n return new Et(...p ?? Mi);\n }\n const Rt = y(\"cbz\");\n class ys {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(Rt()), p.viewProps.bindClassModifiers(this.element), p.foldable.bindExpandedClass(this.element, Rt(void 0, \"expanded\")), R(p.foldable, \"completed\", F(this.element, Rt(void 0, \"cpl\")));\n const f = o.createElement(\"div\");\n f.classList.add(Rt(\"h\")), this.element.appendChild(f);\n const x = o.createElement(\"button\");\n x.classList.add(Rt(\"b\")), p.viewProps.bindDisabled(x);\n const P = o.createElementNS(we, \"svg\");\n P.innerHTML = '', x.appendChild(P), f.appendChild(x), this.buttonElement = x;\n const L = o.createElement(\"div\");\n if (L.classList.add(Rt(\"t\")), f.appendChild(L), this.textElement = L, p.pickerLayout === \"inline\") {\n const z = o.createElement(\"div\");\n z.classList.add(Rt(\"p\")), this.element.appendChild(z), this.pickerElement = z;\n } else\n this.pickerElement = null;\n }\n }\n const Wn = y(\"cbzp\");\n class xs {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(Wn()), p.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"div\");\n f.classList.add(Wn(\"g\")), this.element.appendChild(f), this.graphElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(Wn(\"t\")), this.element.appendChild(x), this.textElement = x;\n }\n }\n function at(m, o) {\n const p = new MutationObserver((x) => {\n for (const P of x)\n P.type === \"childList\" && P.addedNodes.forEach((L) => {\n L.contains(L) && (o(), p.disconnect());\n });\n }), f = m.ownerDocument;\n p.observe(f.body, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n }\n const vt = y(\"cbzg\");\n function Er(m, o) {\n return (p) => o(m(p));\n }\n class Re {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(vt()), p.viewProps.bindClassModifiers(this.element), p.viewProps.bindTabIndex(this.element);\n const f = o.createElement(\"div\");\n f.classList.add(vt(\"p\")), this.element.appendChild(f), this.previewElement = f;\n const x = o.createElementNS(we, \"svg\");\n x.classList.add(vt(\"g\")), this.element.appendChild(x), this.svgElem_ = x;\n const P = o.createElementNS(we, \"path\");\n P.classList.add(vt(\"u\")), this.svgElem_.appendChild(P), this.guideElem_ = P;\n const L = o.createElementNS(we, \"polyline\");\n L.classList.add(vt(\"l\")), this.svgElem_.appendChild(L), this.lineElem_ = L, this.handleElems_ = [o.createElement(\"div\"), o.createElement(\"div\")], this.handleElems_.forEach((z) => {\n z.classList.add(vt(\"h\")), this.element.appendChild(z);\n }), this.vectorElems_ = [\n o.createElementNS(we, \"line\"),\n o.createElementNS(we, \"line\")\n ], this.vectorElems_.forEach((z) => {\n z.classList.add(vt(\"v\")), this.svgElem_.appendChild(z);\n }), this.value_ = p.value, this.value_.emitter.on(\"change\", this.onValueChange_.bind(this)), this.sel_ = p.selection, this.handleElems_.forEach((z, oe) => {\n S(this.sel_, Er((Qe) => Qe === oe, F(z, vt(\"h\", \"sel\"))));\n }), at(this.element, () => {\n this.refresh();\n });\n }\n getVertMargin_(o) {\n return o * 0.25;\n }\n valueToPosition(o, p) {\n const f = this.element.getBoundingClientRect(), x = f.width, P = f.height, L = this.getVertMargin_(P);\n return {\n x: Me(o, 0, 1, 0, x),\n y: Me(p, 0, 1, P - L, L)\n };\n }\n positionToValue(o, p) {\n const f = this.element.getBoundingClientRect(), x = f.width, P = f.height, L = this.getVertMargin_(P);\n return {\n x: $t(Me(o, 0, x, 0, 1), 0, 1),\n y: Me(p, P - L, L, 0, 1)\n };\n }\n refresh() {\n this.guideElem_.setAttributeNS(null, \"d\", [0, 1].map((P) => {\n const L = this.valueToPosition(0, P), z = this.valueToPosition(1, P);\n return [`M ${L.x},${L.y}`, `L ${z.x},${z.y}`].join(\" \");\n }).join(\" \"));\n const o = this.value_.rawValue, p = [];\n let f = 0;\n for (; ; ) {\n const P = this.valueToPosition(...o.curve(f));\n if (p.push([P.x, P.y].join(\",\")), f >= 1)\n break;\n f = Math.min(f + 0.05, 1);\n }\n this.lineElem_.setAttributeNS(null, \"points\", p.join(\" \"));\n const x = o.toObject();\n [0, 1].forEach((P) => {\n const L = this.valueToPosition(P, P), z = this.valueToPosition(x[P * 2], x[P * 2 + 1]), oe = this.vectorElems_[P];\n oe.setAttributeNS(null, \"x1\", String(L.x)), oe.setAttributeNS(null, \"y1\", String(L.y)), oe.setAttributeNS(null, \"x2\", String(z.x)), oe.setAttributeNS(null, \"y2\", String(z.y));\n const Qe = this.handleElems_[P];\n Qe.style.left = `${z.x}px`, Qe.style.top = `${z.y}px`;\n });\n }\n onValueChange_() {\n this.refresh();\n }\n }\n const Es = 24, _n = 400, Si = 1e3, Ct = y(\"cbzprv\");\n class qt {\n constructor(o, p) {\n this.stopped_ = !0, this.startTime_ = -1, this.onDispose_ = this.onDispose_.bind(this), this.onTimer_ = this.onTimer_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.element = o.createElement(\"div\"), this.element.classList.add(Ct()), p.viewProps.bindClassModifiers(this.element);\n const f = o.createElementNS(we, \"svg\");\n f.classList.add(Ct(\"g\")), this.element.appendChild(f), this.svgElem_ = f;\n const x = o.createElementNS(we, \"path\");\n x.classList.add(Ct(\"t\")), this.svgElem_.appendChild(x), this.ticksElem_ = x;\n const P = o.createElement(\"div\");\n P.classList.add(Ct(\"m\")), this.element.appendChild(P), this.markerElem_ = P, this.value_ = p.value, this.value_.emitter.on(\"change\", this.onValueChange_), p.viewProps.handleDispose(this.onDispose_), at(this.element, () => {\n this.refresh();\n });\n }\n play() {\n this.stop(), this.updateMarker_(0), this.markerElem_.classList.add(Ct(\"m\", \"a\")), this.startTime_ = (/* @__PURE__ */ new Date()).getTime() + _n, this.stopped_ = !1, requestAnimationFrame(this.onTimer_);\n }\n stop() {\n this.stopped_ = !0, this.markerElem_.classList.remove(Ct(\"m\", \"a\"));\n }\n onDispose_() {\n this.stop();\n }\n updateMarker_(o) {\n const p = this.value_.rawValue.y($t(o, 0, 1));\n this.markerElem_.style.left = `${p * 100}%`;\n }\n refresh() {\n const o = this.svgElem_.getBoundingClientRect(), p = o.width, f = o.height, x = [], P = this.value_.rawValue;\n for (let L = 0; L < Es; L++) {\n const z = Me(L, 0, Es - 1, 0, 1), oe = Me(P.y(z), 0, 1, 0, p);\n x.push(`M ${oe},0 v${f}`);\n }\n this.ticksElem_.setAttributeNS(null, \"d\", x.join(\" \"));\n }\n onTimer_() {\n if (this.startTime_ === null)\n return;\n const o = (/* @__PURE__ */ new Date()).getTime() - this.startTime_, p = o / Si;\n this.updateMarker_(p), o > Si + _n && this.stop(), this.stopped_ || requestAnimationFrame(this.onTimer_);\n }\n onValueChange_() {\n this.refresh(), this.play();\n }\n }\n function Oe(m, o, p, f) {\n const x = p - m, P = f - o;\n return Math.sqrt(x * x + P * P);\n }\n function wn(m, o, p, f) {\n const x = Oe(m, o, p, f), P = Math.atan2(f - o, p - m), L = Math.round(P / (Math.PI / 4)) * Math.PI / 4;\n return {\n x: m + Math.cos(L) * x,\n y: o + Math.sin(L) * x\n };\n }\n class lt {\n constructor(o, p) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = p.baseStep, this.value = p.value, this.sel_ = H(0), this.viewProps = p.viewProps, this.view = new Re(o, {\n selection: this.sel_,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_), this.prevView_ = new qt(o, {\n value: this.value,\n viewProps: this.viewProps\n }), this.prevView_.element.addEventListener(\"mousedown\", (x) => {\n x.stopImmediatePropagation(), x.preventDefault(), this.prevView_.play();\n }), this.view.previewElement.appendChild(this.prevView_.element);\n const f = new qn(this.view.element);\n f.emitter.on(\"down\", this.onPointerDown_), f.emitter.on(\"move\", this.onPointerMove_), f.emitter.on(\"up\", this.onPointerUp_);\n }\n refresh() {\n this.view.refresh(), this.prevView_.refresh(), this.prevView_.play();\n }\n updateValue_(o, p, f) {\n const x = this.sel_.rawValue, P = this.value.rawValue.toObject(), L = this.view.positionToValue(o.x, o.y), z = p ? wn(x, x, L.x, L.y) : L;\n P[x * 2] = z.x, P[x * 2 + 1] = z.y, this.value.setRawValue(new Et(...P), f);\n }\n onPointerDown_(o) {\n const p = o.data;\n if (!p.point)\n return;\n const f = this.value.rawValue, x = this.view.valueToPosition(f.x1, f.y1), P = Oe(p.point.x, p.point.y, x.x, x.y), L = this.view.valueToPosition(f.x2, f.y2), z = Oe(p.point.x, p.point.y, L.x, L.y);\n this.sel_.rawValue = P <= z ? 0 : 1, this.updateValue_(p.point, o.shiftKey, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(o) {\n const p = o.data;\n p.point && this.updateValue_(p.point, o.shiftKey, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(o) {\n const p = o.data;\n p.point && this.updateValue_(p.point, o.shiftKey, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(o) {\n ls(o.key) && o.preventDefault();\n const p = this.sel_.rawValue, f = this.value.rawValue.toObject();\n f[p * 2] += Kt(this.baseStep_, yi(o)), f[p * 2 + 1] += Kt(this.baseStep_, mn(o)), this.value.setRawValue(new Et(...f), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(o) {\n ls(o.key) && o.preventDefault();\n const p = Kt(this.baseStep_, yi(o)), f = Kt(this.baseStep_, mn(o));\n p === 0 && f === 0 || this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n class Cs {\n constructor(o, p) {\n this.value = p.value, this.viewProps = p.viewProps, this.view = new xs(o, {\n viewProps: this.viewProps\n }), this.gc_ = new lt(o, {\n baseStep: p.axis.baseStep,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.graphElement.appendChild(this.gc_.view.element);\n const f = Object.assign(Object.assign({}, p.axis), { constraint: new St({ max: 1, min: 0 }) }), x = Object.assign(Object.assign({}, p.axis), { constraint: void 0 });\n this.tc_ = new Lt(o, {\n assembly: ki,\n axes: [f, x, f, x],\n parser: dn,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.textElement.appendChild(this.tc_.view.element);\n }\n get allFocusableElements() {\n return [\n this.gc_.view.element,\n ...this.tc_.view.textViews.map((o) => o.inputElement)\n ];\n }\n refresh() {\n this.gc_.refresh();\n }\n }\n class Jn {\n constructor(o, p) {\n this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = p.value, this.viewProps = p.viewProps, this.foldable_ = zn(p.expanded), this.view = new ys(o, {\n foldable: this.foldable_,\n pickerLayout: p.pickerLayout,\n viewProps: this.viewProps\n }), this.view.buttonElement.addEventListener(\"blur\", this.onButtonBlur_), this.view.buttonElement.addEventListener(\"click\", this.onButtonClick_), this.tc_ = new Ut(o, {\n parser: xr,\n props: K.fromObject({\n formatter: yr\n }),\n value: this.value,\n viewProps: this.viewProps\n }), this.view.textElement.appendChild(this.tc_.view.element), this.popC_ = p.pickerLayout === \"popup\" ? new ie(o, {\n viewProps: this.viewProps\n }) : null;\n const f = new Cs(o, {\n axis: p.axis,\n value: this.value,\n viewProps: this.viewProps\n });\n f.allFocusableElements.forEach((x) => {\n x.addEventListener(\"blur\", this.onPopupChildBlur_), x.addEventListener(\"keydown\", this.onPopupChildKeydown_);\n }), this.pickerC_ = f, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), S(this.popC_.shows, (x) => {\n x && f.refresh();\n }), Ht({\n primary: this.foldable_.value(\"expanded\"),\n secondary: this.popC_.shows,\n forward: (x) => x.rawValue,\n backward: (x, P) => P.rawValue\n })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Gn(this.foldable_, this.view.pickerElement));\n }\n onButtonBlur_(o) {\n if (!this.popC_)\n return;\n const p = o.relatedTarget;\n (!p || !this.popC_.view.element.contains(p)) && (this.popC_.shows.rawValue = !1);\n }\n onButtonClick_() {\n this.foldable_.set(\"expanded\", !this.foldable_.get(\"expanded\")), this.foldable_.get(\"expanded\") && this.pickerC_.allFocusableElements[0].focus();\n }\n onPopupChildBlur_(o) {\n if (!this.popC_)\n return;\n const p = this.popC_.view.element, f = an(o);\n f && p.contains(f) || f && f === this.view.buttonElement && !Xe(p.ownerDocument) || (this.popC_.shows.rawValue = !1);\n }\n onPopupChildKeydown_(o) {\n this.popC_ && o.key === \"Escape\" && (this.popC_.shows.rawValue = !1);\n }\n }\n function Ai() {\n return new ur({\n assembly: ki,\n components: [0, 1, 2, 3].map((m) => m % 2 === 0 ? new St({\n min: 0,\n max: 1\n }) : void 0)\n });\n }\n const It = {\n id: \"cubic-bezier\",\n type: \"blade\",\n css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',\n accept(m) {\n const o = he, p = ee(m, {\n value: o.required.array(o.required.number),\n view: o.required.constant(\"cubicbezier\"),\n expanded: o.optional.boolean,\n label: o.optional.string,\n picker: o.optional.custom((f) => f === \"inline\" || f === \"popup\" ? f : void 0)\n });\n return p ? { params: p } : null;\n },\n controller(m) {\n var o, p;\n const f = new Et(...m.params.value), x = H(f, {\n constraint: Ai(),\n equals: Et.equals\n }), P = new Jn(m.document, {\n axis: {\n baseStep: 0.1,\n textProps: K.fromObject({\n draggingScale: 0.01,\n formatter: Le(2)\n })\n },\n expanded: (o = m.params.expanded) !== null && o !== void 0 ? o : !1,\n pickerLayout: (p = m.params.picker) !== null && p !== void 0 ? p : \"popup\",\n value: x,\n viewProps: m.viewProps\n });\n return new Mt(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: P\n });\n },\n api(m) {\n return !(m.controller instanceof Mt) || !(m.controller.valueController instanceof Jn) ? null : new ws(m.controller);\n }\n };\n class _e extends s {\n begin() {\n this.controller_.valueController.begin();\n }\n end() {\n this.controller_.valueController.end();\n }\n }\n const Li = 20;\n class Se {\n constructor() {\n this.start_ = null, this.duration_ = 0, this.fps_ = null, this.frameCount_ = 0, this.timestamps_ = [];\n }\n get duration() {\n return this.duration_;\n }\n get fps() {\n return this.fps_;\n }\n begin(o) {\n this.start_ = o.getTime();\n }\n calculateFps_(o) {\n if (this.timestamps_.length === 0)\n return null;\n const p = this.timestamps_[0];\n return 1e3 * (this.frameCount_ - p.frameCount) / (o - p.time);\n }\n compactTimestamps_() {\n if (this.timestamps_.length <= Li)\n return;\n const o = this.timestamps_.length - Li;\n this.timestamps_.splice(0, o);\n const p = this.timestamps_[0].frameCount;\n this.timestamps_.forEach((f) => {\n f.frameCount -= p;\n }), this.frameCount_ -= p;\n }\n end(o) {\n if (this.start_ === null)\n return;\n const p = o.getTime();\n this.duration_ = p - this.start_, this.start_ = null, this.fps_ = this.calculateFps_(p), this.timestamps_.push({\n frameCount: this.frameCount_,\n time: p\n }), ++this.frameCount_, this.compactTimestamps_();\n }\n }\n const Qt = y(\"fps\");\n class He {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(Qt()), p.viewProps.bindClassModifiers(this.element), this.graphElement = o.createElement(\"div\"), this.graphElement.classList.add(Qt(\"g\")), this.element.appendChild(this.graphElement);\n const f = o.createElement(\"div\");\n f.classList.add(Qt(\"l\")), this.element.appendChild(f);\n const x = o.createElement(\"span\");\n x.classList.add(Qt(\"v\")), x.textContent = \"--\", f.appendChild(x), this.valueElement = x;\n const P = o.createElement(\"span\");\n P.classList.add(Qt(\"u\")), P.textContent = \"FPS\", f.appendChild(P);\n }\n }\n class Ri {\n constructor(o, p) {\n this.stopwatch_ = new Se(), this.onTick_ = this.onTick_.bind(this), this.ticker_ = p.ticker, this.ticker_.emitter.on(\"tick\", this.onTick_), this.value_ = p.value, this.viewProps = p.viewProps, this.view = new He(o, {\n viewProps: this.viewProps\n }), this.graphC_ = new fr(o, {\n formatter: Le(0),\n lineCount: p.lineCount,\n props: K.fromObject({\n maxValue: p.maxValue,\n minValue: p.minValue\n }),\n value: this.value_,\n viewProps: this.viewProps\n }), this.view.graphElement.appendChild(this.graphC_.view.element), this.viewProps.handleDispose(() => {\n this.graphC_.viewProps.set(\"disposed\", !0), this.ticker_.dispose();\n });\n }\n begin() {\n this.stopwatch_.begin(/* @__PURE__ */ new Date());\n }\n end() {\n this.stopwatch_.end(/* @__PURE__ */ new Date());\n }\n onTick_() {\n const o = this.stopwatch_.fps;\n if (o !== null) {\n const p = this.value_.rawValue;\n this.value_.rawValue = ir(p, o), this.view.valueElement.textContent = o.toFixed(0);\n }\n }\n }\n function yn(m, o) {\n return o === 0 ? new Hn() : new cn(m, o ?? mr.monitor.defaultInterval);\n }\n const Ii = {\n id: \"fpsgraph\",\n type: \"blade\",\n accept(m) {\n const o = he, p = ee(m, {\n view: o.required.constant(\"fpsgraph\"),\n interval: o.optional.number,\n label: o.optional.string,\n lineCount: o.optional.number,\n max: o.optional.number,\n min: o.optional.number\n });\n return p ? { params: p } : null;\n },\n controller(m) {\n var o, p, f, x;\n const P = (o = m.params.interval) !== null && o !== void 0 ? o : 500;\n return new st(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: new Ri(m.document, {\n lineCount: (p = m.params.lineCount) !== null && p !== void 0 ? p : 2,\n maxValue: (f = m.params.max) !== null && f !== void 0 ? f : 90,\n minValue: (x = m.params.min) !== null && x !== void 0 ? x : 0,\n ticker: yn(m.document, P),\n value: os(80),\n viewProps: m.viewProps\n })\n });\n },\n api(m) {\n return !(m.controller instanceof st) || !(m.controller.valueController instanceof Ri) ? null : new _e(m.controller);\n }\n };\n class Ke {\n constructor(o, p) {\n this.min = o, this.max = p;\n }\n static isObject(o) {\n if (typeof o != \"object\" || o === null)\n return !1;\n const p = o.min, f = o.max;\n return !(typeof p != \"number\" || typeof f != \"number\");\n }\n static equals(o, p) {\n return o.min === p.min && o.max === p.max;\n }\n get length() {\n return this.max - this.min;\n }\n toObject() {\n return {\n min: this.min,\n max: this.max\n };\n }\n }\n const Vi = {\n fromComponents: (m) => new Ke(m[0], m[1]),\n toComponents: (m) => [m.min, m.max]\n };\n class xn {\n constructor(o) {\n this.edge = o;\n }\n constrain(o) {\n var p, f, x, P, L, z, oe, Qe;\n if (o.min <= o.max)\n return new Ke((f = (p = this.edge) === null || p === void 0 ? void 0 : p.constrain(o.min)) !== null && f !== void 0 ? f : o.min, (P = (x = this.edge) === null || x === void 0 ? void 0 : x.constrain(o.max)) !== null && P !== void 0 ? P : o.max);\n const Ze = (o.min + o.max) / 2;\n return new Ke((z = (L = this.edge) === null || L === void 0 ? void 0 : L.constrain(Ze)) !== null && z !== void 0 ? z : Ze, (Qe = (oe = this.edge) === null || oe === void 0 ? void 0 : oe.constrain(Ze)) !== null && Qe !== void 0 ? Qe : Ze);\n }\n }\n const Di = y(\"rsltxt\");\n class ei {\n constructor(o, p) {\n this.sliderView_ = p.sliderView, this.textView_ = p.textView, this.element = o.createElement(\"div\"), this.element.classList.add(Di());\n const f = o.createElement(\"div\");\n f.classList.add(Di(\"s\")), f.appendChild(this.sliderView_.element), this.element.appendChild(f);\n const x = o.createElement(\"div\");\n x.classList.add(Di(\"t\")), x.appendChild(this.textView_.element), this.element.appendChild(x);\n }\n }\n const tt = y(\"rsl\");\n class En {\n constructor(o, p) {\n this.onSliderPropsChange_ = this.onSliderPropsChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.sliderProps_ = p.sliderProps, this.sliderProps_.emitter.on(\"change\", this.onSliderPropsChange_), this.element = o.createElement(\"div\"), this.element.classList.add(tt()), p.viewProps.bindClassModifiers(this.element), this.value_ = p.value, this.value_.emitter.on(\"change\", this.onValueChange_);\n const f = o.createElement(\"div\");\n f.classList.add(tt(\"t\")), this.element.appendChild(f), this.trackElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(tt(\"b\")), f.appendChild(x), this.barElement = x;\n const P = [\"min\", \"max\"].map((L) => {\n const z = o.createElement(\"div\");\n return z.classList.add(tt(\"k\"), tt(\"k\", L)), f.appendChild(z), z;\n });\n this.knobElements = [P[0], P[1]], this.update_();\n }\n valueToX_(o) {\n const p = this.sliderProps_.get(\"minValue\"), f = this.sliderProps_.get(\"maxValue\");\n return $t(Me(o, p, f, 0, 1), 0, 1) * 100;\n }\n update_() {\n const o = this.value_.rawValue;\n o.length === 0 ? this.element.classList.add(tt(void 0, \"zero\")) : this.element.classList.remove(tt(void 0, \"zero\"));\n const p = [this.valueToX_(o.min), this.valueToX_(o.max)];\n this.barElement.style.left = `${p[0]}%`, this.barElement.style.right = `${100 - p[1]}%`, this.knobElements.forEach((f, x) => {\n f.style.left = `${p[x]}%`;\n });\n }\n onSliderPropsChange_() {\n this.update_();\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Oi {\n constructor(o, p) {\n this.grabbing_ = null, this.grabOffset_ = 0, this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.sliderProps = p.sliderProps, this.viewProps = p.viewProps, this.value = p.value, this.view = new En(o, {\n sliderProps: this.sliderProps,\n value: this.value,\n viewProps: p.viewProps\n });\n const f = new qn(this.view.trackElement);\n f.emitter.on(\"down\", this.onPointerDown_), f.emitter.on(\"move\", this.onPointerMove_), f.emitter.on(\"up\", this.onPointerUp_);\n }\n ofs_() {\n return this.grabbing_ === \"min\" ? this.view.knobElements[0].getBoundingClientRect().width / 2 : this.grabbing_ === \"max\" ? -this.view.knobElements[1].getBoundingClientRect().width / 2 : 0;\n }\n valueFromData_(o) {\n if (!o.point)\n return null;\n const p = (o.point.x + this.ofs_()) / o.bounds.width, f = this.sliderProps.get(\"minValue\"), x = this.sliderProps.get(\"maxValue\");\n return Me(p, 0, 1, f, x);\n }\n onPointerDown_(o) {\n if (!o.data.point)\n return;\n const p = o.data.point.x / o.data.bounds.width, f = this.value.rawValue, x = this.sliderProps.get(\"minValue\"), P = this.sliderProps.get(\"maxValue\"), L = Me(f.min, x, P, 0, 1), z = Me(f.max, x, P, 0, 1);\n Math.abs(z - p) <= 0.025 ? this.grabbing_ = \"max\" : Math.abs(L - p) <= 0.025 ? this.grabbing_ = \"min\" : p >= L && p <= z ? (this.grabbing_ = \"length\", this.grabOffset_ = Me(p - L, 0, 1, 0, P - x)) : p < L ? (this.grabbing_ = \"min\", this.onPointerMove_(o)) : p > z && (this.grabbing_ = \"max\", this.onPointerMove_(o));\n }\n applyPointToValue_(o, p) {\n const f = this.valueFromData_(o);\n if (f === null)\n return;\n const x = this.sliderProps.get(\"minValue\"), P = this.sliderProps.get(\"maxValue\");\n if (this.grabbing_ === \"min\")\n this.value.setRawValue(new Ke(f, this.value.rawValue.max), p);\n else if (this.grabbing_ === \"max\")\n this.value.setRawValue(new Ke(this.value.rawValue.min, f), p);\n else if (this.grabbing_ === \"length\") {\n const L = this.value.rawValue.length;\n let z = f - this.grabOffset_, oe = z + L;\n z < x ? (z = x, oe = x + L) : oe > P && (z = P - L, oe = P), this.value.setRawValue(new Ke(z, oe), p);\n }\n }\n onPointerMove_(o) {\n this.applyPointToValue_(o.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(o) {\n this.applyPointToValue_(o.data, {\n forceEmit: !0,\n last: !0\n }), this.grabbing_ = null;\n }\n }\n class bt {\n constructor(o, p) {\n this.value = p.value, this.viewProps = p.viewProps, this.sc_ = new Oi(o, p);\n const f = {\n baseStep: p.baseStep,\n constraint: p.constraint,\n textProps: K.fromObject({\n draggingScale: p.draggingScale,\n formatter: p.formatter\n })\n };\n this.tc_ = new Lt(o, {\n assembly: Vi,\n axes: [f, f],\n parser: p.parser,\n value: this.value,\n viewProps: p.viewProps\n }), this.view = new ei(o, {\n sliderView: this.sc_.view,\n textView: this.tc_.view\n });\n }\n get textController() {\n return this.tc_;\n }\n }\n function Ps(m) {\n return Ke.isObject(m) ? new Ke(m.min, m.max) : new Ke(0, 0);\n }\n function Ni(m, o) {\n m.writeProperty(\"max\", o.max), m.writeProperty(\"min\", o.min);\n }\n function Cr(m) {\n const o = [], p = gn(m);\n p && o.push(p);\n const f = dr(m);\n return f && o.push(f), new xn(new Kn(o));\n }\n const ti = {\n id: \"input-interval\",\n type: \"input\",\n css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',\n accept: (m, o) => {\n if (!Ke.isObject(m))\n return null;\n const p = he, f = ee(o, {\n format: p.optional.function,\n max: p.optional.number,\n min: p.optional.number,\n step: p.optional.number\n });\n return f ? {\n initialValue: new Ke(m.min, m.max),\n params: f\n } : null;\n },\n binding: {\n reader: (m) => Ps,\n constraint: (m) => Cr(m.params),\n equals: Ke.equals,\n writer: (m) => Ni\n },\n controller(m) {\n var o;\n const p = m.value, f = m.constraint;\n if (!(f instanceof xn))\n throw g.shouldNeverHappen();\n const x = (p.rawValue.min + p.rawValue.max) / 2, P = (o = m.params.format) !== null && o !== void 0 ? o : Le(vn(f.edge, x)), L = f.edge && xt(f.edge, ft);\n if (L)\n return new bt(m.document, {\n baseStep: Ei(f.edge),\n constraint: f.edge,\n draggingScale: Qn(f.edge, x),\n formatter: P,\n parser: dn,\n sliderProps: new K({\n maxValue: L.values.value(\"max\"),\n minValue: L.values.value(\"min\")\n }),\n value: p,\n viewProps: m.viewProps\n });\n const z = {\n baseStep: Ei(f.edge),\n constraint: f.edge,\n textProps: K.fromObject({\n draggingScale: x,\n formatter: P\n })\n };\n return new Lt(m.document, {\n assembly: Vi,\n axes: [z, z],\n parser: dn,\n value: p,\n viewProps: m.viewProps\n });\n }\n };\n class Vt {\n constructor(o) {\n this.controller_ = o;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(o) {\n this.controller_.viewProps.set(\"disabled\", o);\n }\n get title() {\n var o;\n return (o = this.controller_.props.get(\"title\")) !== null && o !== void 0 ? o : \"\";\n }\n set title(o) {\n this.controller_.props.set(\"title\", o);\n }\n }\n class Dt extends c {\n constructor(o, p, f, x, P) {\n super(o, x, P), this.cell = p, this.index = f;\n }\n }\n class Cn extends s {\n constructor(o) {\n super(o), this.cellToApiMap_ = /* @__PURE__ */ new Map(), this.controller_.valueController.cellControllers.forEach((f) => {\n const x = new Vt(f);\n this.cellToApiMap_.set(f, x);\n });\n }\n get value() {\n return this.controller_.value;\n }\n cell(o, p) {\n const f = this.controller_.valueController, x = f.cellControllers[p * f.size[0] + o];\n return this.cellToApiMap_.get(x);\n }\n on(o, p) {\n const f = p.bind(this);\n this.controller_.value.emitter.on(o, (x) => {\n const P = this.controller_.valueController, L = P.findCellByValue(x.rawValue);\n if (!L)\n return;\n const z = this.cellToApiMap_.get(L);\n if (!z)\n return;\n const oe = P.cellControllers.indexOf(L);\n f(new Dt(this, z, [oe % P.size[0], Math.floor(oe / P.size[0])], x.rawValue, void 0));\n });\n }\n }\n const Pn = y(\"rad\");\n class Ts {\n constructor(o, p) {\n this.element = o.createElement(\"div\"), this.element.classList.add(Pn()), p.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"label\");\n f.classList.add(Pn(\"l\")), this.element.appendChild(f);\n const x = o.createElement(\"input\");\n x.classList.add(Pn(\"i\")), x.name = p.name, x.type = \"radio\", p.viewProps.bindDisabled(x), f.appendChild(x), this.inputElement = x;\n const P = o.createElement(\"div\");\n P.classList.add(Pn(\"b\")), f.appendChild(P);\n const L = o.createElement(\"div\");\n L.classList.add(Pn(\"t\")), P.appendChild(L), R(p.props, \"title\", (z) => {\n L.textContent = z;\n });\n }\n }\n class ks {\n constructor(o, p) {\n this.props = p.props, this.viewProps = p.viewProps, this.view = new Ts(o, {\n name: p.name,\n props: this.props,\n viewProps: this.viewProps\n });\n }\n }\n class ni {\n constructor(o, p) {\n this.cellCs_ = [], this.cellValues_ = [], this.onCellInputChange_ = this.onCellInputChange_.bind(this), this.size = p.size;\n const [f, x] = this.size;\n for (let P = 0; P < x; P++)\n for (let L = 0; L < f; L++) {\n const z = new ks(o, {\n name: p.groupName,\n props: K.fromObject(Object.assign({}, p.cellConfig(L, P))),\n viewProps: be.create()\n });\n this.cellCs_.push(z), this.cellValues_.push(p.cellConfig(L, P).value);\n }\n this.value = p.value, S(this.value, (P) => {\n const L = this.findCellByValue(P);\n L && (L.view.inputElement.checked = !0);\n }), this.viewProps = be.create(), this.view = new yt(o, {\n viewProps: this.viewProps,\n viewName: \"radgrid\"\n }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((P) => {\n P.view.inputElement.addEventListener(\"change\", this.onCellInputChange_), this.view.element.appendChild(P.view.element);\n });\n }\n get cellControllers() {\n return this.cellCs_;\n }\n findCellByValue(o) {\n const p = this.cellValues_.findIndex((f) => f === o);\n return p < 0 ? null : this.cellCs_[p];\n }\n onCellInputChange_(o) {\n const p = o.currentTarget, f = this.cellCs_.findIndex((x) => x.view.inputElement === p);\n f < 0 || (this.value.rawValue = this.cellValues_[f]);\n }\n }\n const Ot = function() {\n return {\n id: \"radiogrid\",\n type: \"blade\",\n accept(m) {\n const o = he, p = ee(m, {\n cells: o.required.function,\n groupName: o.required.string,\n size: o.required.array(o.required.number),\n value: o.required.raw,\n view: o.required.constant(\"radiogrid\"),\n label: o.optional.string\n });\n return p ? { params: p } : null;\n },\n controller(m) {\n return new Mt(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: new ni(m.document, {\n groupName: m.params.groupName,\n cellConfig: m.params.cells,\n size: m.params.size,\n value: H(m.params.value)\n })\n });\n },\n api(m) {\n return !(m.controller instanceof Mt) || !(m.controller.valueController instanceof ni) ? null : new Cn(m.controller);\n }\n };\n }();\n function Fi(m) {\n return {\n id: \"input-radiogrid\",\n type: \"input\",\n accept(o, p) {\n if (!m.isType(o))\n return null;\n const f = he, x = ee(p, {\n cells: f.required.function,\n groupName: f.required.string,\n size: f.required.array(f.required.number),\n view: f.required.constant(\"radiogrid\")\n });\n return x ? {\n initialValue: o,\n params: x\n } : null;\n },\n binding: m.binding,\n controller: (o) => new ni(o.document, {\n cellConfig: o.params.cells,\n groupName: o.params.groupName,\n size: o.params.size,\n value: o.value\n })\n };\n }\n const Pr = Fi({\n isType: (m) => typeof m == \"number\",\n binding: {\n reader: (m) => tr,\n writer: (m) => et\n }\n }), Tr = Fi({\n isType: (m) => typeof m == \"string\",\n binding: {\n reader: (m) => rs,\n writer: (m) => et\n }\n }), kr = Fi({\n isType: (m) => typeof m == \"boolean\",\n binding: {\n reader: (m) => pn,\n writer: (m) => et\n }\n }), Ms = [\n br,\n It,\n Ii,\n ti,\n Ot,\n kr,\n Pr,\n Tr\n ];\n r.ButtonCellApi = gs, r.ButtonGridApi = _s, r.ButtonGridController = Pi, r.CubicBezier = Et, r.CubicBezierApi = ws, r.CubicBezierAssembly = ki, r.CubicBezierController = Jn, r.CubicBezierGraphController = lt, r.CubicBezierGraphView = Re, r.CubicBezierPickerController = Cs, r.CubicBezierPickerView = xs, r.CubicBezierPreviewView = qt, r.CubicBezierView = ys, r.FpsGraphBladeApi = _e, r.FpsGraphController = Ri, r.FpsView = He, r.Fpswatch = Se, r.Interval = Ke, r.IntervalAssembly = Vi, r.IntervalConstraint = xn, r.RadioCellApi = Vt, r.RadioController = ks, r.RadioGridApi = Cn, r.RadioGridController = ni, r.RadioView = Ts, r.RangeSliderController = Oi, r.RangeSliderTextController = bt, r.RangeSliderTextView = ei, r.RangeSliderView = En, r.TpRadioGridChangeEvent = Dt, r.plugins = Ms, Object.defineProperty(r, \"__esModule\", { value: !0 });\n });\n})(Ph, Ji);\nconst Th = /* @__PURE__ */ ih(Ji), kh = /* @__PURE__ */ Np({\n __proto__: null,\n default: Th\n}, [Ji]);\nlet Ln, Ds;\nconst md = (b = \"tres-container\") => {\n Ln || (Ln = new js.Pane({\n container: document.querySelector(b) || void 0\n }), Ln.registerPlugin(kh), Ds = Ln.addBlade({\n view: \"fpsgraph\",\n label: \"fpsgraph\"\n }));\n function i() {\n Ln && Ln.dispose();\n }\n return Pa(() => {\n const { onBeforeLoop: r, onAfterLoop: s, resume: a } = Ta();\n a(), r(() => Ds.begin()), s(() => Ds.end());\n }), Ca(() => {\n i();\n }), { pane: Ln, fpsGraph: Ds, disposeTweakPane: i };\n};\nfunction fd(b, i) {\n const r = on(i), s = new Ip(r.value), a = Wc({});\n b.forEach((u) => {\n const h = s.clipAction(u, r.value);\n a[u.name] = h;\n });\n const { onLoop: c } = Ta();\n return c(({ delta: u }) => {\n s.update(u);\n }), {\n actions: a,\n mixer: s\n };\n}\nlet Os = null;\nfunction Mh(b, i) {\n return (r) => {\n i && i(r), b.draco && (Os || (Os = new rh()), Os.setDecoderPath(b.decoderPath || \"https://www.gstatic.com/draco/versioned/decoders/1.4.3/\"), r.setDRACOLoader(Os));\n };\n}\nasync function Sh(b, i = {\n draco: !1\n}, r) {\n return await mo(su, b, Mh(i, r));\n}\nconst vd = Ie({\n name: \"GLTFModel\",\n props: [\"path\", \"draco\", \"decoderPath\"],\n async setup(b, { expose: i }) {\n const { state: r } = Fn(), s = on();\n i({ model: s });\n const { scene: a } = await Sh(b.path, { draco: b.draco, decoderPath: b.decoderPath });\n return s.value = a, r.scene && r.scene.add(a), () => {\n };\n }\n});\nasync function Ah(b) {\n return await mo(Uu, b);\n}\nconst bd = Ie({\n name: \"FBXModel\",\n props: [\"path\"],\n async setup(b, { expose: i }) {\n const { state: r } = Fn();\n let s = null;\n function a() {\n return s;\n }\n return i({ getModel: a }), s = await Ah(b.path), r.scene && s.isObject3D && r.scene.add(s), () => {\n };\n }\n}), Lh = { key: 0 }, Rh = [\"args\", \"center\"], gd = /* @__PURE__ */ Ie({\n __name: \"Text3D\",\n props: {\n font: null,\n text: null,\n size: { default: 0.5 },\n height: { default: 0.2 },\n curveSegments: { default: 5 },\n bevelEnabled: { type: Boolean, default: !0 },\n bevelThickness: { default: 0.05 },\n bevelSize: { default: 0.02 },\n bevelOffset: { default: 0 },\n bevelSegments: { default: 4 },\n center: { type: Boolean, default: !1 }\n },\n async setup(b) {\n let i, r;\n const s = b, { extend: a } = Fn();\n a({ TextGeometry: Vu });\n const c = new eh(), u = Jc(), h = Yi(() => {\n var w;\n return s.text ? s.text : u.default ? (w = u.default()[0].children) == null ? void 0 : w.trim() : \"TresJS\";\n }), d = ([i, r] = ep(() => new Promise((w, _) => {\n try {\n typeof s.font == \"string\" ? c.load(s.font, (y) => {\n w(y);\n }) : w(s.font);\n } catch (y) {\n _(console.error(\"cientos\", y));\n }\n })), i = await i, r(), i), g = Yi(() => ({\n font: d,\n size: s.size,\n height: s.height,\n curveSegments: s.curveSegments,\n bevelEnabled: s.bevelEnabled,\n bevelThickness: s.bevelThickness,\n bevelSize: s.bevelSize,\n bevelOffset: s.bevelOffset,\n bevelSegments: s.bevelSegments\n }));\n return (w, _) => jt(d) ? (Be(), je(\"TresMesh\", Lh, [\n jt(h) ? (Be(), je(\"TresTextGeometry\", {\n key: 0,\n args: [jt(h), jt(g)],\n center: b.center\n }, null, 8, Rh)) : to(\"\", !0),\n $e(w.$slots, \"default\")\n ])) : to(\"\", !0);\n }\n}), Ih = [\"rotation\"], Vh = [\"args\"], Dh = [\"color\"], _d = /* @__PURE__ */ Ie({\n __name: \"Plane\",\n props: {\n args: { default: () => [1, 1] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"planeRef\",\n ref: r,\n rotation: [-Math.PI / 2, 0, 0]\n }, s.$attrs), [\n xe(\"TresPlaneGeometry\", { args: b.args }, null, 8, Vh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Dh)\n ])\n ], 16, Ih));\n }\n}), Oh = [\"args\"], Nh = [\"color\"], wd = /* @__PURE__ */ Ie({\n __name: \"Box\",\n props: {\n args: { default: () => [1, 1, 1] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"boxRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresBoxGeometry\", { args: b.args }, null, 8, Oh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Nh)\n ])\n ], 16));\n }\n}), Fh = [\"args\"], Bh = [\"color\"], yd = /* @__PURE__ */ Ie({\n __name: \"Sphere\",\n props: {\n args: { default: () => [2, 32, 16] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"sphereRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresSphereGeometry\", { args: b.args }, null, 8, Fh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Bh)\n ])\n ], 16));\n }\n}), jh = [\"args\"], zh = [\"color\"], xd = /* @__PURE__ */ Ie({\n __name: \"Torus\",\n props: {\n args: { default: () => [1, 1, 16, 80] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"torusRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresTorusGeometry\", { args: b.args }, null, 8, jh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, zh)\n ])\n ], 16));\n }\n}), Uh = [\"args\"], Gh = [\"color\"], Ed = /* @__PURE__ */ Ie({\n __name: \"TorusKnot\",\n props: {\n args: { default: () => [1, 0.4, 64, 8] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"torusKnotRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresTorusKnotGeometry\", { args: b.args }, null, 8, Uh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Gh)\n ])\n ], 16));\n }\n}), Hh = [\"args\"], Kh = [\"color\"], Cd = /* @__PURE__ */ Ie({\n __name: \"Circle\",\n props: {\n args: { default: () => [1, 32, 0, Math.PI * 2] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"circleRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresCircleGeometry\", { args: b.args }, null, 8, Hh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Kh)\n ])\n ], 16));\n }\n}), $h = [\"args\"], Xh = [\"color\"], Pd = /* @__PURE__ */ Ie({\n __name: \"Cone\",\n props: {\n args: { default: () => [1, 1, 12, !1, 0, Math.PI * 2] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"coneRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresConeGeometry\", { args: b.args }, null, 8, $h),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Xh)\n ])\n ], 16));\n }\n}), Yh = [\"args\"], qh = [\"color\"], Td = /* @__PURE__ */ Ie({\n __name: \"Tube\",\n props: {\n args: { default: () => [\n new Vp(new $(-1, 0, 0), new $(0, 1, 0), new $(1, 0, 0)),\n 20,\n 0.2,\n 8,\n !1\n ] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"tubeRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresTubeGeometry\", { args: b.args }, null, 8, Yh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, qh)\n ])\n ], 16));\n }\n}), Qh = [\"args\"], Zh = [\"color\"], kd = /* @__PURE__ */ Ie({\n __name: \"Ring\",\n props: {\n args: { default: () => [0.5, 1, 32] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"ringRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresRingGeometry\", { args: b.args }, null, 8, Qh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, Zh)\n ])\n ], 16));\n }\n}), Wh = [\"rotation\"], Jh = [\"args\"], ed = [\"color\"], Md = /* @__PURE__ */ Ie({\n __name: \"Tetrahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"tetrahedronRef\",\n ref: r,\n rotation: [-Math.PI / 2, 0, 0]\n }, s.$attrs), [\n xe(\"TresTetrahedronGeometry\", { args: b.args }, null, 8, Jh),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, ed)\n ])\n ], 16, Wh));\n }\n}), td = [\"args\"], nd = [\"color\"], Sd = /* @__PURE__ */ Ie({\n __name: \"Icosahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"icosahedronRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresIcosahedronGeometry\", { args: b.args }, null, 8, td),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, nd)\n ])\n ], 16));\n }\n}), id = [\"args\"], sd = [\"color\"], Ad = /* @__PURE__ */ Ie({\n __name: \"Octahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"octahedronRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresOctahedronGeometry\", { args: b.args }, null, 8, id),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, sd)\n ])\n ], 16));\n }\n}), rd = [\"args\"], od = [\"color\"], Ld = /* @__PURE__ */ Ie({\n __name: \"Dodecahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(b, { expose: i }) {\n const r = Je();\n return i({\n value: r\n }), (s, a) => (Be(), je(\"TresMesh\", nt({\n ref_key: \"dodecahedronRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresDodecahedronGeometry\", { args: b.args }, null, 8, rd),\n $e(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: b.color }, null, 8, od)\n ])\n ], 16));\n }\n}), eo = {\n sunset: \"venice/venice_sunset_4k.hdr\"\n};\nasync function ad({\n files: b = [\"/px.png\", \"/nx.png\", \"/py.png\", \"/ny.png\", \"/pz.png\", \"/nz.png\"],\n blur: i = 0,\n background: r = !1,\n path: s = \"/\",\n preset: a = void 0,\n encoding: c = void 0\n}) {\n const { state: u } = Fn();\n if (a) {\n if (!(a in eo))\n throw new Error(\"Preset must be one of: \" + Object.keys(eo).join(\", \"));\n b = eo[a], s = \"https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/\";\n }\n const h = Array.isArray(b), g = await mo(\n h ? Op : sh,\n h ? [b] : b,\n (_) => {\n s && _.setPath(s), c && (_.encoding = c);\n }\n ), w = h ? g[0] : g;\n return w && (w.mapping = h ? Dp : Fa, w.encoding = c ?? h ? ht : Ba), u.scene && (u.scene.environment = w, r !== void 0 && (u.scene.background = w), i && (u.scene.backgroundBlurriness = i | 0)), w;\n}\nconst Rd = Ie({\n name: \"Environment\",\n props: [\"background\", \"blur\", \"files\", \"encoding\", \"path\", \"preset\"],\n async setup(b, { expose: i }) {\n let r = null;\n return i({ getTexture: () => r }), r = await ad(b), () => {\n };\n }\n});\nexport {\n wd as Box,\n Cd as Circle,\n Pd as Cone,\n Ld as Dodecahedron,\n Rd as Environment,\n bd as FBXModel,\n vd as GLTFModel,\n Sd as Icosahedron,\n Ad as Octahedron,\n ud as OrbitControls,\n dd as PamCameraMouse,\n _d as Plane,\n kd as Ring,\n yd as Sphere,\n Md as Tetrahedron,\n gd as Text3D,\n xd as Torus,\n Ed as TorusKnot,\n hd as TransformControls,\n Td as Tube,\n fd as useAnimations,\n ad as useEnvironment,\n Ah as useFBX,\n Sh as useGLTF,\n Eh as usePamCameraMouse,\n md as useTweakPane\n};\n"], - "mappings": "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,GAAG,EAAE,cAAc,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK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", - "names": ["we", "A", "Mt", "k"] + "sources": ["../../../../node_modules/.pnpm/@tresjs+cientos@2.0.0-beta.1_@tresjs+core@2.0.0-beta.5_three@0.150.1_vue@3.2.47/node_modules/@tresjs/cientos/dist/trescientos.js"], + "sourcesContent": ["/**\n * name: @tresjs/cientos\n * version: v2.0.0-beta.0\n * (c) 2023\n * description: Collection of useful helpers and fully functional, ready-made abstractions for Tres\n * author: Alvaro Saburido (https://github.com/alvarosabu/)\n */\nvar Jc = Object.defineProperty;\nvar eu = (v, n, r) => n in v ? Jc(v, n, { enumerable: !0, configurable: !0, writable: !0, value: r }) : v[n] = r;\nvar Zr = (v, n, r) => (eu(v, typeof n != \"symbol\" ? n + \"\" : n, r), r);\nimport { inject as la, defineComponent as Le, ref as Ut, watch as Hs, unref as it, openBlock as Ne, createElementBlock as Fe, createCommentVNode as Bs, getCurrentScope as tu, onScopeDispose as nu, getCurrentInstance as iu, onMounted as Sa, nextTick as su, shallowRef as $e, computed as Qi, watchEffect as Ks, onUnmounted as La, renderSlot as Xe, shallowReactive as ru, useSlots as ou, withAsyncContext as au, mergeProps as et, createElementVNode as xe } from \"vue\";\nimport { useTres as lu, useLogger as cu, useRenderLoop as go, useLoader as _o } from \"@tresjs/core\";\nimport { Object3D as Fn, Raycaster as uu, Vector3 as $, Quaternion as Te, Euler as On, Matrix4 as Ee, Color as ke, MeshBasicMaterial as Nn, DoubleSide as wo, LineBasicMaterial as yo, CylinderGeometry as _t, BoxGeometry as An, BufferGeometry as zt, Float32BufferAttribute as jt, Mesh as Z, Line as ue, OctahedronGeometry as Rn, PlaneGeometry as Vn, TorusGeometry as Is, SphereGeometry as pu, EventDispatcher as Aa, MOUSE as li, TOUCH as ci, PerspectiveCamera as on, Spherical as ca, Vector2 as pt, OrthographicCamera as Xi, Loader as $s, LoaderUtils as kt, FileLoader as di, SpotLight as Ra, PointLight as lo, DirectionalLight as Ia, sRGBEncoding as dt, MeshPhysicalMaterial as Bn, TangentSpaceNormalMap as hu, TextureLoader as Va, ImageBitmapLoader as du, InterleavedBuffer as mu, InterleavedBufferAttribute as fu, BufferAttribute as js, LinearFilter as zs, LinearMipmapLinearFilter as Da, RepeatWrapping as Zi, PointsMaterial as vu, Material as Wr, MeshStandardMaterial as Xs, PropertyBinding as Wi, SkinnedMesh as Oa, LineSegments as bu, LineLoop as gu, Points as _u, Group as Yi, MathUtils as yt, InterpolateLinear as Na, AnimationClip as Fa, Bone as co, Skeleton as Ba, TriangleFanDrawMode as ja, NearestFilter as wu, NearestMipmapNearestFilter as yu, LinearMipmapNearestFilter as xu, NearestMipmapLinearFilter as Eu, ClampToEdgeWrapping as uo, MirroredRepeatWrapping as Cu, InterpolateDiscrete as Pu, FrontSide as Tu, Texture as Us, TriangleStripDrawMode as ku, VectorKeyframeTrack as za, QuaternionKeyframeTrack as po, NumberKeyframeTrack as Ua, Box3 as Mu, Sphere as Su, Interpolant as Lu, ExtrudeGeometry as Au, Vector4 as Ys, Curve as Ru, MeshPhongMaterial as Jr, MeshLambertMaterial as Iu, EquirectangularReflectionMapping as Ga, AmbientLight as Vu, Uint16BufferAttribute as Du, Matrix3 as Ou, ShapePath as Nu, DataTextureLoader as Fu, HalfFloatType as Vs, FloatType as eo, DataUtils as Ds, LinearEncoding as Ha, AnimationMixer as Bu, QuadraticBezierCurve3 as ju, CubeReflectionMapping as zu, CubeTextureLoader as Uu } from \"three\";\nfunction Gu(v, n) {\n for (var r = 0; r < n.length; r++) {\n const s = n[r];\n if (typeof s != \"string\" && !Array.isArray(s)) {\n for (const a in s)\n if (a !== \"default\" && !(a in v)) {\n const c = Object.getOwnPropertyDescriptor(s, a);\n c && Object.defineProperty(v, a, c.get ? c : {\n enumerable: !0,\n get: () => s[a]\n });\n }\n }\n }\n return Object.freeze(Object.defineProperty(v, Symbol.toStringTag, { value: \"Module\" }));\n}\nfunction Ji(v) {\n return Ji = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n } : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n }, Ji(v);\n}\nfunction Hu(v, n) {\n if (Ji(v) !== \"object\" || v === null)\n return v;\n var r = v[Symbol.toPrimitive];\n if (r !== void 0) {\n var s = r.call(v, n || \"default\");\n if (Ji(s) !== \"object\")\n return s;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (n === \"string\" ? String : Number)(v);\n}\nfunction Ku(v) {\n var n = Hu(v, \"string\");\n return Ji(n) === \"symbol\" ? n : String(n);\n}\nfunction C(v, n, r) {\n return n = Ku(n), n in v ? Object.defineProperty(v, n, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : v[n] = r, v;\n}\nvar ht = Uint8Array, ln = Uint16Array, ho = Uint32Array, Ka = new ht([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n]), $a = new ht([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n]), $u = new ht([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Xa = function(v, n) {\n for (var r = new ln(31), s = 0; s < 31; ++s)\n r[s] = n += 1 << v[s - 1];\n for (var a = new ho(r[30]), s = 1; s < 30; ++s)\n for (var c = r[s]; c < r[s + 1]; ++c)\n a[c] = c - r[s] << 5 | s;\n return [r, a];\n}, Ya = Xa(Ka, 2), qa = Ya[0], Xu = Ya[1];\nqa[28] = 258, Xu[258] = 28;\nvar Yu = Xa($a, 0), qu = Yu[0], mo = new ln(32768);\nfor (var Ce = 0; Ce < 32768; ++Ce) {\n var sn = (Ce & 43690) >>> 1 | (Ce & 21845) << 1;\n sn = (sn & 52428) >>> 2 | (sn & 13107) << 2, sn = (sn & 61680) >>> 4 | (sn & 3855) << 4, mo[Ce] = ((sn & 65280) >>> 8 | (sn & 255) << 8) >>> 1;\n}\nvar qi = function(v, n, r) {\n for (var s = v.length, a = 0, c = new ln(n); a < s; ++a)\n ++c[v[a] - 1];\n var p = new ln(n);\n for (a = 0; a < n; ++a)\n p[a] = p[a - 1] + c[a - 1] << 1;\n var h;\n if (r) {\n h = new ln(1 << n);\n var d = 15 - n;\n for (a = 0; a < s; ++a)\n if (v[a])\n for (var g = a << 4 | v[a], w = n - v[a], _ = p[v[a] - 1]++ << w, y = _ | (1 << w) - 1; _ <= y; ++_)\n h[mo[_] >>> d] = g;\n } else\n for (h = new ln(s), a = 0; a < s; ++a)\n v[a] && (h[a] = mo[p[v[a] - 1]++] >>> 15 - v[a]);\n return h;\n}, ns = new ht(288);\nfor (var Ce = 0; Ce < 144; ++Ce)\n ns[Ce] = 8;\nfor (var Ce = 144; Ce < 256; ++Ce)\n ns[Ce] = 9;\nfor (var Ce = 256; Ce < 280; ++Ce)\n ns[Ce] = 7;\nfor (var Ce = 280; Ce < 288; ++Ce)\n ns[Ce] = 8;\nvar Qa = new ht(32);\nfor (var Ce = 0; Ce < 32; ++Ce)\n Qa[Ce] = 5;\nvar Qu = /* @__PURE__ */ qi(ns, 9, 1), Zu = /* @__PURE__ */ qi(Qa, 5, 1), to = function(v) {\n for (var n = v[0], r = 1; r < v.length; ++r)\n v[r] > n && (n = v[r]);\n return n;\n}, wt = function(v, n, r) {\n var s = n / 8 | 0;\n return (v[s] | v[s + 1] << 8) >> (n & 7) & r;\n}, no = function(v, n) {\n var r = n / 8 | 0;\n return (v[r] | v[r + 1] << 8 | v[r + 2] << 16) >> (n & 7);\n}, Wu = function(v) {\n return (v / 8 | 0) + (v & 7 && 1);\n}, Ju = function(v, n, r) {\n (n == null || n < 0) && (n = 0), (r == null || r > v.length) && (r = v.length);\n var s = new (v instanceof ln ? ln : v instanceof ho ? ho : ht)(r - n);\n return s.set(v.subarray(n, r)), s;\n}, ep = function(v, n, r) {\n var s = v.length;\n if (!s || r && !r.l && s < 5)\n return n || new ht(0);\n var a = !n || r, c = !r || r.i;\n r || (r = {}), n || (n = new ht(s * 3));\n var p = function(Ve) {\n var Be = n.length;\n if (Ve > Be) {\n var we = new ht(Math.max(Be * 2, Ve));\n we.set(n), n = we;\n }\n }, h = r.f || 0, d = r.p || 0, g = r.b || 0, w = r.l, _ = r.d, y = r.m, P = r.n, I = s * 8;\n do {\n if (!w) {\n r.f = h = wt(v, d, 1);\n var S = wt(v, d + 1, 3);\n if (d += 3, S)\n if (S == 1)\n w = Qu, _ = Zu, y = 9, P = 5;\n else if (S == 2) {\n var V = wt(v, d, 31) + 257, D = wt(v, d + 10, 15) + 4, Y = V + wt(v, d + 5, 31) + 1;\n d += 14;\n for (var G = new ht(Y), N = new ht(19), O = 0; O < D; ++O)\n N[$u[O]] = wt(v, d + O * 3, 7);\n d += D * 3;\n for (var H = to(N), K = (1 << H) - 1, q = qi(N, H, 1), O = 0; O < Y; ) {\n var pe = q[wt(v, d, K)];\n d += pe & 15;\n var R = pe >>> 4;\n if (R < 16)\n G[O++] = R;\n else {\n var ge = 0, ce = 0;\n for (R == 16 ? (ce = 3 + wt(v, d, 3), d += 2, ge = G[O - 1]) : R == 17 ? (ce = 3 + wt(v, d, 7), d += 3) : R == 18 && (ce = 11 + wt(v, d, 127), d += 7); ce--; )\n G[O++] = ge;\n }\n }\n var me = G.subarray(0, V), he = G.subarray(V);\n y = to(me), P = to(he), w = qi(me, y, 1), _ = qi(he, P, 1);\n } else\n throw \"invalid block type\";\n else {\n var R = Wu(d) + 4, j = v[R - 4] | v[R - 3] << 8, F = R + j;\n if (F > s) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n a && p(g + j), n.set(v.subarray(R, F), g), r.b = g += j, r.p = d = F * 8;\n continue;\n }\n if (d > I) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n }\n a && p(g + 131072);\n for (var ee = (1 << y) - 1, X = (1 << P) - 1, Pe = d; ; Pe = d) {\n var ge = w[no(v, d) & ee], fe = ge >>> 4;\n if (d += ge & 15, d > I) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n if (!ge)\n throw \"invalid length/literal\";\n if (fe < 256)\n n[g++] = fe;\n else if (fe == 256) {\n Pe = d, w = null;\n break;\n } else {\n var ae = fe - 254;\n if (fe > 264) {\n var O = fe - 257, ne = Ka[O];\n ae = wt(v, d, (1 << ne) - 1) + qa[O], d += ne;\n }\n var be = _[no(v, d) & X], M = be >>> 4;\n if (!be)\n throw \"invalid distance\";\n d += be & 15;\n var he = qu[M];\n if (M > 3) {\n var ne = $a[M];\n he += no(v, d) & (1 << ne) - 1, d += ne;\n }\n if (d > I) {\n if (c)\n throw \"unexpected EOF\";\n break;\n }\n a && p(g + 131072);\n for (var le = g + ae; g < le; g += 4)\n n[g] = n[g - he], n[g + 1] = n[g + 1 - he], n[g + 2] = n[g + 2 - he], n[g + 3] = n[g + 3 - he];\n g = le;\n }\n }\n r.l = w, r.p = Pe, r.b = g, w && (h = 1, r.m = y, r.d = _, r.n = P);\n } while (!h);\n return g == n.length ? n : Ju(n, 0, g);\n}, tp = /* @__PURE__ */ new ht(0), np = function(v) {\n if ((v[0] & 15) != 8 || v[0] >>> 4 > 7 || (v[0] << 8 | v[1]) % 31)\n throw \"invalid zlib data\";\n if (v[1] & 32)\n throw \"invalid zlib data: preset dictionaries not supported\";\n};\nfunction ip(v, n) {\n return ep((np(v), v.subarray(2, -4)), n);\n}\nvar sp = typeof TextDecoder < \"u\" && /* @__PURE__ */ new TextDecoder(), rp = 0;\ntry {\n sp.decode(tp, { stream: !0 }), rp = 1;\n} catch {\n}\nclass op extends Fn {\n // events\n constructor(n, r) {\n super(), C(this, \"isTransformControls\", !0), C(this, \"visible\", !1), C(this, \"domElement\", void 0), C(this, \"raycaster\", new uu()), C(this, \"gizmo\", void 0), C(this, \"plane\", void 0), C(this, \"tempVector\", new $()), C(this, \"tempVector2\", new $()), C(this, \"tempQuaternion\", new Te()), C(this, \"unit\", {\n X: new $(1, 0, 0),\n Y: new $(0, 1, 0),\n Z: new $(0, 0, 1)\n }), C(this, \"pointStart\", new $()), C(this, \"pointEnd\", new $()), C(this, \"offset\", new $()), C(this, \"rotationAxis\", new $()), C(this, \"startNorm\", new $()), C(this, \"endNorm\", new $()), C(this, \"rotationAngle\", 0), C(this, \"cameraPosition\", new $()), C(this, \"cameraQuaternion\", new Te()), C(this, \"cameraScale\", new $()), C(this, \"parentPosition\", new $()), C(this, \"parentQuaternion\", new Te()), C(this, \"parentQuaternionInv\", new Te()), C(this, \"parentScale\", new $()), C(this, \"worldPositionStart\", new $()), C(this, \"worldQuaternionStart\", new Te()), C(this, \"worldScaleStart\", new $()), C(this, \"worldPosition\", new $()), C(this, \"worldQuaternion\", new Te()), C(this, \"worldQuaternionInv\", new Te()), C(this, \"worldScale\", new $()), C(this, \"eye\", new $()), C(this, \"positionStart\", new $()), C(this, \"quaternionStart\", new Te()), C(this, \"scaleStart\", new $()), C(this, \"camera\", void 0), C(this, \"object\", void 0), C(this, \"enabled\", !0), C(this, \"axis\", null), C(this, \"mode\", \"translate\"), C(this, \"translationSnap\", null), C(this, \"rotationSnap\", null), C(this, \"scaleSnap\", null), C(this, \"space\", \"world\"), C(this, \"size\", 1), C(this, \"dragging\", !1), C(this, \"showX\", !0), C(this, \"showY\", !0), C(this, \"showZ\", !0), C(this, \"changeEvent\", {\n type: \"change\"\n }), C(this, \"mouseDownEvent\", {\n type: \"mouseDown\",\n mode: this.mode\n }), C(this, \"mouseUpEvent\", {\n type: \"mouseUp\",\n mode: this.mode\n }), C(this, \"objectChangeEvent\", {\n type: \"objectChange\"\n }), C(this, \"intersectObjectWithRay\", (a, c, p) => {\n const h = c.intersectObject(a, !0);\n for (let d = 0; d < h.length; d++)\n if (h[d].object.visible || p)\n return h[d];\n return !1;\n }), C(this, \"attach\", (a) => (this.object = a, this.visible = !0, this)), C(this, \"detach\", () => (this.object = void 0, this.visible = !1, this.axis = null, this)), C(this, \"reset\", () => this.enabled ? (this.dragging && this.object !== void 0 && (this.object.position.copy(this.positionStart), this.object.quaternion.copy(this.quaternionStart), this.object.scale.copy(this.scaleStart), this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent), this.pointStart.copy(this.pointEnd)), this) : this), C(this, \"updateMatrixWorld\", () => {\n this.object !== void 0 && (this.object.updateMatrixWorld(), this.object.parent === null ? console.error(\"TransformControls: The attached 3D object must be a part of the scene graph.\") : this.object.parent.matrixWorld.decompose(this.parentPosition, this.parentQuaternion, this.parentScale), this.object.matrixWorld.decompose(this.worldPosition, this.worldQuaternion, this.worldScale), this.parentQuaternionInv.copy(this.parentQuaternion).invert(), this.worldQuaternionInv.copy(this.worldQuaternion).invert()), this.camera.updateMatrixWorld(), this.camera.matrixWorld.decompose(this.cameraPosition, this.cameraQuaternion, this.cameraScale), this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(), super.updateMatrixWorld();\n }), C(this, \"pointerHover\", (a) => {\n if (this.object === void 0 || this.dragging === !0)\n return;\n this.raycaster.setFromCamera(a, this.camera);\n const c = this.intersectObjectWithRay(this.gizmo.picker[this.mode], this.raycaster);\n c ? this.axis = c.object.name : this.axis = null;\n }), C(this, \"pointerDown\", (a) => {\n if (!(this.object === void 0 || this.dragging === !0 || a.button !== 0) && this.axis !== null) {\n this.raycaster.setFromCamera(a, this.camera);\n const c = this.intersectObjectWithRay(this.plane, this.raycaster, !0);\n if (c) {\n let p = this.space;\n if (this.mode === \"scale\" ? p = \"local\" : (this.axis === \"E\" || this.axis === \"XYZE\" || this.axis === \"XYZ\") && (p = \"world\"), p === \"local\" && this.mode === \"rotate\") {\n const h = this.rotationSnap;\n this.axis === \"X\" && h && (this.object.rotation.x = Math.round(this.object.rotation.x / h) * h), this.axis === \"Y\" && h && (this.object.rotation.y = Math.round(this.object.rotation.y / h) * h), this.axis === \"Z\" && h && (this.object.rotation.z = Math.round(this.object.rotation.z / h) * h);\n }\n this.object.updateMatrixWorld(), this.object.parent && this.object.parent.updateMatrixWorld(), this.positionStart.copy(this.object.position), this.quaternionStart.copy(this.object.quaternion), this.scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this.worldScaleStart), this.pointStart.copy(c.point).sub(this.worldPositionStart);\n }\n this.dragging = !0, this.mouseDownEvent.mode = this.mode, this.dispatchEvent(this.mouseDownEvent);\n }\n }), C(this, \"pointerMove\", (a) => {\n const c = this.axis, p = this.mode, h = this.object;\n let d = this.space;\n if (p === \"scale\" ? d = \"local\" : (c === \"E\" || c === \"XYZE\" || c === \"XYZ\") && (d = \"world\"), h === void 0 || c === null || this.dragging === !1 || a.button !== -1)\n return;\n this.raycaster.setFromCamera(a, this.camera);\n const g = this.intersectObjectWithRay(this.plane, this.raycaster, !0);\n if (g) {\n if (this.pointEnd.copy(g.point).sub(this.worldPositionStart), p === \"translate\")\n this.offset.copy(this.pointEnd).sub(this.pointStart), d === \"local\" && c !== \"XYZ\" && this.offset.applyQuaternion(this.worldQuaternionInv), c.indexOf(\"X\") === -1 && (this.offset.x = 0), c.indexOf(\"Y\") === -1 && (this.offset.y = 0), c.indexOf(\"Z\") === -1 && (this.offset.z = 0), d === \"local\" && c !== \"XYZ\" ? this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale) : this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale), h.position.copy(this.offset).add(this.positionStart), this.translationSnap && (d === \"local\" && (h.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()), c.search(\"X\") !== -1 && (h.position.x = Math.round(h.position.x / this.translationSnap) * this.translationSnap), c.search(\"Y\") !== -1 && (h.position.y = Math.round(h.position.y / this.translationSnap) * this.translationSnap), c.search(\"Z\") !== -1 && (h.position.z = Math.round(h.position.z / this.translationSnap) * this.translationSnap), h.position.applyQuaternion(this.quaternionStart)), d === \"world\" && (h.parent && h.position.add(this.tempVector.setFromMatrixPosition(h.parent.matrixWorld)), c.search(\"X\") !== -1 && (h.position.x = Math.round(h.position.x / this.translationSnap) * this.translationSnap), c.search(\"Y\") !== -1 && (h.position.y = Math.round(h.position.y / this.translationSnap) * this.translationSnap), c.search(\"Z\") !== -1 && (h.position.z = Math.round(h.position.z / this.translationSnap) * this.translationSnap), h.parent && h.position.sub(this.tempVector.setFromMatrixPosition(h.parent.matrixWorld))));\n else if (p === \"scale\") {\n if (c.search(\"XYZ\") !== -1) {\n let w = this.pointEnd.length() / this.pointStart.length();\n this.pointEnd.dot(this.pointStart) < 0 && (w *= -1), this.tempVector2.set(w, w, w);\n } else\n this.tempVector.copy(this.pointStart), this.tempVector2.copy(this.pointEnd), this.tempVector.applyQuaternion(this.worldQuaternionInv), this.tempVector2.applyQuaternion(this.worldQuaternionInv), this.tempVector2.divide(this.tempVector), c.search(\"X\") === -1 && (this.tempVector2.x = 1), c.search(\"Y\") === -1 && (this.tempVector2.y = 1), c.search(\"Z\") === -1 && (this.tempVector2.z = 1);\n h.scale.copy(this.scaleStart).multiply(this.tempVector2), this.scaleSnap && this.object && (c.search(\"X\") !== -1 && (this.object.scale.x = Math.round(h.scale.x / this.scaleSnap) * this.scaleSnap || this.scaleSnap), c.search(\"Y\") !== -1 && (h.scale.y = Math.round(h.scale.y / this.scaleSnap) * this.scaleSnap || this.scaleSnap), c.search(\"Z\") !== -1 && (h.scale.z = Math.round(h.scale.z / this.scaleSnap) * this.scaleSnap || this.scaleSnap));\n } else if (p === \"rotate\") {\n this.offset.copy(this.pointEnd).sub(this.pointStart);\n const w = 20 / this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));\n c === \"E\" ? (this.rotationAxis.copy(this.eye), this.rotationAngle = this.pointEnd.angleTo(this.pointStart), this.startNorm.copy(this.pointStart).normalize(), this.endNorm.copy(this.pointEnd).normalize(), this.rotationAngle *= this.endNorm.cross(this.startNorm).dot(this.eye) < 0 ? 1 : -1) : c === \"XYZE\" ? (this.rotationAxis.copy(this.offset).cross(this.eye).normalize(), this.rotationAngle = this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye)) * w) : (c === \"X\" || c === \"Y\" || c === \"Z\") && (this.rotationAxis.copy(this.unit[c]), this.tempVector.copy(this.unit[c]), d === \"local\" && this.tempVector.applyQuaternion(this.worldQuaternion), this.rotationAngle = this.offset.dot(this.tempVector.cross(this.eye).normalize()) * w), this.rotationSnap && (this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap), d === \"local\" && c !== \"E\" && c !== \"XYZE\" ? (h.quaternion.copy(this.quaternionStart), h.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize()) : (this.rotationAxis.applyQuaternion(this.parentQuaternionInv), h.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)), h.quaternion.multiply(this.quaternionStart).normalize());\n }\n this.dispatchEvent(this.changeEvent), this.dispatchEvent(this.objectChangeEvent);\n }\n }), C(this, \"pointerUp\", (a) => {\n a.button === 0 && (this.dragging && this.axis !== null && (this.mouseUpEvent.mode = this.mode, this.dispatchEvent(this.mouseUpEvent)), this.dragging = !1, this.axis = null);\n }), C(this, \"getPointer\", (a) => {\n var c;\n if (this.domElement && (c = this.domElement.ownerDocument) !== null && c !== void 0 && c.pointerLockElement)\n return {\n x: 0,\n y: 0,\n button: a.button\n };\n {\n var p;\n const h = a.changedTouches ? a.changedTouches[0] : a, d = (p = this.domElement) === null || p === void 0 ? void 0 : p.getBoundingClientRect();\n return {\n x: (h.clientX - d.left) / d.width * 2 - 1,\n y: -(h.clientY - d.top) / d.height * 2 + 1,\n button: a.button\n };\n }\n }), C(this, \"onPointerHover\", (a) => {\n if (this.enabled)\n switch (a.pointerType) {\n case \"mouse\":\n case \"pen\":\n this.pointerHover(this.getPointer(a));\n break;\n }\n }), C(this, \"onPointerDown\", (a) => {\n !this.enabled || !this.domElement || (this.domElement.style.touchAction = \"none\", this.domElement.ownerDocument.addEventListener(\"pointermove\", this.onPointerMove), this.pointerHover(this.getPointer(a)), this.pointerDown(this.getPointer(a)));\n }), C(this, \"onPointerMove\", (a) => {\n this.enabled && this.pointerMove(this.getPointer(a));\n }), C(this, \"onPointerUp\", (a) => {\n !this.enabled || !this.domElement || (this.domElement.style.touchAction = \"\", this.domElement.ownerDocument.removeEventListener(\"pointermove\", this.onPointerMove), this.pointerUp(this.getPointer(a)));\n }), C(this, \"getMode\", () => this.mode), C(this, \"setMode\", (a) => {\n this.mode = a;\n }), C(this, \"setTranslationSnap\", (a) => {\n this.translationSnap = a;\n }), C(this, \"setRotationSnap\", (a) => {\n this.rotationSnap = a;\n }), C(this, \"setScaleSnap\", (a) => {\n this.scaleSnap = a;\n }), C(this, \"setSize\", (a) => {\n this.size = a;\n }), C(this, \"setSpace\", (a) => {\n this.space = a;\n }), C(this, \"update\", () => {\n console.warn(\"THREE.TransformControls: update function has no more functionality and therefore has been deprecated.\");\n }), C(this, \"connect\", (a) => {\n a === document && console.error('THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.'), this.domElement = a, this.domElement.addEventListener(\"pointerdown\", this.onPointerDown), this.domElement.addEventListener(\"pointermove\", this.onPointerHover), this.domElement.ownerDocument.addEventListener(\"pointerup\", this.onPointerUp);\n }), C(this, \"dispose\", () => {\n var a, c, p, h, d, g;\n (a = this.domElement) === null || a === void 0 || a.removeEventListener(\"pointerdown\", this.onPointerDown), (c = this.domElement) === null || c === void 0 || c.removeEventListener(\"pointermove\", this.onPointerHover), (p = this.domElement) === null || p === void 0 || (h = p.ownerDocument) === null || h === void 0 || h.removeEventListener(\"pointermove\", this.onPointerMove), (d = this.domElement) === null || d === void 0 || (g = d.ownerDocument) === null || g === void 0 || g.removeEventListener(\"pointerup\", this.onPointerUp), this.traverse((w) => {\n const _ = w;\n _.geometry && _.geometry.dispose(), _.material && _.material.dispose();\n });\n }), this.domElement = r, this.camera = n, this.gizmo = new ap(), this.add(this.gizmo), this.plane = new lp(), this.add(this.plane);\n const s = (a, c) => {\n let p = c;\n Object.defineProperty(this, a, {\n get: function() {\n return p !== void 0 ? p : c;\n },\n set: function(h) {\n p !== h && (p = h, this.plane[a] = h, this.gizmo[a] = h, this.dispatchEvent({\n type: a + \"-changed\",\n value: h\n }), this.dispatchEvent(this.changeEvent));\n }\n }), this[a] = c, this.plane[a] = c, this.gizmo[a] = c;\n };\n s(\"camera\", this.camera), s(\"object\", this.object), s(\"enabled\", this.enabled), s(\"axis\", this.axis), s(\"mode\", this.mode), s(\"translationSnap\", this.translationSnap), s(\"rotationSnap\", this.rotationSnap), s(\"scaleSnap\", this.scaleSnap), s(\"space\", this.space), s(\"size\", this.size), s(\"dragging\", this.dragging), s(\"showX\", this.showX), s(\"showY\", this.showY), s(\"showZ\", this.showZ), s(\"worldPosition\", this.worldPosition), s(\"worldPositionStart\", this.worldPositionStart), s(\"worldQuaternion\", this.worldQuaternion), s(\"worldQuaternionStart\", this.worldQuaternionStart), s(\"cameraPosition\", this.cameraPosition), s(\"cameraQuaternion\", this.cameraQuaternion), s(\"pointStart\", this.pointStart), s(\"pointEnd\", this.pointEnd), s(\"rotationAxis\", this.rotationAxis), s(\"rotationAngle\", this.rotationAngle), s(\"eye\", this.eye), r !== void 0 && this.connect(r);\n }\n}\nclass ap extends Fn {\n // these are set from parent class TransformControls\n constructor() {\n super(), C(this, \"isTransformControlsGizmo\", !0), C(this, \"type\", \"TransformControlsGizmo\"), C(this, \"tempVector\", new $(0, 0, 0)), C(this, \"tempEuler\", new On()), C(this, \"alignVector\", new $(0, 1, 0)), C(this, \"zeroVector\", new $(0, 0, 0)), C(this, \"lookAtMatrix\", new Ee()), C(this, \"tempQuaternion\", new Te()), C(this, \"tempQuaternion2\", new Te()), C(this, \"identityQuaternion\", new Te()), C(this, \"unitX\", new $(1, 0, 0)), C(this, \"unitY\", new $(0, 1, 0)), C(this, \"unitZ\", new $(0, 0, 1)), C(this, \"gizmo\", void 0), C(this, \"picker\", void 0), C(this, \"helper\", void 0), C(this, \"rotationAxis\", new $()), C(this, \"cameraPosition\", new $()), C(this, \"worldPositionStart\", new $()), C(this, \"worldQuaternionStart\", new Te()), C(this, \"worldPosition\", new $()), C(this, \"worldQuaternion\", new Te()), C(this, \"eye\", new $()), C(this, \"camera\", null), C(this, \"enabled\", !0), C(this, \"axis\", null), C(this, \"mode\", \"translate\"), C(this, \"space\", \"world\"), C(this, \"size\", 1), C(this, \"dragging\", !1), C(this, \"showX\", !0), C(this, \"showY\", !0), C(this, \"showZ\", !0), C(this, \"updateMatrixWorld\", () => {\n let fe = this.space;\n this.mode === \"scale\" && (fe = \"local\");\n const ae = fe === \"local\" ? this.worldQuaternion : this.identityQuaternion;\n this.gizmo.translate.visible = this.mode === \"translate\", this.gizmo.rotate.visible = this.mode === \"rotate\", this.gizmo.scale.visible = this.mode === \"scale\", this.helper.translate.visible = this.mode === \"translate\", this.helper.rotate.visible = this.mode === \"rotate\", this.helper.scale.visible = this.mode === \"scale\";\n let ne = [];\n ne = ne.concat(this.picker[this.mode].children), ne = ne.concat(this.gizmo[this.mode].children), ne = ne.concat(this.helper[this.mode].children);\n for (let be = 0; be < ne.length; be++) {\n const M = ne[be];\n M.visible = !0, M.rotation.set(0, 0, 0), M.position.copy(this.worldPosition);\n let le;\n if (this.camera.isOrthographicCamera ? le = (this.camera.top - this.camera.bottom) / this.camera.zoom : le = this.worldPosition.distanceTo(this.cameraPosition) * Math.min(1.9 * Math.tan(Math.PI * this.camera.fov / 360) / this.camera.zoom, 7), M.scale.set(1, 1, 1).multiplyScalar(le * this.size / 7), M.tag === \"helper\") {\n M.visible = !1, M.name === \"AXIS\" ? (M.position.copy(this.worldPositionStart), M.visible = !!this.axis, this.axis === \"X\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, 0, 0)), M.quaternion.copy(ae).multiply(this.tempQuaternion), Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye)) > 0.9 && (M.visible = !1)), this.axis === \"Y\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, 0, Math.PI / 2)), M.quaternion.copy(ae).multiply(this.tempQuaternion), Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye)) > 0.9 && (M.visible = !1)), this.axis === \"Z\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, Math.PI / 2, 0)), M.quaternion.copy(ae).multiply(this.tempQuaternion), Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye)) > 0.9 && (M.visible = !1)), this.axis === \"XYZE\" && (this.tempQuaternion.setFromEuler(this.tempEuler.set(0, Math.PI / 2, 0)), this.alignVector.copy(this.rotationAxis), M.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector, this.alignVector, this.unitY)), M.quaternion.multiply(this.tempQuaternion), M.visible = this.dragging), this.axis === \"E\" && (M.visible = !1)) : M.name === \"START\" ? (M.position.copy(this.worldPositionStart), M.visible = this.dragging) : M.name === \"END\" ? (M.position.copy(this.worldPosition), M.visible = this.dragging) : M.name === \"DELTA\" ? (M.position.copy(this.worldPositionStart), M.quaternion.copy(this.worldQuaternionStart), this.tempVector.set(1e-10, 1e-10, 1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1), this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()), M.scale.copy(this.tempVector), M.visible = this.dragging) : (M.quaternion.copy(ae), this.dragging ? M.position.copy(this.worldPositionStart) : M.position.copy(this.worldPosition), this.axis && (M.visible = this.axis.search(M.name) !== -1));\n continue;\n }\n M.quaternion.copy(ae), this.mode === \"translate\" || this.mode === \"scale\" ? ((M.name === \"X\" || M.name === \"XYZX\") && Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye)) > 0.99 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), (M.name === \"Y\" || M.name === \"XYZY\") && Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye)) > 0.99 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), (M.name === \"Z\" || M.name === \"XYZZ\") && Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye)) > 0.99 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name === \"XY\" && Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye)) < 0.2 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name === \"YZ\" && Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye)) < 0.2 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name === \"XZ\" && Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye)) < 0.2 && (M.scale.set(1e-10, 1e-10, 1e-10), M.visible = !1), M.name.search(\"X\") !== -1 && (this.alignVector.copy(this.unitX).applyQuaternion(ae).dot(this.eye) < 0 ? M.tag === \"fwd\" ? M.visible = !1 : M.scale.x *= -1 : M.tag === \"bwd\" && (M.visible = !1)), M.name.search(\"Y\") !== -1 && (this.alignVector.copy(this.unitY).applyQuaternion(ae).dot(this.eye) < 0 ? M.tag === \"fwd\" ? M.visible = !1 : M.scale.y *= -1 : M.tag === \"bwd\" && (M.visible = !1)), M.name.search(\"Z\") !== -1 && (this.alignVector.copy(this.unitZ).applyQuaternion(ae).dot(this.eye) < 0 ? M.tag === \"fwd\" ? M.visible = !1 : M.scale.z *= -1 : M.tag === \"bwd\" && (M.visible = !1))) : this.mode === \"rotate\" && (this.tempQuaternion2.copy(ae), this.alignVector.copy(this.eye).applyQuaternion(this.tempQuaternion.copy(ae).invert()), M.name.search(\"E\") !== -1 && M.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.eye, this.zeroVector, this.unitY)), M.name === \"X\" && (this.tempQuaternion.setFromAxisAngle(this.unitX, Math.atan2(-this.alignVector.y, this.alignVector.z)), this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion), M.quaternion.copy(this.tempQuaternion)), M.name === \"Y\" && (this.tempQuaternion.setFromAxisAngle(this.unitY, Math.atan2(this.alignVector.x, this.alignVector.z)), this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion), M.quaternion.copy(this.tempQuaternion)), M.name === \"Z\" && (this.tempQuaternion.setFromAxisAngle(this.unitZ, Math.atan2(this.alignVector.y, this.alignVector.x)), this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion), M.quaternion.copy(this.tempQuaternion))), M.visible = M.visible && (M.name.indexOf(\"X\") === -1 || this.showX), M.visible = M.visible && (M.name.indexOf(\"Y\") === -1 || this.showY), M.visible = M.visible && (M.name.indexOf(\"Z\") === -1 || this.showZ), M.visible = M.visible && (M.name.indexOf(\"E\") === -1 || this.showX && this.showY && this.showZ), M.material.tempOpacity = M.material.tempOpacity || M.material.opacity, M.material.tempColor = M.material.tempColor || M.material.color.clone(), M.material.color.copy(M.material.tempColor), M.material.opacity = M.material.tempOpacity, this.enabled ? this.axis && (M.name === this.axis ? (M.material.opacity = 1, M.material.color.lerp(new ke(1, 1, 1), 0.5)) : this.axis.split(\"\").some(function(Ve) {\n return M.name === Ve;\n }) ? (M.material.opacity = 1, M.material.color.lerp(new ke(1, 1, 1), 0.5)) : (M.material.opacity *= 0.25, M.material.color.lerp(new ke(1, 1, 1), 0.5))) : (M.material.opacity *= 0.5, M.material.color.lerp(new ke(1, 1, 1), 0.5));\n }\n super.updateMatrixWorld();\n });\n const n = new Nn({\n depthTest: !1,\n depthWrite: !1,\n transparent: !0,\n side: wo,\n fog: !1,\n toneMapped: !1\n }), r = new yo({\n depthTest: !1,\n depthWrite: !1,\n transparent: !0,\n linewidth: 1,\n fog: !1,\n toneMapped: !1\n }), s = n.clone();\n s.opacity = 0.15;\n const a = n.clone();\n a.opacity = 0.33;\n const c = n.clone();\n c.color.set(16711680);\n const p = n.clone();\n p.color.set(65280);\n const h = n.clone();\n h.color.set(255);\n const d = n.clone();\n d.opacity = 0.25;\n const g = d.clone();\n g.color.set(16776960);\n const w = d.clone();\n w.color.set(65535);\n const _ = d.clone();\n _.color.set(16711935), n.clone().color.set(16776960);\n const P = r.clone();\n P.color.set(16711680);\n const I = r.clone();\n I.color.set(65280);\n const S = r.clone();\n S.color.set(255);\n const R = r.clone();\n R.color.set(65535);\n const j = r.clone();\n j.color.set(16711935);\n const F = r.clone();\n F.color.set(16776960);\n const V = r.clone();\n V.color.set(7895160);\n const D = F.clone();\n D.opacity = 0.25;\n const Y = new _t(0, 0.05, 0.2, 12, 1, !1), G = new An(0.125, 0.125, 0.125), N = new zt();\n N.setAttribute(\"position\", new jt([0, 0, 0, 1, 0, 0], 3));\n const O = (fe, ae) => {\n const ne = new zt(), be = [];\n for (let M = 0; M <= 64 * ae; ++M)\n be.push(0, Math.cos(M / 32 * Math.PI) * fe, Math.sin(M / 32 * Math.PI) * fe);\n return ne.setAttribute(\"position\", new jt(be, 3)), ne;\n }, H = () => {\n const fe = new zt();\n return fe.setAttribute(\"position\", new jt([0, 0, 0, 1, 1, 1], 3)), fe;\n }, K = {\n X: [[new Z(Y, c), [1, 0, 0], [0, 0, -Math.PI / 2], null, \"fwd\"], [new Z(Y, c), [1, 0, 0], [0, 0, Math.PI / 2], null, \"bwd\"], [new ue(N, P)]],\n Y: [[new Z(Y, p), [0, 1, 0], null, null, \"fwd\"], [new Z(Y, p), [0, 1, 0], [Math.PI, 0, 0], null, \"bwd\"], [new ue(N, I), null, [0, 0, Math.PI / 2]]],\n Z: [[new Z(Y, h), [0, 0, 1], [Math.PI / 2, 0, 0], null, \"fwd\"], [new Z(Y, h), [0, 0, 1], [-Math.PI / 2, 0, 0], null, \"bwd\"], [new ue(N, S), null, [0, -Math.PI / 2, 0]]],\n XYZ: [[new Z(new Rn(0.1, 0), d.clone()), [0, 0, 0], [0, 0, 0]]],\n XY: [[new Z(new Vn(0.295, 0.295), g.clone()), [0.15, 0.15, 0]], [new ue(N, F), [0.18, 0.3, 0], null, [0.125, 1, 1]], [new ue(N, F), [0.3, 0.18, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]],\n YZ: [[new Z(new Vn(0.295, 0.295), w.clone()), [0, 0.15, 0.15], [0, Math.PI / 2, 0]], [new ue(N, R), [0, 0.18, 0.3], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new ue(N, R), [0, 0.3, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],\n XZ: [[new Z(new Vn(0.295, 0.295), _.clone()), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]], [new ue(N, j), [0.18, 0, 0.3], null, [0.125, 1, 1]], [new ue(N, j), [0.3, 0, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]]\n }, q = {\n X: [[new Z(new _t(0.2, 0, 1, 4, 1, !1), s), [0.6, 0, 0], [0, 0, -Math.PI / 2]]],\n Y: [[new Z(new _t(0.2, 0, 1, 4, 1, !1), s), [0, 0.6, 0]]],\n Z: [[new Z(new _t(0.2, 0, 1, 4, 1, !1), s), [0, 0, 0.6], [Math.PI / 2, 0, 0]]],\n XYZ: [[new Z(new Rn(0.2, 0), s)]],\n XY: [[new Z(new Vn(0.4, 0.4), s), [0.2, 0.2, 0]]],\n YZ: [[new Z(new Vn(0.4, 0.4), s), [0, 0.2, 0.2], [0, Math.PI / 2, 0]]],\n XZ: [[new Z(new Vn(0.4, 0.4), s), [0.2, 0, 0.2], [-Math.PI / 2, 0, 0]]]\n }, pe = {\n START: [[new Z(new Rn(0.01, 2), a), null, null, null, \"helper\"]],\n END: [[new Z(new Rn(0.01, 2), a), null, null, null, \"helper\"]],\n DELTA: [[new ue(H(), a), null, null, null, \"helper\"]],\n X: [[new ue(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]],\n Y: [[new ue(N, a.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], \"helper\"]],\n Z: [[new ue(N, a.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], \"helper\"]]\n }, ge = {\n X: [[new ue(O(1, 0.5), P)], [new Z(new Rn(0.04, 0), c), [0, 0, 0.99], null, [1, 3, 1]]],\n Y: [[new ue(O(1, 0.5), I), null, [0, 0, -Math.PI / 2]], [new Z(new Rn(0.04, 0), p), [0, 0, 0.99], null, [3, 1, 1]]],\n Z: [[new ue(O(1, 0.5), S), null, [0, Math.PI / 2, 0]], [new Z(new Rn(0.04, 0), h), [0.99, 0, 0], null, [1, 3, 1]]],\n E: [[new ue(O(1.25, 1), D), null, [0, Math.PI / 2, 0]], [new Z(new _t(0.03, 0, 0.15, 4, 1, !1), D), [1.17, 0, 0], [0, 0, -Math.PI / 2], [1, 1, 1e-3]], [new Z(new _t(0.03, 0, 0.15, 4, 1, !1), D), [-1.17, 0, 0], [0, 0, Math.PI / 2], [1, 1, 1e-3]], [new Z(new _t(0.03, 0, 0.15, 4, 1, !1), D), [0, -1.17, 0], [Math.PI, 0, 0], [1, 1, 1e-3]], [new Z(new _t(0.03, 0, 0.15, 4, 1, !1), D), [0, 1.17, 0], [0, 0, 0], [1, 1, 1e-3]]],\n XYZE: [[new ue(O(1, 1), V), null, [0, Math.PI / 2, 0]]]\n }, ce = {\n AXIS: [[new ue(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]]\n }, me = {\n X: [[new Z(new Is(1, 0.1, 4, 24), s), [0, 0, 0], [0, -Math.PI / 2, -Math.PI / 2]]],\n Y: [[new Z(new Is(1, 0.1, 4, 24), s), [0, 0, 0], [Math.PI / 2, 0, 0]]],\n Z: [[new Z(new Is(1, 0.1, 4, 24), s), [0, 0, 0], [0, 0, -Math.PI / 2]]],\n E: [[new Z(new Is(1.25, 0.1, 2, 24), s)]],\n XYZE: [[new Z(new pu(0.7, 10, 8), s)]]\n }, he = {\n X: [[new Z(G, c), [0.8, 0, 0], [0, 0, -Math.PI / 2]], [new ue(N, P), null, null, [0.8, 1, 1]]],\n Y: [[new Z(G, p), [0, 0.8, 0]], [new ue(N, I), null, [0, 0, Math.PI / 2], [0.8, 1, 1]]],\n Z: [[new Z(G, h), [0, 0, 0.8], [Math.PI / 2, 0, 0]], [new ue(N, S), null, [0, -Math.PI / 2, 0], [0.8, 1, 1]]],\n XY: [[new Z(G, g), [0.85, 0.85, 0], null, [2, 2, 0.2]], [new ue(N, F), [0.855, 0.98, 0], null, [0.125, 1, 1]], [new ue(N, F), [0.98, 0.855, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]],\n YZ: [[new Z(G, w), [0, 0.85, 0.85], null, [0.2, 2, 2]], [new ue(N, R), [0, 0.855, 0.98], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new ue(N, R), [0, 0.98, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],\n XZ: [[new Z(G, _), [0.85, 0, 0.85], null, [2, 0.2, 2]], [new ue(N, j), [0.855, 0, 0.98], null, [0.125, 1, 1]], [new ue(N, j), [0.98, 0, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],\n XYZX: [[new Z(new An(0.125, 0.125, 0.125), d.clone()), [1.1, 0, 0]]],\n XYZY: [[new Z(new An(0.125, 0.125, 0.125), d.clone()), [0, 1.1, 0]]],\n XYZZ: [[new Z(new An(0.125, 0.125, 0.125), d.clone()), [0, 0, 1.1]]]\n }, ee = {\n X: [[new Z(new _t(0.2, 0, 0.8, 4, 1, !1), s), [0.5, 0, 0], [0, 0, -Math.PI / 2]]],\n Y: [[new Z(new _t(0.2, 0, 0.8, 4, 1, !1), s), [0, 0.5, 0]]],\n Z: [[new Z(new _t(0.2, 0, 0.8, 4, 1, !1), s), [0, 0, 0.5], [Math.PI / 2, 0, 0]]],\n XY: [[new Z(G, s), [0.85, 0.85, 0], null, [3, 3, 0.2]]],\n YZ: [[new Z(G, s), [0, 0.85, 0.85], null, [0.2, 3, 3]]],\n XZ: [[new Z(G, s), [0.85, 0, 0.85], null, [3, 0.2, 3]]],\n XYZX: [[new Z(new An(0.2, 0.2, 0.2), s), [1.1, 0, 0]]],\n XYZY: [[new Z(new An(0.2, 0.2, 0.2), s), [0, 1.1, 0]]],\n XYZZ: [[new Z(new An(0.2, 0.2, 0.2), s), [0, 0, 1.1]]]\n }, X = {\n X: [[new ue(N, a.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]],\n Y: [[new ue(N, a.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], \"helper\"]],\n Z: [[new ue(N, a.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], \"helper\"]]\n }, Pe = (fe) => {\n const ae = new Fn();\n for (let ne in fe)\n for (let be = fe[ne].length; be--; ) {\n const M = fe[ne][be][0].clone(), le = fe[ne][be][1], Ve = fe[ne][be][2], Be = fe[ne][be][3], we = fe[ne][be][4];\n M.name = ne, M.tag = we, le && M.position.set(le[0], le[1], le[2]), Ve && M.rotation.set(Ve[0], Ve[1], Ve[2]), Be && M.scale.set(Be[0], Be[1], Be[2]), M.updateMatrix();\n const st = M.geometry.clone();\n st.applyMatrix4(M.matrix), M.geometry = st, M.renderOrder = 1 / 0, M.position.set(0, 0, 0), M.rotation.set(0, 0, 0), M.scale.set(1, 1, 1), ae.add(M);\n }\n return ae;\n };\n this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = Pe(K)), this.add(this.gizmo.rotate = Pe(ge)), this.add(this.gizmo.scale = Pe(he)), this.add(this.picker.translate = Pe(q)), this.add(this.picker.rotate = Pe(me)), this.add(this.picker.scale = Pe(ee)), this.add(this.helper.translate = Pe(pe)), this.add(this.helper.rotate = Pe(ce)), this.add(this.helper.scale = Pe(X)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;\n }\n // updateMatrixWorld will update transformations and appearance of individual handles\n}\nclass lp extends Z {\n constructor() {\n super(new Vn(1e5, 1e5, 2, 2), new Nn({\n visible: !1,\n wireframe: !0,\n side: wo,\n transparent: !0,\n opacity: 0.1,\n toneMapped: !1\n })), C(this, \"isTransformControlsPlane\", !0), C(this, \"type\", \"TransformControlsPlane\"), C(this, \"unitX\", new $(1, 0, 0)), C(this, \"unitY\", new $(0, 1, 0)), C(this, \"unitZ\", new $(0, 0, 1)), C(this, \"tempVector\", new $()), C(this, \"dirVector\", new $()), C(this, \"alignVector\", new $()), C(this, \"tempMatrix\", new Ee()), C(this, \"identityQuaternion\", new Te()), C(this, \"cameraQuaternion\", new Te()), C(this, \"worldPosition\", new $()), C(this, \"worldQuaternion\", new Te()), C(this, \"eye\", new $()), C(this, \"axis\", null), C(this, \"mode\", \"translate\"), C(this, \"space\", \"world\"), C(this, \"updateMatrixWorld\", () => {\n let n = this.space;\n switch (this.position.copy(this.worldPosition), this.mode === \"scale\" && (n = \"local\"), this.unitX.set(1, 0, 0).applyQuaternion(n === \"local\" ? this.worldQuaternion : this.identityQuaternion), this.unitY.set(0, 1, 0).applyQuaternion(n === \"local\" ? this.worldQuaternion : this.identityQuaternion), this.unitZ.set(0, 0, 1).applyQuaternion(n === \"local\" ? this.worldQuaternion : this.identityQuaternion), this.alignVector.copy(this.unitY), this.mode) {\n case \"translate\":\n case \"scale\":\n switch (this.axis) {\n case \"X\":\n this.alignVector.copy(this.eye).cross(this.unitX), this.dirVector.copy(this.unitX).cross(this.alignVector);\n break;\n case \"Y\":\n this.alignVector.copy(this.eye).cross(this.unitY), this.dirVector.copy(this.unitY).cross(this.alignVector);\n break;\n case \"Z\":\n this.alignVector.copy(this.eye).cross(this.unitZ), this.dirVector.copy(this.unitZ).cross(this.alignVector);\n break;\n case \"XY\":\n this.dirVector.copy(this.unitZ);\n break;\n case \"YZ\":\n this.dirVector.copy(this.unitX);\n break;\n case \"XZ\":\n this.alignVector.copy(this.unitZ), this.dirVector.copy(this.unitY);\n break;\n case \"XYZ\":\n case \"E\":\n this.dirVector.set(0, 0, 0);\n break;\n }\n break;\n case \"rotate\":\n default:\n this.dirVector.set(0, 0, 0);\n }\n this.dirVector.length() === 0 ? this.quaternion.copy(this.cameraQuaternion) : (this.tempMatrix.lookAt(this.tempVector.set(0, 0, 0), this.dirVector, this.alignVector), this.quaternion.setFromRotationMatrix(this.tempMatrix)), super.updateMatrixWorld();\n });\n }\n}\nconst ui = new On(0, 0, 0, \"YXZ\"), pi = new $(), cp = {\n type: \"change\"\n}, up = {\n type: \"lock\"\n}, pp = {\n type: \"unlock\"\n}, ua = Math.PI / 2;\nclass hp extends Aa {\n constructor(n, r) {\n super(), C(this, \"camera\", void 0), C(this, \"domElement\", void 0), C(this, \"isLocked\", void 0), C(this, \"minPolarAngle\", void 0), C(this, \"maxPolarAngle\", void 0), C(this, \"pointerSpeed\", void 0), C(this, \"onMouseMove\", (s) => {\n if (!this.domElement || this.isLocked === !1)\n return;\n const a = s.movementX || s.mozMovementX || s.webkitMovementX || 0, c = s.movementY || s.mozMovementY || s.webkitMovementY || 0;\n ui.setFromQuaternion(this.camera.quaternion), ui.y -= a * 2e-3 * this.pointerSpeed, ui.x -= c * 2e-3 * this.pointerSpeed, ui.x = Math.max(ua - this.maxPolarAngle, Math.min(ua - this.minPolarAngle, ui.x)), this.camera.quaternion.setFromEuler(ui), this.dispatchEvent(cp);\n }), C(this, \"onPointerlockChange\", () => {\n this.domElement && (this.domElement.ownerDocument.pointerLockElement === this.domElement ? (this.dispatchEvent(up), this.isLocked = !0) : (this.dispatchEvent(pp), this.isLocked = !1));\n }), C(this, \"onPointerlockError\", () => {\n console.error(\"THREE.PointerLockControls: Unable to use Pointer Lock API\");\n }), C(this, \"connect\", (s) => {\n this.domElement = s || this.domElement, this.domElement && (this.domElement.ownerDocument.addEventListener(\"mousemove\", this.onMouseMove), this.domElement.ownerDocument.addEventListener(\"pointerlockchange\", this.onPointerlockChange), this.domElement.ownerDocument.addEventListener(\"pointerlockerror\", this.onPointerlockError));\n }), C(this, \"disconnect\", () => {\n this.domElement && (this.domElement.ownerDocument.removeEventListener(\"mousemove\", this.onMouseMove), this.domElement.ownerDocument.removeEventListener(\"pointerlockchange\", this.onPointerlockChange), this.domElement.ownerDocument.removeEventListener(\"pointerlockerror\", this.onPointerlockError));\n }), C(this, \"dispose\", () => {\n this.disconnect();\n }), C(this, \"getObject\", () => this.camera), C(this, \"direction\", new $(0, 0, -1)), C(this, \"getDirection\", (s) => s.copy(this.direction).applyQuaternion(this.camera.quaternion)), C(this, \"moveForward\", (s) => {\n pi.setFromMatrixColumn(this.camera.matrix, 0), pi.crossVectors(this.camera.up, pi), this.camera.position.addScaledVector(pi, s);\n }), C(this, \"moveRight\", (s) => {\n pi.setFromMatrixColumn(this.camera.matrix, 0), this.camera.position.addScaledVector(pi, s);\n }), C(this, \"lock\", () => {\n this.domElement && this.domElement.requestPointerLock();\n }), C(this, \"unlock\", () => {\n this.domElement && this.domElement.ownerDocument.exitPointerLock();\n }), this.camera = n, this.domElement = r, this.isLocked = !1, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.pointerSpeed = 1, r && this.connect(r);\n }\n}\nconst pa = (v, n) => (v % n + n) % n;\nclass dp extends Aa {\n // Set to false to disable this control\n // \"target\" sets the location of focus, where the object orbits around\n // How far you can dolly in and out ( PerspectiveCamera only )\n // How far you can zoom in and out ( OrthographicCamera only )\n // How far you can orbit vertically, upper and lower limits.\n // Range is 0 to Math.PI radians.\n // radians\n // radians\n // How far you can orbit horizontally, upper and lower limits.\n // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n // radians\n // radians\n // Set to true to enable damping (inertia)\n // If damping is enabled, you must call controls.update() in your animation loop\n // This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n // Set to false to disable zooming\n // Set to false to disable rotating\n // Set to false to disable panning\n // if false, pan orthogonal to world-space direction camera.up\n // pixels moved per arrow key push\n // Set to true to automatically rotate around the target\n // If auto-rotate is enabled, you must call controls.update() in your animation loop\n // 30 seconds per orbit when fps is 60\n // true if you want to reverse the orbit to mouse drag from left to right = orbits left\n // The four arrow keys\n // Mouse buttons\n // Touch fingers\n // the target DOM element for key events\n constructor(n, r) {\n super(), C(this, \"object\", void 0), C(this, \"domElement\", void 0), C(this, \"enabled\", !0), C(this, \"target\", new $()), C(this, \"minDistance\", 0), C(this, \"maxDistance\", 1 / 0), C(this, \"minZoom\", 0), C(this, \"maxZoom\", 1 / 0), C(this, \"minPolarAngle\", 0), C(this, \"maxPolarAngle\", Math.PI), C(this, \"minAzimuthAngle\", -1 / 0), C(this, \"maxAzimuthAngle\", 1 / 0), C(this, \"enableDamping\", !1), C(this, \"dampingFactor\", 0.05), C(this, \"enableZoom\", !0), C(this, \"zoomSpeed\", 1), C(this, \"enableRotate\", !0), C(this, \"rotateSpeed\", 1), C(this, \"enablePan\", !0), C(this, \"panSpeed\", 1), C(this, \"screenSpacePanning\", !0), C(this, \"keyPanSpeed\", 7), C(this, \"autoRotate\", !1), C(this, \"autoRotateSpeed\", 2), C(this, \"reverseOrbit\", !1), C(this, \"keys\", {\n LEFT: \"ArrowLeft\",\n UP: \"ArrowUp\",\n RIGHT: \"ArrowRight\",\n BOTTOM: \"ArrowDown\"\n }), C(this, \"mouseButtons\", {\n LEFT: li.ROTATE,\n MIDDLE: li.DOLLY,\n RIGHT: li.PAN\n }), C(this, \"touches\", {\n ONE: ci.ROTATE,\n TWO: ci.DOLLY_PAN\n }), C(this, \"target0\", void 0), C(this, \"position0\", void 0), C(this, \"zoom0\", void 0), C(this, \"_domElementKeyEvents\", null), C(this, \"getPolarAngle\", void 0), C(this, \"getAzimuthalAngle\", void 0), C(this, \"setPolarAngle\", void 0), C(this, \"setAzimuthalAngle\", void 0), C(this, \"getDistance\", void 0), C(this, \"listenToKeyEvents\", void 0), C(this, \"saveState\", void 0), C(this, \"reset\", void 0), C(this, \"update\", void 0), C(this, \"connect\", void 0), C(this, \"dispose\", void 0), this.object = n, this.domElement = r, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object instanceof on ? this.object.zoom : 1, this.getPolarAngle = () => w.phi, this.getAzimuthalAngle = () => w.theta, this.setPolarAngle = (L) => {\n let U = pa(L, 2 * Math.PI), W = w.phi;\n W < 0 && (W += 2 * Math.PI), U < 0 && (U += 2 * Math.PI);\n let ie = Math.abs(U - W);\n 2 * Math.PI - ie < ie && (U < W ? U += 2 * Math.PI : W += 2 * Math.PI), _.phi = U - W, s.update();\n }, this.setAzimuthalAngle = (L) => {\n let U = pa(L, 2 * Math.PI), W = w.theta;\n W < 0 && (W += 2 * Math.PI), U < 0 && (U += 2 * Math.PI);\n let ie = Math.abs(U - W);\n 2 * Math.PI - ie < ie && (U < W ? U += 2 * Math.PI : W += 2 * Math.PI), _.theta = U - W, s.update();\n }, this.getDistance = () => s.object.position.distanceTo(s.target), this.listenToKeyEvents = (L) => {\n L.addEventListener(\"keydown\", xt), this._domElementKeyEvents = L;\n }, this.saveState = () => {\n s.target0.copy(s.target), s.position0.copy(s.object.position), s.zoom0 = s.object instanceof on ? s.object.zoom : 1;\n }, this.reset = () => {\n s.target.copy(s.target0), s.object.position.copy(s.position0), s.object instanceof on && (s.object.zoom = s.zoom0, s.object.updateProjectionMatrix()), s.dispatchEvent(a), s.update(), d = h.NONE;\n }, this.update = (() => {\n const L = new $(), U = new Te().setFromUnitVectors(n.up, new $(0, 1, 0)), W = U.clone().invert(), ie = new $(), ye = new Te(), De = 2 * Math.PI;\n return function() {\n const hn = s.object.position;\n L.copy(hn).sub(s.target), L.applyQuaternion(U), w.setFromVector3(L), s.autoRotate && d === h.NONE && pe(K()), s.enableDamping ? (w.theta += _.theta * s.dampingFactor, w.phi += _.phi * s.dampingFactor) : (w.theta += _.theta, w.phi += _.phi);\n let Ue = s.minAzimuthAngle, Ge = s.maxAzimuthAngle;\n return isFinite(Ue) && isFinite(Ge) && (Ue < -Math.PI ? Ue += De : Ue > Math.PI && (Ue -= De), Ge < -Math.PI ? Ge += De : Ge > Math.PI && (Ge -= De), Ue <= Ge ? w.theta = Math.max(Ue, Math.min(Ge, w.theta)) : w.theta = w.theta > (Ue + Ge) / 2 ? Math.max(Ue, w.theta) : Math.min(Ge, w.theta)), w.phi = Math.max(s.minPolarAngle, Math.min(s.maxPolarAngle, w.phi)), w.makeSafe(), w.radius *= y, w.radius = Math.max(s.minDistance, Math.min(s.maxDistance, w.radius)), s.enableDamping === !0 ? s.target.addScaledVector(P, s.dampingFactor) : s.target.add(P), L.setFromSpherical(w), L.applyQuaternion(W), hn.copy(s.target).add(L), s.object.lookAt(s.target), s.enableDamping === !0 ? (_.theta *= 1 - s.dampingFactor, _.phi *= 1 - s.dampingFactor, P.multiplyScalar(1 - s.dampingFactor)) : (_.set(0, 0, 0), P.set(0, 0, 0)), y = 1, I || ie.distanceToSquared(s.object.position) > g || 8 * (1 - ye.dot(s.object.quaternion)) > g ? (s.dispatchEvent(a), ie.copy(s.object.position), ye.copy(s.object.quaternion), I = !1, !0) : !1;\n };\n })(), this.connect = (L) => {\n L === document && console.error('THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.'), s.domElement = L, s.domElement.style.touchAction = \"none\", s.domElement.addEventListener(\"contextmenu\", pn), s.domElement.addEventListener(\"pointerdown\", rt), s.domElement.addEventListener(\"pointercancel\", Un), s.domElement.addEventListener(\"wheel\", Hn);\n }, this.dispose = () => {\n var L, U, W, ie, ye, De;\n (L = s.domElement) === null || L === void 0 || L.removeEventListener(\"contextmenu\", pn), (U = s.domElement) === null || U === void 0 || U.removeEventListener(\"pointerdown\", rt), (W = s.domElement) === null || W === void 0 || W.removeEventListener(\"pointercancel\", Un), (ie = s.domElement) === null || ie === void 0 || ie.removeEventListener(\"wheel\", Hn), (ye = s.domElement) === null || ye === void 0 || ye.ownerDocument.removeEventListener(\"pointermove\", un), (De = s.domElement) === null || De === void 0 || De.ownerDocument.removeEventListener(\"pointerup\", ft), s._domElementKeyEvents !== null && s._domElementKeyEvents.removeEventListener(\"keydown\", xt);\n };\n const s = this, a = {\n type: \"change\"\n }, c = {\n type: \"start\"\n }, p = {\n type: \"end\"\n }, h = {\n NONE: -1,\n ROTATE: 0,\n DOLLY: 1,\n PAN: 2,\n TOUCH_ROTATE: 3,\n TOUCH_PAN: 4,\n TOUCH_DOLLY_PAN: 5,\n TOUCH_DOLLY_ROTATE: 6\n };\n let d = h.NONE;\n const g = 1e-6, w = new ca(), _ = new ca();\n let y = 1;\n const P = new $();\n let I = !1;\n const S = new pt(), R = new pt(), j = new pt(), F = new pt(), V = new pt(), D = new pt(), Y = new pt(), G = new pt(), N = new pt(), O = [], H = {};\n function K() {\n return 2 * Math.PI / 60 / 60 * s.autoRotateSpeed;\n }\n function q() {\n return Math.pow(0.95, s.zoomSpeed);\n }\n function pe(L) {\n s.reverseOrbit ? _.theta += L : _.theta -= L;\n }\n function ge(L) {\n s.reverseOrbit ? _.phi += L : _.phi -= L;\n }\n const ce = (() => {\n const L = new $();\n return function(W, ie) {\n L.setFromMatrixColumn(ie, 0), L.multiplyScalar(-W), P.add(L);\n };\n })(), me = (() => {\n const L = new $();\n return function(W, ie) {\n s.screenSpacePanning === !0 ? L.setFromMatrixColumn(ie, 1) : (L.setFromMatrixColumn(ie, 0), L.crossVectors(s.object.up, L)), L.multiplyScalar(W), P.add(L);\n };\n })(), he = (() => {\n const L = new $();\n return function(W, ie) {\n const ye = s.domElement;\n if (ye && s.object instanceof on && s.object.isPerspectiveCamera) {\n const De = s.object.position;\n L.copy(De).sub(s.target);\n let Ht = L.length();\n Ht *= Math.tan(s.object.fov / 2 * Math.PI / 180), ce(2 * W * Ht / ye.clientHeight, s.object.matrix), me(2 * ie * Ht / ye.clientHeight, s.object.matrix);\n } else\n ye && s.object instanceof Xi && s.object.isOrthographicCamera ? (ce(W * (s.object.right - s.object.left) / s.object.zoom / ye.clientWidth, s.object.matrix), me(ie * (s.object.top - s.object.bottom) / s.object.zoom / ye.clientHeight, s.object.matrix)) : (console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"), s.enablePan = !1);\n };\n })();\n function ee(L) {\n s.object instanceof on && s.object.isPerspectiveCamera ? y /= L : s.object instanceof Xi && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom * L)), s.object.updateProjectionMatrix(), I = !0) : (console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"), s.enableZoom = !1);\n }\n function X(L) {\n s.object instanceof on && s.object.isPerspectiveCamera ? y *= L : s.object instanceof Xi && s.object.isOrthographicCamera ? (s.object.zoom = Math.max(s.minZoom, Math.min(s.maxZoom, s.object.zoom / L)), s.object.updateProjectionMatrix(), I = !0) : (console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"), s.enableZoom = !1);\n }\n function Pe(L) {\n S.set(L.clientX, L.clientY);\n }\n function fe(L) {\n Y.set(L.clientX, L.clientY);\n }\n function ae(L) {\n F.set(L.clientX, L.clientY);\n }\n function ne(L) {\n R.set(L.clientX, L.clientY), j.subVectors(R, S).multiplyScalar(s.rotateSpeed);\n const U = s.domElement;\n U && (pe(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R), s.update();\n }\n function be(L) {\n G.set(L.clientX, L.clientY), N.subVectors(G, Y), N.y > 0 ? ee(q()) : N.y < 0 && X(q()), Y.copy(G), s.update();\n }\n function M(L) {\n V.set(L.clientX, L.clientY), D.subVectors(V, F).multiplyScalar(s.panSpeed), he(D.x, D.y), F.copy(V), s.update();\n }\n function le(L) {\n L.deltaY < 0 ? X(q()) : L.deltaY > 0 && ee(q()), s.update();\n }\n function Ve(L) {\n let U = !1;\n switch (L.code) {\n case s.keys.UP:\n he(0, s.keyPanSpeed), U = !0;\n break;\n case s.keys.BOTTOM:\n he(0, -s.keyPanSpeed), U = !0;\n break;\n case s.keys.LEFT:\n he(s.keyPanSpeed, 0), U = !0;\n break;\n case s.keys.RIGHT:\n he(-s.keyPanSpeed, 0), U = !0;\n break;\n }\n U && (L.preventDefault(), s.update());\n }\n function Be() {\n if (O.length == 1)\n S.set(O[0].pageX, O[0].pageY);\n else {\n const L = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY);\n S.set(L, U);\n }\n }\n function we() {\n if (O.length == 1)\n F.set(O[0].pageX, O[0].pageY);\n else {\n const L = 0.5 * (O[0].pageX + O[1].pageX), U = 0.5 * (O[0].pageY + O[1].pageY);\n F.set(L, U);\n }\n }\n function st() {\n const L = O[0].pageX - O[1].pageX, U = O[0].pageY - O[1].pageY, W = Math.sqrt(L * L + U * U);\n Y.set(0, W);\n }\n function jn() {\n s.enableZoom && st(), s.enablePan && we();\n }\n function Ye() {\n s.enableZoom && st(), s.enableRotate && Be();\n }\n function zn(L) {\n if (O.length == 1)\n R.set(L.pageX, L.pageY);\n else {\n const W = Lt(L), ie = 0.5 * (L.pageX + W.x), ye = 0.5 * (L.pageY + W.y);\n R.set(ie, ye);\n }\n j.subVectors(R, S).multiplyScalar(s.rotateSpeed);\n const U = s.domElement;\n U && (pe(2 * Math.PI * j.x / U.clientHeight), ge(2 * Math.PI * j.y / U.clientHeight)), S.copy(R);\n }\n function cn(L) {\n if (O.length == 1)\n V.set(L.pageX, L.pageY);\n else {\n const U = Lt(L), W = 0.5 * (L.pageX + U.x), ie = 0.5 * (L.pageY + U.y);\n V.set(W, ie);\n }\n D.subVectors(V, F).multiplyScalar(s.panSpeed), he(D.x, D.y), F.copy(V);\n }\n function mt(L) {\n const U = Lt(L), W = L.pageX - U.x, ie = L.pageY - U.y, ye = Math.sqrt(W * W + ie * ie);\n G.set(0, ye), N.set(0, Math.pow(G.y / Y.y, s.zoomSpeed)), ee(N.y), Y.copy(G);\n }\n function Mt(L) {\n s.enableZoom && mt(L), s.enablePan && cn(L);\n }\n function ze(L) {\n s.enableZoom && mt(L), s.enableRotate && zn(L);\n }\n function rt(L) {\n if (s.enabled !== !1) {\n if (O.length === 0) {\n var U, W;\n (U = s.domElement) === null || U === void 0 || U.ownerDocument.addEventListener(\"pointermove\", un), (W = s.domElement) === null || W === void 0 || W.ownerDocument.addEventListener(\"pointerup\", ft);\n }\n $n(L), L.pointerType === \"touch\" ? St(L) : mi(L);\n }\n }\n function un(L) {\n s.enabled !== !1 && (L.pointerType === \"touch\" ? Kn(L) : Gn(L));\n }\n function ft(L) {\n if (Et(L), O.length === 0) {\n var U, W, ie;\n (U = s.domElement) === null || U === void 0 || U.releasePointerCapture(L.pointerId), (W = s.domElement) === null || W === void 0 || W.ownerDocument.removeEventListener(\"pointermove\", un), (ie = s.domElement) === null || ie === void 0 || ie.ownerDocument.removeEventListener(\"pointerup\", ft);\n }\n s.dispatchEvent(p), d = h.NONE;\n }\n function Un(L) {\n Et(L);\n }\n function mi(L) {\n let U;\n switch (L.button) {\n case 0:\n U = s.mouseButtons.LEFT;\n break;\n case 1:\n U = s.mouseButtons.MIDDLE;\n break;\n case 2:\n U = s.mouseButtons.RIGHT;\n break;\n default:\n U = -1;\n }\n switch (U) {\n case li.DOLLY:\n if (s.enableZoom === !1)\n return;\n fe(L), d = h.DOLLY;\n break;\n case li.ROTATE:\n if (L.ctrlKey || L.metaKey || L.shiftKey) {\n if (s.enablePan === !1)\n return;\n ae(L), d = h.PAN;\n } else {\n if (s.enableRotate === !1)\n return;\n Pe(L), d = h.ROTATE;\n }\n break;\n case li.PAN:\n if (L.ctrlKey || L.metaKey || L.shiftKey) {\n if (s.enableRotate === !1)\n return;\n Pe(L), d = h.ROTATE;\n } else {\n if (s.enablePan === !1)\n return;\n ae(L), d = h.PAN;\n }\n break;\n default:\n d = h.NONE;\n }\n d !== h.NONE && s.dispatchEvent(c);\n }\n function Gn(L) {\n if (s.enabled !== !1)\n switch (d) {\n case h.ROTATE:\n if (s.enableRotate === !1)\n return;\n ne(L);\n break;\n case h.DOLLY:\n if (s.enableZoom === !1)\n return;\n be(L);\n break;\n case h.PAN:\n if (s.enablePan === !1)\n return;\n M(L);\n break;\n }\n }\n function Hn(L) {\n s.enabled === !1 || s.enableZoom === !1 || d !== h.NONE && d !== h.ROTATE || (L.preventDefault(), s.dispatchEvent(c), le(L), s.dispatchEvent(p));\n }\n function xt(L) {\n s.enabled === !1 || s.enablePan === !1 || Ve(L);\n }\n function St(L) {\n switch (vt(L), O.length) {\n case 1:\n switch (s.touches.ONE) {\n case ci.ROTATE:\n if (s.enableRotate === !1)\n return;\n Be(), d = h.TOUCH_ROTATE;\n break;\n case ci.PAN:\n if (s.enablePan === !1)\n return;\n we(), d = h.TOUCH_PAN;\n break;\n default:\n d = h.NONE;\n }\n break;\n case 2:\n switch (s.touches.TWO) {\n case ci.DOLLY_PAN:\n if (s.enableZoom === !1 && s.enablePan === !1)\n return;\n jn(), d = h.TOUCH_DOLLY_PAN;\n break;\n case ci.DOLLY_ROTATE:\n if (s.enableZoom === !1 && s.enableRotate === !1)\n return;\n Ye(), d = h.TOUCH_DOLLY_ROTATE;\n break;\n default:\n d = h.NONE;\n }\n break;\n default:\n d = h.NONE;\n }\n d !== h.NONE && s.dispatchEvent(c);\n }\n function Kn(L) {\n switch (vt(L), d) {\n case h.TOUCH_ROTATE:\n if (s.enableRotate === !1)\n return;\n zn(L), s.update();\n break;\n case h.TOUCH_PAN:\n if (s.enablePan === !1)\n return;\n cn(L), s.update();\n break;\n case h.TOUCH_DOLLY_PAN:\n if (s.enableZoom === !1 && s.enablePan === !1)\n return;\n Mt(L), s.update();\n break;\n case h.TOUCH_DOLLY_ROTATE:\n if (s.enableZoom === !1 && s.enableRotate === !1)\n return;\n ze(L), s.update();\n break;\n default:\n d = h.NONE;\n }\n }\n function pn(L) {\n s.enabled !== !1 && L.preventDefault();\n }\n function $n(L) {\n O.push(L);\n }\n function Et(L) {\n delete H[L.pointerId];\n for (let U = 0; U < O.length; U++)\n if (O[U].pointerId == L.pointerId) {\n O.splice(U, 1);\n return;\n }\n }\n function vt(L) {\n let U = H[L.pointerId];\n U === void 0 && (U = new pt(), H[L.pointerId] = U), U.set(L.pageX, L.pageY);\n }\n function Lt(L) {\n const U = L.pointerId === O[0].pointerId ? O[1] : O[0];\n return H[U.pointerId];\n }\n r !== void 0 && this.connect(r), this.update();\n }\n}\nclass mp extends $s {\n constructor(n) {\n super(n), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(r) {\n return new _p(r);\n }), this.register(function(r) {\n return new Tp(r);\n }), this.register(function(r) {\n return new kp(r);\n }), this.register(function(r) {\n return new yp(r);\n }), this.register(function(r) {\n return new xp(r);\n }), this.register(function(r) {\n return new Ep(r);\n }), this.register(function(r) {\n return new Cp(r);\n }), this.register(function(r) {\n return new gp(r);\n }), this.register(function(r) {\n return new Pp(r);\n }), this.register(function(r) {\n return new wp(r);\n }), this.register(function(r) {\n return new vp(r);\n }), this.register(function(r) {\n return new Mp(r);\n });\n }\n load(n, r, s, a) {\n const c = this;\n let p;\n this.resourcePath !== \"\" ? p = this.resourcePath : this.path !== \"\" ? p = this.path : p = kt.extractUrlBase(n), this.manager.itemStart(n);\n const h = function(g) {\n a ? a(g) : console.error(g), c.manager.itemError(n), c.manager.itemEnd(n);\n }, d = new di(this.manager);\n d.setPath(this.path), d.setResponseType(\"arraybuffer\"), d.setRequestHeader(this.requestHeader), d.setWithCredentials(this.withCredentials), d.load(n, function(g) {\n try {\n c.parse(g, p, function(w) {\n r(w), c.manager.itemEnd(n);\n }, h);\n } catch (w) {\n h(w);\n }\n }, s, h);\n }\n setDRACOLoader(n) {\n return this.dracoLoader = n, this;\n }\n setDDSLoader() {\n throw new Error('THREE.GLTFLoader: \"MSFT_texture_dds\" no longer supported. Please update to \"KHR_texture_basisu\".');\n }\n setKTX2Loader(n) {\n return this.ktx2Loader = n, this;\n }\n setMeshoptDecoder(n) {\n return this.meshoptDecoder = n, this;\n }\n register(n) {\n return this.pluginCallbacks.indexOf(n) === -1 && this.pluginCallbacks.push(n), this;\n }\n unregister(n) {\n return this.pluginCallbacks.indexOf(n) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(n), 1), this;\n }\n parse(n, r, s, a) {\n let c;\n const p = {}, h = {};\n if (typeof n == \"string\")\n c = n;\n else if (kt.decodeText(new Uint8Array(n, 0, 4)) === Za) {\n try {\n p[re.KHR_BINARY_GLTF] = new Sp(n);\n } catch (_) {\n a && a(_);\n return;\n }\n c = p[re.KHR_BINARY_GLTF].content;\n } else\n c = kt.decodeText(new Uint8Array(n));\n const d = JSON.parse(c);\n if (d.asset === void 0 || d.asset.version[0] < 2) {\n a && a(new Error(\"THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.\"));\n return;\n }\n const g = new Up(d, {\n path: r || this.resourcePath || \"\",\n crossOrigin: this.crossOrigin,\n requestHeader: this.requestHeader,\n manager: this.manager,\n ktx2Loader: this.ktx2Loader,\n meshoptDecoder: this.meshoptDecoder\n });\n g.fileLoader.setRequestHeader(this.requestHeader);\n for (let w = 0; w < this.pluginCallbacks.length; w++) {\n const _ = this.pluginCallbacks[w](g);\n h[_.name] = _, p[_.name] = !0;\n }\n if (d.extensionsUsed)\n for (let w = 0; w < d.extensionsUsed.length; ++w) {\n const _ = d.extensionsUsed[w], y = d.extensionsRequired || [];\n switch (_) {\n case re.KHR_MATERIALS_UNLIT:\n p[_] = new bp();\n break;\n case re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:\n p[_] = new Rp();\n break;\n case re.KHR_DRACO_MESH_COMPRESSION:\n p[_] = new Lp(d, this.dracoLoader);\n break;\n case re.KHR_TEXTURE_TRANSFORM:\n p[_] = new Ap();\n break;\n case re.KHR_MESH_QUANTIZATION:\n p[_] = new Ip();\n break;\n default:\n y.indexOf(_) >= 0 && h[_] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension \"' + _ + '\".');\n }\n }\n g.setExtensions(p), g.setPlugins(h), g.parse(s, a);\n }\n parseAsync(n, r) {\n const s = this;\n return new Promise(function(a, c) {\n s.parse(n, r, a, c);\n });\n }\n}\nfunction fp() {\n let v = {};\n return {\n get: function(n) {\n return v[n];\n },\n add: function(n, r) {\n v[n] = r;\n },\n remove: function(n) {\n delete v[n];\n },\n removeAll: function() {\n v = {};\n }\n };\n}\nconst re = {\n KHR_BINARY_GLTF: \"KHR_binary_glTF\",\n KHR_DRACO_MESH_COMPRESSION: \"KHR_draco_mesh_compression\",\n KHR_LIGHTS_PUNCTUAL: \"KHR_lights_punctual\",\n KHR_MATERIALS_CLEARCOAT: \"KHR_materials_clearcoat\",\n KHR_MATERIALS_IOR: \"KHR_materials_ior\",\n KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: \"KHR_materials_pbrSpecularGlossiness\",\n KHR_MATERIALS_SHEEN: \"KHR_materials_sheen\",\n KHR_MATERIALS_SPECULAR: \"KHR_materials_specular\",\n KHR_MATERIALS_TRANSMISSION: \"KHR_materials_transmission\",\n KHR_MATERIALS_IRIDESCENCE: \"KHR_materials_iridescence\",\n KHR_MATERIALS_UNLIT: \"KHR_materials_unlit\",\n KHR_MATERIALS_VOLUME: \"KHR_materials_volume\",\n KHR_TEXTURE_BASISU: \"KHR_texture_basisu\",\n KHR_TEXTURE_TRANSFORM: \"KHR_texture_transform\",\n KHR_MESH_QUANTIZATION: \"KHR_mesh_quantization\",\n KHR_MATERIALS_EMISSIVE_STRENGTH: \"KHR_materials_emissive_strength\",\n EXT_TEXTURE_WEBP: \"EXT_texture_webp\",\n EXT_MESHOPT_COMPRESSION: \"EXT_meshopt_compression\"\n};\nclass vp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_LIGHTS_PUNCTUAL, this.cache = {\n refs: {},\n uses: {}\n };\n }\n _markDefs() {\n const n = this.parser, r = this.parser.json.nodes || [];\n for (let s = 0, a = r.length; s < a; s++) {\n const c = r[s];\n c.extensions && c.extensions[this.name] && c.extensions[this.name].light !== void 0 && n._addNodeRef(this.cache, c.extensions[this.name].light);\n }\n }\n _loadLight(n) {\n const r = this.parser, s = \"light:\" + n;\n let a = r.cache.get(s);\n if (a)\n return a;\n const c = r.json, d = ((c.extensions && c.extensions[this.name] || {}).lights || [])[n];\n let g;\n const w = new ke(16777215);\n d.color !== void 0 && w.fromArray(d.color);\n const _ = d.range !== void 0 ? d.range : 0;\n switch (d.type) {\n case \"directional\":\n g = new Ia(w), g.target.position.set(0, 0, -1), g.add(g.target);\n break;\n case \"point\":\n g = new lo(w), g.distance = _;\n break;\n case \"spot\":\n g = new Ra(w), g.distance = _, d.spot = d.spot || {}, d.spot.innerConeAngle = d.spot.innerConeAngle !== void 0 ? d.spot.innerConeAngle : 0, d.spot.outerConeAngle = d.spot.outerConeAngle !== void 0 ? d.spot.outerConeAngle : Math.PI / 4, g.angle = d.spot.outerConeAngle, g.penumbra = 1 - d.spot.innerConeAngle / d.spot.outerConeAngle, g.target.position.set(0, 0, -1), g.add(g.target);\n break;\n default:\n throw new Error(\"THREE.GLTFLoader: Unexpected light type: \" + d.type);\n }\n return g.position.set(0, 0, 0), g.decay = 2, d.intensity !== void 0 && (g.intensity = d.intensity), g.name = r.createUniqueName(d.name || \"light_\" + n), a = Promise.resolve(g), r.cache.add(s, a), a;\n }\n createNodeAttachment(n) {\n const r = this, s = this.parser, c = s.json.nodes[n], h = (c.extensions && c.extensions[this.name] || {}).light;\n return h === void 0 ? null : this._loadLight(h).then(function(d) {\n return s._getNodeRef(r.cache, h, d);\n });\n }\n}\nclass bp {\n constructor() {\n this.name = re.KHR_MATERIALS_UNLIT;\n }\n getMaterialType() {\n return Nn;\n }\n extendParams(n, r, s) {\n const a = [];\n n.color = new ke(1, 1, 1), n.opacity = 1;\n const c = r.pbrMetallicRoughness;\n if (c) {\n if (Array.isArray(c.baseColorFactor)) {\n const p = c.baseColorFactor;\n n.color.fromArray(p), n.opacity = p[3];\n }\n c.baseColorTexture !== void 0 && a.push(s.assignTexture(n, \"map\", c.baseColorTexture, dt));\n }\n return Promise.all(a);\n }\n}\nclass gp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_EMISSIVE_STRENGTH;\n }\n extendMaterialParams(n, r) {\n const a = this.parser.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = a.extensions[this.name].emissiveStrength;\n return c !== void 0 && (r.emissiveIntensity = c), Promise.resolve();\n }\n}\nclass _p {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_CLEARCOAT;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const s = this.parser, a = s.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], p = a.extensions[this.name];\n if (p.clearcoatFactor !== void 0 && (r.clearcoat = p.clearcoatFactor), p.clearcoatTexture !== void 0 && c.push(s.assignTexture(r, \"clearcoatMap\", p.clearcoatTexture)), p.clearcoatRoughnessFactor !== void 0 && (r.clearcoatRoughness = p.clearcoatRoughnessFactor), p.clearcoatRoughnessTexture !== void 0 && c.push(s.assignTexture(r, \"clearcoatRoughnessMap\", p.clearcoatRoughnessTexture)), p.clearcoatNormalTexture !== void 0 && (c.push(s.assignTexture(r, \"clearcoatNormalMap\", p.clearcoatNormalTexture)), p.clearcoatNormalTexture.scale !== void 0)) {\n const h = p.clearcoatNormalTexture.scale;\n r.clearcoatNormalScale = new pt(h, h);\n }\n return Promise.all(c);\n }\n}\nclass wp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_IRIDESCENCE;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const s = this.parser, a = s.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], p = a.extensions[this.name];\n return p.iridescenceFactor !== void 0 && (r.iridescence = p.iridescenceFactor), p.iridescenceTexture !== void 0 && c.push(s.assignTexture(r, \"iridescenceMap\", p.iridescenceTexture)), p.iridescenceIor !== void 0 && (r.iridescenceIOR = p.iridescenceIor), r.iridescenceThicknessRange === void 0 && (r.iridescenceThicknessRange = [100, 400]), p.iridescenceThicknessMinimum !== void 0 && (r.iridescenceThicknessRange[0] = p.iridescenceThicknessMinimum), p.iridescenceThicknessMaximum !== void 0 && (r.iridescenceThicknessRange[1] = p.iridescenceThicknessMaximum), p.iridescenceThicknessTexture !== void 0 && c.push(s.assignTexture(r, \"iridescenceThicknessMap\", p.iridescenceThicknessTexture)), Promise.all(c);\n }\n}\nclass yp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_SHEEN;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const s = this.parser, a = s.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [];\n r.sheenColor = new ke(0, 0, 0), r.sheenRoughness = 0, r.sheen = 1;\n const p = a.extensions[this.name];\n return p.sheenColorFactor !== void 0 && r.sheenColor.fromArray(p.sheenColorFactor), p.sheenRoughnessFactor !== void 0 && (r.sheenRoughness = p.sheenRoughnessFactor), p.sheenColorTexture !== void 0 && c.push(s.assignTexture(r, \"sheenColorMap\", p.sheenColorTexture, dt)), p.sheenRoughnessTexture !== void 0 && c.push(s.assignTexture(r, \"sheenRoughnessMap\", p.sheenRoughnessTexture)), Promise.all(c);\n }\n}\nclass xp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_TRANSMISSION;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const s = this.parser, a = s.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], p = a.extensions[this.name];\n return p.transmissionFactor !== void 0 && (r.transmission = p.transmissionFactor), p.transmissionTexture !== void 0 && c.push(s.assignTexture(r, \"transmissionMap\", p.transmissionTexture)), Promise.all(c);\n }\n}\nclass Ep {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_VOLUME;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const s = this.parser, a = s.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], p = a.extensions[this.name];\n r.thickness = p.thicknessFactor !== void 0 ? p.thicknessFactor : 0, p.thicknessTexture !== void 0 && c.push(s.assignTexture(r, \"thicknessMap\", p.thicknessTexture)), r.attenuationDistance = p.attenuationDistance || 1 / 0;\n const h = p.attenuationColor || [1, 1, 1];\n return r.attenuationColor = new ke(h[0], h[1], h[2]), Promise.all(c);\n }\n}\nclass Cp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_IOR;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const a = this.parser.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = a.extensions[this.name];\n return r.ior = c.ior !== void 0 ? c.ior : 1.5, Promise.resolve();\n }\n}\nclass Pp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_MATERIALS_SPECULAR;\n }\n getMaterialType(n) {\n const s = this.parser.json.materials[n];\n return !s.extensions || !s.extensions[this.name] ? null : Bn;\n }\n extendMaterialParams(n, r) {\n const s = this.parser, a = s.json.materials[n];\n if (!a.extensions || !a.extensions[this.name])\n return Promise.resolve();\n const c = [], p = a.extensions[this.name];\n r.specularIntensity = p.specularFactor !== void 0 ? p.specularFactor : 1, p.specularTexture !== void 0 && c.push(s.assignTexture(r, \"specularIntensityMap\", p.specularTexture));\n const h = p.specularColorFactor || [1, 1, 1];\n return r.specularColor = new ke(h[0], h[1], h[2]), p.specularColorTexture !== void 0 && c.push(s.assignTexture(r, \"specularColorMap\", p.specularColorTexture, dt)), Promise.all(c);\n }\n}\nclass Tp {\n constructor(n) {\n this.parser = n, this.name = re.KHR_TEXTURE_BASISU;\n }\n loadTexture(n) {\n const r = this.parser, s = r.json, a = s.textures[n];\n if (!a.extensions || !a.extensions[this.name])\n return null;\n const c = a.extensions[this.name], p = r.options.ktx2Loader;\n if (!p) {\n if (s.extensionsRequired && s.extensionsRequired.indexOf(this.name) >= 0)\n throw new Error(\"THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures\");\n return null;\n }\n return r.loadTextureImage(n, c.source, p);\n }\n}\nclass kp {\n constructor(n) {\n this.parser = n, this.name = re.EXT_TEXTURE_WEBP, this.isSupported = null;\n }\n loadTexture(n) {\n const r = this.name, s = this.parser, a = s.json, c = a.textures[n];\n if (!c.extensions || !c.extensions[r])\n return null;\n const p = c.extensions[r], h = a.images[p.source];\n let d = s.textureLoader;\n if (h.uri) {\n const g = s.options.manager.getHandler(h.uri);\n g !== null && (d = g);\n }\n return this.detectSupport().then(function(g) {\n if (g)\n return s.loadTextureImage(n, p.source, d);\n if (a.extensionsRequired && a.extensionsRequired.indexOf(r) >= 0)\n throw new Error(\"THREE.GLTFLoader: WebP required by asset but unsupported.\");\n return s.loadTexture(n);\n });\n }\n detectSupport() {\n return this.isSupported || (this.isSupported = new Promise(function(n) {\n const r = new Image();\n r.src = \"data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA\", r.onload = r.onerror = function() {\n n(r.height === 1);\n };\n })), this.isSupported;\n }\n}\nclass Mp {\n constructor(n) {\n this.name = re.EXT_MESHOPT_COMPRESSION, this.parser = n;\n }\n loadBufferView(n) {\n const r = this.parser.json, s = r.bufferViews[n];\n if (s.extensions && s.extensions[this.name]) {\n const a = s.extensions[this.name], c = this.parser.getDependency(\"buffer\", a.buffer), p = this.parser.options.meshoptDecoder;\n if (!p || !p.supported) {\n if (r.extensionsRequired && r.extensionsRequired.indexOf(this.name) >= 0)\n throw new Error(\"THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files\");\n return null;\n }\n return c.then(function(h) {\n const d = a.byteOffset || 0, g = a.byteLength || 0, w = a.count, _ = a.byteStride, y = new Uint8Array(h, d, g);\n return p.decodeGltfBufferAsync ? p.decodeGltfBufferAsync(w, _, y, a.mode, a.filter).then(function(P) {\n return P.buffer;\n }) : p.ready.then(function() {\n const P = new ArrayBuffer(w * _);\n return p.decodeGltfBuffer(new Uint8Array(P), w, _, y, a.mode, a.filter), P;\n });\n });\n } else\n return null;\n }\n}\nconst Za = \"glTF\", Ki = 12, ha = {\n JSON: 1313821514,\n BIN: 5130562\n};\nclass Sp {\n constructor(n) {\n this.name = re.KHR_BINARY_GLTF, this.content = null, this.body = null;\n const r = new DataView(n, 0, Ki);\n if (this.header = {\n magic: kt.decodeText(new Uint8Array(n.slice(0, 4))),\n version: r.getUint32(4, !0),\n length: r.getUint32(8, !0)\n }, this.header.magic !== Za)\n throw new Error(\"THREE.GLTFLoader: Unsupported glTF-Binary header.\");\n if (this.header.version < 2)\n throw new Error(\"THREE.GLTFLoader: Legacy binary file detected.\");\n const s = this.header.length - Ki, a = new DataView(n, Ki);\n let c = 0;\n for (; c < s; ) {\n const p = a.getUint32(c, !0);\n c += 4;\n const h = a.getUint32(c, !0);\n if (c += 4, h === ha.JSON) {\n const d = new Uint8Array(n, Ki + c, p);\n this.content = kt.decodeText(d);\n } else if (h === ha.BIN) {\n const d = Ki + c;\n this.body = n.slice(d, d + p);\n }\n c += p;\n }\n if (this.content === null)\n throw new Error(\"THREE.GLTFLoader: JSON content not found.\");\n }\n}\nclass Lp {\n constructor(n, r) {\n if (!r)\n throw new Error(\"THREE.GLTFLoader: No DRACOLoader instance provided.\");\n this.name = re.KHR_DRACO_MESH_COMPRESSION, this.json = n, this.dracoLoader = r, this.dracoLoader.preload();\n }\n decodePrimitive(n, r) {\n const s = this.json, a = this.dracoLoader, c = n.extensions[this.name].bufferView, p = n.extensions[this.name].attributes, h = {}, d = {}, g = {};\n for (const w in p) {\n const _ = vo[w] || w.toLowerCase();\n h[_] = p[w];\n }\n for (const w in n.attributes) {\n const _ = vo[w] || w.toLowerCase();\n if (p[w] !== void 0) {\n const y = s.accessors[n.attributes[w]], P = es[y.componentType];\n g[_] = P.name, d[_] = y.normalized === !0;\n }\n }\n return r.getDependency(\"bufferView\", c).then(function(w) {\n return new Promise(function(_) {\n a.decodeDracoFile(w, function(y) {\n for (const P in y.attributes) {\n const I = y.attributes[P], S = d[P];\n S !== void 0 && (I.normalized = S);\n }\n _(y);\n }, h, g);\n });\n });\n }\n}\nclass Ap {\n constructor() {\n this.name = re.KHR_TEXTURE_TRANSFORM;\n }\n extendTexture(n, r) {\n return r.texCoord !== void 0 && console.warn('THREE.GLTFLoader: Custom UV sets in \"' + this.name + '\" extension not yet supported.'), r.offset === void 0 && r.rotation === void 0 && r.scale === void 0 || (n = n.clone(), r.offset !== void 0 && n.offset.fromArray(r.offset), r.rotation !== void 0 && (n.rotation = r.rotation), r.scale !== void 0 && n.repeat.fromArray(r.scale), n.needsUpdate = !0), n;\n }\n}\nclass fo extends Xs {\n constructor(n) {\n super(), this.isGLTFSpecularGlossinessMaterial = !0;\n const r = [\"#ifdef USE_SPECULARMAP\", \"\tuniform sampler2D specularMap;\", \"#endif\"].join(`\n`), s = [\"#ifdef USE_GLOSSINESSMAP\", \"\tuniform sampler2D glossinessMap;\", \"#endif\"].join(`\n`), a = [\"vec3 specularFactor = specular;\", \"#ifdef USE_SPECULARMAP\", \"\tvec4 texelSpecular = texture2D( specularMap, vUv );\", \"\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture\", \"\tspecularFactor *= texelSpecular.rgb;\", \"#endif\"].join(`\n`), c = [\"float glossinessFactor = glossiness;\", \"#ifdef USE_GLOSSINESSMAP\", \"\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );\", \"\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture\", \"\tglossinessFactor *= texelGlossiness.a;\", \"#endif\"].join(`\n`), p = [\"PhysicalMaterial material;\", \"material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );\", \"vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\", \"float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\", \"material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.\", \"material.roughness += geometryRoughness;\", \"material.roughness = min( material.roughness, 1.0 );\", \"material.specularColor = specularFactor;\"].join(`\n`), h = {\n specular: {\n value: new ke().setHex(16777215)\n },\n glossiness: {\n value: 1\n },\n specularMap: {\n value: null\n },\n glossinessMap: {\n value: null\n }\n };\n this._extraUniforms = h, this.onBeforeCompile = function(d) {\n for (const g in h)\n d.uniforms[g] = h[g];\n d.fragmentShader = d.fragmentShader.replace(\"uniform float roughness;\", \"uniform vec3 specular;\").replace(\"uniform float metalness;\", \"uniform float glossiness;\").replace(\"#include \", r).replace(\"#include \", s).replace(\"#include \", a).replace(\"#include \", c).replace(\"#include \", p);\n }, Object.defineProperties(this, {\n specular: {\n get: function() {\n return h.specular.value;\n },\n set: function(d) {\n h.specular.value = d;\n }\n },\n specularMap: {\n get: function() {\n return h.specularMap.value;\n },\n set: function(d) {\n h.specularMap.value = d, d ? this.defines.USE_SPECULARMAP = \"\" : delete this.defines.USE_SPECULARMAP;\n }\n },\n glossiness: {\n get: function() {\n return h.glossiness.value;\n },\n set: function(d) {\n h.glossiness.value = d;\n }\n },\n glossinessMap: {\n get: function() {\n return h.glossinessMap.value;\n },\n set: function(d) {\n h.glossinessMap.value = d, d ? (this.defines.USE_GLOSSINESSMAP = \"\", this.defines.USE_UV = \"\") : (delete this.defines.USE_GLOSSINESSMAP, delete this.defines.USE_UV);\n }\n }\n }), delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this.setValues(n);\n }\n copy(n) {\n return super.copy(n), this.specularMap = n.specularMap, this.specular.copy(n.specular), this.glossinessMap = n.glossinessMap, this.glossiness = n.glossiness, delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this;\n }\n}\nclass Rp {\n constructor() {\n this.name = re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS, this.specularGlossinessParams = [\"color\", \"map\", \"lightMap\", \"lightMapIntensity\", \"aoMap\", \"aoMapIntensity\", \"emissive\", \"emissiveIntensity\", \"emissiveMap\", \"bumpMap\", \"bumpScale\", \"normalMap\", \"normalMapType\", \"displacementMap\", \"displacementScale\", \"displacementBias\", \"specularMap\", \"specular\", \"glossinessMap\", \"glossiness\", \"alphaMap\", \"envMap\", \"envMapIntensity\", \"refractionRatio\"];\n }\n getMaterialType() {\n return fo;\n }\n extendParams(n, r, s) {\n const a = r.extensions[this.name];\n n.color = new ke(1, 1, 1), n.opacity = 1;\n const c = [];\n if (Array.isArray(a.diffuseFactor)) {\n const p = a.diffuseFactor;\n n.color.fromArray(p), n.opacity = p[3];\n }\n if (a.diffuseTexture !== void 0 && c.push(s.assignTexture(n, \"map\", a.diffuseTexture, dt)), n.emissive = new ke(0, 0, 0), n.glossiness = a.glossinessFactor !== void 0 ? a.glossinessFactor : 1, n.specular = new ke(1, 1, 1), Array.isArray(a.specularFactor) && n.specular.fromArray(a.specularFactor), a.specularGlossinessTexture !== void 0) {\n const p = a.specularGlossinessTexture;\n c.push(s.assignTexture(n, \"glossinessMap\", p)), c.push(s.assignTexture(n, \"specularMap\", p, dt));\n }\n return Promise.all(c);\n }\n createMaterial(n) {\n const r = new fo(n);\n return r.fog = !0, r.color = n.color, r.map = n.map === void 0 ? null : n.map, r.lightMap = null, r.lightMapIntensity = 1, r.aoMap = n.aoMap === void 0 ? null : n.aoMap, r.aoMapIntensity = 1, r.emissive = n.emissive, r.emissiveIntensity = n.emissiveIntensity === void 0 ? 1 : n.emissiveIntensity, r.emissiveMap = n.emissiveMap === void 0 ? null : n.emissiveMap, r.bumpMap = n.bumpMap === void 0 ? null : n.bumpMap, r.bumpScale = 1, r.normalMap = n.normalMap === void 0 ? null : n.normalMap, r.normalMapType = hu, n.normalScale && (r.normalScale = n.normalScale), r.displacementMap = null, r.displacementScale = 1, r.displacementBias = 0, r.specularMap = n.specularMap === void 0 ? null : n.specularMap, r.specular = n.specular, r.glossinessMap = n.glossinessMap === void 0 ? null : n.glossinessMap, r.glossiness = n.glossiness, r.alphaMap = null, r.envMap = n.envMap === void 0 ? null : n.envMap, r.envMapIntensity = 1, r.refractionRatio = 0.98, r;\n }\n}\nclass Ip {\n constructor() {\n this.name = re.KHR_MESH_QUANTIZATION;\n }\n}\nclass Wa extends Lu {\n constructor(n, r, s, a) {\n super(n, r, s, a);\n }\n copySampleValue_(n) {\n const r = this.resultBuffer, s = this.sampleValues, a = this.valueSize, c = n * a * 3 + a;\n for (let p = 0; p !== a; p++)\n r[p] = s[c + p];\n return r;\n }\n interpolate_(n, r, s, a) {\n const c = this.resultBuffer, p = this.sampleValues, h = this.valueSize, d = h * 2, g = h * 3, w = a - r, _ = (s - r) / w, y = _ * _, P = y * _, I = n * g, S = I - g, R = -2 * P + 3 * y, j = P - y, F = 1 - R, V = j - y + _;\n for (let D = 0; D !== h; D++) {\n const Y = p[S + D + h], G = p[S + D + d] * w, N = p[I + D + h], O = p[I + D] * w;\n c[D] = F * Y + V * G + R * N + j * O;\n }\n return c;\n }\n}\nconst Vp = new Te();\nclass Dp extends Wa {\n interpolate_(n, r, s, a) {\n const c = super.interpolate_(n, r, s, a);\n return Vp.fromArray(c).normalize().toArray(c), c;\n }\n}\nconst Bt = {\n FLOAT: 5126,\n //FLOAT_MAT2: 35674,\n FLOAT_MAT3: 35675,\n FLOAT_MAT4: 35676,\n FLOAT_VEC2: 35664,\n FLOAT_VEC3: 35665,\n FLOAT_VEC4: 35666,\n LINEAR: 9729,\n REPEAT: 10497,\n SAMPLER_2D: 35678,\n POINTS: 0,\n LINES: 1,\n LINE_LOOP: 2,\n LINE_STRIP: 3,\n TRIANGLES: 4,\n TRIANGLE_STRIP: 5,\n TRIANGLE_FAN: 6,\n UNSIGNED_BYTE: 5121,\n UNSIGNED_SHORT: 5123\n}, es = {\n 5120: Int8Array,\n 5121: Uint8Array,\n 5122: Int16Array,\n 5123: Uint16Array,\n 5125: Uint32Array,\n 5126: Float32Array\n}, da = {\n 9728: wu,\n 9729: zs,\n 9984: yu,\n 9985: xu,\n 9986: Eu,\n 9987: Da\n}, ma = {\n 33071: uo,\n 33648: Cu,\n 10497: Zi\n}, fa = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n}, vo = {\n POSITION: \"position\",\n NORMAL: \"normal\",\n TANGENT: \"tangent\",\n TEXCOORD_0: \"uv\",\n TEXCOORD_1: \"uv2\",\n COLOR_0: \"color\",\n WEIGHTS_0: \"skinWeight\",\n JOINTS_0: \"skinIndex\"\n}, rn = {\n scale: \"scale\",\n translation: \"position\",\n rotation: \"quaternion\",\n weights: \"morphTargetInfluences\"\n}, Op = {\n CUBICSPLINE: void 0,\n // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each\n // keyframe track will be initialized with a default interpolation type, then modified.\n LINEAR: Na,\n STEP: Pu\n}, io = {\n OPAQUE: \"OPAQUE\",\n MASK: \"MASK\",\n BLEND: \"BLEND\"\n};\nfunction Np(v) {\n return v.DefaultMaterial === void 0 && (v.DefaultMaterial = new Xs({\n color: 16777215,\n emissive: 0,\n metalness: 1,\n roughness: 1,\n transparent: !1,\n depthTest: !0,\n side: Tu\n })), v.DefaultMaterial;\n}\nfunction $i(v, n, r) {\n for (const s in r.extensions)\n v[s] === void 0 && (n.userData.gltfExtensions = n.userData.gltfExtensions || {}, n.userData.gltfExtensions[s] = r.extensions[s]);\n}\nfunction Dn(v, n) {\n n.extras !== void 0 && (typeof n.extras == \"object\" ? Object.assign(v.userData, n.extras) : console.warn(\"THREE.GLTFLoader: Ignoring primitive type .extras, \" + n.extras));\n}\nfunction Fp(v, n, r) {\n let s = !1, a = !1, c = !1;\n for (let g = 0, w = n.length; g < w; g++) {\n const _ = n[g];\n if (_.POSITION !== void 0 && (s = !0), _.NORMAL !== void 0 && (a = !0), _.COLOR_0 !== void 0 && (c = !0), s && a && c)\n break;\n }\n if (!s && !a && !c)\n return Promise.resolve(v);\n const p = [], h = [], d = [];\n for (let g = 0, w = n.length; g < w; g++) {\n const _ = n[g];\n if (s) {\n const y = _.POSITION !== void 0 ? r.getDependency(\"accessor\", _.POSITION) : v.attributes.position;\n p.push(y);\n }\n if (a) {\n const y = _.NORMAL !== void 0 ? r.getDependency(\"accessor\", _.NORMAL) : v.attributes.normal;\n h.push(y);\n }\n if (c) {\n const y = _.COLOR_0 !== void 0 ? r.getDependency(\"accessor\", _.COLOR_0) : v.attributes.color;\n d.push(y);\n }\n }\n return Promise.all([Promise.all(p), Promise.all(h), Promise.all(d)]).then(function(g) {\n const w = g[0], _ = g[1], y = g[2];\n return s && (v.morphAttributes.position = w), a && (v.morphAttributes.normal = _), c && (v.morphAttributes.color = y), v.morphTargetsRelative = !0, v;\n });\n}\nfunction Bp(v, n) {\n if (v.updateMorphTargets(), n.weights !== void 0)\n for (let r = 0, s = n.weights.length; r < s; r++)\n v.morphTargetInfluences[r] = n.weights[r];\n if (n.extras && Array.isArray(n.extras.targetNames)) {\n const r = n.extras.targetNames;\n if (v.morphTargetInfluences.length === r.length) {\n v.morphTargetDictionary = {};\n for (let s = 0, a = r.length; s < a; s++)\n v.morphTargetDictionary[r[s]] = s;\n } else\n console.warn(\"THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.\");\n }\n}\nfunction jp(v) {\n const n = v.extensions && v.extensions[re.KHR_DRACO_MESH_COMPRESSION];\n let r;\n return n ? r = \"draco:\" + n.bufferView + \":\" + n.indices + \":\" + va(n.attributes) : r = v.indices + \":\" + va(v.attributes) + \":\" + v.mode, r;\n}\nfunction va(v) {\n let n = \"\";\n const r = Object.keys(v).sort();\n for (let s = 0, a = r.length; s < a; s++)\n n += r[s] + \":\" + v[r[s]] + \";\";\n return n;\n}\nfunction bo(v) {\n switch (v) {\n case Int8Array:\n return 1 / 127;\n case Uint8Array:\n return 1 / 255;\n case Int16Array:\n return 1 / 32767;\n case Uint16Array:\n return 1 / 65535;\n default:\n throw new Error(\"THREE.GLTFLoader: Unsupported normalized accessor component type.\");\n }\n}\nfunction zp(v) {\n return v.search(/\\.jpe?g($|\\?)/i) > 0 || v.search(/^data\\:image\\/jpeg/) === 0 ? \"image/jpeg\" : v.search(/\\.webp($|\\?)/i) > 0 || v.search(/^data\\:image\\/webp/) === 0 ? \"image/webp\" : \"image/png\";\n}\nclass Up {\n constructor(n = {}, r = {}) {\n var s, a;\n this.json = n, this.extensions = {}, this.plugins = {}, this.options = r, this.cache = new fp(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.meshCache = {\n refs: {},\n uses: {}\n }, this.cameraCache = {\n refs: {},\n uses: {}\n }, this.lightCache = {\n refs: {},\n uses: {}\n }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};\n const c = typeof navigator < \"u\" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === !0, p = typeof navigator < \"u\" && ((s = navigator.userAgent) === null || s === void 0 ? void 0 : s.indexOf(\"Firefox\")) > -1, h = typeof navigator < \"u\" && p ? (a = navigator.userAgent) === null || a === void 0 ? void 0 : a.match(/Firefox\\/([0-9]+)\\./)[1] : -1;\n typeof createImageBitmap > \"u\" || c || p && h < 98 ? this.textureLoader = new Va(this.options.manager) : this.textureLoader = new du(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new di(this.options.manager), this.fileLoader.setResponseType(\"arraybuffer\"), this.options.crossOrigin === \"use-credentials\" && this.fileLoader.setWithCredentials(!0);\n }\n setExtensions(n) {\n this.extensions = n;\n }\n setPlugins(n) {\n this.plugins = n;\n }\n parse(n, r) {\n const s = this, a = this.json, c = this.extensions;\n this.cache.removeAll(), this._invokeAll(function(p) {\n return p._markDefs && p._markDefs();\n }), Promise.all(this._invokeAll(function(p) {\n return p.beforeRoot && p.beforeRoot();\n })).then(function() {\n return Promise.all([s.getDependencies(\"scene\"), s.getDependencies(\"animation\"), s.getDependencies(\"camera\")]);\n }).then(function(p) {\n const h = {\n scene: p[0][a.scene || 0],\n scenes: p[0],\n animations: p[1],\n cameras: p[2],\n asset: a.asset,\n parser: s,\n userData: {}\n };\n $i(c, h, a), Dn(h, a), Promise.all(s._invokeAll(function(d) {\n return d.afterRoot && d.afterRoot(h);\n })).then(function() {\n n(h);\n });\n }).catch(r);\n }\n /**\n * Marks the special nodes/meshes in json for efficient parse.\n */\n _markDefs() {\n const n = this.json.nodes || [], r = this.json.skins || [], s = this.json.meshes || [];\n for (let a = 0, c = r.length; a < c; a++) {\n const p = r[a].joints;\n for (let h = 0, d = p.length; h < d; h++)\n n[p[h]].isBone = !0;\n }\n for (let a = 0, c = n.length; a < c; a++) {\n const p = n[a];\n p.mesh !== void 0 && (this._addNodeRef(this.meshCache, p.mesh), p.skin !== void 0 && (s[p.mesh].isSkinnedMesh = !0)), p.camera !== void 0 && this._addNodeRef(this.cameraCache, p.camera);\n }\n }\n /**\n * Counts references to shared node / Object3D resources. These resources\n * can be reused, or \"instantiated\", at multiple nodes in the scene\n * hierarchy. Mesh, Camera, and Light instances are instantiated and must\n * be marked. Non-scenegraph resources (like Materials, Geometries, and\n * Textures) can be reused directly and are not marked here.\n *\n * Example: CesiumMilkTruck sample model reuses \"Wheel\" meshes.\n */\n _addNodeRef(n, r) {\n r !== void 0 && (n.refs[r] === void 0 && (n.refs[r] = n.uses[r] = 0), n.refs[r]++);\n }\n /** Returns a reference to a shared resource, cloning it if necessary. */\n _getNodeRef(n, r, s) {\n if (n.refs[r] <= 1)\n return s;\n const a = s.clone(), c = (p, h) => {\n const d = this.associations.get(p);\n d != null && this.associations.set(h, d);\n for (const [g, w] of p.children.entries())\n c(w, h.children[g]);\n };\n return c(s, a), a.name += \"_instance_\" + n.uses[r]++, a;\n }\n _invokeOne(n) {\n const r = Object.values(this.plugins);\n r.push(this);\n for (let s = 0; s < r.length; s++) {\n const a = n(r[s]);\n if (a)\n return a;\n }\n return null;\n }\n _invokeAll(n) {\n const r = Object.values(this.plugins);\n r.unshift(this);\n const s = [];\n for (let a = 0; a < r.length; a++) {\n const c = n(r[a]);\n c && s.push(c);\n }\n return s;\n }\n /**\n * Requests the specified dependency asynchronously, with caching.\n * @param {string} type\n * @param {number} index\n * @return {Promise}\n */\n getDependency(n, r) {\n const s = n + \":\" + r;\n let a = this.cache.get(s);\n if (!a) {\n switch (n) {\n case \"scene\":\n a = this.loadScene(r);\n break;\n case \"node\":\n a = this.loadNode(r);\n break;\n case \"mesh\":\n a = this._invokeOne(function(c) {\n return c.loadMesh && c.loadMesh(r);\n });\n break;\n case \"accessor\":\n a = this.loadAccessor(r);\n break;\n case \"bufferView\":\n a = this._invokeOne(function(c) {\n return c.loadBufferView && c.loadBufferView(r);\n });\n break;\n case \"buffer\":\n a = this.loadBuffer(r);\n break;\n case \"material\":\n a = this._invokeOne(function(c) {\n return c.loadMaterial && c.loadMaterial(r);\n });\n break;\n case \"texture\":\n a = this._invokeOne(function(c) {\n return c.loadTexture && c.loadTexture(r);\n });\n break;\n case \"skin\":\n a = this.loadSkin(r);\n break;\n case \"animation\":\n a = this._invokeOne(function(c) {\n return c.loadAnimation && c.loadAnimation(r);\n });\n break;\n case \"camera\":\n a = this.loadCamera(r);\n break;\n default:\n throw new Error(\"Unknown type: \" + n);\n }\n this.cache.add(s, a);\n }\n return a;\n }\n /**\n * Requests all dependencies of the specified type asynchronously, with caching.\n * @param {string} type\n * @return {Promise>}\n */\n getDependencies(n) {\n let r = this.cache.get(n);\n if (!r) {\n const s = this, a = this.json[n + (n === \"mesh\" ? \"es\" : \"s\")] || [];\n r = Promise.all(a.map(function(c, p) {\n return s.getDependency(n, p);\n })), this.cache.add(n, r);\n }\n return r;\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n * @param {number} bufferIndex\n * @return {Promise}\n */\n loadBuffer(n) {\n const r = this.json.buffers[n], s = this.fileLoader;\n if (r.type && r.type !== \"arraybuffer\")\n throw new Error(\"THREE.GLTFLoader: \" + r.type + \" buffer type is not supported.\");\n if (r.uri === void 0 && n === 0)\n return Promise.resolve(this.extensions[re.KHR_BINARY_GLTF].body);\n const a = this.options;\n return new Promise(function(c, p) {\n s.load(kt.resolveURL(r.uri, a.path), c, void 0, function() {\n p(new Error('THREE.GLTFLoader: Failed to load buffer \"' + r.uri + '\".'));\n });\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n * @param {number} bufferViewIndex\n * @return {Promise}\n */\n loadBufferView(n) {\n const r = this.json.bufferViews[n];\n return this.getDependency(\"buffer\", r.buffer).then(function(s) {\n const a = r.byteLength || 0, c = r.byteOffset || 0;\n return s.slice(c, c + a);\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors\n * @param {number} accessorIndex\n * @return {Promise}\n */\n loadAccessor(n) {\n const r = this, s = this.json, a = this.json.accessors[n];\n if (a.bufferView === void 0 && a.sparse === void 0)\n return Promise.resolve(null);\n const c = [];\n return a.bufferView !== void 0 ? c.push(this.getDependency(\"bufferView\", a.bufferView)) : c.push(null), a.sparse !== void 0 && (c.push(this.getDependency(\"bufferView\", a.sparse.indices.bufferView)), c.push(this.getDependency(\"bufferView\", a.sparse.values.bufferView))), Promise.all(c).then(function(p) {\n const h = p[0], d = fa[a.type], g = es[a.componentType], w = g.BYTES_PER_ELEMENT, _ = w * d, y = a.byteOffset || 0, P = a.bufferView !== void 0 ? s.bufferViews[a.bufferView].byteStride : void 0, I = a.normalized === !0;\n let S, R;\n if (P && P !== _) {\n const j = Math.floor(y / P), F = \"InterleavedBuffer:\" + a.bufferView + \":\" + a.componentType + \":\" + j + \":\" + a.count;\n let V = r.cache.get(F);\n V || (S = new g(h, j * P, a.count * P / w), V = new mu(S, P / w), r.cache.add(F, V)), R = new fu(V, d, y % P / w, I);\n } else\n h === null ? S = new g(a.count * d) : S = new g(h, y, a.count * d), R = new js(S, d, I);\n if (a.sparse !== void 0) {\n const j = fa.SCALAR, F = es[a.sparse.indices.componentType], V = a.sparse.indices.byteOffset || 0, D = a.sparse.values.byteOffset || 0, Y = new F(p[1], V, a.sparse.count * j), G = new g(p[2], D, a.sparse.count * d);\n h !== null && (R = new js(R.array.slice(), R.itemSize, R.normalized));\n for (let N = 0, O = Y.length; N < O; N++) {\n const H = Y[N];\n if (R.setX(H, G[N * d]), d >= 2 && R.setY(H, G[N * d + 1]), d >= 3 && R.setZ(H, G[N * d + 2]), d >= 4 && R.setW(H, G[N * d + 3]), d >= 5)\n throw new Error(\"THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.\");\n }\n }\n return R;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures\n * @param {number} textureIndex\n * @return {Promise}\n */\n loadTexture(n) {\n const r = this.json, s = this.options, c = r.textures[n].source, p = r.images[c];\n let h = this.textureLoader;\n if (p.uri) {\n const d = s.manager.getHandler(p.uri);\n d !== null && (h = d);\n }\n return this.loadTextureImage(n, c, h);\n }\n loadTextureImage(n, r, s) {\n const a = this, c = this.json, p = c.textures[n], h = c.images[r], d = (h.uri || h.bufferView) + \":\" + p.sampler;\n if (this.textureCache[d])\n return this.textureCache[d];\n const g = this.loadImageSource(r, s).then(function(w) {\n w.flipY = !1, p.name && (w.name = p.name);\n const y = (c.samplers || {})[p.sampler] || {};\n return w.magFilter = da[y.magFilter] || zs, w.minFilter = da[y.minFilter] || Da, w.wrapS = ma[y.wrapS] || Zi, w.wrapT = ma[y.wrapT] || Zi, a.associations.set(w, {\n textures: n\n }), w;\n }).catch(function() {\n return null;\n });\n return this.textureCache[d] = g, g;\n }\n loadImageSource(n, r) {\n const s = this, a = this.json, c = this.options;\n if (this.sourceCache[n] !== void 0)\n return this.sourceCache[n].then((_) => _.clone());\n const p = a.images[n], h = self.URL || self.webkitURL;\n let d = p.uri || \"\", g = !1;\n if (p.bufferView !== void 0)\n d = s.getDependency(\"bufferView\", p.bufferView).then(function(_) {\n g = !0;\n const y = new Blob([_], {\n type: p.mimeType\n });\n return d = h.createObjectURL(y), d;\n });\n else if (p.uri === void 0)\n throw new Error(\"THREE.GLTFLoader: Image \" + n + \" is missing URI and bufferView\");\n const w = Promise.resolve(d).then(function(_) {\n return new Promise(function(y, P) {\n let I = y;\n r.isImageBitmapLoader === !0 && (I = function(S) {\n const R = new Us(S);\n R.needsUpdate = !0, y(R);\n }), r.load(kt.resolveURL(_, c.path), I, void 0, P);\n });\n }).then(function(_) {\n return g === !0 && h.revokeObjectURL(d), _.userData.mimeType = p.mimeType || zp(p.uri), _;\n }).catch(function(_) {\n throw console.error(\"THREE.GLTFLoader: Couldn't load texture\", d), _;\n });\n return this.sourceCache[n] = w, w;\n }\n /**\n * Asynchronously assigns a texture to the given material parameters.\n * @param {Object} materialParams\n * @param {string} mapName\n * @param {Object} mapDef\n * @return {Promise}\n */\n assignTexture(n, r, s, a) {\n const c = this;\n return this.getDependency(\"texture\", s.index).then(function(p) {\n if (s.texCoord !== void 0 && s.texCoord != 0 && !(r === \"aoMap\" && s.texCoord == 1) && console.warn(\"THREE.GLTFLoader: Custom UV set \" + s.texCoord + \" for texture \" + r + \" not yet supported.\"), c.extensions[re.KHR_TEXTURE_TRANSFORM]) {\n const h = s.extensions !== void 0 ? s.extensions[re.KHR_TEXTURE_TRANSFORM] : void 0;\n if (h) {\n const d = c.associations.get(p);\n p = c.extensions[re.KHR_TEXTURE_TRANSFORM].extendTexture(p, h), c.associations.set(p, d);\n }\n }\n return a !== void 0 && (p.encoding = a), n[r] = p, p;\n });\n }\n /**\n * Assigns final material to a Mesh, Line, or Points instance. The instance\n * already has a material (generated from the glTF material options alone)\n * but reuse of the same glTF material may require multiple threejs materials\n * to accommodate different primitive types, defines, etc. New materials will\n * be created if necessary, and reused from a cache.\n * @param {Object3D} mesh Mesh, Line, or Points instance.\n */\n assignFinalMaterial(n) {\n const r = n.geometry;\n let s = n.material;\n const a = r.attributes.tangent === void 0, c = r.attributes.color !== void 0, p = r.attributes.normal === void 0;\n if (n.isPoints) {\n const h = \"PointsMaterial:\" + s.uuid;\n let d = this.cache.get(h);\n d || (d = new vu(), Wr.prototype.copy.call(d, s), d.color.copy(s.color), d.map = s.map, d.sizeAttenuation = !1, this.cache.add(h, d)), s = d;\n } else if (n.isLine) {\n const h = \"LineBasicMaterial:\" + s.uuid;\n let d = this.cache.get(h);\n d || (d = new yo(), Wr.prototype.copy.call(d, s), d.color.copy(s.color), this.cache.add(h, d)), s = d;\n }\n if (a || c || p) {\n let h = \"ClonedMaterial:\" + s.uuid + \":\";\n s.isGLTFSpecularGlossinessMaterial && (h += \"specular-glossiness:\"), a && (h += \"derivative-tangents:\"), c && (h += \"vertex-colors:\"), p && (h += \"flat-shading:\");\n let d = this.cache.get(h);\n d || (d = s.clone(), c && (d.vertexColors = !0), p && (d.flatShading = !0), a && (d.normalScale && (d.normalScale.y *= -1), d.clearcoatNormalScale && (d.clearcoatNormalScale.y *= -1)), this.cache.add(h, d), this.associations.set(d, this.associations.get(s))), s = d;\n }\n s.aoMap && r.attributes.uv2 === void 0 && r.attributes.uv !== void 0 && r.setAttribute(\"uv2\", r.attributes.uv), n.material = s;\n }\n getMaterialType() {\n return Xs;\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials\n * @param {number} materialIndex\n * @return {Promise}\n */\n loadMaterial(n) {\n const r = this, s = this.json, a = this.extensions, c = s.materials[n];\n let p;\n const h = {}, d = c.extensions || {}, g = [];\n if (d[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) {\n const _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];\n p = _.getMaterialType(), g.push(_.extendParams(h, c, r));\n } else if (d[re.KHR_MATERIALS_UNLIT]) {\n const _ = a[re.KHR_MATERIALS_UNLIT];\n p = _.getMaterialType(), g.push(_.extendParams(h, c, r));\n } else {\n const _ = c.pbrMetallicRoughness || {};\n if (h.color = new ke(1, 1, 1), h.opacity = 1, Array.isArray(_.baseColorFactor)) {\n const y = _.baseColorFactor;\n h.color.fromArray(y), h.opacity = y[3];\n }\n _.baseColorTexture !== void 0 && g.push(r.assignTexture(h, \"map\", _.baseColorTexture, dt)), h.metalness = _.metallicFactor !== void 0 ? _.metallicFactor : 1, h.roughness = _.roughnessFactor !== void 0 ? _.roughnessFactor : 1, _.metallicRoughnessTexture !== void 0 && (g.push(r.assignTexture(h, \"metalnessMap\", _.metallicRoughnessTexture)), g.push(r.assignTexture(h, \"roughnessMap\", _.metallicRoughnessTexture))), p = this._invokeOne(function(y) {\n return y.getMaterialType && y.getMaterialType(n);\n }), g.push(Promise.all(this._invokeAll(function(y) {\n return y.extendMaterialParams && y.extendMaterialParams(n, h);\n })));\n }\n c.doubleSided === !0 && (h.side = wo);\n const w = c.alphaMode || io.OPAQUE;\n if (w === io.BLEND ? (h.transparent = !0, h.depthWrite = !1) : (h.transparent = !1, w === io.MASK && (h.alphaTest = c.alphaCutoff !== void 0 ? c.alphaCutoff : 0.5)), c.normalTexture !== void 0 && p !== Nn && (g.push(r.assignTexture(h, \"normalMap\", c.normalTexture)), h.normalScale = new pt(1, 1), c.normalTexture.scale !== void 0)) {\n const _ = c.normalTexture.scale;\n h.normalScale.set(_, _);\n }\n return c.occlusionTexture !== void 0 && p !== Nn && (g.push(r.assignTexture(h, \"aoMap\", c.occlusionTexture)), c.occlusionTexture.strength !== void 0 && (h.aoMapIntensity = c.occlusionTexture.strength)), c.emissiveFactor !== void 0 && p !== Nn && (h.emissive = new ke().fromArray(c.emissiveFactor)), c.emissiveTexture !== void 0 && p !== Nn && g.push(r.assignTexture(h, \"emissiveMap\", c.emissiveTexture, dt)), Promise.all(g).then(function() {\n let _;\n return p === fo ? _ = a[re.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(h) : _ = new p(h), c.name && (_.name = c.name), Dn(_, c), r.associations.set(_, {\n materials: n\n }), c.extensions && $i(a, _, c), _;\n });\n }\n /** When Object3D instances are targeted by animation, they need unique names. */\n createUniqueName(n) {\n const r = Wi.sanitizeNodeName(n || \"\");\n let s = r;\n for (let a = 1; this.nodeNamesUsed[s]; ++a)\n s = r + \"_\" + a;\n return this.nodeNamesUsed[s] = !0, s;\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry\n *\n * Creates BufferGeometries from primitives.\n *\n * @param {Array} primitives\n * @return {Promise>}\n */\n loadGeometries(n) {\n const r = this, s = this.extensions, a = this.primitiveCache;\n function c(h) {\n return s[re.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(h, r).then(function(d) {\n return ba(d, h, r);\n });\n }\n const p = [];\n for (let h = 0, d = n.length; h < d; h++) {\n const g = n[h], w = jp(g), _ = a[w];\n if (_)\n p.push(_.promise);\n else {\n let y;\n g.extensions && g.extensions[re.KHR_DRACO_MESH_COMPRESSION] ? y = c(g) : y = ba(new zt(), g, r), a[w] = {\n primitive: g,\n promise: y\n }, p.push(y);\n }\n }\n return Promise.all(p);\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes\n * @param {number} meshIndex\n * @return {Promise}\n */\n loadMesh(n) {\n const r = this, s = this.json, a = this.extensions, c = s.meshes[n], p = c.primitives, h = [];\n for (let d = 0, g = p.length; d < g; d++) {\n const w = p[d].material === void 0 ? Np(this.cache) : this.getDependency(\"material\", p[d].material);\n h.push(w);\n }\n return h.push(r.loadGeometries(p)), Promise.all(h).then(function(d) {\n const g = d.slice(0, d.length - 1), w = d[d.length - 1], _ = [];\n for (let P = 0, I = w.length; P < I; P++) {\n const S = w[P], R = p[P];\n let j;\n const F = g[P];\n if (R.mode === Bt.TRIANGLES || R.mode === Bt.TRIANGLE_STRIP || R.mode === Bt.TRIANGLE_FAN || R.mode === void 0)\n j = c.isSkinnedMesh === !0 ? new Oa(S, F) : new Z(S, F), j.isSkinnedMesh === !0 && !j.geometry.attributes.skinWeight.normalized && j.normalizeSkinWeights(), R.mode === Bt.TRIANGLE_STRIP ? j.geometry = ga(j.geometry, ku) : R.mode === Bt.TRIANGLE_FAN && (j.geometry = ga(j.geometry, ja));\n else if (R.mode === Bt.LINES)\n j = new bu(S, F);\n else if (R.mode === Bt.LINE_STRIP)\n j = new ue(S, F);\n else if (R.mode === Bt.LINE_LOOP)\n j = new gu(S, F);\n else if (R.mode === Bt.POINTS)\n j = new _u(S, F);\n else\n throw new Error(\"THREE.GLTFLoader: Primitive mode unsupported: \" + R.mode);\n Object.keys(j.geometry.morphAttributes).length > 0 && Bp(j, c), j.name = r.createUniqueName(c.name || \"mesh_\" + n), Dn(j, c), R.extensions && $i(a, j, R), r.assignFinalMaterial(j), _.push(j);\n }\n for (let P = 0, I = _.length; P < I; P++)\n r.associations.set(_[P], {\n meshes: n,\n primitives: P\n });\n if (_.length === 1)\n return _[0];\n const y = new Yi();\n r.associations.set(y, {\n meshes: n\n });\n for (let P = 0, I = _.length; P < I; P++)\n y.add(_[P]);\n return y;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras\n * @param {number} cameraIndex\n * @return {Promise}\n */\n loadCamera(n) {\n let r;\n const s = this.json.cameras[n], a = s[s.type];\n if (!a) {\n console.warn(\"THREE.GLTFLoader: Missing camera parameters.\");\n return;\n }\n return s.type === \"perspective\" ? r = new on(yt.radToDeg(a.yfov), a.aspectRatio || 1, a.znear || 1, a.zfar || 2e6) : s.type === \"orthographic\" && (r = new Xi(-a.xmag, a.xmag, a.ymag, -a.ymag, a.znear, a.zfar)), s.name && (r.name = this.createUniqueName(s.name)), Dn(r, s), Promise.resolve(r);\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n * @param {number} skinIndex\n * @return {Promise}\n */\n loadSkin(n) {\n const r = this.json.skins[n], s = {\n joints: r.joints\n };\n return r.inverseBindMatrices === void 0 ? Promise.resolve(s) : this.getDependency(\"accessor\", r.inverseBindMatrices).then(function(a) {\n return s.inverseBindMatrices = a, s;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations\n * @param {number} animationIndex\n * @return {Promise}\n */\n loadAnimation(n) {\n const s = this.json.animations[n], a = [], c = [], p = [], h = [], d = [];\n for (let g = 0, w = s.channels.length; g < w; g++) {\n const _ = s.channels[g], y = s.samplers[_.sampler], P = _.target, I = P.node, S = s.parameters !== void 0 ? s.parameters[y.input] : y.input, R = s.parameters !== void 0 ? s.parameters[y.output] : y.output;\n a.push(this.getDependency(\"node\", I)), c.push(this.getDependency(\"accessor\", S)), p.push(this.getDependency(\"accessor\", R)), h.push(y), d.push(P);\n }\n return Promise.all([Promise.all(a), Promise.all(c), Promise.all(p), Promise.all(h), Promise.all(d)]).then(function(g) {\n const w = g[0], _ = g[1], y = g[2], P = g[3], I = g[4], S = [];\n for (let j = 0, F = w.length; j < F; j++) {\n const V = w[j], D = _[j], Y = y[j], G = P[j], N = I[j];\n if (V === void 0)\n continue;\n V.updateMatrix();\n let O;\n switch (rn[N.path]) {\n case rn.weights:\n O = Ua;\n break;\n case rn.rotation:\n O = po;\n break;\n case rn.position:\n case rn.scale:\n default:\n O = za;\n break;\n }\n const H = V.name ? V.name : V.uuid, K = G.interpolation !== void 0 ? Op[G.interpolation] : Na, q = [];\n rn[N.path] === rn.weights ? V.traverse(function(ge) {\n ge.morphTargetInfluences && q.push(ge.name ? ge.name : ge.uuid);\n }) : q.push(H);\n let pe = Y.array;\n if (Y.normalized) {\n const ge = bo(pe.constructor), ce = new Float32Array(pe.length);\n for (let me = 0, he = pe.length; me < he; me++)\n ce[me] = pe[me] * ge;\n pe = ce;\n }\n for (let ge = 0, ce = q.length; ge < ce; ge++) {\n const me = new O(q[ge] + \".\" + rn[N.path], D.array, pe, K);\n G.interpolation === \"CUBICSPLINE\" && (me.createInterpolant = function(ee) {\n const X = this instanceof po ? Dp : Wa;\n return new X(this.times, this.values, this.getValueSize() / 3, ee);\n }, me.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0), S.push(me);\n }\n }\n const R = s.name ? s.name : \"animation_\" + n;\n return new Fa(R, void 0, S);\n });\n }\n createNodeMesh(n) {\n const r = this.json, s = this, a = r.nodes[n];\n return a.mesh === void 0 ? null : s.getDependency(\"mesh\", a.mesh).then(function(c) {\n const p = s._getNodeRef(s.meshCache, a.mesh, c);\n return a.weights !== void 0 && p.traverse(function(h) {\n if (h.isMesh)\n for (let d = 0, g = a.weights.length; d < g; d++)\n h.morphTargetInfluences[d] = a.weights[d];\n }), p;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy\n * @param {number} nodeIndex\n * @return {Promise}\n */\n loadNode(n) {\n const r = this.json, s = this.extensions, a = this, c = r.nodes[n], p = c.name ? a.createUniqueName(c.name) : \"\";\n return function() {\n const h = [], d = a._invokeOne(function(g) {\n return g.createNodeMesh && g.createNodeMesh(n);\n });\n return d && h.push(d), c.camera !== void 0 && h.push(a.getDependency(\"camera\", c.camera).then(function(g) {\n return a._getNodeRef(a.cameraCache, c.camera, g);\n })), a._invokeAll(function(g) {\n return g.createNodeAttachment && g.createNodeAttachment(n);\n }).forEach(function(g) {\n h.push(g);\n }), Promise.all(h);\n }().then(function(h) {\n let d;\n if (c.isBone === !0 ? d = new co() : h.length > 1 ? d = new Yi() : h.length === 1 ? d = h[0] : d = new Fn(), d !== h[0])\n for (let g = 0, w = h.length; g < w; g++)\n d.add(h[g]);\n if (c.name && (d.userData.name = c.name, d.name = p), Dn(d, c), c.extensions && $i(s, d, c), c.matrix !== void 0) {\n const g = new Ee();\n g.fromArray(c.matrix), d.applyMatrix4(g);\n } else\n c.translation !== void 0 && d.position.fromArray(c.translation), c.rotation !== void 0 && d.quaternion.fromArray(c.rotation), c.scale !== void 0 && d.scale.fromArray(c.scale);\n return a.associations.has(d) || a.associations.set(d, {}), a.associations.get(d).nodes = n, d;\n });\n }\n /**\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes\n * @param {number} sceneIndex\n * @return {Promise}\n */\n loadScene(n) {\n const r = this.json, s = this.extensions, a = this.json.scenes[n], c = this, p = new Yi();\n a.name && (p.name = c.createUniqueName(a.name)), Dn(p, a), a.extensions && $i(s, p, a);\n const h = a.nodes || [], d = [];\n for (let g = 0, w = h.length; g < w; g++)\n d.push(Ja(h[g], p, r, c));\n return Promise.all(d).then(function() {\n const g = (w) => {\n const _ = /* @__PURE__ */ new Map();\n for (const [y, P] of c.associations)\n (y instanceof Wr || y instanceof Us) && _.set(y, P);\n return w.traverse((y) => {\n const P = c.associations.get(y);\n P != null && _.set(y, P);\n }), _;\n };\n return c.associations = g(p), p;\n });\n }\n}\nfunction Ja(v, n, r, s) {\n const a = r.nodes[v];\n return s.getDependency(\"node\", v).then(function(c) {\n if (a.skin === void 0)\n return c;\n let p;\n return s.getDependency(\"skin\", a.skin).then(function(h) {\n p = h;\n const d = [];\n for (let g = 0, w = p.joints.length; g < w; g++)\n d.push(s.getDependency(\"node\", p.joints[g]));\n return Promise.all(d);\n }).then(function(h) {\n return c.traverse(function(d) {\n if (!d.isMesh)\n return;\n const g = [], w = [];\n for (let _ = 0, y = h.length; _ < y; _++) {\n const P = h[_];\n if (P) {\n g.push(P);\n const I = new Ee();\n p.inverseBindMatrices !== void 0 && I.fromArray(p.inverseBindMatrices.array, _ * 16), w.push(I);\n } else\n console.warn('THREE.GLTFLoader: Joint \"%s\" could not be found.', p.joints[_]);\n }\n d.bind(new Ba(g, w), d.matrixWorld);\n }), c;\n });\n }).then(function(c) {\n n.add(c);\n const p = [];\n if (a.children) {\n const h = a.children;\n for (let d = 0, g = h.length; d < g; d++) {\n const w = h[d];\n p.push(Ja(w, c, r, s));\n }\n }\n return Promise.all(p);\n });\n}\nfunction Gp(v, n, r) {\n const s = n.attributes, a = new Mu();\n if (s.POSITION !== void 0) {\n const h = r.json.accessors[s.POSITION], d = h.min, g = h.max;\n if (d !== void 0 && g !== void 0) {\n if (a.set(new $(d[0], d[1], d[2]), new $(g[0], g[1], g[2])), h.normalized) {\n const w = bo(es[h.componentType]);\n a.min.multiplyScalar(w), a.max.multiplyScalar(w);\n }\n } else {\n console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");\n return;\n }\n } else\n return;\n const c = n.targets;\n if (c !== void 0) {\n const h = new $(), d = new $();\n for (let g = 0, w = c.length; g < w; g++) {\n const _ = c[g];\n if (_.POSITION !== void 0) {\n const y = r.json.accessors[_.POSITION], P = y.min, I = y.max;\n if (P !== void 0 && I !== void 0) {\n if (d.setX(Math.max(Math.abs(P[0]), Math.abs(I[0]))), d.setY(Math.max(Math.abs(P[1]), Math.abs(I[1]))), d.setZ(Math.max(Math.abs(P[2]), Math.abs(I[2]))), y.normalized) {\n const S = bo(es[y.componentType]);\n d.multiplyScalar(S);\n }\n h.max(d);\n } else\n console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");\n }\n }\n a.expandByVector(h);\n }\n v.boundingBox = a;\n const p = new Su();\n a.getCenter(p.center), p.radius = a.min.distanceTo(a.max) / 2, v.boundingSphere = p;\n}\nfunction ba(v, n, r) {\n const s = n.attributes, a = [];\n function c(p, h) {\n return r.getDependency(\"accessor\", p).then(function(d) {\n v.setAttribute(h, d);\n });\n }\n for (const p in s) {\n const h = vo[p] || p.toLowerCase();\n h in v.attributes || a.push(c(s[p], h));\n }\n if (n.indices !== void 0 && !v.index) {\n const p = r.getDependency(\"accessor\", n.indices).then(function(h) {\n v.setIndex(h);\n });\n a.push(p);\n }\n return Dn(v, n), Gp(v, n, r), Promise.all(a).then(function() {\n return n.targets !== void 0 ? Fp(v, n.targets, r) : v;\n });\n}\nfunction ga(v, n) {\n let r = v.getIndex();\n if (r === null) {\n const p = [], h = v.getAttribute(\"position\");\n if (h !== void 0) {\n for (let d = 0; d < h.count; d++)\n p.push(d);\n v.setIndex(p), r = v.getIndex();\n } else\n return console.error(\"THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.\"), v;\n }\n const s = r.count - 2, a = [];\n if (n === ja)\n for (let p = 1; p <= s; p++)\n a.push(r.getX(0)), a.push(r.getX(p)), a.push(r.getX(p + 1));\n else\n for (let p = 0; p < s; p++)\n p % 2 === 0 ? (a.push(r.getX(p)), a.push(r.getX(p + 1)), a.push(r.getX(p + 2))) : (a.push(r.getX(p + 2)), a.push(r.getX(p + 1)), a.push(r.getX(p)));\n a.length / 3 !== s && console.error(\"THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.\");\n const c = v.clone();\n return c.setIndex(a), c;\n}\nclass Hp extends Au {\n constructor(n, r = {}) {\n const {\n bevelEnabled: s = !1,\n bevelSize: a = 8,\n bevelThickness: c = 10,\n font: p,\n height: h = 50,\n size: d = 100,\n lineHeight: g = 1,\n letterSpacing: w = 0,\n ..._\n } = r;\n if (p === void 0)\n super();\n else {\n const y = p.generateShapes(n, d, {\n lineHeight: g,\n letterSpacing: w\n });\n super(y, {\n ..._,\n bevelEnabled: s,\n bevelSize: a,\n bevelThickness: c,\n depth: h\n });\n }\n this.type = \"TextGeometry\";\n }\n}\nfunction el(v, n, r) {\n const s = r.length - v - 1;\n if (n >= r[s])\n return s - 1;\n if (n <= r[v])\n return v;\n let a = v, c = s, p = Math.floor((a + c) / 2);\n for (; n < r[p] || n >= r[p + 1]; )\n n < r[p] ? c = p : a = p, p = Math.floor((a + c) / 2);\n return p;\n}\nfunction Kp(v, n, r, s) {\n const a = [], c = [], p = [];\n a[0] = 1;\n for (let h = 1; h <= r; ++h) {\n c[h] = n - s[v + 1 - h], p[h] = s[v + h] - n;\n let d = 0;\n for (let g = 0; g < h; ++g) {\n const w = p[g + 1], _ = c[h - g], y = a[g] / (w + _);\n a[g] = d + w * y, d = _ * y;\n }\n a[h] = d;\n }\n return a;\n}\nfunction $p(v, n, r, s) {\n const a = el(v, s, n), c = Kp(a, s, v, n), p = new Ys(0, 0, 0, 0);\n for (let h = 0; h <= v; ++h) {\n const d = r[a - v + h], g = c[h], w = d.w * g;\n p.x += d.x * w, p.y += d.y * w, p.z += d.z * w, p.w += d.w * g;\n }\n return p;\n}\nfunction Xp(v, n, r, s, a) {\n const c = [];\n for (let y = 0; y <= r; ++y)\n c[y] = 0;\n const p = [];\n for (let y = 0; y <= s; ++y)\n p[y] = c.slice(0);\n const h = [];\n for (let y = 0; y <= r; ++y)\n h[y] = c.slice(0);\n h[0][0] = 1;\n const d = c.slice(0), g = c.slice(0);\n for (let y = 1; y <= r; ++y) {\n d[y] = n - a[v + 1 - y], g[y] = a[v + y] - n;\n let P = 0;\n for (let I = 0; I < y; ++I) {\n const S = g[I + 1], R = d[y - I];\n h[y][I] = S + R;\n const j = h[I][y - 1] / h[y][I];\n h[I][y] = P + S * j, P = R * j;\n }\n h[y][y] = P;\n }\n for (let y = 0; y <= r; ++y)\n p[0][y] = h[y][r];\n for (let y = 0; y <= r; ++y) {\n let P = 0, I = 1;\n const S = [];\n for (let R = 0; R <= r; ++R)\n S[R] = c.slice(0);\n S[0][0] = 1;\n for (let R = 1; R <= s; ++R) {\n let j = 0;\n const F = y - R, V = r - R;\n y >= R && (S[I][0] = S[P][0] / h[V + 1][F], j = S[I][0] * h[F][V]);\n const D = F >= -1 ? 1 : -F, Y = y - 1 <= V ? R - 1 : r - y;\n for (let G = D; G <= Y; ++G)\n S[I][G] = (S[P][G] - S[P][G - 1]) / h[V + 1][F + G], j += S[I][G] * h[F + G][V];\n y <= V && (S[I][R] = -S[P][R - 1] / h[V + 1][y], j += S[I][R] * h[y][V]), p[R][y] = j;\n var w = P;\n P = I, I = w;\n }\n }\n var _ = r;\n for (let y = 1; y <= s; ++y) {\n for (let P = 0; P <= r; ++P)\n p[y][P] *= _;\n _ *= r - y;\n }\n return p;\n}\nfunction Yp(v, n, r, s, a) {\n const c = a < v ? a : v, p = [], h = el(v, s, n), d = Xp(h, s, v, c, n), g = [];\n for (let _ = 0; _ < r.length; ++_) {\n var w = r[_].clone();\n const y = w.w;\n w.x *= y, w.y *= y, w.z *= y, g[_] = w;\n }\n for (let _ = 0; _ <= c; ++_) {\n var w = g[h - v].clone().multiplyScalar(d[_][0]);\n for (let P = 1; P <= v; ++P)\n w.add(g[h - v + P].clone().multiplyScalar(d[_][P]));\n p[_] = w;\n }\n for (let _ = c + 1; _ <= a + 1; ++_)\n p[_] = new Ys(0, 0, 0);\n return p;\n}\nfunction qp(v, n) {\n let r = 1;\n for (let a = 2; a <= v; ++a)\n r *= a;\n let s = 1;\n for (let a = 2; a <= n; ++a)\n s *= a;\n for (let a = 2; a <= v - n; ++a)\n s *= a;\n return r / s;\n}\nfunction Qp(v) {\n const n = v.length, r = [], s = [];\n for (let c = 0; c < n; ++c) {\n const p = v[c];\n r[c] = new $(p.x, p.y, p.z), s[c] = p.w;\n }\n const a = [];\n for (let c = 0; c < n; ++c) {\n const p = r[c].clone();\n for (let h = 1; h <= c; ++h)\n p.sub(a[c - h].clone().multiplyScalar(qp(c, h) * s[h]));\n a[c] = p.divideScalar(s[0]);\n }\n return a;\n}\nfunction Zp(v, n, r, s, a) {\n const c = Yp(v, n, r, s, a);\n return Qp(c);\n}\nclass _a extends Ru {\n constructor(n, r, s, a, c) {\n super(), this.degree = n, this.knots = r, this.controlPoints = [], this.startKnot = a || 0, this.endKnot = c || this.knots.length - 1;\n for (let p = 0; p < s.length; ++p) {\n const h = s[p];\n this.controlPoints[p] = new Ys(h.x, h.y, h.z, h.w);\n }\n }\n getPoint(n, r) {\n const s = r || new $(), a = this.knots[this.startKnot] + n * (this.knots[this.endKnot] - this.knots[this.startKnot]), c = $p(this.degree, this.knots, this.controlPoints, a);\n return c.w != 1 && c.divideScalar(c.w), s.set(c.x, c.y, c.z);\n }\n getTangent(n, r) {\n const s = r || new $(), a = this.knots[0] + n * (this.knots[this.knots.length - 1] - this.knots[0]), c = Zp(this.degree, this.knots, this.controlPoints, a, 1);\n return s.copy(c[1]).normalize(), s;\n }\n}\nlet se, Ae, Je;\nclass Wp extends $s {\n constructor(n) {\n super(n);\n }\n load(n, r, s, a) {\n const c = this, p = c.path === \"\" ? kt.extractUrlBase(n) : c.path, h = new di(this.manager);\n h.setPath(c.path), h.setResponseType(\"arraybuffer\"), h.setRequestHeader(c.requestHeader), h.setWithCredentials(c.withCredentials), h.load(n, function(d) {\n try {\n r(c.parse(d, p));\n } catch (g) {\n a ? a(g) : console.error(g), c.manager.itemError(n);\n }\n }, s, a);\n }\n parse(n, r) {\n if (sh(n))\n se = new ih().parse(n);\n else {\n const a = sl(n);\n if (!rh(a))\n throw new Error(\"THREE.FBXLoader: Unknown format.\");\n if (ya(a) < 7e3)\n throw new Error(\"THREE.FBXLoader: FBX version not supported, FileVersion: \" + ya(a));\n se = new nh().parse(a);\n }\n const s = new Va(this.manager).setPath(this.resourcePath || r).setCrossOrigin(this.crossOrigin);\n return new Jp(s, this.manager).parse(se);\n }\n}\nclass Jp {\n constructor(n, r) {\n this.textureLoader = n, this.manager = r;\n }\n parse() {\n Ae = this.parseConnections();\n const n = this.parseImages(), r = this.parseTextures(n), s = this.parseMaterials(r), a = this.parseDeformers(), c = new eh().parse(a);\n return this.parseScene(a, c, s), Je;\n }\n // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )\n // and details the connection type\n parseConnections() {\n const n = /* @__PURE__ */ new Map();\n return \"Connections\" in se && se.Connections.connections.forEach(function(s) {\n const a = s[0], c = s[1], p = s[2];\n n.has(a) || n.set(a, {\n parents: [],\n children: []\n });\n const h = {\n ID: c,\n relationship: p\n };\n n.get(a).parents.push(h), n.has(c) || n.set(c, {\n parents: [],\n children: []\n });\n const d = {\n ID: a,\n relationship: p\n };\n n.get(c).children.push(d);\n }), n;\n }\n // Parse FBXTree.Objects.Video for embedded image data\n // These images are connected to textures in FBXTree.Objects.Textures\n // via FBXTree.Connections.\n parseImages() {\n const n = {}, r = {};\n if (\"Video\" in se.Objects) {\n const s = se.Objects.Video;\n for (const a in s) {\n const c = s[a], p = parseInt(a);\n if (n[p] = c.RelativeFilename || c.Filename, \"Content\" in c) {\n const h = c.Content instanceof ArrayBuffer && c.Content.byteLength > 0, d = typeof c.Content == \"string\" && c.Content !== \"\";\n if (h || d) {\n const g = this.parseImage(s[a]);\n r[c.RelativeFilename || c.Filename] = g;\n }\n }\n }\n }\n for (const s in n) {\n const a = n[s];\n r[a] !== void 0 ? n[s] = r[a] : n[s] = n[s].split(\"\\\\\").pop();\n }\n return n;\n }\n // Parse embedded image data in FBXTree.Video.Content\n parseImage(n) {\n const r = n.Content, s = n.RelativeFilename || n.Filename, a = s.slice(s.lastIndexOf(\".\") + 1).toLowerCase();\n let c;\n switch (a) {\n case \"bmp\":\n c = \"image/bmp\";\n break;\n case \"jpg\":\n case \"jpeg\":\n c = \"image/jpeg\";\n break;\n case \"png\":\n c = \"image/png\";\n break;\n case \"tif\":\n c = \"image/tiff\";\n break;\n case \"tga\":\n this.manager.getHandler(\".tga\") === null && console.warn(\"FBXLoader: TGA loader not found, skipping \", s), c = \"image/tga\";\n break;\n default:\n console.warn('FBXLoader: Image type \"' + a + '\" is not supported.');\n return;\n }\n if (typeof r == \"string\")\n return \"data:\" + c + \";base64,\" + r;\n {\n const p = new Uint8Array(r);\n return window.URL.createObjectURL(new Blob([p], {\n type: c\n }));\n }\n }\n // Parse nodes in FBXTree.Objects.Texture\n // These contain details such as UV scaling, cropping, rotation etc and are connected\n // to images in FBXTree.Objects.Video\n parseTextures(n) {\n const r = /* @__PURE__ */ new Map();\n if (\"Texture\" in se.Objects) {\n const s = se.Objects.Texture;\n for (const a in s) {\n const c = this.parseTexture(s[a], n);\n r.set(parseInt(a), c);\n }\n }\n return r;\n }\n // Parse individual node in FBXTree.Objects.Texture\n parseTexture(n, r) {\n const s = this.loadTexture(n, r);\n s.ID = n.id, s.name = n.attrName;\n const a = n.WrapModeU, c = n.WrapModeV, p = a !== void 0 ? a.value : 0, h = c !== void 0 ? c.value : 0;\n if (s.wrapS = p === 0 ? Zi : uo, s.wrapT = h === 0 ? Zi : uo, \"Scaling\" in n) {\n const d = n.Scaling.value;\n s.repeat.x = d[0], s.repeat.y = d[1];\n }\n return s;\n }\n // load a texture specified as a blob or data URI, or via an external URL using TextureLoader\n loadTexture(n, r) {\n let s;\n const a = this.textureLoader.path, c = Ae.get(n.id).children;\n c !== void 0 && c.length > 0 && r[c[0].ID] !== void 0 && (s = r[c[0].ID], (s.indexOf(\"blob:\") === 0 || s.indexOf(\"data:\") === 0) && this.textureLoader.setPath(void 0));\n let p;\n const h = n.FileName.slice(-3).toLowerCase();\n if (h === \"tga\") {\n const d = this.manager.getHandler(\".tga\");\n d === null ? (console.warn(\"FBXLoader: TGA loader not found, creating placeholder texture for\", n.RelativeFilename), p = new Us()) : (d.setPath(this.textureLoader.path), p = d.load(s));\n } else\n h === \"psd\" ? (console.warn(\"FBXLoader: PSD textures are not supported, creating placeholder texture for\", n.RelativeFilename), p = new Us()) : p = this.textureLoader.load(s);\n return this.textureLoader.setPath(a), p;\n }\n // Parse nodes in FBXTree.Objects.Material\n parseMaterials(n) {\n const r = /* @__PURE__ */ new Map();\n if (\"Material\" in se.Objects) {\n const s = se.Objects.Material;\n for (const a in s) {\n const c = this.parseMaterial(s[a], n);\n c !== null && r.set(parseInt(a), c);\n }\n }\n return r;\n }\n // Parse single node in FBXTree.Objects.Material\n // Materials are connected to texture maps in FBXTree.Objects.Textures\n // FBX format currently only supports Lambert and Phong shading models\n parseMaterial(n, r) {\n const s = n.id, a = n.attrName;\n let c = n.ShadingModel;\n if (typeof c == \"object\" && (c = c.value), !Ae.has(s))\n return null;\n const p = this.parseParameters(n, r, s);\n let h;\n switch (c.toLowerCase()) {\n case \"phong\":\n h = new Jr();\n break;\n case \"lambert\":\n h = new Iu();\n break;\n default:\n console.warn('THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', c), h = new Jr();\n break;\n }\n return h.setValues(p), h.name = a, h;\n }\n // Parse FBX material and return parameters suitable for a three.js material\n // Also parse the texture map and return any textures associated with the material\n parseParameters(n, r, s) {\n const a = {};\n n.BumpFactor && (a.bumpScale = n.BumpFactor.value), n.Diffuse ? a.color = new ke().fromArray(n.Diffuse.value) : n.DiffuseColor && (n.DiffuseColor.type === \"Color\" || n.DiffuseColor.type === \"ColorRGB\") && (a.color = new ke().fromArray(n.DiffuseColor.value)), n.DisplacementFactor && (a.displacementScale = n.DisplacementFactor.value), n.Emissive ? a.emissive = new ke().fromArray(n.Emissive.value) : n.EmissiveColor && (n.EmissiveColor.type === \"Color\" || n.EmissiveColor.type === \"ColorRGB\") && (a.emissive = new ke().fromArray(n.EmissiveColor.value)), n.EmissiveFactor && (a.emissiveIntensity = parseFloat(n.EmissiveFactor.value)), n.Opacity && (a.opacity = parseFloat(n.Opacity.value)), a.opacity < 1 && (a.transparent = !0), n.ReflectionFactor && (a.reflectivity = n.ReflectionFactor.value), n.Shininess && (a.shininess = n.Shininess.value), n.Specular ? a.specular = new ke().fromArray(n.Specular.value) : n.SpecularColor && n.SpecularColor.type === \"Color\" && (a.specular = new ke().fromArray(n.SpecularColor.value));\n const c = this;\n return Ae.get(s).children.forEach(function(p) {\n const h = p.relationship;\n switch (h) {\n case \"Bump\":\n a.bumpMap = c.getTexture(r, p.ID);\n break;\n case \"Maya|TEX_ao_map\":\n a.aoMap = c.getTexture(r, p.ID);\n break;\n case \"DiffuseColor\":\n case \"Maya|TEX_color_map\":\n a.map = c.getTexture(r, p.ID), a.map !== void 0 && (a.map.encoding = dt);\n break;\n case \"DisplacementColor\":\n a.displacementMap = c.getTexture(r, p.ID);\n break;\n case \"EmissiveColor\":\n a.emissiveMap = c.getTexture(r, p.ID), a.emissiveMap !== void 0 && (a.emissiveMap.encoding = dt);\n break;\n case \"NormalMap\":\n case \"Maya|TEX_normal_map\":\n a.normalMap = c.getTexture(r, p.ID);\n break;\n case \"ReflectionColor\":\n a.envMap = c.getTexture(r, p.ID), a.envMap !== void 0 && (a.envMap.mapping = Ga, a.envMap.encoding = dt);\n break;\n case \"SpecularColor\":\n a.specularMap = c.getTexture(r, p.ID), a.specularMap !== void 0 && (a.specularMap.encoding = dt);\n break;\n case \"TransparentColor\":\n case \"TransparencyFactor\":\n a.alphaMap = c.getTexture(r, p.ID), a.transparent = !0;\n break;\n case \"AmbientColor\":\n case \"ShininessExponent\":\n case \"SpecularFactor\":\n case \"VectorDisplacementColor\":\n default:\n console.warn(\"THREE.FBXLoader: %s map is not supported in three.js, skipping texture.\", h);\n break;\n }\n }), a;\n }\n // get a texture from the textureMap for use by a material.\n getTexture(n, r) {\n return \"LayeredTexture\" in se.Objects && r in se.Objects.LayeredTexture && (console.warn(\"THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.\"), r = Ae.get(r).children[0].ID), n.get(r);\n }\n // Parse nodes in FBXTree.Objects.Deformer\n // Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here\n // Generates map of Skeleton-like objects for use later when generating and binding skeletons.\n parseDeformers() {\n const n = {}, r = {};\n if (\"Deformer\" in se.Objects) {\n const s = se.Objects.Deformer;\n for (const a in s) {\n const c = s[a], p = Ae.get(parseInt(a));\n if (c.attrType === \"Skin\") {\n const h = this.parseSkeleton(p, s);\n h.ID = a, p.parents.length > 1 && console.warn(\"THREE.FBXLoader: skeleton attached to more than one geometry is not supported.\"), h.geometryID = p.parents[0].ID, n[a] = h;\n } else if (c.attrType === \"BlendShape\") {\n const h = {\n id: a\n };\n h.rawTargets = this.parseMorphTargets(p, s), h.id = a, p.parents.length > 1 && console.warn(\"THREE.FBXLoader: morph target attached to more than one geometry is not supported.\"), r[a] = h;\n }\n }\n }\n return {\n skeletons: n,\n morphTargets: r\n };\n }\n // Parse single nodes in FBXTree.Objects.Deformer\n // The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster'\n // Each skin node represents a skeleton and each cluster node represents a bone\n parseSkeleton(n, r) {\n const s = [];\n return n.children.forEach(function(a) {\n const c = r[a.ID];\n if (c.attrType !== \"Cluster\")\n return;\n const p = {\n ID: a.ID,\n indices: [],\n weights: [],\n transformLink: new Ee().fromArray(c.TransformLink.a)\n // transform: new Matrix4().fromArray( boneNode.Transform.a ),\n // linkMode: boneNode.Mode,\n };\n \"Indexes\" in c && (p.indices = c.Indexes.a, p.weights = c.Weights.a), s.push(p);\n }), {\n rawBones: s,\n bones: []\n };\n }\n // The top level morph deformer node has type \"BlendShape\" and sub nodes have type \"BlendShapeChannel\"\n parseMorphTargets(n, r) {\n const s = [];\n for (let a = 0; a < n.children.length; a++) {\n const c = n.children[a], p = r[c.ID], h = {\n name: p.attrName,\n initialWeight: p.DeformPercent,\n id: p.id,\n fullWeights: p.FullWeights.a\n };\n if (p.attrType !== \"BlendShapeChannel\")\n return;\n h.geoID = Ae.get(parseInt(c.ID)).children.filter(function(d) {\n return d.relationship === void 0;\n })[0].ID, s.push(h);\n }\n return s;\n }\n // create the main Group() to be returned by the loader\n parseScene(n, r, s) {\n Je = new Yi();\n const a = this.parseModels(n.skeletons, r, s), c = se.Objects.Model, p = this;\n a.forEach(function(d) {\n const g = c[d.ID];\n p.setLookAtProperties(d, g), Ae.get(d.ID).parents.forEach(function(_) {\n const y = a.get(_.ID);\n y !== void 0 && y.add(d);\n }), d.parent === null && Je.add(d);\n }), this.bindSkeleton(n.skeletons, r, a), this.createAmbientLight(), Je.traverse(function(d) {\n if (d.userData.transformData) {\n d.parent && (d.userData.transformData.parentMatrix = d.parent.matrix, d.userData.transformData.parentMatrixWorld = d.parent.matrixWorld);\n const g = nl(d.userData.transformData);\n d.applyMatrix4(g), d.updateWorldMatrix();\n }\n });\n const h = new th().parse();\n Je.children.length === 1 && Je.children[0].isGroup && (Je.children[0].animations = h, Je = Je.children[0]), Je.animations = h;\n }\n // parse nodes in FBXTree.Objects.Model\n parseModels(n, r, s) {\n const a = /* @__PURE__ */ new Map(), c = se.Objects.Model;\n for (const p in c) {\n const h = parseInt(p), d = c[p], g = Ae.get(h);\n let w = this.buildSkeleton(g, n, h, d.attrName);\n if (!w) {\n switch (d.attrType) {\n case \"Camera\":\n w = this.createCamera(g);\n break;\n case \"Light\":\n w = this.createLight(g);\n break;\n case \"Mesh\":\n w = this.createMesh(g, r, s);\n break;\n case \"NurbsCurve\":\n w = this.createCurve(g, r);\n break;\n case \"LimbNode\":\n case \"Root\":\n w = new co();\n break;\n case \"Null\":\n default:\n w = new Yi();\n break;\n }\n w.name = d.attrName ? Wi.sanitizeNodeName(d.attrName) : \"\", w.ID = h;\n }\n this.getTransformData(w, d), a.set(h, w);\n }\n return a;\n }\n buildSkeleton(n, r, s, a) {\n let c = null;\n return n.parents.forEach(function(p) {\n for (const h in r) {\n const d = r[h];\n d.rawBones.forEach(function(g, w) {\n if (g.ID === p.ID) {\n const _ = c;\n c = new co(), c.matrixWorld.copy(g.transformLink), c.name = a ? Wi.sanitizeNodeName(a) : \"\", c.ID = s, d.bones[w] = c, _ !== null && c.add(_);\n }\n });\n }\n }), c;\n }\n // create a PerspectiveCamera or OrthographicCamera\n createCamera(n) {\n let r, s;\n if (n.children.forEach(function(a) {\n const c = se.Objects.NodeAttribute[a.ID];\n c !== void 0 && (s = c);\n }), s === void 0)\n r = new Fn();\n else {\n let a = 0;\n s.CameraProjectionType !== void 0 && s.CameraProjectionType.value === 1 && (a = 1);\n let c = 1;\n s.NearPlane !== void 0 && (c = s.NearPlane.value / 1e3);\n let p = 1e3;\n s.FarPlane !== void 0 && (p = s.FarPlane.value / 1e3);\n let h = window.innerWidth, d = window.innerHeight;\n s.AspectWidth !== void 0 && s.AspectHeight !== void 0 && (h = s.AspectWidth.value, d = s.AspectHeight.value);\n const g = h / d;\n let w = 45;\n s.FieldOfView !== void 0 && (w = s.FieldOfView.value);\n const _ = s.FocalLength ? s.FocalLength.value : null;\n switch (a) {\n case 0:\n r = new on(w, g, c, p), _ !== null && r.setFocalLength(_);\n break;\n case 1:\n r = new Xi(-h / 2, h / 2, d / 2, -d / 2, c, p);\n break;\n default:\n console.warn(\"THREE.FBXLoader: Unknown camera type \" + a + \".\"), r = new Fn();\n break;\n }\n }\n return r;\n }\n // Create a DirectionalLight, PointLight or SpotLight\n createLight(n) {\n let r, s;\n if (n.children.forEach(function(a) {\n const c = se.Objects.NodeAttribute[a.ID];\n c !== void 0 && (s = c);\n }), s === void 0)\n r = new Fn();\n else {\n let a;\n s.LightType === void 0 ? a = 0 : a = s.LightType.value;\n let c = 16777215;\n s.Color !== void 0 && (c = new ke().fromArray(s.Color.value));\n let p = s.Intensity === void 0 ? 1 : s.Intensity.value / 100;\n s.CastLightOnObject !== void 0 && s.CastLightOnObject.value === 0 && (p = 0);\n let h = 0;\n s.FarAttenuationEnd !== void 0 && (s.EnableFarAttenuation !== void 0 && s.EnableFarAttenuation.value === 0 ? h = 0 : h = s.FarAttenuationEnd.value);\n const d = 1;\n switch (a) {\n case 0:\n r = new lo(c, p, h, d);\n break;\n case 1:\n r = new Ia(c, p);\n break;\n case 2:\n let g = Math.PI / 3;\n s.InnerAngle !== void 0 && (g = yt.degToRad(s.InnerAngle.value));\n let w = 0;\n s.OuterAngle !== void 0 && (w = yt.degToRad(s.OuterAngle.value), w = Math.max(w, 1)), r = new Ra(c, p, h, g, w, d);\n break;\n default:\n console.warn(\"THREE.FBXLoader: Unknown light type \" + s.LightType.value + \", defaulting to a PointLight.\"), r = new lo(c, p);\n break;\n }\n s.CastShadows !== void 0 && s.CastShadows.value === 1 && (r.castShadow = !0);\n }\n return r;\n }\n createMesh(n, r, s) {\n let a, c = null, p = null;\n const h = [];\n return n.children.forEach(function(d) {\n r.has(d.ID) && (c = r.get(d.ID)), s.has(d.ID) && h.push(s.get(d.ID));\n }), h.length > 1 ? p = h : h.length > 0 ? p = h[0] : (p = new Jr({\n color: 13421772\n }), h.push(p)), \"color\" in c.attributes && h.forEach(function(d) {\n d.vertexColors = !0;\n }), c.FBX_Deformer ? (a = new Oa(c, p), a.normalizeSkinWeights()) : a = new Z(c, p), a;\n }\n createCurve(n, r) {\n const s = n.children.reduce(function(c, p) {\n return r.has(p.ID) && (c = r.get(p.ID)), c;\n }, null), a = new yo({\n color: 3342591,\n linewidth: 1\n });\n return new ue(s, a);\n }\n // parse the model node for transform data\n getTransformData(n, r) {\n const s = {};\n \"InheritType\" in r && (s.inheritType = parseInt(r.InheritType.value)), \"RotationOrder\" in r ? s.eulerOrder = il(r.RotationOrder.value) : s.eulerOrder = \"ZYX\", \"Lcl_Translation\" in r && (s.translation = r.Lcl_Translation.value), \"PreRotation\" in r && (s.preRotation = r.PreRotation.value), \"Lcl_Rotation\" in r && (s.rotation = r.Lcl_Rotation.value), \"PostRotation\" in r && (s.postRotation = r.PostRotation.value), \"Lcl_Scaling\" in r && (s.scale = r.Lcl_Scaling.value), \"ScalingOffset\" in r && (s.scalingOffset = r.ScalingOffset.value), \"ScalingPivot\" in r && (s.scalingPivot = r.ScalingPivot.value), \"RotationOffset\" in r && (s.rotationOffset = r.RotationOffset.value), \"RotationPivot\" in r && (s.rotationPivot = r.RotationPivot.value), n.userData.transformData = s;\n }\n setLookAtProperties(n, r) {\n \"LookAtProperty\" in r && Ae.get(n.ID).children.forEach(function(a) {\n if (a.relationship === \"LookAtProperty\") {\n const c = se.Objects.Model[a.ID];\n if (\"Lcl_Translation\" in c) {\n const p = c.Lcl_Translation.value;\n n.target !== void 0 ? (n.target.position.fromArray(p), Je.add(n.target)) : n.lookAt(new $().fromArray(p));\n }\n }\n });\n }\n bindSkeleton(n, r, s) {\n const a = this.parsePoseNodes();\n for (const c in n) {\n const p = n[c];\n Ae.get(parseInt(p.ID)).parents.forEach(function(d) {\n if (r.has(d.ID)) {\n const g = d.ID;\n Ae.get(g).parents.forEach(function(_) {\n s.has(_.ID) && s.get(_.ID).bind(new Ba(p.bones), a[_.ID]);\n });\n }\n });\n }\n }\n parsePoseNodes() {\n const n = {};\n if (\"Pose\" in se.Objects) {\n const r = se.Objects.Pose;\n for (const s in r)\n if (r[s].attrType === \"BindPose\" && r[s].NbPoseNodes > 0) {\n const a = r[s].PoseNode;\n Array.isArray(a) ? a.forEach(function(c) {\n n[c.Node] = new Ee().fromArray(c.Matrix.a);\n }) : n[a.Node] = new Ee().fromArray(a.Matrix.a);\n }\n }\n return n;\n }\n // Parse ambient color in FBXTree.GlobalSettings - if it's not set to black (default), create an ambient light\n createAmbientLight() {\n if (\"GlobalSettings\" in se && \"AmbientColor\" in se.GlobalSettings) {\n const n = se.GlobalSettings.AmbientColor.value, r = n[0], s = n[1], a = n[2];\n if (r !== 0 || s !== 0 || a !== 0) {\n const c = new ke(r, s, a);\n Je.add(new Vu(c, 1));\n }\n }\n }\n}\nclass eh {\n // Parse nodes in FBXTree.Objects.Geometry\n parse(n) {\n const r = /* @__PURE__ */ new Map();\n if (\"Geometry\" in se.Objects) {\n const s = se.Objects.Geometry;\n for (const a in s) {\n const c = Ae.get(parseInt(a)), p = this.parseGeometry(c, s[a], n);\n r.set(parseInt(a), p);\n }\n }\n return r;\n }\n // Parse single node in FBXTree.Objects.Geometry\n parseGeometry(n, r, s) {\n switch (r.attrType) {\n case \"Mesh\":\n return this.parseMeshGeometry(n, r, s);\n case \"NurbsCurve\":\n return this.parseNurbsGeometry(r);\n }\n }\n // Parse single node mesh geometry in FBXTree.Objects.Geometry\n parseMeshGeometry(n, r, s) {\n const a = s.skeletons, c = [], p = n.parents.map(function(_) {\n return se.Objects.Model[_.ID];\n });\n if (p.length === 0)\n return;\n const h = n.children.reduce(function(_, y) {\n return a[y.ID] !== void 0 && (_ = a[y.ID]), _;\n }, null);\n n.children.forEach(function(_) {\n s.morphTargets[_.ID] !== void 0 && c.push(s.morphTargets[_.ID]);\n });\n const d = p[0], g = {};\n \"RotationOrder\" in d && (g.eulerOrder = il(d.RotationOrder.value)), \"InheritType\" in d && (g.inheritType = parseInt(d.InheritType.value)), \"GeometricTranslation\" in d && (g.translation = d.GeometricTranslation.value), \"GeometricRotation\" in d && (g.rotation = d.GeometricRotation.value), \"GeometricScaling\" in d && (g.scale = d.GeometricScaling.value);\n const w = nl(g);\n return this.genGeometry(r, h, c, w);\n }\n // Generate a BufferGeometry from a node in FBXTree.Objects.Geometry\n genGeometry(n, r, s, a) {\n const c = new zt();\n n.attrName && (c.name = n.attrName);\n const p = this.parseGeoNode(n, r), h = this.genBuffers(p), d = new jt(h.vertex, 3);\n if (d.applyMatrix4(a), c.setAttribute(\"position\", d), h.colors.length > 0 && c.setAttribute(\"color\", new jt(h.colors, 3)), r && (c.setAttribute(\"skinIndex\", new Du(h.weightsIndices, 4)), c.setAttribute(\"skinWeight\", new jt(h.vertexWeights, 4)), c.FBX_Deformer = r), h.normal.length > 0) {\n const g = new Ou().getNormalMatrix(a), w = new jt(h.normal, 3);\n w.applyNormalMatrix(g), c.setAttribute(\"normal\", w);\n }\n if (h.uvs.forEach(function(g, w) {\n let _ = \"uv\" + (w + 1).toString();\n w === 0 && (_ = \"uv\"), c.setAttribute(_, new jt(h.uvs[w], 2));\n }), p.material && p.material.mappingType !== \"AllSame\") {\n let g = h.materialIndex[0], w = 0;\n if (h.materialIndex.forEach(function(_, y) {\n _ !== g && (c.addGroup(w, y - w, g), g = _, w = y);\n }), c.groups.length > 0) {\n const _ = c.groups[c.groups.length - 1], y = _.start + _.count;\n y !== h.materialIndex.length && c.addGroup(y, h.materialIndex.length - y, g);\n }\n c.groups.length === 0 && c.addGroup(0, h.materialIndex.length, h.materialIndex[0]);\n }\n return this.addMorphTargets(c, n, s, a), c;\n }\n parseGeoNode(n, r) {\n const s = {};\n if (s.vertexPositions = n.Vertices !== void 0 ? n.Vertices.a : [], s.vertexIndices = n.PolygonVertexIndex !== void 0 ? n.PolygonVertexIndex.a : [], n.LayerElementColor && (s.color = this.parseVertexColors(n.LayerElementColor[0])), n.LayerElementMaterial && (s.material = this.parseMaterialIndices(n.LayerElementMaterial[0])), n.LayerElementNormal && (s.normal = this.parseNormals(n.LayerElementNormal[0])), n.LayerElementUV) {\n s.uv = [];\n let a = 0;\n for (; n.LayerElementUV[a]; )\n n.LayerElementUV[a].UV && s.uv.push(this.parseUVs(n.LayerElementUV[a])), a++;\n }\n return s.weightTable = {}, r !== null && (s.skeleton = r, r.rawBones.forEach(function(a, c) {\n a.indices.forEach(function(p, h) {\n s.weightTable[p] === void 0 && (s.weightTable[p] = []), s.weightTable[p].push({\n id: c,\n weight: a.weights[h]\n });\n });\n })), s;\n }\n genBuffers(n) {\n const r = {\n vertex: [],\n normal: [],\n colors: [],\n uvs: [],\n materialIndex: [],\n vertexWeights: [],\n weightsIndices: []\n };\n let s = 0, a = 0, c = !1, p = [], h = [], d = [], g = [], w = [], _ = [];\n const y = this;\n return n.vertexIndices.forEach(function(P, I) {\n let S, R = !1;\n P < 0 && (P = P ^ -1, R = !0);\n let j = [], F = [];\n if (p.push(P * 3, P * 3 + 1, P * 3 + 2), n.color) {\n const V = Os(I, s, P, n.color);\n d.push(V[0], V[1], V[2]);\n }\n if (n.skeleton) {\n if (n.weightTable[P] !== void 0 && n.weightTable[P].forEach(function(V) {\n F.push(V.weight), j.push(V.id);\n }), F.length > 4) {\n c || (console.warn(\"THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.\"), c = !0);\n const V = [0, 0, 0, 0], D = [0, 0, 0, 0];\n F.forEach(function(Y, G) {\n let N = Y, O = j[G];\n D.forEach(function(H, K, q) {\n if (N > H) {\n q[K] = N, N = H;\n const pe = V[K];\n V[K] = O, O = pe;\n }\n });\n }), j = V, F = D;\n }\n for (; F.length < 4; )\n F.push(0), j.push(0);\n for (let V = 0; V < 4; ++V)\n w.push(F[V]), _.push(j[V]);\n }\n if (n.normal) {\n const V = Os(I, s, P, n.normal);\n h.push(V[0], V[1], V[2]);\n }\n n.material && n.material.mappingType !== \"AllSame\" && (S = Os(I, s, P, n.material)[0]), n.uv && n.uv.forEach(function(V, D) {\n const Y = Os(I, s, P, V);\n g[D] === void 0 && (g[D] = []), g[D].push(Y[0]), g[D].push(Y[1]);\n }), a++, R && (y.genFace(r, n, p, S, h, d, g, w, _, a), s++, a = 0, p = [], h = [], d = [], g = [], w = [], _ = []);\n }), r;\n }\n // Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris\n genFace(n, r, s, a, c, p, h, d, g, w) {\n for (let _ = 2; _ < w; _++)\n n.vertex.push(r.vertexPositions[s[0]]), n.vertex.push(r.vertexPositions[s[1]]), n.vertex.push(r.vertexPositions[s[2]]), n.vertex.push(r.vertexPositions[s[(_ - 1) * 3]]), n.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 1]]), n.vertex.push(r.vertexPositions[s[(_ - 1) * 3 + 2]]), n.vertex.push(r.vertexPositions[s[_ * 3]]), n.vertex.push(r.vertexPositions[s[_ * 3 + 1]]), n.vertex.push(r.vertexPositions[s[_ * 3 + 2]]), r.skeleton && (n.vertexWeights.push(d[0]), n.vertexWeights.push(d[1]), n.vertexWeights.push(d[2]), n.vertexWeights.push(d[3]), n.vertexWeights.push(d[(_ - 1) * 4]), n.vertexWeights.push(d[(_ - 1) * 4 + 1]), n.vertexWeights.push(d[(_ - 1) * 4 + 2]), n.vertexWeights.push(d[(_ - 1) * 4 + 3]), n.vertexWeights.push(d[_ * 4]), n.vertexWeights.push(d[_ * 4 + 1]), n.vertexWeights.push(d[_ * 4 + 2]), n.vertexWeights.push(d[_ * 4 + 3]), n.weightsIndices.push(g[0]), n.weightsIndices.push(g[1]), n.weightsIndices.push(g[2]), n.weightsIndices.push(g[3]), n.weightsIndices.push(g[(_ - 1) * 4]), n.weightsIndices.push(g[(_ - 1) * 4 + 1]), n.weightsIndices.push(g[(_ - 1) * 4 + 2]), n.weightsIndices.push(g[(_ - 1) * 4 + 3]), n.weightsIndices.push(g[_ * 4]), n.weightsIndices.push(g[_ * 4 + 1]), n.weightsIndices.push(g[_ * 4 + 2]), n.weightsIndices.push(g[_ * 4 + 3])), r.color && (n.colors.push(p[0]), n.colors.push(p[1]), n.colors.push(p[2]), n.colors.push(p[(_ - 1) * 3]), n.colors.push(p[(_ - 1) * 3 + 1]), n.colors.push(p[(_ - 1) * 3 + 2]), n.colors.push(p[_ * 3]), n.colors.push(p[_ * 3 + 1]), n.colors.push(p[_ * 3 + 2])), r.material && r.material.mappingType !== \"AllSame\" && (n.materialIndex.push(a), n.materialIndex.push(a), n.materialIndex.push(a)), r.normal && (n.normal.push(c[0]), n.normal.push(c[1]), n.normal.push(c[2]), n.normal.push(c[(_ - 1) * 3]), n.normal.push(c[(_ - 1) * 3 + 1]), n.normal.push(c[(_ - 1) * 3 + 2]), n.normal.push(c[_ * 3]), n.normal.push(c[_ * 3 + 1]), n.normal.push(c[_ * 3 + 2])), r.uv && r.uv.forEach(function(y, P) {\n n.uvs[P] === void 0 && (n.uvs[P] = []), n.uvs[P].push(h[P][0]), n.uvs[P].push(h[P][1]), n.uvs[P].push(h[P][(_ - 1) * 2]), n.uvs[P].push(h[P][(_ - 1) * 2 + 1]), n.uvs[P].push(h[P][_ * 2]), n.uvs[P].push(h[P][_ * 2 + 1]);\n });\n }\n addMorphTargets(n, r, s, a) {\n if (s.length === 0)\n return;\n n.morphTargetsRelative = !0, n.morphAttributes.position = [];\n const c = this;\n s.forEach(function(p) {\n p.rawTargets.forEach(function(h) {\n const d = se.Objects.Geometry[h.geoID];\n d !== void 0 && c.genMorphGeometry(n, r, d, a, h.name);\n });\n });\n }\n // a morph geometry node is similar to a standard node, and the node is also contained\n // in FBXTree.Objects.Geometry, however it can only have attributes for position, normal\n // and a special attribute Index defining which vertices of the original geometry are affected\n // Normal and position attributes only have data for the vertices that are affected by the morph\n genMorphGeometry(n, r, s, a, c) {\n const p = r.PolygonVertexIndex !== void 0 ? r.PolygonVertexIndex.a : [], h = s.Vertices !== void 0 ? s.Vertices.a : [], d = s.Indexes !== void 0 ? s.Indexes.a : [], g = n.attributes.position.count * 3, w = new Float32Array(g);\n for (let I = 0; I < d.length; I++) {\n const S = d[I] * 3;\n w[S] = h[I * 3], w[S + 1] = h[I * 3 + 1], w[S + 2] = h[I * 3 + 2];\n }\n const _ = {\n vertexIndices: p,\n vertexPositions: w\n }, y = this.genBuffers(_), P = new jt(y.vertex, 3);\n P.name = c || s.attrName, P.applyMatrix4(a), n.morphAttributes.position.push(P);\n }\n // Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists\n parseNormals(n) {\n const r = n.MappingInformationType, s = n.ReferenceInformationType, a = n.Normals.a;\n let c = [];\n return s === \"IndexToDirect\" && (\"NormalIndex\" in n ? c = n.NormalIndex.a : \"NormalsIndex\" in n && (c = n.NormalsIndex.a)), {\n dataSize: 3,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists\n parseUVs(n) {\n const r = n.MappingInformationType, s = n.ReferenceInformationType, a = n.UV.a;\n let c = [];\n return s === \"IndexToDirect\" && (c = n.UVIndex.a), {\n dataSize: 2,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists\n parseVertexColors(n) {\n const r = n.MappingInformationType, s = n.ReferenceInformationType, a = n.Colors.a;\n let c = [];\n return s === \"IndexToDirect\" && (c = n.ColorIndex.a), {\n dataSize: 4,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists\n parseMaterialIndices(n) {\n const r = n.MappingInformationType, s = n.ReferenceInformationType;\n if (r === \"NoMappingInformation\")\n return {\n dataSize: 1,\n buffer: [0],\n indices: [0],\n mappingType: \"AllSame\",\n referenceType: s\n };\n const a = n.Materials.a, c = [];\n for (let p = 0; p < a.length; ++p)\n c.push(p);\n return {\n dataSize: 1,\n buffer: a,\n indices: c,\n mappingType: r,\n referenceType: s\n };\n }\n // Generate a NurbGeometry from a node in FBXTree.Objects.Geometry\n parseNurbsGeometry(n) {\n if (_a === void 0)\n return console.error(\"THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry.\"), new zt();\n const r = parseInt(n.Order);\n if (isNaN(r))\n return console.error(\"THREE.FBXLoader: Invalid Order %s given for geometry ID: %s\", n.Order, n.id), new zt();\n const s = r - 1, a = n.KnotVector.a, c = [], p = n.Points.a;\n for (let _ = 0, y = p.length; _ < y; _ += 4)\n c.push(new Ys().fromArray(p, _));\n let h, d;\n if (n.Form === \"Closed\")\n c.push(c[0]);\n else if (n.Form === \"Periodic\") {\n h = s, d = a.length - 1 - h;\n for (let _ = 0; _ < s; ++_)\n c.push(c[_]);\n }\n const w = new _a(s, a, c, h, d).getPoints(c.length * 12);\n return new zt().setFromPoints(w);\n }\n}\nclass th {\n // take raw animation clips and turn them into three.js animation clips\n parse() {\n const n = [], r = this.parseClips();\n if (r !== void 0)\n for (const s in r) {\n const a = r[s], c = this.addClip(a);\n n.push(c);\n }\n return n;\n }\n parseClips() {\n if (se.Objects.AnimationCurve === void 0)\n return;\n const n = this.parseAnimationCurveNodes();\n this.parseAnimationCurves(n);\n const r = this.parseAnimationLayers(n);\n return this.parseAnimStacks(r);\n }\n // parse nodes in FBXTree.Objects.AnimationCurveNode\n // each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )\n // and is referenced by an AnimationLayer\n parseAnimationCurveNodes() {\n const n = se.Objects.AnimationCurveNode, r = /* @__PURE__ */ new Map();\n for (const s in n) {\n const a = n[s];\n if (a.attrName.match(/S|R|T|DeformPercent/) !== null) {\n const c = {\n id: a.id,\n attr: a.attrName,\n curves: {}\n };\n r.set(c.id, c);\n }\n }\n return r;\n }\n // parse nodes in FBXTree.Objects.AnimationCurve and connect them up to\n // previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated\n // axis ( e.g. times and values of x rotation)\n parseAnimationCurves(n) {\n const r = se.Objects.AnimationCurve;\n for (const s in r) {\n const a = {\n id: r[s].id,\n times: r[s].KeyTime.a.map(oh),\n values: r[s].KeyValueFloat.a\n }, c = Ae.get(a.id);\n if (c !== void 0) {\n const p = c.parents[0].ID, h = c.parents[0].relationship;\n h.match(/X/) ? n.get(p).curves.x = a : h.match(/Y/) ? n.get(p).curves.y = a : h.match(/Z/) ? n.get(p).curves.z = a : h.match(/d|DeformPercent/) && n.has(p) && (n.get(p).curves.morph = a);\n }\n }\n }\n // parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references\n // to various AnimationCurveNodes and is referenced by an AnimationStack node\n // note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack\n parseAnimationLayers(n) {\n const r = se.Objects.AnimationLayer, s = /* @__PURE__ */ new Map();\n for (const a in r) {\n const c = [], p = Ae.get(parseInt(a));\n p !== void 0 && (p.children.forEach(function(d, g) {\n if (n.has(d.ID)) {\n const w = n.get(d.ID);\n if (w.curves.x !== void 0 || w.curves.y !== void 0 || w.curves.z !== void 0) {\n if (c[g] === void 0) {\n const _ = Ae.get(d.ID).parents.filter(function(y) {\n return y.relationship !== void 0;\n })[0].ID;\n if (_ !== void 0) {\n const y = se.Objects.Model[_.toString()];\n if (y === void 0) {\n console.warn(\"THREE.FBXLoader: Encountered a unused curve.\", d);\n return;\n }\n const P = {\n modelName: y.attrName ? Wi.sanitizeNodeName(y.attrName) : \"\",\n ID: y.id,\n initialPosition: [0, 0, 0],\n initialRotation: [0, 0, 0],\n initialScale: [1, 1, 1]\n };\n Je.traverse(function(I) {\n I.ID === y.id && (P.transform = I.matrix, I.userData.transformData && (P.eulerOrder = I.userData.transformData.eulerOrder));\n }), P.transform || (P.transform = new Ee()), \"PreRotation\" in y && (P.preRotation = y.PreRotation.value), \"PostRotation\" in y && (P.postRotation = y.PostRotation.value), c[g] = P;\n }\n }\n c[g] && (c[g][w.attr] = w);\n } else if (w.curves.morph !== void 0) {\n if (c[g] === void 0) {\n const _ = Ae.get(d.ID).parents.filter(function(j) {\n return j.relationship !== void 0;\n })[0].ID, y = Ae.get(_).parents[0].ID, P = Ae.get(y).parents[0].ID, I = Ae.get(P).parents[0].ID, S = se.Objects.Model[I], R = {\n modelName: S.attrName ? Wi.sanitizeNodeName(S.attrName) : \"\",\n morphName: se.Objects.Deformer[_].attrName\n };\n c[g] = R;\n }\n c[g][w.attr] = w;\n }\n }\n }), s.set(parseInt(a), c));\n }\n return s;\n }\n // parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation\n // hierarchy. Each Stack node will be used to create a AnimationClip\n parseAnimStacks(n) {\n const r = se.Objects.AnimationStack, s = {};\n for (const a in r) {\n const c = Ae.get(parseInt(a)).children;\n c.length > 1 && console.warn(\"THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.\");\n const p = n.get(c[0].ID);\n s[a] = {\n name: r[a].attrName,\n layer: p\n };\n }\n return s;\n }\n addClip(n) {\n let r = [];\n const s = this;\n return n.layer.forEach(function(a) {\n r = r.concat(s.generateTracks(a));\n }), new Fa(n.name, -1, r);\n }\n generateTracks(n) {\n const r = [];\n let s = new $(), a = new Te(), c = new $();\n if (n.transform && n.transform.decompose(s, a, c), s = s.toArray(), a = new On().setFromQuaternion(a, n.eulerOrder).toArray(), c = c.toArray(), n.T !== void 0 && Object.keys(n.T.curves).length > 0) {\n const p = this.generateVectorTrack(n.modelName, n.T.curves, s, \"position\");\n p !== void 0 && r.push(p);\n }\n if (n.R !== void 0 && Object.keys(n.R.curves).length > 0) {\n const p = this.generateRotationTrack(n.modelName, n.R.curves, a, n.preRotation, n.postRotation, n.eulerOrder);\n p !== void 0 && r.push(p);\n }\n if (n.S !== void 0 && Object.keys(n.S.curves).length > 0) {\n const p = this.generateVectorTrack(n.modelName, n.S.curves, c, \"scale\");\n p !== void 0 && r.push(p);\n }\n if (n.DeformPercent !== void 0) {\n const p = this.generateMorphTrack(n);\n p !== void 0 && r.push(p);\n }\n return r;\n }\n generateVectorTrack(n, r, s, a) {\n const c = this.getTimesForAllAxes(r), p = this.getKeyframeTrackValues(c, r, s);\n return new za(n + \".\" + a, c, p);\n }\n generateRotationTrack(n, r, s, a, c, p) {\n r.x !== void 0 && (this.interpolateRotations(r.x), r.x.values = r.x.values.map(yt.degToRad)), r.y !== void 0 && (this.interpolateRotations(r.y), r.y.values = r.y.values.map(yt.degToRad)), r.z !== void 0 && (this.interpolateRotations(r.z), r.z.values = r.z.values.map(yt.degToRad));\n const h = this.getTimesForAllAxes(r), d = this.getKeyframeTrackValues(h, r, s);\n a !== void 0 && (a = a.map(yt.degToRad), a.push(p), a = new On().fromArray(a), a = new Te().setFromEuler(a)), c !== void 0 && (c = c.map(yt.degToRad), c.push(p), c = new On().fromArray(c), c = new Te().setFromEuler(c).invert());\n const g = new Te(), w = new On(), _ = [];\n for (let y = 0; y < d.length; y += 3)\n w.set(d[y], d[y + 1], d[y + 2], p), g.setFromEuler(w), a !== void 0 && g.premultiply(a), c !== void 0 && g.multiply(c), g.toArray(_, y / 3 * 4);\n return new po(n + \".quaternion\", h, _);\n }\n generateMorphTrack(n) {\n const r = n.DeformPercent.curves.morph, s = r.values.map(function(c) {\n return c / 100;\n }), a = Je.getObjectByName(n.modelName).morphTargetDictionary[n.morphName];\n return new Ua(n.modelName + \".morphTargetInfluences[\" + a + \"]\", r.times, s);\n }\n // For all animated objects, times are defined separately for each axis\n // Here we'll combine the times into one sorted array without duplicates\n getTimesForAllAxes(n) {\n let r = [];\n if (n.x !== void 0 && (r = r.concat(n.x.times)), n.y !== void 0 && (r = r.concat(n.y.times)), n.z !== void 0 && (r = r.concat(n.z.times)), r = r.sort(function(s, a) {\n return s - a;\n }), r.length > 1) {\n let s = 1, a = r[0];\n for (let c = 1; c < r.length; c++) {\n const p = r[c];\n p !== a && (r[s] = p, a = p, s++);\n }\n r = r.slice(0, s);\n }\n return r;\n }\n getKeyframeTrackValues(n, r, s) {\n const a = s, c = [];\n let p = -1, h = -1, d = -1;\n return n.forEach(function(g) {\n if (r.x && (p = r.x.times.indexOf(g)), r.y && (h = r.y.times.indexOf(g)), r.z && (d = r.z.times.indexOf(g)), p !== -1) {\n const w = r.x.values[p];\n c.push(w), a[0] = w;\n } else\n c.push(a[0]);\n if (h !== -1) {\n const w = r.y.values[h];\n c.push(w), a[1] = w;\n } else\n c.push(a[1]);\n if (d !== -1) {\n const w = r.z.values[d];\n c.push(w), a[2] = w;\n } else\n c.push(a[2]);\n }), c;\n }\n // Rotations are defined as Euler angles which can have values of any size\n // These will be converted to quaternions which don't support values greater than\n // PI, so we'll interpolate large rotations\n interpolateRotations(n) {\n for (let r = 1; r < n.values.length; r++) {\n const s = n.values[r - 1], a = n.values[r] - s, c = Math.abs(a);\n if (c >= 180) {\n const p = c / 180, h = a / p;\n let d = s + h;\n const g = n.times[r - 1], _ = (n.times[r] - g) / p;\n let y = g + _;\n const P = [], I = [];\n for (; y < n.times[r]; )\n P.push(y), y += _, I.push(d), d += h;\n n.times = xa(n.times, r, P), n.values = xa(n.values, r, I);\n }\n }\n }\n}\nclass nh {\n getPrevNode() {\n return this.nodeStack[this.currentIndent - 2];\n }\n getCurrentNode() {\n return this.nodeStack[this.currentIndent - 1];\n }\n getCurrentProp() {\n return this.currentProp;\n }\n pushStack(n) {\n this.nodeStack.push(n), this.currentIndent += 1;\n }\n popStack() {\n this.nodeStack.pop(), this.currentIndent -= 1;\n }\n setCurrentProp(n, r) {\n this.currentProp = n, this.currentPropName = r;\n }\n parse(n) {\n this.currentIndent = 0, this.allNodes = new tl(), this.nodeStack = [], this.currentProp = [], this.currentPropName = \"\";\n const r = this, s = n.split(/[\\r\\n]+/);\n return s.forEach(function(a, c) {\n const p = a.match(/^[\\s\\t]*;/), h = a.match(/^[\\s\\t]*$/);\n if (p || h)\n return;\n const d = a.match(\"^\\\\t{\" + r.currentIndent + \"}(\\\\w+):(.*){\", \"\"), g = a.match(\"^\\\\t{\" + r.currentIndent + \"}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)\"), w = a.match(\"^\\\\t{\" + (r.currentIndent - 1) + \"}}\");\n d ? r.parseNodeBegin(a, d) : g ? r.parseNodeProperty(a, g, s[++c]) : w ? r.popStack() : a.match(/^[^\\s\\t}]/) && r.parseNodePropertyContinued(a);\n }), this.allNodes;\n }\n parseNodeBegin(n, r) {\n const s = r[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\"), a = r[2].split(\",\").map(function(d) {\n return d.trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n }), c = {\n name: s\n }, p = this.parseNodeAttr(a), h = this.getCurrentNode();\n this.currentIndent === 0 ? this.allNodes.add(s, c) : s in h ? (s === \"PoseNode\" ? h.PoseNode.push(c) : h[s].id !== void 0 && (h[s] = {}, h[s][h[s].id] = h[s]), p.id !== \"\" && (h[s][p.id] = c)) : typeof p.id == \"number\" ? (h[s] = {}, h[s][p.id] = c) : s !== \"Properties70\" && (s === \"PoseNode\" ? h[s] = [c] : h[s] = c), typeof p.id == \"number\" && (c.id = p.id), p.name !== \"\" && (c.attrName = p.name), p.type !== \"\" && (c.attrType = p.type), this.pushStack(c);\n }\n parseNodeAttr(n) {\n let r = n[0];\n n[0] !== \"\" && (r = parseInt(n[0]), isNaN(r) && (r = n[0]));\n let s = \"\", a = \"\";\n return n.length > 1 && (s = n[1].replace(/^(\\w+)::/, \"\"), a = n[2]), {\n id: r,\n name: s,\n type: a\n };\n }\n parseNodeProperty(n, r, s) {\n let a = r[1].replace(/^\"/, \"\").replace(/\"$/, \"\").trim(), c = r[2].replace(/^\"/, \"\").replace(/\"$/, \"\").trim();\n a === \"Content\" && c === \",\" && (c = s.replace(/\"/g, \"\").replace(/,$/, \"\").trim());\n const p = this.getCurrentNode();\n if (p.name === \"Properties70\") {\n this.parseNodeSpecialProperty(n, a, c);\n return;\n }\n if (a === \"C\") {\n const d = c.split(\",\").slice(1), g = parseInt(d[0]), w = parseInt(d[1]);\n let _ = c.split(\",\").slice(3);\n _ = _.map(function(y) {\n return y.trim().replace(/^\"/, \"\");\n }), a = \"connections\", c = [g, w], lh(c, _), p[a] === void 0 && (p[a] = []);\n }\n a === \"Node\" && (p.id = c), a in p && Array.isArray(p[a]) ? p[a].push(c) : a !== \"a\" ? p[a] = c : p.a = c, this.setCurrentProp(p, a), a === \"a\" && c.slice(-1) !== \",\" && (p.a = ro(c));\n }\n parseNodePropertyContinued(n) {\n const r = this.getCurrentNode();\n r.a += n, n.slice(-1) !== \",\" && (r.a = ro(r.a));\n }\n // parse \"Property70\"\n parseNodeSpecialProperty(n, r, s) {\n const a = s.split('\",').map(function(w) {\n return w.trim().replace(/^\\\"/, \"\").replace(/\\s/, \"_\");\n }), c = a[0], p = a[1], h = a[2], d = a[3];\n let g = a[4];\n switch (p) {\n case \"int\":\n case \"enum\":\n case \"bool\":\n case \"ULongLong\":\n case \"double\":\n case \"Number\":\n case \"FieldOfView\":\n g = parseFloat(g);\n break;\n case \"Color\":\n case \"ColorRGB\":\n case \"Vector3D\":\n case \"Lcl_Translation\":\n case \"Lcl_Rotation\":\n case \"Lcl_Scaling\":\n g = ro(g);\n break;\n }\n this.getPrevNode()[c] = {\n type: p,\n type2: h,\n flag: d,\n value: g\n }, this.setCurrentProp(this.getPrevNode(), c);\n }\n}\nclass ih {\n parse(n) {\n const r = new wa(n);\n r.skip(23);\n const s = r.getUint32();\n if (s < 6400)\n throw new Error(\"THREE.FBXLoader: FBX version not supported, FileVersion: \" + s);\n const a = new tl();\n for (; !this.endOfContent(r); ) {\n const c = this.parseNode(r, s);\n c !== null && a.add(c.name, c);\n }\n return a;\n }\n // Check if reader has reached the end of content.\n endOfContent(n) {\n return n.size() % 16 === 0 ? (n.getOffset() + 160 + 16 & -16) >= n.size() : n.getOffset() + 160 + 16 >= n.size();\n }\n // recursively parse nodes until the end of the file is reached\n parseNode(n, r) {\n const s = {}, a = r >= 7500 ? n.getUint64() : n.getUint32(), c = r >= 7500 ? n.getUint64() : n.getUint32();\n r >= 7500 ? n.getUint64() : n.getUint32();\n const p = n.getUint8(), h = n.getString(p);\n if (a === 0)\n return null;\n const d = [];\n for (let y = 0; y < c; y++)\n d.push(this.parseProperty(n));\n const g = d.length > 0 ? d[0] : \"\", w = d.length > 1 ? d[1] : \"\", _ = d.length > 2 ? d[2] : \"\";\n for (s.singleProperty = c === 1 && n.getOffset() === a; a > n.getOffset(); ) {\n const y = this.parseNode(n, r);\n y !== null && this.parseSubNode(h, s, y);\n }\n return s.propertyList = d, typeof g == \"number\" && (s.id = g), w !== \"\" && (s.attrName = w), _ !== \"\" && (s.attrType = _), h !== \"\" && (s.name = h), s;\n }\n parseSubNode(n, r, s) {\n if (s.singleProperty === !0) {\n const a = s.propertyList[0];\n Array.isArray(a) ? (r[s.name] = s, s.a = a) : r[s.name] = a;\n } else if (n === \"Connections\" && s.name === \"C\") {\n const a = [];\n s.propertyList.forEach(function(c, p) {\n p !== 0 && a.push(c);\n }), r.connections === void 0 && (r.connections = []), r.connections.push(a);\n } else if (s.name === \"Properties70\")\n Object.keys(s).forEach(function(c) {\n r[c] = s[c];\n });\n else if (n === \"Properties70\" && s.name === \"P\") {\n let a = s.propertyList[0], c = s.propertyList[1];\n const p = s.propertyList[2], h = s.propertyList[3];\n let d;\n a.indexOf(\"Lcl \") === 0 && (a = a.replace(\"Lcl \", \"Lcl_\")), c.indexOf(\"Lcl \") === 0 && (c = c.replace(\"Lcl \", \"Lcl_\")), c === \"Color\" || c === \"ColorRGB\" || c === \"Vector\" || c === \"Vector3D\" || c.indexOf(\"Lcl_\") === 0 ? d = [s.propertyList[4], s.propertyList[5], s.propertyList[6]] : d = s.propertyList[4], r[a] = {\n type: c,\n type2: p,\n flag: h,\n value: d\n };\n } else\n r[s.name] === void 0 ? typeof s.id == \"number\" ? (r[s.name] = {}, r[s.name][s.id] = s) : r[s.name] = s : s.name === \"PoseNode\" ? (Array.isArray(r[s.name]) || (r[s.name] = [r[s.name]]), r[s.name].push(s)) : r[s.name][s.id] === void 0 && (r[s.name][s.id] = s);\n }\n parseProperty(n) {\n const r = n.getString(1);\n let s;\n switch (r) {\n case \"C\":\n return n.getBoolean();\n case \"D\":\n return n.getFloat64();\n case \"F\":\n return n.getFloat32();\n case \"I\":\n return n.getInt32();\n case \"L\":\n return n.getInt64();\n case \"R\":\n return s = n.getUint32(), n.getArrayBuffer(s);\n case \"S\":\n return s = n.getUint32(), n.getString(s);\n case \"Y\":\n return n.getInt16();\n case \"b\":\n case \"c\":\n case \"d\":\n case \"f\":\n case \"i\":\n case \"l\":\n const a = n.getUint32(), c = n.getUint32(), p = n.getUint32();\n if (c === 0)\n switch (r) {\n case \"b\":\n case \"c\":\n return n.getBooleanArray(a);\n case \"d\":\n return n.getFloat64Array(a);\n case \"f\":\n return n.getFloat32Array(a);\n case \"i\":\n return n.getInt32Array(a);\n case \"l\":\n return n.getInt64Array(a);\n }\n const h = ip(new Uint8Array(n.getArrayBuffer(p))), d = new wa(h.buffer);\n switch (r) {\n case \"b\":\n case \"c\":\n return d.getBooleanArray(a);\n case \"d\":\n return d.getFloat64Array(a);\n case \"f\":\n return d.getFloat32Array(a);\n case \"i\":\n return d.getInt32Array(a);\n case \"l\":\n return d.getInt64Array(a);\n }\n default:\n throw new Error(\"THREE.FBXLoader: Unknown property type \" + r);\n }\n }\n}\nclass wa {\n constructor(n, r) {\n this.dv = new DataView(n), this.offset = 0, this.littleEndian = r !== void 0 ? r : !0;\n }\n getOffset() {\n return this.offset;\n }\n size() {\n return this.dv.buffer.byteLength;\n }\n skip(n) {\n this.offset += n;\n }\n // seems like true/false representation depends on exporter.\n // true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54)\n // then sees LSB.\n getBoolean() {\n return (this.getUint8() & 1) === 1;\n }\n getBooleanArray(n) {\n const r = [];\n for (let s = 0; s < n; s++)\n r.push(this.getBoolean());\n return r;\n }\n getUint8() {\n const n = this.dv.getUint8(this.offset);\n return this.offset += 1, n;\n }\n getInt16() {\n const n = this.dv.getInt16(this.offset, this.littleEndian);\n return this.offset += 2, n;\n }\n getInt32() {\n const n = this.dv.getInt32(this.offset, this.littleEndian);\n return this.offset += 4, n;\n }\n getInt32Array(n) {\n const r = [];\n for (let s = 0; s < n; s++)\n r.push(this.getInt32());\n return r;\n }\n getUint32() {\n const n = this.dv.getUint32(this.offset, this.littleEndian);\n return this.offset += 4, n;\n }\n // JavaScript doesn't support 64-bit integer so calculate this here\n // 1 << 32 will return 1 so using multiply operation instead here.\n // There's a possibility that this method returns wrong value if the value\n // is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER.\n // TODO: safely handle 64-bit integer\n getInt64() {\n let n, r;\n return this.littleEndian ? (n = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), n = this.getUint32()), r & 2147483648 ? (r = ~r & 4294967295, n = ~n & 4294967295, n === 4294967295 && (r = r + 1 & 4294967295), n = n + 1 & 4294967295, -(r * 4294967296 + n)) : r * 4294967296 + n;\n }\n getInt64Array(n) {\n const r = [];\n for (let s = 0; s < n; s++)\n r.push(this.getInt64());\n return r;\n }\n // Note: see getInt64() comment\n getUint64() {\n let n, r;\n return this.littleEndian ? (n = this.getUint32(), r = this.getUint32()) : (r = this.getUint32(), n = this.getUint32()), r * 4294967296 + n;\n }\n getFloat32() {\n const n = this.dv.getFloat32(this.offset, this.littleEndian);\n return this.offset += 4, n;\n }\n getFloat32Array(n) {\n const r = [];\n for (let s = 0; s < n; s++)\n r.push(this.getFloat32());\n return r;\n }\n getFloat64() {\n const n = this.dv.getFloat64(this.offset, this.littleEndian);\n return this.offset += 8, n;\n }\n getFloat64Array(n) {\n const r = [];\n for (let s = 0; s < n; s++)\n r.push(this.getFloat64());\n return r;\n }\n getArrayBuffer(n) {\n const r = this.dv.buffer.slice(this.offset, this.offset + n);\n return this.offset += n, r;\n }\n getString(n) {\n let r = [];\n for (let a = 0; a < n; a++)\n r[a] = this.getUint8();\n const s = r.indexOf(0);\n return s >= 0 && (r = r.slice(0, s)), kt.decodeText(new Uint8Array(r));\n }\n}\nclass tl {\n add(n, r) {\n this[n] = r;\n }\n}\nfunction sh(v) {\n const n = \"Kaydara FBX Binary \\0\";\n return v.byteLength >= n.length && n === sl(v, 0, n.length);\n}\nfunction rh(v) {\n const n = [\"K\", \"a\", \"y\", \"d\", \"a\", \"r\", \"a\", \"\\\\\", \"F\", \"B\", \"X\", \"\\\\\", \"B\", \"i\", \"n\", \"a\", \"r\", \"y\", \"\\\\\", \"\\\\\"];\n let r = 0;\n function s(a) {\n const c = v[a - 1];\n return v = v.slice(r + a), r++, c;\n }\n for (let a = 0; a < n.length; ++a)\n if (s(1) === n[a])\n return !1;\n return !0;\n}\nfunction ya(v) {\n const n = /FBXVersion: (\\d+)/, r = v.match(n);\n if (r)\n return parseInt(r[1]);\n throw new Error(\"THREE.FBXLoader: Cannot find the version number for the file given.\");\n}\nfunction oh(v) {\n return v / 46186158e3;\n}\nconst ah = [];\nfunction Os(v, n, r, s) {\n let a;\n switch (s.mappingType) {\n case \"ByPolygonVertex\":\n a = v;\n break;\n case \"ByPolygon\":\n a = n;\n break;\n case \"ByVertice\":\n a = r;\n break;\n case \"AllSame\":\n a = s.indices[0];\n break;\n default:\n console.warn(\"THREE.FBXLoader: unknown attribute mapping type \" + s.mappingType);\n }\n s.referenceType === \"IndexToDirect\" && (a = s.indices[a]);\n const c = a * s.dataSize, p = c + s.dataSize;\n return ch(ah, s.buffer, c, p);\n}\nconst so = new On(), hi = new $();\nfunction nl(v) {\n const n = new Ee(), r = new Ee(), s = new Ee(), a = new Ee(), c = new Ee(), p = new Ee(), h = new Ee(), d = new Ee(), g = new Ee(), w = new Ee(), _ = new Ee(), y = new Ee(), P = v.inheritType ? v.inheritType : 0;\n if (v.translation && n.setPosition(hi.fromArray(v.translation)), v.preRotation) {\n const K = v.preRotation.map(yt.degToRad);\n K.push(v.eulerOrder), r.makeRotationFromEuler(so.fromArray(K));\n }\n if (v.rotation) {\n const K = v.rotation.map(yt.degToRad);\n K.push(v.eulerOrder), s.makeRotationFromEuler(so.fromArray(K));\n }\n if (v.postRotation) {\n const K = v.postRotation.map(yt.degToRad);\n K.push(v.eulerOrder), a.makeRotationFromEuler(so.fromArray(K)), a.invert();\n }\n v.scale && c.scale(hi.fromArray(v.scale)), v.scalingOffset && h.setPosition(hi.fromArray(v.scalingOffset)), v.scalingPivot && p.setPosition(hi.fromArray(v.scalingPivot)), v.rotationOffset && d.setPosition(hi.fromArray(v.rotationOffset)), v.rotationPivot && g.setPosition(hi.fromArray(v.rotationPivot)), v.parentMatrixWorld && (_.copy(v.parentMatrix), w.copy(v.parentMatrixWorld));\n const I = r.clone().multiply(s).multiply(a), S = new Ee();\n S.extractRotation(w);\n const R = new Ee();\n R.copyPosition(w);\n const j = R.clone().invert().multiply(w), F = S.clone().invert().multiply(j), V = c, D = new Ee();\n if (P === 0)\n D.copy(S).multiply(I).multiply(F).multiply(V);\n else if (P === 1)\n D.copy(S).multiply(F).multiply(I).multiply(V);\n else {\n const q = new Ee().scale(new $().setFromMatrixScale(_)).clone().invert(), pe = F.clone().multiply(q);\n D.copy(S).multiply(I).multiply(pe).multiply(V);\n }\n const Y = g.clone().invert(), G = p.clone().invert();\n let N = n.clone().multiply(d).multiply(g).multiply(r).multiply(s).multiply(a).multiply(Y).multiply(h).multiply(p).multiply(c).multiply(G);\n const O = new Ee().copyPosition(N), H = w.clone().multiply(O);\n return y.copyPosition(H), N = y.clone().multiply(D), N.premultiply(w.invert()), N;\n}\nfunction il(v) {\n v = v || 0;\n const n = [\n \"ZYX\",\n // -> XYZ extrinsic\n \"YZX\",\n // -> XZY extrinsic\n \"XZY\",\n // -> YZX extrinsic\n \"ZXY\",\n // -> YXZ extrinsic\n \"YXZ\",\n // -> ZXY extrinsic\n \"XYZ\"\n // -> ZYX extrinsic\n //'SphericXYZ', // not possible to support\n ];\n return v === 6 ? (console.warn(\"THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.\"), n[0]) : n[v];\n}\nfunction ro(v) {\n return v.split(\",\").map(function(r) {\n return parseFloat(r);\n });\n}\nfunction sl(v, n, r) {\n return n === void 0 && (n = 0), r === void 0 && (r = v.byteLength), kt.decodeText(new Uint8Array(v, n, r));\n}\nfunction lh(v, n) {\n for (let r = 0, s = v.length, a = n.length; r < a; r++, s++)\n v[s] = n[r];\n}\nfunction ch(v, n, r, s) {\n for (let a = r, c = 0; a < s; a++, c++)\n v[c] = n[a];\n return v;\n}\nfunction xa(v, n, r) {\n return v.slice(0, n).concat(r).concat(v.slice(n));\n}\nclass uh extends $s {\n constructor(n) {\n super(n);\n }\n load(n, r, s, a) {\n const c = new di(this.manager);\n c.setPath(this.path), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(n, (p) => {\n if (typeof p != \"string\")\n throw new Error(\"unsupported data type\");\n const h = JSON.parse(p), d = this.parse(h);\n r && r(d);\n }, s, a);\n }\n parse(n) {\n return new xo(n);\n }\n}\nclass xo {\n constructor(n) {\n C(this, \"data\", void 0), this.data = n;\n }\n generateShapes(n, r = 100, s) {\n const a = [], c = {\n letterSpacing: 0,\n lineHeight: 1,\n ...s\n }, p = ph(n, r, this.data, c);\n for (let h = 0, d = p.length; h < d; h++)\n Array.prototype.push.apply(a, p[h].toShapes(!1));\n return a;\n }\n}\nC(xo, \"isFont\", void 0);\nC(xo, \"type\", void 0);\nfunction ph(v, n, r, s) {\n const a = Array.from(v), c = n / r.resolution, p = (r.boundingBox.yMax - r.boundingBox.yMin + r.underlineThickness) * c, h = [];\n let d = 0, g = 0;\n for (let w = 0; w < a.length; w++) {\n const _ = a[w];\n if (_ === `\n`)\n d = 0, g -= p * s.lineHeight;\n else {\n const y = hh(_, c, d, g, r);\n y && (d += y.offsetX + s.letterSpacing, h.push(y.path));\n }\n }\n return h;\n}\nfunction hh(v, n, r, s, a) {\n const c = a.glyphs[v] || a.glyphs[\"?\"];\n if (!c) {\n console.error('THREE.Font: character \"' + v + '\" does not exists in font family ' + a.familyName + \".\");\n return;\n }\n const p = new Nu();\n let h, d, g, w, _, y, P, I;\n if (c.o) {\n const S = c._cachedOutline || (c._cachedOutline = c.o.split(\" \"));\n for (let R = 0, j = S.length; R < j; )\n switch (S[R++]) {\n case \"m\":\n h = parseInt(S[R++]) * n + r, d = parseInt(S[R++]) * n + s, p.moveTo(h, d);\n break;\n case \"l\":\n h = parseInt(S[R++]) * n + r, d = parseInt(S[R++]) * n + s, p.lineTo(h, d);\n break;\n case \"q\":\n g = parseInt(S[R++]) * n + r, w = parseInt(S[R++]) * n + s, _ = parseInt(S[R++]) * n + r, y = parseInt(S[R++]) * n + s, p.quadraticCurveTo(_, y, g, w);\n break;\n case \"b\":\n g = parseInt(S[R++]) * n + r, w = parseInt(S[R++]) * n + s, _ = parseInt(S[R++]) * n + r, y = parseInt(S[R++]) * n + s, P = parseInt(S[R++]) * n + r, I = parseInt(S[R++]) * n + s, p.bezierCurveTo(_, y, P, I, g, w);\n break;\n }\n }\n return {\n offsetX: c.ha * n,\n path: p\n };\n}\nvar rl = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction dh(v) {\n return v && v.__esModule && Object.prototype.hasOwnProperty.call(v, \"default\") ? v.default : v;\n}\nclass mh extends Fu {\n constructor(n) {\n super(n), this.type = Vs;\n }\n // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n parse(n) {\n const h = function(V, D) {\n switch (V) {\n case 1:\n console.error(\"THREE.RGBELoader Read Error: \" + (D || \"\"));\n break;\n case 2:\n console.error(\"THREE.RGBELoader Write Error: \" + (D || \"\"));\n break;\n case 3:\n console.error(\"THREE.RGBELoader Bad File Format: \" + (D || \"\"));\n break;\n default:\n case 4:\n console.error(\"THREE.RGBELoader: Error: \" + (D || \"\"));\n }\n return -1;\n }, _ = `\n`, y = function(V, D, Y) {\n D = D || 1024;\n let N = V.pos, O = -1, H = 0, K = \"\", q = String.fromCharCode.apply(null, new Uint16Array(V.subarray(N, N + 128)));\n for (; 0 > (O = q.indexOf(_)) && H < D && N < V.byteLength; )\n K += q, H += q.length, N += 128, q += String.fromCharCode.apply(null, new Uint16Array(V.subarray(N, N + 128)));\n return -1 < O ? (Y !== !1 && (V.pos += H + O + 1), K + q.slice(0, O)) : !1;\n }, P = function(V) {\n const D = /^#\\?(\\S+)/, Y = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, G = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, N = /^\\s*FORMAT=(\\S+)\\s*$/, O = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/, H = {\n valid: 0,\n string: \"\",\n comments: \"\",\n programtype: \"RGBE\",\n format: \"\",\n gamma: 1,\n exposure: 1,\n width: 0,\n height: 0\n /* image dimensions, width/height */\n };\n let K, q;\n if (V.pos >= V.byteLength || !(K = y(V)))\n return h(1, \"no header found\");\n if (!(q = K.match(D)))\n return h(3, \"bad initial token\");\n for (H.valid |= 1, H.programtype = q[1], H.string += K + `\n`; K = y(V), K !== !1; ) {\n if (H.string += K + `\n`, K.charAt(0) === \"#\") {\n H.comments += K + `\n`;\n continue;\n }\n if ((q = K.match(Y)) && (H.gamma = parseFloat(q[1])), (q = K.match(G)) && (H.exposure = parseFloat(q[1])), (q = K.match(N)) && (H.valid |= 2, H.format = q[1]), (q = K.match(O)) && (H.valid |= 4, H.height = parseInt(q[1], 10), H.width = parseInt(q[2], 10)), H.valid & 2 && H.valid & 4)\n break;\n }\n return H.valid & 2 ? H.valid & 4 ? H : h(3, \"missing image size specifier\") : h(3, \"missing format specifier\");\n }, I = function(V, D, Y) {\n const G = D;\n if (\n // run length encoding is not allowed so read flat\n G < 8 || G > 32767 || // this file is not run length encoded\n V[0] !== 2 || V[1] !== 2 || V[2] & 128\n )\n return new Uint8Array(V);\n if (G !== (V[2] << 8 | V[3]))\n return h(3, \"wrong scanline width\");\n const N = new Uint8Array(4 * D * Y);\n if (!N.length)\n return h(4, \"unable to allocate buffer space\");\n let O = 0, H = 0;\n const K = 4 * G, q = new Uint8Array(4), pe = new Uint8Array(K);\n let ge = Y;\n for (; ge > 0 && H < V.byteLength; ) {\n if (H + 4 > V.byteLength)\n return h(1);\n if (q[0] = V[H++], q[1] = V[H++], q[2] = V[H++], q[3] = V[H++], q[0] != 2 || q[1] != 2 || (q[2] << 8 | q[3]) != G)\n return h(3, \"bad rgbe scanline format\");\n let ce = 0, me;\n for (; ce < K && H < V.byteLength; ) {\n me = V[H++];\n const ee = me > 128;\n if (ee && (me -= 128), me === 0 || ce + me > K)\n return h(3, \"bad scanline data\");\n if (ee) {\n const X = V[H++];\n for (let Pe = 0; Pe < me; Pe++)\n pe[ce++] = X;\n } else\n pe.set(V.subarray(H, H + me), ce), ce += me, H += me;\n }\n const he = G;\n for (let ee = 0; ee < he; ee++) {\n let X = 0;\n N[O] = pe[ee + X], X += G, N[O + 1] = pe[ee + X], X += G, N[O + 2] = pe[ee + X], X += G, N[O + 3] = pe[ee + X], O += 4;\n }\n ge--;\n }\n return N;\n }, S = function(V, D, Y, G) {\n const N = V[D + 3], O = Math.pow(2, N - 128) / 255;\n Y[G + 0] = V[D + 0] * O, Y[G + 1] = V[D + 1] * O, Y[G + 2] = V[D + 2] * O, Y[G + 3] = 1;\n }, R = function(V, D, Y, G) {\n const N = V[D + 3], O = Math.pow(2, N - 128) / 255;\n Y[G + 0] = Ds.toHalfFloat(Math.min(V[D + 0] * O, 65504)), Y[G + 1] = Ds.toHalfFloat(Math.min(V[D + 1] * O, 65504)), Y[G + 2] = Ds.toHalfFloat(Math.min(V[D + 2] * O, 65504)), Y[G + 3] = Ds.toHalfFloat(1);\n }, j = new Uint8Array(n);\n j.pos = 0;\n const F = P(j);\n if (F !== -1) {\n const V = F.width, D = F.height, Y = I(j.subarray(j.pos), V, D);\n if (Y !== -1) {\n let G, N, O;\n switch (this.type) {\n case eo:\n O = Y.length / 4;\n const H = new Float32Array(O * 4);\n for (let q = 0; q < O; q++)\n S(Y, q * 4, H, q * 4);\n G = H, N = eo;\n break;\n case Vs:\n O = Y.length / 4;\n const K = new Uint16Array(O * 4);\n for (let q = 0; q < O; q++)\n R(Y, q * 4, K, q * 4);\n G = K, N = Vs;\n break;\n default:\n console.error(\"THREE.RGBELoader: unsupported type: \", this.type);\n break;\n }\n return {\n width: V,\n height: D,\n data: G,\n header: F.string,\n gamma: F.gamma,\n exposure: F.exposure,\n type: N\n };\n }\n }\n return null;\n }\n setDataType(n) {\n return this.type = n, this;\n }\n load(n, r, s, a) {\n function c(p, h) {\n switch (p.type) {\n case eo:\n case Vs:\n p.encoding = Ha, p.minFilter = zs, p.magFilter = zs, p.generateMipmaps = !1, p.flipY = !0;\n break;\n }\n r && r(p, h);\n }\n return super.load(n, c, s, a);\n }\n}\nconst oo = /* @__PURE__ */ new WeakMap();\nclass fh extends $s {\n constructor(n) {\n super(n), this.decoderPath = \"\", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = \"\", this.defaultAttributeIDs = {\n position: \"POSITION\",\n normal: \"NORMAL\",\n color: \"COLOR\",\n uv: \"TEX_COORD\"\n }, this.defaultAttributeTypes = {\n position: \"Float32Array\",\n normal: \"Float32Array\",\n color: \"Float32Array\",\n uv: \"Float32Array\"\n };\n }\n setDecoderPath(n) {\n return this.decoderPath = n, this;\n }\n setDecoderConfig(n) {\n return this.decoderConfig = n, this;\n }\n setWorkerLimit(n) {\n return this.workerLimit = n, this;\n }\n load(n, r, s, a) {\n const c = new di(this.manager);\n c.setPath(this.path), c.setResponseType(\"arraybuffer\"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(n, (p) => {\n const h = {\n attributeIDs: this.defaultAttributeIDs,\n attributeTypes: this.defaultAttributeTypes,\n useUniqueIDs: !1\n };\n this.decodeGeometry(p, h).then(r).catch(a);\n }, s, a);\n }\n /** @deprecated Kept for backward-compatibility with previous DRACOLoader versions. */\n decodeDracoFile(n, r, s, a) {\n const c = {\n attributeIDs: s || this.defaultAttributeIDs,\n attributeTypes: a || this.defaultAttributeTypes,\n useUniqueIDs: !!s\n };\n this.decodeGeometry(n, c).then(r);\n }\n decodeGeometry(n, r) {\n for (const d in r.attributeTypes) {\n const g = r.attributeTypes[d];\n g.BYTES_PER_ELEMENT !== void 0 && (r.attributeTypes[d] = g.name);\n }\n const s = JSON.stringify(r);\n if (oo.has(n)) {\n const d = oo.get(n);\n if (d.key === s)\n return d.promise;\n if (n.byteLength === 0)\n throw new Error(\"THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.\");\n }\n let a;\n const c = this.workerNextTaskID++, p = n.byteLength, h = this._getWorker(c, p).then((d) => (a = d, new Promise((g, w) => {\n a._callbacks[c] = {\n resolve: g,\n reject: w\n }, a.postMessage({\n type: \"decode\",\n id: c,\n taskConfig: r,\n buffer: n\n }, [n]);\n }))).then((d) => this._createGeometry(d.geometry));\n return h.catch(() => !0).then(() => {\n a && c && this._releaseTask(a, c);\n }), oo.set(n, {\n key: s,\n promise: h\n }), h;\n }\n _createGeometry(n) {\n const r = new zt();\n n.index && r.setIndex(new js(n.index.array, 1));\n for (let s = 0; s < n.attributes.length; s++) {\n const a = n.attributes[s], c = a.name, p = a.array, h = a.itemSize;\n r.setAttribute(c, new js(p, h));\n }\n return r;\n }\n _loadLibrary(n, r) {\n const s = new di(this.manager);\n return s.setPath(this.decoderPath), s.setResponseType(r), s.setWithCredentials(this.withCredentials), new Promise((a, c) => {\n s.load(n, a, void 0, c);\n });\n }\n preload() {\n return this._initDecoder(), this;\n }\n _initDecoder() {\n if (this.decoderPending)\n return this.decoderPending;\n const n = typeof WebAssembly != \"object\" || this.decoderConfig.type === \"js\", r = [];\n return n ? r.push(this._loadLibrary(\"draco_decoder.js\", \"text\")) : (r.push(this._loadLibrary(\"draco_wasm_wrapper.js\", \"text\")), r.push(this._loadLibrary(\"draco_decoder.wasm\", \"arraybuffer\"))), this.decoderPending = Promise.all(r).then((s) => {\n const a = s[0];\n n || (this.decoderConfig.wasmBinary = s[1]);\n const c = vh.toString(), p = [\"/* draco decoder */\", a, \"\", \"/* worker */\", c.substring(c.indexOf(\"{\") + 1, c.lastIndexOf(\"}\"))].join(`\n`);\n this.workerSourceURL = URL.createObjectURL(new Blob([p]));\n }), this.decoderPending;\n }\n _getWorker(n, r) {\n return this._initDecoder().then(() => {\n if (this.workerPool.length < this.workerLimit) {\n const a = new Worker(this.workerSourceURL);\n a._callbacks = {}, a._taskCosts = {}, a._taskLoad = 0, a.postMessage({\n type: \"init\",\n decoderConfig: this.decoderConfig\n }), a.onmessage = function(c) {\n const p = c.data;\n switch (p.type) {\n case \"decode\":\n a._callbacks[p.id].resolve(p);\n break;\n case \"error\":\n a._callbacks[p.id].reject(p);\n break;\n default:\n console.error('THREE.DRACOLoader: Unexpected message, \"' + p.type + '\"');\n }\n }, this.workerPool.push(a);\n } else\n this.workerPool.sort(function(a, c) {\n return a._taskLoad > c._taskLoad ? -1 : 1;\n });\n const s = this.workerPool[this.workerPool.length - 1];\n return s._taskCosts[n] = r, s._taskLoad += r, s;\n });\n }\n _releaseTask(n, r) {\n n._taskLoad -= n._taskCosts[r], delete n._callbacks[r], delete n._taskCosts[r];\n }\n debug() {\n console.log(\"Task load: \", this.workerPool.map((n) => n._taskLoad));\n }\n dispose() {\n for (let n = 0; n < this.workerPool.length; ++n)\n this.workerPool[n].terminate();\n return this.workerPool.length = 0, this;\n }\n}\nfunction vh() {\n let v, n;\n onmessage = function(p) {\n const h = p.data;\n switch (h.type) {\n case \"init\":\n v = h.decoderConfig, n = new Promise(function(w) {\n v.onModuleLoaded = function(_) {\n w({\n draco: _\n });\n }, DracoDecoderModule(v);\n });\n break;\n case \"decode\":\n const d = h.buffer, g = h.taskConfig;\n n.then((w) => {\n const _ = w.draco, y = new _.Decoder(), P = new _.DecoderBuffer();\n P.Init(new Int8Array(d), d.byteLength);\n try {\n const I = r(_, y, P, g), S = I.attributes.map((R) => R.array.buffer);\n I.index && S.push(I.index.array.buffer), self.postMessage({\n type: \"decode\",\n id: h.id,\n geometry: I\n }, S);\n } catch (I) {\n console.error(I), self.postMessage({\n type: \"error\",\n id: h.id,\n error: I.message\n });\n } finally {\n _.destroy(P), _.destroy(y);\n }\n });\n break;\n }\n };\n function r(p, h, d, g) {\n const w = g.attributeIDs, _ = g.attributeTypes;\n let y, P;\n const I = h.GetEncodedGeometryType(d);\n if (I === p.TRIANGULAR_MESH)\n y = new p.Mesh(), P = h.DecodeBufferToMesh(d, y);\n else if (I === p.POINT_CLOUD)\n y = new p.PointCloud(), P = h.DecodeBufferToPointCloud(d, y);\n else\n throw new Error(\"THREE.DRACOLoader: Unexpected geometry type.\");\n if (!P.ok() || y.ptr === 0)\n throw new Error(\"THREE.DRACOLoader: Decoding failed: \" + P.error_msg());\n const S = {\n index: null,\n attributes: []\n };\n for (const R in w) {\n const j = self[_[R]];\n let F, V;\n if (g.useUniqueIDs)\n V = w[R], F = h.GetAttributeByUniqueId(y, V);\n else {\n if (V = h.GetAttributeId(y, p[w[R]]), V === -1)\n continue;\n F = h.GetAttribute(y, V);\n }\n S.attributes.push(a(p, h, y, R, j, F));\n }\n return I === p.TRIANGULAR_MESH && (S.index = s(p, h, y)), p.destroy(y), S;\n }\n function s(p, h, d) {\n const w = d.num_faces() * 3, _ = w * 4, y = p._malloc(_);\n h.GetTrianglesUInt32Array(d, _, y);\n const P = new Uint32Array(p.HEAPF32.buffer, y, w).slice();\n return p._free(y), {\n array: P,\n itemSize: 1\n };\n }\n function a(p, h, d, g, w, _) {\n const y = _.num_components(), I = d.num_points() * y, S = I * w.BYTES_PER_ELEMENT, R = c(p, w), j = p._malloc(S);\n h.GetAttributeDataArrayForAllPoints(d, _, R, S, j);\n const F = new w(p.HEAPF32.buffer, j, I).slice();\n return p._free(j), {\n name: g,\n array: F,\n itemSize: y\n };\n }\n function c(p, h) {\n switch (h) {\n case Float32Array:\n return p.DT_FLOAT32;\n case Int8Array:\n return p.DT_INT8;\n case Int16Array:\n return p.DT_INT16;\n case Int32Array:\n return p.DT_INT32;\n case Uint8Array:\n return p.DT_UINT8;\n case Uint16Array:\n return p.DT_UINT16;\n case Uint32Array:\n return p.DT_UINT32;\n }\n }\n}\nfunction Gt() {\n const { state: v, setState: n } = la(\"useTres\", lu()), r = la(\"extend\") || (() => {\n });\n return {\n state: v,\n setState: n,\n extend: r\n };\n}\nconst bh = [\"args\"], Pd = /* @__PURE__ */ Le({\n __name: \"OrbitControls\",\n props: {\n makeDefault: { type: Boolean, default: !1 },\n camera: null,\n domElement: null,\n target: null,\n enableDamping: { type: Boolean }\n },\n setup(v) {\n const n = v, { state: r, setState: s, extend: a } = Gt(), c = Ut(null);\n return a({ OrbitControls: dp }), Hs(c, (p) => {\n p && n.makeDefault ? s(\"controls\", p) : s(\"controls\", null);\n }), (p, h) => {\n var d;\n return it(r).camera && it(r).renderer ? (Ne(), Fe(\"TresOrbitControls\", {\n key: 0,\n ref_key: \"controls\",\n ref: c,\n args: [it(r).camera || v.camera, ((d = it(r).renderer) == null ? void 0 : d.domElement) || v.domElement]\n }, null, 8, bh)) : Bs(\"\", !0);\n };\n }\n});\nvar Ea;\nconst ol = typeof window < \"u\", gh = (v) => typeof v == \"string\", _h = () => {\n};\nol && ((Ea = window == null ? void 0 : window.navigator) != null && Ea.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction al(v) {\n return typeof v == \"function\" ? v() : it(v);\n}\nfunction wh(v) {\n return v;\n}\nfunction yh(v) {\n return tu() ? (nu(v), !0) : !1;\n}\nfunction xh(v, n = !0) {\n iu() ? Sa(v) : n ? v() : su(v);\n}\nfunction Eh(v) {\n var n;\n const r = al(v);\n return (n = r == null ? void 0 : r.$el) != null ? n : r;\n}\nconst Eo = ol ? window : void 0;\nfunction an(...v) {\n let n, r, s, a;\n if (gh(v[0]) || Array.isArray(v[0]) ? ([r, s, a] = v, n = Eo) : [n, r, s, a] = v, !n)\n return _h;\n Array.isArray(r) || (r = [r]), Array.isArray(s) || (s = [s]);\n const c = [], p = () => {\n c.forEach((w) => w()), c.length = 0;\n }, h = (w, _, y, P) => (w.addEventListener(_, y, P), () => w.removeEventListener(_, y, P)), d = Hs(() => [Eh(n), al(a)], ([w, _]) => {\n p(), w && c.push(...r.flatMap((y) => s.map((P) => h(w, y, P, _))));\n }, { immediate: !0, flush: \"post\" }), g = () => {\n d(), p();\n };\n return yh(g), g;\n}\nconst Ca = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Pa = \"__vueuse_ssr_handlers__\";\nCa[Pa] = Ca[Pa] || {};\nfunction Ch(v = {}) {\n const {\n type: n = \"page\",\n touch: r = !0,\n resetOnTouchEnds: s = !1,\n initialValue: a = { x: 0, y: 0 },\n window: c = Eo,\n eventFilter: p\n } = v, h = Ut(a.x), d = Ut(a.y), g = Ut(null), w = (S) => {\n n === \"page\" ? (h.value = S.pageX, d.value = S.pageY) : n === \"client\" ? (h.value = S.clientX, d.value = S.clientY) : n === \"movement\" && (h.value = S.movementX, d.value = S.movementY), g.value = \"mouse\";\n }, _ = () => {\n h.value = a.x, d.value = a.y;\n }, y = (S) => {\n if (S.touches.length > 0) {\n const R = S.touches[0];\n n === \"page\" ? (h.value = R.pageX, d.value = R.pageY) : n === \"client\" && (h.value = R.clientX, d.value = R.clientY), g.value = \"touch\";\n }\n }, P = (S) => p === void 0 ? w(S) : p(() => w(S), {}), I = (S) => p === void 0 ? y(S) : p(() => y(S), {});\n return c && (an(c, \"mousemove\", P, { passive: !0 }), an(c, \"dragover\", P, { passive: !0 }), r && n !== \"movement\" && (an(c, \"touchstart\", I, { passive: !0 }), an(c, \"touchmove\", I, { passive: !0 }), s && an(c, \"touchend\", _, { passive: !0 }))), {\n x: h,\n y: d,\n sourceType: g\n };\n}\nvar Ta;\n(function(v) {\n v.UP = \"UP\", v.RIGHT = \"RIGHT\", v.DOWN = \"DOWN\", v.LEFT = \"LEFT\", v.NONE = \"NONE\";\n})(Ta || (Ta = {}));\nvar Ph = Object.defineProperty, ka = Object.getOwnPropertySymbols, Th = Object.prototype.hasOwnProperty, kh = Object.prototype.propertyIsEnumerable, Ma = (v, n, r) => n in v ? Ph(v, n, { enumerable: !0, configurable: !0, writable: !0, value: r }) : v[n] = r, Mh = (v, n) => {\n for (var r in n || (n = {}))\n Th.call(n, r) && Ma(v, r, n[r]);\n if (ka)\n for (var r of ka(n))\n kh.call(n, r) && Ma(v, r, n[r]);\n return v;\n};\nconst Sh = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nMh({\n linear: wh\n}, Sh);\nfunction Lh(v = {}) {\n const {\n window: n = Eo,\n initialWidth: r = 1 / 0,\n initialHeight: s = 1 / 0,\n listenOrientation: a = !0,\n includeScrollbar: c = !0\n } = v, p = Ut(r), h = Ut(s), d = () => {\n n && (c ? (p.value = n.innerWidth, h.value = n.innerHeight) : (p.value = n.document.documentElement.clientWidth, h.value = n.document.documentElement.clientHeight));\n };\n return d(), xh(d), an(\"resize\", d, { passive: !0 }), a && an(\"orientationchange\", d, { passive: !0 }), { width: p, height: h };\n}\nconst Ah = [\"args\"], Td = /* @__PURE__ */ Le({\n __name: \"PointerLockControls\",\n props: {\n makeDefault: { type: Boolean, default: !1 },\n camera: null,\n domElement: null,\n selector: null\n },\n setup(v, { expose: n }) {\n const r = v, { state: s, setState: a, extend: c } = Gt(), p = Ut(null);\n let h;\n return c({ PointerLockControls: hp }), Hs(p, (d) => {\n var w;\n d && r.makeDefault ? a(\"controls\", d) : a(\"controls\", null);\n const g = document.getElementById(r.selector || \"\");\n h = g || ((w = s.renderer) == null ? void 0 : w.domElement), an(h, \"click\", () => {\n var _;\n (_ = p.value) == null || _.lock();\n });\n }), n({\n value: p\n }), (d, g) => {\n var w;\n return it(s).camera && it(s).renderer ? (Ne(), Fe(\"TresPointerLockControls\", {\n key: 0,\n ref_key: \"controls\",\n ref: p,\n args: [it(s).camera || v.camera, ((w = it(s).renderer) == null ? void 0 : w.domElement) || v.domElement]\n }, null, 8, Ah)) : Bs(\"\", !0);\n };\n }\n});\nfunction Rh(v, n) {\n const r = {};\n for (const s of n)\n Object.prototype.hasOwnProperty.call(v, s) && (r[s] = v[s]);\n return r;\n}\nfunction Ih(v, n) {\n const r = `set${n[0].toUpperCase()}${n.slice(1)}`;\n return v[r] !== void 0;\n}\nconst kd = /* @__PURE__ */ Le({\n __name: \"TransformControls\",\n props: {\n object: null,\n mode: null,\n enabled: { type: Boolean, default: !0 },\n axis: null,\n translationSnap: null,\n rotationSnap: null,\n scaleSnap: null,\n space: null,\n size: null,\n showX: { type: Boolean },\n showY: { type: Boolean },\n showZ: { type: Boolean }\n },\n emits: [\"dragging\", \"change\", \"mouseDown\", \"mouseUp\", \"objectChange\"],\n setup(v, { emit: n }) {\n const r = v;\n let s = $e();\n const { state: a } = Gt(), c = Qi(\n () => Rh(r, [\n \"enabled\",\n \"axis\",\n \"mode\",\n \"translationSnap\",\n \"rotationSnap\",\n \"scaleSnap\",\n \"space\",\n \"size\",\n \"showX\",\n \"showY\",\n \"showZ\"\n ])\n ), p = () => n(\"change\", s.value), h = () => n(\"mouseDown\", s.value), d = () => n(\"mouseUp\", s.value), g = () => n(\"objectChange\", s.value), w = (y) => {\n a.controls && (a.controls.enabled = !y.value), n(\"dragging\", y.value);\n };\n function _(y) {\n y.addEventListener(\"dragging-changed\", w), y.addEventListener(\"change\", p), y.addEventListener(\"mouseDown\", h), y.addEventListener(\"mouseUp\", d), y.addEventListener(\"objectChange\", g);\n }\n return Ks(() => {\n a.camera && a.renderer && a.scene && r.object && (s.value = new op(a.camera, a.renderer.domElement), s.value.attach(r.object), a.scene.add(s.value), _(s.value));\n }), Hs(\n [c, s],\n // TODO: properly type this\n ([y, P]) => {\n if (y && P)\n for (const I in y)\n if (!Ih(P, I))\n P[I] = y[I];\n else {\n const S = `set${I[0].toUpperCase()}${I.slice(1)}`;\n typeof P[S] == \"function\" && y[I] !== void 0 && P[S](y[I]);\n }\n },\n {\n immediate: !0\n }\n ), La(() => {\n s.value && (s.value.removeEventListener(\"dragging-changed\", w), s.value.removeEventListener(\"change\", p), s.value.removeEventListener(\"mouseDown\", h), s.value.removeEventListener(\"mouseUp\", d), s.value.removeEventListener(\"objectChange\", g));\n }), (y, P) => Xe(y.$slots, \"default\");\n }\n});\nfunction Vh(v = !1, n = 5, r) {\n const { x: s, y: a } = Ch(), { logWarning: c } = cu(), { width: p, height: h } = Lh(), d = Qi(() => (s.value / p.value - 0.5) * n), g = Qi(() => -(a.value / h.value - 0.5) * n);\n if (r) {\n const { x: w, y: _ } = r.position;\n Ks(() => {\n v || r && (r.position.x = w + d.value, r.position.y = _ + g.value);\n });\n } else\n c(\"Scene must contain a Camera component to use this composable\");\n}\nconst Md = Le({\n name: \"PamCameraMouse\",\n props: [\"disabled\", \"factor\"],\n setup(v) {\n const { state: n } = Gt();\n return Ks(() => {\n if (n != null && n.camera) {\n const r = n == null ? void 0 : n.camera;\n Vh(v.disabled, v.factor, r);\n }\n }), () => {\n };\n }\n});\nvar Gs = {}, Dh = {\n get exports() {\n return Gs;\n },\n set exports(v) {\n Gs = v;\n }\n};\n/*! Tweakpane 3.1.7 (c) 2016 cocopon, licensed under the MIT license. */\n(function(v, n) {\n (function(r, s) {\n s(n);\n })(rl, function(r) {\n class s {\n /**\n * @hidden\n */\n constructor(e) {\n const [t, l] = e.split(\"-\"), b = t.split(\".\");\n this.major = parseInt(b[0], 10), this.minor = parseInt(b[1], 10), this.patch = parseInt(b[2], 10), this.prerelease = l ?? null;\n }\n toString() {\n const e = [this.major, this.minor, this.patch].join(\".\");\n return this.prerelease !== null ? [e, this.prerelease].join(\"-\") : e;\n }\n }\n class a {\n constructor(e) {\n this.controller_ = e;\n }\n get element() {\n return this.controller_.view.element;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(e) {\n this.controller_.viewProps.set(\"disabled\", e);\n }\n get hidden() {\n return this.controller_.viewProps.get(\"hidden\");\n }\n set hidden(e) {\n this.controller_.viewProps.set(\"hidden\", e);\n }\n dispose() {\n this.controller_.viewProps.set(\"disposed\", !0);\n }\n }\n class c {\n constructor(e) {\n this.target = e;\n }\n }\n class p extends c {\n constructor(e, t, l, b) {\n super(e), this.value = t, this.presetKey = l, this.last = b ?? !0;\n }\n }\n class h extends c {\n constructor(e, t, l) {\n super(e), this.value = t, this.presetKey = l;\n }\n }\n class d extends c {\n constructor(e, t) {\n super(e), this.expanded = t;\n }\n }\n class g extends c {\n constructor(e, t) {\n super(e), this.index = t;\n }\n }\n function w(i) {\n return i;\n }\n function _(i) {\n return i == null;\n }\n function y(i, e) {\n if (i.length !== e.length)\n return !1;\n for (let t = 0; t < i.length; t++)\n if (i[t] !== e[t])\n return !1;\n return !0;\n }\n function P(i, e) {\n let t = i;\n do {\n const l = Object.getOwnPropertyDescriptor(t, e);\n if (l && (l.set !== void 0 || l.writable === !0))\n return !0;\n t = Object.getPrototypeOf(t);\n } while (t !== null);\n return !1;\n }\n const I = {\n alreadydisposed: () => \"View has been already disposed\",\n invalidparams: (i) => `Invalid parameters for '${i.name}'`,\n nomatchingcontroller: (i) => `No matching controller for '${i.key}'`,\n nomatchingview: (i) => `No matching view for '${JSON.stringify(i.params)}'`,\n notbindable: () => \"Value is not bindable\",\n propertynotfound: (i) => `Property '${i.name}' not found`,\n shouldneverhappen: () => \"This error should never happen\"\n };\n class S {\n static alreadyDisposed() {\n return new S({ type: \"alreadydisposed\" });\n }\n static notBindable() {\n return new S({\n type: \"notbindable\"\n });\n }\n static propertyNotFound(e) {\n return new S({\n type: \"propertynotfound\",\n context: {\n name: e\n }\n });\n }\n static shouldNeverHappen() {\n return new S({ type: \"shouldneverhappen\" });\n }\n constructor(e) {\n var t;\n this.message = (t = I[e.type](e.context)) !== null && t !== void 0 ? t : \"Unexpected error\", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = e.type;\n }\n }\n class R {\n constructor(e, t, l) {\n this.obj_ = e, this.key_ = t, this.presetKey_ = l ?? t;\n }\n static isBindable(e) {\n return !(e === null || typeof e != \"object\");\n }\n get key() {\n return this.key_;\n }\n get presetKey() {\n return this.presetKey_;\n }\n read() {\n return this.obj_[this.key_];\n }\n write(e) {\n this.obj_[this.key_] = e;\n }\n writeProperty(e, t) {\n const l = this.read();\n if (!R.isBindable(l))\n throw S.notBindable();\n if (!(e in l))\n throw S.propertyNotFound(e);\n l[e] = t;\n }\n }\n class j extends a {\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get title() {\n var e;\n return (e = this.controller_.valueController.props.get(\"title\")) !== null && e !== void 0 ? e : \"\";\n }\n set title(e) {\n this.controller_.valueController.props.set(\"title\", e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.controller_.valueController.emitter.on(e, () => {\n l(new c(this));\n }), this;\n }\n }\n class F {\n constructor() {\n this.observers_ = {};\n }\n on(e, t) {\n let l = this.observers_[e];\n return l || (l = this.observers_[e] = []), l.push({\n handler: t\n }), this;\n }\n off(e, t) {\n const l = this.observers_[e];\n return l && (this.observers_[e] = l.filter((b) => b.handler !== t)), this;\n }\n emit(e, t) {\n const l = this.observers_[e];\n l && l.forEach((b) => {\n b.handler(t);\n });\n }\n }\n const V = \"tp\";\n function D(i) {\n return (t, l) => [\n V,\n \"-\",\n i,\n \"v\",\n t ? `_${t}` : \"\",\n l ? `-${l}` : \"\"\n ].join(\"\");\n }\n function Y(i, e) {\n return (t) => e(i(t));\n }\n function G(i) {\n return i.rawValue;\n }\n function N(i, e) {\n i.emitter.on(\"change\", Y(G, e)), e(i.rawValue);\n }\n function O(i, e, t) {\n N(i.value(e), t);\n }\n function H(i, e, t) {\n t ? i.classList.add(e) : i.classList.remove(e);\n }\n function K(i, e) {\n return (t) => {\n H(i, e, t);\n };\n }\n function q(i, e) {\n N(i, (t) => {\n e.textContent = t ?? \"\";\n });\n }\n const pe = D(\"btn\");\n class ge {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(pe()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"button\");\n l.classList.add(pe(\"b\")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l;\n const b = e.createElement(\"div\");\n b.classList.add(pe(\"t\")), q(t.props.value(\"title\"), b), this.buttonElement.appendChild(b);\n }\n }\n class ce {\n constructor(e, t) {\n this.emitter = new F(), this.onClick_ = this.onClick_.bind(this), this.props = t.props, this.viewProps = t.viewProps, this.view = new ge(e, {\n props: this.props,\n viewProps: this.viewProps\n }), this.view.buttonElement.addEventListener(\"click\", this.onClick_);\n }\n onClick_() {\n this.emitter.emit(\"click\", {\n sender: this\n });\n }\n }\n class me {\n constructor(e, t) {\n var l;\n this.constraint_ = t == null ? void 0 : t.constraint, this.equals_ = (l = t == null ? void 0 : t.equals) !== null && l !== void 0 ? l : (b, E) => b === E, this.emitter = new F(), this.rawValue_ = e;\n }\n get constraint() {\n return this.constraint_;\n }\n get rawValue() {\n return this.rawValue_;\n }\n set rawValue(e) {\n this.setRawValue(e, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(e, t) {\n const l = t ?? {\n forceEmit: !1,\n last: !0\n }, b = this.constraint_ ? this.constraint_.constrain(e) : e, E = this.rawValue_;\n this.equals_(E, b) && !l.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.rawValue_ = b, this.emitter.emit(\"change\", {\n options: l,\n previousRawValue: E,\n rawValue: b,\n sender: this\n }));\n }\n }\n class he {\n constructor(e) {\n this.emitter = new F(), this.value_ = e;\n }\n get rawValue() {\n return this.value_;\n }\n set rawValue(e) {\n this.setRawValue(e, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(e, t) {\n const l = t ?? {\n forceEmit: !1,\n last: !0\n }, b = this.value_;\n b === e && !l.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.value_ = e, this.emitter.emit(\"change\", {\n options: l,\n previousRawValue: b,\n rawValue: this.value_,\n sender: this\n }));\n }\n }\n function ee(i, e) {\n const t = e == null ? void 0 : e.constraint, l = e == null ? void 0 : e.equals;\n return !t && !l ? new he(i) : new me(i, e);\n }\n class X {\n constructor(e) {\n this.emitter = new F(), this.valMap_ = e;\n for (const t in this.valMap_)\n this.valMap_[t].emitter.on(\"change\", () => {\n this.emitter.emit(\"change\", {\n key: t,\n sender: this\n });\n });\n }\n static createCore(e) {\n return Object.keys(e).reduce((l, b) => Object.assign(l, {\n [b]: ee(e[b])\n }), {});\n }\n static fromObject(e) {\n const t = this.createCore(e);\n return new X(t);\n }\n get(e) {\n return this.valMap_[e].rawValue;\n }\n set(e, t) {\n this.valMap_[e].rawValue = t;\n }\n value(e) {\n return this.valMap_[e];\n }\n }\n function Pe(i, e) {\n const l = Object.keys(e).reduce((b, E) => {\n if (b === void 0)\n return;\n const k = e[E], B = k(i[E]);\n return B.succeeded ? Object.assign(Object.assign({}, b), { [E]: B.value }) : void 0;\n }, {});\n return l;\n }\n function fe(i, e) {\n return i.reduce((t, l) => {\n if (t === void 0)\n return;\n const b = e(l);\n if (!(!b.succeeded || b.value === void 0))\n return [...t, b.value];\n }, []);\n }\n function ae(i) {\n return i === null ? !1 : typeof i == \"object\";\n }\n function ne(i) {\n return (e) => (t) => {\n if (!e && t === void 0)\n return {\n succeeded: !1,\n value: void 0\n };\n if (e && t === void 0)\n return {\n succeeded: !0,\n value: void 0\n };\n const l = i(t);\n return l !== void 0 ? {\n succeeded: !0,\n value: l\n } : {\n succeeded: !1,\n value: void 0\n };\n };\n }\n function be(i) {\n return {\n custom: (e) => ne(e)(i),\n boolean: ne((e) => typeof e == \"boolean\" ? e : void 0)(i),\n number: ne((e) => typeof e == \"number\" ? e : void 0)(i),\n string: ne((e) => typeof e == \"string\" ? e : void 0)(i),\n function: ne((e) => typeof e == \"function\" ? e : void 0)(i),\n constant: (e) => ne((t) => t === e ? e : void 0)(i),\n raw: ne((e) => e)(i),\n object: (e) => ne((t) => {\n if (ae(t))\n return Pe(t, e);\n })(i),\n array: (e) => ne((t) => {\n if (Array.isArray(t))\n return fe(t, e);\n })(i)\n };\n }\n const M = {\n optional: be(!0),\n required: be(!1)\n };\n function le(i, e) {\n const t = M.required.object(e)(i);\n return t.succeeded ? t.value : void 0;\n }\n function Ve(i) {\n console.warn([\n `Missing '${i.key}' of ${i.target} in ${i.place}.`,\n \"Please rebuild plugins with the latest core package.\"\n ].join(\" \"));\n }\n function Be(i) {\n return i && i.parentElement && i.parentElement.removeChild(i), null;\n }\n class we {\n constructor(e) {\n this.value_ = e;\n }\n static create(e) {\n return [\n new we(e),\n (t, l) => {\n e.setRawValue(t, l);\n }\n ];\n }\n get emitter() {\n return this.value_.emitter;\n }\n get rawValue() {\n return this.value_.rawValue;\n }\n }\n const st = D(\"\");\n function jn(i, e) {\n return K(i, st(void 0, e));\n }\n class Ye extends X {\n constructor(e) {\n var t;\n super(e), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = we.create(ee(this.getGlobalDisabled_())), this.value(\"disabled\").emitter.on(\"change\", this.onDisabledChange_), this.value(\"parent\").emitter.on(\"change\", this.onParentChange_), (t = this.get(\"parent\")) === null || t === void 0 || t.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_);\n }\n static create(e) {\n var t, l, b;\n const E = e ?? {};\n return new Ye(X.createCore({\n disabled: (t = E.disabled) !== null && t !== void 0 ? t : !1,\n disposed: !1,\n hidden: (l = E.hidden) !== null && l !== void 0 ? l : !1,\n parent: (b = E.parent) !== null && b !== void 0 ? b : null\n }));\n }\n get globalDisabled() {\n return this.globalDisabled_;\n }\n bindClassModifiers(e) {\n N(this.globalDisabled_, jn(e, \"disabled\")), O(this, \"hidden\", jn(e, \"hidden\"));\n }\n bindDisabled(e) {\n N(this.globalDisabled_, (t) => {\n e.disabled = t;\n });\n }\n bindTabIndex(e) {\n N(this.globalDisabled_, (t) => {\n e.tabIndex = t ? -1 : 0;\n });\n }\n handleDispose(e) {\n this.value(\"disposed\").emitter.on(\"change\", (t) => {\n t && e();\n });\n }\n getGlobalDisabled_() {\n const e = this.get(\"parent\");\n return (e ? e.globalDisabled.rawValue : !1) || this.get(\"disabled\");\n }\n updateGlobalDisabled_() {\n this.setGlobalDisabled_(this.getGlobalDisabled_());\n }\n onDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentGlobalDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentChange_(e) {\n var t;\n const l = e.previousRawValue;\n l == null || l.globalDisabled.emitter.off(\"change\", this.onParentGlobalDisabledChange_), (t = this.get(\"parent\")) === null || t === void 0 || t.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_();\n }\n }\n function zn() {\n return [\"veryfirst\", \"first\", \"last\", \"verylast\"];\n }\n const cn = D(\"\"), mt = {\n veryfirst: \"vfst\",\n first: \"fst\",\n last: \"lst\",\n verylast: \"vlst\"\n };\n class Mt {\n constructor(e) {\n this.parent_ = null, this.blade = e.blade, this.view = e.view, this.viewProps = e.viewProps;\n const t = this.view.element;\n this.blade.value(\"positions\").emitter.on(\"change\", () => {\n zn().forEach((l) => {\n t.classList.remove(cn(void 0, mt[l]));\n }), this.blade.get(\"positions\").forEach((l) => {\n t.classList.add(cn(void 0, mt[l]));\n });\n }), this.viewProps.handleDispose(() => {\n Be(t);\n });\n }\n get parent() {\n return this.parent_;\n }\n set parent(e) {\n if (this.parent_ = e, !(\"parent\" in this.viewProps.valMap_)) {\n Ve({\n key: \"parent\",\n target: Ye.name,\n place: \"BladeController.parent\"\n });\n return;\n }\n this.viewProps.set(\"parent\", this.parent_ ? this.parent_.viewProps : null);\n }\n }\n const ze = \"http://www.w3.org/2000/svg\";\n function rt(i) {\n i.offsetHeight;\n }\n function un(i, e) {\n const t = i.style.transition;\n i.style.transition = \"none\", e(), i.style.transition = t;\n }\n function ft(i) {\n return i.ontouchstart !== void 0;\n }\n function Un() {\n return globalThis;\n }\n function mi() {\n return Un().document;\n }\n function Gn(i) {\n const e = i.ownerDocument.defaultView;\n return e && \"document\" in e ? i.getContext(\"2d\", {\n willReadFrequently: !0\n }) : null;\n }\n const Hn = {\n check: '',\n dropdown: '',\n p2dpad: ''\n };\n function xt(i, e) {\n const t = i.createElementNS(ze, \"svg\");\n return t.innerHTML = Hn[e], t;\n }\n function St(i, e, t) {\n i.insertBefore(e, i.children[t]);\n }\n function Kn(i) {\n i.parentElement && i.parentElement.removeChild(i);\n }\n function pn(i) {\n for (; i.children.length > 0; )\n i.removeChild(i.children[0]);\n }\n function $n(i) {\n for (; i.childNodes.length > 0; )\n i.removeChild(i.childNodes[0]);\n }\n function Et(i) {\n return i.relatedTarget ? i.relatedTarget : \"explicitOriginalTarget\" in i ? i.explicitOriginalTarget : null;\n }\n const vt = D(\"lbl\");\n function Lt(i, e) {\n const t = i.createDocumentFragment();\n return e.split(`\n`).map((b) => i.createTextNode(b)).forEach((b, E) => {\n E > 0 && t.appendChild(i.createElement(\"br\")), t.appendChild(b);\n }), t;\n }\n class L {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(vt()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(vt(\"l\")), O(t.props, \"label\", (E) => {\n _(E) ? this.element.classList.add(vt(void 0, \"nol\")) : (this.element.classList.remove(vt(void 0, \"nol\")), $n(l), l.appendChild(Lt(e, E)));\n }), this.element.appendChild(l), this.labelElement = l;\n const b = e.createElement(\"div\");\n b.classList.add(vt(\"v\")), this.element.appendChild(b), this.valueElement = b;\n }\n }\n class U extends Mt {\n constructor(e, t) {\n const l = t.valueController.viewProps;\n super(Object.assign(Object.assign({}, t), { view: new L(e, {\n props: t.props,\n viewProps: l\n }), viewProps: l })), this.props = t.props, this.valueController = t.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n const W = {\n id: \"button\",\n type: \"blade\",\n accept(i) {\n const e = M, t = le(i, {\n title: e.required.string,\n view: e.required.constant(\"button\"),\n label: e.optional.string\n });\n return t ? { params: t } : null;\n },\n controller(i) {\n return new U(i.document, {\n blade: i.blade,\n props: X.fromObject({\n label: i.params.label\n }),\n valueController: new ce(i.document, {\n props: X.fromObject({\n title: i.params.title\n }),\n viewProps: i.viewProps\n })\n });\n },\n api(i) {\n return !(i.controller instanceof U) || !(i.controller.valueController instanceof ce) ? null : new j(i.controller);\n }\n };\n class ie extends Mt {\n constructor(e) {\n super(e), this.value = e.value;\n }\n }\n function ye() {\n return new X({\n positions: ee([], {\n equals: y\n })\n });\n }\n class De extends X {\n constructor(e) {\n super(e);\n }\n static create(e) {\n const t = {\n completed: !0,\n expanded: e,\n expandedHeight: null,\n shouldFixHeight: !1,\n temporaryExpanded: null\n }, l = X.createCore(t);\n return new De(l);\n }\n get styleExpanded() {\n var e;\n return (e = this.get(\"temporaryExpanded\")) !== null && e !== void 0 ? e : this.get(\"expanded\");\n }\n get styleHeight() {\n if (!this.styleExpanded)\n return \"0\";\n const e = this.get(\"expandedHeight\");\n return this.get(\"shouldFixHeight\") && !_(e) ? `${e}px` : \"auto\";\n }\n bindExpandedClass(e, t) {\n const l = () => {\n this.styleExpanded ? e.classList.add(t) : e.classList.remove(t);\n };\n O(this, \"expanded\", l), O(this, \"temporaryExpanded\", l);\n }\n cleanUpTransition() {\n this.set(\"shouldFixHeight\", !1), this.set(\"expandedHeight\", null), this.set(\"completed\", !0);\n }\n }\n function Ht(i, e) {\n let t = 0;\n return un(e, () => {\n i.set(\"expandedHeight\", null), i.set(\"temporaryExpanded\", !0), rt(e), t = e.clientHeight, i.set(\"temporaryExpanded\", null), rt(e);\n }), t;\n }\n function hn(i, e) {\n e.style.height = i.styleHeight;\n }\n function Ue(i, e) {\n i.value(\"expanded\").emitter.on(\"beforechange\", () => {\n if (i.set(\"completed\", !1), _(i.get(\"expandedHeight\"))) {\n const t = Ht(i, e);\n t > 0 && i.set(\"expandedHeight\", t);\n }\n i.set(\"shouldFixHeight\", !0), rt(e);\n }), i.emitter.on(\"change\", () => {\n hn(i, e);\n }), hn(i, e), e.addEventListener(\"transitionend\", (t) => {\n t.propertyName === \"height\" && i.cleanUpTransition();\n });\n }\n class Ge extends a {\n constructor(e, t) {\n super(e), this.rackApi_ = t;\n }\n }\n function qs(i, e) {\n return i.addBlade(Object.assign(Object.assign({}, e), { view: \"button\" }));\n }\n function Qs(i, e) {\n return i.addBlade(Object.assign(Object.assign({}, e), { view: \"folder\" }));\n }\n function Zs(i, e) {\n const t = e ?? {};\n return i.addBlade(Object.assign(Object.assign({}, t), { view: \"separator\" }));\n }\n function fi(i, e) {\n return i.addBlade(Object.assign(Object.assign({}, e), { view: \"tab\" }));\n }\n class At {\n constructor(e) {\n this.emitter = new F(), this.items_ = [], this.cache_ = /* @__PURE__ */ new Set(), this.onSubListAdd_ = this.onSubListAdd_.bind(this), this.onSubListRemove_ = this.onSubListRemove_.bind(this), this.extract_ = e;\n }\n get items() {\n return this.items_;\n }\n allItems() {\n return Array.from(this.cache_);\n }\n find(e) {\n for (const t of this.allItems())\n if (e(t))\n return t;\n return null;\n }\n includes(e) {\n return this.cache_.has(e);\n }\n add(e, t) {\n if (this.includes(e))\n throw S.shouldNeverHappen();\n const l = t !== void 0 ? t : this.items_.length;\n this.items_.splice(l, 0, e), this.cache_.add(e);\n const b = this.extract_(e);\n b && (b.emitter.on(\"add\", this.onSubListAdd_), b.emitter.on(\"remove\", this.onSubListRemove_), b.allItems().forEach((E) => {\n this.cache_.add(E);\n })), this.emitter.emit(\"add\", {\n index: l,\n item: e,\n root: this,\n target: this\n });\n }\n remove(e) {\n const t = this.items_.indexOf(e);\n if (t < 0)\n return;\n this.items_.splice(t, 1), this.cache_.delete(e);\n const l = this.extract_(e);\n l && (l.emitter.off(\"add\", this.onSubListAdd_), l.emitter.off(\"remove\", this.onSubListRemove_)), this.emitter.emit(\"remove\", {\n index: t,\n item: e,\n root: this,\n target: this\n });\n }\n onSubListAdd_(e) {\n this.cache_.add(e.item), this.emitter.emit(\"add\", {\n index: e.index,\n item: e.item,\n root: this,\n target: e.target\n });\n }\n onSubListRemove_(e) {\n this.cache_.delete(e.item), this.emitter.emit(\"remove\", {\n index: e.index,\n item: e.item,\n root: this,\n target: e.target\n });\n }\n }\n class vi extends a {\n constructor(e) {\n super(e), this.onBindingChange_ = this.onBindingChange_.bind(this), this.emitter_ = new F(), this.controller_.binding.emitter.on(\"change\", this.onBindingChange_);\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n refresh() {\n this.controller_.binding.read();\n }\n onBindingChange_(e) {\n const t = e.sender.target.read();\n this.emitter_.emit(\"change\", {\n event: new p(this, t, this.controller_.binding.target.presetKey, e.options.last)\n });\n }\n }\n class je extends U {\n constructor(e, t) {\n super(e, t), this.binding = t.binding;\n }\n }\n class bi extends a {\n constructor(e) {\n super(e), this.onBindingUpdate_ = this.onBindingUpdate_.bind(this), this.emitter_ = new F(), this.controller_.binding.emitter.on(\"update\", this.onBindingUpdate_);\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n refresh() {\n this.controller_.binding.read();\n }\n onBindingUpdate_(e) {\n const t = e.sender.target.read();\n this.emitter_.emit(\"update\", {\n event: new h(this, t, this.controller_.binding.target.presetKey)\n });\n }\n }\n class ot extends U {\n constructor(e, t) {\n super(e, t), this.binding = t.binding, this.viewProps.bindDisabled(this.binding.ticker), this.viewProps.handleDispose(() => {\n this.binding.dispose();\n });\n }\n }\n function is(i) {\n return i instanceof Xn ? i.apiSet_ : i instanceof Ge ? i.rackApi_.apiSet_ : null;\n }\n function dn(i, e) {\n const t = i.find((l) => l.controller_ === e);\n if (!t)\n throw S.shouldNeverHappen();\n return t;\n }\n function ss(i, e, t) {\n if (!R.isBindable(i))\n throw S.notBindable();\n return new R(i, e, t);\n }\n class Xn extends a {\n constructor(e, t) {\n super(e), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this), this.onRackInputChange_ = this.onRackInputChange_.bind(this), this.onRackMonitorUpdate_ = this.onRackMonitorUpdate_.bind(this), this.emitter_ = new F(), this.apiSet_ = new At(is), this.pool_ = t;\n const l = this.controller_.rack;\n l.emitter.on(\"add\", this.onRackAdd_), l.emitter.on(\"remove\", this.onRackRemove_), l.emitter.on(\"inputchange\", this.onRackInputChange_), l.emitter.on(\"monitorupdate\", this.onRackMonitorUpdate_), l.children.forEach((b) => {\n this.setUpApi_(b);\n });\n }\n get children() {\n return this.controller_.rack.children.map((e) => dn(this.apiSet_, e));\n }\n addInput(e, t, l) {\n const b = l ?? {}, E = this.controller_.view.element.ownerDocument, k = this.pool_.createInput(E, ss(e, t, b.presetKey), b), B = new vi(k);\n return this.add(B, b.index);\n }\n addMonitor(e, t, l) {\n const b = l ?? {}, E = this.controller_.view.element.ownerDocument, k = this.pool_.createMonitor(E, ss(e, t), b), B = new bi(k);\n return this.add(B, b.index);\n }\n addFolder(e) {\n return Qs(this, e);\n }\n addButton(e) {\n return qs(this, e);\n }\n addSeparator(e) {\n return Zs(this, e);\n }\n addTab(e) {\n return fi(this, e);\n }\n add(e, t) {\n this.controller_.rack.add(e.controller_, t);\n const l = this.apiSet_.find((b) => b.controller_ === e.controller_);\n return l && this.apiSet_.remove(l), this.apiSet_.add(e), e;\n }\n remove(e) {\n this.controller_.rack.remove(e.controller_);\n }\n addBlade(e) {\n const t = this.controller_.view.element.ownerDocument, l = this.pool_.createBlade(t, e), b = this.pool_.createBladeApi(l);\n return this.add(b, e.index);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n setUpApi_(e) {\n this.apiSet_.find((l) => l.controller_ === e) || this.apiSet_.add(this.pool_.createBladeApi(e));\n }\n onRackAdd_(e) {\n this.setUpApi_(e.bladeController);\n }\n onRackRemove_(e) {\n if (e.isRoot) {\n const t = dn(this.apiSet_, e.bladeController);\n this.apiSet_.remove(t);\n }\n }\n onRackInputChange_(e) {\n const t = e.bladeController;\n if (t instanceof je) {\n const l = dn(this.apiSet_, t), b = t.binding;\n this.emitter_.emit(\"change\", {\n event: new p(l, b.target.read(), b.target.presetKey, e.options.last)\n });\n } else if (t instanceof ie) {\n const l = dn(this.apiSet_, t);\n this.emitter_.emit(\"change\", {\n event: new p(l, t.value.rawValue, void 0, e.options.last)\n });\n }\n }\n onRackMonitorUpdate_(e) {\n if (!(e.bladeController instanceof ot))\n throw S.shouldNeverHappen();\n const t = dn(this.apiSet_, e.bladeController), l = e.bladeController.binding;\n this.emitter_.emit(\"update\", {\n event: new h(t, l.target.read(), l.target.presetKey)\n });\n }\n }\n class gi extends Ge {\n constructor(e, t) {\n super(e, new Xn(e.rackController, t)), this.emitter_ = new F(), this.controller_.foldable.value(\"expanded\").emitter.on(\"change\", (l) => {\n this.emitter_.emit(\"fold\", {\n event: new d(this, l.sender.rawValue)\n });\n }), this.rackApi_.on(\"change\", (l) => {\n this.emitter_.emit(\"change\", {\n event: l\n });\n }), this.rackApi_.on(\"update\", (l) => {\n this.emitter_.emit(\"update\", {\n event: l\n });\n });\n }\n get expanded() {\n return this.controller_.foldable.get(\"expanded\");\n }\n set expanded(e) {\n this.controller_.foldable.set(\"expanded\", e);\n }\n get title() {\n return this.controller_.props.get(\"title\");\n }\n set title(e) {\n this.controller_.props.set(\"title\", e);\n }\n get children() {\n return this.rackApi_.children;\n }\n addInput(e, t, l) {\n return this.rackApi_.addInput(e, t, l);\n }\n addMonitor(e, t, l) {\n return this.rackApi_.addMonitor(e, t, l);\n }\n addFolder(e) {\n return this.rackApi_.addFolder(e);\n }\n addButton(e) {\n return this.rackApi_.addButton(e);\n }\n addSeparator(e) {\n return this.rackApi_.addSeparator(e);\n }\n addTab(e) {\n return this.rackApi_.addTab(e);\n }\n add(e, t) {\n return this.rackApi_.add(e, t);\n }\n remove(e) {\n this.rackApi_.remove(e);\n }\n addBlade(e) {\n return this.rackApi_.addBlade(e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n }\n class _i extends Mt {\n constructor(e) {\n super({\n blade: e.blade,\n view: e.view,\n viewProps: e.rackController.viewProps\n }), this.rackController = e.rackController;\n }\n }\n class Ws {\n constructor(e, t) {\n const l = D(t.viewName);\n this.element = e.createElement(\"div\"), this.element.classList.add(l()), t.viewProps.bindClassModifiers(this.element);\n }\n }\n function Js(i, e) {\n for (let t = 0; t < i.length; t++) {\n const l = i[t];\n if (l instanceof je && l.binding === e)\n return l;\n }\n return null;\n }\n function er(i, e) {\n for (let t = 0; t < i.length; t++) {\n const l = i[t];\n if (l instanceof ot && l.binding === e)\n return l;\n }\n return null;\n }\n function tr(i, e) {\n for (let t = 0; t < i.length; t++) {\n const l = i[t];\n if (l instanceof ie && l.value === e)\n return l;\n }\n return null;\n }\n function wi(i) {\n return i instanceof mn ? i.rack : i instanceof _i ? i.rackController.rack : null;\n }\n function nr(i) {\n const e = wi(i);\n return e ? e.bcSet_ : null;\n }\n class ir {\n constructor(e) {\n var t, l;\n this.onBladePositionsChange_ = this.onBladePositionsChange_.bind(this), this.onSetAdd_ = this.onSetAdd_.bind(this), this.onSetRemove_ = this.onSetRemove_.bind(this), this.onChildDispose_ = this.onChildDispose_.bind(this), this.onChildPositionsChange_ = this.onChildPositionsChange_.bind(this), this.onChildInputChange_ = this.onChildInputChange_.bind(this), this.onChildMonitorUpdate_ = this.onChildMonitorUpdate_.bind(this), this.onChildValueChange_ = this.onChildValueChange_.bind(this), this.onChildViewPropsChange_ = this.onChildViewPropsChange_.bind(this), this.onDescendantLayout_ = this.onDescendantLayout_.bind(this), this.onDescendantInputChange_ = this.onDescendantInputChange_.bind(this), this.onDescendantMonitorUpdate_ = this.onDescendantMonitorUpdate_.bind(this), this.emitter = new F(), this.blade_ = (t = e.blade) !== null && t !== void 0 ? t : null, (l = this.blade_) === null || l === void 0 || l.value(\"positions\").emitter.on(\"change\", this.onBladePositionsChange_), this.viewProps = e.viewProps, this.bcSet_ = new At(nr), this.bcSet_.emitter.on(\"add\", this.onSetAdd_), this.bcSet_.emitter.on(\"remove\", this.onSetRemove_);\n }\n get children() {\n return this.bcSet_.items;\n }\n add(e, t) {\n var l;\n (l = e.parent) === null || l === void 0 || l.remove(e), P(e, \"parent\") ? e.parent = this : (e.parent_ = this, Ve({\n key: \"parent\",\n target: \"BladeController\",\n place: \"BladeRack.add\"\n })), this.bcSet_.add(e, t);\n }\n remove(e) {\n P(e, \"parent\") ? e.parent = null : (e.parent_ = null, Ve({\n key: \"parent\",\n target: \"BladeController\",\n place: \"BladeRack.remove\"\n })), this.bcSet_.remove(e);\n }\n find(e) {\n return this.bcSet_.allItems().filter((t) => t instanceof e);\n }\n onSetAdd_(e) {\n this.updatePositions_();\n const t = e.target === e.root;\n if (this.emitter.emit(\"add\", {\n bladeController: e.item,\n index: e.index,\n isRoot: t,\n sender: this\n }), !t)\n return;\n const l = e.item;\n if (l.viewProps.emitter.on(\"change\", this.onChildViewPropsChange_), l.blade.value(\"positions\").emitter.on(\"change\", this.onChildPositionsChange_), l.viewProps.handleDispose(this.onChildDispose_), l instanceof je)\n l.binding.emitter.on(\"change\", this.onChildInputChange_);\n else if (l instanceof ot)\n l.binding.emitter.on(\"update\", this.onChildMonitorUpdate_);\n else if (l instanceof ie)\n l.value.emitter.on(\"change\", this.onChildValueChange_);\n else {\n const b = wi(l);\n if (b) {\n const E = b.emitter;\n E.on(\"layout\", this.onDescendantLayout_), E.on(\"inputchange\", this.onDescendantInputChange_), E.on(\"monitorupdate\", this.onDescendantMonitorUpdate_);\n }\n }\n }\n onSetRemove_(e) {\n this.updatePositions_();\n const t = e.target === e.root;\n if (this.emitter.emit(\"remove\", {\n bladeController: e.item,\n isRoot: t,\n sender: this\n }), !t)\n return;\n const l = e.item;\n if (l instanceof je)\n l.binding.emitter.off(\"change\", this.onChildInputChange_);\n else if (l instanceof ot)\n l.binding.emitter.off(\"update\", this.onChildMonitorUpdate_);\n else if (l instanceof ie)\n l.value.emitter.off(\"change\", this.onChildValueChange_);\n else {\n const b = wi(l);\n if (b) {\n const E = b.emitter;\n E.off(\"layout\", this.onDescendantLayout_), E.off(\"inputchange\", this.onDescendantInputChange_), E.off(\"monitorupdate\", this.onDescendantMonitorUpdate_);\n }\n }\n }\n updatePositions_() {\n const e = this.bcSet_.items.filter((b) => !b.viewProps.get(\"hidden\")), t = e[0], l = e[e.length - 1];\n this.bcSet_.items.forEach((b) => {\n const E = [];\n b === t && (E.push(\"first\"), (!this.blade_ || this.blade_.get(\"positions\").includes(\"veryfirst\")) && E.push(\"veryfirst\")), b === l && (E.push(\"last\"), (!this.blade_ || this.blade_.get(\"positions\").includes(\"verylast\")) && E.push(\"verylast\")), b.blade.set(\"positions\", E);\n });\n }\n onChildPositionsChange_() {\n this.updatePositions_(), this.emitter.emit(\"layout\", {\n sender: this\n });\n }\n onChildViewPropsChange_(e) {\n this.updatePositions_(), this.emitter.emit(\"layout\", {\n sender: this\n });\n }\n onChildDispose_() {\n this.bcSet_.items.filter((t) => t.viewProps.get(\"disposed\")).forEach((t) => {\n this.bcSet_.remove(t);\n });\n }\n onChildInputChange_(e) {\n const t = Js(this.find(je), e.sender);\n if (!t)\n throw S.alreadyDisposed();\n this.emitter.emit(\"inputchange\", {\n bladeController: t,\n options: e.options,\n sender: this\n });\n }\n onChildMonitorUpdate_(e) {\n const t = er(this.find(ot), e.sender);\n if (!t)\n throw S.alreadyDisposed();\n this.emitter.emit(\"monitorupdate\", {\n bladeController: t,\n sender: this\n });\n }\n onChildValueChange_(e) {\n const t = tr(this.find(ie), e.sender);\n if (!t)\n throw S.alreadyDisposed();\n this.emitter.emit(\"inputchange\", {\n bladeController: t,\n options: e.options,\n sender: this\n });\n }\n onDescendantLayout_(e) {\n this.updatePositions_(), this.emitter.emit(\"layout\", {\n sender: this\n });\n }\n onDescendantInputChange_(e) {\n this.emitter.emit(\"inputchange\", {\n bladeController: e.bladeController,\n options: e.options,\n sender: this\n });\n }\n onDescendantMonitorUpdate_(e) {\n this.emitter.emit(\"monitorupdate\", {\n bladeController: e.bladeController,\n sender: this\n });\n }\n onBladePositionsChange_() {\n this.updatePositions_();\n }\n }\n class mn extends Mt {\n constructor(e, t) {\n super(Object.assign(Object.assign({}, t), { view: new Ws(e, {\n viewName: \"brk\",\n viewProps: t.viewProps\n }) })), this.onRackAdd_ = this.onRackAdd_.bind(this), this.onRackRemove_ = this.onRackRemove_.bind(this);\n const l = new ir({\n blade: t.root ? void 0 : t.blade,\n viewProps: t.viewProps\n });\n l.emitter.on(\"add\", this.onRackAdd_), l.emitter.on(\"remove\", this.onRackRemove_), this.rack = l, this.viewProps.handleDispose(() => {\n for (let b = this.rack.children.length - 1; b >= 0; b--)\n this.rack.children[b].viewProps.set(\"disposed\", !0);\n });\n }\n onRackAdd_(e) {\n e.isRoot && St(this.view.element, e.bladeController.view.element, e.index);\n }\n onRackRemove_(e) {\n e.isRoot && Kn(e.bladeController.view.element);\n }\n }\n const rs = D(\"cnt\");\n class sr {\n constructor(e, t) {\n var l;\n this.className_ = D((l = t.viewName) !== null && l !== void 0 ? l : \"fld\"), this.element = e.createElement(\"div\"), this.element.classList.add(this.className_(), rs()), t.viewProps.bindClassModifiers(this.element), this.foldable_ = t.foldable, this.foldable_.bindExpandedClass(this.element, this.className_(void 0, \"expanded\")), O(this.foldable_, \"completed\", K(this.element, this.className_(void 0, \"cpl\")));\n const b = e.createElement(\"button\");\n b.classList.add(this.className_(\"b\")), O(t.props, \"title\", (J) => {\n _(J) ? this.element.classList.add(this.className_(void 0, \"not\")) : this.element.classList.remove(this.className_(void 0, \"not\"));\n }), t.viewProps.bindDisabled(b), this.element.appendChild(b), this.buttonElement = b;\n const E = e.createElement(\"div\");\n E.classList.add(this.className_(\"i\")), this.element.appendChild(E);\n const k = e.createElement(\"div\");\n k.classList.add(this.className_(\"t\")), q(t.props.value(\"title\"), k), this.buttonElement.appendChild(k), this.titleElement = k;\n const B = e.createElement(\"div\");\n B.classList.add(this.className_(\"m\")), this.buttonElement.appendChild(B);\n const Q = t.containerElement;\n Q.classList.add(this.className_(\"c\")), this.element.appendChild(Q), this.containerElement = Q;\n }\n }\n class Yn extends _i {\n constructor(e, t) {\n var l;\n const b = De.create((l = t.expanded) !== null && l !== void 0 ? l : !0), E = new mn(e, {\n blade: t.blade,\n root: t.root,\n viewProps: t.viewProps\n });\n super(Object.assign(Object.assign({}, t), { rackController: E, view: new sr(e, {\n containerElement: E.view.element,\n foldable: b,\n props: t.props,\n viewName: t.root ? \"rot\" : void 0,\n viewProps: t.viewProps\n }) })), this.onTitleClick_ = this.onTitleClick_.bind(this), this.props = t.props, this.foldable = b, Ue(this.foldable, this.view.containerElement), this.rackController.rack.emitter.on(\"add\", () => {\n this.foldable.cleanUpTransition();\n }), this.rackController.rack.emitter.on(\"remove\", () => {\n this.foldable.cleanUpTransition();\n }), this.view.buttonElement.addEventListener(\"click\", this.onTitleClick_);\n }\n get document() {\n return this.view.element.ownerDocument;\n }\n onTitleClick_() {\n this.foldable.set(\"expanded\", !this.foldable.get(\"expanded\"));\n }\n }\n const rr = {\n id: \"folder\",\n type: \"blade\",\n accept(i) {\n const e = M, t = le(i, {\n title: e.required.string,\n view: e.required.constant(\"folder\"),\n expanded: e.optional.boolean\n });\n return t ? { params: t } : null;\n },\n controller(i) {\n return new Yn(i.document, {\n blade: i.blade,\n expanded: i.params.expanded,\n props: X.fromObject({\n title: i.params.title\n }),\n viewProps: i.viewProps\n });\n },\n api(i) {\n return i.controller instanceof Yn ? new gi(i.controller, i.pool) : null;\n }\n };\n class Kt extends ie {\n constructor(e, t) {\n const l = t.valueController.viewProps;\n super(Object.assign(Object.assign({}, t), { value: t.valueController.value, view: new L(e, {\n props: t.props,\n viewProps: l\n }), viewProps: l })), this.props = t.props, this.valueController = t.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n class os extends a {\n }\n const yi = D(\"spr\");\n class or {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(yi()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"hr\");\n l.classList.add(yi(\"r\")), this.element.appendChild(l);\n }\n }\n class fn extends Mt {\n constructor(e, t) {\n super(Object.assign(Object.assign({}, t), { view: new or(e, {\n viewProps: t.viewProps\n }) }));\n }\n }\n const ar = {\n id: \"separator\",\n type: \"blade\",\n accept(i) {\n const t = le(i, {\n view: M.required.constant(\"separator\")\n });\n return t ? { params: t } : null;\n },\n controller(i) {\n return new fn(i.document, {\n blade: i.blade,\n viewProps: i.viewProps\n });\n },\n api(i) {\n return i.controller instanceof fn ? new os(i.controller) : null;\n }\n }, Re = D(\"tbi\");\n class lr {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(Re()), t.viewProps.bindClassModifiers(this.element), O(t.props, \"selected\", (E) => {\n E ? this.element.classList.add(Re(void 0, \"sel\")) : this.element.classList.remove(Re(void 0, \"sel\"));\n });\n const l = e.createElement(\"button\");\n l.classList.add(Re(\"b\")), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.buttonElement = l;\n const b = e.createElement(\"div\");\n b.classList.add(Re(\"t\")), q(t.props.value(\"title\"), b), this.buttonElement.appendChild(b), this.titleElement = b;\n }\n }\n class qn {\n constructor(e, t) {\n this.emitter = new F(), this.onClick_ = this.onClick_.bind(this), this.props = t.props, this.viewProps = t.viewProps, this.view = new lr(e, {\n props: t.props,\n viewProps: t.viewProps\n }), this.view.buttonElement.addEventListener(\"click\", this.onClick_);\n }\n onClick_() {\n this.emitter.emit(\"click\", {\n sender: this\n });\n }\n }\n class as {\n constructor(e, t) {\n this.onItemClick_ = this.onItemClick_.bind(this), this.ic_ = new qn(e, {\n props: t.itemProps,\n viewProps: Ye.create()\n }), this.ic_.emitter.on(\"click\", this.onItemClick_), this.cc_ = new mn(e, {\n blade: ye(),\n viewProps: Ye.create()\n }), this.props = t.props, O(this.props, \"selected\", (l) => {\n this.itemController.props.set(\"selected\", l), this.contentController.viewProps.set(\"hidden\", !l);\n });\n }\n get itemController() {\n return this.ic_;\n }\n get contentController() {\n return this.cc_;\n }\n onItemClick_() {\n this.props.set(\"selected\", !0);\n }\n }\n class xi {\n constructor(e, t) {\n this.controller_ = e, this.rackApi_ = t;\n }\n get title() {\n var e;\n return (e = this.controller_.itemController.props.get(\"title\")) !== null && e !== void 0 ? e : \"\";\n }\n set title(e) {\n this.controller_.itemController.props.set(\"title\", e);\n }\n get selected() {\n return this.controller_.props.get(\"selected\");\n }\n set selected(e) {\n this.controller_.props.set(\"selected\", e);\n }\n get children() {\n return this.rackApi_.children;\n }\n addButton(e) {\n return this.rackApi_.addButton(e);\n }\n addFolder(e) {\n return this.rackApi_.addFolder(e);\n }\n addSeparator(e) {\n return this.rackApi_.addSeparator(e);\n }\n addTab(e) {\n return this.rackApi_.addTab(e);\n }\n add(e, t) {\n this.rackApi_.add(e, t);\n }\n remove(e) {\n this.rackApi_.remove(e);\n }\n addInput(e, t, l) {\n return this.rackApi_.addInput(e, t, l);\n }\n addMonitor(e, t, l) {\n return this.rackApi_.addMonitor(e, t, l);\n }\n addBlade(e) {\n return this.rackApi_.addBlade(e);\n }\n }\n class ls extends Ge {\n constructor(e, t) {\n super(e, new Xn(e.rackController, t)), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.onSelect_ = this.onSelect_.bind(this), this.emitter_ = new F(), this.pageApiMap_ = /* @__PURE__ */ new Map(), this.rackApi_.on(\"change\", (l) => {\n this.emitter_.emit(\"change\", {\n event: l\n });\n }), this.rackApi_.on(\"update\", (l) => {\n this.emitter_.emit(\"update\", {\n event: l\n });\n }), this.controller_.tab.selectedIndex.emitter.on(\"change\", this.onSelect_), this.controller_.pageSet.emitter.on(\"add\", this.onPageAdd_), this.controller_.pageSet.emitter.on(\"remove\", this.onPageRemove_), this.controller_.pageSet.items.forEach((l) => {\n this.setUpPageApi_(l);\n });\n }\n get pages() {\n return this.controller_.pageSet.items.map((e) => {\n const t = this.pageApiMap_.get(e);\n if (!t)\n throw S.shouldNeverHappen();\n return t;\n });\n }\n addPage(e) {\n const t = this.controller_.view.element.ownerDocument, l = new as(t, {\n itemProps: X.fromObject({\n selected: !1,\n title: e.title\n }),\n props: X.fromObject({\n selected: !1\n })\n });\n this.controller_.add(l, e.index);\n const b = this.pageApiMap_.get(l);\n if (!b)\n throw S.shouldNeverHappen();\n return b;\n }\n removePage(e) {\n this.controller_.remove(e);\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n setUpPageApi_(e) {\n const t = this.rackApi_.apiSet_.find((b) => b.controller_ === e.contentController);\n if (!t)\n throw S.shouldNeverHappen();\n const l = new xi(e, t);\n this.pageApiMap_.set(e, l);\n }\n onPageAdd_(e) {\n this.setUpPageApi_(e.item);\n }\n onPageRemove_(e) {\n if (!this.pageApiMap_.get(e.item))\n throw S.shouldNeverHappen();\n this.pageApiMap_.delete(e.item);\n }\n onSelect_(e) {\n this.emitter_.emit(\"select\", {\n event: new g(this, e.rawValue)\n });\n }\n }\n const cs = -1;\n class cr {\n constructor() {\n this.onItemSelectedChange_ = this.onItemSelectedChange_.bind(this), this.empty = ee(!0), this.selectedIndex = ee(cs), this.items_ = [];\n }\n add(e, t) {\n const l = t ?? this.items_.length;\n this.items_.splice(l, 0, e), e.emitter.on(\"change\", this.onItemSelectedChange_), this.keepSelection_();\n }\n remove(e) {\n const t = this.items_.indexOf(e);\n t < 0 || (this.items_.splice(t, 1), e.emitter.off(\"change\", this.onItemSelectedChange_), this.keepSelection_());\n }\n keepSelection_() {\n if (this.items_.length === 0) {\n this.selectedIndex.rawValue = cs, this.empty.rawValue = !0;\n return;\n }\n const e = this.items_.findIndex((t) => t.rawValue);\n e < 0 ? (this.items_.forEach((t, l) => {\n t.rawValue = l === 0;\n }), this.selectedIndex.rawValue = 0) : (this.items_.forEach((t, l) => {\n t.rawValue = l === e;\n }), this.selectedIndex.rawValue = e), this.empty.rawValue = !1;\n }\n onItemSelectedChange_(e) {\n if (e.rawValue) {\n const t = this.items_.findIndex((l) => l === e.sender);\n this.items_.forEach((l, b) => {\n l.rawValue = b === t;\n }), this.selectedIndex.rawValue = t;\n } else\n this.keepSelection_();\n }\n }\n const $t = D(\"tab\");\n class Xt {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add($t(), rs()), t.viewProps.bindClassModifiers(this.element), N(t.empty, K(this.element, $t(void 0, \"nop\")));\n const l = e.createElement(\"div\");\n l.classList.add($t(\"t\")), this.element.appendChild(l), this.itemsElement = l;\n const b = e.createElement(\"div\");\n b.classList.add($t(\"i\")), this.element.appendChild(b);\n const E = t.contentsElement;\n E.classList.add($t(\"c\")), this.element.appendChild(E), this.contentsElement = E;\n }\n }\n class vn extends _i {\n constructor(e, t) {\n const l = new mn(e, {\n blade: t.blade,\n viewProps: t.viewProps\n }), b = new cr();\n super({\n blade: t.blade,\n rackController: l,\n view: new Xt(e, {\n contentsElement: l.view.element,\n empty: b.empty,\n viewProps: t.viewProps\n })\n }), this.onPageAdd_ = this.onPageAdd_.bind(this), this.onPageRemove_ = this.onPageRemove_.bind(this), this.pageSet_ = new At(() => null), this.pageSet_.emitter.on(\"add\", this.onPageAdd_), this.pageSet_.emitter.on(\"remove\", this.onPageRemove_), this.tab = b;\n }\n get pageSet() {\n return this.pageSet_;\n }\n add(e, t) {\n this.pageSet_.add(e, t);\n }\n remove(e) {\n this.pageSet_.remove(this.pageSet_.items[e]);\n }\n onPageAdd_(e) {\n const t = e.item;\n St(this.view.itemsElement, t.itemController.view.element, e.index), t.itemController.viewProps.set(\"parent\", this.viewProps), this.rackController.rack.add(t.contentController, e.index), this.tab.add(t.props.value(\"selected\"));\n }\n onPageRemove_(e) {\n const t = e.item;\n Kn(t.itemController.view.element), t.itemController.viewProps.set(\"parent\", null), this.rackController.rack.remove(t.contentController), this.tab.remove(t.props.value(\"selected\"));\n }\n }\n const Ei = {\n id: \"tab\",\n type: \"blade\",\n accept(i) {\n const e = M, t = le(i, {\n pages: e.required.array(e.required.object({ title: e.required.string })),\n view: e.required.constant(\"tab\")\n });\n return !t || t.pages.length === 0 ? null : { params: t };\n },\n controller(i) {\n const e = new vn(i.document, {\n blade: i.blade,\n viewProps: i.viewProps\n });\n return i.params.pages.forEach((t) => {\n const l = new as(i.document, {\n itemProps: X.fromObject({\n selected: !1,\n title: t.title\n }),\n props: X.fromObject({\n selected: !1\n })\n });\n e.add(l);\n }), e;\n },\n api(i) {\n return i.controller instanceof vn ? new ls(i.controller, i.pool) : null;\n }\n };\n function ur(i, e) {\n const t = i.accept(e.params);\n if (!t)\n return null;\n const l = M.optional.boolean(e.params.disabled).value, b = M.optional.boolean(e.params.hidden).value;\n return i.controller({\n blade: ye(),\n document: e.document,\n params: Object.assign(Object.assign({}, t.params), { disabled: l, hidden: b }),\n viewProps: Ye.create({\n disabled: l,\n hidden: b\n })\n });\n }\n class us {\n constructor() {\n this.disabled = !1, this.emitter = new F();\n }\n dispose() {\n }\n tick() {\n this.disabled || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class Ci {\n constructor(e, t) {\n this.disabled_ = !1, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = e, this.emitter = new F(), this.interval_ = t, this.setTimer_();\n }\n get disabled() {\n return this.disabled_;\n }\n set disabled(e) {\n this.disabled_ = e, this.disabled_ ? this.clearTimer_() : this.setTimer_();\n }\n dispose() {\n this.clearTimer_();\n }\n clearTimer_() {\n if (this.timerId_ === null)\n return;\n const e = this.doc_.defaultView;\n e && e.clearInterval(this.timerId_), this.timerId_ = null;\n }\n setTimer_() {\n if (this.clearTimer_(), this.interval_ <= 0)\n return;\n const e = this.doc_.defaultView;\n e && (this.timerId_ = e.setInterval(this.onTick_, this.interval_));\n }\n onTick_() {\n this.disabled_ || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class Qn {\n constructor(e) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.reader = e.reader, this.writer = e.writer, this.emitter = new F(), this.value = e.value, this.value.emitter.on(\"change\", this.onValueChange_), this.target = e.target, this.read();\n }\n read() {\n const e = this.target.read();\n e !== void 0 && (this.value.rawValue = this.reader(e));\n }\n write_(e) {\n this.writer(this.target, e);\n }\n onValueChange_(e) {\n this.write_(e.rawValue), this.emitter.emit(\"change\", {\n options: e.options,\n rawValue: e.rawValue,\n sender: this\n });\n }\n }\n function Me(i, e) {\n for (; i.length < e; )\n i.push(void 0);\n }\n function ps(i) {\n const e = [];\n return Me(e, i), ee(e);\n }\n function Yt(i) {\n const e = i.indexOf(void 0);\n return e < 0 ? i : i.slice(0, e);\n }\n function qe(i, e) {\n const t = [...Yt(i), e];\n return t.length > i.length ? t.splice(0, t.length - i.length) : Me(t, i.length), t;\n }\n class pr {\n constructor(e) {\n this.onTick_ = this.onTick_.bind(this), this.reader_ = e.reader, this.target = e.target, this.emitter = new F(), this.value = e.value, this.ticker = e.ticker, this.ticker.emitter.on(\"tick\", this.onTick_), this.read();\n }\n dispose() {\n this.ticker.dispose();\n }\n read() {\n const e = this.target.read();\n if (e === void 0)\n return;\n const t = this.value.rawValue, l = this.reader_(e);\n this.value.rawValue = qe(t, l), this.emitter.emit(\"update\", {\n rawValue: l,\n sender: this\n });\n }\n onTick_(e) {\n this.read();\n }\n }\n class bn {\n constructor(e) {\n this.constraints = e;\n }\n constrain(e) {\n return this.constraints.reduce((t, l) => l.constrain(t), e);\n }\n }\n function tt(i, e) {\n if (i instanceof e)\n return i;\n if (i instanceof bn) {\n const t = i.constraints.reduce((l, b) => l || (b instanceof e ? b : null), null);\n if (t)\n return t;\n }\n return null;\n }\n class qt {\n constructor(e) {\n this.values = X.fromObject({\n max: e.max,\n min: e.min\n });\n }\n constrain(e) {\n const t = this.values.get(\"max\"), l = this.values.get(\"min\");\n return Math.min(Math.max(e, l), t);\n }\n }\n class gn {\n constructor(e) {\n this.values = X.fromObject({\n options: e\n });\n }\n get options() {\n return this.values.get(\"options\");\n }\n constrain(e) {\n const t = this.values.get(\"options\");\n return t.length === 0 || t.filter((b) => b.value === e).length > 0 ? e : t[0].value;\n }\n }\n class Pi {\n constructor(e) {\n this.values = X.fromObject({\n max: e.max,\n min: e.min\n });\n }\n get maxValue() {\n return this.values.get(\"max\");\n }\n get minValue() {\n return this.values.get(\"min\");\n }\n constrain(e) {\n const t = this.values.get(\"max\"), l = this.values.get(\"min\");\n let b = e;\n return _(l) || (b = Math.max(b, l)), _(t) || (b = Math.min(b, t)), b;\n }\n }\n class Zn {\n constructor(e, t = 0) {\n this.step = e, this.origin = t;\n }\n constrain(e) {\n const t = this.origin % this.step, l = Math.round((e - t) / this.step);\n return t + l * this.step;\n }\n }\n const Qt = D(\"lst\");\n class hs {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.props_ = t.props, this.element = e.createElement(\"div\"), this.element.classList.add(Qt()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"select\");\n l.classList.add(Qt(\"s\")), O(this.props_, \"options\", (E) => {\n pn(l), E.forEach((k, B) => {\n const Q = e.createElement(\"option\");\n Q.dataset.index = String(B), Q.textContent = k.text, Q.value = String(k.value), l.appendChild(Q);\n });\n }), t.viewProps.bindDisabled(l), this.element.appendChild(l), this.selectElement = l;\n const b = e.createElement(\"div\");\n b.classList.add(Qt(\"m\")), b.appendChild(xt(e, \"dropdown\")), this.element.appendChild(b), t.value.emitter.on(\"change\", this.onValueChange_), this.value_ = t.value, this.update_();\n }\n update_() {\n this.selectElement.value = String(this.value_.rawValue);\n }\n onValueChange_() {\n this.update_();\n }\n }\n class _n {\n constructor(e, t) {\n this.onSelectChange_ = this.onSelectChange_.bind(this), this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new hs(e, {\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.selectElement.addEventListener(\"change\", this.onSelectChange_);\n }\n onSelectChange_(e) {\n const l = e.currentTarget.selectedOptions.item(0);\n if (!l)\n return;\n const b = Number(l.dataset.index);\n this.value.rawValue = this.props.get(\"options\")[b].value;\n }\n }\n const ds = D(\"pop\");\n class hr {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(ds()), t.viewProps.bindClassModifiers(this.element), N(t.shows, K(this.element, ds(void 0, \"v\")));\n }\n }\n class ms {\n constructor(e, t) {\n this.shows = ee(!1), this.viewProps = t.viewProps, this.view = new hr(e, {\n shows: this.shows,\n viewProps: this.viewProps\n });\n }\n }\n const fs = D(\"txt\");\n class dr {\n constructor(e, t) {\n this.onChange_ = this.onChange_.bind(this), this.element = e.createElement(\"div\"), this.element.classList.add(fs()), t.viewProps.bindClassModifiers(this.element), this.props_ = t.props, this.props_.emitter.on(\"change\", this.onChange_);\n const l = e.createElement(\"input\");\n l.classList.add(fs(\"i\")), l.type = \"text\", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on(\"change\", this.onChange_), this.value_ = t.value, this.refresh();\n }\n refresh() {\n const e = this.props_.get(\"formatter\");\n this.inputElement.value = e(this.value_.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class Wn {\n constructor(e, t) {\n this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = t.parser, this.props = t.props, this.value = t.value, this.viewProps = t.viewProps, this.view = new dr(e, {\n props: t.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_);\n }\n onInputChange_(e) {\n const l = e.currentTarget.value, b = this.parser_(l);\n _(b) || (this.value.rawValue = b), this.view.refresh();\n }\n }\n function mr(i) {\n return String(i);\n }\n function vs(i) {\n return i === \"false\" ? !1 : !!i;\n }\n function bs(i) {\n return mr(i);\n }\n class fr {\n constructor(e) {\n this.text = e;\n }\n evaluate() {\n return Number(this.text);\n }\n toString() {\n return this.text;\n }\n }\n const vr = {\n \"**\": (i, e) => Math.pow(i, e),\n \"*\": (i, e) => i * e,\n \"/\": (i, e) => i / e,\n \"%\": (i, e) => i % e,\n \"+\": (i, e) => i + e,\n \"-\": (i, e) => i - e,\n \"<<\": (i, e) => i << e,\n \">>\": (i, e) => i >> e,\n \">>>\": (i, e) => i >>> e,\n \"&\": (i, e) => i & e,\n \"^\": (i, e) => i ^ e,\n \"|\": (i, e) => i | e\n };\n class br {\n constructor(e, t, l) {\n this.left = t, this.operator = e, this.right = l;\n }\n evaluate() {\n const e = vr[this.operator];\n if (!e)\n throw new Error(`unexpected binary operator: '${this.operator}`);\n return e(this.left.evaluate(), this.right.evaluate());\n }\n toString() {\n return [\n \"b(\",\n this.left.toString(),\n this.operator,\n this.right.toString(),\n \")\"\n ].join(\" \");\n }\n }\n const gs = {\n \"+\": (i) => i,\n \"-\": (i) => -i,\n \"~\": (i) => ~i\n };\n class gr {\n constructor(e, t) {\n this.operator = e, this.expression = t;\n }\n evaluate() {\n const e = gs[this.operator];\n if (!e)\n throw new Error(`unexpected unary operator: '${this.operator}`);\n return e(this.expression.evaluate());\n }\n toString() {\n return [\"u(\", this.operator, this.expression.toString(), \")\"].join(\" \");\n }\n }\n function Ti(i) {\n return (e, t) => {\n for (let l = 0; l < i.length; l++) {\n const b = i[l](e, t);\n if (b !== \"\")\n return b;\n }\n return \"\";\n };\n }\n function Rt(i, e) {\n var t;\n const l = i.substr(e).match(/^\\s+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function _r(i, e) {\n const t = i.substr(e, 1);\n return t.match(/^[1-9]$/) ? t : \"\";\n }\n function wn(i, e) {\n var t;\n const l = i.substr(e).match(/^[0-9]+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function wr(i, e) {\n const t = wn(i, e);\n if (t !== \"\")\n return t;\n const l = i.substr(e, 1);\n if (e += 1, l !== \"-\" && l !== \"+\")\n return \"\";\n const b = wn(i, e);\n return b === \"\" ? \"\" : l + b;\n }\n function at(i, e) {\n const t = i.substr(e, 1);\n if (e += 1, t.toLowerCase() !== \"e\")\n return \"\";\n const l = wr(i, e);\n return l === \"\" ? \"\" : t + l;\n }\n function _s(i, e) {\n const t = i.substr(e, 1);\n if (t === \"0\")\n return t;\n const l = _r(i, e);\n return e += l.length, l === \"\" ? \"\" : l + wn(i, e);\n }\n function yr(i, e) {\n const t = _s(i, e);\n if (e += t.length, t === \"\")\n return \"\";\n const l = i.substr(e, 1);\n if (e += l.length, l !== \".\")\n return \"\";\n const b = wn(i, e);\n return e += b.length, t + l + b + at(i, e);\n }\n function ws(i, e) {\n const t = i.substr(e, 1);\n if (e += t.length, t !== \".\")\n return \"\";\n const l = wn(i, e);\n return e += l.length, l === \"\" ? \"\" : t + l + at(i, e);\n }\n function xr(i, e) {\n const t = _s(i, e);\n return e += t.length, t === \"\" ? \"\" : t + at(i, e);\n }\n const ys = Ti([\n yr,\n ws,\n xr\n ]);\n function ki(i, e) {\n var t;\n const l = i.substr(e).match(/^[01]+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function Er(i, e) {\n const t = i.substr(e, 2);\n if (e += t.length, t.toLowerCase() !== \"0b\")\n return \"\";\n const l = ki(i, e);\n return l === \"\" ? \"\" : t + l;\n }\n function xs(i, e) {\n var t;\n const l = i.substr(e).match(/^[0-7]+/);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function Qe(i, e) {\n const t = i.substr(e, 2);\n if (e += t.length, t.toLowerCase() !== \"0o\")\n return \"\";\n const l = xs(i, e);\n return l === \"\" ? \"\" : t + l;\n }\n function Cr(i, e) {\n var t;\n const l = i.substr(e).match(/^[0-9a-f]+/i);\n return (t = l && l[0]) !== null && t !== void 0 ? t : \"\";\n }\n function Pr(i, e) {\n const t = i.substr(e, 2);\n if (e += t.length, t.toLowerCase() !== \"0x\")\n return \"\";\n const l = Cr(i, e);\n return l === \"\" ? \"\" : t + l;\n }\n const Mi = Ti([\n Er,\n Qe,\n Pr\n ]), Tr = Ti([\n Mi,\n ys\n ]);\n function Ct(i, e) {\n const t = Tr(i, e);\n return e += t.length, t === \"\" ? null : {\n evaluable: new fr(t),\n cursor: e\n };\n }\n function Si(i, e) {\n const t = i.substr(e, 1);\n if (e += t.length, t !== \"(\")\n return null;\n const l = Jn(i, e);\n if (!l)\n return null;\n e = l.cursor, e += Rt(i, e).length;\n const b = i.substr(e, 1);\n return e += b.length, b !== \")\" ? null : {\n evaluable: l.evaluable,\n cursor: e\n };\n }\n function kr(i, e) {\n var t;\n return (t = Ct(i, e)) !== null && t !== void 0 ? t : Si(i, e);\n }\n function Li(i, e) {\n const t = kr(i, e);\n if (t)\n return t;\n const l = i.substr(e, 1);\n if (e += l.length, l !== \"+\" && l !== \"-\" && l !== \"~\")\n return null;\n const b = Li(i, e);\n return b ? (e = b.cursor, {\n cursor: e,\n evaluable: new gr(l, b.evaluable)\n }) : null;\n }\n function Mr(i, e, t) {\n t += Rt(e, t).length;\n const l = i.filter((b) => e.startsWith(b, t))[0];\n return l ? (t += l.length, t += Rt(e, t).length, {\n cursor: t,\n operator: l\n }) : null;\n }\n function It(i, e) {\n return (t, l) => {\n const b = i(t, l);\n if (!b)\n return null;\n l = b.cursor;\n let E = b.evaluable;\n for (; ; ) {\n const k = Mr(e, t, l);\n if (!k)\n break;\n l = k.cursor;\n const B = i(t, l);\n if (!B)\n return null;\n l = B.cursor, E = new br(k.operator, E, B.evaluable);\n }\n return E ? {\n cursor: l,\n evaluable: E\n } : null;\n };\n }\n const Es = [\n [\"**\"],\n [\"*\", \"/\", \"%\"],\n [\"+\", \"-\"],\n [\"<<\", \">>>\", \">>\"],\n [\"&\"],\n [\"^\"],\n [\"|\"]\n ].reduce((i, e) => It(i, e), Li);\n function Jn(i, e) {\n return e += Rt(i, e).length, Es(i, e);\n }\n function Cs(i) {\n const e = Jn(i, 0);\n return !e || e.cursor + Rt(i, e.cursor).length !== i.length ? null : e.evaluable;\n }\n function lt(i) {\n var e;\n const t = Cs(i);\n return (e = t == null ? void 0 : t.evaluate()) !== null && e !== void 0 ? e : null;\n }\n function bt(i) {\n if (typeof i == \"number\")\n return i;\n if (typeof i == \"string\") {\n const e = lt(i);\n if (!_(e))\n return e;\n }\n return 0;\n }\n function Sr(i) {\n return String(i);\n }\n function Ie(i) {\n return (e) => e.toFixed(Math.max(Math.min(i, 20), 0));\n }\n const Ps = Ie(0);\n function yn(i) {\n return Ps(i) + \"%\";\n }\n function Ai(i) {\n return String(i);\n }\n function Pt(i) {\n return i;\n }\n function Zt({ primary: i, secondary: e, forward: t, backward: l }) {\n let b = !1;\n function E(k) {\n b || (b = !0, k(), b = !1);\n }\n i.emitter.on(\"change\", (k) => {\n E(() => {\n e.setRawValue(t(i, e), k.options);\n });\n }), e.emitter.on(\"change\", (k) => {\n E(() => {\n i.setRawValue(l(i, e), k.options);\n }), E(() => {\n e.setRawValue(t(i, e), k.options);\n });\n }), E(() => {\n e.setRawValue(t(i, e), {\n forceEmit: !1,\n last: !0\n });\n });\n }\n function Oe(i, e) {\n const t = i * (e.altKey ? 0.1 : 1) * (e.shiftKey ? 10 : 1);\n return e.upKey ? +t : e.downKey ? -t : 0;\n }\n function xn(i) {\n return {\n altKey: i.altKey,\n downKey: i.key === \"ArrowDown\",\n shiftKey: i.shiftKey,\n upKey: i.key === \"ArrowUp\"\n };\n }\n function ct(i) {\n return {\n altKey: i.altKey,\n downKey: i.key === \"ArrowLeft\",\n shiftKey: i.shiftKey,\n upKey: i.key === \"ArrowRight\"\n };\n }\n function Ts(i) {\n return i === \"ArrowUp\" || i === \"ArrowDown\";\n }\n function ei(i) {\n return Ts(i) || i === \"ArrowLeft\" || i === \"ArrowRight\";\n }\n function Ri(i, e) {\n var t, l;\n const b = e.ownerDocument.defaultView, E = e.getBoundingClientRect();\n return {\n x: i.pageX - (((t = b && b.scrollX) !== null && t !== void 0 ? t : 0) + E.left),\n y: i.pageY - (((l = b && b.scrollY) !== null && l !== void 0 ? l : 0) + E.top)\n };\n }\n class Vt {\n constructor(e) {\n this.lastTouch_ = null, this.onDocumentMouseMove_ = this.onDocumentMouseMove_.bind(this), this.onDocumentMouseUp_ = this.onDocumentMouseUp_.bind(this), this.onMouseDown_ = this.onMouseDown_.bind(this), this.onTouchEnd_ = this.onTouchEnd_.bind(this), this.onTouchMove_ = this.onTouchMove_.bind(this), this.onTouchStart_ = this.onTouchStart_.bind(this), this.elem_ = e, this.emitter = new F(), e.addEventListener(\"touchstart\", this.onTouchStart_, {\n passive: !1\n }), e.addEventListener(\"touchmove\", this.onTouchMove_, {\n passive: !0\n }), e.addEventListener(\"touchend\", this.onTouchEnd_), e.addEventListener(\"mousedown\", this.onMouseDown_);\n }\n computePosition_(e) {\n const t = this.elem_.getBoundingClientRect();\n return {\n bounds: {\n width: t.width,\n height: t.height\n },\n point: e ? {\n x: e.x,\n y: e.y\n } : null\n };\n }\n onMouseDown_(e) {\n var t;\n e.preventDefault(), (t = e.currentTarget) === null || t === void 0 || t.focus();\n const l = this.elem_.ownerDocument;\n l.addEventListener(\"mousemove\", this.onDocumentMouseMove_), l.addEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"down\", {\n altKey: e.altKey,\n data: this.computePosition_(Ri(e, this.elem_)),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n onDocumentMouseMove_(e) {\n this.emitter.emit(\"move\", {\n altKey: e.altKey,\n data: this.computePosition_(Ri(e, this.elem_)),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n onDocumentMouseUp_(e) {\n const t = this.elem_.ownerDocument;\n t.removeEventListener(\"mousemove\", this.onDocumentMouseMove_), t.removeEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"up\", {\n altKey: e.altKey,\n data: this.computePosition_(Ri(e, this.elem_)),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n onTouchStart_(e) {\n e.preventDefault();\n const t = e.targetTouches.item(0), l = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"down\", {\n altKey: e.altKey,\n data: this.computePosition_(t ? {\n x: t.clientX - l.left,\n y: t.clientY - l.top\n } : void 0),\n sender: this,\n shiftKey: e.shiftKey\n }), this.lastTouch_ = t;\n }\n onTouchMove_(e) {\n const t = e.targetTouches.item(0), l = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"move\", {\n altKey: e.altKey,\n data: this.computePosition_(t ? {\n x: t.clientX - l.left,\n y: t.clientY - l.top\n } : void 0),\n sender: this,\n shiftKey: e.shiftKey\n }), this.lastTouch_ = t;\n }\n onTouchEnd_(e) {\n var t;\n const l = (t = e.targetTouches.item(0)) !== null && t !== void 0 ? t : this.lastTouch_, b = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"up\", {\n altKey: e.altKey,\n data: this.computePosition_(l ? {\n x: l.clientX - b.left,\n y: l.clientY - b.top\n } : void 0),\n sender: this,\n shiftKey: e.shiftKey\n });\n }\n }\n function _e(i, e, t, l, b) {\n const E = (i - e) / (t - e);\n return l + E * (b - l);\n }\n function Ii(i) {\n return String(i.toFixed(10)).split(\".\")[1].replace(/0+$/, \"\").length;\n }\n function Se(i, e, t) {\n return Math.min(Math.max(i, e), t);\n }\n function Wt(i, e) {\n return (i % e + e) % e;\n }\n const He = D(\"txt\");\n class Vi {\n constructor(e, t) {\n this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on(\"change\", this.onChange_), this.element = e.createElement(\"div\"), this.element.classList.add(He(), He(void 0, \"num\")), t.arrayPosition && this.element.classList.add(He(void 0, t.arrayPosition)), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"input\");\n l.classList.add(He(\"i\")), l.type = \"text\", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = t.dragging, this.dragging_.emitter.on(\"change\", this.onDraggingChange_), this.element.classList.add(He()), this.inputElement.classList.add(He(\"i\"));\n const b = e.createElement(\"div\");\n b.classList.add(He(\"k\")), this.element.appendChild(b), this.knobElement = b;\n const E = e.createElementNS(ze, \"svg\");\n E.classList.add(He(\"g\")), this.knobElement.appendChild(E);\n const k = e.createElementNS(ze, \"path\");\n k.classList.add(He(\"gb\")), E.appendChild(k), this.guideBodyElem_ = k;\n const B = e.createElementNS(ze, \"path\");\n B.classList.add(He(\"gh\")), E.appendChild(B), this.guideHeadElem_ = B;\n const Q = e.createElement(\"div\");\n Q.classList.add(D(\"tt\")()), this.knobElement.appendChild(Q), this.tooltipElem_ = Q, t.value.emitter.on(\"change\", this.onChange_), this.value = t.value, this.refresh();\n }\n onDraggingChange_(e) {\n if (e.rawValue === null) {\n this.element.classList.remove(He(void 0, \"drg\"));\n return;\n }\n this.element.classList.add(He(void 0, \"drg\"));\n const t = e.rawValue / this.props_.get(\"draggingScale\"), l = t + (t > 0 ? -1 : t < 0 ? 1 : 0), b = Se(-l, -4, 4);\n this.guideHeadElem_.setAttributeNS(null, \"d\", [`M ${l + b},0 L${l},4 L${l + b},8`, `M ${t},-1 L${t},9`].join(\" \")), this.guideBodyElem_.setAttributeNS(null, \"d\", `M 0,4 L${t},4`);\n const E = this.props_.get(\"formatter\");\n this.tooltipElem_.textContent = E(this.value.rawValue), this.tooltipElem_.style.left = `${t}px`;\n }\n refresh() {\n const e = this.props_.get(\"formatter\");\n this.inputElement.value = e(this.value.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class En {\n constructor(e, t) {\n var l;\n this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.parser_ = t.parser, this.props = t.props, this.sliderProps_ = (l = t.sliderProps) !== null && l !== void 0 ? l : null, this.value = t.value, this.viewProps = t.viewProps, this.dragging_ = ee(null), this.view = new Vi(e, {\n arrayPosition: t.arrayPosition,\n dragging: this.dragging_,\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_), this.view.inputElement.addEventListener(\"keydown\", this.onInputKeyDown_), this.view.inputElement.addEventListener(\"keyup\", this.onInputKeyUp_);\n const b = new Vt(this.view.knobElement);\n b.emitter.on(\"down\", this.onPointerDown_), b.emitter.on(\"move\", this.onPointerMove_), b.emitter.on(\"up\", this.onPointerUp_);\n }\n constrainValue_(e) {\n var t, l;\n const b = (t = this.sliderProps_) === null || t === void 0 ? void 0 : t.get(\"minValue\"), E = (l = this.sliderProps_) === null || l === void 0 ? void 0 : l.get(\"maxValue\");\n let k = e;\n return b !== void 0 && (k = Math.max(k, b)), E !== void 0 && (k = Math.min(k, E)), k;\n }\n onInputChange_(e) {\n const l = e.currentTarget.value, b = this.parser_(l);\n _(b) || (this.value.rawValue = this.constrainValue_(b)), this.view.refresh();\n }\n onInputKeyDown_(e) {\n const t = Oe(this.baseStep_, xn(e));\n t !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + t), {\n forceEmit: !1,\n last: !1\n });\n }\n onInputKeyUp_(e) {\n Oe(this.baseStep_, xn(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n onPointerDown_() {\n this.originRawValue_ = this.value.rawValue, this.dragging_.rawValue = 0;\n }\n computeDraggingValue_(e) {\n if (!e.point)\n return null;\n const t = e.point.x - e.bounds.width / 2;\n return this.constrainValue_(this.originRawValue_ + t * this.props.get(\"draggingScale\"));\n }\n onPointerMove_(e) {\n const t = this.computeDraggingValue_(e.data);\n t !== null && (this.value.setRawValue(t, {\n forceEmit: !1,\n last: !1\n }), this.dragging_.rawValue = this.value.rawValue - this.originRawValue_);\n }\n onPointerUp_(e) {\n const t = this.computeDraggingValue_(e.data);\n t !== null && (this.value.setRawValue(t, {\n forceEmit: !0,\n last: !0\n }), this.dragging_.rawValue = null);\n }\n }\n const Di = D(\"sld\");\n class Ke {\n constructor(e, t) {\n this.onChange_ = this.onChange_.bind(this), this.props_ = t.props, this.props_.emitter.on(\"change\", this.onChange_), this.element = e.createElement(\"div\"), this.element.classList.add(Di()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Di(\"t\")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.trackElement = l;\n const b = e.createElement(\"div\");\n b.classList.add(Di(\"k\")), this.trackElement.appendChild(b), this.knobElement = b, t.value.emitter.on(\"change\", this.onChange_), this.value = t.value, this.update_();\n }\n update_() {\n const e = Se(_e(this.value.rawValue, this.props_.get(\"minValue\"), this.props_.get(\"maxValue\"), 0, 100), 0, 100);\n this.knobElement.style.width = `${e}%`;\n }\n onChange_() {\n this.update_();\n }\n }\n class Oi {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDownOrMove_ = this.onPointerDownOrMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = t.baseStep, this.value = t.value, this.viewProps = t.viewProps, this.props = t.props, this.view = new Ke(e, {\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new Vt(this.view.trackElement), this.ptHandler_.emitter.on(\"down\", this.onPointerDownOrMove_), this.ptHandler_.emitter.on(\"move\", this.onPointerDownOrMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.trackElement.addEventListener(\"keydown\", this.onKeyDown_), this.view.trackElement.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n e.point && this.value.setRawValue(_e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, this.props.get(\"minValue\"), this.props.get(\"maxValue\")), t);\n }\n onPointerDownOrMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n const t = Oe(this.baseStep_, ct(e));\n t !== 0 && this.value.setRawValue(this.value.rawValue + t, {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n Oe(this.baseStep_, ct(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n const Cn = D(\"sldtxt\");\n class Ni {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(Cn());\n const l = e.createElement(\"div\");\n l.classList.add(Cn(\"s\")), this.sliderView_ = t.sliderView, l.appendChild(this.sliderView_.element), this.element.appendChild(l);\n const b = e.createElement(\"div\");\n b.classList.add(Cn(\"t\")), this.textView_ = t.textView, b.appendChild(this.textView_.element), this.element.appendChild(b);\n }\n }\n class ti {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.sliderC_ = new Oi(e, {\n baseStep: t.baseStep,\n props: t.sliderProps,\n value: t.value,\n viewProps: this.viewProps\n }), this.textC_ = new En(e, {\n baseStep: t.baseStep,\n parser: t.parser,\n props: t.textProps,\n sliderProps: t.sliderProps,\n value: t.value,\n viewProps: t.viewProps\n }), this.view = new Ni(e, {\n sliderView: this.sliderC_.view,\n textView: this.textC_.view\n });\n }\n get sliderController() {\n return this.sliderC_;\n }\n get textController() {\n return this.textC_;\n }\n }\n function nt(i, e) {\n i.write(e);\n }\n function Pn(i) {\n const e = M;\n if (Array.isArray(i))\n return e.required.array(e.required.object({\n text: e.required.string,\n value: e.required.raw\n }))(i).value;\n if (typeof i == \"object\")\n return e.required.raw(i).value;\n }\n function Fi(i) {\n if (i === \"inline\" || i === \"popup\")\n return i;\n }\n function gt(i) {\n const e = M;\n return e.required.object({\n max: e.optional.number,\n min: e.optional.number,\n step: e.optional.number\n })(i).value;\n }\n function ks(i) {\n if (Array.isArray(i))\n return i;\n const e = [];\n return Object.keys(i).forEach((t) => {\n e.push({ text: t, value: i[t] });\n }), e;\n }\n function Bi(i) {\n return _(i) ? null : new gn(ks(i));\n }\n function Lr(i) {\n const e = i ? tt(i, Zn) : null;\n return e ? e.step : null;\n }\n function ni(i, e) {\n const t = i && tt(i, Zn);\n return t ? Ii(t.step) : Math.max(Ii(e), 2);\n }\n function Dt(i) {\n const e = Lr(i);\n return e ?? 1;\n }\n function Ot(i, e) {\n var t;\n const l = i && tt(i, Zn), b = Math.abs((t = l == null ? void 0 : l.step) !== null && t !== void 0 ? t : e);\n return b === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(b)) - 1);\n }\n const Tn = D(\"ckb\");\n class kn {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.element = e.createElement(\"div\"), this.element.classList.add(Tn()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"label\");\n l.classList.add(Tn(\"l\")), this.element.appendChild(l);\n const b = e.createElement(\"input\");\n b.classList.add(Tn(\"i\")), b.type = \"checkbox\", l.appendChild(b), this.inputElement = b, t.viewProps.bindDisabled(this.inputElement);\n const E = e.createElement(\"div\");\n E.classList.add(Tn(\"w\")), l.appendChild(E);\n const k = xt(e, \"check\");\n E.appendChild(k), t.value.emitter.on(\"change\", this.onValueChange_), this.value = t.value, this.update_();\n }\n update_() {\n this.inputElement.checked = this.value.rawValue;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Ms {\n constructor(e, t) {\n this.onInputChange_ = this.onInputChange_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new kn(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_);\n }\n onInputChange_(e) {\n const t = e.currentTarget;\n this.value.rawValue = t.checked;\n }\n }\n function Ss(i) {\n const e = [], t = Bi(i.options);\n return t && e.push(t), new bn(e);\n }\n const ii = {\n id: \"input-bool\",\n type: \"input\",\n accept: (i, e) => {\n if (typeof i != \"boolean\")\n return null;\n const l = le(e, {\n options: M.optional.custom(Pn)\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => vs,\n constraint: (i) => Ss(i.params),\n writer: (i) => nt\n },\n controller: (i) => {\n const e = i.document, t = i.value, l = i.constraint, b = l && tt(l, gn);\n return b ? new _n(e, {\n props: new X({\n options: b.values.value(\"options\")\n }),\n value: t,\n viewProps: i.viewProps\n }) : new Ms(e, {\n value: t,\n viewProps: i.viewProps\n });\n }\n }, Nt = D(\"col\");\n class ji {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(Nt()), t.foldable.bindExpandedClass(this.element, Nt(void 0, \"expanded\")), O(t.foldable, \"completed\", K(this.element, Nt(void 0, \"cpl\")));\n const l = e.createElement(\"div\");\n l.classList.add(Nt(\"h\")), this.element.appendChild(l);\n const b = e.createElement(\"div\");\n b.classList.add(Nt(\"s\")), l.appendChild(b), this.swatchElement = b;\n const E = e.createElement(\"div\");\n if (E.classList.add(Nt(\"t\")), l.appendChild(E), this.textElement = E, t.pickerLayout === \"inline\") {\n const k = e.createElement(\"div\");\n k.classList.add(Nt(\"p\")), this.element.appendChild(k), this.pickerElement = k;\n } else\n this.pickerElement = null;\n }\n }\n function Ar(i, e, t) {\n const l = Se(i / 255, 0, 1), b = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k = Math.max(l, b, E), B = Math.min(l, b, E), Q = k - B;\n let J = 0, de = 0;\n const ve = (B + k) / 2;\n return Q !== 0 && (de = Q / (1 - Math.abs(k + B - 1)), l === k ? J = (b - E) / Q : b === k ? J = 2 + (E - l) / Q : J = 4 + (l - b) / Q, J = J / 6 + (J < 0 ? 1 : 0)), [J * 360, de * 100, ve * 100];\n }\n function Rr(i, e, t) {\n const l = (i % 360 + 360) % 360, b = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k = (1 - Math.abs(2 * E - 1)) * b, B = k * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k / 2;\n let J, de, ve;\n return l >= 0 && l < 60 ? [J, de, ve] = [k, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k] : [J, de, ve] = [k, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255];\n }\n function Ir(i, e, t) {\n const l = Se(i / 255, 0, 1), b = Se(e / 255, 0, 1), E = Se(t / 255, 0, 1), k = Math.max(l, b, E), B = Math.min(l, b, E), Q = k - B;\n let J;\n Q === 0 ? J = 0 : k === l ? J = 60 * (((b - E) / Q % 6 + 6) % 6) : k === b ? J = 60 * ((E - l) / Q + 2) : J = 60 * ((l - b) / Q + 4);\n const de = k === 0 ? 0 : Q / k, ve = k;\n return [J, de * 100, ve * 100];\n }\n function Ls(i, e, t) {\n const l = Wt(i, 360), b = Se(e / 100, 0, 1), E = Se(t / 100, 0, 1), k = E * b, B = k * (1 - Math.abs(l / 60 % 2 - 1)), Q = E - k;\n let J, de, ve;\n return l >= 0 && l < 60 ? [J, de, ve] = [k, B, 0] : l >= 60 && l < 120 ? [J, de, ve] = [B, k, 0] : l >= 120 && l < 180 ? [J, de, ve] = [0, k, B] : l >= 180 && l < 240 ? [J, de, ve] = [0, B, k] : l >= 240 && l < 300 ? [J, de, ve] = [B, 0, k] : [J, de, ve] = [k, 0, B], [(J + Q) * 255, (de + Q) * 255, (ve + Q) * 255];\n }\n function m(i, e, t) {\n const l = t + e * (100 - Math.abs(2 * t - 100)) / 200;\n return [\n i,\n l !== 0 ? e * (100 - Math.abs(2 * t - 100)) / l : 0,\n t + e * (100 - Math.abs(2 * t - 100)) / (2 * 100)\n ];\n }\n function o(i, e, t) {\n const l = 100 - Math.abs(t * (200 - e) / 100 - 100);\n return [i, l !== 0 ? e * t / l : 0, t * (200 - e) / (2 * 100)];\n }\n function u(i) {\n return [i[0], i[1], i[2]];\n }\n function f(i, e) {\n return [i[0], i[1], i[2], e];\n }\n const x = {\n hsl: {\n hsl: (i, e, t) => [i, e, t],\n hsv: m,\n rgb: Rr\n },\n hsv: {\n hsl: o,\n hsv: (i, e, t) => [i, e, t],\n rgb: Ls\n },\n rgb: {\n hsl: Ar,\n hsv: Ir,\n rgb: (i, e, t) => [i, e, t]\n }\n };\n function T(i, e) {\n return [\n e === \"float\" ? 1 : i === \"rgb\" ? 255 : 360,\n e === \"float\" ? 1 : i === \"rgb\" ? 255 : 100,\n e === \"float\" ? 1 : i === \"rgb\" ? 255 : 100\n ];\n }\n function A(i, e) {\n return i === e ? e : Wt(i, e);\n }\n function z(i, e, t) {\n var l;\n const b = T(e, t);\n return [\n e === \"rgb\" ? Se(i[0], 0, b[0]) : A(i[0], b[0]),\n Se(i[1], 0, b[1]),\n Se(i[2], 0, b[2]),\n Se((l = i[3]) !== null && l !== void 0 ? l : 1, 0, 1)\n ];\n }\n function oe(i, e, t, l) {\n const b = T(e, t), E = T(e, l);\n return i.map((k, B) => k / b[B] * E[B]);\n }\n function Ze(i, e, t) {\n const l = oe(i, e.mode, e.type, \"int\"), b = x[e.mode][t.mode](...l);\n return oe(b, t.mode, \"int\", t.type);\n }\n function We(i, e) {\n return typeof i != \"object\" || _(i) ? !1 : e in i && typeof i[e] == \"number\";\n }\n class te {\n static black(e = \"int\") {\n return new te([0, 0, 0], \"rgb\", e);\n }\n static fromObject(e, t = \"int\") {\n const l = \"a\" in e ? [e.r, e.g, e.b, e.a] : [e.r, e.g, e.b];\n return new te(l, \"rgb\", t);\n }\n static toRgbaObject(e, t = \"int\") {\n return e.toRgbaObject(t);\n }\n static isRgbColorObject(e) {\n return We(e, \"r\") && We(e, \"g\") && We(e, \"b\");\n }\n static isRgbaColorObject(e) {\n return this.isRgbColorObject(e) && We(e, \"a\");\n }\n static isColorObject(e) {\n return this.isRgbColorObject(e);\n }\n static equals(e, t) {\n if (e.mode !== t.mode)\n return !1;\n const l = e.comps_, b = t.comps_;\n for (let E = 0; E < l.length; E++)\n if (l[E] !== b[E])\n return !1;\n return !0;\n }\n constructor(e, t, l = \"int\") {\n this.mode = t, this.type = l, this.comps_ = z(e, t, l);\n }\n getComponents(e, t = \"int\") {\n return f(Ze(u(this.comps_), { mode: this.mode, type: this.type }, { mode: e ?? this.mode, type: t }), this.comps_[3]);\n }\n toRgbaObject(e = \"int\") {\n const t = this.getComponents(\"rgb\", e);\n return {\n r: t[0],\n g: t[1],\n b: t[2],\n a: t[3]\n };\n }\n }\n const Tt = D(\"colp\");\n class Vr {\n constructor(e, t) {\n this.alphaViews_ = null, this.element = e.createElement(\"div\"), this.element.classList.add(Tt()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Tt(\"hsv\"));\n const b = e.createElement(\"div\");\n b.classList.add(Tt(\"sv\")), this.svPaletteView_ = t.svPaletteView, b.appendChild(this.svPaletteView_.element), l.appendChild(b);\n const E = e.createElement(\"div\");\n E.classList.add(Tt(\"h\")), this.hPaletteView_ = t.hPaletteView, E.appendChild(this.hPaletteView_.element), l.appendChild(E), this.element.appendChild(l);\n const k = e.createElement(\"div\");\n if (k.classList.add(Tt(\"rgb\")), this.textView_ = t.textView, k.appendChild(this.textView_.element), this.element.appendChild(k), t.alphaViews) {\n this.alphaViews_ = {\n palette: t.alphaViews.palette,\n text: t.alphaViews.text\n };\n const B = e.createElement(\"div\");\n B.classList.add(Tt(\"a\"));\n const Q = e.createElement(\"div\");\n Q.classList.add(Tt(\"ap\")), Q.appendChild(this.alphaViews_.palette.element), B.appendChild(Q);\n const J = e.createElement(\"div\");\n J.classList.add(Tt(\"at\")), J.appendChild(this.alphaViews_.text.element), B.appendChild(J), this.element.appendChild(B);\n }\n }\n get allFocusableElements() {\n const e = [\n this.svPaletteView_.element,\n this.hPaletteView_.element,\n this.textView_.modeSelectElement,\n ...this.textView_.textViews.map((t) => t.inputElement)\n ];\n return this.alphaViews_ && e.push(this.alphaViews_.palette.element, this.alphaViews_.text.inputElement), e;\n }\n }\n function ll(i) {\n return i === \"int\" ? \"int\" : i === \"float\" ? \"float\" : void 0;\n }\n function Dr(i) {\n const e = M;\n return le(i, {\n alpha: e.optional.boolean,\n color: e.optional.object({\n alpha: e.optional.boolean,\n type: e.optional.custom(ll)\n }),\n expanded: e.optional.boolean,\n picker: e.optional.custom(Fi)\n });\n }\n function Mn(i) {\n return i ? 0.1 : 1;\n }\n function Sn(i) {\n var e;\n return (e = i.color) === null || e === void 0 ? void 0 : e.type;\n }\n function cl(i, e) {\n return i.alpha === e.alpha && i.mode === e.mode && i.notation === e.notation && i.type === e.type;\n }\n function ut(i, e) {\n const t = i.match(/^(.+)%$/);\n return Math.min(t ? parseFloat(t[1]) * 0.01 * e : parseFloat(i), e);\n }\n const ul = {\n deg: (i) => i,\n grad: (i) => i * 360 / 400,\n rad: (i) => i * 360 / (2 * Math.PI),\n turn: (i) => i * 360\n };\n function Co(i) {\n const e = i.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);\n if (!e)\n return parseFloat(i);\n const t = parseFloat(e[1]), l = e[2];\n return ul[l](t);\n }\n function Po(i) {\n const e = i.match(/^rgb\\(\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n ut(e[1], 255),\n ut(e[2], 255),\n ut(e[3], 255)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t;\n }\n function To(i) {\n return (e) => {\n const t = Po(e);\n return t ? new te(t, \"rgb\", i) : null;\n };\n }\n function ko(i) {\n const e = i.match(/^rgba\\(\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n ut(e[1], 255),\n ut(e[2], 255),\n ut(e[3], 255),\n ut(e[4], 1)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t;\n }\n function Mo(i) {\n return (e) => {\n const t = ko(e);\n return t ? new te(t, \"rgb\", i) : null;\n };\n }\n function So(i) {\n const e = i.match(/^hsl\\(\\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n Co(e[1]),\n ut(e[2], 100),\n ut(e[3], 100)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t;\n }\n function Lo(i) {\n return (e) => {\n const t = So(e);\n return t ? new te(t, \"hsl\", i) : null;\n };\n }\n function Ao(i) {\n const e = i.match(/^hsla\\(\\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*([0-9A-Fa-f.]+%?)\\s*\\)$/);\n if (!e)\n return null;\n const t = [\n Co(e[1]),\n ut(e[2], 100),\n ut(e[3], 100),\n ut(e[4], 1)\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t;\n }\n function Ro(i) {\n return (e) => {\n const t = Ao(e);\n return t ? new te(t, \"hsl\", i) : null;\n };\n }\n function Io(i) {\n const e = i.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);\n if (e)\n return [\n parseInt(e[1] + e[1], 16),\n parseInt(e[2] + e[2], 16),\n parseInt(e[3] + e[3], 16)\n ];\n const t = i.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);\n return t ? [\n parseInt(t[1], 16),\n parseInt(t[2], 16),\n parseInt(t[3], 16)\n ] : null;\n }\n function pl(i) {\n const e = Io(i);\n return e ? new te(e, \"rgb\", \"int\") : null;\n }\n function Vo(i) {\n const e = i.match(/^#?([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);\n if (e)\n return [\n parseInt(e[1] + e[1], 16),\n parseInt(e[2] + e[2], 16),\n parseInt(e[3] + e[3], 16),\n _e(parseInt(e[4] + e[4], 16), 0, 255, 0, 1)\n ];\n const t = i.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);\n return t ? [\n parseInt(t[1], 16),\n parseInt(t[2], 16),\n parseInt(t[3], 16),\n _e(parseInt(t[4], 16), 0, 255, 0, 1)\n ] : null;\n }\n function hl(i) {\n const e = Vo(i);\n return e ? new te(e, \"rgb\", \"int\") : null;\n }\n function Do(i) {\n const e = i.match(/^\\{\\s*r\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*g\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*b\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*\\}$/);\n if (!e)\n return null;\n const t = [\n parseFloat(e[1]),\n parseFloat(e[2]),\n parseFloat(e[3])\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) ? null : t;\n }\n function Oo(i) {\n return (e) => {\n const t = Do(e);\n return t ? new te(t, \"rgb\", i) : null;\n };\n }\n function No(i) {\n const e = i.match(/^\\{\\s*r\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*g\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*b\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*,\\s*a\\s*:\\s*([0-9A-Fa-f.]+%?)\\s*\\}$/);\n if (!e)\n return null;\n const t = [\n parseFloat(e[1]),\n parseFloat(e[2]),\n parseFloat(e[3]),\n parseFloat(e[4])\n ];\n return isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]) || isNaN(t[3]) ? null : t;\n }\n function Fo(i) {\n return (e) => {\n const t = No(e);\n return t ? new te(t, \"rgb\", i) : null;\n };\n }\n const dl = [\n {\n parser: Io,\n result: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"hex\"\n }\n },\n {\n parser: Vo,\n result: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"hex\"\n }\n },\n {\n parser: Po,\n result: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"func\"\n }\n },\n {\n parser: ko,\n result: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"func\"\n }\n },\n {\n parser: So,\n result: {\n alpha: !1,\n mode: \"hsl\",\n notation: \"func\"\n }\n },\n {\n parser: Ao,\n result: {\n alpha: !0,\n mode: \"hsl\",\n notation: \"func\"\n }\n },\n {\n parser: Do,\n result: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"object\"\n }\n },\n {\n parser: No,\n result: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"object\"\n }\n }\n ];\n function ml(i) {\n return dl.reduce((e, { parser: t, result: l }) => e || (t(i) ? l : null), null);\n }\n function Or(i, e = \"int\") {\n const t = ml(i);\n return t ? t.notation === \"hex\" && e !== \"float\" ? Object.assign(Object.assign({}, t), { type: \"int\" }) : t.notation === \"func\" ? Object.assign(Object.assign({}, t), { type: e }) : null : null;\n }\n const Bo = {\n int: [\n pl,\n hl,\n To(\"int\"),\n Mo(\"int\"),\n Lo(\"int\"),\n Ro(\"int\"),\n Oo(\"int\"),\n Fo(\"int\")\n ],\n float: [\n To(\"float\"),\n Mo(\"float\"),\n Lo(\"float\"),\n Ro(\"float\"),\n Oo(\"float\"),\n Fo(\"float\")\n ]\n };\n function fl(i) {\n const e = Bo[i];\n return (t) => {\n if (typeof t != \"string\")\n return te.black(i);\n const l = e.reduce((b, E) => b || E(t), null);\n return l ?? te.black(i);\n };\n }\n function Nr(i) {\n const e = Bo[i];\n return (t) => e.reduce((l, b) => l || b(t), null);\n }\n function jo(i) {\n const e = Se(Math.floor(i), 0, 255).toString(16);\n return e.length === 1 ? `0${e}` : e;\n }\n function zo(i, e = \"#\") {\n const t = u(i.getComponents(\"rgb\")).map(jo).join(\"\");\n return `${e}${t}`;\n }\n function Fr(i, e = \"#\") {\n const t = i.getComponents(\"rgb\"), l = [t[0], t[1], t[2], t[3] * 255].map(jo).join(\"\");\n return `${e}${l}`;\n }\n function Uo(i, e) {\n const t = Ie(e === \"float\" ? 2 : 0);\n return `rgb(${u(i.getComponents(\"rgb\", e)).map((b) => t(b)).join(\", \")})`;\n }\n function vl(i) {\n return (e) => Uo(e, i);\n }\n function As(i, e) {\n const t = Ie(2), l = Ie(e === \"float\" ? 2 : 0);\n return `rgba(${i.getComponents(\"rgb\", e).map((E, k) => (k === 3 ? t : l)(E)).join(\", \")})`;\n }\n function bl(i) {\n return (e) => As(e, i);\n }\n function gl(i) {\n const e = [\n Ie(0),\n yn,\n yn\n ];\n return `hsl(${u(i.getComponents(\"hsl\")).map((l, b) => e[b](l)).join(\", \")})`;\n }\n function _l(i) {\n const e = [\n Ie(0),\n yn,\n yn,\n Ie(2)\n ];\n return `hsla(${i.getComponents(\"hsl\").map((l, b) => e[b](l)).join(\", \")})`;\n }\n function Go(i, e) {\n const t = Ie(e === \"float\" ? 2 : 0), l = [\"r\", \"g\", \"b\"];\n return `{${u(i.getComponents(\"rgb\", e)).map((E, k) => `${l[k]}: ${t(E)}`).join(\", \")}}`;\n }\n function wl(i) {\n return (e) => Go(e, i);\n }\n function Ho(i, e) {\n const t = Ie(2), l = Ie(e === \"float\" ? 2 : 0), b = [\"r\", \"g\", \"b\", \"a\"];\n return `{${i.getComponents(\"rgb\", e).map((k, B) => {\n const Q = B === 3 ? t : l;\n return `${b[B]}: ${Q(k)}`;\n }).join(\", \")}}`;\n }\n function yl(i) {\n return (e) => Ho(e, i);\n }\n const xl = [\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"hex\",\n type: \"int\"\n },\n stringifier: zo\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"hex\",\n type: \"int\"\n },\n stringifier: Fr\n },\n {\n format: {\n alpha: !1,\n mode: \"hsl\",\n notation: \"func\",\n type: \"int\"\n },\n stringifier: gl\n },\n {\n format: {\n alpha: !0,\n mode: \"hsl\",\n notation: \"func\",\n type: \"int\"\n },\n stringifier: _l\n },\n ...[\"int\", \"float\"].reduce((i, e) => [\n ...i,\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"func\",\n type: e\n },\n stringifier: vl(e)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"func\",\n type: e\n },\n stringifier: bl(e)\n },\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"object\",\n type: e\n },\n stringifier: wl(e)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"object\",\n type: e\n },\n stringifier: yl(e)\n }\n ], [])\n ];\n function Br(i) {\n return xl.reduce((e, t) => e || (cl(t.format, i) ? t.stringifier : null), null);\n }\n const zi = D(\"apl\");\n class El {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on(\"change\", this.onValueChange_), this.element = e.createElement(\"div\"), this.element.classList.add(zi()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(zi(\"b\")), this.element.appendChild(l);\n const b = e.createElement(\"div\");\n b.classList.add(zi(\"c\")), l.appendChild(b), this.colorElem_ = b;\n const E = e.createElement(\"div\");\n E.classList.add(zi(\"m\")), this.element.appendChild(E), this.markerElem_ = E;\n const k = e.createElement(\"div\");\n k.classList.add(zi(\"p\")), this.markerElem_.appendChild(k), this.previewElem_ = k, this.update_();\n }\n update_() {\n const e = this.value.rawValue, t = e.getComponents(\"rgb\"), l = new te([t[0], t[1], t[2], 0], \"rgb\"), b = new te([t[0], t[1], t[2], 255], \"rgb\"), E = [\n \"to right\",\n As(l),\n As(b)\n ];\n this.colorElem_.style.background = `linear-gradient(${E.join(\",\")})`, this.previewElem_.style.backgroundColor = As(e);\n const k = _e(t[3], 0, 1, 0, 100);\n this.markerElem_.style.left = `${k}%`;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Cl {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new El(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new Vt(this.view.element), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = e.point.x / e.bounds.width, b = this.value.rawValue, [E, k, B] = b.getComponents(\"hsv\");\n this.value.setRawValue(new te([E, k, B, l], \"hsv\"), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n const t = Oe(Mn(!0), ct(e));\n if (t === 0)\n return;\n const l = this.value.rawValue, [b, E, k, B] = l.getComponents(\"hsv\");\n this.value.setRawValue(new te([b, E, k, B + t], \"hsv\"), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n Oe(Mn(!0), ct(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n const si = D(\"coltxt\");\n function Pl(i) {\n const e = i.createElement(\"select\"), t = [\n { text: \"RGB\", value: \"rgb\" },\n { text: \"HSL\", value: \"hsl\" },\n { text: \"HSV\", value: \"hsv\" }\n ];\n return e.appendChild(t.reduce((l, b) => {\n const E = i.createElement(\"option\");\n return E.textContent = b.text, E.value = b.value, l.appendChild(E), l;\n }, i.createDocumentFragment())), e;\n }\n class Tl {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(si()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(si(\"m\")), this.modeElem_ = Pl(e), this.modeElem_.classList.add(si(\"ms\")), l.appendChild(this.modeSelectElement), t.viewProps.bindDisabled(this.modeElem_);\n const b = e.createElement(\"div\");\n b.classList.add(si(\"mm\")), b.appendChild(xt(e, \"dropdown\")), l.appendChild(b), this.element.appendChild(l);\n const E = e.createElement(\"div\");\n E.classList.add(si(\"w\")), this.element.appendChild(E), this.textsElem_ = E, this.textViews_ = t.textViews, this.applyTextViews_(), N(t.colorMode, (k) => {\n this.modeElem_.value = k;\n });\n }\n get modeSelectElement() {\n return this.modeElem_;\n }\n get textViews() {\n return this.textViews_;\n }\n set textViews(e) {\n this.textViews_ = e, this.applyTextViews_();\n }\n applyTextViews_() {\n pn(this.textsElem_);\n const e = this.element.ownerDocument;\n this.textViews_.forEach((t) => {\n const l = e.createElement(\"div\");\n l.classList.add(si(\"c\")), l.appendChild(t.element), this.textsElem_.appendChild(l);\n });\n }\n }\n function kl(i) {\n return Ie(i === \"float\" ? 2 : 0);\n }\n function Ml(i, e, t) {\n const l = T(i, e)[t];\n return new qt({\n min: 0,\n max: l\n });\n }\n function jr(i, e, t) {\n return new En(i, {\n arrayPosition: t === 0 ? \"fst\" : t === 3 - 1 ? \"lst\" : \"mid\",\n baseStep: Mn(!1),\n parser: e.parser,\n props: X.fromObject({\n draggingScale: e.colorType === \"float\" ? 0.01 : 1,\n formatter: kl(e.colorType)\n }),\n value: ee(0, {\n constraint: Ml(e.colorMode, e.colorType, t)\n }),\n viewProps: e.viewProps\n });\n }\n class Sl {\n constructor(e, t) {\n this.onModeSelectChange_ = this.onModeSelectChange_.bind(this), this.colorType_ = t.colorType, this.parser_ = t.parser, this.value = t.value, this.viewProps = t.viewProps, this.colorMode = ee(this.value.rawValue.mode), this.ccs_ = this.createComponentControllers_(e), this.view = new Tl(e, {\n colorMode: this.colorMode,\n textViews: [this.ccs_[0].view, this.ccs_[1].view, this.ccs_[2].view],\n viewProps: this.viewProps\n }), this.view.modeSelectElement.addEventListener(\"change\", this.onModeSelectChange_);\n }\n createComponentControllers_(e) {\n const t = {\n colorMode: this.colorMode.rawValue,\n colorType: this.colorType_,\n parser: this.parser_,\n viewProps: this.viewProps\n }, l = [\n jr(e, t, 0),\n jr(e, t, 1),\n jr(e, t, 2)\n ];\n return l.forEach((b, E) => {\n Zt({\n primary: this.value,\n secondary: b.value,\n forward: (k) => k.rawValue.getComponents(this.colorMode.rawValue, this.colorType_)[E],\n backward: (k, B) => {\n const Q = this.colorMode.rawValue, J = k.rawValue.getComponents(Q, this.colorType_);\n return J[E] = B.rawValue, new te(f(u(J), J[3]), Q, this.colorType_);\n }\n });\n }), l;\n }\n onModeSelectChange_(e) {\n const t = e.currentTarget;\n this.colorMode.rawValue = t.value, this.ccs_ = this.createComponentControllers_(this.view.element.ownerDocument), this.view.textViews = [\n this.ccs_[0].view,\n this.ccs_[1].view,\n this.ccs_[2].view\n ];\n }\n }\n const zr = D(\"hpl\");\n class Ll {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on(\"change\", this.onValueChange_), this.element = e.createElement(\"div\"), this.element.classList.add(zr()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(zr(\"c\")), this.element.appendChild(l);\n const b = e.createElement(\"div\");\n b.classList.add(zr(\"m\")), this.element.appendChild(b), this.markerElem_ = b, this.update_();\n }\n update_() {\n const e = this.value.rawValue, [t] = e.getComponents(\"hsv\");\n this.markerElem_.style.backgroundColor = Uo(new te([t, 100, 100], \"hsv\"));\n const l = _e(t, 0, 360, 0, 100);\n this.markerElem_.style.left = `${l}%`;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Al {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Ll(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new Vt(this.view.element), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = _e(Se(e.point.x, 0, e.bounds.width), 0, e.bounds.width, 0, 360), b = this.value.rawValue, [, E, k, B] = b.getComponents(\"hsv\");\n this.value.setRawValue(new te([l, E, k, B], \"hsv\"), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n const t = Oe(Mn(!1), ct(e));\n if (t === 0)\n return;\n const l = this.value.rawValue, [b, E, k, B] = l.getComponents(\"hsv\");\n this.value.setRawValue(new te([b + t, E, k, B], \"hsv\"), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n Oe(Mn(!1), ct(e)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n const Ur = D(\"svp\"), Ko = 64;\n class Rl {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), this.value = t.value, this.value.emitter.on(\"change\", this.onValueChange_), this.element = e.createElement(\"div\"), this.element.classList.add(Ur()), t.viewProps.bindClassModifiers(this.element), t.viewProps.bindTabIndex(this.element);\n const l = e.createElement(\"canvas\");\n l.height = Ko, l.width = Ko, l.classList.add(Ur(\"c\")), this.element.appendChild(l), this.canvasElement = l;\n const b = e.createElement(\"div\");\n b.classList.add(Ur(\"m\")), this.element.appendChild(b), this.markerElem_ = b, this.update_();\n }\n update_() {\n const e = Gn(this.canvasElement);\n if (!e)\n return;\n const l = this.value.rawValue.getComponents(\"hsv\"), b = this.canvasElement.width, E = this.canvasElement.height, k = e.getImageData(0, 0, b, E), B = k.data;\n for (let de = 0; de < E; de++)\n for (let ve = 0; ve < b; ve++) {\n const Ln = _e(ve, 0, b, 0, 100), Gi = _e(de, 0, E, 100, 0), Hi = Ls(l[0], Ln, Gi), Rs = (de * b + ve) * 4;\n B[Rs] = Hi[0], B[Rs + 1] = Hi[1], B[Rs + 2] = Hi[2], B[Rs + 3] = 255;\n }\n e.putImageData(k, 0, 0);\n const Q = _e(l[1], 0, 100, 0, 100);\n this.markerElem_.style.left = `${Q}%`;\n const J = _e(l[2], 0, 100, 100, 0);\n this.markerElem_.style.top = `${J}%`;\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Il {\n constructor(e, t) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.view = new Rl(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new Vt(this.view.element), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = _e(e.point.x, 0, e.bounds.width, 0, 100), b = _e(e.point.y, 0, e.bounds.height, 100, 0), [E, , , k] = this.value.rawValue.getComponents(\"hsv\");\n this.value.setRawValue(new te([E, l, b, k], \"hsv\"), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(e) {\n ei(e.key) && e.preventDefault();\n const [t, l, b, E] = this.value.rawValue.getComponents(\"hsv\"), k = Mn(!1), B = Oe(k, ct(e)), Q = Oe(k, xn(e));\n B === 0 && Q === 0 || this.value.setRawValue(new te([t, l + B, b + Q, E], \"hsv\"), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(e) {\n const t = Mn(!1), l = Oe(t, ct(e)), b = Oe(t, xn(e));\n l === 0 && b === 0 || this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n class Vl {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.hPaletteC_ = new Al(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.svPaletteC_ = new Il(e, {\n value: this.value,\n viewProps: this.viewProps\n }), this.alphaIcs_ = t.supportsAlpha ? {\n palette: new Cl(e, {\n value: this.value,\n viewProps: this.viewProps\n }),\n text: new En(e, {\n parser: lt,\n baseStep: 0.1,\n props: X.fromObject({\n draggingScale: 0.01,\n formatter: Ie(2)\n }),\n value: ee(0, {\n constraint: new qt({ min: 0, max: 1 })\n }),\n viewProps: this.viewProps\n })\n } : null, this.alphaIcs_ && Zt({\n primary: this.value,\n secondary: this.alphaIcs_.text.value,\n forward: (l) => l.rawValue.getComponents()[3],\n backward: (l, b) => {\n const E = l.rawValue.getComponents();\n return E[3] = b.rawValue, new te(E, l.rawValue.mode);\n }\n }), this.textC_ = new Sl(e, {\n colorType: t.colorType,\n parser: lt,\n value: this.value,\n viewProps: this.viewProps\n }), this.view = new Vr(e, {\n alphaViews: this.alphaIcs_ ? {\n palette: this.alphaIcs_.palette.view,\n text: this.alphaIcs_.text.view\n } : null,\n hPaletteView: this.hPaletteC_.view,\n supportsAlpha: t.supportsAlpha,\n svPaletteView: this.svPaletteC_.view,\n textView: this.textC_.view,\n viewProps: this.viewProps\n });\n }\n get textController() {\n return this.textC_;\n }\n }\n const Gr = D(\"colsw\");\n class Dl {\n constructor(e, t) {\n this.onValueChange_ = this.onValueChange_.bind(this), t.value.emitter.on(\"change\", this.onValueChange_), this.value = t.value, this.element = e.createElement(\"div\"), this.element.classList.add(Gr()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(Gr(\"sw\")), this.element.appendChild(l), this.swatchElem_ = l;\n const b = e.createElement(\"button\");\n b.classList.add(Gr(\"b\")), t.viewProps.bindDisabled(b), this.element.appendChild(b), this.buttonElement = b, this.update_();\n }\n update_() {\n const e = this.value.rawValue;\n this.swatchElem_.style.backgroundColor = Fr(e);\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Ol {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.view = new Dl(e, {\n value: this.value,\n viewProps: this.viewProps\n });\n }\n }\n class Hr {\n constructor(e, t) {\n this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.swatchC_ = new Ol(e, {\n value: this.value,\n viewProps: this.viewProps\n });\n const l = this.swatchC_.view.buttonElement;\n l.addEventListener(\"blur\", this.onButtonBlur_), l.addEventListener(\"click\", this.onButtonClick_), this.textC_ = new Wn(e, {\n parser: t.parser,\n props: X.fromObject({\n formatter: t.formatter\n }),\n value: this.value,\n viewProps: this.viewProps\n }), this.view = new ji(e, {\n foldable: this.foldable_,\n pickerLayout: t.pickerLayout\n }), this.view.swatchElement.appendChild(this.swatchC_.view.element), this.view.textElement.appendChild(this.textC_.view.element), this.popC_ = t.pickerLayout === \"popup\" ? new ms(e, {\n viewProps: this.viewProps\n }) : null;\n const b = new Vl(e, {\n colorType: t.colorType,\n supportsAlpha: t.supportsAlpha,\n value: this.value,\n viewProps: this.viewProps\n });\n b.view.allFocusableElements.forEach((E) => {\n E.addEventListener(\"blur\", this.onPopupChildBlur_), E.addEventListener(\"keydown\", this.onPopupChildKeydown_);\n }), this.pickerC_ = b, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(b.view.element), Zt({\n primary: this.foldable_.value(\"expanded\"),\n secondary: this.popC_.shows,\n forward: (E) => E.rawValue,\n backward: (E, k) => k.rawValue\n })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Ue(this.foldable_, this.view.pickerElement));\n }\n get textController() {\n return this.textC_;\n }\n onButtonBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.view.element, l = e.relatedTarget;\n (!l || !t.contains(l)) && (this.popC_.shows.rawValue = !1);\n }\n onButtonClick_() {\n this.foldable_.set(\"expanded\", !this.foldable_.get(\"expanded\")), this.foldable_.get(\"expanded\") && this.pickerC_.view.allFocusableElements[0].focus();\n }\n onPopupChildBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.popC_.view.element, l = Et(e);\n l && t.contains(l) || l && l === this.swatchC_.view.buttonElement && !ft(t.ownerDocument) || (this.popC_.shows.rawValue = !1);\n }\n onPopupChildKeydown_(e) {\n this.popC_ ? e.key === \"Escape\" && (this.popC_.shows.rawValue = !1) : this.view.pickerElement && e.key === \"Escape\" && this.swatchC_.view.buttonElement.focus();\n }\n }\n function Nl(i, e) {\n return te.isColorObject(i) ? te.fromObject(i, e) : te.black(e);\n }\n function Fl(i) {\n return u(i.getComponents(\"rgb\")).reduce((e, t) => e << 8 | Math.floor(t) & 255, 0);\n }\n function Bl(i) {\n return i.getComponents(\"rgb\").reduce((e, t, l) => {\n const b = Math.floor(l === 3 ? t * 255 : t) & 255;\n return e << 8 | b;\n }, 0) >>> 0;\n }\n function jl(i) {\n return new te([i >> 16 & 255, i >> 8 & 255, i & 255], \"rgb\");\n }\n function zl(i) {\n return new te([\n i >> 24 & 255,\n i >> 16 & 255,\n i >> 8 & 255,\n _e(i & 255, 0, 255, 0, 1)\n ], \"rgb\");\n }\n function Ul(i) {\n return typeof i != \"number\" ? te.black() : jl(i);\n }\n function Gl(i) {\n return typeof i != \"number\" ? te.black() : zl(i);\n }\n function Hl(i) {\n const e = Br(i);\n return e ? (t, l) => {\n nt(t, e(l));\n } : null;\n }\n function Kl(i) {\n const e = i ? Bl : Fl;\n return (t, l) => {\n nt(t, e(l));\n };\n }\n function $l(i, e, t) {\n const l = e.toRgbaObject(t);\n i.writeProperty(\"r\", l.r), i.writeProperty(\"g\", l.g), i.writeProperty(\"b\", l.b), i.writeProperty(\"a\", l.a);\n }\n function Xl(i, e, t) {\n const l = e.toRgbaObject(t);\n i.writeProperty(\"r\", l.r), i.writeProperty(\"g\", l.g), i.writeProperty(\"b\", l.b);\n }\n function Yl(i, e) {\n return (t, l) => {\n i ? $l(t, l, e) : Xl(t, l, e);\n };\n }\n function Kr(i) {\n var e;\n return !!(i != null && i.alpha || !((e = i == null ? void 0 : i.color) === null || e === void 0) && e.alpha);\n }\n function ql(i) {\n return i ? (e) => Fr(e, \"0x\") : (e) => zo(e, \"0x\");\n }\n function Ql(i) {\n return \"color\" in i || \"view\" in i && i.view === \"color\";\n }\n const Zl = {\n id: \"input-color-number\",\n type: \"input\",\n accept: (i, e) => {\n if (typeof i != \"number\" || !Ql(e))\n return null;\n const t = Dr(e);\n return t ? {\n initialValue: i,\n params: t\n } : null;\n },\n binding: {\n reader: (i) => Kr(i.params) ? Gl : Ul,\n equals: te.equals,\n writer: (i) => Kl(Kr(i.params))\n },\n controller: (i) => {\n const e = Kr(i.params), t = \"expanded\" in i.params ? i.params.expanded : void 0, l = \"picker\" in i.params ? i.params.picker : void 0;\n return new Hr(i.document, {\n colorType: \"int\",\n expanded: t ?? !1,\n formatter: ql(e),\n parser: Nr(\"int\"),\n pickerLayout: l ?? \"popup\",\n supportsAlpha: e,\n value: i.value,\n viewProps: i.viewProps\n });\n }\n };\n function Wl(i) {\n return te.isRgbaColorObject(i);\n }\n function Jl(i) {\n return (e) => Nl(e, i);\n }\n function ec(i, e) {\n return (t) => i ? Ho(t, e) : Go(t, e);\n }\n const tc = {\n id: \"input-color-object\",\n type: \"input\",\n accept: (i, e) => {\n if (!te.isColorObject(i))\n return null;\n const t = Dr(e);\n return t ? {\n initialValue: i,\n params: t\n } : null;\n },\n binding: {\n reader: (i) => Jl(Sn(i.params)),\n equals: te.equals,\n writer: (i) => Yl(Wl(i.initialValue), Sn(i.params))\n },\n controller: (i) => {\n var e;\n const t = te.isRgbaColorObject(i.initialValue), l = \"expanded\" in i.params ? i.params.expanded : void 0, b = \"picker\" in i.params ? i.params.picker : void 0, E = (e = Sn(i.params)) !== null && e !== void 0 ? e : \"int\";\n return new Hr(i.document, {\n colorType: E,\n expanded: l ?? !1,\n formatter: ec(t, E),\n parser: Nr(E),\n pickerLayout: b ?? \"popup\",\n supportsAlpha: t,\n value: i.value,\n viewProps: i.viewProps\n });\n }\n }, nc = {\n id: \"input-color-string\",\n type: \"input\",\n accept: (i, e) => {\n if (typeof i != \"string\" || \"view\" in e && e.view === \"text\")\n return null;\n const t = Or(i, Sn(e));\n if (!t || !Br(t))\n return null;\n const b = Dr(e);\n return b ? {\n initialValue: i,\n params: b\n } : null;\n },\n binding: {\n reader: (i) => {\n var e;\n return fl((e = Sn(i.params)) !== null && e !== void 0 ? e : \"int\");\n },\n equals: te.equals,\n writer: (i) => {\n const e = Or(i.initialValue, Sn(i.params));\n if (!e)\n throw S.shouldNeverHappen();\n const t = Hl(e);\n if (!t)\n throw S.notBindable();\n return t;\n }\n },\n controller: (i) => {\n const e = Or(i.initialValue, Sn(i.params));\n if (!e)\n throw S.shouldNeverHappen();\n const t = Br(e);\n if (!t)\n throw S.shouldNeverHappen();\n const l = \"expanded\" in i.params ? i.params.expanded : void 0, b = \"picker\" in i.params ? i.params.picker : void 0;\n return new Hr(i.document, {\n colorType: e.type,\n expanded: l ?? !1,\n formatter: t,\n parser: Nr(e.type),\n pickerLayout: b ?? \"popup\",\n supportsAlpha: e.alpha,\n value: i.value,\n viewProps: i.viewProps\n });\n }\n };\n class Jt {\n constructor(e) {\n this.components = e.components, this.asm_ = e.assembly;\n }\n constrain(e) {\n const t = this.asm_.toComponents(e).map((l, b) => {\n var E, k;\n return (k = (E = this.components[b]) === null || E === void 0 ? void 0 : E.constrain(l)) !== null && k !== void 0 ? k : l;\n });\n return this.asm_.fromComponents(t);\n }\n }\n const $o = D(\"pndtxt\");\n class ic {\n constructor(e, t) {\n this.textViews = t.textViews, this.element = e.createElement(\"div\"), this.element.classList.add($o()), this.textViews.forEach((l) => {\n const b = e.createElement(\"div\");\n b.classList.add($o(\"a\")), b.appendChild(l.element), this.element.appendChild(b);\n });\n }\n }\n function sc(i, e, t) {\n return new En(i, {\n arrayPosition: t === 0 ? \"fst\" : t === e.axes.length - 1 ? \"lst\" : \"mid\",\n baseStep: e.axes[t].baseStep,\n parser: e.parser,\n props: e.axes[t].textProps,\n value: ee(0, {\n constraint: e.axes[t].constraint\n }),\n viewProps: e.viewProps\n });\n }\n class $r {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.acs_ = t.axes.map((l, b) => sc(e, t, b)), this.acs_.forEach((l, b) => {\n Zt({\n primary: this.value,\n secondary: l.value,\n forward: (E) => t.assembly.toComponents(E.rawValue)[b],\n backward: (E, k) => {\n const B = t.assembly.toComponents(E.rawValue);\n return B[b] = k.rawValue, t.assembly.fromComponents(B);\n }\n });\n }), this.view = new ic(e, {\n textViews: this.acs_.map((l) => l.view)\n });\n }\n }\n function Xo(i, e) {\n return \"step\" in i && !_(i.step) ? new Zn(i.step, e) : null;\n }\n function Yo(i) {\n return !_(i.max) && !_(i.min) ? new qt({\n max: i.max,\n min: i.min\n }) : !_(i.max) || !_(i.min) ? new Pi({\n max: i.max,\n min: i.min\n }) : null;\n }\n function rc(i) {\n const e = tt(i, qt);\n if (e)\n return [e.values.get(\"min\"), e.values.get(\"max\")];\n const t = tt(i, Pi);\n return t ? [t.minValue, t.maxValue] : [void 0, void 0];\n }\n function oc(i, e) {\n const t = [], l = Xo(i, e);\n l && t.push(l);\n const b = Yo(i);\n b && t.push(b);\n const E = Bi(i.options);\n return E && t.push(E), new bn(t);\n }\n const ac = {\n id: \"input-number\",\n type: \"input\",\n accept: (i, e) => {\n if (typeof i != \"number\")\n return null;\n const t = M, l = le(e, {\n format: t.optional.function,\n max: t.optional.number,\n min: t.optional.number,\n options: t.optional.custom(Pn),\n step: t.optional.number\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => bt,\n constraint: (i) => oc(i.params, i.initialValue),\n writer: (i) => nt\n },\n controller: (i) => {\n var e;\n const t = i.value, l = i.constraint, b = l && tt(l, gn);\n if (b)\n return new _n(i.document, {\n props: new X({\n options: b.values.value(\"options\")\n }),\n value: t,\n viewProps: i.viewProps\n });\n const E = (e = \"format\" in i.params ? i.params.format : void 0) !== null && e !== void 0 ? e : Ie(ni(l, t.rawValue)), k = l && tt(l, qt);\n return k ? new ti(i.document, {\n baseStep: Dt(l),\n parser: lt,\n sliderProps: new X({\n maxValue: k.values.value(\"max\"),\n minValue: k.values.value(\"min\")\n }),\n textProps: X.fromObject({\n draggingScale: Ot(l, t.rawValue),\n formatter: E\n }),\n value: t,\n viewProps: i.viewProps\n }) : new En(i.document, {\n baseStep: Dt(l),\n parser: lt,\n props: X.fromObject({\n draggingScale: Ot(l, t.rawValue),\n formatter: E\n }),\n value: t,\n viewProps: i.viewProps\n });\n }\n };\n class en {\n constructor(e = 0, t = 0) {\n this.x = e, this.y = t;\n }\n getComponents() {\n return [this.x, this.y];\n }\n static isObject(e) {\n if (_(e))\n return !1;\n const t = e.x, l = e.y;\n return !(typeof t != \"number\" || typeof l != \"number\");\n }\n static equals(e, t) {\n return e.x === t.x && e.y === t.y;\n }\n toObject() {\n return {\n x: this.x,\n y: this.y\n };\n }\n }\n const qo = {\n toComponents: (i) => i.getComponents(),\n fromComponents: (i) => new en(...i)\n }, ri = D(\"p2d\");\n class lc {\n constructor(e, t) {\n this.element = e.createElement(\"div\"), this.element.classList.add(ri()), t.viewProps.bindClassModifiers(this.element), N(t.expanded, K(this.element, ri(void 0, \"expanded\")));\n const l = e.createElement(\"div\");\n l.classList.add(ri(\"h\")), this.element.appendChild(l);\n const b = e.createElement(\"button\");\n b.classList.add(ri(\"b\")), b.appendChild(xt(e, \"p2dpad\")), t.viewProps.bindDisabled(b), l.appendChild(b), this.buttonElement = b;\n const E = e.createElement(\"div\");\n if (E.classList.add(ri(\"t\")), l.appendChild(E), this.textElement = E, t.pickerLayout === \"inline\") {\n const k = e.createElement(\"div\");\n k.classList.add(ri(\"p\")), this.element.appendChild(k), this.pickerElement = k;\n } else\n this.pickerElement = null;\n }\n }\n const tn = D(\"p2dp\");\n class cc {\n constructor(e, t) {\n this.onFoldableChange_ = this.onFoldableChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.invertsY_ = t.invertsY, this.maxValue_ = t.maxValue, this.element = e.createElement(\"div\"), this.element.classList.add(tn()), t.layout === \"popup\" && this.element.classList.add(tn(void 0, \"p\")), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"div\");\n l.classList.add(tn(\"p\")), t.viewProps.bindTabIndex(l), this.element.appendChild(l), this.padElement = l;\n const b = e.createElementNS(ze, \"svg\");\n b.classList.add(tn(\"g\")), this.padElement.appendChild(b), this.svgElem_ = b;\n const E = e.createElementNS(ze, \"line\");\n E.classList.add(tn(\"ax\")), E.setAttributeNS(null, \"x1\", \"0\"), E.setAttributeNS(null, \"y1\", \"50%\"), E.setAttributeNS(null, \"x2\", \"100%\"), E.setAttributeNS(null, \"y2\", \"50%\"), this.svgElem_.appendChild(E);\n const k = e.createElementNS(ze, \"line\");\n k.classList.add(tn(\"ax\")), k.setAttributeNS(null, \"x1\", \"50%\"), k.setAttributeNS(null, \"y1\", \"0\"), k.setAttributeNS(null, \"x2\", \"50%\"), k.setAttributeNS(null, \"y2\", \"100%\"), this.svgElem_.appendChild(k);\n const B = e.createElementNS(ze, \"line\");\n B.classList.add(tn(\"l\")), B.setAttributeNS(null, \"x1\", \"50%\"), B.setAttributeNS(null, \"y1\", \"50%\"), this.svgElem_.appendChild(B), this.lineElem_ = B;\n const Q = e.createElement(\"div\");\n Q.classList.add(tn(\"m\")), this.padElement.appendChild(Q), this.markerElem_ = Q, t.value.emitter.on(\"change\", this.onValueChange_), this.value = t.value, this.update_();\n }\n get allFocusableElements() {\n return [this.padElement];\n }\n update_() {\n const [e, t] = this.value.rawValue.getComponents(), l = this.maxValue_, b = _e(e, -l, +l, 0, 100), E = _e(t, -l, +l, 0, 100), k = this.invertsY_ ? 100 - E : E;\n this.lineElem_.setAttributeNS(null, \"x2\", `${b}%`), this.lineElem_.setAttributeNS(null, \"y2\", `${k}%`), this.markerElem_.style.left = `${b}%`, this.markerElem_.style.top = `${k}%`;\n }\n onValueChange_() {\n this.update_();\n }\n onFoldableChange_() {\n this.update_();\n }\n }\n function Qo(i, e, t) {\n return [\n Oe(e[0], ct(i)),\n Oe(e[1], xn(i)) * (t ? 1 : -1)\n ];\n }\n class uc {\n constructor(e, t) {\n this.onPadKeyDown_ = this.onPadKeyDown_.bind(this), this.onPadKeyUp_ = this.onPadKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.baseSteps_ = t.baseSteps, this.maxValue_ = t.maxValue, this.invertsY_ = t.invertsY, this.view = new cc(e, {\n invertsY: this.invertsY_,\n layout: t.layout,\n maxValue: this.maxValue_,\n value: this.value,\n viewProps: this.viewProps\n }), this.ptHandler_ = new Vt(this.view.padElement), this.ptHandler_.emitter.on(\"down\", this.onPointerDown_), this.ptHandler_.emitter.on(\"move\", this.onPointerMove_), this.ptHandler_.emitter.on(\"up\", this.onPointerUp_), this.view.padElement.addEventListener(\"keydown\", this.onPadKeyDown_), this.view.padElement.addEventListener(\"keyup\", this.onPadKeyUp_);\n }\n handlePointerEvent_(e, t) {\n if (!e.point)\n return;\n const l = this.maxValue_, b = _e(e.point.x, 0, e.bounds.width, -l, +l), E = _e(this.invertsY_ ? e.bounds.height - e.point.y : e.point.y, 0, e.bounds.height, -l, +l);\n this.value.setRawValue(new en(b, E), t);\n }\n onPointerDown_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(e) {\n this.handlePointerEvent_(e.data, {\n forceEmit: !0,\n last: !0\n });\n }\n onPadKeyDown_(e) {\n ei(e.key) && e.preventDefault();\n const [t, l] = Qo(e, this.baseSteps_, this.invertsY_);\n t === 0 && l === 0 || this.value.setRawValue(new en(this.value.rawValue.x + t, this.value.rawValue.y + l), {\n forceEmit: !1,\n last: !1\n });\n }\n onPadKeyUp_(e) {\n const [t, l] = Qo(e, this.baseSteps_, this.invertsY_);\n t === 0 && l === 0 || this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n class pc {\n constructor(e, t) {\n var l, b;\n this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.onPadButtonBlur_ = this.onPadButtonBlur_.bind(this), this.onPadButtonClick_ = this.onPadButtonClick_.bind(this), this.value = t.value, this.viewProps = t.viewProps, this.foldable_ = De.create(t.expanded), this.popC_ = t.pickerLayout === \"popup\" ? new ms(e, {\n viewProps: this.viewProps\n }) : null;\n const E = new uc(e, {\n baseSteps: [t.axes[0].baseStep, t.axes[1].baseStep],\n invertsY: t.invertsY,\n layout: t.pickerLayout,\n maxValue: t.maxValue,\n value: this.value,\n viewProps: this.viewProps\n });\n E.view.allFocusableElements.forEach((k) => {\n k.addEventListener(\"blur\", this.onPopupChildBlur_), k.addEventListener(\"keydown\", this.onPopupChildKeydown_);\n }), this.pickerC_ = E, this.textC_ = new $r(e, {\n assembly: qo,\n axes: t.axes,\n parser: t.parser,\n value: this.value,\n viewProps: this.viewProps\n }), this.view = new lc(e, {\n expanded: this.foldable_.value(\"expanded\"),\n pickerLayout: t.pickerLayout,\n viewProps: this.viewProps\n }), this.view.textElement.appendChild(this.textC_.view.element), (l = this.view.buttonElement) === null || l === void 0 || l.addEventListener(\"blur\", this.onPadButtonBlur_), (b = this.view.buttonElement) === null || b === void 0 || b.addEventListener(\"click\", this.onPadButtonClick_), this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), Zt({\n primary: this.foldable_.value(\"expanded\"),\n secondary: this.popC_.shows,\n forward: (k) => k.rawValue,\n backward: (k, B) => B.rawValue\n })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Ue(this.foldable_, this.view.pickerElement));\n }\n onPadButtonBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.view.element, l = e.relatedTarget;\n (!l || !t.contains(l)) && (this.popC_.shows.rawValue = !1);\n }\n onPadButtonClick_() {\n this.foldable_.set(\"expanded\", !this.foldable_.get(\"expanded\")), this.foldable_.get(\"expanded\") && this.pickerC_.view.allFocusableElements[0].focus();\n }\n onPopupChildBlur_(e) {\n if (!this.popC_)\n return;\n const t = this.popC_.view.element, l = Et(e);\n l && t.contains(l) || l && l === this.view.buttonElement && !ft(t.ownerDocument) || (this.popC_.shows.rawValue = !1);\n }\n onPopupChildKeydown_(e) {\n this.popC_ ? e.key === \"Escape\" && (this.popC_.shows.rawValue = !1) : this.view.pickerElement && e.key === \"Escape\" && this.view.buttonElement.focus();\n }\n }\n class oi {\n constructor(e = 0, t = 0, l = 0) {\n this.x = e, this.y = t, this.z = l;\n }\n getComponents() {\n return [this.x, this.y, this.z];\n }\n static isObject(e) {\n if (_(e))\n return !1;\n const t = e.x, l = e.y, b = e.z;\n return !(typeof t != \"number\" || typeof l != \"number\" || typeof b != \"number\");\n }\n static equals(e, t) {\n return e.x === t.x && e.y === t.y && e.z === t.z;\n }\n toObject() {\n return {\n x: this.x,\n y: this.y,\n z: this.z\n };\n }\n }\n const Zo = {\n toComponents: (i) => i.getComponents(),\n fromComponents: (i) => new oi(...i)\n };\n function hc(i) {\n return oi.isObject(i) ? new oi(i.x, i.y, i.z) : new oi();\n }\n function dc(i, e) {\n i.writeProperty(\"x\", e.x), i.writeProperty(\"y\", e.y), i.writeProperty(\"z\", e.z);\n }\n function mc(i, e) {\n return new Jt({\n assembly: Zo,\n components: [\n Ft(\"x\" in i ? i.x : void 0, e.x),\n Ft(\"y\" in i ? i.y : void 0, e.y),\n Ft(\"z\" in i ? i.z : void 0, e.z)\n ]\n });\n }\n function Xr(i, e) {\n return {\n baseStep: Dt(e),\n constraint: e,\n textProps: X.fromObject({\n draggingScale: Ot(e, i),\n formatter: Ie(ni(e, i))\n })\n };\n }\n const fc = {\n id: \"input-point3d\",\n type: \"input\",\n accept: (i, e) => {\n if (!oi.isObject(i))\n return null;\n const t = M, l = le(e, {\n x: t.optional.custom(gt),\n y: t.optional.custom(gt),\n z: t.optional.custom(gt)\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => hc,\n constraint: (i) => mc(i.params, i.initialValue),\n equals: oi.equals,\n writer: (i) => dc\n },\n controller: (i) => {\n const e = i.value, t = i.constraint;\n if (!(t instanceof Jt))\n throw S.shouldNeverHappen();\n return new $r(i.document, {\n assembly: Zo,\n axes: [\n Xr(e.rawValue.x, t.components[0]),\n Xr(e.rawValue.y, t.components[1]),\n Xr(e.rawValue.z, t.components[2])\n ],\n parser: lt,\n value: e,\n viewProps: i.viewProps\n });\n }\n };\n class ai {\n constructor(e = 0, t = 0, l = 0, b = 0) {\n this.x = e, this.y = t, this.z = l, this.w = b;\n }\n getComponents() {\n return [this.x, this.y, this.z, this.w];\n }\n static isObject(e) {\n if (_(e))\n return !1;\n const t = e.x, l = e.y, b = e.z, E = e.w;\n return !(typeof t != \"number\" || typeof l != \"number\" || typeof b != \"number\" || typeof E != \"number\");\n }\n static equals(e, t) {\n return e.x === t.x && e.y === t.y && e.z === t.z && e.w === t.w;\n }\n toObject() {\n return {\n x: this.x,\n y: this.y,\n z: this.z,\n w: this.w\n };\n }\n }\n const Wo = {\n toComponents: (i) => i.getComponents(),\n fromComponents: (i) => new ai(...i)\n };\n function vc(i) {\n return ai.isObject(i) ? new ai(i.x, i.y, i.z, i.w) : new ai();\n }\n function bc(i, e) {\n i.writeProperty(\"x\", e.x), i.writeProperty(\"y\", e.y), i.writeProperty(\"z\", e.z), i.writeProperty(\"w\", e.w);\n }\n function gc(i, e) {\n return new Jt({\n assembly: Wo,\n components: [\n Ft(\"x\" in i ? i.x : void 0, e.x),\n Ft(\"y\" in i ? i.y : void 0, e.y),\n Ft(\"z\" in i ? i.z : void 0, e.z),\n Ft(\"w\" in i ? i.w : void 0, e.w)\n ]\n });\n }\n function _c(i, e) {\n return {\n baseStep: Dt(e),\n constraint: e,\n textProps: X.fromObject({\n draggingScale: Ot(e, i),\n formatter: Ie(ni(e, i))\n })\n };\n }\n const wc = {\n id: \"input-point4d\",\n type: \"input\",\n accept: (i, e) => {\n if (!ai.isObject(i))\n return null;\n const t = M, l = le(e, {\n x: t.optional.custom(gt),\n y: t.optional.custom(gt),\n z: t.optional.custom(gt),\n w: t.optional.custom(gt)\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => vc,\n constraint: (i) => gc(i.params, i.initialValue),\n equals: ai.equals,\n writer: (i) => bc\n },\n controller: (i) => {\n const e = i.value, t = i.constraint;\n if (!(t instanceof Jt))\n throw S.shouldNeverHappen();\n return new $r(i.document, {\n assembly: Wo,\n axes: e.rawValue.getComponents().map((l, b) => _c(l, t.components[b])),\n parser: lt,\n value: e,\n viewProps: i.viewProps\n });\n }\n };\n function yc(i) {\n const e = [], t = Bi(i.options);\n return t && e.push(t), new bn(e);\n }\n const xc = {\n id: \"input-string\",\n type: \"input\",\n accept: (i, e) => {\n if (typeof i != \"string\")\n return null;\n const l = le(e, {\n options: M.optional.custom(Pn)\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => Ai,\n constraint: (i) => yc(i.params),\n writer: (i) => nt\n },\n controller: (i) => {\n const e = i.document, t = i.value, l = i.constraint, b = l && tt(l, gn);\n return b ? new _n(e, {\n props: new X({\n options: b.values.value(\"options\")\n }),\n value: t,\n viewProps: i.viewProps\n }) : new Wn(e, {\n parser: (E) => E,\n props: X.fromObject({\n formatter: Pt\n }),\n value: t,\n viewProps: i.viewProps\n });\n }\n }, Ui = {\n monitor: {\n defaultInterval: 200,\n defaultLineCount: 3\n }\n }, Jo = D(\"mll\");\n class Ec {\n constructor(e, t) {\n this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement(\"div\"), this.element.classList.add(Jo()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"textarea\");\n l.classList.add(Jo(\"i\")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, l.readOnly = !0, t.viewProps.bindDisabled(l), this.element.appendChild(l), this.textareaElem_ = l, t.value.emitter.on(\"change\", this.onValueUpdate_), this.value = t.value, this.update_();\n }\n update_() {\n const e = this.textareaElem_, t = e.scrollTop === e.scrollHeight - e.clientHeight, l = [];\n this.value.rawValue.forEach((b) => {\n b !== void 0 && l.push(this.formatter_(b));\n }), e.textContent = l.join(`\n`), t && (e.scrollTop = e.scrollHeight);\n }\n onValueUpdate_() {\n this.update_();\n }\n }\n class Yr {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.view = new Ec(e, {\n formatter: t.formatter,\n lineCount: t.lineCount,\n value: this.value,\n viewProps: this.viewProps\n });\n }\n }\n const ea = D(\"sgl\");\n class Cc {\n constructor(e, t) {\n this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.formatter_ = t.formatter, this.element = e.createElement(\"div\"), this.element.classList.add(ea()), t.viewProps.bindClassModifiers(this.element);\n const l = e.createElement(\"input\");\n l.classList.add(ea(\"i\")), l.readOnly = !0, l.type = \"text\", t.viewProps.bindDisabled(l), this.element.appendChild(l), this.inputElement = l, t.value.emitter.on(\"change\", this.onValueUpdate_), this.value = t.value, this.update_();\n }\n update_() {\n const e = this.value.rawValue, t = e[e.length - 1];\n this.inputElement.value = t !== void 0 ? this.formatter_(t) : \"\";\n }\n onValueUpdate_() {\n this.update_();\n }\n }\n class qr {\n constructor(e, t) {\n this.value = t.value, this.viewProps = t.viewProps, this.view = new Cc(e, {\n formatter: t.formatter,\n value: this.value,\n viewProps: this.viewProps\n });\n }\n }\n const Pc = {\n id: \"monitor-bool\",\n type: \"monitor\",\n accept: (i, e) => {\n if (typeof i != \"boolean\")\n return null;\n const l = le(e, {\n lineCount: M.optional.number\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => vs\n },\n controller: (i) => {\n var e;\n return i.value.rawValue.length === 1 ? new qr(i.document, {\n formatter: bs,\n value: i.value,\n viewProps: i.viewProps\n }) : new Yr(i.document, {\n formatter: bs,\n lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount,\n value: i.value,\n viewProps: i.viewProps\n });\n }\n }, nn = D(\"grl\");\n class Tc {\n constructor(e, t) {\n this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = e.createElement(\"div\"), this.element.classList.add(nn()), t.viewProps.bindClassModifiers(this.element), this.formatter_ = t.formatter, this.props_ = t.props, this.cursor_ = t.cursor, this.cursor_.emitter.on(\"change\", this.onCursorChange_);\n const l = e.createElementNS(ze, \"svg\");\n l.classList.add(nn(\"g\")), l.style.height = `calc(var(--bld-us) * ${t.lineCount})`, this.element.appendChild(l), this.svgElem_ = l;\n const b = e.createElementNS(ze, \"polyline\");\n this.svgElem_.appendChild(b), this.lineElem_ = b;\n const E = e.createElement(\"div\");\n E.classList.add(nn(\"t\"), D(\"tt\")()), this.element.appendChild(E), this.tooltipElem_ = E, t.value.emitter.on(\"change\", this.onValueUpdate_), this.value = t.value, this.update_();\n }\n get graphElement() {\n return this.svgElem_;\n }\n update_() {\n const e = this.svgElem_.getBoundingClientRect(), t = this.value.rawValue.length - 1, l = this.props_.get(\"minValue\"), b = this.props_.get(\"maxValue\"), E = [];\n this.value.rawValue.forEach((de, ve) => {\n if (de === void 0)\n return;\n const Ln = _e(ve, 0, t, 0, e.width), Gi = _e(de, l, b, e.height, 0);\n E.push([Ln, Gi].join(\",\"));\n }), this.lineElem_.setAttributeNS(null, \"points\", E.join(\" \"));\n const k = this.tooltipElem_, B = this.value.rawValue[this.cursor_.rawValue];\n if (B === void 0) {\n k.classList.remove(nn(\"t\", \"a\"));\n return;\n }\n const Q = _e(this.cursor_.rawValue, 0, t, 0, e.width), J = _e(B, l, b, e.height, 0);\n k.style.left = `${Q}px`, k.style.top = `${J}px`, k.textContent = `${this.formatter_(B)}`, k.classList.contains(nn(\"t\", \"a\")) || (k.classList.add(nn(\"t\", \"a\"), nn(\"t\", \"in\")), rt(k), k.classList.remove(nn(\"t\", \"in\")));\n }\n onValueUpdate_() {\n this.update_();\n }\n onCursorChange_() {\n this.update_();\n }\n }\n class kc {\n constructor(e, t) {\n if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = t.props, this.value = t.value, this.viewProps = t.viewProps, this.cursor_ = ee(-1), this.view = new Tc(e, {\n cursor: this.cursor_,\n formatter: t.formatter,\n lineCount: t.lineCount,\n props: this.props_,\n value: this.value,\n viewProps: this.viewProps\n }), !ft(e))\n this.view.element.addEventListener(\"mousemove\", this.onGraphMouseMove_), this.view.element.addEventListener(\"mouseleave\", this.onGraphMouseLeave_);\n else {\n const l = new Vt(this.view.element);\n l.emitter.on(\"down\", this.onGraphPointerDown_), l.emitter.on(\"move\", this.onGraphPointerMove_), l.emitter.on(\"up\", this.onGraphPointerUp_);\n }\n }\n onGraphMouseLeave_() {\n this.cursor_.rawValue = -1;\n }\n onGraphMouseMove_(e) {\n const t = this.view.element.getBoundingClientRect();\n this.cursor_.rawValue = Math.floor(_e(e.offsetX, 0, t.width, 0, this.value.rawValue.length));\n }\n onGraphPointerDown_(e) {\n this.onGraphPointerMove_(e);\n }\n onGraphPointerMove_(e) {\n if (!e.data.point) {\n this.cursor_.rawValue = -1;\n return;\n }\n this.cursor_.rawValue = Math.floor(_e(e.data.point.x, 0, e.data.bounds.width, 0, this.value.rawValue.length));\n }\n onGraphPointerUp_() {\n this.cursor_.rawValue = -1;\n }\n }\n function Qr(i) {\n return \"format\" in i && !_(i.format) ? i.format : Ie(2);\n }\n function Mc(i) {\n var e;\n return i.value.rawValue.length === 1 ? new qr(i.document, {\n formatter: Qr(i.params),\n value: i.value,\n viewProps: i.viewProps\n }) : new Yr(i.document, {\n formatter: Qr(i.params),\n lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount,\n value: i.value,\n viewProps: i.viewProps\n });\n }\n function Sc(i) {\n var e, t, l;\n return new kc(i.document, {\n formatter: Qr(i.params),\n lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount,\n props: X.fromObject({\n maxValue: (t = \"max\" in i.params ? i.params.max : null) !== null && t !== void 0 ? t : 100,\n minValue: (l = \"min\" in i.params ? i.params.min : null) !== null && l !== void 0 ? l : 0\n }),\n value: i.value,\n viewProps: i.viewProps\n });\n }\n function ta(i) {\n return \"view\" in i && i.view === \"graph\";\n }\n const Lc = {\n id: \"monitor-number\",\n type: \"monitor\",\n accept: (i, e) => {\n if (typeof i != \"number\")\n return null;\n const t = M, l = le(e, {\n format: t.optional.function,\n lineCount: t.optional.number,\n max: t.optional.number,\n min: t.optional.number,\n view: t.optional.string\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n defaultBufferSize: (i) => ta(i) ? 64 : 1,\n reader: (i) => bt\n },\n controller: (i) => ta(i.params) ? Sc(i) : Mc(i)\n }, Ac = {\n id: \"monitor-string\",\n type: \"monitor\",\n accept: (i, e) => {\n if (typeof i != \"string\")\n return null;\n const t = M, l = le(e, {\n lineCount: t.optional.number,\n multiline: t.optional.boolean\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => Ai\n },\n controller: (i) => {\n var e;\n const t = i.value;\n return t.rawValue.length > 1 || \"multiline\" in i.params && i.params.multiline ? new Yr(i.document, {\n formatter: Pt,\n lineCount: (e = i.params.lineCount) !== null && e !== void 0 ? e : Ui.monitor.defaultLineCount,\n value: t,\n viewProps: i.viewProps\n }) : new qr(i.document, {\n formatter: Pt,\n value: t,\n viewProps: i.viewProps\n });\n }\n };\n function Rc(i, e) {\n var t;\n const l = i.accept(e.target.read(), e.params);\n if (_(l))\n return null;\n const b = M, E = {\n target: e.target,\n initialValue: l.initialValue,\n params: l.params\n }, k = i.binding.reader(E), B = i.binding.constraint ? i.binding.constraint(E) : void 0, Q = ee(k(l.initialValue), {\n constraint: B,\n equals: i.binding.equals\n }), J = new Qn({\n reader: k,\n target: e.target,\n value: Q,\n writer: i.binding.writer(E)\n }), de = b.optional.boolean(e.params.disabled).value, ve = b.optional.boolean(e.params.hidden).value, Ln = i.controller({\n constraint: B,\n document: e.document,\n initialValue: l.initialValue,\n params: l.params,\n value: J.value,\n viewProps: Ye.create({\n disabled: de,\n hidden: ve\n })\n });\n return new je(e.document, {\n binding: J,\n blade: ye(),\n props: X.fromObject({\n label: \"label\" in e.params ? (t = b.optional.string(e.params.label).value) !== null && t !== void 0 ? t : null : e.target.key\n }),\n valueController: Ln\n });\n }\n function Ic(i, e) {\n return e === 0 ? new us() : new Ci(i, e ?? Ui.monitor.defaultInterval);\n }\n function Vc(i, e) {\n var t, l, b;\n const E = M, k = i.accept(e.target.read(), e.params);\n if (_(k))\n return null;\n const B = {\n target: e.target,\n initialValue: k.initialValue,\n params: k.params\n }, Q = i.binding.reader(B), J = (l = (t = E.optional.number(e.params.bufferSize).value) !== null && t !== void 0 ? t : i.binding.defaultBufferSize && i.binding.defaultBufferSize(k.params)) !== null && l !== void 0 ? l : 1, de = E.optional.number(e.params.interval).value, ve = new pr({\n reader: Q,\n target: e.target,\n ticker: Ic(e.document, de),\n value: ps(J)\n }), Ln = E.optional.boolean(e.params.disabled).value, Gi = E.optional.boolean(e.params.hidden).value, Hi = i.controller({\n document: e.document,\n params: k.params,\n value: ve.value,\n viewProps: Ye.create({\n disabled: Ln,\n hidden: Gi\n })\n });\n return new ot(e.document, {\n binding: ve,\n blade: ye(),\n props: X.fromObject({\n label: \"label\" in e.params ? (b = E.optional.string(e.params.label).value) !== null && b !== void 0 ? b : null : e.target.key\n }),\n valueController: Hi\n });\n }\n class Dc {\n constructor() {\n this.pluginsMap_ = {\n blades: [],\n inputs: [],\n monitors: []\n };\n }\n getAll() {\n return [\n ...this.pluginsMap_.blades,\n ...this.pluginsMap_.inputs,\n ...this.pluginsMap_.monitors\n ];\n }\n register(e) {\n e.type === \"blade\" ? this.pluginsMap_.blades.unshift(e) : e.type === \"input\" ? this.pluginsMap_.inputs.unshift(e) : e.type === \"monitor\" && this.pluginsMap_.monitors.unshift(e);\n }\n createInput(e, t, l) {\n const b = t.read();\n if (_(b))\n throw new S({\n context: {\n key: t.key\n },\n type: \"nomatchingcontroller\"\n });\n const E = this.pluginsMap_.inputs.reduce((k, B) => k ?? Rc(B, {\n document: e,\n target: t,\n params: l\n }), null);\n if (E)\n return E;\n throw new S({\n context: {\n key: t.key\n },\n type: \"nomatchingcontroller\"\n });\n }\n createMonitor(e, t, l) {\n const b = this.pluginsMap_.monitors.reduce((E, k) => E ?? Vc(k, {\n document: e,\n params: l,\n target: t\n }), null);\n if (b)\n return b;\n throw new S({\n context: {\n key: t.key\n },\n type: \"nomatchingcontroller\"\n });\n }\n createBlade(e, t) {\n const l = this.pluginsMap_.blades.reduce((b, E) => b ?? ur(E, {\n document: e,\n params: t\n }), null);\n if (!l)\n throw new S({\n type: \"nomatchingview\",\n context: {\n params: t\n }\n });\n return l;\n }\n createBladeApi(e) {\n if (e instanceof je)\n return new vi(e);\n if (e instanceof ot)\n return new bi(e);\n if (e instanceof mn)\n return new Xn(e, this);\n const t = this.pluginsMap_.blades.reduce((l, b) => l ?? b.api({\n controller: e,\n pool: this\n }), null);\n if (!t)\n throw S.shouldNeverHappen();\n return t;\n }\n }\n function Oc() {\n const i = new Dc();\n return [\n Uc,\n fc,\n wc,\n xc,\n ac,\n nc,\n tc,\n Zl,\n ii,\n Pc,\n Ac,\n Lc,\n W,\n rr,\n ar,\n Ei\n ].forEach((e) => {\n i.register(e);\n }), i;\n }\n function Nc(i) {\n return en.isObject(i) ? new en(i.x, i.y) : new en();\n }\n function Fc(i, e) {\n i.writeProperty(\"x\", e.x), i.writeProperty(\"y\", e.y);\n }\n function Ft(i, e) {\n if (!i)\n return;\n const t = [], l = Xo(i, e);\n l && t.push(l);\n const b = Yo(i);\n return b && t.push(b), new bn(t);\n }\n function Bc(i, e) {\n return new Jt({\n assembly: qo,\n components: [\n Ft(\"x\" in i ? i.x : void 0, e.x),\n Ft(\"y\" in i ? i.y : void 0, e.y)\n ]\n });\n }\n function na(i, e) {\n const [t, l] = i ? rc(i) : [];\n if (!_(t) || !_(l))\n return Math.max(Math.abs(t ?? 0), Math.abs(l ?? 0));\n const b = Dt(i);\n return Math.max(Math.abs(b) * 10, Math.abs(e) * 10);\n }\n function jc(i, e) {\n const t = e instanceof Jt ? e.components[0] : void 0, l = e instanceof Jt ? e.components[1] : void 0, b = na(t, i.x), E = na(l, i.y);\n return Math.max(b, E);\n }\n function ia(i, e) {\n return {\n baseStep: Dt(e),\n constraint: e,\n textProps: X.fromObject({\n draggingScale: Ot(e, i),\n formatter: Ie(ni(e, i))\n })\n };\n }\n function zc(i) {\n if (!(\"y\" in i))\n return !1;\n const e = i.y;\n return e && \"inverted\" in e ? !!e.inverted : !1;\n }\n const Uc = {\n id: \"input-point2d\",\n type: \"input\",\n accept: (i, e) => {\n if (!en.isObject(i))\n return null;\n const t = M, l = le(e, {\n expanded: t.optional.boolean,\n picker: t.optional.custom(Fi),\n x: t.optional.custom(gt),\n y: t.optional.object({\n inverted: t.optional.boolean,\n max: t.optional.number,\n min: t.optional.number,\n step: t.optional.number\n })\n });\n return l ? {\n initialValue: i,\n params: l\n } : null;\n },\n binding: {\n reader: (i) => Nc,\n constraint: (i) => Bc(i.params, i.initialValue),\n equals: en.equals,\n writer: (i) => Fc\n },\n controller: (i) => {\n const e = i.document, t = i.value, l = i.constraint;\n if (!(l instanceof Jt))\n throw S.shouldNeverHappen();\n const b = \"expanded\" in i.params ? i.params.expanded : void 0, E = \"picker\" in i.params ? i.params.picker : void 0;\n return new pc(e, {\n axes: [\n ia(t.rawValue.x, l.components[0]),\n ia(t.rawValue.y, l.components[1])\n ],\n expanded: b ?? !1,\n invertsY: zc(i.params),\n maxValue: jc(t.rawValue, l),\n parser: lt,\n pickerLayout: E ?? \"popup\",\n value: t,\n viewProps: i.viewProps\n });\n }\n };\n class sa extends a {\n constructor(e) {\n super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on(\"change\", (t) => {\n this.emitter_.emit(\"change\", {\n event: new p(this, t.rawValue)\n });\n });\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get options() {\n return this.controller_.valueController.props.get(\"options\");\n }\n set options(e) {\n this.controller_.valueController.props.set(\"options\", e);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(e) {\n this.controller_.valueController.value.rawValue = e;\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n }\n class ra extends a {\n constructor(e) {\n super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on(\"change\", (t) => {\n this.emitter_.emit(\"change\", {\n event: new p(this, t.rawValue)\n });\n });\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get maxValue() {\n return this.controller_.valueController.sliderController.props.get(\"maxValue\");\n }\n set maxValue(e) {\n this.controller_.valueController.sliderController.props.set(\"maxValue\", e);\n }\n get minValue() {\n return this.controller_.valueController.sliderController.props.get(\"minValue\");\n }\n set minValue(e) {\n this.controller_.valueController.sliderController.props.set(\"minValue\", e);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(e) {\n this.controller_.valueController.value.rawValue = e;\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n }\n class oa extends a {\n constructor(e) {\n super(e), this.emitter_ = new F(), this.controller_.valueController.value.emitter.on(\"change\", (t) => {\n this.emitter_.emit(\"change\", {\n event: new p(this, t.rawValue)\n });\n });\n }\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(e) {\n this.controller_.props.set(\"label\", e);\n }\n get formatter() {\n return this.controller_.valueController.props.get(\"formatter\");\n }\n set formatter(e) {\n this.controller_.valueController.props.set(\"formatter\", e);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(e) {\n this.controller_.valueController.value.rawValue = e;\n }\n on(e, t) {\n const l = t.bind(this);\n return this.emitter_.on(e, (b) => {\n l(b.event);\n }), this;\n }\n }\n const Gc = function() {\n return {\n id: \"list\",\n type: \"blade\",\n accept(i) {\n const e = M, t = le(i, {\n options: e.required.custom(Pn),\n value: e.required.raw,\n view: e.required.constant(\"list\"),\n label: e.optional.string\n });\n return t ? { params: t } : null;\n },\n controller(i) {\n const e = new gn(ks(i.params.options)), t = ee(i.params.value, {\n constraint: e\n }), l = new _n(i.document, {\n props: new X({\n options: e.values.value(\"options\")\n }),\n value: t,\n viewProps: i.viewProps\n });\n return new Kt(i.document, {\n blade: i.blade,\n props: X.fromObject({\n label: i.params.label\n }),\n valueController: l\n });\n },\n api(i) {\n return !(i.controller instanceof Kt) || !(i.controller.valueController instanceof _n) ? null : new sa(i.controller);\n }\n };\n }();\n function Hc(i) {\n return i.reduce((e, t) => Object.assign(e, {\n [t.presetKey]: t.read()\n }), {});\n }\n function Kc(i, e) {\n i.forEach((t) => {\n const l = e[t.target.presetKey];\n l !== void 0 && t.writer(t.target, t.reader(l));\n });\n }\n class $c extends gi {\n /**\n * @hidden\n */\n constructor(e, t) {\n super(e, t);\n }\n get element() {\n return this.controller_.view.element;\n }\n /**\n * Imports a preset of all inputs.\n * @param preset The preset object to import.\n */\n importPreset(e) {\n const t = this.controller_.rackController.rack.find(je).map((l) => l.binding);\n Kc(t, e), this.refresh();\n }\n /**\n * Exports a preset of all inputs.\n * @return An exported preset object.\n */\n exportPreset() {\n const e = this.controller_.rackController.rack.find(je).map((t) => t.binding.target);\n return Hc(e);\n }\n /**\n * Refreshes all bindings of the pane.\n */\n refresh() {\n this.controller_.rackController.rack.find(je).forEach((e) => {\n e.binding.read();\n }), this.controller_.rackController.rack.find(ot).forEach((e) => {\n e.binding.read();\n });\n }\n }\n class Xc extends Yn {\n constructor(e, t) {\n super(e, {\n expanded: t.expanded,\n blade: t.blade,\n props: t.props,\n root: !0,\n viewProps: t.viewProps\n });\n }\n }\n const Yc = {\n id: \"slider\",\n type: \"blade\",\n accept(i) {\n const e = M, t = le(i, {\n max: e.required.number,\n min: e.required.number,\n view: e.required.constant(\"slider\"),\n format: e.optional.function,\n label: e.optional.string,\n value: e.optional.number\n });\n return t ? { params: t } : null;\n },\n controller(i) {\n var e, t;\n const l = (e = i.params.value) !== null && e !== void 0 ? e : 0, b = new qt({\n max: i.params.max,\n min: i.params.min\n }), E = new ti(i.document, {\n baseStep: 1,\n parser: lt,\n sliderProps: new X({\n maxValue: b.values.value(\"max\"),\n minValue: b.values.value(\"min\")\n }),\n textProps: X.fromObject({\n draggingScale: Ot(void 0, l),\n formatter: (t = i.params.format) !== null && t !== void 0 ? t : Sr\n }),\n value: ee(l, {\n constraint: b\n }),\n viewProps: i.viewProps\n });\n return new Kt(i.document, {\n blade: i.blade,\n props: X.fromObject({\n label: i.params.label\n }),\n valueController: E\n });\n },\n api(i) {\n return !(i.controller instanceof Kt) || !(i.controller.valueController instanceof ti) ? null : new ra(i.controller);\n }\n }, qc = function() {\n return {\n id: \"text\",\n type: \"blade\",\n accept(i) {\n const e = M, t = le(i, {\n parse: e.required.function,\n value: e.required.raw,\n view: e.required.constant(\"text\"),\n format: e.optional.function,\n label: e.optional.string\n });\n return t ? { params: t } : null;\n },\n controller(i) {\n var e;\n const t = new Wn(i.document, {\n parser: i.params.parse,\n props: X.fromObject({\n formatter: (e = i.params.format) !== null && e !== void 0 ? e : (l) => String(l)\n }),\n value: ee(i.params.value),\n viewProps: i.viewProps\n });\n return new Kt(i.document, {\n blade: i.blade,\n props: X.fromObject({\n label: i.params.label\n }),\n valueController: t\n });\n },\n api(i) {\n return !(i.controller instanceof Kt) || !(i.controller.valueController instanceof Wn) ? null : new oa(i.controller);\n }\n };\n }();\n function Qc(i) {\n const e = i.createElement(\"div\");\n return e.classList.add(D(\"dfw\")()), i.body && i.body.appendChild(e), e;\n }\n function aa(i, e, t) {\n if (i.querySelector(`style[data-tp-style=${e}]`))\n return;\n const l = i.createElement(\"style\");\n l.dataset.tpStyle = e, l.textContent = t, i.head.appendChild(l);\n }\n class Zc extends $c {\n constructor(e) {\n var t, l;\n const b = e ?? {}, E = (t = b.document) !== null && t !== void 0 ? t : mi(), k = Oc(), B = new Xc(E, {\n expanded: b.expanded,\n blade: ye(),\n props: X.fromObject({\n title: b.title\n }),\n viewProps: Ye.create()\n });\n super(B, k), this.pool_ = k, this.containerElem_ = (l = b.container) !== null && l !== void 0 ? l : Qc(E), this.containerElem_.appendChild(this.element), this.doc_ = E, this.usesDefaultWrapper_ = !b.container, this.setUpDefaultPlugins_();\n }\n get document() {\n if (!this.doc_)\n throw S.alreadyDisposed();\n return this.doc_;\n }\n dispose() {\n const e = this.containerElem_;\n if (!e)\n throw S.alreadyDisposed();\n if (this.usesDefaultWrapper_) {\n const t = e.parentElement;\n t && t.removeChild(e);\n }\n this.containerElem_ = null, this.doc_ = null, super.dispose();\n }\n registerPlugin(e) {\n (\"plugin\" in e ? [e.plugin] : \"plugins\" in e ? e.plugins : []).forEach((l) => {\n this.pool_.register(l), this.embedPluginStyle_(l);\n });\n }\n embedPluginStyle_(e) {\n e.css && aa(this.document, `plugin-${e.id}`, e.css);\n }\n setUpDefaultPlugins_() {\n aa(this.document, \"default\", '.tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:\"\";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:\"\";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:\"\";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:\"\";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:\"\";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:\"\";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:\"\";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:\"\";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:\"\";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}'), this.pool_.getAll().forEach((e) => {\n this.embedPluginStyle_(e);\n }), this.registerPlugin({\n plugins: [\n Yc,\n Gc,\n Ei,\n qc\n ]\n });\n }\n }\n const Wc = new s(\"3.1.7\");\n r.BladeApi = a, r.ButtonApi = j, r.FolderApi = gi, r.InputBindingApi = vi, r.ListApi = sa, r.MonitorBindingApi = bi, r.Pane = Zc, r.SeparatorApi = os, r.SliderApi = ra, r.TabApi = ls, r.TabPageApi = xi, r.TextApi = oa, r.TpChangeEvent = p, r.VERSION = Wc, Object.defineProperty(r, \"__esModule\", { value: !0 });\n });\n})(Dh, Gs);\nvar ts = {}, Oh = {\n get exports() {\n return ts;\n },\n set exports(v) {\n ts = v;\n }\n};\n(function(v, n) {\n (function(r, s) {\n s(n);\n })(rl, function(r) {\n class s {\n constructor(o) {\n this.controller_ = o;\n }\n get element() {\n return this.controller_.view.element;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(o) {\n this.controller_.viewProps.set(\"disabled\", o);\n }\n get hidden() {\n return this.controller_.viewProps.get(\"hidden\");\n }\n set hidden(o) {\n this.controller_.viewProps.set(\"hidden\", o);\n }\n dispose() {\n this.controller_.viewProps.set(\"disposed\", !0);\n }\n }\n class a {\n constructor(o) {\n this.target = o;\n }\n }\n class c extends a {\n constructor(o, u, f, x) {\n super(o), this.value = u, this.presetKey = f, this.last = x ?? !0;\n }\n }\n function p(m) {\n return m;\n }\n function h(m) {\n return m == null;\n }\n const d = {\n alreadydisposed: () => \"View has been already disposed\",\n invalidparams: (m) => `Invalid parameters for '${m.name}'`,\n nomatchingcontroller: (m) => `No matching controller for '${m.key}'`,\n nomatchingview: (m) => `No matching view for '${JSON.stringify(m.params)}'`,\n notbindable: () => \"Value is not bindable\",\n propertynotfound: (m) => `Property '${m.name}' not found`,\n shouldneverhappen: () => \"This error should never happen\"\n };\n class g {\n constructor(o) {\n var u;\n this.message = (u = d[o.type](o.context)) !== null && u !== void 0 ? u : \"Unexpected error\", this.name = this.constructor.name, this.stack = new Error(this.message).stack, this.type = o.type;\n }\n static alreadyDisposed() {\n return new g({ type: \"alreadydisposed\" });\n }\n static notBindable() {\n return new g({\n type: \"notbindable\"\n });\n }\n static propertyNotFound(o) {\n return new g({\n type: \"propertynotfound\",\n context: {\n name: o\n }\n });\n }\n static shouldNeverHappen() {\n return new g({ type: \"shouldneverhappen\" });\n }\n }\n class w {\n constructor() {\n this.observers_ = {};\n }\n on(o, u) {\n let f = this.observers_[o];\n return f || (f = this.observers_[o] = []), f.push({\n handler: u\n }), this;\n }\n off(o, u) {\n const f = this.observers_[o];\n return f && (this.observers_[o] = f.filter((x) => x.handler !== u)), this;\n }\n emit(o, u) {\n const f = this.observers_[o];\n f && f.forEach((x) => {\n x.handler(u);\n });\n }\n }\n const _ = \"tp\";\n function y(m) {\n return (u, f) => [\n _,\n \"-\",\n m,\n \"v\",\n u ? `_${u}` : \"\",\n f ? `-${f}` : \"\"\n ].join(\"\");\n }\n function P(m, o) {\n return (u) => o(m(u));\n }\n function I(m) {\n return m.rawValue;\n }\n function S(m, o) {\n m.emitter.on(\"change\", P(I, o)), o(m.rawValue);\n }\n function R(m, o, u) {\n S(m.value(o), u);\n }\n function j(m, o, u) {\n u ? m.classList.add(o) : m.classList.remove(o);\n }\n function F(m, o) {\n return (u) => {\n j(m, o, u);\n };\n }\n function V(m, o) {\n S(m, (u) => {\n o.textContent = u ?? \"\";\n });\n }\n const D = y(\"btn\");\n class Y {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(D()), u.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"button\");\n f.classList.add(D(\"b\")), u.viewProps.bindDisabled(f), this.element.appendChild(f), this.buttonElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(D(\"t\")), V(u.props.value(\"title\"), x), this.buttonElement.appendChild(x);\n }\n }\n class G {\n constructor(o, u) {\n this.emitter = new w(), this.onClick_ = this.onClick_.bind(this), this.props = u.props, this.viewProps = u.viewProps, this.view = new Y(o, {\n props: this.props,\n viewProps: this.viewProps\n }), this.view.buttonElement.addEventListener(\"click\", this.onClick_);\n }\n onClick_() {\n this.emitter.emit(\"click\", {\n sender: this\n });\n }\n }\n class N {\n constructor(o, u) {\n var f;\n this.constraint_ = u == null ? void 0 : u.constraint, this.equals_ = (f = u == null ? void 0 : u.equals) !== null && f !== void 0 ? f : (x, T) => x === T, this.emitter = new w(), this.rawValue_ = o;\n }\n get constraint() {\n return this.constraint_;\n }\n get rawValue() {\n return this.rawValue_;\n }\n set rawValue(o) {\n this.setRawValue(o, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(o, u) {\n const f = u ?? {\n forceEmit: !1,\n last: !0\n }, x = this.constraint_ ? this.constraint_.constrain(o) : o, T = this.rawValue_;\n this.equals_(T, x) && !f.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.rawValue_ = x, this.emitter.emit(\"change\", {\n options: f,\n previousRawValue: T,\n rawValue: x,\n sender: this\n }));\n }\n }\n class O {\n constructor(o) {\n this.emitter = new w(), this.value_ = o;\n }\n get rawValue() {\n return this.value_;\n }\n set rawValue(o) {\n this.setRawValue(o, {\n forceEmit: !1,\n last: !0\n });\n }\n setRawValue(o, u) {\n const f = u ?? {\n forceEmit: !1,\n last: !0\n }, x = this.value_;\n x === o && !f.forceEmit || (this.emitter.emit(\"beforechange\", {\n sender: this\n }), this.value_ = o, this.emitter.emit(\"change\", {\n options: f,\n previousRawValue: x,\n rawValue: this.value_,\n sender: this\n }));\n }\n }\n function H(m, o) {\n const u = o == null ? void 0 : o.constraint, f = o == null ? void 0 : o.equals;\n return !u && !f ? new O(m) : new N(m, o);\n }\n class K {\n constructor(o) {\n this.emitter = new w(), this.valMap_ = o;\n for (const u in this.valMap_)\n this.valMap_[u].emitter.on(\"change\", () => {\n this.emitter.emit(\"change\", {\n key: u,\n sender: this\n });\n });\n }\n static createCore(o) {\n return Object.keys(o).reduce((f, x) => Object.assign(f, {\n [x]: H(o[x])\n }), {});\n }\n static fromObject(o) {\n const u = this.createCore(o);\n return new K(u);\n }\n get(o) {\n return this.valMap_[o].rawValue;\n }\n set(o, u) {\n this.valMap_[o].rawValue = u;\n }\n value(o) {\n return this.valMap_[o];\n }\n }\n function q(m, o) {\n const f = Object.keys(o).reduce((x, T) => {\n if (x === void 0)\n return;\n const A = o[T], z = A(m[T]);\n return z.succeeded ? Object.assign(Object.assign({}, x), { [T]: z.value }) : void 0;\n }, {});\n return f;\n }\n function pe(m, o) {\n return m.reduce((u, f) => {\n if (u === void 0)\n return;\n const x = o(f);\n if (!(!x.succeeded || x.value === void 0))\n return [...u, x.value];\n }, []);\n }\n function ge(m) {\n return m === null ? !1 : typeof m == \"object\";\n }\n function ce(m) {\n return (o) => (u) => {\n if (!o && u === void 0)\n return {\n succeeded: !1,\n value: void 0\n };\n if (o && u === void 0)\n return {\n succeeded: !0,\n value: void 0\n };\n const f = m(u);\n return f !== void 0 ? {\n succeeded: !0,\n value: f\n } : {\n succeeded: !1,\n value: void 0\n };\n };\n }\n function me(m) {\n return {\n custom: (o) => ce(o)(m),\n boolean: ce((o) => typeof o == \"boolean\" ? o : void 0)(m),\n number: ce((o) => typeof o == \"number\" ? o : void 0)(m),\n string: ce((o) => typeof o == \"string\" ? o : void 0)(m),\n function: ce((o) => typeof o == \"function\" ? o : void 0)(m),\n constant: (o) => ce((u) => u === o ? o : void 0)(m),\n raw: ce((o) => o)(m),\n object: (o) => ce((u) => {\n if (ge(u))\n return q(u, o);\n })(m),\n array: (o) => ce((u) => {\n if (Array.isArray(u))\n return pe(u, o);\n })(m)\n };\n }\n const he = {\n optional: me(!0),\n required: me(!1)\n };\n function ee(m, o) {\n const u = he.required.object(o)(m);\n return u.succeeded ? u.value : void 0;\n }\n function X(m) {\n console.warn([\n `Missing '${m.key}' of ${m.target} in ${m.place}.`,\n \"Please rebuild plugins with the latest core package.\"\n ].join(\" \"));\n }\n function Pe(m) {\n return m && m.parentElement && m.parentElement.removeChild(m), null;\n }\n class fe {\n constructor(o) {\n this.value_ = o;\n }\n static create(o) {\n return [\n new fe(o),\n (u, f) => {\n o.setRawValue(u, f);\n }\n ];\n }\n get emitter() {\n return this.value_.emitter;\n }\n get rawValue() {\n return this.value_.rawValue;\n }\n }\n const ae = y(\"\");\n function ne(m, o) {\n return F(m, ae(void 0, o));\n }\n class be extends K {\n constructor(o) {\n var u;\n super(o), this.onDisabledChange_ = this.onDisabledChange_.bind(this), this.onParentChange_ = this.onParentChange_.bind(this), this.onParentGlobalDisabledChange_ = this.onParentGlobalDisabledChange_.bind(this), [this.globalDisabled_, this.setGlobalDisabled_] = fe.create(H(this.getGlobalDisabled_())), this.value(\"disabled\").emitter.on(\"change\", this.onDisabledChange_), this.value(\"parent\").emitter.on(\"change\", this.onParentChange_), (u = this.get(\"parent\")) === null || u === void 0 || u.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_);\n }\n static create(o) {\n var u, f, x;\n const T = o ?? {};\n return new be(K.createCore({\n disabled: (u = T.disabled) !== null && u !== void 0 ? u : !1,\n disposed: !1,\n hidden: (f = T.hidden) !== null && f !== void 0 ? f : !1,\n parent: (x = T.parent) !== null && x !== void 0 ? x : null\n }));\n }\n get globalDisabled() {\n return this.globalDisabled_;\n }\n bindClassModifiers(o) {\n S(this.globalDisabled_, ne(o, \"disabled\")), R(this, \"hidden\", ne(o, \"hidden\"));\n }\n bindDisabled(o) {\n S(this.globalDisabled_, (u) => {\n o.disabled = u;\n });\n }\n bindTabIndex(o) {\n S(this.globalDisabled_, (u) => {\n o.tabIndex = u ? -1 : 0;\n });\n }\n handleDispose(o) {\n this.value(\"disposed\").emitter.on(\"change\", (u) => {\n u && o();\n });\n }\n getGlobalDisabled_() {\n const o = this.get(\"parent\");\n return (o ? o.globalDisabled.rawValue : !1) || this.get(\"disabled\");\n }\n updateGlobalDisabled_() {\n this.setGlobalDisabled_(this.getGlobalDisabled_());\n }\n onDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentGlobalDisabledChange_() {\n this.updateGlobalDisabled_();\n }\n onParentChange_(o) {\n var u;\n const f = o.previousRawValue;\n f == null || f.globalDisabled.emitter.off(\"change\", this.onParentGlobalDisabledChange_), (u = this.get(\"parent\")) === null || u === void 0 || u.globalDisabled.emitter.on(\"change\", this.onParentGlobalDisabledChange_), this.updateGlobalDisabled_();\n }\n }\n function M() {\n return [\"veryfirst\", \"first\", \"last\", \"verylast\"];\n }\n const le = y(\"\"), Ve = {\n veryfirst: \"vfst\",\n first: \"fst\",\n last: \"lst\",\n verylast: \"vlst\"\n };\n class Be {\n constructor(o) {\n this.parent_ = null, this.blade = o.blade, this.view = o.view, this.viewProps = o.viewProps;\n const u = this.view.element;\n this.blade.value(\"positions\").emitter.on(\"change\", () => {\n M().forEach((f) => {\n u.classList.remove(le(void 0, Ve[f]));\n }), this.blade.get(\"positions\").forEach((f) => {\n u.classList.add(le(void 0, Ve[f]));\n });\n }), this.viewProps.handleDispose(() => {\n Pe(u);\n });\n }\n get parent() {\n return this.parent_;\n }\n set parent(o) {\n if (this.parent_ = o, !(\"parent\" in this.viewProps.valMap_)) {\n X({\n key: \"parent\",\n target: be.name,\n place: \"BladeController.parent\"\n });\n return;\n }\n this.viewProps.set(\"parent\", this.parent_ ? this.parent_.viewProps : null);\n }\n }\n const we = \"http://www.w3.org/2000/svg\";\n function st(m) {\n m.offsetHeight;\n }\n function jn(m, o) {\n const u = m.style.transition;\n m.style.transition = \"none\", o(), m.style.transition = u;\n }\n function Ye(m) {\n return m.ontouchstart !== void 0;\n }\n function zn(m) {\n for (; m.childNodes.length > 0; )\n m.removeChild(m.childNodes[0]);\n }\n function cn(m) {\n return m.relatedTarget ? m.relatedTarget : \"explicitOriginalTarget\" in m ? m.explicitOriginalTarget : null;\n }\n const mt = y(\"lbl\");\n function Mt(m, o) {\n const u = m.createDocumentFragment();\n return o.split(`\n`).map((x) => m.createTextNode(x)).forEach((x, T) => {\n T > 0 && u.appendChild(m.createElement(\"br\")), u.appendChild(x);\n }), u;\n }\n class ze {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(mt()), u.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"div\");\n f.classList.add(mt(\"l\")), R(u.props, \"label\", (T) => {\n h(T) ? this.element.classList.add(mt(void 0, \"nol\")) : (this.element.classList.remove(mt(void 0, \"nol\")), zn(f), f.appendChild(Mt(o, T)));\n }), this.element.appendChild(f), this.labelElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(mt(\"v\")), this.element.appendChild(x), this.valueElement = x;\n }\n }\n class rt extends Be {\n constructor(o, u) {\n const f = u.valueController.viewProps;\n super(Object.assign(Object.assign({}, u), { view: new ze(o, {\n props: u.props,\n viewProps: f\n }), viewProps: f })), this.props = u.props, this.valueController = u.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n class un extends Be {\n constructor(o) {\n super(o), this.value = o.value;\n }\n }\n class ft extends K {\n constructor(o) {\n super(o);\n }\n static create(o) {\n const u = {\n completed: !0,\n expanded: o,\n expandedHeight: null,\n shouldFixHeight: !1,\n temporaryExpanded: null\n }, f = K.createCore(u);\n return new ft(f);\n }\n get styleExpanded() {\n var o;\n return (o = this.get(\"temporaryExpanded\")) !== null && o !== void 0 ? o : this.get(\"expanded\");\n }\n get styleHeight() {\n if (!this.styleExpanded)\n return \"0\";\n const o = this.get(\"expandedHeight\");\n return this.get(\"shouldFixHeight\") && !h(o) ? `${o}px` : \"auto\";\n }\n bindExpandedClass(o, u) {\n const f = () => {\n this.styleExpanded ? o.classList.add(u) : o.classList.remove(u);\n };\n R(this, \"expanded\", f), R(this, \"temporaryExpanded\", f);\n }\n cleanUpTransition() {\n this.set(\"shouldFixHeight\", !1), this.set(\"expandedHeight\", null), this.set(\"completed\", !0);\n }\n }\n function Un(m) {\n return ft.create(m);\n }\n function mi(m, o) {\n let u = 0;\n return jn(o, () => {\n m.set(\"expandedHeight\", null), m.set(\"temporaryExpanded\", !0), st(o), u = o.clientHeight, m.set(\"temporaryExpanded\", null), st(o);\n }), u;\n }\n function Gn(m, o) {\n o.style.height = m.styleHeight;\n }\n function Hn(m, o) {\n m.value(\"expanded\").emitter.on(\"beforechange\", () => {\n m.set(\"completed\", !1), h(m.get(\"expandedHeight\")) && m.set(\"expandedHeight\", mi(m, o)), m.set(\"shouldFixHeight\", !0), st(o);\n }), m.emitter.on(\"change\", () => {\n Gn(m, o);\n }), Gn(m, o), o.addEventListener(\"transitionend\", (u) => {\n u.propertyName === \"height\" && m.cleanUpTransition();\n });\n }\n class xt {\n constructor(o, u) {\n const f = y(u.viewName);\n this.element = o.createElement(\"div\"), this.element.classList.add(f()), u.viewProps.bindClassModifiers(this.element);\n }\n }\n class St extends un {\n constructor(o, u) {\n const f = u.valueController.viewProps;\n super(Object.assign(Object.assign({}, u), { value: u.valueController.value, view: new ze(o, {\n props: u.props,\n viewProps: f\n }), viewProps: f })), this.props = u.props, this.valueController = u.valueController, this.view.valueElement.appendChild(this.valueController.view.element);\n }\n }\n class Kn {\n constructor() {\n this.disabled = !1, this.emitter = new w();\n }\n dispose() {\n }\n tick() {\n this.disabled || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class pn {\n constructor(o, u) {\n this.disabled_ = !1, this.timerId_ = null, this.onTick_ = this.onTick_.bind(this), this.doc_ = o, this.emitter = new w(), this.interval_ = u, this.setTimer_();\n }\n get disabled() {\n return this.disabled_;\n }\n set disabled(o) {\n this.disabled_ = o, this.disabled_ ? this.clearTimer_() : this.setTimer_();\n }\n dispose() {\n this.clearTimer_();\n }\n clearTimer_() {\n if (this.timerId_ === null)\n return;\n const o = this.doc_.defaultView;\n o && o.clearInterval(this.timerId_), this.timerId_ = null;\n }\n setTimer_() {\n if (this.clearTimer_(), this.interval_ <= 0)\n return;\n const o = this.doc_.defaultView;\n o && (this.timerId_ = o.setInterval(this.onTick_, this.interval_));\n }\n onTick_() {\n this.disabled_ || this.emitter.emit(\"tick\", {\n sender: this\n });\n }\n }\n class $n {\n constructor(o) {\n this.constraints = o;\n }\n constrain(o) {\n return this.constraints.reduce((u, f) => f.constrain(u), o);\n }\n }\n function Et(m, o) {\n if (m instanceof o)\n return m;\n if (m instanceof $n) {\n const u = m.constraints.reduce((f, x) => f || (x instanceof o ? x : null), null);\n if (u)\n return u;\n }\n return null;\n }\n class vt {\n constructor(o) {\n this.values = K.fromObject({\n max: o.max,\n min: o.min\n });\n }\n constrain(o) {\n const u = this.values.get(\"max\"), f = this.values.get(\"min\");\n return Math.min(Math.max(o, f), u);\n }\n }\n class Lt {\n constructor(o) {\n this.values = K.fromObject({\n max: o.max,\n min: o.min\n });\n }\n get maxValue() {\n return this.values.get(\"max\");\n }\n get minValue() {\n return this.values.get(\"min\");\n }\n constrain(o) {\n const u = this.values.get(\"max\"), f = this.values.get(\"min\");\n let x = o;\n return h(f) || (x = Math.max(x, f)), h(u) || (x = Math.min(x, u)), x;\n }\n }\n class L {\n constructor(o, u = 0) {\n this.step = o, this.origin = u;\n }\n constrain(o) {\n const u = this.origin % this.step, f = Math.round((o - u) / this.step);\n return u + f * this.step;\n }\n }\n const U = y(\"pop\");\n class W {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(U()), u.viewProps.bindClassModifiers(this.element), S(u.shows, F(this.element, U(void 0, \"v\")));\n }\n }\n class ie {\n constructor(o, u) {\n this.shows = H(!1), this.viewProps = u.viewProps, this.view = new W(o, {\n shows: this.shows,\n viewProps: this.viewProps\n });\n }\n }\n const ye = y(\"txt\");\n class De {\n constructor(o, u) {\n this.onChange_ = this.onChange_.bind(this), this.element = o.createElement(\"div\"), this.element.classList.add(ye()), u.viewProps.bindClassModifiers(this.element), this.props_ = u.props, this.props_.emitter.on(\"change\", this.onChange_);\n const f = o.createElement(\"input\");\n f.classList.add(ye(\"i\")), f.type = \"text\", u.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, u.value.emitter.on(\"change\", this.onChange_), this.value_ = u.value, this.refresh();\n }\n refresh() {\n const o = this.props_.get(\"formatter\");\n this.inputElement.value = o(this.value_.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class Ht {\n constructor(o, u) {\n this.onInputChange_ = this.onInputChange_.bind(this), this.parser_ = u.parser, this.props = u.props, this.value = u.value, this.viewProps = u.viewProps, this.view = new De(o, {\n props: u.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_);\n }\n onInputChange_(o) {\n const f = o.currentTarget.value, x = this.parser_(f);\n h(x) || (this.value.rawValue = x), this.view.refresh();\n }\n }\n function hn(m) {\n return m === \"false\" ? !1 : !!m;\n }\n class Ue {\n constructor(o) {\n this.text = o;\n }\n evaluate() {\n return Number(this.text);\n }\n toString() {\n return this.text;\n }\n }\n const Ge = {\n \"**\": (m, o) => Math.pow(m, o),\n \"*\": (m, o) => m * o,\n \"/\": (m, o) => m / o,\n \"%\": (m, o) => m % o,\n \"+\": (m, o) => m + o,\n \"-\": (m, o) => m - o,\n \"<<\": (m, o) => m << o,\n \">>\": (m, o) => m >> o,\n \">>>\": (m, o) => m >>> o,\n \"&\": (m, o) => m & o,\n \"^\": (m, o) => m ^ o,\n \"|\": (m, o) => m | o\n };\n class qs {\n constructor(o, u, f) {\n this.left = u, this.operator = o, this.right = f;\n }\n evaluate() {\n const o = Ge[this.operator];\n if (!o)\n throw new Error(`unexpected binary operator: '${this.operator}`);\n return o(this.left.evaluate(), this.right.evaluate());\n }\n toString() {\n return [\n \"b(\",\n this.left.toString(),\n this.operator,\n this.right.toString(),\n \")\"\n ].join(\" \");\n }\n }\n const Qs = {\n \"+\": (m) => m,\n \"-\": (m) => -m,\n \"~\": (m) => ~m\n };\n class Zs {\n constructor(o, u) {\n this.operator = o, this.expression = u;\n }\n evaluate() {\n const o = Qs[this.operator];\n if (!o)\n throw new Error(`unexpected unary operator: '${this.operator}`);\n return o(this.expression.evaluate());\n }\n toString() {\n return [\"u(\", this.operator, this.expression.toString(), \")\"].join(\" \");\n }\n }\n function fi(m) {\n return (o, u) => {\n for (let f = 0; f < m.length; f++) {\n const x = m[f](o, u);\n if (x !== \"\")\n return x;\n }\n return \"\";\n };\n }\n function At(m, o) {\n var u;\n const f = m.substr(o).match(/^\\s+/);\n return (u = f && f[0]) !== null && u !== void 0 ? u : \"\";\n }\n function vi(m, o) {\n const u = m.substr(o, 1);\n return u.match(/^[1-9]$/) ? u : \"\";\n }\n function je(m, o) {\n var u;\n const f = m.substr(o).match(/^[0-9]+/);\n return (u = f && f[0]) !== null && u !== void 0 ? u : \"\";\n }\n function bi(m, o) {\n const u = je(m, o);\n if (u !== \"\")\n return u;\n const f = m.substr(o, 1);\n if (o += 1, f !== \"-\" && f !== \"+\")\n return \"\";\n const x = je(m, o);\n return x === \"\" ? \"\" : f + x;\n }\n function ot(m, o) {\n const u = m.substr(o, 1);\n if (o += 1, u.toLowerCase() !== \"e\")\n return \"\";\n const f = bi(m, o);\n return f === \"\" ? \"\" : u + f;\n }\n function is(m, o) {\n const u = m.substr(o, 1);\n if (u === \"0\")\n return u;\n const f = vi(m, o);\n return o += f.length, f === \"\" ? \"\" : f + je(m, o);\n }\n function dn(m, o) {\n const u = is(m, o);\n if (o += u.length, u === \"\")\n return \"\";\n const f = m.substr(o, 1);\n if (o += f.length, f !== \".\")\n return \"\";\n const x = je(m, o);\n return o += x.length, u + f + x + ot(m, o);\n }\n function ss(m, o) {\n const u = m.substr(o, 1);\n if (o += u.length, u !== \".\")\n return \"\";\n const f = je(m, o);\n return o += f.length, f === \"\" ? \"\" : u + f + ot(m, o);\n }\n function Xn(m, o) {\n const u = is(m, o);\n return o += u.length, u === \"\" ? \"\" : u + ot(m, o);\n }\n const gi = fi([\n dn,\n ss,\n Xn\n ]);\n function _i(m, o) {\n var u;\n const f = m.substr(o).match(/^[01]+/);\n return (u = f && f[0]) !== null && u !== void 0 ? u : \"\";\n }\n function Ws(m, o) {\n const u = m.substr(o, 2);\n if (o += u.length, u.toLowerCase() !== \"0b\")\n return \"\";\n const f = _i(m, o);\n return f === \"\" ? \"\" : u + f;\n }\n function Js(m, o) {\n var u;\n const f = m.substr(o).match(/^[0-7]+/);\n return (u = f && f[0]) !== null && u !== void 0 ? u : \"\";\n }\n function er(m, o) {\n const u = m.substr(o, 2);\n if (o += u.length, u.toLowerCase() !== \"0o\")\n return \"\";\n const f = Js(m, o);\n return f === \"\" ? \"\" : u + f;\n }\n function tr(m, o) {\n var u;\n const f = m.substr(o).match(/^[0-9a-f]+/i);\n return (u = f && f[0]) !== null && u !== void 0 ? u : \"\";\n }\n function wi(m, o) {\n const u = m.substr(o, 2);\n if (o += u.length, u.toLowerCase() !== \"0x\")\n return \"\";\n const f = tr(m, o);\n return f === \"\" ? \"\" : u + f;\n }\n const nr = fi([\n Ws,\n er,\n wi\n ]), ir = fi([\n nr,\n gi\n ]);\n function mn(m, o) {\n const u = ir(m, o);\n return o += u.length, u === \"\" ? null : {\n evaluable: new Ue(u),\n cursor: o\n };\n }\n function rs(m, o) {\n const u = m.substr(o, 1);\n if (o += u.length, u !== \"(\")\n return null;\n const f = yi(m, o);\n if (!f)\n return null;\n o = f.cursor, o += At(m, o).length;\n const x = m.substr(o, 1);\n return o += x.length, x !== \")\" ? null : {\n evaluable: f.evaluable,\n cursor: o\n };\n }\n function sr(m, o) {\n var u;\n return (u = mn(m, o)) !== null && u !== void 0 ? u : rs(m, o);\n }\n function Yn(m, o) {\n const u = sr(m, o);\n if (u)\n return u;\n const f = m.substr(o, 1);\n if (o += f.length, f !== \"+\" && f !== \"-\" && f !== \"~\")\n return null;\n const x = Yn(m, o);\n return x ? (o = x.cursor, {\n cursor: o,\n evaluable: new Zs(f, x.evaluable)\n }) : null;\n }\n function rr(m, o, u) {\n u += At(o, u).length;\n const f = m.filter((x) => o.startsWith(x, u))[0];\n return f ? (u += f.length, u += At(o, u).length, {\n cursor: u,\n operator: f\n }) : null;\n }\n function Kt(m, o) {\n return (u, f) => {\n const x = m(u, f);\n if (!x)\n return null;\n f = x.cursor;\n let T = x.evaluable;\n for (; ; ) {\n const A = rr(o, u, f);\n if (!A)\n break;\n f = A.cursor;\n const z = m(u, f);\n if (!z)\n return null;\n f = z.cursor, T = new qs(A.operator, T, z.evaluable);\n }\n return T ? {\n cursor: f,\n evaluable: T\n } : null;\n };\n }\n const os = [\n [\"**\"],\n [\"*\", \"/\", \"%\"],\n [\"+\", \"-\"],\n [\"<<\", \">>>\", \">>\"],\n [\"&\"],\n [\"^\"],\n [\"|\"]\n ].reduce((m, o) => Kt(m, o), Yn);\n function yi(m, o) {\n return o += At(m, o).length, os(m, o);\n }\n function or(m) {\n const o = yi(m, 0);\n return !o || o.cursor + At(m, o.cursor).length !== m.length ? null : o.evaluable;\n }\n function fn(m) {\n var o;\n const u = or(m);\n return (o = u == null ? void 0 : u.evaluate()) !== null && o !== void 0 ? o : null;\n }\n function ar(m) {\n if (typeof m == \"number\")\n return m;\n if (typeof m == \"string\") {\n const o = fn(m);\n if (!h(o))\n return o;\n }\n return 0;\n }\n function Re(m) {\n return (o) => o.toFixed(Math.max(Math.min(m, 20), 0));\n }\n const lr = Re(0);\n function qn(m) {\n return lr(m) + \"%\";\n }\n function as(m) {\n return String(m);\n }\n function xi(m, o) {\n for (; m.length < o; )\n m.push(void 0);\n }\n function ls(m) {\n const o = [];\n return xi(o, m), H(o);\n }\n function cs(m) {\n const o = m.indexOf(void 0);\n return o < 0 ? m : m.slice(0, o);\n }\n function cr(m, o) {\n const u = [...cs(m), o];\n return u.length > m.length ? u.splice(0, u.length - m.length) : xi(u, m.length), u;\n }\n function $t({ primary: m, secondary: o, forward: u, backward: f }) {\n let x = !1;\n function T(A) {\n x || (x = !0, A(), x = !1);\n }\n m.emitter.on(\"change\", (A) => {\n T(() => {\n o.setRawValue(u(m, o), A.options);\n });\n }), o.emitter.on(\"change\", (A) => {\n T(() => {\n m.setRawValue(f(m, o), A.options);\n }), T(() => {\n o.setRawValue(u(m, o), A.options);\n });\n }), T(() => {\n o.setRawValue(u(m, o), {\n forceEmit: !1,\n last: !0\n });\n });\n }\n function Xt(m, o) {\n const u = m * (o.altKey ? 0.1 : 1) * (o.shiftKey ? 10 : 1);\n return o.upKey ? +u : o.downKey ? -u : 0;\n }\n function vn(m) {\n return {\n altKey: m.altKey,\n downKey: m.key === \"ArrowDown\",\n shiftKey: m.shiftKey,\n upKey: m.key === \"ArrowUp\"\n };\n }\n function Ei(m) {\n return {\n altKey: m.altKey,\n downKey: m.key === \"ArrowLeft\",\n shiftKey: m.shiftKey,\n upKey: m.key === \"ArrowRight\"\n };\n }\n function ur(m) {\n return m === \"ArrowUp\" || m === \"ArrowDown\";\n }\n function us(m) {\n return ur(m) || m === \"ArrowLeft\" || m === \"ArrowRight\";\n }\n function Ci(m, o) {\n var u, f;\n const x = o.ownerDocument.defaultView, T = o.getBoundingClientRect();\n return {\n x: m.pageX - (((u = x && x.scrollX) !== null && u !== void 0 ? u : 0) + T.left),\n y: m.pageY - (((f = x && x.scrollY) !== null && f !== void 0 ? f : 0) + T.top)\n };\n }\n class Qn {\n constructor(o) {\n this.lastTouch_ = null, this.onDocumentMouseMove_ = this.onDocumentMouseMove_.bind(this), this.onDocumentMouseUp_ = this.onDocumentMouseUp_.bind(this), this.onMouseDown_ = this.onMouseDown_.bind(this), this.onTouchEnd_ = this.onTouchEnd_.bind(this), this.onTouchMove_ = this.onTouchMove_.bind(this), this.onTouchStart_ = this.onTouchStart_.bind(this), this.elem_ = o, this.emitter = new w(), o.addEventListener(\"touchstart\", this.onTouchStart_, {\n passive: !1\n }), o.addEventListener(\"touchmove\", this.onTouchMove_, {\n passive: !0\n }), o.addEventListener(\"touchend\", this.onTouchEnd_), o.addEventListener(\"mousedown\", this.onMouseDown_);\n }\n computePosition_(o) {\n const u = this.elem_.getBoundingClientRect();\n return {\n bounds: {\n width: u.width,\n height: u.height\n },\n point: o ? {\n x: o.x,\n y: o.y\n } : null\n };\n }\n onMouseDown_(o) {\n var u;\n o.preventDefault(), (u = o.currentTarget) === null || u === void 0 || u.focus();\n const f = this.elem_.ownerDocument;\n f.addEventListener(\"mousemove\", this.onDocumentMouseMove_), f.addEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"down\", {\n altKey: o.altKey,\n data: this.computePosition_(Ci(o, this.elem_)),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n onDocumentMouseMove_(o) {\n this.emitter.emit(\"move\", {\n altKey: o.altKey,\n data: this.computePosition_(Ci(o, this.elem_)),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n onDocumentMouseUp_(o) {\n const u = this.elem_.ownerDocument;\n u.removeEventListener(\"mousemove\", this.onDocumentMouseMove_), u.removeEventListener(\"mouseup\", this.onDocumentMouseUp_), this.emitter.emit(\"up\", {\n altKey: o.altKey,\n data: this.computePosition_(Ci(o, this.elem_)),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n onTouchStart_(o) {\n o.preventDefault();\n const u = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"down\", {\n altKey: o.altKey,\n data: this.computePosition_(u ? {\n x: u.clientX - f.left,\n y: u.clientY - f.top\n } : void 0),\n sender: this,\n shiftKey: o.shiftKey\n }), this.lastTouch_ = u;\n }\n onTouchMove_(o) {\n const u = o.targetTouches.item(0), f = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"move\", {\n altKey: o.altKey,\n data: this.computePosition_(u ? {\n x: u.clientX - f.left,\n y: u.clientY - f.top\n } : void 0),\n sender: this,\n shiftKey: o.shiftKey\n }), this.lastTouch_ = u;\n }\n onTouchEnd_(o) {\n var u;\n const f = (u = o.targetTouches.item(0)) !== null && u !== void 0 ? u : this.lastTouch_, x = this.elem_.getBoundingClientRect();\n this.emitter.emit(\"up\", {\n altKey: o.altKey,\n data: this.computePosition_(f ? {\n x: f.clientX - x.left,\n y: f.clientY - x.top\n } : void 0),\n sender: this,\n shiftKey: o.shiftKey\n });\n }\n }\n function Me(m, o, u, f, x) {\n const T = (m - o) / (u - o);\n return f + T * (x - f);\n }\n function ps(m) {\n return String(m.toFixed(10)).split(\".\")[1].replace(/0+$/, \"\").length;\n }\n function Yt(m, o, u) {\n return Math.min(Math.max(m, o), u);\n }\n const qe = y(\"txt\");\n class pr {\n constructor(o, u) {\n this.onChange_ = this.onChange_.bind(this), this.props_ = u.props, this.props_.emitter.on(\"change\", this.onChange_), this.element = o.createElement(\"div\"), this.element.classList.add(qe(), qe(void 0, \"num\")), u.arrayPosition && this.element.classList.add(qe(void 0, u.arrayPosition)), u.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"input\");\n f.classList.add(qe(\"i\")), f.type = \"text\", u.viewProps.bindDisabled(f), this.element.appendChild(f), this.inputElement = f, this.onDraggingChange_ = this.onDraggingChange_.bind(this), this.dragging_ = u.dragging, this.dragging_.emitter.on(\"change\", this.onDraggingChange_), this.element.classList.add(qe()), this.inputElement.classList.add(qe(\"i\"));\n const x = o.createElement(\"div\");\n x.classList.add(qe(\"k\")), this.element.appendChild(x), this.knobElement = x;\n const T = o.createElementNS(we, \"svg\");\n T.classList.add(qe(\"g\")), this.knobElement.appendChild(T);\n const A = o.createElementNS(we, \"path\");\n A.classList.add(qe(\"gb\")), T.appendChild(A), this.guideBodyElem_ = A;\n const z = o.createElementNS(we, \"path\");\n z.classList.add(qe(\"gh\")), T.appendChild(z), this.guideHeadElem_ = z;\n const oe = o.createElement(\"div\");\n oe.classList.add(y(\"tt\")()), this.knobElement.appendChild(oe), this.tooltipElem_ = oe, u.value.emitter.on(\"change\", this.onChange_), this.value = u.value, this.refresh();\n }\n onDraggingChange_(o) {\n if (o.rawValue === null) {\n this.element.classList.remove(qe(void 0, \"drg\"));\n return;\n }\n this.element.classList.add(qe(void 0, \"drg\"));\n const u = o.rawValue / this.props_.get(\"draggingScale\"), f = u + (u > 0 ? -1 : u < 0 ? 1 : 0), x = Yt(-f, -4, 4);\n this.guideHeadElem_.setAttributeNS(null, \"d\", [`M ${f + x},0 L${f},4 L${f + x},8`, `M ${u},-1 L${u},9`].join(\" \")), this.guideBodyElem_.setAttributeNS(null, \"d\", `M 0,4 L${u},4`);\n const T = this.props_.get(\"formatter\");\n this.tooltipElem_.textContent = T(this.value.rawValue), this.tooltipElem_.style.left = `${u}px`;\n }\n refresh() {\n const o = this.props_.get(\"formatter\");\n this.inputElement.value = o(this.value.rawValue);\n }\n onChange_() {\n this.refresh();\n }\n }\n class bn {\n constructor(o, u) {\n var f;\n this.originRawValue_ = 0, this.onInputChange_ = this.onInputChange_.bind(this), this.onInputKeyDown_ = this.onInputKeyDown_.bind(this), this.onInputKeyUp_ = this.onInputKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = u.baseStep, this.parser_ = u.parser, this.props = u.props, this.sliderProps_ = (f = u.sliderProps) !== null && f !== void 0 ? f : null, this.value = u.value, this.viewProps = u.viewProps, this.dragging_ = H(null), this.view = new pr(o, {\n arrayPosition: u.arrayPosition,\n dragging: this.dragging_,\n props: this.props,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.inputElement.addEventListener(\"change\", this.onInputChange_), this.view.inputElement.addEventListener(\"keydown\", this.onInputKeyDown_), this.view.inputElement.addEventListener(\"keyup\", this.onInputKeyUp_);\n const x = new Qn(this.view.knobElement);\n x.emitter.on(\"down\", this.onPointerDown_), x.emitter.on(\"move\", this.onPointerMove_), x.emitter.on(\"up\", this.onPointerUp_);\n }\n constrainValue_(o) {\n var u, f;\n const x = (u = this.sliderProps_) === null || u === void 0 ? void 0 : u.get(\"minValue\"), T = (f = this.sliderProps_) === null || f === void 0 ? void 0 : f.get(\"maxValue\");\n let A = o;\n return x !== void 0 && (A = Math.max(A, x)), T !== void 0 && (A = Math.min(A, T)), A;\n }\n onInputChange_(o) {\n const f = o.currentTarget.value, x = this.parser_(f);\n h(x) || (this.value.rawValue = this.constrainValue_(x)), this.view.refresh();\n }\n onInputKeyDown_(o) {\n const u = Xt(this.baseStep_, vn(o));\n u !== 0 && this.value.setRawValue(this.constrainValue_(this.value.rawValue + u), {\n forceEmit: !1,\n last: !1\n });\n }\n onInputKeyUp_(o) {\n Xt(this.baseStep_, vn(o)) !== 0 && this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n onPointerDown_() {\n this.originRawValue_ = this.value.rawValue, this.dragging_.rawValue = 0;\n }\n computeDraggingValue_(o) {\n if (!o.point)\n return null;\n const u = o.point.x - o.bounds.width / 2;\n return this.constrainValue_(this.originRawValue_ + u * this.props.get(\"draggingScale\"));\n }\n onPointerMove_(o) {\n const u = this.computeDraggingValue_(o.data);\n u !== null && (this.value.setRawValue(u, {\n forceEmit: !1,\n last: !1\n }), this.dragging_.rawValue = this.value.rawValue - this.originRawValue_);\n }\n onPointerUp_(o) {\n const u = this.computeDraggingValue_(o.data);\n u !== null && (this.value.setRawValue(u, {\n forceEmit: !0,\n last: !0\n }), this.dragging_.rawValue = null);\n }\n }\n function tt(m, o) {\n m.write(o);\n }\n function qt(m) {\n const o = m ? Et(m, L) : null;\n return o ? o.step : null;\n }\n function gn(m, o) {\n const u = m && Et(m, L);\n return u ? ps(u.step) : Math.max(ps(o), 2);\n }\n function Pi(m) {\n const o = qt(m);\n return o ?? 1;\n }\n function Zn(m, o) {\n var u;\n const f = m && Et(m, L), x = Math.abs((u = f == null ? void 0 : f.step) !== null && u !== void 0 ? u : o);\n return x === 0 ? 0.1 : Math.pow(10, Math.floor(Math.log10(x)) - 1);\n }\n function Qt(m) {\n return [m[0], m[1], m[2]];\n }\n function hs(m) {\n const o = Yt(Math.floor(m), 0, 255).toString(16);\n return o.length === 1 ? `0${o}` : o;\n }\n function _n(m, o = \"#\") {\n const u = Qt(m.getComponents(\"rgb\")).map(hs).join(\"\");\n return `${o}${u}`;\n }\n function ds(m, o = \"#\") {\n const u = m.getComponents(\"rgb\"), f = [u[0], u[1], u[2], u[3] * 255].map(hs).join(\"\");\n return `${o}${f}`;\n }\n function hr(m, o) {\n const u = Re(o === \"float\" ? 2 : 0);\n return `rgb(${Qt(m.getComponents(\"rgb\", o)).map((x) => u(x)).join(\", \")})`;\n }\n function ms(m) {\n return (o) => hr(o, m);\n }\n function fs(m, o) {\n const u = Re(2), f = Re(o === \"float\" ? 2 : 0);\n return `rgba(${m.getComponents(\"rgb\", o).map((T, A) => (A === 3 ? u : f)(T)).join(\", \")})`;\n }\n function dr(m) {\n return (o) => fs(o, m);\n }\n function Wn(m) {\n const o = [\n Re(0),\n qn,\n qn\n ];\n return `hsl(${Qt(m.getComponents(\"hsl\")).map((f, x) => o[x](f)).join(\", \")})`;\n }\n function mr(m) {\n const o = [\n Re(0),\n qn,\n qn,\n Re(2)\n ];\n return `hsla(${m.getComponents(\"hsl\").map((f, x) => o[x](f)).join(\", \")})`;\n }\n function vs(m, o) {\n const u = Re(o === \"float\" ? 2 : 0), f = [\"r\", \"g\", \"b\"];\n return `{${Qt(m.getComponents(\"rgb\", o)).map((T, A) => `${f[A]}: ${u(T)}`).join(\", \")}}`;\n }\n function bs(m) {\n return (o) => vs(o, m);\n }\n function fr(m, o) {\n const u = Re(2), f = Re(o === \"float\" ? 2 : 0), x = [\"r\", \"g\", \"b\", \"a\"];\n return `{${m.getComponents(\"rgb\", o).map((A, z) => {\n const oe = z === 3 ? u : f;\n return `${x[z]}: ${oe(A)}`;\n }).join(\", \")}}`;\n }\n function vr(m) {\n return (o) => fr(o, m);\n }\n [\n ...[\"int\", \"float\"].reduce((m, o) => [\n ...m,\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"func\",\n type: o\n },\n stringifier: ms(o)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"func\",\n type: o\n },\n stringifier: dr(o)\n },\n {\n format: {\n alpha: !1,\n mode: \"rgb\",\n notation: \"object\",\n type: o\n },\n stringifier: bs(o)\n },\n {\n format: {\n alpha: !0,\n mode: \"rgb\",\n notation: \"object\",\n type: o\n },\n stringifier: vr(o)\n }\n ], [])\n ];\n class br {\n constructor(o) {\n this.components = o.components, this.asm_ = o.assembly;\n }\n constrain(o) {\n const u = this.asm_.toComponents(o).map((f, x) => {\n var T, A;\n return (A = (T = this.components[x]) === null || T === void 0 ? void 0 : T.constrain(f)) !== null && A !== void 0 ? A : f;\n });\n return this.asm_.fromComponents(u);\n }\n }\n const gs = y(\"pndtxt\");\n class gr {\n constructor(o, u) {\n this.textViews = u.textViews, this.element = o.createElement(\"div\"), this.element.classList.add(gs()), this.textViews.forEach((f) => {\n const x = o.createElement(\"div\");\n x.classList.add(gs(\"a\")), x.appendChild(f.element), this.element.appendChild(x);\n });\n }\n }\n function Ti(m, o, u) {\n return new bn(m, {\n arrayPosition: u === 0 ? \"fst\" : u === o.axes.length - 1 ? \"lst\" : \"mid\",\n baseStep: o.axes[u].baseStep,\n parser: o.parser,\n props: o.axes[u].textProps,\n value: H(0, {\n constraint: o.axes[u].constraint\n }),\n viewProps: o.viewProps\n });\n }\n class Rt {\n constructor(o, u) {\n this.value = u.value, this.viewProps = u.viewProps, this.acs_ = u.axes.map((f, x) => Ti(o, u, x)), this.acs_.forEach((f, x) => {\n $t({\n primary: this.value,\n secondary: f.value,\n forward: (T) => u.assembly.toComponents(T.rawValue)[x],\n backward: (T, A) => {\n const z = u.assembly.toComponents(T.rawValue);\n return z[x] = A.rawValue, u.assembly.fromComponents(z);\n }\n });\n }), this.view = new gr(o, {\n textViews: this.acs_.map((f) => f.view)\n });\n }\n }\n function _r(m, o) {\n return \"step\" in m && !h(m.step) ? new L(m.step, o) : null;\n }\n function wn(m) {\n return !h(m.max) && !h(m.min) ? new vt({\n max: m.max,\n min: m.min\n }) : !h(m.max) || !h(m.min) ? new Lt({\n max: m.max,\n min: m.min\n }) : null;\n }\n const wr = {\n monitor: {\n defaultInterval: 200,\n defaultLineCount: 3\n }\n }, at = y(\"grl\");\n class _s {\n constructor(o, u) {\n this.onCursorChange_ = this.onCursorChange_.bind(this), this.onValueUpdate_ = this.onValueUpdate_.bind(this), this.element = o.createElement(\"div\"), this.element.classList.add(at()), u.viewProps.bindClassModifiers(this.element), this.formatter_ = u.formatter, this.props_ = u.props, this.cursor_ = u.cursor, this.cursor_.emitter.on(\"change\", this.onCursorChange_);\n const f = o.createElementNS(we, \"svg\");\n f.classList.add(at(\"g\")), f.style.height = `calc(var(--bld-us) * ${u.lineCount})`, this.element.appendChild(f), this.svgElem_ = f;\n const x = o.createElementNS(we, \"polyline\");\n this.svgElem_.appendChild(x), this.lineElem_ = x;\n const T = o.createElement(\"div\");\n T.classList.add(at(\"t\"), y(\"tt\")()), this.element.appendChild(T), this.tooltipElem_ = T, u.value.emitter.on(\"change\", this.onValueUpdate_), this.value = u.value, this.update_();\n }\n get graphElement() {\n return this.svgElem_;\n }\n update_() {\n const o = this.svgElem_.getBoundingClientRect(), u = this.value.rawValue.length - 1, f = this.props_.get(\"minValue\"), x = this.props_.get(\"maxValue\"), T = [];\n this.value.rawValue.forEach((We, te) => {\n if (We === void 0)\n return;\n const Tt = Me(te, 0, u, 0, o.width), Vr = Me(We, f, x, o.height, 0);\n T.push([Tt, Vr].join(\",\"));\n }), this.lineElem_.setAttributeNS(null, \"points\", T.join(\" \"));\n const A = this.tooltipElem_, z = this.value.rawValue[this.cursor_.rawValue];\n if (z === void 0) {\n A.classList.remove(at(\"t\", \"a\"));\n return;\n }\n const oe = Me(this.cursor_.rawValue, 0, u, 0, o.width), Ze = Me(z, f, x, o.height, 0);\n A.style.left = `${oe}px`, A.style.top = `${Ze}px`, A.textContent = `${this.formatter_(z)}`, A.classList.contains(at(\"t\", \"a\")) || (A.classList.add(at(\"t\", \"a\"), at(\"t\", \"in\")), st(A), A.classList.remove(at(\"t\", \"in\")));\n }\n onValueUpdate_() {\n this.update_();\n }\n onCursorChange_() {\n this.update_();\n }\n }\n class yr {\n constructor(o, u) {\n if (this.onGraphMouseMove_ = this.onGraphMouseMove_.bind(this), this.onGraphMouseLeave_ = this.onGraphMouseLeave_.bind(this), this.onGraphPointerDown_ = this.onGraphPointerDown_.bind(this), this.onGraphPointerMove_ = this.onGraphPointerMove_.bind(this), this.onGraphPointerUp_ = this.onGraphPointerUp_.bind(this), this.props_ = u.props, this.value = u.value, this.viewProps = u.viewProps, this.cursor_ = H(-1), this.view = new _s(o, {\n cursor: this.cursor_,\n formatter: u.formatter,\n lineCount: u.lineCount,\n props: this.props_,\n value: this.value,\n viewProps: this.viewProps\n }), !Ye(o))\n this.view.element.addEventListener(\"mousemove\", this.onGraphMouseMove_), this.view.element.addEventListener(\"mouseleave\", this.onGraphMouseLeave_);\n else {\n const f = new Qn(this.view.element);\n f.emitter.on(\"down\", this.onGraphPointerDown_), f.emitter.on(\"move\", this.onGraphPointerMove_), f.emitter.on(\"up\", this.onGraphPointerUp_);\n }\n }\n onGraphMouseLeave_() {\n this.cursor_.rawValue = -1;\n }\n onGraphMouseMove_(o) {\n const u = this.view.element.getBoundingClientRect();\n this.cursor_.rawValue = Math.floor(Me(o.offsetX, 0, u.width, 0, this.value.rawValue.length));\n }\n onGraphPointerDown_(o) {\n this.onGraphPointerMove_(o);\n }\n onGraphPointerMove_(o) {\n if (!o.data.point) {\n this.cursor_.rawValue = -1;\n return;\n }\n this.cursor_.rawValue = Math.floor(Me(o.data.point.x, 0, o.data.bounds.width, 0, this.value.rawValue.length));\n }\n onGraphPointerUp_() {\n this.cursor_.rawValue = -1;\n }\n }\n class ws {\n constructor(o) {\n this.controller_ = o;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(o) {\n this.controller_.viewProps.set(\"disabled\", o);\n }\n get title() {\n var o;\n return (o = this.controller_.props.get(\"title\")) !== null && o !== void 0 ? o : \"\";\n }\n set title(o) {\n this.controller_.props.set(\"title\", o);\n }\n on(o, u) {\n const f = u.bind(this);\n return this.controller_.emitter.on(o, () => {\n f(new a(this));\n }), this;\n }\n }\n class xr extends a {\n constructor(o, u, f) {\n super(o), this.cell = u, this.index = f;\n }\n }\n class ys extends s {\n constructor(o) {\n super(o), this.cellToApiMap_ = /* @__PURE__ */ new Map(), this.emitter_ = new w();\n const u = this.controller_.valueController;\n u.cellControllers.forEach((f, x) => {\n const T = new ws(f);\n this.cellToApiMap_.set(f, T), f.emitter.on(\"click\", () => {\n const A = x % u.size[0], z = Math.floor(x / u.size[0]);\n this.emitter_.emit(\"click\", {\n event: new xr(this, T, [A, z])\n });\n });\n });\n }\n cell(o, u) {\n const f = this.controller_.valueController, x = f.cellControllers[u * f.size[0] + o];\n return this.cellToApiMap_.get(x);\n }\n on(o, u) {\n const f = u.bind(this);\n return this.emitter_.on(o, (x) => {\n f(x.event);\n }), this;\n }\n }\n class ki {\n constructor(o, u) {\n this.size = u.size;\n const [f, x] = this.size, T = [];\n for (let A = 0; A < x; A++)\n for (let z = 0; z < f; z++) {\n const oe = new G(o, {\n props: K.fromObject(Object.assign({}, u.cellConfig(z, A))),\n viewProps: be.create()\n });\n T.push(oe);\n }\n this.cellCs_ = T, this.viewProps = be.create(), this.viewProps.handleDispose(() => {\n this.cellCs_.forEach((A) => {\n A.viewProps.set(\"disposed\", !0);\n });\n }), this.view = new xt(o, {\n viewProps: this.viewProps,\n viewName: \"btngrid\"\n }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((A) => {\n this.view.element.appendChild(A.view.element);\n });\n }\n get cellControllers() {\n return this.cellCs_;\n }\n }\n const Er = {\n id: \"buttongrid\",\n type: \"blade\",\n // TODO:\n css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',\n accept(m) {\n const o = he, u = ee(m, {\n cells: o.required.function,\n size: o.required.array(o.required.number),\n view: o.required.constant(\"buttongrid\"),\n label: o.optional.string\n });\n return u ? { params: u } : null;\n },\n controller(m) {\n return new rt(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: new ki(m.document, {\n cellConfig: m.params.cells,\n size: m.params.size\n })\n });\n },\n api(m) {\n return !(m.controller instanceof rt) || !(m.controller.valueController instanceof ki) ? null : new ys(m.controller);\n }\n };\n class xs extends s {\n get label() {\n return this.controller_.props.get(\"label\");\n }\n set label(o) {\n this.controller_.props.set(\"label\", o);\n }\n get value() {\n return this.controller_.valueController.value.rawValue;\n }\n set value(o) {\n this.controller_.valueController.value.rawValue = o;\n }\n on(o, u) {\n const f = u.bind(this);\n return this.controller_.valueController.value.emitter.on(o, (x) => {\n f(new c(this, x.rawValue, void 0, x.options.last));\n }), this;\n }\n }\n function Qe(m, o, u) {\n return m * (1 - u) + o * u;\n }\n const Cr = 20, Pr = 1e-3, Mi = 100;\n function Tr(m, o) {\n let u = 0.25, f = 0.5, x = -1;\n for (let T = 0; T < Cr; T++) {\n const [A, z] = m.curve(f);\n if (f += u * (A < o ? 1 : -1), x = z, u *= 0.5, Math.abs(o - A) < Pr)\n break;\n }\n return x;\n }\n class Ct {\n constructor(o = 0, u = 0, f = 1, x = 1) {\n this.cache_ = [], this.comps_ = [o, u, f, x];\n }\n get x1() {\n return this.comps_[0];\n }\n get y1() {\n return this.comps_[1];\n }\n get x2() {\n return this.comps_[2];\n }\n get y2() {\n return this.comps_[3];\n }\n static isObject(o) {\n return h(o) || !Array.isArray(o) ? !1 : typeof o[0] == \"number\" && typeof o[1] == \"number\" && typeof o[2] == \"number\" && typeof o[3] == \"number\";\n }\n static equals(o, u) {\n return o.x1 === u.x1 && o.y1 === u.y1 && o.x2 === u.x2 && o.y2 === u.y2;\n }\n curve(o) {\n const u = Qe(0, this.x1, o), f = Qe(0, this.y1, o), x = Qe(this.x1, this.x2, o), T = Qe(this.y1, this.y2, o), A = Qe(this.x2, 1, o), z = Qe(this.y2, 1, o), oe = Qe(u, x, o), Ze = Qe(f, T, o), We = Qe(x, A, o), te = Qe(T, z, o);\n return [Qe(oe, We, o), Qe(Ze, te, o)];\n }\n y(o) {\n if (this.cache_.length === 0) {\n const u = [];\n for (let f = 0; f < Mi; f++)\n u.push(Tr(this, Me(f, 0, Mi - 1, 0, 1)));\n this.cache_ = u;\n }\n return this.cache_[Math.round(Me(Yt(o, 0, 1), 0, 1, 0, Mi - 1))];\n }\n toObject() {\n return [this.comps_[0], this.comps_[1], this.comps_[2], this.comps_[3]];\n }\n }\n const Si = {\n toComponents: (m) => m.toObject(),\n fromComponents: (m) => new Ct(...m)\n };\n function kr(m) {\n const o = Re(2);\n return `cubic-bezier(${m.toObject().map((f) => o(f)).join(\", \")})`;\n }\n const Li = [0, 0.5, 0.5, 1];\n function Mr(m) {\n const o = m.match(/^cubic-bezier\\s*\\(\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*\\)$/);\n if (!o)\n return new Ct(...Li);\n const u = [o[1], o[2], o[3], o[4]].reduce((f, x) => {\n if (!f)\n return null;\n const T = Number(x);\n return isNaN(T) ? null : [...f, T];\n }, []);\n return new Ct(...u ?? Li);\n }\n const It = y(\"cbz\");\n class Es {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(It()), u.viewProps.bindClassModifiers(this.element), u.foldable.bindExpandedClass(this.element, It(void 0, \"expanded\")), R(u.foldable, \"completed\", F(this.element, It(void 0, \"cpl\")));\n const f = o.createElement(\"div\");\n f.classList.add(It(\"h\")), this.element.appendChild(f);\n const x = o.createElement(\"button\");\n x.classList.add(It(\"b\")), u.viewProps.bindDisabled(x);\n const T = o.createElementNS(we, \"svg\");\n T.innerHTML = '', x.appendChild(T), f.appendChild(x), this.buttonElement = x;\n const A = o.createElement(\"div\");\n if (A.classList.add(It(\"t\")), f.appendChild(A), this.textElement = A, u.pickerLayout === \"inline\") {\n const z = o.createElement(\"div\");\n z.classList.add(It(\"p\")), this.element.appendChild(z), this.pickerElement = z;\n } else\n this.pickerElement = null;\n }\n }\n const Jn = y(\"cbzp\");\n class Cs {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(Jn()), u.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"div\");\n f.classList.add(Jn(\"g\")), this.element.appendChild(f), this.graphElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(Jn(\"t\")), this.element.appendChild(x), this.textElement = x;\n }\n }\n function lt(m, o) {\n const u = new MutationObserver((x) => {\n for (const T of x)\n T.type === \"childList\" && T.addedNodes.forEach((A) => {\n A.contains(A) && (o(), u.disconnect());\n });\n }), f = m.ownerDocument;\n u.observe(f.body, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n }\n const bt = y(\"cbzg\");\n function Sr(m, o) {\n return (u) => o(m(u));\n }\n class Ie {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(bt()), u.viewProps.bindClassModifiers(this.element), u.viewProps.bindTabIndex(this.element);\n const f = o.createElement(\"div\");\n f.classList.add(bt(\"p\")), this.element.appendChild(f), this.previewElement = f;\n const x = o.createElementNS(we, \"svg\");\n x.classList.add(bt(\"g\")), this.element.appendChild(x), this.svgElem_ = x;\n const T = o.createElementNS(we, \"path\");\n T.classList.add(bt(\"u\")), this.svgElem_.appendChild(T), this.guideElem_ = T;\n const A = o.createElementNS(we, \"polyline\");\n A.classList.add(bt(\"l\")), this.svgElem_.appendChild(A), this.lineElem_ = A, this.handleElems_ = [o.createElement(\"div\"), o.createElement(\"div\")], this.handleElems_.forEach((z) => {\n z.classList.add(bt(\"h\")), this.element.appendChild(z);\n }), this.vectorElems_ = [\n o.createElementNS(we, \"line\"),\n o.createElementNS(we, \"line\")\n ], this.vectorElems_.forEach((z) => {\n z.classList.add(bt(\"v\")), this.svgElem_.appendChild(z);\n }), this.value_ = u.value, this.value_.emitter.on(\"change\", this.onValueChange_.bind(this)), this.sel_ = u.selection, this.handleElems_.forEach((z, oe) => {\n S(this.sel_, Sr((Ze) => Ze === oe, F(z, bt(\"h\", \"sel\"))));\n }), lt(this.element, () => {\n this.refresh();\n });\n }\n getVertMargin_(o) {\n return o * 0.25;\n }\n valueToPosition(o, u) {\n const f = this.element.getBoundingClientRect(), x = f.width, T = f.height, A = this.getVertMargin_(T);\n return {\n x: Me(o, 0, 1, 0, x),\n y: Me(u, 0, 1, T - A, A)\n };\n }\n positionToValue(o, u) {\n const f = this.element.getBoundingClientRect(), x = f.width, T = f.height, A = this.getVertMargin_(T);\n return {\n x: Yt(Me(o, 0, x, 0, 1), 0, 1),\n y: Me(u, T - A, A, 0, 1)\n };\n }\n refresh() {\n this.guideElem_.setAttributeNS(null, \"d\", [0, 1].map((T) => {\n const A = this.valueToPosition(0, T), z = this.valueToPosition(1, T);\n return [`M ${A.x},${A.y}`, `L ${z.x},${z.y}`].join(\" \");\n }).join(\" \"));\n const o = this.value_.rawValue, u = [];\n let f = 0;\n for (; ; ) {\n const T = this.valueToPosition(...o.curve(f));\n if (u.push([T.x, T.y].join(\",\")), f >= 1)\n break;\n f = Math.min(f + 0.05, 1);\n }\n this.lineElem_.setAttributeNS(null, \"points\", u.join(\" \"));\n const x = o.toObject();\n [0, 1].forEach((T) => {\n const A = this.valueToPosition(T, T), z = this.valueToPosition(x[T * 2], x[T * 2 + 1]), oe = this.vectorElems_[T];\n oe.setAttributeNS(null, \"x1\", String(A.x)), oe.setAttributeNS(null, \"y1\", String(A.y)), oe.setAttributeNS(null, \"x2\", String(z.x)), oe.setAttributeNS(null, \"y2\", String(z.y));\n const Ze = this.handleElems_[T];\n Ze.style.left = `${z.x}px`, Ze.style.top = `${z.y}px`;\n });\n }\n onValueChange_() {\n this.refresh();\n }\n }\n const Ps = 24, yn = 400, Ai = 1e3, Pt = y(\"cbzprv\");\n class Zt {\n constructor(o, u) {\n this.stopped_ = !0, this.startTime_ = -1, this.onDispose_ = this.onDispose_.bind(this), this.onTimer_ = this.onTimer_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.element = o.createElement(\"div\"), this.element.classList.add(Pt()), u.viewProps.bindClassModifiers(this.element);\n const f = o.createElementNS(we, \"svg\");\n f.classList.add(Pt(\"g\")), this.element.appendChild(f), this.svgElem_ = f;\n const x = o.createElementNS(we, \"path\");\n x.classList.add(Pt(\"t\")), this.svgElem_.appendChild(x), this.ticksElem_ = x;\n const T = o.createElement(\"div\");\n T.classList.add(Pt(\"m\")), this.element.appendChild(T), this.markerElem_ = T, this.value_ = u.value, this.value_.emitter.on(\"change\", this.onValueChange_), u.viewProps.handleDispose(this.onDispose_), lt(this.element, () => {\n this.refresh();\n });\n }\n play() {\n this.stop(), this.updateMarker_(0), this.markerElem_.classList.add(Pt(\"m\", \"a\")), this.startTime_ = (/* @__PURE__ */ new Date()).getTime() + yn, this.stopped_ = !1, requestAnimationFrame(this.onTimer_);\n }\n stop() {\n this.stopped_ = !0, this.markerElem_.classList.remove(Pt(\"m\", \"a\"));\n }\n onDispose_() {\n this.stop();\n }\n updateMarker_(o) {\n const u = this.value_.rawValue.y(Yt(o, 0, 1));\n this.markerElem_.style.left = `${u * 100}%`;\n }\n refresh() {\n const o = this.svgElem_.getBoundingClientRect(), u = o.width, f = o.height, x = [], T = this.value_.rawValue;\n for (let A = 0; A < Ps; A++) {\n const z = Me(A, 0, Ps - 1, 0, 1), oe = Me(T.y(z), 0, 1, 0, u);\n x.push(`M ${oe},0 v${f}`);\n }\n this.ticksElem_.setAttributeNS(null, \"d\", x.join(\" \"));\n }\n onTimer_() {\n if (this.startTime_ === null)\n return;\n const o = (/* @__PURE__ */ new Date()).getTime() - this.startTime_, u = o / Ai;\n this.updateMarker_(u), o > Ai + yn && this.stop(), this.stopped_ || requestAnimationFrame(this.onTimer_);\n }\n onValueChange_() {\n this.refresh(), this.play();\n }\n }\n function Oe(m, o, u, f) {\n const x = u - m, T = f - o;\n return Math.sqrt(x * x + T * T);\n }\n function xn(m, o, u, f) {\n const x = Oe(m, o, u, f), T = Math.atan2(f - o, u - m), A = Math.round(T / (Math.PI / 4)) * Math.PI / 4;\n return {\n x: m + Math.cos(A) * x,\n y: o + Math.sin(A) * x\n };\n }\n class ct {\n constructor(o, u) {\n this.onKeyDown_ = this.onKeyDown_.bind(this), this.onKeyUp_ = this.onKeyUp_.bind(this), this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.baseStep_ = u.baseStep, this.value = u.value, this.sel_ = H(0), this.viewProps = u.viewProps, this.view = new Ie(o, {\n selection: this.sel_,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.element.addEventListener(\"keydown\", this.onKeyDown_), this.view.element.addEventListener(\"keyup\", this.onKeyUp_), this.prevView_ = new Zt(o, {\n value: this.value,\n viewProps: this.viewProps\n }), this.prevView_.element.addEventListener(\"mousedown\", (x) => {\n x.stopImmediatePropagation(), x.preventDefault(), this.prevView_.play();\n }), this.view.previewElement.appendChild(this.prevView_.element);\n const f = new Qn(this.view.element);\n f.emitter.on(\"down\", this.onPointerDown_), f.emitter.on(\"move\", this.onPointerMove_), f.emitter.on(\"up\", this.onPointerUp_);\n }\n refresh() {\n this.view.refresh(), this.prevView_.refresh(), this.prevView_.play();\n }\n updateValue_(o, u, f) {\n const x = this.sel_.rawValue, T = this.value.rawValue.toObject(), A = this.view.positionToValue(o.x, o.y), z = u ? xn(x, x, A.x, A.y) : A;\n T[x * 2] = z.x, T[x * 2 + 1] = z.y, this.value.setRawValue(new Ct(...T), f);\n }\n onPointerDown_(o) {\n const u = o.data;\n if (!u.point)\n return;\n const f = this.value.rawValue, x = this.view.valueToPosition(f.x1, f.y1), T = Oe(u.point.x, u.point.y, x.x, x.y), A = this.view.valueToPosition(f.x2, f.y2), z = Oe(u.point.x, u.point.y, A.x, A.y);\n this.sel_.rawValue = T <= z ? 0 : 1, this.updateValue_(u.point, o.shiftKey, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerMove_(o) {\n const u = o.data;\n u.point && this.updateValue_(u.point, o.shiftKey, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(o) {\n const u = o.data;\n u.point && this.updateValue_(u.point, o.shiftKey, {\n forceEmit: !0,\n last: !0\n });\n }\n onKeyDown_(o) {\n us(o.key) && o.preventDefault();\n const u = this.sel_.rawValue, f = this.value.rawValue.toObject();\n f[u * 2] += Xt(this.baseStep_, Ei(o)), f[u * 2 + 1] += Xt(this.baseStep_, vn(o)), this.value.setRawValue(new Ct(...f), {\n forceEmit: !1,\n last: !1\n });\n }\n onKeyUp_(o) {\n us(o.key) && o.preventDefault();\n const u = Xt(this.baseStep_, Ei(o)), f = Xt(this.baseStep_, vn(o));\n u === 0 && f === 0 || this.value.setRawValue(this.value.rawValue, {\n forceEmit: !0,\n last: !0\n });\n }\n }\n class Ts {\n constructor(o, u) {\n this.value = u.value, this.viewProps = u.viewProps, this.view = new Cs(o, {\n viewProps: this.viewProps\n }), this.gc_ = new ct(o, {\n baseStep: u.axis.baseStep,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.graphElement.appendChild(this.gc_.view.element);\n const f = Object.assign(Object.assign({}, u.axis), { constraint: new Lt({ max: 1, min: 0 }) }), x = Object.assign(Object.assign({}, u.axis), { constraint: void 0 });\n this.tc_ = new Rt(o, {\n assembly: Si,\n axes: [f, x, f, x],\n parser: fn,\n value: this.value,\n viewProps: this.viewProps\n }), this.view.textElement.appendChild(this.tc_.view.element);\n }\n get allFocusableElements() {\n return [\n this.gc_.view.element,\n ...this.tc_.view.textViews.map((o) => o.inputElement)\n ];\n }\n refresh() {\n this.gc_.refresh();\n }\n }\n class ei {\n constructor(o, u) {\n this.onButtonBlur_ = this.onButtonBlur_.bind(this), this.onButtonClick_ = this.onButtonClick_.bind(this), this.onPopupChildBlur_ = this.onPopupChildBlur_.bind(this), this.onPopupChildKeydown_ = this.onPopupChildKeydown_.bind(this), this.value = u.value, this.viewProps = u.viewProps, this.foldable_ = Un(u.expanded), this.view = new Es(o, {\n foldable: this.foldable_,\n pickerLayout: u.pickerLayout,\n viewProps: this.viewProps\n }), this.view.buttonElement.addEventListener(\"blur\", this.onButtonBlur_), this.view.buttonElement.addEventListener(\"click\", this.onButtonClick_), this.tc_ = new Ht(o, {\n parser: Mr,\n props: K.fromObject({\n formatter: kr\n }),\n value: this.value,\n viewProps: this.viewProps\n }), this.view.textElement.appendChild(this.tc_.view.element), this.popC_ = u.pickerLayout === \"popup\" ? new ie(o, {\n viewProps: this.viewProps\n }) : null;\n const f = new Ts(o, {\n axis: u.axis,\n value: this.value,\n viewProps: this.viewProps\n });\n f.allFocusableElements.forEach((x) => {\n x.addEventListener(\"blur\", this.onPopupChildBlur_), x.addEventListener(\"keydown\", this.onPopupChildKeydown_);\n }), this.pickerC_ = f, this.popC_ ? (this.view.element.appendChild(this.popC_.view.element), this.popC_.view.element.appendChild(this.pickerC_.view.element), S(this.popC_.shows, (x) => {\n x && f.refresh();\n }), $t({\n primary: this.foldable_.value(\"expanded\"),\n secondary: this.popC_.shows,\n forward: (x) => x.rawValue,\n backward: (x, T) => T.rawValue\n })) : this.view.pickerElement && (this.view.pickerElement.appendChild(this.pickerC_.view.element), Hn(this.foldable_, this.view.pickerElement));\n }\n onButtonBlur_(o) {\n if (!this.popC_)\n return;\n const u = o.relatedTarget;\n (!u || !this.popC_.view.element.contains(u)) && (this.popC_.shows.rawValue = !1);\n }\n onButtonClick_() {\n this.foldable_.set(\"expanded\", !this.foldable_.get(\"expanded\")), this.foldable_.get(\"expanded\") && this.pickerC_.allFocusableElements[0].focus();\n }\n onPopupChildBlur_(o) {\n if (!this.popC_)\n return;\n const u = this.popC_.view.element, f = cn(o);\n f && u.contains(f) || f && f === this.view.buttonElement && !Ye(u.ownerDocument) || (this.popC_.shows.rawValue = !1);\n }\n onPopupChildKeydown_(o) {\n this.popC_ && o.key === \"Escape\" && (this.popC_.shows.rawValue = !1);\n }\n }\n function Ri() {\n return new br({\n assembly: Si,\n components: [0, 1, 2, 3].map((m) => m % 2 === 0 ? new Lt({\n min: 0,\n max: 1\n }) : void 0)\n });\n }\n const Vt = {\n id: \"cubic-bezier\",\n type: \"blade\",\n css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',\n accept(m) {\n const o = he, u = ee(m, {\n value: o.required.array(o.required.number),\n view: o.required.constant(\"cubicbezier\"),\n expanded: o.optional.boolean,\n label: o.optional.string,\n picker: o.optional.custom((f) => f === \"inline\" || f === \"popup\" ? f : void 0)\n });\n return u ? { params: u } : null;\n },\n controller(m) {\n var o, u;\n const f = new Ct(...m.params.value), x = H(f, {\n constraint: Ri(),\n equals: Ct.equals\n }), T = new ei(m.document, {\n axis: {\n baseStep: 0.1,\n textProps: K.fromObject({\n draggingScale: 0.01,\n formatter: Re(2)\n })\n },\n expanded: (o = m.params.expanded) !== null && o !== void 0 ? o : !1,\n pickerLayout: (u = m.params.picker) !== null && u !== void 0 ? u : \"popup\",\n value: x,\n viewProps: m.viewProps\n });\n return new St(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: T\n });\n },\n api(m) {\n return !(m.controller instanceof St) || !(m.controller.valueController instanceof ei) ? null : new xs(m.controller);\n }\n };\n class _e extends s {\n begin() {\n this.controller_.valueController.begin();\n }\n end() {\n this.controller_.valueController.end();\n }\n }\n const Ii = 20;\n class Se {\n constructor() {\n this.start_ = null, this.duration_ = 0, this.fps_ = null, this.frameCount_ = 0, this.timestamps_ = [];\n }\n get duration() {\n return this.duration_;\n }\n get fps() {\n return this.fps_;\n }\n begin(o) {\n this.start_ = o.getTime();\n }\n calculateFps_(o) {\n if (this.timestamps_.length === 0)\n return null;\n const u = this.timestamps_[0];\n return 1e3 * (this.frameCount_ - u.frameCount) / (o - u.time);\n }\n compactTimestamps_() {\n if (this.timestamps_.length <= Ii)\n return;\n const o = this.timestamps_.length - Ii;\n this.timestamps_.splice(0, o);\n const u = this.timestamps_[0].frameCount;\n this.timestamps_.forEach((f) => {\n f.frameCount -= u;\n }), this.frameCount_ -= u;\n }\n end(o) {\n if (this.start_ === null)\n return;\n const u = o.getTime();\n this.duration_ = u - this.start_, this.start_ = null, this.fps_ = this.calculateFps_(u), this.timestamps_.push({\n frameCount: this.frameCount_,\n time: u\n }), ++this.frameCount_, this.compactTimestamps_();\n }\n }\n const Wt = y(\"fps\");\n class He {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(Wt()), u.viewProps.bindClassModifiers(this.element), this.graphElement = o.createElement(\"div\"), this.graphElement.classList.add(Wt(\"g\")), this.element.appendChild(this.graphElement);\n const f = o.createElement(\"div\");\n f.classList.add(Wt(\"l\")), this.element.appendChild(f);\n const x = o.createElement(\"span\");\n x.classList.add(Wt(\"v\")), x.textContent = \"--\", f.appendChild(x), this.valueElement = x;\n const T = o.createElement(\"span\");\n T.classList.add(Wt(\"u\")), T.textContent = \"FPS\", f.appendChild(T);\n }\n }\n class Vi {\n constructor(o, u) {\n this.stopwatch_ = new Se(), this.onTick_ = this.onTick_.bind(this), this.ticker_ = u.ticker, this.ticker_.emitter.on(\"tick\", this.onTick_), this.value_ = u.value, this.viewProps = u.viewProps, this.view = new He(o, {\n viewProps: this.viewProps\n }), this.graphC_ = new yr(o, {\n formatter: Re(0),\n lineCount: u.lineCount,\n props: K.fromObject({\n maxValue: u.maxValue,\n minValue: u.minValue\n }),\n value: this.value_,\n viewProps: this.viewProps\n }), this.view.graphElement.appendChild(this.graphC_.view.element), this.viewProps.handleDispose(() => {\n this.graphC_.viewProps.set(\"disposed\", !0), this.ticker_.dispose();\n });\n }\n begin() {\n this.stopwatch_.begin(/* @__PURE__ */ new Date());\n }\n end() {\n this.stopwatch_.end(/* @__PURE__ */ new Date());\n }\n onTick_() {\n const o = this.stopwatch_.fps;\n if (o !== null) {\n const u = this.value_.rawValue;\n this.value_.rawValue = cr(u, o), this.view.valueElement.textContent = o.toFixed(0);\n }\n }\n }\n function En(m, o) {\n return o === 0 ? new Kn() : new pn(m, o ?? wr.monitor.defaultInterval);\n }\n const Di = {\n id: \"fpsgraph\",\n type: \"blade\",\n accept(m) {\n const o = he, u = ee(m, {\n view: o.required.constant(\"fpsgraph\"),\n interval: o.optional.number,\n label: o.optional.string,\n lineCount: o.optional.number,\n max: o.optional.number,\n min: o.optional.number\n });\n return u ? { params: u } : null;\n },\n controller(m) {\n var o, u, f, x;\n const T = (o = m.params.interval) !== null && o !== void 0 ? o : 500;\n return new rt(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: new Vi(m.document, {\n lineCount: (u = m.params.lineCount) !== null && u !== void 0 ? u : 2,\n maxValue: (f = m.params.max) !== null && f !== void 0 ? f : 90,\n minValue: (x = m.params.min) !== null && x !== void 0 ? x : 0,\n ticker: En(m.document, T),\n value: ls(80),\n viewProps: m.viewProps\n })\n });\n },\n api(m) {\n return !(m.controller instanceof rt) || !(m.controller.valueController instanceof Vi) ? null : new _e(m.controller);\n }\n };\n class Ke {\n constructor(o, u) {\n this.min = o, this.max = u;\n }\n static isObject(o) {\n if (typeof o != \"object\" || o === null)\n return !1;\n const u = o.min, f = o.max;\n return !(typeof u != \"number\" || typeof f != \"number\");\n }\n static equals(o, u) {\n return o.min === u.min && o.max === u.max;\n }\n get length() {\n return this.max - this.min;\n }\n toObject() {\n return {\n min: this.min,\n max: this.max\n };\n }\n }\n const Oi = {\n fromComponents: (m) => new Ke(m[0], m[1]),\n toComponents: (m) => [m.min, m.max]\n };\n class Cn {\n constructor(o) {\n this.edge = o;\n }\n constrain(o) {\n var u, f, x, T, A, z, oe, Ze;\n if (o.min <= o.max)\n return new Ke((f = (u = this.edge) === null || u === void 0 ? void 0 : u.constrain(o.min)) !== null && f !== void 0 ? f : o.min, (T = (x = this.edge) === null || x === void 0 ? void 0 : x.constrain(o.max)) !== null && T !== void 0 ? T : o.max);\n const We = (o.min + o.max) / 2;\n return new Ke((z = (A = this.edge) === null || A === void 0 ? void 0 : A.constrain(We)) !== null && z !== void 0 ? z : We, (Ze = (oe = this.edge) === null || oe === void 0 ? void 0 : oe.constrain(We)) !== null && Ze !== void 0 ? Ze : We);\n }\n }\n const Ni = y(\"rsltxt\");\n class ti {\n constructor(o, u) {\n this.sliderView_ = u.sliderView, this.textView_ = u.textView, this.element = o.createElement(\"div\"), this.element.classList.add(Ni());\n const f = o.createElement(\"div\");\n f.classList.add(Ni(\"s\")), f.appendChild(this.sliderView_.element), this.element.appendChild(f);\n const x = o.createElement(\"div\");\n x.classList.add(Ni(\"t\")), x.appendChild(this.textView_.element), this.element.appendChild(x);\n }\n }\n const nt = y(\"rsl\");\n class Pn {\n constructor(o, u) {\n this.onSliderPropsChange_ = this.onSliderPropsChange_.bind(this), this.onValueChange_ = this.onValueChange_.bind(this), this.sliderProps_ = u.sliderProps, this.sliderProps_.emitter.on(\"change\", this.onSliderPropsChange_), this.element = o.createElement(\"div\"), this.element.classList.add(nt()), u.viewProps.bindClassModifiers(this.element), this.value_ = u.value, this.value_.emitter.on(\"change\", this.onValueChange_);\n const f = o.createElement(\"div\");\n f.classList.add(nt(\"t\")), this.element.appendChild(f), this.trackElement = f;\n const x = o.createElement(\"div\");\n x.classList.add(nt(\"b\")), f.appendChild(x), this.barElement = x;\n const T = [\"min\", \"max\"].map((A) => {\n const z = o.createElement(\"div\");\n return z.classList.add(nt(\"k\"), nt(\"k\", A)), f.appendChild(z), z;\n });\n this.knobElements = [T[0], T[1]], this.update_();\n }\n valueToX_(o) {\n const u = this.sliderProps_.get(\"minValue\"), f = this.sliderProps_.get(\"maxValue\");\n return Yt(Me(o, u, f, 0, 1), 0, 1) * 100;\n }\n update_() {\n const o = this.value_.rawValue;\n o.length === 0 ? this.element.classList.add(nt(void 0, \"zero\")) : this.element.classList.remove(nt(void 0, \"zero\"));\n const u = [this.valueToX_(o.min), this.valueToX_(o.max)];\n this.barElement.style.left = `${u[0]}%`, this.barElement.style.right = `${100 - u[1]}%`, this.knobElements.forEach((f, x) => {\n f.style.left = `${u[x]}%`;\n });\n }\n onSliderPropsChange_() {\n this.update_();\n }\n onValueChange_() {\n this.update_();\n }\n }\n class Fi {\n constructor(o, u) {\n this.grabbing_ = null, this.grabOffset_ = 0, this.onPointerDown_ = this.onPointerDown_.bind(this), this.onPointerMove_ = this.onPointerMove_.bind(this), this.onPointerUp_ = this.onPointerUp_.bind(this), this.sliderProps = u.sliderProps, this.viewProps = u.viewProps, this.value = u.value, this.view = new Pn(o, {\n sliderProps: this.sliderProps,\n value: this.value,\n viewProps: u.viewProps\n });\n const f = new Qn(this.view.trackElement);\n f.emitter.on(\"down\", this.onPointerDown_), f.emitter.on(\"move\", this.onPointerMove_), f.emitter.on(\"up\", this.onPointerUp_);\n }\n ofs_() {\n return this.grabbing_ === \"min\" ? this.view.knobElements[0].getBoundingClientRect().width / 2 : this.grabbing_ === \"max\" ? -this.view.knobElements[1].getBoundingClientRect().width / 2 : 0;\n }\n valueFromData_(o) {\n if (!o.point)\n return null;\n const u = (o.point.x + this.ofs_()) / o.bounds.width, f = this.sliderProps.get(\"minValue\"), x = this.sliderProps.get(\"maxValue\");\n return Me(u, 0, 1, f, x);\n }\n onPointerDown_(o) {\n if (!o.data.point)\n return;\n const u = o.data.point.x / o.data.bounds.width, f = this.value.rawValue, x = this.sliderProps.get(\"minValue\"), T = this.sliderProps.get(\"maxValue\"), A = Me(f.min, x, T, 0, 1), z = Me(f.max, x, T, 0, 1);\n Math.abs(z - u) <= 0.025 ? this.grabbing_ = \"max\" : Math.abs(A - u) <= 0.025 ? this.grabbing_ = \"min\" : u >= A && u <= z ? (this.grabbing_ = \"length\", this.grabOffset_ = Me(u - A, 0, 1, 0, T - x)) : u < A ? (this.grabbing_ = \"min\", this.onPointerMove_(o)) : u > z && (this.grabbing_ = \"max\", this.onPointerMove_(o));\n }\n applyPointToValue_(o, u) {\n const f = this.valueFromData_(o);\n if (f === null)\n return;\n const x = this.sliderProps.get(\"minValue\"), T = this.sliderProps.get(\"maxValue\");\n if (this.grabbing_ === \"min\")\n this.value.setRawValue(new Ke(f, this.value.rawValue.max), u);\n else if (this.grabbing_ === \"max\")\n this.value.setRawValue(new Ke(this.value.rawValue.min, f), u);\n else if (this.grabbing_ === \"length\") {\n const A = this.value.rawValue.length;\n let z = f - this.grabOffset_, oe = z + A;\n z < x ? (z = x, oe = x + A) : oe > T && (z = T - A, oe = T), this.value.setRawValue(new Ke(z, oe), u);\n }\n }\n onPointerMove_(o) {\n this.applyPointToValue_(o.data, {\n forceEmit: !1,\n last: !1\n });\n }\n onPointerUp_(o) {\n this.applyPointToValue_(o.data, {\n forceEmit: !0,\n last: !0\n }), this.grabbing_ = null;\n }\n }\n class gt {\n constructor(o, u) {\n this.value = u.value, this.viewProps = u.viewProps, this.sc_ = new Fi(o, u);\n const f = {\n baseStep: u.baseStep,\n constraint: u.constraint,\n textProps: K.fromObject({\n draggingScale: u.draggingScale,\n formatter: u.formatter\n })\n };\n this.tc_ = new Rt(o, {\n assembly: Oi,\n axes: [f, f],\n parser: u.parser,\n value: this.value,\n viewProps: u.viewProps\n }), this.view = new ti(o, {\n sliderView: this.sc_.view,\n textView: this.tc_.view\n });\n }\n get textController() {\n return this.tc_;\n }\n }\n function ks(m) {\n return Ke.isObject(m) ? new Ke(m.min, m.max) : new Ke(0, 0);\n }\n function Bi(m, o) {\n m.writeProperty(\"max\", o.max), m.writeProperty(\"min\", o.min);\n }\n function Lr(m) {\n const o = [], u = wn(m);\n u && o.push(u);\n const f = _r(m);\n return f && o.push(f), new Cn(new $n(o));\n }\n const ni = {\n id: \"input-interval\",\n type: \"input\",\n css: '.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:\"\";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',\n accept: (m, o) => {\n if (!Ke.isObject(m))\n return null;\n const u = he, f = ee(o, {\n format: u.optional.function,\n max: u.optional.number,\n min: u.optional.number,\n step: u.optional.number\n });\n return f ? {\n initialValue: new Ke(m.min, m.max),\n params: f\n } : null;\n },\n binding: {\n reader: (m) => ks,\n constraint: (m) => Lr(m.params),\n equals: Ke.equals,\n writer: (m) => Bi\n },\n controller(m) {\n var o;\n const u = m.value, f = m.constraint;\n if (!(f instanceof Cn))\n throw g.shouldNeverHappen();\n const x = (u.rawValue.min + u.rawValue.max) / 2, T = (o = m.params.format) !== null && o !== void 0 ? o : Re(gn(f.edge, x)), A = f.edge && Et(f.edge, vt);\n if (A)\n return new gt(m.document, {\n baseStep: Pi(f.edge),\n constraint: f.edge,\n draggingScale: Zn(f.edge, x),\n formatter: T,\n parser: fn,\n sliderProps: new K({\n maxValue: A.values.value(\"max\"),\n minValue: A.values.value(\"min\")\n }),\n value: u,\n viewProps: m.viewProps\n });\n const z = {\n baseStep: Pi(f.edge),\n constraint: f.edge,\n textProps: K.fromObject({\n draggingScale: x,\n formatter: T\n })\n };\n return new Rt(m.document, {\n assembly: Oi,\n axes: [z, z],\n parser: fn,\n value: u,\n viewProps: m.viewProps\n });\n }\n };\n class Dt {\n constructor(o) {\n this.controller_ = o;\n }\n get disabled() {\n return this.controller_.viewProps.get(\"disabled\");\n }\n set disabled(o) {\n this.controller_.viewProps.set(\"disabled\", o);\n }\n get title() {\n var o;\n return (o = this.controller_.props.get(\"title\")) !== null && o !== void 0 ? o : \"\";\n }\n set title(o) {\n this.controller_.props.set(\"title\", o);\n }\n }\n class Ot extends c {\n constructor(o, u, f, x, T) {\n super(o, x, T), this.cell = u, this.index = f;\n }\n }\n class Tn extends s {\n constructor(o) {\n super(o), this.cellToApiMap_ = /* @__PURE__ */ new Map(), this.controller_.valueController.cellControllers.forEach((f) => {\n const x = new Dt(f);\n this.cellToApiMap_.set(f, x);\n });\n }\n get value() {\n return this.controller_.value;\n }\n cell(o, u) {\n const f = this.controller_.valueController, x = f.cellControllers[u * f.size[0] + o];\n return this.cellToApiMap_.get(x);\n }\n on(o, u) {\n const f = u.bind(this);\n this.controller_.value.emitter.on(o, (x) => {\n const T = this.controller_.valueController, A = T.findCellByValue(x.rawValue);\n if (!A)\n return;\n const z = this.cellToApiMap_.get(A);\n if (!z)\n return;\n const oe = T.cellControllers.indexOf(A);\n f(new Ot(this, z, [oe % T.size[0], Math.floor(oe / T.size[0])], x.rawValue, void 0));\n });\n }\n }\n const kn = y(\"rad\");\n class Ms {\n constructor(o, u) {\n this.element = o.createElement(\"div\"), this.element.classList.add(kn()), u.viewProps.bindClassModifiers(this.element);\n const f = o.createElement(\"label\");\n f.classList.add(kn(\"l\")), this.element.appendChild(f);\n const x = o.createElement(\"input\");\n x.classList.add(kn(\"i\")), x.name = u.name, x.type = \"radio\", u.viewProps.bindDisabled(x), f.appendChild(x), this.inputElement = x;\n const T = o.createElement(\"div\");\n T.classList.add(kn(\"b\")), f.appendChild(T);\n const A = o.createElement(\"div\");\n A.classList.add(kn(\"t\")), T.appendChild(A), R(u.props, \"title\", (z) => {\n A.textContent = z;\n });\n }\n }\n class Ss {\n constructor(o, u) {\n this.props = u.props, this.viewProps = u.viewProps, this.view = new Ms(o, {\n name: u.name,\n props: this.props,\n viewProps: this.viewProps\n });\n }\n }\n class ii {\n constructor(o, u) {\n this.cellCs_ = [], this.cellValues_ = [], this.onCellInputChange_ = this.onCellInputChange_.bind(this), this.size = u.size;\n const [f, x] = this.size;\n for (let T = 0; T < x; T++)\n for (let A = 0; A < f; A++) {\n const z = new Ss(o, {\n name: u.groupName,\n props: K.fromObject(Object.assign({}, u.cellConfig(A, T))),\n viewProps: be.create()\n });\n this.cellCs_.push(z), this.cellValues_.push(u.cellConfig(A, T).value);\n }\n this.value = u.value, S(this.value, (T) => {\n const A = this.findCellByValue(T);\n A && (A.view.inputElement.checked = !0);\n }), this.viewProps = be.create(), this.view = new xt(o, {\n viewProps: this.viewProps,\n viewName: \"radgrid\"\n }), this.view.element.style.gridTemplateColumns = `repeat(${f}, 1fr)`, this.cellCs_.forEach((T) => {\n T.view.inputElement.addEventListener(\"change\", this.onCellInputChange_), this.view.element.appendChild(T.view.element);\n });\n }\n get cellControllers() {\n return this.cellCs_;\n }\n findCellByValue(o) {\n const u = this.cellValues_.findIndex((f) => f === o);\n return u < 0 ? null : this.cellCs_[u];\n }\n onCellInputChange_(o) {\n const u = o.currentTarget, f = this.cellCs_.findIndex((x) => x.view.inputElement === u);\n f < 0 || (this.value.rawValue = this.cellValues_[f]);\n }\n }\n const Nt = function() {\n return {\n id: \"radiogrid\",\n type: \"blade\",\n accept(m) {\n const o = he, u = ee(m, {\n cells: o.required.function,\n groupName: o.required.string,\n size: o.required.array(o.required.number),\n value: o.required.raw,\n view: o.required.constant(\"radiogrid\"),\n label: o.optional.string\n });\n return u ? { params: u } : null;\n },\n controller(m) {\n return new St(m.document, {\n blade: m.blade,\n props: K.fromObject({\n label: m.params.label\n }),\n valueController: new ii(m.document, {\n groupName: m.params.groupName,\n cellConfig: m.params.cells,\n size: m.params.size,\n value: H(m.params.value)\n })\n });\n },\n api(m) {\n return !(m.controller instanceof St) || !(m.controller.valueController instanceof ii) ? null : new Tn(m.controller);\n }\n };\n }();\n function ji(m) {\n return {\n id: \"input-radiogrid\",\n type: \"input\",\n accept(o, u) {\n if (!m.isType(o))\n return null;\n const f = he, x = ee(u, {\n cells: f.required.function,\n groupName: f.required.string,\n size: f.required.array(f.required.number),\n view: f.required.constant(\"radiogrid\")\n });\n return x ? {\n initialValue: o,\n params: x\n } : null;\n },\n binding: m.binding,\n controller: (o) => new ii(o.document, {\n cellConfig: o.params.cells,\n groupName: o.params.groupName,\n size: o.params.size,\n value: o.value\n })\n };\n }\n const Ar = ji({\n isType: (m) => typeof m == \"number\",\n binding: {\n reader: (m) => ar,\n writer: (m) => tt\n }\n }), Rr = ji({\n isType: (m) => typeof m == \"string\",\n binding: {\n reader: (m) => as,\n writer: (m) => tt\n }\n }), Ir = ji({\n isType: (m) => typeof m == \"boolean\",\n binding: {\n reader: (m) => hn,\n writer: (m) => tt\n }\n }), Ls = [\n Er,\n Vt,\n Di,\n ni,\n Nt,\n Ir,\n Ar,\n Rr\n ];\n r.ButtonCellApi = ws, r.ButtonGridApi = ys, r.ButtonGridController = ki, r.CubicBezier = Ct, r.CubicBezierApi = xs, r.CubicBezierAssembly = Si, r.CubicBezierController = ei, r.CubicBezierGraphController = ct, r.CubicBezierGraphView = Ie, r.CubicBezierPickerController = Ts, r.CubicBezierPickerView = Cs, r.CubicBezierPreviewView = Zt, r.CubicBezierView = Es, r.FpsGraphBladeApi = _e, r.FpsGraphController = Vi, r.FpsView = He, r.Fpswatch = Se, r.Interval = Ke, r.IntervalAssembly = Oi, r.IntervalConstraint = Cn, r.RadioCellApi = Dt, r.RadioController = Ss, r.RadioGridApi = Tn, r.RadioGridController = ii, r.RadioView = Ms, r.RangeSliderController = Fi, r.RangeSliderTextController = gt, r.RangeSliderTextView = ti, r.RangeSliderView = Pn, r.TpRadioGridChangeEvent = Ot, r.plugins = Ls, Object.defineProperty(r, \"__esModule\", { value: !0 });\n });\n})(Oh, ts);\nconst Nh = /* @__PURE__ */ dh(ts), Fh = /* @__PURE__ */ Gu({\n __proto__: null,\n default: Nh\n}, [ts]);\nlet In, Ns;\nconst Sd = (v = \"tres-container\") => {\n In || (In = new Gs.Pane({\n container: document.querySelector(v) || void 0\n }), In.registerPlugin(Fh), Ns = In.addBlade({\n view: \"fpsgraph\",\n label: \"fpsgraph\"\n }));\n function n() {\n In && In.dispose();\n }\n return Sa(() => {\n const { onBeforeLoop: r, onAfterLoop: s, resume: a } = go();\n a(), r(() => Ns.begin()), s(() => Ns.end());\n }), La(() => {\n n();\n }), { pane: In, fpsGraph: Ns, disposeTweakPane: n };\n};\nfunction Ld(v, n) {\n const r = Ut(n), s = new Bu(r.value), a = ru({});\n v.forEach((p) => {\n const h = s.clipAction(p, r.value);\n a[p.name] = h;\n });\n const { onLoop: c } = go();\n return c(({ delta: p }) => {\n s.update(p);\n }), {\n actions: a,\n mixer: s\n };\n}\nlet Fs = null;\nfunction Bh(v, n) {\n return (r) => {\n n && n(r), v.draco && (Fs || (Fs = new fh()), Fs.setDecoderPath(v.decoderPath || \"https://www.gstatic.com/draco/versioned/decoders/1.4.3/\"), r.setDRACOLoader(Fs));\n };\n}\nasync function jh(v, n = {\n draco: !1\n}, r) {\n return await _o(mp, v, Bh(n, r));\n}\nconst Ad = Le({\n name: \"GLTFModel\",\n props: [\"path\", \"draco\", \"decoderPath\"],\n async setup(v, { expose: n }) {\n const { state: r } = Gt(), s = Ut();\n n({ model: s });\n const { scene: a } = await jh(v.path, { draco: v.draco, decoderPath: v.decoderPath });\n return s.value = a, r.scene && r.scene.add(a), () => {\n };\n }\n});\nasync function zh(v) {\n return await _o(Wp, v);\n}\nconst Rd = Le({\n name: \"FBXModel\",\n props: [\"path\"],\n async setup(v, { expose: n }) {\n const { state: r } = Gt();\n let s = null;\n function a() {\n return s;\n }\n return n({ getModel: a }), s = await zh(v.path), r.scene && s.isObject3D && r.scene.add(s), () => {\n };\n }\n}), Uh = { key: 0 }, Gh = [\"args\", \"center\"], Id = /* @__PURE__ */ Le({\n __name: \"Text3D\",\n props: {\n font: null,\n text: null,\n size: { default: 0.5 },\n height: { default: 0.2 },\n curveSegments: { default: 5 },\n bevelEnabled: { type: Boolean, default: !0 },\n bevelThickness: { default: 0.05 },\n bevelSize: { default: 0.02 },\n bevelOffset: { default: 0 },\n bevelSegments: { default: 4 },\n center: { type: Boolean, default: !1 }\n },\n async setup(v) {\n let n, r;\n const s = v, { extend: a } = Gt();\n a({ TextGeometry: Hp });\n const c = new uh(), p = ou(), h = Qi(() => {\n var w;\n return s.text ? s.text : p.default ? (w = p.default()[0].children) == null ? void 0 : w.trim() : \"TresJS\";\n }), d = ([n, r] = au(() => new Promise((w, _) => {\n try {\n typeof s.font == \"string\" ? c.load(s.font, (y) => {\n w(y);\n }) : w(s.font);\n } catch (y) {\n _(console.error(\"cientos\", y));\n }\n })), n = await n, r(), n), g = Qi(() => ({\n font: d,\n size: s.size,\n height: s.height,\n curveSegments: s.curveSegments,\n bevelEnabled: s.bevelEnabled,\n bevelThickness: s.bevelThickness,\n bevelSize: s.bevelSize,\n bevelOffset: s.bevelOffset,\n bevelSegments: s.bevelSegments\n }));\n return (w, _) => it(d) ? (Ne(), Fe(\"TresMesh\", Uh, [\n it(h) ? (Ne(), Fe(\"TresTextGeometry\", {\n key: 0,\n args: [it(h), it(g)],\n center: v.center\n }, null, 8, Gh)) : Bs(\"\", !0),\n Xe(w.$slots, \"default\")\n ])) : Bs(\"\", !0);\n }\n}), Hh = [\"rotation\"], Kh = [\"args\"], $h = [\"color\"], Vd = /* @__PURE__ */ Le({\n __name: \"Plane\",\n props: {\n args: { default: () => [1, 1] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"planeRef\",\n ref: r,\n rotation: [-Math.PI / 2, 0, 0]\n }, s.$attrs), [\n xe(\"TresPlaneGeometry\", { args: v.args }, null, 8, Kh),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, $h)\n ])\n ], 16, Hh));\n }\n}), Xh = [\"args\"], Yh = [\"color\"], Dd = /* @__PURE__ */ Le({\n __name: \"Box\",\n props: {\n args: { default: () => [1, 1, 1] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"boxRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresBoxGeometry\", { args: v.args }, null, 8, Xh),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, Yh)\n ])\n ], 16));\n }\n}), qh = [\"args\"], Qh = [\"color\"], Od = /* @__PURE__ */ Le({\n __name: \"Sphere\",\n props: {\n args: { default: () => [2, 32, 16] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"sphereRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresSphereGeometry\", { args: v.args }, null, 8, qh),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, Qh)\n ])\n ], 16));\n }\n}), Zh = [\"args\"], Wh = [\"color\"], Nd = /* @__PURE__ */ Le({\n __name: \"Torus\",\n props: {\n args: { default: () => [1, 1, 16, 80] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"torusRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresTorusGeometry\", { args: v.args }, null, 8, Zh),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, Wh)\n ])\n ], 16));\n }\n}), Jh = [\"args\"], ed = [\"color\"], Fd = /* @__PURE__ */ Le({\n __name: \"TorusKnot\",\n props: {\n args: { default: () => [1, 0.4, 64, 8] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"torusKnotRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresTorusKnotGeometry\", { args: v.args }, null, 8, Jh),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, ed)\n ])\n ], 16));\n }\n}), td = [\"args\"], nd = [\"color\"], Bd = /* @__PURE__ */ Le({\n __name: \"Circle\",\n props: {\n args: { default: () => [1, 32, 0, Math.PI * 2] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"circleRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresCircleGeometry\", { args: v.args }, null, 8, td),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, nd)\n ])\n ], 16));\n }\n}), id = [\"args\"], sd = [\"color\"], jd = /* @__PURE__ */ Le({\n __name: \"Cone\",\n props: {\n args: { default: () => [1, 1, 12, !1, 0, Math.PI * 2] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"coneRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresConeGeometry\", { args: v.args }, null, 8, id),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, sd)\n ])\n ], 16));\n }\n}), rd = [\"args\"], od = [\"color\"], zd = /* @__PURE__ */ Le({\n __name: \"Tube\",\n props: {\n args: { default: () => [\n new ju(new $(-1, 0, 0), new $(0, 1, 0), new $(1, 0, 0)),\n 20,\n 0.2,\n 8,\n !1\n ] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"tubeRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresTubeGeometry\", { args: v.args }, null, 8, rd),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, od)\n ])\n ], 16));\n }\n}), ad = [\"args\"], ld = [\"color\"], Ud = /* @__PURE__ */ Le({\n __name: \"Ring\",\n props: {\n args: { default: () => [0.5, 1, 32] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"ringRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresRingGeometry\", { args: v.args }, null, 8, ad),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, ld)\n ])\n ], 16));\n }\n}), cd = [\"rotation\"], ud = [\"args\"], pd = [\"color\"], Gd = /* @__PURE__ */ Le({\n __name: \"Tetrahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"tetrahedronRef\",\n ref: r,\n rotation: [-Math.PI / 2, 0, 0]\n }, s.$attrs), [\n xe(\"TresTetrahedronGeometry\", { args: v.args }, null, 8, ud),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, pd)\n ])\n ], 16, cd));\n }\n}), hd = [\"args\"], dd = [\"color\"], Hd = /* @__PURE__ */ Le({\n __name: \"Icosahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"icosahedronRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresIcosahedronGeometry\", { args: v.args }, null, 8, hd),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, dd)\n ])\n ], 16));\n }\n}), md = [\"args\"], fd = [\"color\"], Kd = /* @__PURE__ */ Le({\n __name: \"Octahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"octahedronRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresOctahedronGeometry\", { args: v.args }, null, 8, md),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, fd)\n ])\n ], 16));\n }\n}), vd = [\"args\"], bd = [\"color\"], $d = /* @__PURE__ */ Le({\n __name: \"Dodecahedron\",\n props: {\n args: { default: () => [1, 0] },\n color: { default: \"0xffffff\" }\n },\n setup(v, { expose: n }) {\n const r = $e();\n return n({\n value: r\n }), (s, a) => (Ne(), Fe(\"TresMesh\", et({\n ref_key: \"dodecahedronRef\",\n ref: r\n }, s.$attrs), [\n xe(\"TresDodecahedronGeometry\", { args: v.args }, null, 8, vd),\n Xe(s.$slots, \"default\", {}, () => [\n xe(\"TresMeshBasicMaterial\", { color: v.color }, null, 8, bd)\n ])\n ], 16));\n }\n}), ao = {\n sunset: \"venice/venice_sunset_4k.hdr\"\n};\nasync function gd({\n files: v = [\"/px.png\", \"/nx.png\", \"/py.png\", \"/ny.png\", \"/pz.png\", \"/nz.png\"],\n blur: n = 0,\n background: r = !1,\n path: s = \"/\",\n preset: a = void 0,\n encoding: c = void 0\n}) {\n const { state: p } = Gt();\n if (a) {\n if (!(a in ao))\n throw new Error(\"Preset must be one of: \" + Object.keys(ao).join(\", \"));\n v = ao[a], s = \"https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/\";\n }\n const h = Array.isArray(v), g = await _o(\n h ? Uu : mh,\n h ? [v] : v,\n (_) => {\n s && _.setPath(s), c && (_.encoding = c);\n }\n ), w = h ? g[0] : g;\n return w && (w.mapping = h ? zu : Ga, w.encoding = c ?? h ? dt : Ha), p.scene && (p.scene.environment = w, r !== void 0 && (p.scene.background = w), n && (p.scene.backgroundBlurriness = n | 0)), w;\n}\nconst Xd = Le({\n name: \"Environment\",\n props: [\"background\", \"blur\", \"files\", \"encoding\", \"path\", \"preset\"],\n async setup(v, { expose: n }) {\n let r = null;\n return n({ getTexture: () => r }), r = await gd(v), () => {\n };\n }\n});\nclass _d extends Xs {\n constructor(r = {}) {\n super(r);\n Zr(this, \"_time\");\n Zr(this, \"_factor\");\n this.setValues(r), this._time = { value: 0 }, this._factor = { value: 1 };\n }\n onBeforeCompile(r) {\n r.uniforms.time = this._time, r.uniforms.factor = this._factor, r.vertexShader = `\n uniform float time;\n uniform float factor;\n ${r.vertexShader}\n `, r.vertexShader = r.vertexShader.replace(\n \"#include \",\n `float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;`\n );\n }\n get time() {\n return this._time.value;\n }\n set time(r) {\n this._time.value = r;\n }\n get factor() {\n return this._factor.value;\n }\n set factor(r) {\n this._factor.value = r;\n }\n}\nconst wd = [\"factor\"], Yd = /* @__PURE__ */ Le({\n __name: \"index\",\n props: {\n speed: { default: 1 },\n factor: { default: 1 }\n },\n setup(v) {\n const n = v, r = $e(), { extend: s } = Gt();\n s({ MeshWobbleMaterial: _d });\n const { onLoop: a } = go();\n return Ks(() => {\n console.log(r.value);\n }), a(({ elapsed: c }) => {\n r.value && (r.value.time = c * (n == null ? void 0 : n.speed));\n }), (c, p) => (Ne(), Fe(\"TresMeshWobbleMaterial\", et({\n ref_key: \"materialRef\",\n ref: r,\n factor: v.factor\n }, c.$attrs), null, 16, wd));\n }\n});\nexport {\n Dd as Box,\n Bd as Circle,\n jd as Cone,\n $d as Dodecahedron,\n Xd as Environment,\n Rd as FBXModel,\n Ad as GLTFModel,\n Hd as Icosahedron,\n Yd as MeshWobbleMaterial,\n Kd as Octahedron,\n Pd as OrbitControls,\n Md as PamCameraMouse,\n Vd as Plane,\n Td as PointerLockControls,\n Ud as Ring,\n Od as Sphere,\n Gd as Tetrahedron,\n Id as Text3D,\n Nd as Torus,\n Fd as TorusKnot,\n kd as TransformControls,\n zd as Tube,\n Ld as useAnimations,\n gd as useEnvironment,\n zh as useFBX,\n jh as useGLTF,\n Vh as usePamCameraMouse,\n Sd as useTweakPane\n};\n"], + "mappings": "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,KAAK,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG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", + "names": ["I", "D", "Et", "Me"] } diff --git a/docs/.vitepress/cache/deps/@tresjs_core.js b/docs/.vitepress/cache/deps/@tresjs_core.js index 29a72e972..671714277 100644 --- a/docs/.vitepress/cache/deps/@tresjs_core.js +++ b/docs/.vitepress/cache/deps/@tresjs_core.js @@ -1,42 +1,42 @@ import { - A, Ct, + D, Et, + I, Lt, - Mt, + Me, N, - St, - Xe, + Pt, + Qe, + Rt, + bt, ct, - it, - k, - ot, - q, - ut, - ve, - we, - wt -} from "./chunk-ZAYNNKM4.js"; + ft, + he, + lt, + st, + we +} from "./chunk-DESKY23Y.js"; import "./chunk-LZPJ5JBW.js"; import "./chunk-4QXXOI63.js"; import "./chunk-JC4IRQUL.js"; export { - Xe as CameraType, - wt as TresCanvas, - N as catalogue, - St as default, - ve as extend, - Et as isProd, - it as trasverseObjects, - q as useCamera, - Mt as useLoader, - A as useLogger, - ut as useRaycaster, - we as useRenderLoop, - ot as useRenderer, - Lt as useSeek, + Qe as CameraType, + bt as TresCanvas, + he as catalogue, + Lt as default, + we as extend, + Pt as isProd, + ct as trasverseObjects, + N as useCamera, + Et as useLoader, + I as useLogger, + lt as useRaycaster, + Me as useRenderLoop, + st as useRenderer, + Rt as useSeek, Ct as useTexture, - k as useTres, - ct as useTresProvider + D as useTres, + ft as useTresProvider }; //# sourceMappingURL=@tresjs_core.js.map diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json index f5da8e937..9409ccd69 100644 --- a/docs/.vitepress/cache/deps/_metadata.json +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -1,47 +1,47 @@ { - "hash": "c0aa5abf", - "browserHash": "786d5af0", + "hash": "73411b7d", + "browserHash": "0bbf8bc7", "optimized": { "vue": { "src": "../../../../node_modules/.pnpm/vue@3.2.47/node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "fca2bc15", - "needsInterop": false - }, - "@tresjs/core": { - "src": "../../../../node_modules/.pnpm/@tresjs+core@2.0.0-beta.2_three@0.150.1/node_modules/@tresjs/core/dist/tres.js", - "file": "@tresjs_core.js", - "fileHash": "f99c16ea", + "fileHash": "1ab1f91c", "needsInterop": false }, "three": { "src": "../../../../node_modules/.pnpm/three@0.150.1/node_modules/three/build/three.module.js", "file": "three.js", - "fileHash": "674337d4", + "fileHash": "c93e162c", + "needsInterop": false + }, + "@tresjs/core": { + "src": "../../../../node_modules/.pnpm/@tresjs+core@2.0.0-beta.5_three@0.150.1_vue@3.2.47/node_modules/@tresjs/core/dist/tres.js", + "file": "@tresjs_core.js", + "fileHash": "dc076c3b", "needsInterop": false }, "@tresjs/cientos": { - "src": "../../../../node_modules/.pnpm/@tresjs+cientos@2.0.0-beta.0_tmfoxhtycm6gvt37fuuvp77ciy/node_modules/@tresjs/cientos/dist/trescientos.js", + "src": "../../../../node_modules/.pnpm/@tresjs+cientos@2.0.0-beta.1_@tresjs+core@2.0.0-beta.5_three@0.150.1_vue@3.2.47/node_modules/@tresjs/cientos/dist/trescientos.js", "file": "@tresjs_cientos.js", - "fileHash": "8c54a5ea", + "fileHash": "c0bcd255", "needsInterop": false }, "@stackblitz/sdk": { "src": "../../../../node_modules/.pnpm/@stackblitz+sdk@1.9.0/node_modules/@stackblitz/sdk/bundles/sdk.m.js", "file": "@stackblitz_sdk.js", - "fileHash": "8df2d73d", + "fileHash": "68a20abf", "needsInterop": false }, "gsap": { "src": "../../../../node_modules/.pnpm/gsap@3.11.5/node_modules/gsap/index.js", "file": "gsap.js", - "fileHash": "194308d9", + "fileHash": "a4e0a5be", "needsInterop": false } }, "chunks": { - "chunk-ZAYNNKM4": { - "file": "chunk-ZAYNNKM4.js" + "chunk-DESKY23Y": { + "file": "chunk-DESKY23Y.js" }, "chunk-LZPJ5JBW": { "file": "chunk-LZPJ5JBW.js" diff --git a/docs/.vitepress/cache/deps/chunk-ZAYNNKM4.js b/docs/.vitepress/cache/deps/chunk-DESKY23Y.js similarity index 60% rename from docs/.vitepress/cache/deps/chunk-ZAYNNKM4.js rename to docs/.vitepress/cache/deps/chunk-DESKY23Y.js index 5a96b9178..83ec089d3 100644 --- a/docs/.vitepress/cache/deps/chunk-ZAYNNKM4.js +++ b/docs/.vitepress/cache/deps/chunk-DESKY23Y.js @@ -43,7 +43,7 @@ import { three_module_exports } from "./chunk-4QXXOI63.js"; -// node_modules/.pnpm/@vueuse+shared@9.13.0/node_modules/@vueuse/shared/index.mjs +// node_modules/.pnpm/@vueuse+shared@9.13.0_vue@3.2.47/node_modules/@vueuse/shared/index.mjs var _a; var isClient = typeof window !== "undefined"; var isFunction = (val) => typeof val === "function"; @@ -97,7 +97,7 @@ function tryOnMounted(fn, sync = true) { nextTick(fn); } -// node_modules/.pnpm/@vueuse+core@9.13.0/node_modules/@vueuse/core/index.mjs +// node_modules/.pnpm/@vueuse+core@9.13.0_vue@3.2.47/node_modules/@vueuse/core/index.mjs function unrefElement(elRef) { var _a2; const plain = resolveUnref(elRef); @@ -390,25 +390,25 @@ function useWindowSize(options = {}) { return { width, height }; } -// node_modules/.pnpm/@tresjs+core@2.0.0-beta.2_three@0.150.1/node_modules/@tresjs/core/dist/tres.js -var N = ref({ uuid: MathUtils.generateUUID() }); -var ve = (e) => void Object.assign(N.value, e); -var Xe = ((e) => (e.Perspective = "Perspective", e.Orthographic = "Orthographic", e))(Xe || {}); -var Je = 45; -var L; -function q() { - const { state: e, setState: t, aspectRatio: r } = k(); - function a(o = "Perspective", c) { - var l, v, d; - if (o === "Perspective") { - const { near: f, far: M, fov: h2 } = c || { +// node_modules/.pnpm/@tresjs+core@2.0.0-beta.5_three@0.150.1_vue@3.2.47/node_modules/@tresjs/core/dist/tres.js +var he = ref({ uuid: MathUtils.generateUUID() }); +var we = (e) => void Object.assign(he.value, e); +var Qe = ((e) => (e.Perspective = "Perspective", e.Orthographic = "Orthographic", e))(Qe || {}); +var Ze = 45; +var _; +function N() { + const { state: e, setState: t, aspectRatio: o } = D(); + function a(i = "Perspective", c) { + var u, f, m; + if (i === "Perspective") { + const { near: d, far: P, fov: g } = c || { near: 0.1, far: 1e3, - fov: Je + fov: Ze }; - L = new PerspectiveCamera(h2, ((l = e.aspectRatio) == null ? void 0 : l.value) || window.innerWidth / window.innerHeight, f, M), (v = e.cameras) == null || v.push(L); + _ = new PerspectiveCamera(g, ((u = e.aspectRatio) == null ? void 0 : u.value) || window.innerWidth / window.innerHeight, d, P), (f = e.cameras) == null || f.push(_); } else { - const { left: f, right: M, top: h2, bottom: C, near: g, far: p } = c || { + const { left: d, right: P, top: g, bottom: R, near: w, far: p } = c || { left: -100, right: 100, top: 100, @@ -416,60 +416,60 @@ function q() { near: 0.1, far: 1e3 }; - L = new OrthographicCamera(f, M, h2, C, g, p), (d = e.cameras) == null || d.push(L); + _ = new OrthographicCamera(d, P, g, R, w, p), (m = e.cameras) == null || m.push(_); } - return e.camera = L, t("camera", e.camera), L; + return e.camera = _, t("camera", e.camera), _; } function n() { - var o; - e.camera instanceof PerspectiveCamera && e.aspectRatio && (e.camera.aspect = e.aspectRatio.value), (o = e.camera) == null || o.updateProjectionMatrix(); + var i; + e.camera instanceof PerspectiveCamera && e.aspectRatio && (e.camera.aspect = e.aspectRatio.value), (i = e.camera) == null || i.updateProjectionMatrix(); } - function i(o) { + function r(i) { var c; - (c = e.cameras) == null || c.push(o), o instanceof PerspectiveCamera && e.aspectRatio && (o.aspect = e.aspectRatio.value), o.updateProjectionMatrix(), t("camera", o); + (c = e.cameras) == null || c.push(i), i instanceof PerspectiveCamera && e.aspectRatio && (i.aspect = e.aspectRatio.value), i.updateProjectionMatrix(), t("camera", i); } function s() { e.cameras = []; } return watchEffect(() => { - r != null && r.value && n(); + o != null && o.value && n(); }), { activeCamera: toRef(e, "camera"), createCamera: a, updateCamera: n, - pushCamera: i, + pushCamera: r, clearCameras: s }; } -var he = createEventHook(); -var ge = createEventHook(); -var Y = createEventHook(); -var R = new Clock(); -var D = 0; -var W = 0; -var { pause: Qe, resume: Ze, isActive: et } = useRafFn( +var be = createEventHook(); +var ye = createEventHook(); +var K = createEventHook(); +var j = new Clock(); +var G = 0; +var V = 0; +var { pause: et, resume: tt, isActive: at } = useRafFn( () => { - he.trigger({ delta: D, elapsed: W, clock: R }), ge.trigger({ delta: D, elapsed: W, clock: R }), Y.trigger({ delta: D, elapsed: W, clock: R }); + be.trigger({ delta: G, elapsed: V, clock: j }), ye.trigger({ delta: G, elapsed: V, clock: j }), K.trigger({ delta: G, elapsed: V, clock: j }); }, { immediate: false } ); -Y.on(() => { - D = R.getDelta(), W = R.getElapsedTime(); +K.on(() => { + G = j.getDelta(), V = j.getElapsedTime(); }); -function we() { +function Me() { return { - onBeforeLoop: he.on, - onLoop: ge.on, - onAfterLoop: Y.on, - pause: Qe, - resume: Ze, - isActive: et + onBeforeLoop: be.on, + onLoop: ye.on, + onAfterLoop: K.on, + pause: et, + resume: tt, + isActive: at }; } -function tt(e) { +function nt(e) { return e instanceof Color ? e : Array.isArray(e) ? new Color(...e) : new Color(e); } -var G = { +var $ = { realistic: { outputEncoding: sRGBEncoding, toneMapping: ACESFilmicToneMapping, @@ -480,165 +480,165 @@ var G = { } } }; -var be = (e, t) => { - for (const r of Object.keys(t)) - t[r] instanceof Object && Object.assign(t[r], be(e[r], t[r])); +var xe = (e, t) => { + for (const o of Object.keys(t)) + t[o] instanceof Object && Object.assign(t[o], xe(e[o], t[o])); return Object.assign(e || {}, t), e; }; -var nt = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; -var at = rt(nt); -function _(e) { - return e.replace(/-([a-z])/g, (t, r) => r.toUpperCase()); +var rt = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var ot = it(rt); +function z(e) { + return e.replace(/-([a-z])/g, (t, o) => o.toUpperCase()); } -function rt(e, t) { - const r = /* @__PURE__ */ Object.create(null), a = e.split(","); +function it(e, t) { + const o = /* @__PURE__ */ Object.create(null), a = e.split(","); for (let n = 0; n < a.length; n++) - r[a[n]] = true; - return t ? (n) => !!r[n.toLowerCase()] : (n) => !!r[n]; + o[a[n]] = true; + return t ? (n) => !!o[n.toLowerCase()] : (n) => !!o[n]; } -function ot(e) { - var ee, te; - const t = shallowRef(), r = ref(false), { +function st(e) { + var Z, ee; + const t = shallowRef(), o = ref(false), { alpha: a = true, antialias: n = true, - depth: i, + depth: r, logarithmicDepthBuffer: s, - failIfMajorPerformanceCaveat: o, + failIfMajorPerformanceCaveat: i, precision: c, - premultipliedAlpha: l, - stencil: v, - shadows: d = false, - shadowMapType: f = PCFShadowMap, - physicallyCorrectLights: M = false, - useLegacyLights: h2 = false, - outputEncoding: C = LinearEncoding, - toneMapping: g = NoToneMapping, + premultipliedAlpha: u, + stencil: f, + shadows: m = false, + shadowMapType: d = PCFShadowMap, + physicallyCorrectLights: P = false, + useLegacyLights: g = false, + outputEncoding: R = LinearEncoding, + toneMapping: w = NoToneMapping, toneMappingExposure: p = 1, - context: b = void 0, - powerPreference: y = "default", - preserveDrawingBuffer: O = false, - clearColor: w, - windowSize: T = false, - preset: j = void 0 - } = toRefs(e), { state: x, setState: F } = k(), { width: K, height: X } = resolveUnref(T) ? useWindowSize() : useElementSize(x.container), { logError: Me, logWarning: Ce } = A(), { pixelRatio: J } = useDevicePixelRatio(), { pause: Ee, resume: Le } = we(), I = computed(() => K.value / X.value); - !resolveUnref(T) && ((te = (ee = x.container) == null ? void 0 : ee.value) == null ? void 0 : te.offsetHeight) === 0 && Ce(`Oops... Seems like your canvas height is currently 0px, by default it takes the height of it's parent, so make sure it has some height with CSS. + context: x = void 0, + powerPreference: b = "default", + preserveDrawingBuffer: y = false, + clearColor: M, + windowSize: E = false, + preset: L = void 0 + } = toRefs(e), { state: h2, setState: T } = D(), { width: C, height: O } = resolveUnref(E) == true || resolveUnref(E) === "" || resolveUnref(E) === "true" ? useWindowSize() : useElementSize(h2.container), { logError: B, logWarning: Pe } = I(), { pixelRatio: J } = useDevicePixelRatio(), { pause: Re, resume: Le } = Me(), U = computed(() => C.value / O.value); + !resolveUnref(E) && ((ee = (Z = h2.container) == null ? void 0 : Z.value) == null ? void 0 : ee.offsetHeight) === 0 && Pe(`Oops... Seems like your canvas height is currently 0px, by default it takes the height of it's parent, so make sure it has some height with CSS. You could set windowSize=true to force the canvas to be the size of the window.`); - const Q = () => { - t.value && (t.value.setSize(K.value, X.value), t.value.setPixelRatio(Math.min(J.value, 2))); - }, Z = () => { + const X = () => { + t.value && (t.value.setSize(C.value, O.value), t.value.setPixelRatio(Math.min(J.value, 2))); + }, Q = () => { if (!t.value) return; - const E = resolveUnref(j); - if (E) { - E in G || Me("Renderer Preset must be one of these: " + Object.keys(G).join(", ")), be(t.value, G[E]); + const A = resolveUnref(L); + if (A) { + A in $ || B("Renderer Preset must be one of these: " + Object.keys($).join(", ")), xe(t.value, $[A]); return; } - t.value.shadowMap.enabled = resolveUnref(d), t.value.shadowMap.type = resolveUnref(f), t.value.toneMapping = resolveUnref(g) || NoToneMapping, t.value.toneMappingExposure = resolveUnref(p), t.value.outputEncoding = resolveUnref(C) || LinearEncoding, w != null && w.value && t.value.setClearColor(tt(resolveUnref(w))), t.value.useLegacyLights = resolveUnref(h2); - }, Se = () => { - const E = unrefElement(x.canvas); - E && (t.value = new WebGLRenderer({ - canvas: E, + t.value.shadowMap.enabled = resolveUnref(m), t.value.shadowMap.type = resolveUnref(d), t.value.toneMapping = resolveUnref(w) || NoToneMapping, t.value.toneMappingExposure = resolveUnref(p), t.value.outputEncoding = resolveUnref(R) || LinearEncoding, M != null && M.value && t.value.setClearColor(nt(resolveUnref(M))), t.value.useLegacyLights = resolveUnref(g); + }, Te = () => { + const A = unrefElement(h2.canvas); + A && (t.value = new WebGLRenderer({ + canvas: A, alpha: resolveUnref(a), antialias: resolveUnref(n), - context: resolveUnref(b), - depth: resolveUnref(i), - failIfMajorPerformanceCaveat: resolveUnref(o), + context: resolveUnref(x), + depth: resolveUnref(r), + failIfMajorPerformanceCaveat: resolveUnref(i), logarithmicDepthBuffer: resolveUnref(s), - powerPreference: resolveUnref(y), + powerPreference: resolveUnref(b), precision: resolveUnref(c), - stencil: resolveUnref(v), - preserveDrawingBuffer: resolveUnref(O), - premultipliedAlpha: resolveUnref(l) - }), F("renderer", t.value), F("clock", new Clock()), F("aspectRatio", I), Z(), Q(), Le(), r.value = true); - }, Te = () => { - t.value && (t.value.dispose(), t.value = void 0, r.value = false, Ee()); + stencil: resolveUnref(f), + preserveDrawingBuffer: resolveUnref(y), + premultipliedAlpha: resolveUnref(u) + }), T("renderer", t.value), T("clock", new Clock()), T("aspectRatio", U), Q(), X(), Le(), o.value = true); + }, Ae = () => { + t.value && (t.value.dispose(), t.value = void 0, o.value = false, Re()); }; - return watch([I, J], Q), watch( - [d, f, C, h2, g, p, w], - Z + return watch([U, J], X), watch( + [m, d, R, g, w, p, M], + Q ), watch( - () => [x.canvas, x.container], + () => [h2.canvas, h2.container], () => { - unrefElement(x.canvas) && unrefElement(x.container) && Se(); + unrefElement(h2.canvas) && unrefElement(h2.container) && Te(); }, { immediate: true, deep: true } ), { renderer: t, - isReady: r, - dispose: Te, - aspectRatio: I + isReady: o, + dispose: Ae, + aspectRatio: U }; } -var ye = (e) => !!e && e.constructor === Array; -function it(e) { +var Ee = (e) => !!e && e.constructor === Array; +function ct(e) { const t = { nodes: {}, materials: {} }; - return e && e.traverse((r) => { - r.name && (t.nodes[r.name] = r), r.material && !t.materials[r.material.name] && (t.materials[r.material.name] = r.material); + return e && e.traverse((o) => { + o.name && (t.nodes[o.name] = o), o.material && !t.materials[o.material.name] && (t.materials[o.material.name] = o.material); }), t; } -async function Mt(e, t, r, a, n) { - const { logError: i } = A(), s = new e(); - n && n(s), r && r(s); +async function Et(e, t, o, a, n) { + const { logError: r } = I(), s = new e(); + n && n(s), o && o(s); const c = (Array.isArray(t) ? t : [t]).map( - (l) => new Promise((v, d) => { + (u) => new Promise((f, m) => { s.load( - l, - (f) => { - f.scene && Object.assign(f, it(f.scene)), v(f); + u, + (d) => { + d.scene && Object.assign(d, ct(d.scene)), f(d); }, a, - (f) => d(i("[useLoader] - Failed to load resource", f)) + (d) => m(r("[useLoader] - Failed to load resource", d)) ); }) ); - return ye(t) ? await Promise.all(c) : await c[0]; + return Ee(t) ? await Promise.all(c) : await c[0]; } async function Ct(e) { - const t = new LoadingManager(), r = new TextureLoader(t), a = (n) => new Promise((i, s) => { - r.load( + const t = new LoadingManager(), o = new TextureLoader(t), a = (n) => new Promise((r, s) => { + o.load( n, - (o) => i(o), + (i) => r(i), () => null, () => { s(new Error("[useTextures] - Failed to load texture")); } ); }); - if (ye(e)) { - const n = await Promise.all(e.map((i) => a(i))); + if (Ee(e)) { + const n = await Promise.all(e.map((r) => a(r))); return e.length > 1 ? n : n[0]; } else { const { map: n, - displacementMap: i, + displacementMap: r, normalMap: s, - roughnessMap: o, + roughnessMap: i, metalnessMap: c, - aoMap: l, - alphaMap: v, - matcap: d + aoMap: u, + alphaMap: f, + matcap: m } = e; return { map: n ? await a(n) : null, - displacementMap: i ? await a(i) : null, + displacementMap: r ? await a(r) : null, normalMap: s ? await a(s) : null, - roughnessMap: o ? await a(o) : null, + roughnessMap: i ? await a(i) : null, metalnessMap: c ? await a(c) : null, - aoMap: l ? await a(l) : null, - alphaMap: v ? await a(v) : null, - matcap: d ? await a(d) : null + aoMap: u ? await a(u) : null, + alphaMap: f ? await a(f) : null, + matcap: m ? await a(m) : null }; } } -var m = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff"]; -function st() { - const e = Math.random() * 4294967295 | 0, t = Math.random() * 4294967295 | 0, r = Math.random() * 4294967295 | 0, a = Math.random() * 4294967295 | 0; - return (m[e & 255] + m[e >> 8 & 255] + m[e >> 16 & 255] + m[e >> 24 & 255] + "-" + m[t & 255] + m[t >> 8 & 255] + "-" + m[t >> 16 & 15 | 64] + m[t >> 24 & 255] + "-" + m[r & 63 | 128] + m[r >> 8 & 255] + "-" + m[r >> 16 & 255] + m[r >> 24 & 255] + m[a & 255] + m[a >> 8 & 255] + m[a >> 16 & 255] + m[a >> 24 & 255]).toLowerCase(); +var v = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff"]; +function ut() { + const e = Math.random() * 4294967295 | 0, t = Math.random() * 4294967295 | 0, o = Math.random() * 4294967295 | 0, a = Math.random() * 4294967295 | 0; + return (v[e & 255] + v[e >> 8 & 255] + v[e >> 16 & 255] + v[e >> 24 & 255] + "-" + v[t & 255] + v[t >> 8 & 255] + "-" + v[t >> 16 & 15 | 64] + v[t >> 24 & 255] + "-" + v[o & 63 | 128] + v[o >> 8 & 255] + "-" + v[o >> 16 & 255] + v[o >> 24 & 255] + v[a & 255] + v[a >> 8 & 255] + v[a >> 16 & 255] + v[a >> 24 & 255]).toLowerCase(); } -var xe = Symbol(); -function ct() { +var Ce = Symbol(); +function ft() { const e = shallowReactive({ - uuid: st(), + uuid: ut(), camera: void 0, cameras: [], scene: void 0, @@ -648,18 +648,18 @@ function ct() { function t(n) { return e[n]; } - function r(n, i) { - e[n] = i; + function o(n, r) { + e[n] = r; } const a = { state: e, ...toRefs(e), getState: t, - setState: r + setState: o }; - return provide(xe, a), a; + return provide(Ce, a), a; } -var k = () => inject(xe, { +var D = () => inject(Ce, { state: shallowReactive({ camera: void 0, cameras: [], @@ -667,109 +667,128 @@ var k = () => inject(xe, { renderer: void 0 }) }); -function ut() { +function lt() { var s; - const e = shallowRef(new Raycaster()), t = ref(new Vector2()), r = ref(null), { setState: a, state: n } = k(); - a("raycaster", e.value), a("pointer", t), a("currentInstance", r); - function i(o) { - t.value.x = o.clientX / window.innerWidth * 2 - 1, t.value.y = -(o.clientY / window.innerHeight) * 2 + 1; + const e = shallowRef(new Raycaster()), t = ref(new Vector2()), o = ref(null), { setState: a, state: n } = D(); + a("raycaster", e.value), a("pointer", t), a("currentInstance", o); + function r(i) { + t.value.x = i.clientX / window.innerWidth * 2 - 1, t.value.y = -(i.clientY / window.innerHeight) * 2 + 1; } - return (s = n == null ? void 0 : n.renderer) == null || s.domElement.addEventListener("pointermove", i), onUnmounted(() => { - var o; - (o = n == null ? void 0 : n.renderer) == null || o.domElement.removeEventListener("pointermove", i); + return (s = n == null ? void 0 : n.renderer) == null || s.domElement.addEventListener("pointermove", r), onUnmounted(() => { + var i; + (i = n == null ? void 0 : n.renderer) == null || i.domElement.removeEventListener("pointermove", r); }), { raycaster: e, pointer: t }; } -var Et = true; -var oe = "[TresJS ▲ ■ ●] "; -function A() { +var Pt = true; +var re = "[TresJS ▲ ■ ●] "; +function I() { function e(a, n) { - console.error(`${oe} ${a}`, n || ""); + console.error(`${re} ${a}`, n || ""); } function t(a) { - console.warn(`${oe} ${a}`); + console.warn(`${re} ${a}`); } - function r(a, n) { + function o(a, n) { } return { logError: e, logWarning: t, - logMessage: r + logMessage: o }; } -function Lt() { - const { logWarning: e } = A(); - function t(a, n, i) { +function Rt() { + const { logWarning: e } = I(); + function t(a, n, r) { let s = null; - return a.traverse((o) => { - o[n] === i && (s = o); - }), s || e(`Child with ${n} '${i}' not found.`), s; + return a.traverse((i) => { + i[n] === r && (s = i); + }), s || e(`Child with ${n} '${r}' not found.`), s; } - function r(a, n) { + function o(a, n) { return t(a, "name", n); } return { seek: t, - seekByName: r + seekByName: o }; } -var { logWarning: lt } = A(); -var ft = /^on[^a-z]/; -var dt = (e) => ft.test(e); -var z = null; -var pt = { - createElement(e, t, r, a) { - if (e === "template" || at(e)) +var dt = /^on[^a-z]/; +var pt = (e) => dt.test(e); +var oe = null; +var ie = { + GEOMETRY_VIA_PROP: "tres__geometryViaProp", + MATERIAL_VIA_PROP: "tres__materialViaProp" +}; +var { logError: se } = I(); +var mt = { + createElement(e, t, o, a) { + var c, u; + if (a || (a = {}), a.args || (a.args = []), e === "template" || ot(e)) return null; - let n; - if (a === null && (a = {}), a != null && a.args ? n = new N.value[e.replace("Tres", "")](...a.args) : n = new N.value[e.replace("Tres", "")](), n.isCamera) { - (!(a != null && a.position) || a != null && a.position.every((s) => s == 0)) && lt( - // eslint-disable-next-line max-len - "Camera is positioned at the center of the scene [0,0,0], if this is not intentional try setting a position if your scene seems empty 🤗" - ); - const { pushCamera: i } = q(); - i(n); + let n = e.replace("Tres", ""), r; + if (e === "primitive") { + (a == null ? void 0 : a.object) === void 0 && se("Tres primitives need a prop 'object'"); + const f = a.object; + n = f.type, r = Object.assign(f, { type: n, attach: a.attach, primitive: true }); + } else { + const f = he.value[n]; + f || se(`${n} is not defined on the THREE namespace. Use extend to add it to the catalog.`), r = Object.assign(new f(...a.args), { type: n, attach: a.attach }); + } + if (r.isCamera) { + a != null && a.position || r.position.set(3, 3, 3), a != null && a.lookAt || r.lookAt(0, 0, 0); + const { pushCamera: f } = N(); + f(r); } - return (a == null ? void 0 : a.attach) === void 0 && (n.isMaterial ? n.attach = "material" : n.isBufferGeometry && (n.attach = "geometry")), n.events = {}, n; + (a == null ? void 0 : a.attach) === void 0 && (r.isMaterial ? r.attach = "material" : r.isBufferGeometry && (r.attach = "geometry")); + const { GEOMETRY_VIA_PROP: s, MATERIAL_VIA_PROP: i } = ie; + return r.isObject3D && ((c = a == null ? void 0 : a.material) != null && c.isMaterial && (r.userData[i] = true), (u = a == null ? void 0 : a.geometry) != null && u.isBufferGeometry && (r.userData[s] = true)), r.events = {}, r; }, - insert(e, t, r) { - if (z === null && t.isScene && (z = t), t === null && (t = z), t != null && t.isObject3D && (e != null && e.isObject3D)) { - const a = r ? t.children.indexOf(r) : 0; - e.parent = t, t.children.splice(a, 0, e), e.dispatchEvent({ type: "added" }); - } else - typeof (e == null ? void 0 : e.attach) == "string" && (e.__previousAttach = e[t == null ? void 0 : t.attach], t && (t[e.attach] = e)); + insert(e, t) { + var o, a; + if (((e == null ? void 0 : e.__vnode.type) === "TresGroup" || (e == null ? void 0 : e.__vnode.type) === "TresObject3D") && t === null && !((a = (o = e == null ? void 0 : e.__vnode) == null ? void 0 : o.ctx) != null && a.asyncResolved)) { + oe = e; + return; + } + t || (t = oe), e != null && e.isObject3D && (t != null && t.isObject3D) ? (t.add(e), e.dispatchEvent({ type: "added" })) : typeof (e == null ? void 0 : e.attach) == "string" && (e.__previousAttach = e[t == null ? void 0 : t.attach], t && (t[e.attach] = e)); }, remove(e) { - if (!e) - return; - const t = e.parentNode; - t && t.removeChild(e); + var t, o; + if (e) { + if (e.isObject3D) { + const a = e, n = (r) => { + var c, u; + const { GEOMETRY_VIA_PROP: s, MATERIAL_VIA_PROP: i } = ie; + r.userData[i] || (c = r.material) == null || c.dispose(), r.userData[s] || (u = r.geometry) == null || u.dispose(); + }; + a.traverse((r) => n(r)), n(a); + } + (t = e.removeFromParent) == null || t.call(e), (o = e.dispose) == null || o.call(e); + } }, - patchProp(e, t, r, a) { + patchProp(e, t, o, a) { if (e) { - let n = e, i = t; - const s = _(i); - let o = n == null ? void 0 : n[s]; - if (e.parent || (e.parent = z), n.type === "BufferGeometry") { + let n = e, r = t, s = z(r), i = n == null ? void 0 : n[s]; + if (n.type === "BufferGeometry") { n.setAttribute( - _(i), + z(r), new BufferAttribute(...a) ); return; } - if (i.includes("-") && o === void 0) { - const l = i.split("-"); - o = l.reduce((v, d) => v[_(d)], n), i = l.pop(), o != null && o.set || (n = l.reduce((v, d) => v[_(d)], n)); + if (r.includes("-") && i === void 0) { + const u = r.split("-"); + i = u.reduce((f, m) => f[z(m)], n), r = u.pop(), s = r.toLowerCase(), i != null && i.set || (n = u.reduce((f, m) => f[z(m)], n)); } - dt(i) && (e.events[i] = a); + pt(r) && (e.events[r] = a); let c = a; - if (c === "" && (c = true), isFunction(o)) { + if (c === "" && (c = true), isFunction(i)) { Array.isArray(c) ? e[s](...c) : e[s](c); return; } - !(o != null && o.set) && !isFunction(o) ? n[s] = c : o.constructor === c.constructor && (o != null && o.copy) ? o == null || o.copy(c) : Array.isArray(c) ? o.set(...c) : !o.isColor && o.setScalar ? o.setScalar(c) : o.set(c); + !(i != null && i.set) && !isFunction(i) ? n[s] = c : i.constructor === c.constructor && (i != null && i.copy) ? i == null || i.copy(c) : Array.isArray(c) ? i.set(...c) : !i.isColor && i.setScalar ? i.setScalar(c) : i.set(c); } }, parentNode(e) { @@ -785,17 +804,17 @@ var pt = { cloneNode: () => void 0, insertStaticContent: () => void 0 }; -var { createApp: mt } = createRenderer(pt); -var vt = (e) => { - const t = mt(r); - function r() { +var { createApp: vt } = createRenderer(mt); +var gt = (e) => { + const t = vt(o); + function o() { return e && e.default ? e.default() : []; } return t; }; -ve(three_module_exports); -var { logWarning: ht } = A(); -var gt = defineComponent({ +we(three_module_exports); +var { logWarning: ht } = I(); +var wt = defineComponent({ name: "TresScene", props: [ "shadows", @@ -812,45 +831,45 @@ var gt = defineComponent({ "windowSize", "preset" ], - setup(e, { slots: t, expose: r }) { + setup(e, { slots: t, expose: o }) { e.physicallyCorrectLights === true && ht("physicallyCorrectLights is deprecated, useLegacyLights is now false by default"); - const a = ref(), n = ref(), i = new Scene(), { setState: s } = k(); - s("scene", i), s("canvas", n), s("container", a); - const { pushCamera: o } = q(); - o(new PerspectiveCamera()), onMounted(() => { + const a = ref(), n = ref(), r = new Scene(), { setState: s } = D(); + s("scene", r), s("canvas", n), s("container", a); + const { pushCamera: i } = N(); + i(new PerspectiveCamera()), onMounted(() => { c(); }), onUnmounted(() => { s("renderer", null); }); function c() { - const { renderer: d } = ot(e), { activeCamera: f } = q(), { onLoop: M } = we(), { raycaster: h2, pointer: C } = ut(); - let g = null, p = null; + const { renderer: m } = st(e), { activeCamera: d } = N(), { onLoop: P } = Me(), { raycaster: g, pointer: R } = lt(); + let w = null, p = null; watchEffect(() => { - f.value && h2.value.setFromCamera(C.value, f.value); - }), M(() => { - var b, y, O, w, T; - if (f.value && ((b = d.value) == null || b.render(i, f.value)), h2.value) { - const j = h2.value.intersectObjects(i.children); - j.length > 0 ? (p = j[0], g === null && ((O = (y = p.object.events).onPointerEnter) == null || O.call(y, p))) : g !== null && ((T = p == null ? void 0 : (w = p.object.events).onPointerLeave) == null || T.call(w, g), p = null), g = p; + d.value && g.value.setFromCamera(R.value, d.value); + }), P(() => { + var x, b, y, M, E, L, h2, T, C, O; + if (d.value && ((x = m.value) == null || x.render(r, d.value)), g.value) { + const B = g.value.intersectObjects(r.children); + B.length > 0 ? (p = B[0], w === null && ((M = (y = (b = p.object) == null ? void 0 : b.events) == null ? void 0 : y.onPointerEnter) == null || M.call(y, p)), (h2 = (L = (E = p.object) == null ? void 0 : E.events) == null ? void 0 : L.onPointerMove) == null || h2.call(L, p)) : w !== null && ((O = (C = (T = p == null ? void 0 : p.object) == null ? void 0 : T.events) == null ? void 0 : C.onPointerLeave) == null || O.call(C, w), p = null), w = p; } }), useEventListener(n.value, "click", () => { - var b, y; - p !== null && ((y = (b = p.object.events).onClick) == null || y.call(b, p)); + var x, b, y; + p !== null && ((y = (b = (x = p.object) == null ? void 0 : x.events) == null ? void 0 : b.onClick) == null || y.call(b, p)); }); } - let l; - function v() { - l = vt(t), l.provide("useTres", k()), l.provide("extend", ve), l.mount(i); + let u; + function f() { + u = gt(t), u.provide("useTres", D()), u.provide("extend", we), u.mount(r); } - return v(), r({ - scene: i + return f(), o({ + scene: r }), () => h( h( "div", { ref: a, - "data-scene": i.uuid, - key: i.uuid, + "data-scene": r.uuid, + key: r.uuid, style: { position: "relative", width: "100%", @@ -871,7 +890,7 @@ var gt = defineComponent({ [ h("canvas", { ref: n, - "data-scene": i.uuid, + "data-scene": r.uuid, style: { display: "block", width: "100%", @@ -888,7 +907,7 @@ var gt = defineComponent({ ); } }); -var wt = defineComponent({ +var bt = defineComponent({ name: "TresCanvas", props: [ "shadows", @@ -905,34 +924,34 @@ var wt = defineComponent({ "windowSize", "preset" ], - setup(e, { slots: t, expose: r }) { - const a = ct(); - return r(a), () => h(gt, e, t); + setup(e, { slots: t, expose: o }) { + const a = ft(); + return o(a), () => h(wt, e, t); } }); -var St = { +var Lt = { install(e) { - e.component("TresCanvas", wt); + e.component("TresCanvas", bt); } }; export { - N, - ve, - Xe, - q, + he, we, - ot, - it, - Mt, - Ct, + Qe, + N, + Me, + st, ct, - k, - ut, Et, - A, - Lt, - wt, - St + Ct, + ft, + D, + lt, + Pt, + I, + Rt, + bt, + Lt }; -//# sourceMappingURL=chunk-ZAYNNKM4.js.map +//# sourceMappingURL=chunk-DESKY23Y.js.map diff --git a/docs/.vitepress/cache/deps/chunk-ZAYNNKM4.js.map b/docs/.vitepress/cache/deps/chunk-DESKY23Y.js.map similarity index 87% rename from docs/.vitepress/cache/deps/chunk-ZAYNNKM4.js.map rename to docs/.vitepress/cache/deps/chunk-DESKY23Y.js.map index 43bddc600..f8474001a 100644 --- a/docs/.vitepress/cache/deps/chunk-ZAYNNKM4.js.map +++ b/docs/.vitepress/cache/deps/chunk-DESKY23Y.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../../../node_modules/.pnpm/@vueuse+shared@9.13.0/node_modules/@vueuse/shared/index.mjs", "../../../../node_modules/.pnpm/@vueuse+core@9.13.0/node_modules/@vueuse/core/index.mjs", "../../../../node_modules/.pnpm/@tresjs+core@2.0.0-beta.2_three@0.150.1/node_modules/@tresjs/core/dist/tres.js"], - "sourcesContent": ["import { shallowRef, watchEffect, readonly, unref, ref, isVue3, version, watch, customRef, getCurrentScope, onScopeDispose, effectScope, provide, inject, isRef, computed, reactive, toRefs as toRefs$1, toRef, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, __spreadProps$6(__spreadValues$9({}, options), {\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n }));\n return readonly(result);\n}\n\nvar _a;\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isBoolean = (val) => typeof val === \"boolean\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isNumber = (val) => typeof val === \"number\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst isWindow = (val) => typeof window !== \"undefined\" && toString.call(val) === \"[object Window]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\n\nfunction resolveUnref(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = resolveUnref(ms);\n const maxDuration = resolveUnref(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = resolveUnref(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction __onlyVue3(name = \"this function\") {\n if (isVue3)\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 3.`);\n}\nfunction __onlyVue27Plus(name = \"this function\") {\n if (isVue3 || version.startsWith(\"2.7.\"))\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 2.7 or above.`);\n}\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = isFunction(fn) ? fn : fn.get;\n const set = isFunction(fn) ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = [];\n const off = (fn) => {\n const index = fns.indexOf(fn);\n if (index !== -1)\n fns.splice(index, 1);\n };\n const on = (fn) => {\n fns.push(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n fns.forEach((fn) => fn(param));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return () => {\n if (!initialized) {\n state = scope.run(stateFactory);\n initialized = true;\n }\n return state;\n };\n}\n\nfunction createInjectionState(composable) {\n const key = Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provide(key, state);\n return state;\n };\n const useInjectedState = () => inject(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n __onlyVue27Plus();\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = __spreadValues$8({}, obj);\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : resolveUnref;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n }));\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactiveComputed(() => Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactive(Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = defaultValue;\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = defaultValue;\n trigger();\n }, resolveUnref(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(ref, {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n }, { enumerable: true });\n}\nconst controlledRef = refWithControl;\n\nfunction resolveRef(r) {\n return typeof r === \"function\" ? computed(r) : ref(r);\n}\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n let watchLeft;\n let watchRight;\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchLeft = watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchRight = watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });\n }\n return () => {\n watchLeft == null ? void 0 : watchLeft();\n watchRight == null ? void 0 : watchRight();\n };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction toRefs(objectRef) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });\n Object.setPrototypeOf(newObject, objectRef.value);\n objectRef.value = newObject;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (getCurrentInstance())\n onBeforeMount(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (getCurrentInstance())\n onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance())\n onMounted(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (getCurrentInstance())\n onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(r, (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch([r, value], ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {\n stop == null ? void 0 : stop();\n return resolveUnref(r);\n }));\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(resolveUnref(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(resolveUnref(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => resolveUnref(!Array.prototype.findLast ? findLast(resolveUnref(list), (element, index, array) => fn(resolveUnref(element), index, array)) : resolveUnref(list).findLast((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);\n return computed(() => {\n const resolved = resolveUnref(list);\n return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayUnique(list) {\n return computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n const count = ref(initialValue);\n const {\n max = Infinity,\n min = -Infinity\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = initialValue) => {\n initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nconst defaultMeridiem = (hours, minutes, isLowercase, hasPeriod) => {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n};\nconst formatDate = (date, formatStr, options = {}) => {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());\n};\nconst normalizeDate = (date) => {\n if (date === null)\n return new Date(NaN);\n if (date === void 0)\n return new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n};\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(resolveUnref(date)), resolveUnref(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = resolveUnref(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || isFunction(interval)) {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(callback ? () => {\n update();\n callback(counter.value);\n } : update, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$6({\n counter,\n reset\n }, controls);\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(source, () => ms.value = timestamp(), options);\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, resolveUnref(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(callback != null ? callback : noop, interval, options);\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return __spreadValues$5({\n ready\n }, controls);\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = resolveUnref(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${resolveUnref(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = resolveUnref(truthyValue);\n _value.value = _value.value === truthy ? resolveUnref(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n ...source instanceof Function ? source() : Array.isArray(source) ? source : unref(source)\n ];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = new Array(oldList.length);\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$5(_a, [\n \"eventFilter\"\n ]);\n return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchAtMost(source, cb, options) {\n const _a = options, {\n count\n } = _a, watchOptions = __objRest$4(_a, [\n \"count\"\n ]);\n const current = ref(0);\n const stop = watchWithFilter(source, (...args) => {\n current.value += 1;\n if (current.value >= resolveUnref(count))\n nextTick(() => stop());\n cb(...args);\n }, watchOptions);\n return { count: current, stop };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n const _a = options, {\n debounce = 0,\n maxWait = void 0\n } = _a, watchOptions = __objRest$3(_a, [\n \"debounce\",\n \"maxWait\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {\n eventFilter: debounceFilter(debounce, { maxWait })\n }));\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$2(_a, [\n \"eventFilter\"\n ]);\n const filteredCb = createFilterWrapper(eventFilter, cb);\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(source, (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n }, watchOptions);\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(watch(source, () => {\n syncCounter.value++;\n }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: \"sync\" })));\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(watch(source, (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n }, watchOptions));\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n const _a = options, {\n eventFilter: filter\n } = _a, watchOptions = __objRest$1(_a, [\n \"eventFilter\"\n ]);\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {\n eventFilter\n }));\n return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n const _a = options, {\n throttle = 0,\n trailing = true,\n leading = true\n } = _a, watchOptions = __objRest(_a, [\n \"throttle\",\n \"trailing\",\n \"leading\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {\n eventFilter: throttleFilter(throttle, trailing, leading)\n }));\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return __spreadProps(__spreadValues({}, res), {\n trigger\n });\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => getOneWatchSource(item));\n return getOneWatchSource(sources);\n}\nfunction getOneWatchSource(source) {\n return typeof source === \"function\" ? source() : unref(source);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(source, (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n }, options);\n}\n\nexport { __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n", "import { noop, resolveUnref, isClient, isString, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, promiseTimeout, isFunction, resolveRef, increaseWithUnit, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, containsProp, until, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, isObject, isNumber, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, identity, isDef } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, unref, watch, getCurrentInstance, customRef, onUpdated, reactive, nextTick, onMounted, markRaw, readonly, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = false,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nconst createUnrefFn = (fn) => {\n return function(...args) {\n return fn.apply(this, args.map((i) => unref(i)));\n };\n};\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = resolveUnref(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (isString(args[0]) || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(() => [unrefElement(target), resolveUnref(options)], ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n cleanups.push(...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, options2));\n }));\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nvar __defProp$n = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$p = Object.getOwnPropertySymbols;\nvar __hasOwnProp$p = Object.prototype.hasOwnProperty;\nvar __propIsEnum$p = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$n = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n if (__getOwnPropSymbols$p)\n for (var prop of __getOwnPropSymbols$p(b)) {\n if (__propIsEnum$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst createKeyPredicate = (keyFilter) => {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n};\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const { target = defaultWindow, eventName = \"keydown\", passive = false } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(() => handler(ev), (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY);\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nconst isFocusedElementEditable = () => {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n};\nconst isTypedCharValid = ({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) => {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n return false;\n};\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const { window = defaultWindow } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const activeElement = computedWithControl(() => null, () => document == null ? void 0 : document.activeElement);\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop\n } = options;\n const promiseState = {\n pending: \"pending\",\n rejected: \"rejected\",\n fulfilled: \"fulfilled\"\n };\n const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n return curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n }).catch((e) => {\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = ref(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw error;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n return {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = resolveUnref(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || isFunction(target))\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useSupported(callback, sync = false) {\n const isSupported = ref();\n const update = () => isSupported.value = Boolean(callback());\n update();\n tryOnMounted(update, sync);\n return isSupported;\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n for (const event of events)\n useEventListener(battery, event, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n device,\n requestDevice,\n server,\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", update);\n else\n mediaQuery.removeListener(update);\n };\n const update = () => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(resolveRef(query).value);\n matches.value = mediaQuery.matches;\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", update);\n else\n mediaQuery.addListener(update);\n };\n watchEffect(update);\n tryOnScopeDispose(() => cleanup());\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n if (__getOwnPropSymbols$o)\n for (var prop of __getOwnPropSymbols$o(b)) {\n if (__propIsEnum$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n }\n return a;\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return __spreadValues$m({\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n }\n }, shortcutMethods);\n}\n\nconst useBroadcastChannel = (options) => {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = ref(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n};\n\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n const buildState = (trigger) => {\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (window == null ? void 0 : window.location) || {};\n return {\n trigger,\n state: state2,\n length,\n hash,\n host,\n hostname,\n href,\n origin,\n pathname,\n port,\n protocol,\n search\n };\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const events = [\"copy\", \"cut\"];\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read) {\n for (const event of events)\n useEventListener(event, updateText);\n }\n async function copy(value = resolveUnref(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nvar __defProp$l = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n if (__getOwnPropSymbols$n)\n for (var prop of __getOwnPropSymbols$n(b)) {\n if (__propIsEnum$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(unref(source));\n }\n if (!manual && isRef(source)) {\n watch(source, sync, __spreadProps$8(__spreadValues$l({}, options), {\n deep,\n immediate\n }));\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\n_global[globalKey] = _global[globalKey] || {};\nconst handlers = _global[globalKey];\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$m)\n for (var prop of __getOwnPropSymbols$m(b)) {\n if (__propIsEnum$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? shallowRef : ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = resolveUnref(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return __spreadValues$k(__spreadValues$k({}, rawInit), value);\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$l)\n for (var prop of __getOwnPropSymbols$l(b)) {\n if (__propIsEnum$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto\n } = options;\n const modes = __spreadValues$j({\n auto: \"\",\n light: \"light\",\n dark: \"dark\"\n }, options.modes || {});\n const preferredDark = usePreferredDark({ window });\n const preferredMode = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed({\n get() {\n return store.value === \"auto\" && !emitAuto ? preferredMode.value : store.value;\n },\n set(v) {\n store.value = v;\n }\n });\n const updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector2, attribute2, value) => {\n const el = window == null ? void 0 : window.document.querySelector(selector2);\n if (!el)\n return;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n });\n function defaultOnChanged(mode) {\n var _a;\n const resolvedMode = mode === \"auto\" ? preferredMode.value : mode;\n updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n if (emitAuto)\n watch(preferredMode, () => onChanged(state.value), { flush: \"post\" });\n tryOnMounted(() => onChanged(state.value));\n return state;\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, { window = defaultWindow, initialValue = \"\" } = {}) {\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {\n var _a;\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }, { immediate: true });\n watch(variable, (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(resolveUnref(prop), val);\n });\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(() => null, () => vm.proxy.$el);\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n var _a;\n const state = shallowRef((_a = options == null ? void 0 : options.initialValue) != null ? _a : list[0]);\n const index = computed({\n get() {\n var _a2;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, list) : list.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a2 = options == null ? void 0 : options.fallbackIndex) != null ? _a2 : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const length = list.length;\n const index2 = (i % length + length) % length;\n const value = list[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode(__spreadProps$7(__spreadValues$i({}, options), {\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\");\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n }));\n const preferredDark = usePreferredDark({ window });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n if (v === preferredDark.value)\n mode.value = \"auto\";\n else\n mode.value = v ? \"dark\" : \"light\";\n }\n });\n return isDark;\n}\n\nconst fnBypass = (v) => v;\nconst fnSetSource = (source, value) => source.value = value;\nfunction defaultDump(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Infinity);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(source, commit, { deep, flush, eventFilter: composedFilter });\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, __spreadProps$6(__spreadValues$h({}, options), { clone: options.clone || deep, setSource }));\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return __spreadProps$6(__spreadValues$h({}, manualHistory), {\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n });\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, __spreadProps$5(__spreadValues$g({}, options), { eventFilter: filter }));\n return __spreadValues$g({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n });\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio({\n window = defaultWindow\n} = {}) {\n const pixelRatio = ref(1);\n if (window) {\n let observe = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe, { once: true });\n }, cleanup = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe);\n };\n let media;\n observe();\n tryOnScopeDispose(cleanup);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n const stream = await navigator.mediaDevices.getUserMedia(constraints);\n stream.getTracks().forEach((t) => t.stop());\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(b)) {\n if (__propIsEnum$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction useDraggable(target, options = {}) {\n var _a, _b, _c;\n const draggingElement = (_a = options.draggingElement) != null ? _a : defaultWindow;\n const draggingHandle = (_b = options.handle) != null ? _b : target;\n const position = ref((_c = resolveUnref(options.initialValue)) != null ? _c : { x: 0, y: 0 });\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (options.pointerTypes)\n return options.pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (resolveUnref(options.preventDefault))\n e.preventDefault();\n if (resolveUnref(options.stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (resolveUnref(options.exact) && e.target !== resolveUnref(target))\n return;\n const rect = resolveUnref(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if (((_a2 = options.onStart) == null ? void 0 : _a2.call(options, pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n position.value = {\n x: e.clientX - pressedDelta.value.x,\n y: e.clientY - pressedDelta.value.y\n };\n (_a2 = options.onMove) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n (_a2 = options.onEnd) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n useEventListener(draggingHandle, \"pointerdown\", start, true);\n useEventListener(draggingElement, \"pointermove\", move, true);\n useEventListener(draggingElement, \"pointerup\", end, true);\n }\n return __spreadProps$4(__spreadValues$f({}, toRefs(position)), {\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n });\n}\n\nfunction useDropZone(target, onDrop) {\n const isOverDropZone = ref(false);\n let counter = 0;\n if (isClient) {\n useEventListener(target, \"dragenter\", (event) => {\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n });\n useEventListener(target, \"dragover\", (event) => {\n event.preventDefault();\n });\n useEventListener(target, \"dragleave\", (event) => {\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n });\n useEventListener(target, \"drop\", (event) => {\n var _a, _b;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n });\n }\n return {\n isOverDropZone\n };\n}\n\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new ResizeObserver(callback);\n observer.observe(el, observerOptions);\n }\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - previousFrameTimestamp;\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nfunction useElementByPoint(options) {\n const element = ref(null);\n const { x, y, document = defaultDocument } = options;\n const controls = useRafFn(() => {\n element.value = (document == null ? void 0 : document.elementFromPoint(resolveUnref(x), resolveUnref(y))) || null;\n });\n return __spreadValues$e({\n element\n }, controls);\n}\n\nfunction useElementHover(el, options = {}) {\n const delayEnter = options ? options.delayEnter : 0;\n const delayLeave = options ? options.delayLeave : 0;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n useResizeObserver(target, ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = parseFloat(styles.width);\n height.value = parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n }, options);\n watch(() => unrefElement(target), (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n });\n return {\n width,\n height\n };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n const elementIsVisible = ref(false);\n const testBounding = () => {\n if (!window)\n return;\n const document = window.document;\n const el = unrefElement(element);\n if (!el) {\n elementIsVisible.value = false;\n } else {\n const rect = el.getBoundingClientRect();\n elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;\n }\n };\n watch(() => unrefElement(element), () => testBounding(), { immediate: true, flush: \"post\" });\n if (window) {\n useEventListener(scrollTarget || window, \"scroll\", testBounding, {\n capture: false,\n passive: true\n });\n }\n return elementIsVisible;\n}\n\nconst events = new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || [];\n listeners.push(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n const index = listeners.indexOf(listener);\n if (index > -1)\n listeners.splice(index, 1);\n if (!listeners.length)\n events.delete(key);\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = ref(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = resolveRef(newIcon);\n const applyIcon = (icon) => {\n document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(favicon, (i, o) => {\n if (isString(i) && i !== o)\n applyIcon(i);\n }, { immediate: true });\n return favicon;\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback !== void 0)\n await callback(ctx);\n return ctx;\n };\n } else {\n return async (ctx) => {\n await callbacks.reduce((prevCallback, callback) => prevCallback.then(async () => {\n if (callback)\n ctx = __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));\n }), Promise.resolve());\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = resolveUnref(config.baseUrl);\n const targetUrl = resolveUnref(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[0]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n });\n } else {\n fetchOptions = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, fetchOptions), args[0]), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n });\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[1]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n });\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = { immediate: true, refetch: false, timeout: 0 };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[0]);\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[1]);\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort && controller) {\n controller.abort();\n controller = void 0;\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n if (supportsAbort) {\n abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = __spreadProps$3(__spreadValues$d({}, fetchOptions), {\n signal: controller.signal\n });\n }\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n const payload = resolveUnref(config.payload);\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: resolveUnref(url),\n options: __spreadValues$d(__spreadValues$d({}, defaultFetchOptions), fetchOptions),\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(context.url, __spreadProps$3(__spreadValues$d(__spreadValues$d({}, defaultFetchOptions), context.options), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n })).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (options.afterFetch && statusCode.value >= 200 && statusCode.value < 300)\n ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n data.value = responseData;\n if (!fetchResponse.ok)\n throw new Error(fetchResponse.statusText);\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError)\n ({ data: responseData, error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n data.value = responseData;\n error.value = errorData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = resolveRef(options.refetch);\n watch([\n refetch,\n resolveRef(url)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch([\n refetch,\n resolveRef(config.payload)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n }\n const rawPayload = resolveUnref(config.payload);\n if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype && !(rawPayload instanceof FormData))\n config.payloadType = \"json\";\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n if (options.immediate)\n setTimeout(execute, 0);\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n };\n }\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = __spreadValues$c(__spreadValues$c(__spreadValues$c({}, DEFAULT_OPTIONS), options), localOptions);\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n input.click();\n };\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n return {\n files: readonly(files),\n open,\n reset\n };\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = unref(options);\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n if (unref(dataType) === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n if (unref(dataType) === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n if (unref(dataType) === \"Blob\")\n data.value = file.value;\n }\n watch(() => unref(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", () => innerFocused.value = true);\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(targetElement, () => {\n focused.value = initialValue;\n }, { immediate: true, flush: \"post\" });\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst functionsMap = [\n [\n \"requestFullscreen\",\n \"exitFullscreen\",\n \"fullscreenElement\",\n \"fullscreenEnabled\",\n \"fullscreenchange\",\n \"fullscreenerror\"\n ],\n [\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitFullscreenElement\",\n \"webkitFullscreenEnabled\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"webkitRequestFullScreen\",\n \"webkitCancelFullScreen\",\n \"webkitCurrentFullScreenElement\",\n \"webkitCancelFullScreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozFullScreenElement\",\n \"mozFullScreenEnabled\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\"\n ],\n [\n \"msRequestFullscreen\",\n \"msExitFullscreen\",\n \"msFullscreenElement\",\n \"msFullscreenEnabled\",\n \"MSFullscreenChange\",\n \"MSFullscreenError\"\n ]\n];\nfunction useFullscreen(target, options = {}) {\n const { document = defaultDocument, autoExit = false } = options;\n const targetRef = target || (document == null ? void 0 : document.querySelector(\"html\"));\n const isFullscreen = ref(false);\n let map = functionsMap[0];\n const isSupported = useSupported(() => {\n if (!document) {\n return false;\n } else {\n for (const m of functionsMap) {\n if (m[1] in document) {\n map = m;\n return true;\n }\n }\n }\n return false;\n });\n const [REQUEST, EXIT, ELEMENT, , EVENT] = map;\n async function exit() {\n if (!isSupported.value)\n return;\n if (document == null ? void 0 : document[ELEMENT])\n await document[EXIT]();\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value)\n return;\n await exit();\n const target2 = unrefElement(targetRef);\n if (target2) {\n await target2[REQUEST]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n if (isFullscreen.value)\n await exit();\n else\n await enter();\n }\n if (document) {\n useEventListener(document, EVENT, () => {\n isFullscreen.value = !!(document == null ? void 0 : document[ELEMENT]);\n }, false);\n }\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n hapticActuators,\n index: gamepad.index,\n mapping: gamepad.mapping,\n connected: gamepad.connected,\n timestamp: gamepad.timestamp,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = ref(null);\n const coords = ref({\n accuracy: 0,\n latitude: Infinity,\n longitude: Infinity,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n enableHighAccuracy,\n maximumAge,\n timeout\n });\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const onEvent = createFilterWrapper(eventFilter, () => {\n idle.value = false;\n lastActive.value = timestamp();\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n });\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n }\n timer = setTimeout(() => idle.value = true, timeout);\n return { idle, lastActive };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nconst useImage = (options, asyncStateOptions = {}) => {\n const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$a({\n resetOnExecute: true\n }, asyncStateOptions));\n watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n return state;\n};\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\"\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n const _element = resolveUnref(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = resolveUnref(_y)) != null ? _a : y.value,\n left: (_b = resolveUnref(_x)) != null ? _b : x.value,\n behavior: resolveUnref(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const onScrollHandler = (e) => {\n const eventTarget = e.target === document ? e.target.documentElement : e.target;\n const scrollLeft = eventTarget.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalY.value;\n arrivedState.left = scrollLeft <= 0 + (offset.left || 0);\n arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalX.value = scrollLeft;\n let scrollTop = eventTarget.scrollTop;\n if (e.target === document && !scrollTop)\n scrollTop = document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n arrivedState.top = scrollTop <= 0 + (offset.top || 0);\n arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalY.value = scrollTop;\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n useEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions\n };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a, _b;\n const direction = (_a = options.direction) != null ? _a : \"bottom\";\n const state = reactive(useScroll(element, __spreadProps$2(__spreadValues$9({}, options), {\n offset: __spreadValues$9({\n [direction]: (_b = options.distance) != null ? _b : 0\n }, options.offset)\n })));\n watch(() => state.arrivedState[direction], async (v) => {\n var _a2, _b2;\n if (v) {\n const elem = resolveUnref(element);\n const previous = {\n height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,\n width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0\n };\n await onLoadMore(state);\n if (options.preserveScrollPosition && elem) {\n nextTick(() => {\n elem.scrollTo({\n top: elem.scrollHeight - previous.height,\n left: elem.scrollWidth - previous.width\n });\n });\n }\n }\n });\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n let cleanup = noop;\n const stopWatch = isSupported.value ? watch(() => ({\n el: unrefElement(target),\n root: unrefElement(root)\n }), ({ el, root: root2 }) => {\n cleanup();\n if (!el)\n return;\n const observer = new IntersectionObserver(callback, {\n root: root2,\n rootMargin,\n threshold\n });\n observer.observe(el);\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n }, { immediate: true, flush: \"post\" }) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = new Set();\n const usedKeys = new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(refs, {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => unref(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? unref(r) : r;\n }\n });\n return proxy;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction usingElRef(source, cb) {\n if (resolveUnref(source))\n cb(resolveUnref(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = __spreadValues$8(__spreadValues$8({}, defaultOptions), options);\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = isNumber(track) ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = isNumber(track) ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = resolveUnref(target);\n if (!el)\n return;\n const src = resolveUnref(options.src);\n let sources = [];\n if (!src)\n return;\n if (isString(src))\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch(volume, (vol) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.volume = vol;\n });\n watch(muted, (mute) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.muted = mute;\n });\n watch(rate, (rate2) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.playbackRate = rate2;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = resolveUnref(options.tracks);\n const el = resolveUnref(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = resolveUnref(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = resolveUnref(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(resolveUnref(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, \"waiting\", () => waiting.value = true);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n });\n useEventListener(target, \"ratechange\", () => rate.value = resolveUnref(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n volume,\n muted,\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n onSourceError: sourceErrorEvent.on\n };\n}\n\nconst getMapVue2Compat = () => {\n const data = reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n};\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return reactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return reactive(new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n}\n\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n eventFilter\n } = options;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const mouseHandler = (event) => {\n if (type === \"page\") {\n x.value = event.pageX;\n y.value = event.pageY;\n } else if (type === \"client\") {\n x.value = event.clientX;\n y.value = event.clientY;\n } else if (type === \"movement\") {\n x.value = event.movementX;\n y.value = event.movementY;\n }\n sourceType.value = \"mouse\";\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const touch2 = event.touches[0];\n if (type === \"page\") {\n x.value = touch2.pageX;\n y.value = touch2.pageY;\n } else if (type === \"client\") {\n x.value = touch2.clientX;\n y.value = touch2.clientY;\n }\n sourceType.value = \"touch\";\n }\n };\n const mouseHandlerWrapper = (event) => {\n return eventFilter === void 0 ? mouseHandler(event) : eventFilter(() => mouseHandler(event), {});\n };\n const touchHandlerWrapper = (event) => {\n return eventFilter === void 0 ? touchHandler(event) : eventFilter(() => touchHandler(event), {});\n };\n if (window) {\n useEventListener(window, \"mousemove\", mouseHandlerWrapper, { passive: true });\n useEventListener(window, \"dragover\", mouseHandlerWrapper, { passive: true });\n if (touch && type !== \"movement\") {\n useEventListener(window, \"touchstart\", touchHandlerWrapper, { passive: true });\n useEventListener(window, \"touchmove\", touchHandlerWrapper, { passive: true });\n if (resetOnTouchEnds)\n useEventListener(window, \"touchend\", reset, { passive: true });\n }\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch([targetRef, x, y], () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n }, { immediate: true });\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n useEventListener(window, \"mouseup\", onReleased, { passive: true });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"drop\", onReleased, { passive: true });\n useEventListener(window, \"dragend\", onReleased, { passive: true });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n useEventListener(window, \"touchend\", onReleased, { passive: true });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$1(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n }, { immediate: true });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst useNavigatorLanguage = (options = {}) => {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n};\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(new Date());\n const update = () => now.value = new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return __spreadValues$7({\n now\n }, controls);\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(() => unref(object), (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n }, { immediate: true });\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (isFunction(value) || isReadonly(value))\n return computed(() => clamp(resolveUnref(value), resolveUnref(min), resolveUnref(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, resolveUnref(min), resolveUnref(max));\n },\n set(value2) {\n _value.value = clamp(value2, resolveUnref(min), resolveUnref(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Infinity,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Infinity);\n const pageCount = computed(() => Math.max(1, Math.ceil(unref(total) / unref(currentPageSize))));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page))\n syncRef(page, currentPage);\n if (isRef(pageSize))\n syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n useEventListener(target, \"pointerdown\", handler, { passive: true });\n useEventListener(target, \"pointermove\", handler, { passive: true });\n useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n }\n return __spreadProps$1(__spreadValues$6({}, toRefs(state)), {\n isInside\n });\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nvar SwipeDirection;\n(function(SwipeDirection2) {\n SwipeDirection2[\"UP\"] = \"UP\";\n SwipeDirection2[\"RIGHT\"] = \"RIGHT\";\n SwipeDirection2[\"DOWN\"] = \"DOWN\";\n SwipeDirection2[\"LEFT\"] = \"LEFT\";\n SwipeDirection2[\"NONE\"] = \"NONE\";\n})(SwipeDirection || (SwipeDirection = {}));\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return diffY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, \"touchend\", onTouchEnd, listenerOptions),\n useEventListener(target, \"touchcancel\", onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = resolveRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return distanceY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(resolveRef(value), (_, oldValue) => {\n previous.value = oldValue;\n }, { flush: \"sync\" });\n return readonly(previous);\n}\n\nconst useScreenOrientation = (options = {}) => {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n};\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = resolveUnref(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientHeight < ele.scrollHeight || style.overflowY === \"auto\" && ele.clientWidth < ele.scrollWidth) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(resolveRef(element), (el) => {\n if (el) {\n const ele = el;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const ele = resolveUnref(element);\n if (!ele || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(ele, \"touchmove\", (e) => {\n preventDefault(e);\n }, { passive: false });\n }\n ele.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const ele = resolveUnref(element);\n if (!ele || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n ele.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = __spreadValues$5(__spreadValues$5({}, resolveUnref(shareOptions)), resolveUnref(overrideOptions));\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...unref(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(unref(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = resolveRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = unref(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = unref(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = resolveRef(text || \"\");\n const lang = resolveRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = unref(lang);\n utterance2.voice = unref(options.voice) || null;\n utterance2.pitch = pitch;\n utterance2.rate = rate;\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = resolveUnref(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = __spreadValues$4(__spreadValues$4({}, rawInit), value);\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => setTimeout(() => read(e), 0));\n if (storage) {\n watchWithFilter(data, async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n }, {\n flush,\n deep,\n eventFilter\n });\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.type = \"text/css\";\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(cssRef, (value) => {\n el.textContent = value;\n }, { immediate: true });\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(document.querySelector(selector), () => dir.value = getValue(), { attributes: true });\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n const ranges = new Array(rangeCount);\n for (let i = 0; i < rangeCount; i++) {\n const range = selection.getRangeAt(i);\n ranges[i] = range;\n }\n return ranges;\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n textarea.value.style.height = \"1px\";\n textarea.value.style.height = `${(_a = textarea.value) == null ? void 0 : _a.scrollHeight}px`;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], triggerResize, { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, __spreadProps(__spreadValues$3({}, options), { eventFilter: filter }));\n return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Infinity, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nconst DEFAULT_FORMATTER = (date) => date.toISOString().slice(0, 10);\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n const timeAgo = computed(() => formatTimeAgo(new Date(resolveUnref(time)), options, unref(now.value)));\n if (exposeControls) {\n return __spreadValues$2({\n timeAgo\n }, controls);\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval);\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$1({\n timestamp: ts\n }, controls);\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = resolveRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && isFunction(newTitle);\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return isFunction(template) ? template(t) : unref(template).replace(/%s/g, t);\n }\n watch(title, (t, o) => {\n if (t !== o && document)\n document.title = format(isString(t) ? t : \"\");\n }, { immediate: true });\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver((_b = document.head) == null ? void 0 : _b.querySelector(\"title\"), () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n }, { childList: true });\n }\n return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = __spreadValues({\n linear: identity\n}, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction useTransition(source, options = {}) {\n const {\n delay = 0,\n disabled = false,\n duration = 1e3,\n onFinished = noop,\n onStarted = noop,\n transition = identity\n } = options;\n const currentTransition = computed(() => {\n const t = unref(transition);\n return isFunction(t) ? t : createEasingFunction(t);\n });\n const sourceValue = computed(() => {\n const s = unref(source);\n return isNumber(s) ? s : s.map(unref);\n });\n const sourceVector = computed(() => isNumber(sourceValue.value) ? [sourceValue.value] : sourceValue.value);\n const outputVector = ref(sourceVector.value.slice(0));\n let currentDuration;\n let diffVector;\n let endAt;\n let startAt;\n let startVector;\n const { resume, pause } = useRafFn(() => {\n const now = Date.now();\n const progress = clamp(1 - (endAt - now) / currentDuration, 0, 1);\n outputVector.value = startVector.map((val, i) => {\n var _a;\n return val + ((_a = diffVector[i]) != null ? _a : 0) * currentTransition.value(progress);\n });\n if (progress >= 1) {\n pause();\n onFinished();\n }\n }, { immediate: false });\n const start = () => {\n pause();\n currentDuration = unref(duration);\n diffVector = outputVector.value.map((n, i) => {\n var _a, _b;\n return ((_a = sourceVector.value[i]) != null ? _a : 0) - ((_b = outputVector.value[i]) != null ? _b : 0);\n });\n startVector = outputVector.value.slice(0);\n startAt = Date.now();\n endAt = startAt + currentDuration;\n resume();\n onStarted();\n };\n const timeout = useTimeoutFn(start, delay, { immediate: false });\n watch(sourceVector, () => {\n if (unref(disabled))\n return;\n if (unref(delay) <= 0)\n start();\n else\n timeout.start();\n }, { deep: true });\n watch(() => unref(disabled), (v) => {\n if (v) {\n outputVector.value = sourceVector.value.slice(0);\n pause();\n }\n });\n return computed(() => {\n const targetVector = unref(disabled) ? sourceVector : outputVector;\n return isNumber(sourceValue.value) ? targetVector.value[0] : targetVector.value;\n });\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(state, () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n }, { deep: true });\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(window.history.state, window.document.title, window.location.pathname + constructQuery(params));\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const videoDeviceId = ref(options.videoDeviceId);\n const audioDeviceId = ref(options.audioDeviceId);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(device) {\n if (device.value === \"none\" || device.value === false)\n return false;\n if (device.value == null)\n return true;\n return {\n deviceId: device.value\n };\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(videoDeviceId),\n audio: getDeviceOptions(audioDeviceId)\n });\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n watch([videoDeviceId, audioDeviceId], () => {\n if (autoSwitch.value && stream.value)\n restart();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n videoDeviceId,\n audioDeviceId,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = eventName || event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : isFunction(clone) ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n watch(() => props[key], (v) => proxy.value = cloneFn(v));\n watch(proxy, (v) => {\n if (v !== props[key] || deep)\n _emit(event, v);\n }, { deep });\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n _emit(event, value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props)\n ret[key] = useVModel(props, key, emit, options);\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = resolveRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(vibrate, interval, {\n immediate: false,\n immediateCallback: false\n });\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nconst useWakeLock = (options = {}) => {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n};\n\nconst useWebNotification = (defaultOptions = {}) => {\n const {\n window = defaultWindow\n } = defaultOptions;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const notification = ref(null);\n const requestPermission = async () => {\n if (!isSupported.value)\n return;\n if (\"permission\" in Notification && Notification.permission !== \"denied\")\n await Notification.requestPermission();\n };\n const onClick = createEventHook();\n const onShow = createEventHook();\n const onError = createEventHook();\n const onClose = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value)\n return;\n await requestPermission();\n const options = Object.assign({}, defaultOptions, overrides);\n notification.value = new Notification(options.title || \"\", options);\n notification.value.onclick = (event) => onClick.trigger(event);\n notification.value.onshow = (event) => onShow.trigger(event);\n notification.value.onerror = (event) => onError.trigger(event);\n notification.value.onclose = (event) => onClose.trigger(event);\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n tryOnMounted(async () => {\n if (isSupported.value)\n await requestPermission();\n });\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n};\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = resolveRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const close = (code = 1e3, reason) => {\n if (!wsRef.value)\n return;\n explicitlyClosed = true;\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(() => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n }, pongTimeout);\n }, interval, { immediate: false });\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(window, \"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = function post2(val) {\n if (!worker.value)\n return;\n worker.value.postMessage(val);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (isString(arg0))\n worker.value = new Worker(arg0, workerOptions);\n else if (isFunction(arg0))\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nconst jobRunner = (userFunc) => (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n};\n\nconst depsParser = (deps) => {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n};\n\nconst createWorkerBlobUrl = (fn, deps) => {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n};\n\nconst useWebWorkerFn = (fn, options = {}) => {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n};\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const x = ref(window.scrollX);\n const y = ref(window.scrollY);\n useEventListener(window, \"scroll\", () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n }, {\n capture: false,\n passive: true\n });\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Infinity,\n initialHeight = Infinity,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation)\n useEventListener(\"orientationchange\", update, { passive: true });\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, SwipeDirection, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n", "/**\n * name: @tresjs/core\n * version: v2.0.0-beta.2\n * (c) 2023\n * description: Declarative ThreeJS using Vue Components\n * author: Alvaro Saburido (https://github.com/alvarosabu/)\n */\nimport { ref as S, watchEffect as ie, toRef as Pe, shallowRef as se, toRefs as ce, computed as ue, watch as H, shallowReactive as le, provide as Re, inject as ke, onUnmounted as fe, createRenderer as Ae, defineComponent as de, onMounted as Oe, h as P } from \"vue\";\nimport * as pe from \"three\";\nimport { MathUtils as je, PerspectiveCamera as B, OrthographicCamera as _e, Clock as me, Color as U, sRGBEncoding as ze, ACESFilmicToneMapping as Be, PCFSoftShadowMap as De, PCFShadowMap as We, LinearEncoding as ne, NoToneMapping as ae, WebGLRenderer as Fe, LoadingManager as Ie, TextureLoader as He, Raycaster as Ue, Vector2 as $e, BufferAttribute as Ge } from \"three\";\nimport { createEventHook as V, useRafFn as Ne, resolveUnref as u, useWindowSize as qe, useElementSize as Ve, useDevicePixelRatio as Ye, unrefElement as $, isFunction as re, useEventListener as Ke } from \"@vueuse/core\";\nconst N = S({ uuid: je.generateUUID() }), ve = (e) => void Object.assign(N.value, e);\nvar Xe = /* @__PURE__ */ ((e) => (e.Perspective = \"Perspective\", e.Orthographic = \"Orthographic\", e))(Xe || {});\nconst Je = 45;\nlet L;\nfunction q() {\n const { state: e, setState: t, aspectRatio: r } = k();\n function a(o = \"Perspective\", c) {\n var l, v, d;\n if (o === \"Perspective\") {\n const { near: f, far: M, fov: h } = c || {\n near: 0.1,\n far: 1e3,\n fov: Je\n };\n L = new B(h, ((l = e.aspectRatio) == null ? void 0 : l.value) || window.innerWidth / window.innerHeight, f, M), (v = e.cameras) == null || v.push(L);\n } else {\n const { left: f, right: M, top: h, bottom: C, near: g, far: p } = c || {\n left: -100,\n right: 100,\n top: 100,\n bottom: -100,\n near: 0.1,\n far: 1e3\n };\n L = new _e(f, M, h, C, g, p), (d = e.cameras) == null || d.push(L);\n }\n return e.camera = L, t(\"camera\", e.camera), L;\n }\n function n() {\n var o;\n e.camera instanceof B && e.aspectRatio && (e.camera.aspect = e.aspectRatio.value), (o = e.camera) == null || o.updateProjectionMatrix();\n }\n function i(o) {\n var c;\n (c = e.cameras) == null || c.push(o), o instanceof B && e.aspectRatio && (o.aspect = e.aspectRatio.value), o.updateProjectionMatrix(), t(\"camera\", o);\n }\n function s() {\n e.cameras = [];\n }\n return ie(() => {\n r != null && r.value && n();\n }), {\n activeCamera: Pe(e, \"camera\"),\n createCamera: a,\n updateCamera: n,\n pushCamera: i,\n clearCameras: s\n };\n}\nconst he = V(), ge = V(), Y = V(), R = new me();\nlet D = 0, W = 0;\nconst { pause: Qe, resume: Ze, isActive: et } = Ne(\n () => {\n he.trigger({ delta: D, elapsed: W, clock: R }), ge.trigger({ delta: D, elapsed: W, clock: R }), Y.trigger({ delta: D, elapsed: W, clock: R });\n },\n { immediate: !1 }\n);\nY.on(() => {\n D = R.getDelta(), W = R.getElapsedTime();\n});\nfunction we() {\n return {\n onBeforeLoop: he.on,\n onLoop: ge.on,\n onAfterLoop: Y.on,\n pause: Qe,\n resume: Ze,\n isActive: et\n };\n}\nfunction tt(e) {\n return e instanceof U ? e : Array.isArray(e) ? new U(...e) : new U(e);\n}\nconst G = {\n realistic: {\n outputEncoding: ze,\n toneMapping: Be,\n toneMappingExposure: 3,\n shadowMap: {\n enabled: !0,\n type: De\n }\n }\n}, be = (e, t) => {\n for (const r of Object.keys(t))\n t[r] instanceof Object && Object.assign(t[r], be(e[r], t[r]));\n return Object.assign(e || {}, t), e;\n}, nt = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\", at = /* @__PURE__ */ rt(nt);\nfunction _(e) {\n return e.replace(/-([a-z])/g, (t, r) => r.toUpperCase());\n}\nfunction rt(e, t) {\n const r = /* @__PURE__ */ Object.create(null), a = e.split(\",\");\n for (let n = 0; n < a.length; n++)\n r[a[n]] = !0;\n return t ? (n) => !!r[n.toLowerCase()] : (n) => !!r[n];\n}\nfunction ot(e) {\n var ee, te;\n const t = se(), r = S(!1), {\n alpha: a = !0,\n antialias: n = !0,\n depth: i,\n logarithmicDepthBuffer: s,\n failIfMajorPerformanceCaveat: o,\n precision: c,\n premultipliedAlpha: l,\n stencil: v,\n shadows: d = !1,\n shadowMapType: f = We,\n physicallyCorrectLights: M = !1,\n useLegacyLights: h = !1,\n outputEncoding: C = ne,\n toneMapping: g = ae,\n toneMappingExposure: p = 1,\n context: b = void 0,\n powerPreference: y = \"default\",\n preserveDrawingBuffer: O = !1,\n clearColor: w,\n windowSize: T = !1,\n preset: j = void 0\n } = ce(e), { state: x, setState: F } = k(), { width: K, height: X } = u(T) ? qe() : Ve(x.container), { logError: Me, logWarning: Ce } = A(), { pixelRatio: J } = Ye(), { pause: Ee, resume: Le } = we(), I = ue(() => K.value / X.value);\n !u(T) && ((te = (ee = x.container) == null ? void 0 : ee.value) == null ? void 0 : te.offsetHeight) === 0 && Ce(`Oops... Seems like your canvas height is currently 0px, by default it takes the height of it's parent, so make sure it has some height with CSS.\nYou could set windowSize=true to force the canvas to be the size of the window.`);\n const Q = () => {\n t.value && (t.value.setSize(K.value, X.value), t.value.setPixelRatio(Math.min(J.value, 2)));\n }, Z = () => {\n if (!t.value)\n return;\n const E = u(j);\n if (E) {\n E in G || Me(\"Renderer Preset must be one of these: \" + Object.keys(G).join(\", \")), be(t.value, G[E]);\n return;\n }\n t.value.shadowMap.enabled = u(d), t.value.shadowMap.type = u(f), t.value.toneMapping = u(g) || ae, t.value.toneMappingExposure = u(p), t.value.outputEncoding = u(C) || ne, w != null && w.value && t.value.setClearColor(tt(u(w))), t.value.useLegacyLights = u(h);\n }, Se = () => {\n const E = $(x.canvas);\n E && (t.value = new Fe({\n canvas: E,\n alpha: u(a),\n antialias: u(n),\n context: u(b),\n depth: u(i),\n failIfMajorPerformanceCaveat: u(o),\n logarithmicDepthBuffer: u(s),\n powerPreference: u(y),\n precision: u(c),\n stencil: u(v),\n preserveDrawingBuffer: u(O),\n premultipliedAlpha: u(l)\n }), F(\"renderer\", t.value), F(\"clock\", new me()), F(\"aspectRatio\", I), Z(), Q(), Le(), r.value = !0);\n }, Te = () => {\n t.value && (t.value.dispose(), t.value = void 0, r.value = !1, Ee());\n };\n return H([I, J], Q), H(\n [d, f, C, h, g, p, w],\n Z\n ), H(\n () => [x.canvas, x.container],\n () => {\n $(x.canvas) && $(x.container) && Se();\n },\n { immediate: !0, deep: !0 }\n ), {\n renderer: t,\n isReady: r,\n dispose: Te,\n aspectRatio: I\n };\n}\nconst ye = (e) => !!e && e.constructor === Array;\nfunction it(e) {\n const t = { nodes: {}, materials: {} };\n return e && e.traverse((r) => {\n r.name && (t.nodes[r.name] = r), r.material && !t.materials[r.material.name] && (t.materials[r.material.name] = r.material);\n }), t;\n}\nasync function Mt(e, t, r, a, n) {\n const { logError: i } = A(), s = new e();\n n && n(s), r && r(s);\n const c = (Array.isArray(t) ? t : [t]).map(\n (l) => new Promise((v, d) => {\n s.load(\n l,\n (f) => {\n f.scene && Object.assign(f, it(f.scene)), v(f);\n },\n a,\n (f) => d(i(\"[useLoader] - Failed to load resource\", f))\n );\n })\n );\n return ye(t) ? await Promise.all(c) : await c[0];\n}\nasync function Ct(e) {\n const t = new Ie(), r = new He(t), a = (n) => new Promise((i, s) => {\n r.load(\n n,\n (o) => i(o),\n () => null,\n () => {\n s(new Error(\"[useTextures] - Failed to load texture\"));\n }\n );\n });\n if (ye(e)) {\n const n = await Promise.all(e.map((i) => a(i)));\n return e.length > 1 ? n : n[0];\n } else {\n const {\n map: n,\n displacementMap: i,\n normalMap: s,\n roughnessMap: o,\n metalnessMap: c,\n aoMap: l,\n alphaMap: v,\n matcap: d\n } = e;\n return {\n map: n ? await a(n) : null,\n displacementMap: i ? await a(i) : null,\n normalMap: s ? await a(s) : null,\n roughnessMap: o ? await a(o) : null,\n metalnessMap: c ? await a(c) : null,\n aoMap: l ? await a(l) : null,\n alphaMap: v ? await a(v) : null,\n matcap: d ? await a(d) : null\n };\n }\n}\nconst m = [\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"0a\", \"0b\", \"0c\", \"0d\", \"0e\", \"0f\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"1a\", \"1b\", \"1c\", \"1d\", \"1e\", \"1f\", \"20\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"27\", \"28\", \"29\", \"2a\", \"2b\", \"2c\", \"2d\", \"2e\", \"2f\", \"30\", \"31\", \"32\", \"33\", \"34\", \"35\", \"36\", \"37\", \"38\", \"39\", \"3a\", \"3b\", \"3c\", \"3d\", \"3e\", \"3f\", \"40\", \"41\", \"42\", \"43\", \"44\", \"45\", \"46\", \"47\", \"48\", \"49\", \"4a\", \"4b\", \"4c\", \"4d\", \"4e\", \"4f\", \"50\", \"51\", \"52\", \"53\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"5a\", \"5b\", \"5c\", \"5d\", \"5e\", \"5f\", \"60\", \"61\", \"62\", \"63\", \"64\", \"65\", \"66\", \"67\", \"68\", \"69\", \"6a\", \"6b\", \"6c\", \"6d\", \"6e\", \"6f\", \"70\", \"71\", \"72\", \"73\", \"74\", \"75\", \"76\", \"77\", \"78\", \"79\", \"7a\", \"7b\", \"7c\", \"7d\", \"7e\", \"7f\", \"80\", \"81\", \"82\", \"83\", \"84\", \"85\", \"86\", \"87\", \"88\", \"89\", \"8a\", \"8b\", \"8c\", \"8d\", \"8e\", \"8f\", \"90\", \"91\", \"92\", \"93\", \"94\", \"95\", \"96\", \"97\", \"98\", \"99\", \"9a\", \"9b\", \"9c\", \"9d\", \"9e\", \"9f\", \"a0\", \"a1\", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"aa\", \"ab\", \"ac\", \"ad\", \"ae\", \"af\", \"b0\", \"b1\", \"b2\", \"b3\", \"b4\", \"b5\", \"b6\", \"b7\", \"b8\", \"b9\", \"ba\", \"bb\", \"bc\", \"bd\", \"be\", \"bf\", \"c0\", \"c1\", \"c2\", \"c3\", \"c4\", \"c5\", \"c6\", \"c7\", \"c8\", \"c9\", \"ca\", \"cb\", \"cc\", \"cd\", \"ce\", \"cf\", \"d0\", \"d1\", \"d2\", \"d3\", \"d4\", \"d5\", \"d6\", \"d7\", \"d8\", \"d9\", \"da\", \"db\", \"dc\", \"dd\", \"de\", \"df\", \"e0\", \"e1\", \"e2\", \"e3\", \"e4\", \"e5\", \"e6\", \"e7\", \"e8\", \"e9\", \"ea\", \"eb\", \"ec\", \"ed\", \"ee\", \"ef\", \"f0\", \"f1\", \"f2\", \"f3\", \"f4\", \"f5\", \"f6\", \"f7\", \"f8\", \"f9\", \"fa\", \"fb\", \"fc\", \"fd\", \"fe\", \"ff\"];\nfunction st() {\n const e = Math.random() * 4294967295 | 0, t = Math.random() * 4294967295 | 0, r = Math.random() * 4294967295 | 0, a = Math.random() * 4294967295 | 0;\n return (m[e & 255] + m[e >> 8 & 255] + m[e >> 16 & 255] + m[e >> 24 & 255] + \"-\" + m[t & 255] + m[t >> 8 & 255] + \"-\" + m[t >> 16 & 15 | 64] + m[t >> 24 & 255] + \"-\" + m[r & 63 | 128] + m[r >> 8 & 255] + \"-\" + m[r >> 16 & 255] + m[r >> 24 & 255] + m[a & 255] + m[a >> 8 & 255] + m[a >> 16 & 255] + m[a >> 24 & 255]).toLowerCase();\n}\nconst xe = Symbol();\nfunction ct() {\n const e = le({\n uuid: st(),\n camera: void 0,\n cameras: [],\n scene: void 0,\n renderer: void 0,\n aspectRatio: ue(() => window.innerWidth / window.innerHeight)\n });\n function t(n) {\n return e[n];\n }\n function r(n, i) {\n e[n] = i;\n }\n const a = {\n state: e,\n ...ce(e),\n getState: t,\n setState: r\n };\n return Re(xe, a), a;\n}\nconst k = () => ke(xe, {\n state: le({\n camera: void 0,\n cameras: [],\n scene: void 0,\n renderer: void 0\n })\n});\nfunction ut() {\n var s;\n const e = se(new Ue()), t = S(new $e()), r = S(null), { setState: a, state: n } = k();\n a(\"raycaster\", e.value), a(\"pointer\", t), a(\"currentInstance\", r);\n function i(o) {\n t.value.x = o.clientX / window.innerWidth * 2 - 1, t.value.y = -(o.clientY / window.innerHeight) * 2 + 1;\n }\n return (s = n == null ? void 0 : n.renderer) == null || s.domElement.addEventListener(\"pointermove\", i), fe(() => {\n var o;\n (o = n == null ? void 0 : n.renderer) == null || o.domElement.removeEventListener(\"pointermove\", i);\n }), {\n raycaster: e,\n pointer: t\n };\n}\nconst Et = !0, oe = \"[TresJS ▲ ■ ●] \";\nfunction A() {\n function e(a, n) {\n console.error(`${oe} ${a}`, n || \"\");\n }\n function t(a) {\n console.warn(`${oe} ${a}`);\n }\n function r(a, n) {\n }\n return {\n logError: e,\n logWarning: t,\n logMessage: r\n };\n}\nfunction Lt() {\n const { logWarning: e } = A();\n function t(a, n, i) {\n let s = null;\n return a.traverse((o) => {\n o[n] === i && (s = o);\n }), s || e(`Child with ${n} '${i}' not found.`), s;\n }\n function r(a, n) {\n return t(a, \"name\", n);\n }\n return {\n seek: t,\n seekByName: r\n };\n}\nconst { logWarning: lt } = A(), ft = /^on[^a-z]/, dt = (e) => ft.test(e);\nlet z = null;\nconst pt = {\n createElement(e, t, r, a) {\n if (e === \"template\" || at(e))\n return null;\n let n;\n if (a === null && (a = {}), a != null && a.args ? n = new N.value[e.replace(\"Tres\", \"\")](...a.args) : n = new N.value[e.replace(\"Tres\", \"\")](), n.isCamera) {\n (!(a != null && a.position) || a != null && a.position.every((s) => s == 0)) && lt(\n // eslint-disable-next-line max-len\n \"Camera is positioned at the center of the scene [0,0,0], if this is not intentional try setting a position if your scene seems empty 🤗\"\n );\n const { pushCamera: i } = q();\n i(n);\n }\n return (a == null ? void 0 : a.attach) === void 0 && (n.isMaterial ? n.attach = \"material\" : n.isBufferGeometry && (n.attach = \"geometry\")), n.events = {}, n;\n },\n insert(e, t, r) {\n if (z === null && t.isScene && (z = t), t === null && (t = z), t != null && t.isObject3D && (e != null && e.isObject3D)) {\n const a = r ? t.children.indexOf(r) : 0;\n e.parent = t, t.children.splice(a, 0, e), e.dispatchEvent({ type: \"added\" });\n } else\n typeof (e == null ? void 0 : e.attach) == \"string\" && (e.__previousAttach = e[t == null ? void 0 : t.attach], t && (t[e.attach] = e));\n },\n remove(e) {\n if (!e)\n return;\n const t = e.parentNode;\n t && t.removeChild(e);\n },\n patchProp(e, t, r, a) {\n if (e) {\n let n = e, i = t;\n const s = _(i);\n let o = n == null ? void 0 : n[s];\n if (e.parent || (e.parent = z), n.type === \"BufferGeometry\") {\n n.setAttribute(\n _(i),\n new Ge(...a)\n );\n return;\n }\n if (i.includes(\"-\") && o === void 0) {\n const l = i.split(\"-\");\n o = l.reduce((v, d) => v[_(d)], n), i = l.pop(), o != null && o.set || (n = l.reduce((v, d) => v[_(d)], n));\n }\n dt(i) && (e.events[i] = a);\n let c = a;\n if (c === \"\" && (c = !0), re(o)) {\n Array.isArray(c) ? e[s](...c) : e[s](c);\n return;\n }\n !(o != null && o.set) && !re(o) ? n[s] = c : o.constructor === c.constructor && (o != null && o.copy) ? o == null || o.copy(c) : Array.isArray(c) ? o.set(...c) : !o.isColor && o.setScalar ? o.setScalar(c) : o.set(c);\n }\n },\n parentNode(e) {\n return (e == null ? void 0 : e.parent) || null;\n },\n createText: () => void 0,\n createComment: () => void 0,\n setText: () => void 0,\n setElementText: () => void 0,\n nextSibling: () => void 0,\n querySelector: () => void 0,\n setScopeId: () => void 0,\n cloneNode: () => void 0,\n insertStaticContent: () => void 0\n}, { createApp: mt } = Ae(pt), vt = (e) => {\n const t = mt(r);\n function r() {\n return e && e.default ? e.default() : [];\n }\n return t;\n};\nve(pe);\nconst { logWarning: ht } = A(), gt = de({\n name: \"TresScene\",\n props: [\n \"shadows\",\n \"shadowMapType\",\n \"physicallyCorrectLights\",\n \"useLegacyLights\",\n \"outputEncoding\",\n \"toneMapping\",\n \"toneMappingExposure\",\n \"context\",\n \"powerPreference\",\n \"preserveDrawingBuffer\",\n \"clearColor\",\n \"windowSize\",\n \"preset\"\n ],\n setup(e, { slots: t, expose: r }) {\n e.physicallyCorrectLights === !0 && ht(\"physicallyCorrectLights is deprecated, useLegacyLights is now false by default\");\n const a = S(), n = S(), i = new pe.Scene(), { setState: s } = k();\n s(\"scene\", i), s(\"canvas\", n), s(\"container\", a);\n const { pushCamera: o } = q();\n o(new B()), Oe(() => {\n c();\n }), fe(() => {\n s(\"renderer\", null);\n });\n function c() {\n const { renderer: d } = ot(e), { activeCamera: f } = q(), { onLoop: M } = we(), { raycaster: h, pointer: C } = ut();\n let g = null, p = null;\n ie(() => {\n f.value && h.value.setFromCamera(C.value, f.value);\n }), M(() => {\n var b, y, O, w, T;\n if (f.value && ((b = d.value) == null || b.render(i, f.value)), h.value) {\n const j = h.value.intersectObjects(i.children);\n j.length > 0 ? (p = j[0], g === null && ((O = (y = p.object.events).onPointerEnter) == null || O.call(y, p))) : g !== null && ((T = p == null ? void 0 : (w = p.object.events).onPointerLeave) == null || T.call(w, g), p = null), g = p;\n }\n }), Ke(n.value, \"click\", () => {\n var b, y;\n p !== null && ((y = (b = p.object.events).onClick) == null || y.call(b, p));\n });\n }\n let l;\n function v() {\n l = vt(t), l.provide(\"useTres\", k()), l.provide(\"extend\", ve), l.mount(i);\n }\n return v(), r({\n scene: i\n }), () => P(\n P(\n \"div\",\n {\n ref: a,\n \"data-scene\": i.uuid,\n key: i.uuid,\n style: {\n position: \"relative\",\n width: \"100%\",\n height: \"100%\",\n pointerEvents: \"auto\",\n touchAction: \"none\"\n }\n },\n [\n P(\n \"div\",\n {\n style: {\n width: \"100%\",\n height: \"100%\"\n }\n },\n [\n P(\"canvas\", {\n ref: n,\n \"data-scene\": i.uuid,\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n position: e.windowSize ? \"fixed\" : \"absolute\",\n top: 0,\n left: 0\n }\n })\n ]\n )\n ]\n )\n );\n }\n}), wt = de({\n name: \"TresCanvas\",\n props: [\n \"shadows\",\n \"shadowMapType\",\n \"physicallyCorrectLights\",\n \"useLegacyLights\",\n \"outputEncoding\",\n \"toneMapping\",\n \"toneMappingExposure\",\n \"context\",\n \"powerPreference\",\n \"preserveDrawingBuffer\",\n \"clearColor\",\n \"windowSize\",\n \"preset\"\n ],\n setup(e, { slots: t, expose: r }) {\n const a = ct();\n return r(a), () => P(gt, e, t);\n }\n}), St = {\n install(e) {\n e.component(\"TresCanvas\", wt);\n }\n};\nexport {\n Xe as CameraType,\n wt as TresCanvas,\n N as catalogue,\n St as default,\n ve as extend,\n Et as isProd,\n it as trasverseObjects,\n q as useCamera,\n Mt as useLoader,\n A as useLogger,\n ut as useRaycaster,\n we as useRenderLoop,\n ot as useRenderer,\n Lt as useSeek,\n Ct as useTexture,\n k as useTres,\n ct as useTresProvider\n};\n"], - "mappings": "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", + "sources": ["../../../../node_modules/.pnpm/@vueuse+shared@9.13.0_vue@3.2.47/node_modules/@vueuse/shared/index.mjs", "../../../../node_modules/.pnpm/@vueuse+core@9.13.0_vue@3.2.47/node_modules/@vueuse/core/index.mjs", "../../../../node_modules/.pnpm/@tresjs+core@2.0.0-beta.5_three@0.150.1_vue@3.2.47/node_modules/@tresjs/core/dist/tres.js"], + "sourcesContent": ["import { shallowRef, watchEffect, readonly, unref, ref, isVue3, version, watch, customRef, getCurrentScope, onScopeDispose, effectScope, provide, inject, isRef, computed, reactive, toRefs as toRefs$1, toRef, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, __spreadProps$6(__spreadValues$9({}, options), {\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n }));\n return readonly(result);\n}\n\nvar _a;\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isBoolean = (val) => typeof val === \"boolean\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isNumber = (val) => typeof val === \"number\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst isWindow = (val) => typeof window !== \"undefined\" && toString.call(val) === \"[object Window]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\n\nfunction resolveUnref(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = resolveUnref(ms);\n const maxDuration = resolveUnref(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = resolveUnref(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction __onlyVue3(name = \"this function\") {\n if (isVue3)\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 3.`);\n}\nfunction __onlyVue27Plus(name = \"this function\") {\n if (isVue3 || version.startsWith(\"2.7.\"))\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 2.7 or above.`);\n}\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = isFunction(fn) ? fn : fn.get;\n const set = isFunction(fn) ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = [];\n const off = (fn) => {\n const index = fns.indexOf(fn);\n if (index !== -1)\n fns.splice(index, 1);\n };\n const on = (fn) => {\n fns.push(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n fns.forEach((fn) => fn(param));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return () => {\n if (!initialized) {\n state = scope.run(stateFactory);\n initialized = true;\n }\n return state;\n };\n}\n\nfunction createInjectionState(composable) {\n const key = Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provide(key, state);\n return state;\n };\n const useInjectedState = () => inject(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n __onlyVue27Plus();\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = __spreadValues$8({}, obj);\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : resolveUnref;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n }));\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactiveComputed(() => Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactive(Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = defaultValue;\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = defaultValue;\n trigger();\n }, resolveUnref(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(ref, {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n }, { enumerable: true });\n}\nconst controlledRef = refWithControl;\n\nfunction resolveRef(r) {\n return typeof r === \"function\" ? computed(r) : ref(r);\n}\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n let watchLeft;\n let watchRight;\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchLeft = watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchRight = watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });\n }\n return () => {\n watchLeft == null ? void 0 : watchLeft();\n watchRight == null ? void 0 : watchRight();\n };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction toRefs(objectRef) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });\n Object.setPrototypeOf(newObject, objectRef.value);\n objectRef.value = newObject;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (getCurrentInstance())\n onBeforeMount(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (getCurrentInstance())\n onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance())\n onMounted(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (getCurrentInstance())\n onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(r, (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch([r, value], ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {\n stop == null ? void 0 : stop();\n return resolveUnref(r);\n }));\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(resolveUnref(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(resolveUnref(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => resolveUnref(!Array.prototype.findLast ? findLast(resolveUnref(list), (element, index, array) => fn(resolveUnref(element), index, array)) : resolveUnref(list).findLast((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);\n return computed(() => {\n const resolved = resolveUnref(list);\n return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayUnique(list) {\n return computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n const count = ref(initialValue);\n const {\n max = Infinity,\n min = -Infinity\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = initialValue) => {\n initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nconst defaultMeridiem = (hours, minutes, isLowercase, hasPeriod) => {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n};\nconst formatDate = (date, formatStr, options = {}) => {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());\n};\nconst normalizeDate = (date) => {\n if (date === null)\n return new Date(NaN);\n if (date === void 0)\n return new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n};\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(resolveUnref(date)), resolveUnref(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = resolveUnref(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || isFunction(interval)) {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(callback ? () => {\n update();\n callback(counter.value);\n } : update, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$6({\n counter,\n reset\n }, controls);\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(source, () => ms.value = timestamp(), options);\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, resolveUnref(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(callback != null ? callback : noop, interval, options);\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return __spreadValues$5({\n ready\n }, controls);\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = resolveUnref(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${resolveUnref(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = resolveUnref(truthyValue);\n _value.value = _value.value === truthy ? resolveUnref(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n ...source instanceof Function ? source() : Array.isArray(source) ? source : unref(source)\n ];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = new Array(oldList.length);\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$5(_a, [\n \"eventFilter\"\n ]);\n return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchAtMost(source, cb, options) {\n const _a = options, {\n count\n } = _a, watchOptions = __objRest$4(_a, [\n \"count\"\n ]);\n const current = ref(0);\n const stop = watchWithFilter(source, (...args) => {\n current.value += 1;\n if (current.value >= resolveUnref(count))\n nextTick(() => stop());\n cb(...args);\n }, watchOptions);\n return { count: current, stop };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n const _a = options, {\n debounce = 0,\n maxWait = void 0\n } = _a, watchOptions = __objRest$3(_a, [\n \"debounce\",\n \"maxWait\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {\n eventFilter: debounceFilter(debounce, { maxWait })\n }));\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$2(_a, [\n \"eventFilter\"\n ]);\n const filteredCb = createFilterWrapper(eventFilter, cb);\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(source, (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n }, watchOptions);\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(watch(source, () => {\n syncCounter.value++;\n }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: \"sync\" })));\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(watch(source, (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n }, watchOptions));\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n const _a = options, {\n eventFilter: filter\n } = _a, watchOptions = __objRest$1(_a, [\n \"eventFilter\"\n ]);\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {\n eventFilter\n }));\n return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n const _a = options, {\n throttle = 0,\n trailing = true,\n leading = true\n } = _a, watchOptions = __objRest(_a, [\n \"throttle\",\n \"trailing\",\n \"leading\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {\n eventFilter: throttleFilter(throttle, trailing, leading)\n }));\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return __spreadProps(__spreadValues({}, res), {\n trigger\n });\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => getOneWatchSource(item));\n return getOneWatchSource(sources);\n}\nfunction getOneWatchSource(source) {\n return typeof source === \"function\" ? source() : unref(source);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(source, (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n }, options);\n}\n\nexport { __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n", "import { noop, resolveUnref, isClient, isString, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, promiseTimeout, isFunction, resolveRef, increaseWithUnit, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, containsProp, until, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, isObject, isNumber, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, identity, isDef } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, unref, watch, getCurrentInstance, customRef, onUpdated, reactive, nextTick, onMounted, markRaw, readonly, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = false,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nconst createUnrefFn = (fn) => {\n return function(...args) {\n return fn.apply(this, args.map((i) => unref(i)));\n };\n};\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = resolveUnref(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (isString(args[0]) || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(() => [unrefElement(target), resolveUnref(options)], ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n cleanups.push(...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, options2));\n }));\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nvar __defProp$n = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$p = Object.getOwnPropertySymbols;\nvar __hasOwnProp$p = Object.prototype.hasOwnProperty;\nvar __propIsEnum$p = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$n = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n if (__getOwnPropSymbols$p)\n for (var prop of __getOwnPropSymbols$p(b)) {\n if (__propIsEnum$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst createKeyPredicate = (keyFilter) => {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n};\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const { target = defaultWindow, eventName = \"keydown\", passive = false } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(() => handler(ev), (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY);\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nconst isFocusedElementEditable = () => {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n};\nconst isTypedCharValid = ({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) => {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n return false;\n};\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const { window = defaultWindow } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const activeElement = computedWithControl(() => null, () => document == null ? void 0 : document.activeElement);\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop\n } = options;\n const promiseState = {\n pending: \"pending\",\n rejected: \"rejected\",\n fulfilled: \"fulfilled\"\n };\n const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n return curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n }).catch((e) => {\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = ref(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw error;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n return {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = resolveUnref(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || isFunction(target))\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useSupported(callback, sync = false) {\n const isSupported = ref();\n const update = () => isSupported.value = Boolean(callback());\n update();\n tryOnMounted(update, sync);\n return isSupported;\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n for (const event of events)\n useEventListener(battery, event, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n device,\n requestDevice,\n server,\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", update);\n else\n mediaQuery.removeListener(update);\n };\n const update = () => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(resolveRef(query).value);\n matches.value = mediaQuery.matches;\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", update);\n else\n mediaQuery.addListener(update);\n };\n watchEffect(update);\n tryOnScopeDispose(() => cleanup());\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n if (__getOwnPropSymbols$o)\n for (var prop of __getOwnPropSymbols$o(b)) {\n if (__propIsEnum$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n }\n return a;\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return __spreadValues$m({\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n }\n }, shortcutMethods);\n}\n\nconst useBroadcastChannel = (options) => {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = ref(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n};\n\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n const buildState = (trigger) => {\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (window == null ? void 0 : window.location) || {};\n return {\n trigger,\n state: state2,\n length,\n hash,\n host,\n hostname,\n href,\n origin,\n pathname,\n port,\n protocol,\n search\n };\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const events = [\"copy\", \"cut\"];\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read) {\n for (const event of events)\n useEventListener(event, updateText);\n }\n async function copy(value = resolveUnref(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nvar __defProp$l = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n if (__getOwnPropSymbols$n)\n for (var prop of __getOwnPropSymbols$n(b)) {\n if (__propIsEnum$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(unref(source));\n }\n if (!manual && isRef(source)) {\n watch(source, sync, __spreadProps$8(__spreadValues$l({}, options), {\n deep,\n immediate\n }));\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\n_global[globalKey] = _global[globalKey] || {};\nconst handlers = _global[globalKey];\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$m)\n for (var prop of __getOwnPropSymbols$m(b)) {\n if (__propIsEnum$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? shallowRef : ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = resolveUnref(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return __spreadValues$k(__spreadValues$k({}, rawInit), value);\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$l)\n for (var prop of __getOwnPropSymbols$l(b)) {\n if (__propIsEnum$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto\n } = options;\n const modes = __spreadValues$j({\n auto: \"\",\n light: \"light\",\n dark: \"dark\"\n }, options.modes || {});\n const preferredDark = usePreferredDark({ window });\n const preferredMode = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed({\n get() {\n return store.value === \"auto\" && !emitAuto ? preferredMode.value : store.value;\n },\n set(v) {\n store.value = v;\n }\n });\n const updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector2, attribute2, value) => {\n const el = window == null ? void 0 : window.document.querySelector(selector2);\n if (!el)\n return;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n });\n function defaultOnChanged(mode) {\n var _a;\n const resolvedMode = mode === \"auto\" ? preferredMode.value : mode;\n updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n if (emitAuto)\n watch(preferredMode, () => onChanged(state.value), { flush: \"post\" });\n tryOnMounted(() => onChanged(state.value));\n return state;\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, { window = defaultWindow, initialValue = \"\" } = {}) {\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {\n var _a;\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }, { immediate: true });\n watch(variable, (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(resolveUnref(prop), val);\n });\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(() => null, () => vm.proxy.$el);\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n var _a;\n const state = shallowRef((_a = options == null ? void 0 : options.initialValue) != null ? _a : list[0]);\n const index = computed({\n get() {\n var _a2;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, list) : list.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a2 = options == null ? void 0 : options.fallbackIndex) != null ? _a2 : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const length = list.length;\n const index2 = (i % length + length) % length;\n const value = list[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode(__spreadProps$7(__spreadValues$i({}, options), {\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\");\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n }));\n const preferredDark = usePreferredDark({ window });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n if (v === preferredDark.value)\n mode.value = \"auto\";\n else\n mode.value = v ? \"dark\" : \"light\";\n }\n });\n return isDark;\n}\n\nconst fnBypass = (v) => v;\nconst fnSetSource = (source, value) => source.value = value;\nfunction defaultDump(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Infinity);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(source, commit, { deep, flush, eventFilter: composedFilter });\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, __spreadProps$6(__spreadValues$h({}, options), { clone: options.clone || deep, setSource }));\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return __spreadProps$6(__spreadValues$h({}, manualHistory), {\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n });\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, __spreadProps$5(__spreadValues$g({}, options), { eventFilter: filter }));\n return __spreadValues$g({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n });\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio({\n window = defaultWindow\n} = {}) {\n const pixelRatio = ref(1);\n if (window) {\n let observe = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe, { once: true });\n }, cleanup = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe);\n };\n let media;\n observe();\n tryOnScopeDispose(cleanup);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n const stream = await navigator.mediaDevices.getUserMedia(constraints);\n stream.getTracks().forEach((t) => t.stop());\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(b)) {\n if (__propIsEnum$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction useDraggable(target, options = {}) {\n var _a, _b, _c;\n const draggingElement = (_a = options.draggingElement) != null ? _a : defaultWindow;\n const draggingHandle = (_b = options.handle) != null ? _b : target;\n const position = ref((_c = resolveUnref(options.initialValue)) != null ? _c : { x: 0, y: 0 });\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (options.pointerTypes)\n return options.pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (resolveUnref(options.preventDefault))\n e.preventDefault();\n if (resolveUnref(options.stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (resolveUnref(options.exact) && e.target !== resolveUnref(target))\n return;\n const rect = resolveUnref(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if (((_a2 = options.onStart) == null ? void 0 : _a2.call(options, pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n position.value = {\n x: e.clientX - pressedDelta.value.x,\n y: e.clientY - pressedDelta.value.y\n };\n (_a2 = options.onMove) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n (_a2 = options.onEnd) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n useEventListener(draggingHandle, \"pointerdown\", start, true);\n useEventListener(draggingElement, \"pointermove\", move, true);\n useEventListener(draggingElement, \"pointerup\", end, true);\n }\n return __spreadProps$4(__spreadValues$f({}, toRefs(position)), {\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n });\n}\n\nfunction useDropZone(target, onDrop) {\n const isOverDropZone = ref(false);\n let counter = 0;\n if (isClient) {\n useEventListener(target, \"dragenter\", (event) => {\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n });\n useEventListener(target, \"dragover\", (event) => {\n event.preventDefault();\n });\n useEventListener(target, \"dragleave\", (event) => {\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n });\n useEventListener(target, \"drop\", (event) => {\n var _a, _b;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n });\n }\n return {\n isOverDropZone\n };\n}\n\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new ResizeObserver(callback);\n observer.observe(el, observerOptions);\n }\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - previousFrameTimestamp;\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nfunction useElementByPoint(options) {\n const element = ref(null);\n const { x, y, document = defaultDocument } = options;\n const controls = useRafFn(() => {\n element.value = (document == null ? void 0 : document.elementFromPoint(resolveUnref(x), resolveUnref(y))) || null;\n });\n return __spreadValues$e({\n element\n }, controls);\n}\n\nfunction useElementHover(el, options = {}) {\n const delayEnter = options ? options.delayEnter : 0;\n const delayLeave = options ? options.delayLeave : 0;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n useResizeObserver(target, ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = parseFloat(styles.width);\n height.value = parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n }, options);\n watch(() => unrefElement(target), (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n });\n return {\n width,\n height\n };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n const elementIsVisible = ref(false);\n const testBounding = () => {\n if (!window)\n return;\n const document = window.document;\n const el = unrefElement(element);\n if (!el) {\n elementIsVisible.value = false;\n } else {\n const rect = el.getBoundingClientRect();\n elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;\n }\n };\n watch(() => unrefElement(element), () => testBounding(), { immediate: true, flush: \"post\" });\n if (window) {\n useEventListener(scrollTarget || window, \"scroll\", testBounding, {\n capture: false,\n passive: true\n });\n }\n return elementIsVisible;\n}\n\nconst events = new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || [];\n listeners.push(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n const index = listeners.indexOf(listener);\n if (index > -1)\n listeners.splice(index, 1);\n if (!listeners.length)\n events.delete(key);\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = ref(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = resolveRef(newIcon);\n const applyIcon = (icon) => {\n document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(favicon, (i, o) => {\n if (isString(i) && i !== o)\n applyIcon(i);\n }, { immediate: true });\n return favicon;\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback !== void 0)\n await callback(ctx);\n return ctx;\n };\n } else {\n return async (ctx) => {\n await callbacks.reduce((prevCallback, callback) => prevCallback.then(async () => {\n if (callback)\n ctx = __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));\n }), Promise.resolve());\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = resolveUnref(config.baseUrl);\n const targetUrl = resolveUnref(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[0]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n });\n } else {\n fetchOptions = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, fetchOptions), args[0]), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n });\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[1]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n });\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = { immediate: true, refetch: false, timeout: 0 };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[0]);\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[1]);\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort && controller) {\n controller.abort();\n controller = void 0;\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n if (supportsAbort) {\n abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = __spreadProps$3(__spreadValues$d({}, fetchOptions), {\n signal: controller.signal\n });\n }\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n const payload = resolveUnref(config.payload);\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: resolveUnref(url),\n options: __spreadValues$d(__spreadValues$d({}, defaultFetchOptions), fetchOptions),\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(context.url, __spreadProps$3(__spreadValues$d(__spreadValues$d({}, defaultFetchOptions), context.options), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n })).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (options.afterFetch && statusCode.value >= 200 && statusCode.value < 300)\n ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n data.value = responseData;\n if (!fetchResponse.ok)\n throw new Error(fetchResponse.statusText);\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError)\n ({ data: responseData, error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n data.value = responseData;\n error.value = errorData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = resolveRef(options.refetch);\n watch([\n refetch,\n resolveRef(url)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch([\n refetch,\n resolveRef(config.payload)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n }\n const rawPayload = resolveUnref(config.payload);\n if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype && !(rawPayload instanceof FormData))\n config.payloadType = \"json\";\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n if (options.immediate)\n setTimeout(execute, 0);\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n };\n }\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = __spreadValues$c(__spreadValues$c(__spreadValues$c({}, DEFAULT_OPTIONS), options), localOptions);\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n input.click();\n };\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n return {\n files: readonly(files),\n open,\n reset\n };\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = unref(options);\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n if (unref(dataType) === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n if (unref(dataType) === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n if (unref(dataType) === \"Blob\")\n data.value = file.value;\n }\n watch(() => unref(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", () => innerFocused.value = true);\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(targetElement, () => {\n focused.value = initialValue;\n }, { immediate: true, flush: \"post\" });\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst functionsMap = [\n [\n \"requestFullscreen\",\n \"exitFullscreen\",\n \"fullscreenElement\",\n \"fullscreenEnabled\",\n \"fullscreenchange\",\n \"fullscreenerror\"\n ],\n [\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitFullscreenElement\",\n \"webkitFullscreenEnabled\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"webkitRequestFullScreen\",\n \"webkitCancelFullScreen\",\n \"webkitCurrentFullScreenElement\",\n \"webkitCancelFullScreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozFullScreenElement\",\n \"mozFullScreenEnabled\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\"\n ],\n [\n \"msRequestFullscreen\",\n \"msExitFullscreen\",\n \"msFullscreenElement\",\n \"msFullscreenEnabled\",\n \"MSFullscreenChange\",\n \"MSFullscreenError\"\n ]\n];\nfunction useFullscreen(target, options = {}) {\n const { document = defaultDocument, autoExit = false } = options;\n const targetRef = target || (document == null ? void 0 : document.querySelector(\"html\"));\n const isFullscreen = ref(false);\n let map = functionsMap[0];\n const isSupported = useSupported(() => {\n if (!document) {\n return false;\n } else {\n for (const m of functionsMap) {\n if (m[1] in document) {\n map = m;\n return true;\n }\n }\n }\n return false;\n });\n const [REQUEST, EXIT, ELEMENT, , EVENT] = map;\n async function exit() {\n if (!isSupported.value)\n return;\n if (document == null ? void 0 : document[ELEMENT])\n await document[EXIT]();\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value)\n return;\n await exit();\n const target2 = unrefElement(targetRef);\n if (target2) {\n await target2[REQUEST]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n if (isFullscreen.value)\n await exit();\n else\n await enter();\n }\n if (document) {\n useEventListener(document, EVENT, () => {\n isFullscreen.value = !!(document == null ? void 0 : document[ELEMENT]);\n }, false);\n }\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n hapticActuators,\n index: gamepad.index,\n mapping: gamepad.mapping,\n connected: gamepad.connected,\n timestamp: gamepad.timestamp,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = ref(null);\n const coords = ref({\n accuracy: 0,\n latitude: Infinity,\n longitude: Infinity,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n enableHighAccuracy,\n maximumAge,\n timeout\n });\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const onEvent = createFilterWrapper(eventFilter, () => {\n idle.value = false;\n lastActive.value = timestamp();\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n });\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n }\n timer = setTimeout(() => idle.value = true, timeout);\n return { idle, lastActive };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nconst useImage = (options, asyncStateOptions = {}) => {\n const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$a({\n resetOnExecute: true\n }, asyncStateOptions));\n watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n return state;\n};\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\"\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n const _element = resolveUnref(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = resolveUnref(_y)) != null ? _a : y.value,\n left: (_b = resolveUnref(_x)) != null ? _b : x.value,\n behavior: resolveUnref(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const onScrollHandler = (e) => {\n const eventTarget = e.target === document ? e.target.documentElement : e.target;\n const scrollLeft = eventTarget.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalY.value;\n arrivedState.left = scrollLeft <= 0 + (offset.left || 0);\n arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalX.value = scrollLeft;\n let scrollTop = eventTarget.scrollTop;\n if (e.target === document && !scrollTop)\n scrollTop = document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n arrivedState.top = scrollTop <= 0 + (offset.top || 0);\n arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalY.value = scrollTop;\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n useEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions\n };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a, _b;\n const direction = (_a = options.direction) != null ? _a : \"bottom\";\n const state = reactive(useScroll(element, __spreadProps$2(__spreadValues$9({}, options), {\n offset: __spreadValues$9({\n [direction]: (_b = options.distance) != null ? _b : 0\n }, options.offset)\n })));\n watch(() => state.arrivedState[direction], async (v) => {\n var _a2, _b2;\n if (v) {\n const elem = resolveUnref(element);\n const previous = {\n height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,\n width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0\n };\n await onLoadMore(state);\n if (options.preserveScrollPosition && elem) {\n nextTick(() => {\n elem.scrollTo({\n top: elem.scrollHeight - previous.height,\n left: elem.scrollWidth - previous.width\n });\n });\n }\n }\n });\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n let cleanup = noop;\n const stopWatch = isSupported.value ? watch(() => ({\n el: unrefElement(target),\n root: unrefElement(root)\n }), ({ el, root: root2 }) => {\n cleanup();\n if (!el)\n return;\n const observer = new IntersectionObserver(callback, {\n root: root2,\n rootMargin,\n threshold\n });\n observer.observe(el);\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n }, { immediate: true, flush: \"post\" }) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = new Set();\n const usedKeys = new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(refs, {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => unref(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? unref(r) : r;\n }\n });\n return proxy;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction usingElRef(source, cb) {\n if (resolveUnref(source))\n cb(resolveUnref(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = __spreadValues$8(__spreadValues$8({}, defaultOptions), options);\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = isNumber(track) ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = isNumber(track) ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = resolveUnref(target);\n if (!el)\n return;\n const src = resolveUnref(options.src);\n let sources = [];\n if (!src)\n return;\n if (isString(src))\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch(volume, (vol) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.volume = vol;\n });\n watch(muted, (mute) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.muted = mute;\n });\n watch(rate, (rate2) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.playbackRate = rate2;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = resolveUnref(options.tracks);\n const el = resolveUnref(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = resolveUnref(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = resolveUnref(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(resolveUnref(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, \"waiting\", () => waiting.value = true);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n });\n useEventListener(target, \"ratechange\", () => rate.value = resolveUnref(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n volume,\n muted,\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n onSourceError: sourceErrorEvent.on\n };\n}\n\nconst getMapVue2Compat = () => {\n const data = reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n};\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return reactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return reactive(new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n}\n\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n eventFilter\n } = options;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const mouseHandler = (event) => {\n if (type === \"page\") {\n x.value = event.pageX;\n y.value = event.pageY;\n } else if (type === \"client\") {\n x.value = event.clientX;\n y.value = event.clientY;\n } else if (type === \"movement\") {\n x.value = event.movementX;\n y.value = event.movementY;\n }\n sourceType.value = \"mouse\";\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const touch2 = event.touches[0];\n if (type === \"page\") {\n x.value = touch2.pageX;\n y.value = touch2.pageY;\n } else if (type === \"client\") {\n x.value = touch2.clientX;\n y.value = touch2.clientY;\n }\n sourceType.value = \"touch\";\n }\n };\n const mouseHandlerWrapper = (event) => {\n return eventFilter === void 0 ? mouseHandler(event) : eventFilter(() => mouseHandler(event), {});\n };\n const touchHandlerWrapper = (event) => {\n return eventFilter === void 0 ? touchHandler(event) : eventFilter(() => touchHandler(event), {});\n };\n if (window) {\n useEventListener(window, \"mousemove\", mouseHandlerWrapper, { passive: true });\n useEventListener(window, \"dragover\", mouseHandlerWrapper, { passive: true });\n if (touch && type !== \"movement\") {\n useEventListener(window, \"touchstart\", touchHandlerWrapper, { passive: true });\n useEventListener(window, \"touchmove\", touchHandlerWrapper, { passive: true });\n if (resetOnTouchEnds)\n useEventListener(window, \"touchend\", reset, { passive: true });\n }\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch([targetRef, x, y], () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n }, { immediate: true });\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n useEventListener(window, \"mouseup\", onReleased, { passive: true });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"drop\", onReleased, { passive: true });\n useEventListener(window, \"dragend\", onReleased, { passive: true });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n useEventListener(window, \"touchend\", onReleased, { passive: true });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$1(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n }, { immediate: true });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst useNavigatorLanguage = (options = {}) => {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n};\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(new Date());\n const update = () => now.value = new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return __spreadValues$7({\n now\n }, controls);\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(() => unref(object), (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n }, { immediate: true });\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (isFunction(value) || isReadonly(value))\n return computed(() => clamp(resolveUnref(value), resolveUnref(min), resolveUnref(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, resolveUnref(min), resolveUnref(max));\n },\n set(value2) {\n _value.value = clamp(value2, resolveUnref(min), resolveUnref(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Infinity,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Infinity);\n const pageCount = computed(() => Math.max(1, Math.ceil(unref(total) / unref(currentPageSize))));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page))\n syncRef(page, currentPage);\n if (isRef(pageSize))\n syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n useEventListener(target, \"pointerdown\", handler, { passive: true });\n useEventListener(target, \"pointermove\", handler, { passive: true });\n useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n }\n return __spreadProps$1(__spreadValues$6({}, toRefs(state)), {\n isInside\n });\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nvar SwipeDirection;\n(function(SwipeDirection2) {\n SwipeDirection2[\"UP\"] = \"UP\";\n SwipeDirection2[\"RIGHT\"] = \"RIGHT\";\n SwipeDirection2[\"DOWN\"] = \"DOWN\";\n SwipeDirection2[\"LEFT\"] = \"LEFT\";\n SwipeDirection2[\"NONE\"] = \"NONE\";\n})(SwipeDirection || (SwipeDirection = {}));\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return diffY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, \"touchend\", onTouchEnd, listenerOptions),\n useEventListener(target, \"touchcancel\", onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = resolveRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return distanceY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(resolveRef(value), (_, oldValue) => {\n previous.value = oldValue;\n }, { flush: \"sync\" });\n return readonly(previous);\n}\n\nconst useScreenOrientation = (options = {}) => {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n};\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = resolveUnref(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientHeight < ele.scrollHeight || style.overflowY === \"auto\" && ele.clientWidth < ele.scrollWidth) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(resolveRef(element), (el) => {\n if (el) {\n const ele = el;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const ele = resolveUnref(element);\n if (!ele || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(ele, \"touchmove\", (e) => {\n preventDefault(e);\n }, { passive: false });\n }\n ele.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const ele = resolveUnref(element);\n if (!ele || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n ele.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = __spreadValues$5(__spreadValues$5({}, resolveUnref(shareOptions)), resolveUnref(overrideOptions));\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...unref(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(unref(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = resolveRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = unref(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = unref(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = resolveRef(text || \"\");\n const lang = resolveRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = unref(lang);\n utterance2.voice = unref(options.voice) || null;\n utterance2.pitch = pitch;\n utterance2.rate = rate;\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = resolveUnref(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = __spreadValues$4(__spreadValues$4({}, rawInit), value);\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => setTimeout(() => read(e), 0));\n if (storage) {\n watchWithFilter(data, async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n }, {\n flush,\n deep,\n eventFilter\n });\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.type = \"text/css\";\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(cssRef, (value) => {\n el.textContent = value;\n }, { immediate: true });\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(document.querySelector(selector), () => dir.value = getValue(), { attributes: true });\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n const ranges = new Array(rangeCount);\n for (let i = 0; i < rangeCount; i++) {\n const range = selection.getRangeAt(i);\n ranges[i] = range;\n }\n return ranges;\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n textarea.value.style.height = \"1px\";\n textarea.value.style.height = `${(_a = textarea.value) == null ? void 0 : _a.scrollHeight}px`;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], triggerResize, { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, __spreadProps(__spreadValues$3({}, options), { eventFilter: filter }));\n return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Infinity, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nconst DEFAULT_FORMATTER = (date) => date.toISOString().slice(0, 10);\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n const timeAgo = computed(() => formatTimeAgo(new Date(resolveUnref(time)), options, unref(now.value)));\n if (exposeControls) {\n return __spreadValues$2({\n timeAgo\n }, controls);\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval);\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$1({\n timestamp: ts\n }, controls);\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = resolveRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && isFunction(newTitle);\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return isFunction(template) ? template(t) : unref(template).replace(/%s/g, t);\n }\n watch(title, (t, o) => {\n if (t !== o && document)\n document.title = format(isString(t) ? t : \"\");\n }, { immediate: true });\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver((_b = document.head) == null ? void 0 : _b.querySelector(\"title\"), () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n }, { childList: true });\n }\n return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = __spreadValues({\n linear: identity\n}, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction useTransition(source, options = {}) {\n const {\n delay = 0,\n disabled = false,\n duration = 1e3,\n onFinished = noop,\n onStarted = noop,\n transition = identity\n } = options;\n const currentTransition = computed(() => {\n const t = unref(transition);\n return isFunction(t) ? t : createEasingFunction(t);\n });\n const sourceValue = computed(() => {\n const s = unref(source);\n return isNumber(s) ? s : s.map(unref);\n });\n const sourceVector = computed(() => isNumber(sourceValue.value) ? [sourceValue.value] : sourceValue.value);\n const outputVector = ref(sourceVector.value.slice(0));\n let currentDuration;\n let diffVector;\n let endAt;\n let startAt;\n let startVector;\n const { resume, pause } = useRafFn(() => {\n const now = Date.now();\n const progress = clamp(1 - (endAt - now) / currentDuration, 0, 1);\n outputVector.value = startVector.map((val, i) => {\n var _a;\n return val + ((_a = diffVector[i]) != null ? _a : 0) * currentTransition.value(progress);\n });\n if (progress >= 1) {\n pause();\n onFinished();\n }\n }, { immediate: false });\n const start = () => {\n pause();\n currentDuration = unref(duration);\n diffVector = outputVector.value.map((n, i) => {\n var _a, _b;\n return ((_a = sourceVector.value[i]) != null ? _a : 0) - ((_b = outputVector.value[i]) != null ? _b : 0);\n });\n startVector = outputVector.value.slice(0);\n startAt = Date.now();\n endAt = startAt + currentDuration;\n resume();\n onStarted();\n };\n const timeout = useTimeoutFn(start, delay, { immediate: false });\n watch(sourceVector, () => {\n if (unref(disabled))\n return;\n if (unref(delay) <= 0)\n start();\n else\n timeout.start();\n }, { deep: true });\n watch(() => unref(disabled), (v) => {\n if (v) {\n outputVector.value = sourceVector.value.slice(0);\n pause();\n }\n });\n return computed(() => {\n const targetVector = unref(disabled) ? sourceVector : outputVector;\n return isNumber(sourceValue.value) ? targetVector.value[0] : targetVector.value;\n });\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(state, () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n }, { deep: true });\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(window.history.state, window.document.title, window.location.pathname + constructQuery(params));\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const videoDeviceId = ref(options.videoDeviceId);\n const audioDeviceId = ref(options.audioDeviceId);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(device) {\n if (device.value === \"none\" || device.value === false)\n return false;\n if (device.value == null)\n return true;\n return {\n deviceId: device.value\n };\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(videoDeviceId),\n audio: getDeviceOptions(audioDeviceId)\n });\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n watch([videoDeviceId, audioDeviceId], () => {\n if (autoSwitch.value && stream.value)\n restart();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n videoDeviceId,\n audioDeviceId,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = eventName || event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : isFunction(clone) ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n watch(() => props[key], (v) => proxy.value = cloneFn(v));\n watch(proxy, (v) => {\n if (v !== props[key] || deep)\n _emit(event, v);\n }, { deep });\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n _emit(event, value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props)\n ret[key] = useVModel(props, key, emit, options);\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = resolveRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(vibrate, interval, {\n immediate: false,\n immediateCallback: false\n });\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nconst useWakeLock = (options = {}) => {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n};\n\nconst useWebNotification = (defaultOptions = {}) => {\n const {\n window = defaultWindow\n } = defaultOptions;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const notification = ref(null);\n const requestPermission = async () => {\n if (!isSupported.value)\n return;\n if (\"permission\" in Notification && Notification.permission !== \"denied\")\n await Notification.requestPermission();\n };\n const onClick = createEventHook();\n const onShow = createEventHook();\n const onError = createEventHook();\n const onClose = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value)\n return;\n await requestPermission();\n const options = Object.assign({}, defaultOptions, overrides);\n notification.value = new Notification(options.title || \"\", options);\n notification.value.onclick = (event) => onClick.trigger(event);\n notification.value.onshow = (event) => onShow.trigger(event);\n notification.value.onerror = (event) => onError.trigger(event);\n notification.value.onclose = (event) => onClose.trigger(event);\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n tryOnMounted(async () => {\n if (isSupported.value)\n await requestPermission();\n });\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n};\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = resolveRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const close = (code = 1e3, reason) => {\n if (!wsRef.value)\n return;\n explicitlyClosed = true;\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(() => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n }, pongTimeout);\n }, interval, { immediate: false });\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(window, \"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = function post2(val) {\n if (!worker.value)\n return;\n worker.value.postMessage(val);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (isString(arg0))\n worker.value = new Worker(arg0, workerOptions);\n else if (isFunction(arg0))\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nconst jobRunner = (userFunc) => (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n};\n\nconst depsParser = (deps) => {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n};\n\nconst createWorkerBlobUrl = (fn, deps) => {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n};\n\nconst useWebWorkerFn = (fn, options = {}) => {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n};\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const x = ref(window.scrollX);\n const y = ref(window.scrollY);\n useEventListener(window, \"scroll\", () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n }, {\n capture: false,\n passive: true\n });\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Infinity,\n initialHeight = Infinity,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation)\n useEventListener(\"orientationchange\", update, { passive: true });\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, SwipeDirection, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n", "/**\n * name: @tresjs/core\n * version: v2.0.0-beta.5\n * (c) 2023\n * description: Declarative ThreeJS using Vue Components\n * author: Alvaro Saburido (https://github.com/alvarosabu/)\n */\nimport { ref as S, watchEffect as ce, toRef as _e, shallowRef as ue, toRefs as fe, computed as le, watch as W, shallowReactive as de, provide as Se, inject as Oe, onUnmounted as pe, createRenderer as ke, defineComponent as me, onMounted as je, h as k } from \"vue\";\nimport * as ve from \"three\";\nimport { MathUtils as De, PerspectiveCamera as F, OrthographicCamera as Ie, Clock as ge, Color as H, sRGBEncoding as Be, ACESFilmicToneMapping as ze, PCFSoftShadowMap as Fe, PCFShadowMap as Ge, LinearEncoding as te, NoToneMapping as ae, WebGLRenderer as Ve, LoadingManager as Ue, TextureLoader as We, Raycaster as He, Vector2 as Ye, BufferAttribute as $e } from \"three\";\nimport { createEventHook as q, useRafFn as Ne, resolveUnref as l, useWindowSize as qe, useElementSize as Ke, useDevicePixelRatio as Je, unrefElement as Y, isFunction as ne, useEventListener as Xe } from \"@vueuse/core\";\nconst he = S({ uuid: De.generateUUID() }), we = (e) => void Object.assign(he.value, e);\nvar Qe = /* @__PURE__ */ ((e) => (e.Perspective = \"Perspective\", e.Orthographic = \"Orthographic\", e))(Qe || {});\nconst Ze = 45;\nlet _;\nfunction N() {\n const { state: e, setState: t, aspectRatio: o } = D();\n function a(i = \"Perspective\", c) {\n var u, f, m;\n if (i === \"Perspective\") {\n const { near: d, far: P, fov: g } = c || {\n near: 0.1,\n far: 1e3,\n fov: Ze\n };\n _ = new F(g, ((u = e.aspectRatio) == null ? void 0 : u.value) || window.innerWidth / window.innerHeight, d, P), (f = e.cameras) == null || f.push(_);\n } else {\n const { left: d, right: P, top: g, bottom: R, near: w, far: p } = c || {\n left: -100,\n right: 100,\n top: 100,\n bottom: -100,\n near: 0.1,\n far: 1e3\n };\n _ = new Ie(d, P, g, R, w, p), (m = e.cameras) == null || m.push(_);\n }\n return e.camera = _, t(\"camera\", e.camera), _;\n }\n function n() {\n var i;\n e.camera instanceof F && e.aspectRatio && (e.camera.aspect = e.aspectRatio.value), (i = e.camera) == null || i.updateProjectionMatrix();\n }\n function r(i) {\n var c;\n (c = e.cameras) == null || c.push(i), i instanceof F && e.aspectRatio && (i.aspect = e.aspectRatio.value), i.updateProjectionMatrix(), t(\"camera\", i);\n }\n function s() {\n e.cameras = [];\n }\n return ce(() => {\n o != null && o.value && n();\n }), {\n activeCamera: _e(e, \"camera\"),\n createCamera: a,\n updateCamera: n,\n pushCamera: r,\n clearCameras: s\n };\n}\nconst be = q(), ye = q(), K = q(), j = new ge();\nlet G = 0, V = 0;\nconst { pause: et, resume: tt, isActive: at } = Ne(\n () => {\n be.trigger({ delta: G, elapsed: V, clock: j }), ye.trigger({ delta: G, elapsed: V, clock: j }), K.trigger({ delta: G, elapsed: V, clock: j });\n },\n { immediate: !1 }\n);\nK.on(() => {\n G = j.getDelta(), V = j.getElapsedTime();\n});\nfunction Me() {\n return {\n onBeforeLoop: be.on,\n onLoop: ye.on,\n onAfterLoop: K.on,\n pause: et,\n resume: tt,\n isActive: at\n };\n}\nfunction nt(e) {\n return e instanceof H ? e : Array.isArray(e) ? new H(...e) : new H(e);\n}\nconst $ = {\n realistic: {\n outputEncoding: Be,\n toneMapping: ze,\n toneMappingExposure: 3,\n shadowMap: {\n enabled: !0,\n type: Fe\n }\n }\n}, xe = (e, t) => {\n for (const o of Object.keys(t))\n t[o] instanceof Object && Object.assign(t[o], xe(e[o], t[o]));\n return Object.assign(e || {}, t), e;\n}, rt = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\", ot = /* @__PURE__ */ it(rt);\nfunction z(e) {\n return e.replace(/-([a-z])/g, (t, o) => o.toUpperCase());\n}\nfunction it(e, t) {\n const o = /* @__PURE__ */ Object.create(null), a = e.split(\",\");\n for (let n = 0; n < a.length; n++)\n o[a[n]] = !0;\n return t ? (n) => !!o[n.toLowerCase()] : (n) => !!o[n];\n}\nfunction st(e) {\n var Z, ee;\n const t = ue(), o = S(!1), {\n alpha: a = !0,\n antialias: n = !0,\n depth: r,\n logarithmicDepthBuffer: s,\n failIfMajorPerformanceCaveat: i,\n precision: c,\n premultipliedAlpha: u,\n stencil: f,\n shadows: m = !1,\n shadowMapType: d = Ge,\n physicallyCorrectLights: P = !1,\n useLegacyLights: g = !1,\n outputEncoding: R = te,\n toneMapping: w = ae,\n toneMappingExposure: p = 1,\n context: x = void 0,\n powerPreference: b = \"default\",\n preserveDrawingBuffer: y = !1,\n clearColor: M,\n windowSize: E = !1,\n preset: L = void 0\n } = fe(e), { state: h, setState: T } = D(), { width: C, height: O } = l(E) == !0 || l(E) === \"\" || l(E) === \"true\" ? qe() : Ke(h.container), { logError: B, logWarning: Pe } = I(), { pixelRatio: J } = Je(), { pause: Re, resume: Le } = Me(), U = le(() => C.value / O.value);\n !l(E) && ((ee = (Z = h.container) == null ? void 0 : Z.value) == null ? void 0 : ee.offsetHeight) === 0 && Pe(`Oops... Seems like your canvas height is currently 0px, by default it takes the height of it's parent, so make sure it has some height with CSS.\nYou could set windowSize=true to force the canvas to be the size of the window.`);\n const X = () => {\n t.value && (t.value.setSize(C.value, O.value), t.value.setPixelRatio(Math.min(J.value, 2)));\n }, Q = () => {\n if (!t.value)\n return;\n const A = l(L);\n if (A) {\n A in $ || B(\"Renderer Preset must be one of these: \" + Object.keys($).join(\", \")), xe(t.value, $[A]);\n return;\n }\n t.value.shadowMap.enabled = l(m), t.value.shadowMap.type = l(d), t.value.toneMapping = l(w) || ae, t.value.toneMappingExposure = l(p), t.value.outputEncoding = l(R) || te, M != null && M.value && t.value.setClearColor(nt(l(M))), t.value.useLegacyLights = l(g);\n }, Te = () => {\n const A = Y(h.canvas);\n A && (t.value = new Ve({\n canvas: A,\n alpha: l(a),\n antialias: l(n),\n context: l(x),\n depth: l(r),\n failIfMajorPerformanceCaveat: l(i),\n logarithmicDepthBuffer: l(s),\n powerPreference: l(b),\n precision: l(c),\n stencil: l(f),\n preserveDrawingBuffer: l(y),\n premultipliedAlpha: l(u)\n }), T(\"renderer\", t.value), T(\"clock\", new ge()), T(\"aspectRatio\", U), Q(), X(), Le(), o.value = !0);\n }, Ae = () => {\n t.value && (t.value.dispose(), t.value = void 0, o.value = !1, Re());\n };\n return W([U, J], X), W(\n [m, d, R, g, w, p, M],\n Q\n ), W(\n () => [h.canvas, h.container],\n () => {\n Y(h.canvas) && Y(h.container) && Te();\n },\n { immediate: !0, deep: !0 }\n ), {\n renderer: t,\n isReady: o,\n dispose: Ae,\n aspectRatio: U\n };\n}\nconst Ee = (e) => !!e && e.constructor === Array;\nfunction ct(e) {\n const t = { nodes: {}, materials: {} };\n return e && e.traverse((o) => {\n o.name && (t.nodes[o.name] = o), o.material && !t.materials[o.material.name] && (t.materials[o.material.name] = o.material);\n }), t;\n}\nasync function Et(e, t, o, a, n) {\n const { logError: r } = I(), s = new e();\n n && n(s), o && o(s);\n const c = (Array.isArray(t) ? t : [t]).map(\n (u) => new Promise((f, m) => {\n s.load(\n u,\n (d) => {\n d.scene && Object.assign(d, ct(d.scene)), f(d);\n },\n a,\n (d) => m(r(\"[useLoader] - Failed to load resource\", d))\n );\n })\n );\n return Ee(t) ? await Promise.all(c) : await c[0];\n}\nasync function Ct(e) {\n const t = new Ue(), o = new We(t), a = (n) => new Promise((r, s) => {\n o.load(\n n,\n (i) => r(i),\n () => null,\n () => {\n s(new Error(\"[useTextures] - Failed to load texture\"));\n }\n );\n });\n if (Ee(e)) {\n const n = await Promise.all(e.map((r) => a(r)));\n return e.length > 1 ? n : n[0];\n } else {\n const {\n map: n,\n displacementMap: r,\n normalMap: s,\n roughnessMap: i,\n metalnessMap: c,\n aoMap: u,\n alphaMap: f,\n matcap: m\n } = e;\n return {\n map: n ? await a(n) : null,\n displacementMap: r ? await a(r) : null,\n normalMap: s ? await a(s) : null,\n roughnessMap: i ? await a(i) : null,\n metalnessMap: c ? await a(c) : null,\n aoMap: u ? await a(u) : null,\n alphaMap: f ? await a(f) : null,\n matcap: m ? await a(m) : null\n };\n }\n}\nconst v = [\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"0a\", \"0b\", \"0c\", \"0d\", \"0e\", \"0f\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"1a\", \"1b\", \"1c\", \"1d\", \"1e\", \"1f\", \"20\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"27\", \"28\", \"29\", \"2a\", \"2b\", \"2c\", \"2d\", \"2e\", \"2f\", \"30\", \"31\", \"32\", \"33\", \"34\", \"35\", \"36\", \"37\", \"38\", \"39\", \"3a\", \"3b\", \"3c\", \"3d\", \"3e\", \"3f\", \"40\", \"41\", \"42\", \"43\", \"44\", \"45\", \"46\", \"47\", \"48\", \"49\", \"4a\", \"4b\", \"4c\", \"4d\", \"4e\", \"4f\", \"50\", \"51\", \"52\", \"53\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"5a\", \"5b\", \"5c\", \"5d\", \"5e\", \"5f\", \"60\", \"61\", \"62\", \"63\", \"64\", \"65\", \"66\", \"67\", \"68\", \"69\", \"6a\", \"6b\", \"6c\", \"6d\", \"6e\", \"6f\", \"70\", \"71\", \"72\", \"73\", \"74\", \"75\", \"76\", \"77\", \"78\", \"79\", \"7a\", \"7b\", \"7c\", \"7d\", \"7e\", \"7f\", \"80\", \"81\", \"82\", \"83\", \"84\", \"85\", \"86\", \"87\", \"88\", \"89\", \"8a\", \"8b\", \"8c\", \"8d\", \"8e\", \"8f\", \"90\", \"91\", \"92\", \"93\", \"94\", \"95\", \"96\", \"97\", \"98\", \"99\", \"9a\", \"9b\", \"9c\", \"9d\", \"9e\", \"9f\", \"a0\", \"a1\", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"aa\", \"ab\", \"ac\", \"ad\", \"ae\", \"af\", \"b0\", \"b1\", \"b2\", \"b3\", \"b4\", \"b5\", \"b6\", \"b7\", \"b8\", \"b9\", \"ba\", \"bb\", \"bc\", \"bd\", \"be\", \"bf\", \"c0\", \"c1\", \"c2\", \"c3\", \"c4\", \"c5\", \"c6\", \"c7\", \"c8\", \"c9\", \"ca\", \"cb\", \"cc\", \"cd\", \"ce\", \"cf\", \"d0\", \"d1\", \"d2\", \"d3\", \"d4\", \"d5\", \"d6\", \"d7\", \"d8\", \"d9\", \"da\", \"db\", \"dc\", \"dd\", \"de\", \"df\", \"e0\", \"e1\", \"e2\", \"e3\", \"e4\", \"e5\", \"e6\", \"e7\", \"e8\", \"e9\", \"ea\", \"eb\", \"ec\", \"ed\", \"ee\", \"ef\", \"f0\", \"f1\", \"f2\", \"f3\", \"f4\", \"f5\", \"f6\", \"f7\", \"f8\", \"f9\", \"fa\", \"fb\", \"fc\", \"fd\", \"fe\", \"ff\"];\nfunction ut() {\n const e = Math.random() * 4294967295 | 0, t = Math.random() * 4294967295 | 0, o = Math.random() * 4294967295 | 0, a = Math.random() * 4294967295 | 0;\n return (v[e & 255] + v[e >> 8 & 255] + v[e >> 16 & 255] + v[e >> 24 & 255] + \"-\" + v[t & 255] + v[t >> 8 & 255] + \"-\" + v[t >> 16 & 15 | 64] + v[t >> 24 & 255] + \"-\" + v[o & 63 | 128] + v[o >> 8 & 255] + \"-\" + v[o >> 16 & 255] + v[o >> 24 & 255] + v[a & 255] + v[a >> 8 & 255] + v[a >> 16 & 255] + v[a >> 24 & 255]).toLowerCase();\n}\nconst Ce = Symbol();\nfunction ft() {\n const e = de({\n uuid: ut(),\n camera: void 0,\n cameras: [],\n scene: void 0,\n renderer: void 0,\n aspectRatio: le(() => window.innerWidth / window.innerHeight)\n });\n function t(n) {\n return e[n];\n }\n function o(n, r) {\n e[n] = r;\n }\n const a = {\n state: e,\n ...fe(e),\n getState: t,\n setState: o\n };\n return Se(Ce, a), a;\n}\nconst D = () => Oe(Ce, {\n state: de({\n camera: void 0,\n cameras: [],\n scene: void 0,\n renderer: void 0\n })\n});\nfunction lt() {\n var s;\n const e = ue(new He()), t = S(new Ye()), o = S(null), { setState: a, state: n } = D();\n a(\"raycaster\", e.value), a(\"pointer\", t), a(\"currentInstance\", o);\n function r(i) {\n t.value.x = i.clientX / window.innerWidth * 2 - 1, t.value.y = -(i.clientY / window.innerHeight) * 2 + 1;\n }\n return (s = n == null ? void 0 : n.renderer) == null || s.domElement.addEventListener(\"pointermove\", r), pe(() => {\n var i;\n (i = n == null ? void 0 : n.renderer) == null || i.domElement.removeEventListener(\"pointermove\", r);\n }), {\n raycaster: e,\n pointer: t\n };\n}\nconst Pt = !0, re = \"[TresJS ▲ ■ ●] \";\nfunction I() {\n function e(a, n) {\n console.error(`${re} ${a}`, n || \"\");\n }\n function t(a) {\n console.warn(`${re} ${a}`);\n }\n function o(a, n) {\n }\n return {\n logError: e,\n logWarning: t,\n logMessage: o\n };\n}\nfunction Rt() {\n const { logWarning: e } = I();\n function t(a, n, r) {\n let s = null;\n return a.traverse((i) => {\n i[n] === r && (s = i);\n }), s || e(`Child with ${n} '${r}' not found.`), s;\n }\n function o(a, n) {\n return t(a, \"name\", n);\n }\n return {\n seek: t,\n seekByName: o\n };\n}\nconst dt = /^on[^a-z]/, pt = (e) => dt.test(e);\nlet oe = null;\nconst ie = {\n GEOMETRY_VIA_PROP: \"tres__geometryViaProp\",\n MATERIAL_VIA_PROP: \"tres__materialViaProp\"\n}, { logError: se } = I(), mt = {\n createElement(e, t, o, a) {\n var c, u;\n if (a || (a = {}), a.args || (a.args = []), e === \"template\" || ot(e))\n return null;\n let n = e.replace(\"Tres\", \"\"), r;\n if (e === \"primitive\") {\n (a == null ? void 0 : a.object) === void 0 && se(\"Tres primitives need a prop 'object'\");\n const f = a.object;\n n = f.type, r = Object.assign(f, { type: n, attach: a.attach, primitive: !0 });\n } else {\n const f = he.value[n];\n f || se(`${n} is not defined on the THREE namespace. Use extend to add it to the catalog.`), r = Object.assign(new f(...a.args), { type: n, attach: a.attach });\n }\n if (r.isCamera) {\n a != null && a.position || r.position.set(3, 3, 3), a != null && a.lookAt || r.lookAt(0, 0, 0);\n const { pushCamera: f } = N();\n f(r);\n }\n (a == null ? void 0 : a.attach) === void 0 && (r.isMaterial ? r.attach = \"material\" : r.isBufferGeometry && (r.attach = \"geometry\"));\n const { GEOMETRY_VIA_PROP: s, MATERIAL_VIA_PROP: i } = ie;\n return r.isObject3D && ((c = a == null ? void 0 : a.material) != null && c.isMaterial && (r.userData[i] = !0), (u = a == null ? void 0 : a.geometry) != null && u.isBufferGeometry && (r.userData[s] = !0)), r.events = {}, r;\n },\n insert(e, t) {\n var o, a;\n if (((e == null ? void 0 : e.__vnode.type) === \"TresGroup\" || (e == null ? void 0 : e.__vnode.type) === \"TresObject3D\") && t === null && !((a = (o = e == null ? void 0 : e.__vnode) == null ? void 0 : o.ctx) != null && a.asyncResolved)) {\n oe = e;\n return;\n }\n t || (t = oe), e != null && e.isObject3D && (t != null && t.isObject3D) ? (t.add(e), e.dispatchEvent({ type: \"added\" })) : typeof (e == null ? void 0 : e.attach) == \"string\" && (e.__previousAttach = e[t == null ? void 0 : t.attach], t && (t[e.attach] = e));\n },\n remove(e) {\n var t, o;\n if (e) {\n if (e.isObject3D) {\n const a = e, n = (r) => {\n var c, u;\n const { GEOMETRY_VIA_PROP: s, MATERIAL_VIA_PROP: i } = ie;\n r.userData[i] || (c = r.material) == null || c.dispose(), r.userData[s] || (u = r.geometry) == null || u.dispose();\n };\n a.traverse((r) => n(r)), n(a);\n }\n (t = e.removeFromParent) == null || t.call(e), (o = e.dispose) == null || o.call(e);\n }\n },\n patchProp(e, t, o, a) {\n if (e) {\n let n = e, r = t, s = z(r), i = n == null ? void 0 : n[s];\n if (n.type === \"BufferGeometry\") {\n n.setAttribute(\n z(r),\n new $e(...a)\n );\n return;\n }\n if (r.includes(\"-\") && i === void 0) {\n const u = r.split(\"-\");\n i = u.reduce((f, m) => f[z(m)], n), r = u.pop(), s = r.toLowerCase(), i != null && i.set || (n = u.reduce((f, m) => f[z(m)], n));\n }\n pt(r) && (e.events[r] = a);\n let c = a;\n if (c === \"\" && (c = !0), ne(i)) {\n Array.isArray(c) ? e[s](...c) : e[s](c);\n return;\n }\n !(i != null && i.set) && !ne(i) ? n[s] = c : i.constructor === c.constructor && (i != null && i.copy) ? i == null || i.copy(c) : Array.isArray(c) ? i.set(...c) : !i.isColor && i.setScalar ? i.setScalar(c) : i.set(c);\n }\n },\n parentNode(e) {\n return (e == null ? void 0 : e.parent) || null;\n },\n createText: () => void 0,\n createComment: () => void 0,\n setText: () => void 0,\n setElementText: () => void 0,\n nextSibling: () => void 0,\n querySelector: () => void 0,\n setScopeId: () => void 0,\n cloneNode: () => void 0,\n insertStaticContent: () => void 0\n}, { createApp: vt } = ke(mt), gt = (e) => {\n const t = vt(o);\n function o() {\n return e && e.default ? e.default() : [];\n }\n return t;\n};\nwe(ve);\nconst { logWarning: ht } = I(), wt = me({\n name: \"TresScene\",\n props: [\n \"shadows\",\n \"shadowMapType\",\n \"physicallyCorrectLights\",\n \"useLegacyLights\",\n \"outputEncoding\",\n \"toneMapping\",\n \"toneMappingExposure\",\n \"context\",\n \"powerPreference\",\n \"preserveDrawingBuffer\",\n \"clearColor\",\n \"windowSize\",\n \"preset\"\n ],\n setup(e, { slots: t, expose: o }) {\n e.physicallyCorrectLights === !0 && ht(\"physicallyCorrectLights is deprecated, useLegacyLights is now false by default\");\n const a = S(), n = S(), r = new ve.Scene(), { setState: s } = D();\n s(\"scene\", r), s(\"canvas\", n), s(\"container\", a);\n const { pushCamera: i } = N();\n i(new F()), je(() => {\n c();\n }), pe(() => {\n s(\"renderer\", null);\n });\n function c() {\n const { renderer: m } = st(e), { activeCamera: d } = N(), { onLoop: P } = Me(), { raycaster: g, pointer: R } = lt();\n let w = null, p = null;\n ce(() => {\n d.value && g.value.setFromCamera(R.value, d.value);\n }), P(() => {\n var x, b, y, M, E, L, h, T, C, O;\n if (d.value && ((x = m.value) == null || x.render(r, d.value)), g.value) {\n const B = g.value.intersectObjects(r.children);\n B.length > 0 ? (p = B[0], w === null && ((M = (y = (b = p.object) == null ? void 0 : b.events) == null ? void 0 : y.onPointerEnter) == null || M.call(y, p)), (h = (L = (E = p.object) == null ? void 0 : E.events) == null ? void 0 : L.onPointerMove) == null || h.call(L, p)) : w !== null && ((O = (C = (T = p == null ? void 0 : p.object) == null ? void 0 : T.events) == null ? void 0 : C.onPointerLeave) == null || O.call(C, w), p = null), w = p;\n }\n }), Xe(n.value, \"click\", () => {\n var x, b, y;\n p !== null && ((y = (b = (x = p.object) == null ? void 0 : x.events) == null ? void 0 : b.onClick) == null || y.call(b, p));\n });\n }\n let u;\n function f() {\n u = gt(t), u.provide(\"useTres\", D()), u.provide(\"extend\", we), u.mount(r);\n }\n return f(), o({\n scene: r\n }), () => k(\n k(\n \"div\",\n {\n ref: a,\n \"data-scene\": r.uuid,\n key: r.uuid,\n style: {\n position: \"relative\",\n width: \"100%\",\n height: \"100%\",\n pointerEvents: \"auto\",\n touchAction: \"none\"\n }\n },\n [\n k(\n \"div\",\n {\n style: {\n width: \"100%\",\n height: \"100%\"\n }\n },\n [\n k(\"canvas\", {\n ref: n,\n \"data-scene\": r.uuid,\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n position: e.windowSize ? \"fixed\" : \"absolute\",\n top: 0,\n left: 0\n }\n })\n ]\n )\n ]\n )\n );\n }\n}), bt = me({\n name: \"TresCanvas\",\n props: [\n \"shadows\",\n \"shadowMapType\",\n \"physicallyCorrectLights\",\n \"useLegacyLights\",\n \"outputEncoding\",\n \"toneMapping\",\n \"toneMappingExposure\",\n \"context\",\n \"powerPreference\",\n \"preserveDrawingBuffer\",\n \"clearColor\",\n \"windowSize\",\n \"preset\"\n ],\n setup(e, { slots: t, expose: o }) {\n const a = ft();\n return o(a), () => k(wt, e, t);\n }\n}), Lt = {\n install(e) {\n e.component(\"TresCanvas\", bt);\n }\n};\nexport {\n Qe as CameraType,\n bt as TresCanvas,\n he as catalogue,\n Lt as default,\n we as extend,\n Pt as isProd,\n ct as trasverseObjects,\n N as useCamera,\n Et as useLoader,\n I as useLogger,\n lt as useRaycaster,\n Me as useRenderLoop,\n st as useRenderer,\n Rt as useSeek,\n Ct as useTexture,\n D as useTres,\n ft as useTresProvider\n};\n"], + "mappings": "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AM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AACzgD,SAAS,KAAK;AACZ,QAAM,IAAI,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", "names": ["_a", "window", "_a", "window", "window", "timestamp", "window", "_a", "window", "h"] } diff --git a/docs/api/composables.md b/docs/api/composables.md index 54466e0c5..8595a1a25 100644 --- a/docs/api/composables.md +++ b/docs/api/composables.md @@ -78,7 +78,7 @@ console.log(isActive) // true The `useLoader` composable allows you to load assets using the [THREE.js loaders](https://threejs.org/docs/#manual/en/introduction/Loading-3D-models). It returns a promise with loaded asset. ```ts -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader' +import { GLTFLoader } from 'three/addons/loaders/GLTFLoader' const { scene } = await useLoader(THREE.GLTFLoader, 'path/to/asset.gltf') ``` diff --git a/docs/examples/load-models.md b/docs/examples/load-models.md index b050b37a2..e78a24084 100644 --- a/docs/examples/load-models.md +++ b/docs/examples/load-models.md @@ -18,7 +18,7 @@ For a detailed explanation of how to use `useLoader`, check out the [useLoader]( ```ts import { useLoader } from '@tresjs/core' -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader' +import { GLTFLoader } from 'three/addons/loaders/GLTFLoader' const { scene } = await useLoader(GLTFLoader, '/models/AkuAku.gltf') ``` diff --git a/docs/examples/load-textures.md b/docs/examples/load-textures.md index a8f58981e..70b1bb817 100644 --- a/docs/examples/load-textures.md +++ b/docs/examples/load-textures.md @@ -16,7 +16,7 @@ For a detailed explanation of how to use `useLoader`, check out the [useLoader]( ```ts import { useLoader } from '@tresjs/core' -import { TextureLoader } from 'three/examples/jsm/loaders/TextureLoader' +import { TextureLoader } from 'three/addons/loaders/TextureLoader' const texture = useLoader(TextureLoader, '/Rock035_2K_Color.jpg') ``` diff --git a/docs/examples/orbit-controls.md b/docs/examples/orbit-controls.md index 09db5ebed..1a60a7c3e 100644 --- a/docs/examples/orbit-controls.md +++ b/docs/examples/orbit-controls.md @@ -4,29 +4,27 @@ [OrbitControls](https://threejs.org/docs/index.html?q=orbit#examples/en/controls/OrbitControls) is a camera controller that allows you to orbit around a target. It's a great way to explore your scene. -However, it is not part of the core of ThreeJS. So to use it you would need to import it from the `three/examples/jsm/controls/OrbitControls` module. +However, it is not part of the core of ThreeJS. So to use it you would need to import it from the `three/addons/controls/OrbitControls` module. This creates a problem because **TresJS** automatically creates a catalog of the core of Three so you can use them as components. -Fortunately, **TresJS** provides a way to extend the catalog of components. You can do it by using the `extend` method using the [useCatalogue](/api/composables#usecatalog) composable. +Fortunately, **TresJS** provides a way to extend the catalog of components. You can do it by using the `extend` method from the core library. For more information about extending your TresJS catalog, refer to the [extending](/advanced/extending.md) section. ## Using OrbitControls -To use `OrbitControls` you need to import it from the `three/examples/jsm/controls/OrbitControls` module. +To use `OrbitControls` you need to import it from the `three/addons/controls/OrbitControls` module. ```js -import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' +import { OrbitControls } from 'three/addons/controls/OrbitControls' ``` -Then you need to extend the catalogue of components using the `extend` method of the [useCatalogue](/api/composables#usecatalog) composable. +Then you need to extend the catalogue of components using the `extend` method. ```js -import { useCatalogue } from '@tresjs/core' -import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' - -const { extend } = useCatalogue() +import { extend } from '@tresjs/core' +import { OrbitControls } from 'three/addons/controls/OrbitControls' extend({ OrbitControls }) ``` @@ -56,10 +54,9 @@ So the final code would be something like this: ```vue + +``` + +To this: + +```vue {7,9-12} +// Correct ✅ + + +``` + +### Cameras need to be before any control 🎥 + +The `TresOrbitControls` component needs to be after the camera in the tree. This is because the controls need to know the camera to work. + +Read more about it here: [Troubleshooting](/guide/troubleshooting.md) + +Change this: + +```vue {3,5} +// Wrong ❌ + +``` + +To this: + +```vue {3,5} +// Correct ✅ + +``` diff --git a/docs/public/controls-before-camera-error.png b/docs/public/controls-before-camera-error.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec04e0372f42bf56c2e3e7531fba442a5d05483 GIT binary patch literal 61726 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
    YkS$B8Yz+NZ@TT2wI3tT^ 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 literal 0 HcmV?d00001 From af06a7ce5a2681e013f95f3b0eceddbb204e90c4 Mon Sep 17 00:00:00 2001 From: alvarosabu Date: Mon, 17 Apr 2023 16:57:55 +0200 Subject: [PATCH 2/2] docs: canvas height troubleshooting --- docs/.vitepress/config.ts | 1 + docs/guide/troubleshooting.md | 114 ++++++++++++++++++++ docs/public/canvas-height-warning.png | Bin 0 -> 20564 bytes docs/public/canvas-height.png | Bin 0 -> 145418 bytes docs/public/failed-to-resolve-component.png | Bin 0 -> 168967 bytes docs/public/no-camera-found.png | Bin 0 -> 8802 bytes src/components/TresScene.ts | 26 ++++- 7 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 docs/guide/troubleshooting.md create mode 100644 docs/public/canvas-height-warning.png create mode 100644 docs/public/canvas-height.png create mode 100644 docs/public/failed-to-resolve-component.png create mode 100644 docs/public/no-camera-found.png diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index e7464c263..daf479bfd 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -20,6 +20,7 @@ export default defineConfig({ { text: 'Introduction', link: '/guide/' }, { text: 'Getting Started', link: '/guide/getting-started' }, { text: 'Your first Scene', link: '/guide/your-first-scene' }, + { text: 'Troubleshooting', link: '/guide/troubleshooting' }, { text: 'Migrate from v1', link: '/guide/migration-guide' }, ], }, diff --git a/docs/guide/troubleshooting.md b/docs/guide/troubleshooting.md new file mode 100644 index 000000000..fafe07e8a --- /dev/null +++ b/docs/guide/troubleshooting.md @@ -0,0 +1,114 @@ +# The hilarious guide of common issues and how to solve them + +![Troubleshooting](https://media.giphy.com/media/LHZyixOnHwDDy/giphy.gif) + +Welcome to **TresJS v2 troubleshooting guide**. Where 3D stands for _"Dazzlingly Delightful Difficulties"_! We know 3D can be as complex as a tangled ball of yarn 🧶 or as unpredictable as a cat on a keyboard 🐈 ⌨️ , but fear not! + +This guide is intended to help you solve the most common issues that you might encounter when using TresJS v2. + +## I can't see my 3D scene 😭! + +You followed the [Getting started guide](/guide/getting-started.md) but you still can see your scene renderered. + +These are the most common reasons why you might not be able to see your scene: + +### Make sure you have a camera 🎥 + +The first thing you need to do is to make sure you have a camera in your scene. If you don't have a camera, you won't be able to see anything. + +![No camera found](/no-camera-found.png) + +```vue + + + + +``` + +```vue + + + + + +``` + +### Check the height of your canvas 📏 + +Another common issue is that the `TresCanvas` component is creating by default a `canvas` element takes the `width` and `height` of the parent element. If the parent element has no height, the canvas will have no height either. + +![No height found](/canvas-height.png) + +You will also see this error in the console: + +![Canvas height warning](/canvas-height-warning.png) + +A easy way to fix this is to set the height of the parent element to `100%`: + +```css +html, +body { + margin: 0; + padding: 0; + height: 100%; + width: 100%; +} +#app { + height: 100%; + width: 100%; + background-color: #000; +} +``` + +Or you can set the `window-size` prop of the `TresCanvas` component: + +```vue + + + + +``` + +## Failed resolve component: TresComponent... 🤔 + +![](/failed-to-resolve-component.png) + +Since **TresJS v2** is using a Vue Custom Renderer inside of the main Vue App instance, the core Vue renderer that acts as parent is not going to recognize the components inside of `TresCanvas` component. Even if it doesn't affect the rendering, it will show a warning in the console. + +![](/failed-to-resolve-component.png) + +At this moment, there is no native Vue support to define the renderer used on the `