@ndmspc/ndmvr-core 1.0.1 → 1.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +473 -461
- package/dist/index.umd.js +6 -6
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -5,9 +5,9 @@ var Rt = (n) => {
|
|
|
5
5
|
var be = (n, t, e) => t in n ? we(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
|
|
6
6
|
var m = (n, t, e) => be(n, typeof t != "symbol" ? t + "" : t, e), Kt = (n, t, e) => t.has(n) || Rt("Cannot " + e);
|
|
7
7
|
var w = (n, t, e) => (Kt(n, t, "read from private field"), e ? e.call(n) : t.get(n)), q = (n, t, e) => t.has(n) ? Rt("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, e), I = (n, t, e, A) => (Kt(n, t, "write to private field"), A ? A.call(n, e) : t.set(n, e), e);
|
|
8
|
-
import { ReplaySubject as ft, Subject as ne, BehaviorSubject as Lt, filter as ct, concatMap as
|
|
9
|
-
import { openFile as Be, parse as
|
|
10
|
-
import { Vector3 as H, Color as X, Vector2 as oe, Raycaster as Me, BoxGeometry as
|
|
8
|
+
import { ReplaySubject as ft, Subject as ne, BehaviorSubject as Lt, filter as ct, concatMap as ye, from as ve, finalize as xe, EMPTY as Ce } from "rxjs";
|
|
9
|
+
import { openFile as Be, parse as $t, makeImage as De, create as ze, build3d as re } from "jsroot";
|
|
10
|
+
import { Vector3 as H, Color as X, Vector2 as oe, Raycaster as Me, BoxGeometry as vt, EdgesGeometry as _t, InstancedBufferGeometry as xt, InstancedBufferAttribute as L, LineSegments as te, ShaderMaterial as ce, Mesh as Ct, Object3D as Oe, Box3 as Bt, PlaneGeometry as ae, MeshBasicMaterial as le, DoubleSide as he, TextureLoader as He, Loader as Pe, FileLoader as Ye, ShapePath as qe, Group as ue } from "three";
|
|
11
11
|
class Ot {
|
|
12
12
|
constructor(t, e, A, s) {
|
|
13
13
|
this.url = t, this.ws = null, this.channel = A, e && this.connect(), this.initTime = Date.now(), this.timeout = s || 6e4, this.timeFlag = !0;
|
|
@@ -227,7 +227,7 @@ class Te {
|
|
|
227
227
|
if (t === 0)
|
|
228
228
|
return w(this, Mt).readObject("hMap");
|
|
229
229
|
{
|
|
230
|
-
let s = w(this, wt).reduce((i,
|
|
230
|
+
let s = w(this, wt).reduce((i, r) => i * r, 1);
|
|
231
231
|
for (let i = 0; i <= t; i++)
|
|
232
232
|
s /= w(this, wt)[i];
|
|
233
233
|
}
|
|
@@ -243,50 +243,50 @@ class Te {
|
|
|
243
243
|
const A = e.fXaxis.fNbins * e.fYaxis.fNbins * e.fZaxis.fNbins;
|
|
244
244
|
let s = [];
|
|
245
245
|
s.push(A);
|
|
246
|
-
const i = async (c,
|
|
247
|
-
for (const
|
|
246
|
+
const i = async (c, o) => {
|
|
247
|
+
for (const l of Object.keys(e.children))
|
|
248
248
|
for (let u = 0; u < c.length; u += 100) {
|
|
249
249
|
const d = [], g = Math.min(u + 100, c.length);
|
|
250
250
|
for (let p = u; p < g; p++)
|
|
251
|
-
d.push(
|
|
251
|
+
d.push(o.readObject(`content/${c[p].fName}/${l}`));
|
|
252
252
|
console.log(`Processing batch: ${u} to ${g - 1} (${d.length} items)`), await Promise.all(d);
|
|
253
253
|
}
|
|
254
|
-
return console.log("done"), c.forEach((
|
|
254
|
+
return console.log("done"), c.forEach((l) => {
|
|
255
255
|
}), s;
|
|
256
|
-
},
|
|
257
|
-
return (await t.readObject(`content/${
|
|
256
|
+
}, r = await t.readObject("content");
|
|
257
|
+
return (await t.readObject(`content/${r.fKeys[0].fName}`)).fKeys.forEach((c) => {
|
|
258
258
|
e.children[c.fName] = [];
|
|
259
|
-
}), console.log(e), i(
|
|
259
|
+
}), console.log(e), i(r.fKeys, t), s;
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
Dt = new WeakMap(), zt = new WeakMap(), Mt = new WeakMap(), wt = new WeakMap();
|
|
263
263
|
function We(n, t, e, { scale: A, padding: s, origin: i }) {
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
const
|
|
267
|
-
let c = 1,
|
|
264
|
+
const r = n.config ?? {};
|
|
265
|
+
r.environment || (r.environment = {}), r.environment.histogramPads || (r.environment.histogramPads = []);
|
|
266
|
+
const a = r.environment.histogramPads;
|
|
267
|
+
let c = 1, o = t.length;
|
|
268
268
|
if (typeof e == "string") {
|
|
269
269
|
const d = e.match(/^grid(\d+)x(\d+)$/i);
|
|
270
|
-
d ? (c = parseInt(d[1], 10),
|
|
270
|
+
d ? (c = parseInt(d[1], 10), o = parseInt(d[2], 10)) : (e === "simple" || e === "flex") && (c = 1, o = t.length);
|
|
271
271
|
}
|
|
272
|
-
c *
|
|
273
|
-
let
|
|
272
|
+
c * o < t.length && (o = Math.ceil(Math.sqrt(t.length)), c = Math.ceil(t.length / o));
|
|
273
|
+
let l = 0, u = 0;
|
|
274
274
|
return t.forEach((d) => {
|
|
275
|
-
const g = i.x + u * (A.x + s.x) + A.x / 2, p = i.y + (c - 1 -
|
|
276
|
-
|
|
275
|
+
const g = i.x + u * (A.x + s.x) + A.x / 2, p = i.y + (c - 1 - l) * (A.y + s.y) + A.y / 2, y = i.z - A.z / 2;
|
|
276
|
+
a.push({
|
|
277
277
|
id: d,
|
|
278
|
-
position: { x: g, y: p, z:
|
|
278
|
+
position: { x: g, y: p, z: y },
|
|
279
279
|
scale: { ...A },
|
|
280
280
|
padding: { ...s },
|
|
281
281
|
origin: { ...i },
|
|
282
282
|
grid: {
|
|
283
|
-
row:
|
|
283
|
+
row: l,
|
|
284
284
|
col: u,
|
|
285
285
|
rows: c,
|
|
286
|
-
cols:
|
|
286
|
+
cols: o,
|
|
287
287
|
disp_kind: e
|
|
288
288
|
}
|
|
289
|
-
}), u++, u >=
|
|
289
|
+
}), u++, u >= o && (u = 0, l++);
|
|
290
290
|
}), n;
|
|
291
291
|
}
|
|
292
292
|
function ke(n) {
|
|
@@ -300,28 +300,28 @@ function ke(n) {
|
|
|
300
300
|
n.bindings.hasOwnProperty(e) || (n.bindings[e] = t[e]);
|
|
301
301
|
return n;
|
|
302
302
|
}
|
|
303
|
-
function
|
|
303
|
+
function jt(n, t = null) {
|
|
304
304
|
const e = typeof n == "string" ? JSON.parse(n) : n;
|
|
305
305
|
function A(c) {
|
|
306
306
|
if (Array.isArray(c)) return c;
|
|
307
307
|
if (c && typeof c == "object" && "type" in c) {
|
|
308
|
-
const
|
|
308
|
+
const o = c.prefix ?? "histogram", h = c.type.match(/grid(\d+)x(\d+)x(\d+)/);
|
|
309
309
|
if (!h) return [c];
|
|
310
|
-
const
|
|
311
|
-
(g.x - p.x * (
|
|
310
|
+
const l = +h[1], u = +h[2], d = +h[3], g = c.scale || { x: 1, y: 1, z: 1 }, p = c.padding || { x: 0, y: 0, z: 0 }, y = c.origin || { x: 0, y: 0, z: 0 }, f = new H(
|
|
311
|
+
(g.x - p.x * (l - 1)) / l,
|
|
312
312
|
(g.y - p.y * (u - 1)) / u,
|
|
313
313
|
(g.z - p.z * (d - 1)) / d
|
|
314
314
|
), b = [];
|
|
315
|
-
let
|
|
316
|
-
for (let
|
|
315
|
+
let x = 1;
|
|
316
|
+
for (let v = 0; v < l; v++)
|
|
317
317
|
for (let B = 0; B < u; B++)
|
|
318
318
|
for (let D = 0; D < d; D++)
|
|
319
319
|
b.push({
|
|
320
|
-
id: `${
|
|
320
|
+
id: `${o}${x++}`,
|
|
321
321
|
position: new H(
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
322
|
+
y.x + v * (f.x + p.x) + f.x / 2,
|
|
323
|
+
y.y + B * (f.y + p.y) + f.y / 2,
|
|
324
|
+
y.z - D * (f.z + p.z) - f.z / 2
|
|
325
325
|
),
|
|
326
326
|
scale: f.clone()
|
|
327
327
|
});
|
|
@@ -330,18 +330,18 @@ function Nt(n, t = null) {
|
|
|
330
330
|
return [c];
|
|
331
331
|
}
|
|
332
332
|
function s(c) {
|
|
333
|
-
const
|
|
333
|
+
const o = {};
|
|
334
334
|
for (const h in c) {
|
|
335
|
-
const
|
|
336
|
-
|
|
335
|
+
const l = c[h];
|
|
336
|
+
l && typeof l == "object" && "x" in l && "y" in l && "z" in l && Object.keys(l).length === 3 ? o[h] = new H(l.x, l.y, l.z) : typeof l == "string" && l.startsWith("0x") ? o[h] = new X(parseInt(l)) : l && typeof l == "object" && !Array.isArray(l) ? o[h] = s(l) : o[h] = l;
|
|
337
337
|
}
|
|
338
|
-
return
|
|
338
|
+
return o;
|
|
339
339
|
}
|
|
340
|
-
function i(c,
|
|
340
|
+
function i(c, o = null, h = null, l = !1) {
|
|
341
341
|
if (Array.isArray(c))
|
|
342
|
-
return
|
|
342
|
+
return l ? c : c.map((u) => i(u, o, c, !1));
|
|
343
343
|
if (c && typeof c == "object") {
|
|
344
|
-
if (
|
|
344
|
+
if (o === "histogramPads")
|
|
345
345
|
return A(c).map((g) => s(g));
|
|
346
346
|
if ("x" in c && "y" in c && "z" in c && Object.keys(c).length === 3)
|
|
347
347
|
return new H(c.x, c.y, c.z);
|
|
@@ -354,18 +354,18 @@ function Nt(n, t = null) {
|
|
|
354
354
|
}
|
|
355
355
|
return typeof c == "string" && c.startsWith("0x") ? new X(parseInt(c)) : c;
|
|
356
356
|
}
|
|
357
|
-
function
|
|
358
|
-
if (!c || Array.isArray(
|
|
359
|
-
return
|
|
357
|
+
function r(c, o) {
|
|
358
|
+
if (!c || Array.isArray(o) || !o || typeof o != "object" || o instanceof H || o instanceof X)
|
|
359
|
+
return o;
|
|
360
360
|
const h = { ...c };
|
|
361
|
-
for (const
|
|
362
|
-
const u = c[
|
|
363
|
-
u && typeof u == "object" && !Array.isArray(u) && !(u instanceof H) && !(u instanceof X) && d && typeof d == "object" && !Array.isArray(d) && !(d instanceof H) && !(d instanceof X) ? h[
|
|
361
|
+
for (const l in o) {
|
|
362
|
+
const u = c[l], d = o[l];
|
|
363
|
+
u && typeof u == "object" && !Array.isArray(u) && !(u instanceof H) && !(u instanceof X) && d && typeof d == "object" && !Array.isArray(d) && !(d instanceof H) && !(d instanceof X) ? h[l] = r(u, d) : h[l] = d;
|
|
364
364
|
}
|
|
365
365
|
return h;
|
|
366
366
|
}
|
|
367
|
-
const
|
|
368
|
-
return
|
|
367
|
+
const a = i(e);
|
|
368
|
+
return r(t, a);
|
|
369
369
|
}
|
|
370
370
|
function Se(n) {
|
|
371
371
|
for (const t in n)
|
|
@@ -374,15 +374,15 @@ function Se(n) {
|
|
|
374
374
|
return !0;
|
|
375
375
|
}
|
|
376
376
|
var K;
|
|
377
|
-
class
|
|
377
|
+
class je {
|
|
378
378
|
constructor(t) {
|
|
379
379
|
q(this, K);
|
|
380
|
-
I(this, K,
|
|
380
|
+
I(this, K, $t(t));
|
|
381
381
|
}
|
|
382
382
|
static async parseJson(t) {
|
|
383
|
-
const e =
|
|
384
|
-
|
|
385
|
-
Array.isArray(i) && i.forEach((
|
|
383
|
+
const e = $t(t), A = (s) => {
|
|
384
|
+
s && typeof s == "object" && (s.children && Se(s.children) ? delete s.children : s.children && Object.values(s.children).forEach((i) => {
|
|
385
|
+
Array.isArray(i) && i.forEach((r) => A(r));
|
|
386
386
|
}));
|
|
387
387
|
};
|
|
388
388
|
return A(e), e;
|
|
@@ -393,10 +393,10 @@ class Ne {
|
|
|
393
393
|
let e = [];
|
|
394
394
|
e.push(t);
|
|
395
395
|
const A = (s, i = 1) => {
|
|
396
|
-
let
|
|
397
|
-
return i >= e.length && e.push(0), Object.entries(s).forEach((
|
|
398
|
-
|
|
399
|
-
|
|
396
|
+
let r = 0;
|
|
397
|
+
return i >= e.length && e.push(0), Object.entries(s).forEach((a, c) => {
|
|
398
|
+
a[1].forEach((o) => {
|
|
399
|
+
o && (r = o.fXaxis.fNbins * o.fYaxis.fNbins * o.fZaxis.fNbins, r > e[i] && (e[i] = r), o.children && A(o.children, i + 1));
|
|
400
400
|
});
|
|
401
401
|
}), e;
|
|
402
402
|
};
|
|
@@ -405,31 +405,31 @@ class Ne {
|
|
|
405
405
|
}
|
|
406
406
|
K = new WeakMap();
|
|
407
407
|
let It;
|
|
408
|
-
var
|
|
408
|
+
var $;
|
|
409
409
|
class Le {
|
|
410
410
|
constructor() {
|
|
411
|
-
q(this,
|
|
411
|
+
q(this, $, /* @__PURE__ */ new Map());
|
|
412
412
|
}
|
|
413
413
|
// id → ReplaySubject(1)
|
|
414
414
|
getStream(t) {
|
|
415
|
-
return w(this,
|
|
415
|
+
return w(this, $).has(t) || w(this, $).set(t, new ft(1)), w(this, $).get(t).asObservable();
|
|
416
416
|
}
|
|
417
417
|
async next(t) {
|
|
418
418
|
if (!t.id) throw new Error("Missing id in event");
|
|
419
419
|
if (console.log(t), typeof t.obj == "string")
|
|
420
420
|
t.obj = await Te.parseFile(t.obj);
|
|
421
421
|
else if (typeof t.obj == "object")
|
|
422
|
-
t.obj = await
|
|
422
|
+
t.obj = await je.parseJson(t.obj), t.opts = t.opts || {}, t.opts.config = jt(t.opts.config);
|
|
423
423
|
else
|
|
424
424
|
throw new Error("Unsupported data type");
|
|
425
|
-
w(this,
|
|
425
|
+
w(this, $).has(t.id) || w(this, $).set(t.id, new ft(1)), w(this, $).get(t.id).next(t);
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
|
-
|
|
428
|
+
$ = new WeakMap();
|
|
429
429
|
const HA = () => (It || (It = new Le()), It);
|
|
430
430
|
let Xt;
|
|
431
431
|
var ut;
|
|
432
|
-
class
|
|
432
|
+
class Ne {
|
|
433
433
|
constructor() {
|
|
434
434
|
q(this, ut);
|
|
435
435
|
I(this, ut, new ft(1));
|
|
@@ -442,7 +442,7 @@ class je {
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
ut = new WeakMap();
|
|
445
|
-
const ge = () => (Xt || (Xt = new
|
|
445
|
+
const ge = () => (Xt || (Xt = new Ne()), Xt), Ue = { environment: { dbClickTimeout: 200, desktopSpeed: 10, vrSpeed: 10, camera: { position: { x: 0, y: 1.7, z: 10 } }, canvas: { position: { x: 0, y: 20, z: -20 }, rotation: { x: 8, y: 0, z: 0 }, scale: { x: 6, y: 5, z: 1 } }, histogramPads: { type: "grid1x1x1", prefix: "histogram", scale: { x: 20, y: 10, z: 10 }, padding: { x: 0, y: 0, z: 0 }, origin: { x: -10, y: 0, z: -5 } } }, histogram: { padding: { default: { x: 0, y: 0, z: 0 }, layer: [], sets: { x: 0, y: 0, z: 0 } }, scale: { default: { min: 0.5, max: 1 }, layer: [] }, sets: { scale: { maximum: "relative" } }, TH1ZScale: { default: 0.8, layer: [1, 1, 1, 1], set: 0.01 }, wireframe: { display: { start: 0, end: 4 }, displaySets: !1, layer: [], color: { default: "0x00FF00", layer: ["0x000000", "0x0000FF", "0x00FF00", "0x00FFFF"], set: [] } }, color: { default: { min: "0x0000ff", max: "0xff0000" }, layer: [], set: [{ min: "0x222222", max: "0xffaa00" }, { min: "0x00ffff", max: "0xff7f00" }, { min: "0x00ff00", max: "0x800080" }, { min: "0x0000ff", max: "0xff0000" }] } }, bindings: { resetHistogram: "r", goToPreviousLayer: "z", hideOutlines: "o" } }, Ze = {
|
|
446
446
|
config: Ue
|
|
447
447
|
};
|
|
448
448
|
let Gt;
|
|
@@ -450,7 +450,7 @@ var U;
|
|
|
450
450
|
class Je {
|
|
451
451
|
constructor() {
|
|
452
452
|
q(this, U);
|
|
453
|
-
I(this, U, new Lt(
|
|
453
|
+
I(this, U, new Lt(jt(Ze, {})));
|
|
454
454
|
}
|
|
455
455
|
getObservable() {
|
|
456
456
|
return w(this, U).asObservable();
|
|
@@ -459,7 +459,7 @@ class Je {
|
|
|
459
459
|
return w(this, U).getValue();
|
|
460
460
|
}
|
|
461
461
|
next(t) {
|
|
462
|
-
const e =
|
|
462
|
+
const e = jt(t, w(this, U).getValue());
|
|
463
463
|
return w(this, U).next(e), e;
|
|
464
464
|
}
|
|
465
465
|
appendPads(t, e, A) {
|
|
@@ -533,7 +533,7 @@ At = new WeakMap(), Z = new WeakMap();
|
|
|
533
533
|
const PA = () => (Qt || (Qt = new Ke()), Qt.getCamera());
|
|
534
534
|
let Ft;
|
|
535
535
|
var W, ot;
|
|
536
|
-
class
|
|
536
|
+
class $e {
|
|
537
537
|
constructor() {
|
|
538
538
|
q(this, W);
|
|
539
539
|
q(this, ot);
|
|
@@ -563,15 +563,15 @@ class _e {
|
|
|
563
563
|
}
|
|
564
564
|
}
|
|
565
565
|
W = new WeakMap(), ot = new WeakMap();
|
|
566
|
-
const $e = () => (Ft || (Ft = new _e()), Ft), ee = "data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAws/8fNABrcJixPQsAAAAASUVORK5CYII=", tA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAACjppQ0NQUGhvdG9zaG9wIElDQyBwcm9maWxlAABIiZ2Wd1RU1xaHz713eqHNMBQpQ++9DSC9N6nSRGGYGWAoAw4zNLEhogIRRUQEFUGCIgaMhiKxIoqFgGDBHpAgoMRgFFFReTOyVnTl5b2Xl98fZ31rn733PWfvfda6AJC8/bm8dFgKgDSegB/i5UqPjIqmY/sBDPAAA8wAYLIyMwJCPcOASD4ebvRMkRP4IgiAN3fEKwA3jbyD6HTw/0malcEXiNIEidiCzclkibhQxKnZggyxfUbE1PgUMcMoMfNFBxSxvJgTF9nws88iO4uZncZji1h85gx2GlvMPSLemiXkiBjxF3FRFpeTLeJbItZMFaZxRfxWHJvGYWYCgCKJ7QIOK0nEpiIm8cNC3ES8FAAcKfErjv+KBZwcgfhSbukZuXxuYpKArsvSo5vZ2jLo3pzsVI5AYBTEZKUw+Wy6W3paBpOXC8DinT9LRlxbuqjI1ma21tZG5sZmXxXqv27+TYl7u0ivgj/3DKL1fbH9lV96PQCMWVFtdnyxxe8FoGMzAPL3v9g0DwIgKepb+8BX96GJ5yVJIMiwMzHJzs425nJYxuKC/qH/6fA39NX3jMXp/igP3Z2TwBSmCujiurHSU9OFfHpmBpPFoRv9eYj/ceBfn8MwhJPA4XN4oohw0ZRxeYmidvPYXAE3nUfn8v5TE/9h2J+0ONciURo+AWqsMZAaoALk1z6AohABEnNAtAP90Td/fDgQv7wI1YnFuf8s6N+zwmXiJZOb+DnOLSSMzhLysxb3xM8SoAEBSAIqUAAqQAPoAiNgDmyAPXAGHsAXBIIwEAVWARZIAmmAD7JBPtgIikAJ2AF2g2pQCxpAE2gBJ0AHOA0ugMvgOrgBboMHYASMg+dgBrwB8xAEYSEyRIEUIFVICzKAzCEG5Ah5QP5QCBQFxUGJEA8SQvnQJqgEKoeqoTqoCfoeOgVdgK5Cg9A9aBSagn6H3sMITIKpsDKsDZvADNgF9oPD4JVwIrwazoML4e1wFVwPH4Pb4Qvwdfg2PAI/h2cRgBARGqKGGCEMxA0JRKKRBISPrEOKkUqkHmlBupBe5CYygkwj71AYFAVFRxmh7FHeqOUoFmo1ah2qFFWNOoJqR/WgbqJGUTOoT2gyWgltgLZD+6Aj0YnobHQRuhLdiG5DX0LfRo+j32AwGBpGB2OD8cZEYZIxazClmP2YVsx5zCBmDDOLxWIVsAZYB2wglokVYIuwe7HHsOewQ9hx7FscEaeKM8d54qJxPFwBrhJ3FHcWN4SbwM3jpfBaeDt8IJ6Nz8WX4RvwXfgB/Dh+niBN0CE4EMIIyYSNhCpCC+ES4SHhFZFIVCfaEoOJXOIGYhXxOPEKcZT4jiRD0ie5kWJIQtJ20mHSedI90isymaxNdiZHkwXk7eQm8kXyY/JbCYqEsYSPBFtivUSNRLvEkMQLSbyklqSL5CrJPMlKyZOSA5LTUngpbSk3KabUOqkaqVNSw1Kz0hRpM+lA6TTpUumj0lelJ2WwMtoyHjJsmUKZQzIXZcYoCEWD4kZhUTZRGiiXKONUDFWH6kNNppZQv6P2U2dkZWQtZcNlc2RrZM/IjtAQmjbNh5ZKK6OdoN2hvZdTlnOR48htk2uRG5Kbk18i7yzPkS+Wb5W/Lf9ega7goZCisFOhQ+GRIkpRXzFYMVvxgOIlxekl1CX2S1hLipecWHJfCVbSVwpRWqN0SKlPaVZZRdlLOUN5r/JF5WkVmoqzSrJKhcpZlSlViqqjKle1QvWc6jO6LN2FnkqvovfQZ9SU1LzVhGp1av1q8+o66svVC9Rb1R9pEDQYGgkaFRrdGjOaqpoBmvmazZr3tfBaDK0krT1avVpz2jraEdpbtDu0J3XkdXx08nSadR7qknWddFfr1uve0sPoMfRS9Pbr3dCH9a30k/Rr9AcMYANrA67BfoNBQ7ShrSHPsN5w2Ihk5GKUZdRsNGpMM/Y3LjDuMH5homkSbbLTpNfkk6mVaappg+kDMxkzX7MCsy6z3831zVnmNea3LMgWnhbrLTotXloaWHIsD1jetaJYBVhtseq2+mhtY823brGestG0ibPZZzPMoDKCGKWMK7ZoW1fb9banbd/ZWdsJ7E7Y/WZvZJ9if9R+cqnOUs7ShqVjDuoOTIc6hxFHumOc40HHESc1J6ZTvdMTZw1ntnOj84SLnkuyyzGXF66mrnzXNtc5Nzu3tW7n3RF3L/di934PGY/lHtUejz3VPRM9mz1nvKy81nid90Z7+3nv9B72UfZh+TT5zPja+K717fEj+YX6Vfs98df35/t3BcABvgG7Ah4u01rGW9YRCAJ9AncFPgrSCVod9GMwJjgouCb4aYhZSH5IbyglNDb0aOibMNewsrAHy3WXC5d3h0uGx4Q3hc9FuEeUR4xEmkSujbwepRjFjeqMxkaHRzdGz67wWLF7xXiMVUxRzJ2VOitzVl5dpbgqddWZWMlYZuzJOHRcRNzRuA/MQGY9czbeJ35f/AzLjbWH9ZztzK5gT3EcOOWciQSHhPKEyUSHxF2JU0lOSZVJ01w3bjX3ZbJ3cm3yXEpgyuGUhdSI1NY0XFpc2imeDC+F15Oukp6TPphhkFGUMbLabvXu1TN8P35jJpS5MrNTQBX9TPUJdYWbhaNZjlk1WW+zw7NP5kjn8HL6cvVzt+VO5HnmfbsGtYa1pjtfLX9j/uhal7V166B18eu612usL1w/vsFrw5GNhI0pG38qMC0oL3i9KWJTV6Fy4YbCsc1em5uLJIr4RcNb7LfUbkVt5W7t32axbe+2T8Xs4mslpiWVJR9KWaXXvjH7puqbhe0J2/vLrMsO7MDs4O24s9Np55Fy6fK88rFdAbvaK+gVxRWvd8fuvlppWVm7h7BHuGekyr+qc6/m3h17P1QnVd+uca1p3ae0b9u+uf3s/UMHnA+01CrXltS+P8g9eLfOq669Xru+8hDmUNahpw3hDb3fMr5talRsLGn8eJh3eORIyJGeJpumpqNKR8ua4WZh89SxmGM3vnP/rrPFqKWuldZachwcFx5/9n3c93dO+J3oPsk42fKD1g/72ihtxe1Qe277TEdSx0hnVOfgKd9T3V32XW0/Gv94+LTa6ZozsmfKzhLOFp5dOJd3bvZ8xvnpC4kXxrpjux9cjLx4qye4p/+S36Urlz0vX+x16T13xeHK6at2V09dY1zruG59vb3Pqq/tJ6uf2vqt+9sHbAY6b9je6BpcOnh2yGnowk33m5dv+dy6fnvZ7cE7y+/cHY4ZHrnLvjt5L/Xey/tZ9+cfbHiIflj8SOpR5WOlx/U/6/3cOmI9cmbUfbTvSeiTB2Ossee/ZP7yYbzwKflp5YTqRNOk+eTpKc+pG89WPBt/nvF8frroV+lf973QffHDb86/9c1Ezoy/5L9c+L30lcKrw68tX3fPBs0+fpP2Zn6u+K3C2yPvGO9630e8n5jP/oD9UPVR72PXJ79PDxfSFhb+BQOY8/wldxZ1AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAHdElNRQffCRYUEDrAP64nAAAgAElEQVR42u19eZBkR33ml5nvqKquvqd7Ds2hAQPqEbIRBtTqlozX2JyOxbEIG+wIb5jLgcIbgAwbXiuC3fVG2F6DwTaHjfEusbYxloE13jUYw4KRZrqnh0OApJmW0D33TM/VZx3vvcz9I4+X+Y6q6umeGQnzIiq6u7rqHfm7v9+RBD8Ex4H9D+G2218IAPj2tx6jjUZjK6X0OUKICULIXiHENkLITkLIVs75KIB+AFUAPiEEQoiIUtoQQiwDOA/gDIDjhJDTQognhRDzQogn+vv7z7zo5ut59prP5oM82x/g61+7P6hUKm8EcDvn/HYAuwkhdSFE+pBEPmbRe/rQ/1MMUfZzhRByFMB+Qsh+3/c/+9KXPa/9Iwa4CsfszBFMTe/TEn8LpfQXhBB3APgxIQQopYaImmBZAuv3CCHgnOc+U/b5LHNkGOUxIcTnKKVfmJredyh7rz9igA0cMwcOY/q2GzXRXwXgHYSQ1wCo2oSwCdONmJ2I3MtnNKNlP6/+bggh/gnAn992+wv/+dnADOSZTPiZA4evA/AOIcR7lN0uWvSO6rsbE/TCKN20QpGGEUIsE0I+LIT48+nbbjxhM/OPGKDLsf++BycppR8SQtxaRpBOaj5rEnplANs/4JznzlF0nh41xEEhxF233f7CuR8xQAcvfubA4Z8F8AcAbs4SpMy+Fzl462GWout0YqQyhim6B/t86jzfBfAfp2+78f89U6IIei0v/o2vf18v1MtmDhz+AYCvZolf5r3rhdWvTkTNnitOOKI4QbMZodmM0G7HSDgH59zxK3rVGNn7sAmfYeCbAXx15sDhH1BKXwYA3/rmD/71aoCDs/M7kyT5JIBXZ6U6a9/LNIJN+Kzqzp6HCwGecERRjLW1FlqtGIQAQeChVg0RhB4opR19h/WYkqxJyTqthJAvCyHePn3bjcf/1THAzIHDfySEeFeZxHZT6TaRs/a6iHGEEEgSjmazjcXFVVy61MAXv/gFAMDrXvsLGB6pYXCwD2How/NYqTPZzbx0Mi0dHNY/nr7txnf/q2CAAwcOTxHg8wC2dVvQLDMUeNqlC59d9DhJ0GpFuHh+BRcuruJv//ZTuG//5wAAP3X7HXjzm96CoeEaRkbqhgnKmLJT2OkwjUhXuBNDq++cJoS8YWp63+wPnQ8wNzuvpf7PCDCjiZ8ltG13s3YUACilOZVq/68sRIwTjqgdY/HSGs6fX8Ff//UnsP/A58GYD8Z87D/wefzVX38CFy6s4NKlVbTbERJ1/qx9tzVQlkFy/gby3+2g7bYJIWYO7H/oz3Qo/EPDAAnnO2ZnjpwA8OtF6jDr5GUlLPueJoDNMJ0+zxOORiPC0lIDf/OZv8Dswf8L36/gbW/9XbztLb8L369g9uD/wd/8zV9gZbmFZjNCEic54toawEYSHQKLPLRsM4bNOEXMQAj59ZkDh09QSnc8qxng3nsf0BDumwCcALDDDq3K4uis96wPbeeLIoNuJoFzjjhO8Pd//3eYmf0CGPNx5zt/Hy94/l48/wV7cec7fx+M+ZiZ/QL+99/fgzjmEAI5BstKvc0E5vokD1bZ92VrrqJnUN/dIYQ4odbuimqDK8IAMwcO4+Uv/3HMzhz5AyHEZ4qQM714ZdJeJCFJkjghWrcIwb4mpcD4+E6Mjz8H7/vNP8ZNN70A1+3cguuu24KbXvgCvO+9f4Lx8b0YH9sJxsrRPpuoWYygyFcoMw/Z57SZ33qGz8zOHPkDhYo+O5xADXnOzhz5JoCXFsGnZVJbhsDlIF4QgJQ7ZVl13Y5iNBttrK01EUUChHDUahVUqwGEAJqtNhprLXAO+D5FrVZBpRIgCBiAYg8+62dk3+uUcMo+i0Dn5yCEfGtqet/LrkRegWwy8Ukcx6Hv+98TQrygTCqMrSTdQylb9XfC+TtdK+EJ4ogjThIILiXX8ygoo6CEII454jgG5wKMUVBK4PkeaEa9l0UDnXIPnbRUJ0i5gOEeaTabL6pUKq2p6X3iGccAszNHQAjpE0IcFUKMFMCghVLUCenLSgWl1EhV2YJ1StYIIcC5ACFuRKEZLbXhFATonGhSS5eVXtvPSZLEeXb7yAJW3RJP6vcLSZLsZoytbpYmIJsl+QAGADxGCNlSxP1FfzueMyl+8G5SoxmjSNLKrtdJWtcj1d0YuoxRe5T4svfPcc5/jFK6tBmaYMMMcFDG+HXO+SlCSL1Q3ZcsTCfidpOIooVaj5notPBlDJQ7dwHjlvk53TRUt0RV5v8rhJDtAFY2qgnoBtU+4ZyHQohH7TKsIi/ddo6K4vWyhSh7ryhz102dOthAxpT0YpJyEQYpjucJIcZEZAGsbtFOds2KfipBexRAqLTv1WeA2ZkjuHVqQhBCHhdCbCu68aK0bdnfnaSu6FxZohYxVxnjlBEl+5kihLKMeLmQDq4j2yl7WBYGd9GM2wA8PjW9T2wkRCQb1ABfA/Az61RfXdV3t8igU3FnJ/ORJByEAPLrQoE96VIQIv0RQsm6M37rqUTqVorWyRcp+PzXp6b3veKqM8DszJEPAXhPL0Te6IJ1+1/xQgGECPi+hzAMEAQe/IDB9zwwj4FSYrQAV7UASSwRwyiK0WpFaLUiRFECzgUo7e5/9HKP67X/PRazfHhqet9dV40BZmeO/CKAe9bz0N0I32u6tdPnhBDo66ug1ieBnDCQ+f1EcIPR97wwCtIVXKDVjtBqRlhdbWJ1tbmuYpEew7t1CUnReSilv3Tr1MTfXVEGmJ05AgDbAZy8EgRcLxPpODzwfQwMVDE4VO+aet1QyKSuubS4isXFNbSjSCJ5lxHBdApN11uEYtVF7KCUnlpPZNCzEzhz4LCGIQ/16sT1KrXrDYc0zDo4WMPu3ePYvWcMA4N9HVOv6Tk7v3q53/6BGnbvGcPu3eMYHKyp74qevltWz9CLw9wtrUwIOTQ1vU8L6hXRAB8H8M6NSvB6TUI29Bsc7MPoloF1OWaXK/G9aDBCgHMLS1hcXEtNxwa0UFHYWiQAJff1p1PT++7cVAaYnTlChBAvJoR8e72E3QzzoB21/v4qxsaGQOh6tI/A5dJC3hoplbjclbjAwsIlLC83SvP+G1mPToyV+e5LANzfC1LY9S4Pzs5janqfIIR8rZdFWE94lsXpy8AQ5lHs3DWGrdtGColfpPrTWLt3M1D8ufJz556HEmzdNoJdu8bAGC39/kYEppf1FkJ8bWp6n+jFFPQkfjMHDn+AEPLeXu1zpzLt9UkEMDBYxZYtgz0tSBkTbaYDuB5Q69zCIpaW1ja0Br1If8nxwanpfe/bEAPMHDgMQsg2AKdwDY6tW4fQV68WEFqq9m5McCUjgfzfBFk6U0KwstLAmTOXNsUMFuUWumAv2wGc7hQVdDQBqpftnk6qez0qv+fQhBLs2TOOWl+lhMB5KLVXVbvRowjGte/J8VuEQK2vgj17xg1zFCWLLof5is5TUDJ3T7eQsPTqX//a91Gp+C8XQnyjmzfcrUS7TIUVvcc8it27xzuo+9Su25rg2h2p5NtOY26tBHD02FkkMe9ZE2zUhKrjpwHcW8YIpIv3/z0hxE9s1NvvpY4eAMKKjx07RkuJn/7cOOHdc+TV98YYgZRK98kT59FqRaVr0W1uQS/aOHN8f2p634vWpQGU9zgFWcNfClysR+WWPZw+TxB62LlzrNSmF2XOejcpVJV60fShCTElX0atWyFnkvBcFm89BOlUDHr8+ALarbjnNdworgBgGsBskRYgHRzAw4SQfd3q4HpR8d0ewPMYdu0e60Hlix6lWyaBfN8DhKwJTGLZHcQ5h+DF56JM2lGPMXg+MwmgKEoQRdG62ss7mgQCHHt6AbHqPdgs4nf47JGp6X039qQBVG3fTwkh7i29EJVJko3ctM0ce64fL7R/6w3rCCEIAg+MMURRjChKEMfylSQJeCIbRJMkkY+u4nSJLcg6PkYpKCNgjMFjVDJSwOB7PuIkQbsd9Xwv9u9Fz/f0U2cMc1+ulPciZOp/LyeE3Hfr1ERPJiCX57fRMZ1HL7perx292iTs3LUFQeCXqvxeiC+EQLUSglCiUriK+FFiKoKTJEHCOQSXhaG6W9g4n5SCEgpCAcYoGGNgntQGvi81Qhj4CEIfPOFottrrZoLse61WhBPHzzmwb7YBRenAnMuzXvNBCPn6rVMTr+iqAQ7Ozm8RQixcLkDRqTjS/j/nHCMj/RgeqTuM5IZYnZ09IQDf9xAEHlqtCO227PXXOf0klnMAkjhBkkjJTxJuri+sRaCUAkTG7sxjYEyZAo/C8z34HoPnMQSBrC8IK75hts6WwXUOXaYALl5cwYXzy6VJok6SnltXAYDIQsUSmozdOjVxzjG/BdJ0Z681991q9joxS7UaYGS0H5yLEuJ3z+rVaiGShGN1tWmIEUeS+HGcIIqVFlAOHeeyRTxJBITguQWijIJRAhrFYIyBUILA98CiGL7nwQ88c94ojlXzSAVrq80O3pQwbWb5tQRGRvrRWGuj2Ww7UVVRy1xZ46xzbpSbBCHEnQB+p5sGaACo5E6iy6UMYdMHKwKF0ht2F0D/3HP9eGGvXy+ADgFBtRqqQo02oihGO5L2OY4StBUjxLF0+uKEI44ScCEgFBMUAynEVAp5SgtQSqUJ8Bj8QGqCIPDhB/JnJfQRhgHWGs2e/J4iU8A5x9NPnd1QGN2pcMT6XHNqel+1UAMcnJ2HEOK1NvGRa1kiABEQHKrqVZT28xNCjO3K3uTwcD1DfFsDdA/pwtDHWqOFqB2j2WojjhO0W6nqj6IYScJNx4+UeqkBpBZInGvpRhGNplEqP+950hcQQn1fTRhJEo6E++CJMD5FrVaR7WWCd8Ue5Dqk9YiUUgwN9+HSxdWe7HtR/2MZPJzpmagcnJ1/rRDiSzokNFS4dWoChJBfc09EMqoLgEgrcYrKuh1NgPz/GaMYGe0vUJNp2FdKfJISv9lso9FUTNBsI4qtOj7NCHGsmIAbJtAtYNIn4MYkxDEH54nFMIkM/+IEUTuREUArQqstTU2r2UarFaHRbGGt0cLqagPVWtglDSwcONs+RkcHwBgtMbsoNcOEyD5JFPgZ2eGZ6vg1Gw8wd/uNf/keFUK8spNNt21R1g6JHOFEznZxzjE2Npiz+z2lO0EQVnysrbXQbLSNw9dqRYjaifEBuBDK7gskMTctX1ry7QXNh51Qn9V+gkASJ2bARMLlz3Y7RjuK1T1I09NsRJIJqqHTE9Apg+m2jQuMjQ8WlrgDXYplRGr7s70SOZND8Mpv/Mv3aI4BwjC8mRAyUKROtDrPVqk4dfPIvp8f3hAEPmp9YaHq7+bwVaohGo0WWk1J6HYrRtSOjZQmMVcxPjdEtBf3cnB1W3o0YwlAYQtcXrsdod2K0Y7kxLHV1SaqtRCC93ru9L1aLUQQeI62sJtpuzXeFIWeOd+Mi4EwDG/OMYAQ4g1FpUhOG7N+j3buxDHntCUdAoNDtYz0dff6BRfS4Wu20WppyZN2Pk5kGTdPLElPuBrNYj+8mymj1B0FRykxMwFcR82VMs1MXGuGWJqJtmLIdjuSZqIZoa8vLAXL3GcWDqMPDvUV+0LELYS17zU7yKJTIk79/oYcAxBCfkUTtiymN2qfC2N7sk6IcyPU1RCDg3056S9TyfrwAx9xnJg4X4d5iSY+t6RdI3sgIDS9H8aIM1ZG5gaIjPE9YpxA/ZLfoSCEWgutGcHSClxImFmNnoujBK12pBxTjiD0uziE+d/lGglH8rXTaJtDuyfRZvRe8r6EkF9xGGBu7uG6EGK3JlphibLjZMBpkS5ydrLqZ2i4z7H9kvM7O36CA77P0Fb2PYnlQut4nlvDHYUVJdgOqJZkz2MghMDzPJMc0oif70v4WL7k7ABd3CkZIgPiZHyFJJYoo75H7ZsEvtcBMhcF6yA1zPBwv7lGUfu5uQe7OxWyESaLqZg1gOOz7T6w/6E6AHizM0cguHi9CfW5KJR69wYsJij5v33xhHP099cKpaCkjhMCAmElQLPZlp53LD3xJJH2PuEcPLG0jwpQzANTAqmAqJHWCxeW0Wq0wZGOjTE+AhegjKBaCbF125Bhekqog/QRmpE+LsCpdDgpIRIZVJA08yiqtQrWGk1QS2qzkp+1ov0DNZy/sAxKiLyeKAaI9HSRsrF6WdWfGVb1+oOz85/2VB35bVm7VxRvui39xZ5mkSkIAs8MX8zb+9QZIo46lLY5aidpCKecMOP5WilmIQQoIRAUoIIax41SgqNHF9BuxxgbG8LY2KDJ8tn93druNhotPPHEaVQqAXarDKXRBDqzl0tzCzAKJFyAKtPEKEUUxQjDQEmfVufqqiR/fb1mnscQ+J6ErQVKBdJ20OXnigtzivw1Qshtt05NfNpTf0znHQjhePJZaFOvRC9jXftqle61e1a+Qwgt/anq1ypfe/kCZd21EtIlAM6dW8G5hSVs3zEiU8O5IhaSAZkI6vUq6vUq2u0Ijz9+GuPjgxgdHUiHURRV7YCACw7CJUPyhCPhiTQFzTYqlQCNtZZry0l5UY1ucVtaWkNpVJb11Ug2YefmINy1IiAE0wBA7/36gwwQe/LEKRuWQEqbHIlWWdZ3Es5Rq4WdHSGR95IZo8a2JpwjiaX0wyoHS220BX4QAo9RnDx5Hq1mhD3Xb0UYBhkHkGWQP/mefb4wDLBnzzjW1lo4efK8dAppeYrX2FhAaqxY3nMUx2CU5k2d6OwA12qhGVZpM2jRmue1tMbt89C69uEA7Nl/34OMBhVvVAgMgKC05r6ssqUMlHDUYyJQq1csz5nnUL/sIviBh3Y77czV33ETIMX3QinFiRPn4XkMW8YGHUfQAkPMguaeicj3NTNv2TIIxtQ5Gc0xgB0NZV8JFyY34QesJAoQhWvTV6+AJ7wQEcxpPUoc/KXIaSzIEQz4vjdKhRDP012w2gEs8wNyHmaHDh2T9av55kF6OeI4QahCv0Sp08LqHUKdoYyaGIuLq2CMYnCoDkIByuSLUGJ+p0S/p6qAGMCYdAoZ1Uwgf2eMYHCoDsYoFlWNvzNcgsCJElI0Ub5iFbmEod9TBZA+koSjWgvS8BMoJahx3ImLrWQzgzbuIKM9PM8jhEzkOcSN5QnyM/Cy0l5Y9ECAShh0tv9ZNJAAXHBVvSPRPYOCOZi4MA5VOkZO5te3bRsuiYtJSbjs3jfLSAsjwPBwHadPXZRxunC/6Yyxs9FHzsFVIkkuOnKhXHbeob0WlTDAStS0sH1iRU4i/z63kngEbiLOiSZMKDtBhRB77YflnLsLJJAbdZokiQFBOiF5cZSgUg069tOn7VOyjt73mMLyE8PZnAvt5OYyg8Sq5zt16hy2bRt2bHv21el/9kv7CfZr67ZhnNL+gJZ+mqIh+j1u8iNI8wlxAt/zUg3ZoWdRr1elGiCKYgcjsDWONhuxKnTh6m97gJXRADzDZJKB9npq2pSzqBB5ieacWzV2scmZ+4EHZk3qzg5UDkM/U+CZ1wZmwbgADQgSBbdCwKRX9QMzj5r4H8pZBIAoTlQZF4N2ikWBsAsbOAGcqiD780KDSUjDNkKZmVVI1XXtYZJaE8jPpL2JiZBOIfMY2pGsBqY6hkcWbU1tfRj6Tk7DIawCw9pRjCROwAWHRz14AYPv5Wcg5SaZyutu9wDstFVE0cG5xLzX1ppYXm7i0qUmqlUfIyM19JEqaEBK69+0tFjhhwFQAOLU5XHOwRhDHEfK9qcUIl0KJFZXmhgYqEkb3gEYNSpayOWHNeCZlFTKEFM3KKHalZUGhtQwilxa1gnFlPlK5LP5gQeeSEbg2lwIYuECrhNHKTWM5tyI0ppRHKPZaOH8+VU0GhGGhiro76+iWg3gB76KPlxfLWPOd1IAWw1nFRKfo91OsLwse9zuv/8I3v2eO/D+99+FOBZm8FJ5TWDBQGQuQRN7Jr8u2TKqriBqSlE+OOEfYxRJIrWNHcpJFM9V+Zr4rWaENTXypdWMDCPapsI5lwkPfSSJSM2AJhazmksKYj75rK7aFwDihFvoqygsnLWZydbOEhoXeP9//k28+z134P77j+D0qYtYWWkiakeuObAYx/JDtlIAI2WeKFf49spKAwsLi3jwwR/gDz/0LjSbK9i79/mIS9qctJ2Ss3gz/XQinxOXWTxlv5RUZm0+UerWdjB1+ZaM4eVnGGWgRNlwlrf/AkCzIbeNWVhYxrlzK1haWkOz0TYOJVHf136AxggYYy7YRAgYZSngAheXyE5DJYSYzakcv0oJRdY0UgKDIWSLSaEkO45j7L3+eWg2V/CHH3oXHjr8AywsLGJlpYl2FCsTIozpyNzXCIUc8Vqo+xLOsbbWwvnzy3jwwUfw0Y+9DwmPcdv0v8Mv//Jb4fsUzKN5Zat77rnIAd06nWr/ncTcgCgqPMmp/LyTpBwwFcpJKaQgKrzT2lTG9OnD80Q+0wMPPIzfvvsd+O2734EHHngYa2stCKWRKLO0ceY8WvIZk/0DhFn4CSnwOdRzSamjgBAG2cwJAs8AN9Lby+UKtDLwGEUQMLz5zW/BbdNvQMJjfPRj78ODDz6C8+eX0VhrqdCTuA5PegxQyF20C4ymvNFGo42HHnwEf/KRuxDHEW6bej3ueMO/R39/BbVaCF9l2Yrr97IbQbhwr53NS2vYiJEKGKmHg/QZZ1W1d1FK4QeenPKtSrl9j5lSbs+TTR6UEVMr8NnP/QUuXjyJixdP4rOf/SSEICZ34DEGn1HzPU9nDtV4OZk9pIa5jblwHMKCnUYc9DNTsVRQDGucWVEcATHGUK2GGByo4o13/Cpum3o94jjCn3zkLhx+6BE0Gu1U24hCZ6hKc6XhJnxIK2m++E/3yLCkUsdrX/OrABKEoafSpt3Kn4RJ7QourKndKptnpVa5VQhh+vbUStg2nCqHjdkFHSoqkY4TMw6ULPZQKp1SeMwDpcC2rbvAeQLOE2zdukudQ1UCM3kORqlJETNPfd/zTLUw0wyYqfYlRnItD1wlbdJ9hApazfU6WQLDy9LJRAJVnscQhB6ESPDa1/wqKpU6CCH4xy/dU15km2oDj5alqIlCwygl+JU3vx3VSj9arRX85V/9d7QjmTXTUG0OnlU+gEbD9EM4JVaJ2wAiAIgkLwVaA9j2i2RCL53b1yZBmgcYMwH1N/NkiXdfX4i3vOU38POvext+/nVvw1vf+h9Qq8lhkkwxNaFIX4ym51SdQ9r/SFOz2QodzcRW4GkJlY3i2YLhmAIbkynIJegahEajhXZb4C//6r+j1VpBtdKPX37z223cP4ftGJDr7W/7jbsBMIc7iE4typ9BGGDihml85/79OHnqMTz15BN4yUt+GkEo05a62CKrptrtGCMjdnFDSvyU42WHDuccCRem2SNJuHGMuCkzT8e4Gu+cEXhMdgbpjR9ZCbgDSCaQqtPHi198M26++WYMDlXRX68irPiqRYwYbEP/bX6nMuLo66sg4YmJNHTUQRXkDEhTAqWh/IDBYx5WVhqgjFqooVrnjNnQrLNwdlHWCWaSlxqXWVlp4MKFBj76sf+GRx/7Fur1Ubz3Nz+MvXt3YGiojkrFN86rwwjyfDEVQCNnGpQZ8DyGSiXAyEgde/dux3ve/QHU66N4/Inv4GMf+13Zc2d2xMwgKeqnzgPYU7ptMyAgwR5jItSGDgQAodkBz0qyWOr8UUohIFCpBKBICVf0kg2fDNVaiOHhOoaG+zAy2o+R4X5UayF8VS1kysIoM0kh490DEt2E6idkKhphBITpbCixNo5Q5kCljBMFDxvv3wLB7BZ1IaB2LhNpFjSTaNMl7R//+O/h8Se+g3rfKH7zPR/E3uu3Y3S0H5VKkEYuNFMCIc/XoBBYsglmKnUVrhwEHmq1KraMDeC5z92Ju//TR7FldI/ac48ZKbUbiDQzxHFiHjIr/dzuBIrtGjtuqXlimYFM331GUivVwDAi86hK8hDnd/2373sIQh99fVXUaiHC0EcQeKAekS/1OcLUuah6X5mTWi1UkYEMGbVWyvcAqtyCYiBdeaSBoSwT2O/pn1HEC6uGXGfQx5bRPbj77o/iOc/diS1jg6jVqggCL0UAOXJAFYAlD8AFQrBTZLBRjQxqJgCpglLpdX7kI/8LHqMIQwbfd5GqbLdNHCUgAXEAnvSB1YJoAITIGL1aC0FoDMKVRHFZvMizrVyWva33VXC+2YbHqIPqOflyxUy9TCtBrmYI4ERm9/pqFTRbbQXpyvvKbhdDLKnTDNFYa6U5fU7AwZ2B1UQQUJreaxJzc66iW/Z8hjBkuPvu/4Ik4aAUclZyLYTve65ZFvniG0JwwQPBGSFUpoo7tQS6hR4EskmSUskMOrulQyyAmO9rLFsIOfJlcXEVW8YGLfjXyn0rBuCA2ahxda2Jen9FgiqqxCvhClYu2JmL0FQdDgzW0Gy0ncLQfD9DfpSLnT7VD26e367G4QKDgzWDsOksHBF29pQ6dtyEqT7DxQstBfoowiYK/SMCzGIExiRUfGlxBZWK77SR2V1CHqOml0AIqa08Fa0YaF+4SVCBlNZC4IwHgeOESrxa4RRWxY39JQIP0obmMX9kBjfJq/kew+pqEyOjA9LZUxVC0hQosEm4kcLyyip27RpDy4uU/yDz9HY4lCU+VTdaq4RotxPzPxv7No2tRBdDC1fbIdP8qpEz48xI01Dvr5ryLjkoI33o7BQQ7Tto7ODSpRXZOUQAwQQ8xsATmVjiQoCp+kJCJIOsrbZMo4jIY2omHA0Cz4g0ATGPZ9n6lDbEElTgOCUEpwSHMzAuWxqQtW26i9YQH8hMykoXc2WlAUpJ2p1jHENVUx9z09gRxbLXfmlxVUoISytzHIeOpsRPsX6ZRRwZqRs/gtqevIrvpVePFCew4GLb2XPeV5j82NiQ1FQW6GMcwNxEkLREjnkMS8urVgpX+kJxkgC6mUUJBwTAE+k8Li83DDJqzLYkPCQAABUySURBVKtJB6eFs4RQUI3JUOv/hsHTsNgpTAVOUSHwZDb1JYTrFNrcRwr+j1ytXlr80G7Hju1PVJZP1vmlaGCiZvd4lOHMmUvSKaM2umY/CMkka+zeRWBc9dhJpMMN5zSCZv62/ucZsIilAI9yiLduG4YQHFykCCez1b2pLiIGs9DXC0MPp09dBGPUzCkyG1TwtKXNdgplf0HkFHDYPpo9pYVYUq0lXthZSe5qAAuuf5ICmLdtfq5XQ3QorCEuPq0JZH91aLiO06cuyPAHwmqtSgmvia//XlpeMyrOkXrL6SMWgfT/GJU2jIBgfHzI3GS3vX8ISOnWrlwIbNs+opxHQJeg2NcsCzspJfA9BgiCleWmwTZ0vYMmtFCSb/oahcDpMxcxNFx3eyfsamyaEUya0sDOpQirySarsQnBPCUEjxYABGncaHGRQ1xRbJdMNZJKQoWBb+bl8ljkih+zSZCEczBKcebMJRmXM+IUnOhbLFt4U5FDgO3bR1RRRQZPYMqMKRNAFOJp7xWki1n03EJToUuQLwTJLAJVKCBR8PSZsxdke5oO9QScNTDFI6aJFVhaXFPp7WyNZppssx1DQx/u0pIQV2A1XRSpHqVJzM8TiiXlFRogSO+y4jiG3AWLNENkNYFtBphH0WzKIQ450MNKDxsHkUv7fOzYWYQVX6GMqTdN1MLaFbEGObPr5lX//9BwH7ZtH0JY8RXwlMHHDUaRFqqEoY9t24cxNNynBkBw5z6100kLG0rl/WnPv1oLcPTpcxJ2i9PGFl0CZ3wCixmShKPVaoMSmqaJSRqVCbhRmg30aFsv7OSTZfctui3FTX7em779xuTg7PzThOImmXyQ6VA7pAMHiP1egb2xtYThUN3kEfpYWW6gr6/ipoItgChO0vl9nHMEgY/HHzuFXbvHEMccRHFodgv3rINqh3vS5xBgjGB4uA4MQ20IFadhqHbk1PAJXb6tv2tQS6uQgjvVuaqPQZeKWZBzGAZ49NGTCEMvbSDhHIRSEFHc3g0BLC814PuexAC1RhapioclpFpAM5N8XD9B/8OmI8XTt/+bGxMdMM9oYlLmqhpC0qjJtjvCNhckr5JsrTA02IdTpy7kc05WIUR2RhAhwOnTF5AkHL7H8p52xvsWHUrTbRPjeQz1egWDg30YGq5jeLiOwcE+1Psr8HzqJGS0Kchm5MqmgZpspUol8yTB6dMXnXvR1c5FM5H0z1OnLrid1Nx1+pyqIu6aXgeWR95xt4R4BgDo3Nw8CMEB41hwy44Q13HIOodFToitbjSTUEbRakVmTo9b/SKK7aIQCMMADz34JGp9oarOsZs88qiggzKKtMSKGz8jX4vAsxU6SrJ4ZlydO/rG9SeyobLvMfTVKnjggacQhp6TA3ER0XQHUs2kcZKg2WyrQhsUopK2wNm+mjERTiTmOH2pgDIcODg7Dzo5OQHK8A/GvtOCKCBzUWFXv4i8OrIXRHf67rhuFE8+edo0RXJ7wQty45oh2u0Yjz12CpWKb/L7dicMJaS4Csfk062CCy46zpjW0sUtbJ5z+WY2t55tR9PZPM9nCCs+HnvshCnp5hmsX1h9Dmm7m/zMU0+ewY7rRp0eA8e2F3QUE+qifYbQls+mnT8dqfE2/uHWqQkJ/7zspRMrhOCo7SEWtjHDBSIydYoOA1loEyAA3/PQbLQRRzxt51bMkZuzb+oIOBijOHb0LBYvrakxsG4voED5bh7pFK+05CxRIIzWdOalStg0sXRfgpw4kn1+t/pHl4wxJgdJLi2t4ejRBVAqeyNyZkkzmXBHxURxgkajZRpZhSjRrpaGzpoHWHG/wxjWOSBwdOr2iRXAGRGDT5swj2SQpw511jkTYHmazsoRgW3bh3H8+IJxDkmBT6CrgvRAJ86lKbj//kcRRwl83yssxLDb1rPMZKt8zQhcXcu8eOqQauLHivhFEziy1buUUgShB84FvvPtR1GpBGmbWCKc7GcafQhn1sDxY+ewdetwWj1MXLsukNeuOX9NuMzhaA1qHuPTJmS1CPl5Yzvs7qKs1swQOYdIidQOIWN3qtUAy8trspLIigScAUiAVSeQlk7VahXMzh5BFCdSE1iFGtkxdrbnbmsUOe9PDY7m3GEM/X7a9VS0KVReQ+oClDD0EUcJDux/CLVaxan8ydY9Ok6rer44TrC0uIqaGjBFinyvDMpnh+luy34GsKNw4kch8PkcA/h1fJcAS+ZkdtxY1kJTQHybgYxDqd7nAtj7nO34waMnnAYOd9aQtS0Mdx22SiXAgf0PobHWQhD6eXNQAExxK9nEY+XgcWG1uHETEvJEvswMgg5tbxoFZJTI/v9GC/v3P6gkX+Ri/ay6t2+TMopHfnAcz3nuNhliUteZE1YImMVdUOAMFraip99Z8kJ8N8cAP3nTBAfBV7Kok6Pas/FWARZtAxcGGrYiBt+nGBio4tzCksx8ZWx3OgGEFO7N09dXwaFDj+DEiXOo9VVMQ0bql5RP5koETwc4JCJ9xXKcbKJw+bJydCcup3LIVL1exfHj53Bo7mH09VUdpFNqASgEUC6AYW7rvGfPXkJ/vQrGvEJHj1gRGopifKcUP/N/nsvvfOWlL57gOQY4ODsPCHzKuQgvGWZgOx8Z9eg4G7Y/YN341q0jOHZsAcIqdyracElAFO4bUK0GeOLx0/jmoUdQqcg2KMqoky8o9fQtJsvuFFJ22DN5ZNk4ReB7qFRDzB16GE88cQqVSpCDuLPxeTaU1M997Og5bN8+4kgXySTjTCSQ9b2QCfWoGwlkf4oEn5qbmy9vn5ubm29AoFLQVelIfJF6EQJOM6UQGezaylO32zGOHD6Km266HlGUGOfLzANK0jRxtl3M3vo9imJMTOzG7t3jaDRbBt3bzCNtqJTquloN8PTTZzE/fxSB7+cGUzrdy4SCeYBHPTBfl7ExECbzJA888CQm9u1yRtiUqO7c2pflYgqrgKXQNm+dmnCGRdOCkO/38u65a/Oz2iCLOOWI73qgAIDA97BnzzieeuqMM/rEqEl7XoDpGcy0sQMIwwCPP34SBw48hHZbtqP7HnPbyDZwEMi+At/3UK0GaLdi7L/vITz+2ClD/Gyre9E5sil3SgieeOI0du0aM23jRSY2+17hTqdZOpWUkhOK38uVlRWEdR8H8F9RMMiQkOKiEWGlk9M6uILPZjh6ZKQfFy8u4+zZSxgdHbBQPuJyj4OeEYPvaxWqtcH933kUtb4Q1+0YxXU7txjvWgNCKfAiSoSMGBWqC0R0D8DxY+dw4uQFrK02TK1CypjSp0glH9YYPSueUyVjhABnFxYBAoyM1F3sHq7wgGSKrYu0cJFGFvlQkDJ8vKxbOmsGviYEfqZUvZR9U3R4v6wJH8CRw09jbHwI1WogO2bVgIg41lBtGg04jRcKfNHTQDVcLIRAqxVjdEs/xseHMDzcD99npdi+KbGisrJGqNk+FxRznj+3ZDqP9dDphKcgk7T9UOVc6b2lwyaIbF1TeMHaWgtnTl/Evhfudnr+c+snCrz+AiIX/sxUehOCr09O9rBljHIQfgrAvaUXRHlYWPizAFnMmovvffdxXLdzVDpTanuX2Oqdy3Yia6LnuoN0JY76n57nK7d68VGrhvBDD4wyeKqiOY7kdVqtSA6kbslJ5HqjCD3wSaex0/0HMt6+02IOs+sIowRB6IGAoNmMcOzYAl5083PLt5opnmyRq8IiPfheFh1eDuC+yckeNo0CgLmD84dBsK+IK8u4zVFNZU5jCUPxROD++x/Dju0jqPdX5XxABcXa49vtimB7hw85Btau7SseZMs5ctu4ulPG8nG03SepgSJ7epkucytkTE8CRZ7PsLLcwPHj5/CTP/k8mUQSBURDBw0gSlq8SoTOitKOTN460du2cZYWkBtHdrlI6Y110ACdmODBB59ErRZibGwQUZyYuQGSCVw7ZC+09rYZ1VlDYjqJhFUdoaeCCFECaYPkwlYbTtYjat14H864F8Zc9e95DAsLi1hdbeGmm643DSYd16ebVihR97n35f+mAcxmpR/dLj93cP57AH6i46dEwcXROeNmqyuTOLIWff7IUSSJwI4dIyZE1LbbVbXEzPST6lbt+sVYrkR7I7Gh3cpm2/70/bS1nVK3UtnzGE6evABKgRsmdpdLM9YhQOt7//uTkxOlW8eW7m/y/e8/ARC8q8yGF7IQ6c7FhGTwamRy2gAm9u1GvV7BI48cT4c2Ws2T6UK7HT12cUnZKLpOr6LvOn2MKmMonOneqh2NkdxUcUIIHn74GPr6QkzYxEePzjJ6iPG7i/O7bOBnXRpAmYN7lVPYXcLL1BLWqe7U4l28sIwHHngKO3duQV9faEqnk0QYT9vOxukJ4XY3cFHrV9FGS532P9KYQxKnxE81gBVm6XJxxrC21sTRowv48Zuux/Bof54hSY9SjXVogDyj3Dc5OfHyzjhHZ+IDwDYAp9Z1E70ySg/mJGonmJ8/irW1Jq6/flsOcbPLscywJuvvrCov1BAlpV7O5yG7mUSuuCPfsfTUk2dQU1LvjIjtnXAbXjd1bAdwusj296wBFCN8AMB7O8b063moXiXAeu/8uWU8/PBRDAz0YcuWgRzhjJlg6WYRZfsS2tJfxCDZSWdpZ3NaZpZlJEoJFhaWsHhpFRP7dmN0S/9lOBs9rmdvmuKDk5MT7+uOdHY5Dh16GLfccgPm5uYvARi8PC9qY+ZAlu7KKOHE8XM4dnQB/QM1jI8P5ebnat8gXyWMjjudZs1EtqvY7l+wiU8pxdmzl7C0uIrdu8exc/eW8pmLG12H3r+zODk5MTQ3N49O0r8eDUAAvBjAt9d9o6IkRLlMmF53Ap88cR7Hj59DvV7F0FAfwooPwdPQ0KSkQboS3RmuXBIu2BEIpRLQuXRpBSsrDezaOYYd142A6U0xOkVGG3j2dURiLwFw/+TkhNiwBsgwwscBvHNdIcsV0BYa7RNC4Pz5ZZw+fRGNRhv9/RUMqcnetjTbZqKTD1DOIFDOJ8fFiytYXW2iUvGxffsIRkcHVGMq3xwJ3kh4KI8/nZycuLP3ZFfvxMfk5ATm5uaPAtiFq3UUPLSZ6m21h7VaES5cXML5hWU5N9fzEIYS/pX7ADPoWrvue/xC7QSmdgFryF3AKAXGtgxheKSeqfwR6RwjLjZPINZ/jmOTkxO7Z2eOwN4ddDM1gPYsT14xddbloFZnDs1M5WIeVbN1ONYaLSwtraGx1jKtaTpnkHYUpxKeqPHuept53/NQqciNLgcGaqhWQ3gehQAx7dw8t4kF6cpcPalw9OAkF6/9DgCnutn9y2YACyH8RRDcc0XtWoeF0raaKuDeme1r+QAeYw6I01a7jyWm2CQdFO2pRlG9YZNddGLGuyZwqpS0s5hYG1ddzSOTP/ilycmJv1u3T3W5F5+bm/8QgPdcdSZAmj0xoV5mpzKtCYietYt8+XippbHCPl07ILg73NFBFYGrRvgOTPbhycmJuy7rnBu5obm5+a8B+JlNBYl6/D6xUmhMzxDMDZEkzs5m2TZuWL0FWWLKJtB0YgexK5MyYJBj+6+k9iumWGGev2eTugHiA8ArAJxwbnI9xBfrRMIKPm47YDy7aVOiK4DT6RtuM0g6pCLbC5jEHDxGOtYuN+GMu7uor5eQ65T8knU5ccstN7yiE9Z/pTUAARAAeEpBxpvt1XbmXkrdGgEl1bRk8woh5O6gZiAWUDiCTQiXUrl5vj1ueX+Fj9MArgfQ7iXevyIMYGmCusoX1K/2KpCC0XEosfllO53axCx7j6u0H+f8yj9Udy26oqKxlfV4/FeEASxNMADgMQBbrgUTOIMaCyqCtYo326hkPmNvQm03q/B1AEZX6TgH4McALG1E8jeVASxN0AfgKPQuJL2q/I2ahpLv2zP/ZG2gLDPTY9Y9n4Go0S1xHCNOhNorkMEPmDOyvtP2uFfxuABgN4DVjUr+pjOApQlCAN8D8IJrqSptYsUxV4BQhIWFFQwNhahUA1SrIaA2jG61Ily82MTYWB3Vqo+KAn7K9kYurOG7siHxIwBeBKC1GZK/4Sig6FA31pycnLgBwLc2ywsu/T5BR/VspoYlcm+9T37yf+Kdd/5bfOlL9+HsmUtYWFjEuXOLOHv2Er74xXvxzjtfj09+8n/I7uXMlPOi3TzWJVYbe+5vqTVtbibxN50BFBPg0KGHMTk58TIAH9h0nUN6ZxC7KzeJE2zdeh3a7QY+9an346tf+QZOnriAE8fP46tf+QY+9an3I2qvYdvWXabke1N7zC7/uT8wOTnxsl5Su9fcBNiHVUfwJgCf2bD3uwHVGkccyytrOLewhH/8xy/jc5//ECAI3nDHu0EAfO5zfwQQgTfecRde99pXY8vYAPoHavA8ul5EbrOPN09OTvztlSL+FWWAjG+wQ5mEHdfCc+KJQBTFuHRpFRcuLOOfv/xV3PPZDzoh5C+98b141at/DiMj/RgYrKES+qWbY1+F4ySAl05OTpy80heiV+NphBAnJycnrgPwiSuBlHV9SCaHNw0O1jA8XMcrX/WzePObfisVszf9Fl75Kkn8wYEagsDPbMm+iU5r9+MTk5MT1yWcn7watLnqLH7o0MNTQojP94QcbjYjcoFmM8LySgNLi6v49re/DwB4yUt+AgODfXLfoNA3E0CvgmfvIHuEkDfccssNs1cVQ7lWOm5ubv6PALzritjUksoZnc2L2jGaTdn/R4iA7/sIKz7CwM/1KGxGiNrt+Qghf3zLLTe8+1rQ4ZoxgGKCnQA+CeDVVxQoymkCWJ1GwuwVSNZRu7dJTPtlAG+fnJw4fq1oQK8lAyScH5+cnHgNgFsANbX8KrCp2UMwkJsuyr0C13fNDRL/UQC3qGc/fi1pcE0ZYHrKNKx+c3Jy4vkAfg5IJ1hdQUfrajt2+vgugJ9Tz/pNjZtcy+OamoAOpmESwIcA3Ipn+aFMxUEAd01OTsw90+6PPkPXbW5ycmIKwE4AvwNg+VoT8TKOZQC/I4TYqZ5l7hnJoM9k6bERsLm5+VcBeAeA18De8fyZdTQA/BOAP5+cnPjn7DP8iAE2jxluAfALAO6AzI1fy+MxAJ8D8IXJyYlDzwaiPysZoOw4dOjhQAjxRgC3q9duXLnKpBXIeof9APZzzj87NXVj+1nto+CH4MhoBwpgK4DnAJgAsBcSddyp3h8F0K/MiK9OESn1vQzgPIAzKjw7DeBJAPMAnkiS5Mz09Au5YjzccssNz/q1+//zTszQ88fNSwAAAABJRU5ErkJggg==", eA = "data:image/png;base64,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";
|
|
567
|
-
var bt,
|
|
566
|
+
const _e = () => (Ft || (Ft = new $e()), Ft), ee = "data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAws/8fNABrcJixPQsAAAAASUVORK5CYII=", tA = "data:image/png;base64,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", eA = "data:image/png;base64,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";
|
|
567
|
+
var bt, yt, dt, _;
|
|
568
568
|
class YA {
|
|
569
569
|
constructor() {
|
|
570
570
|
q(this, bt);
|
|
571
|
-
q(this,
|
|
571
|
+
q(this, yt);
|
|
572
572
|
q(this, dt);
|
|
573
|
-
q(this,
|
|
574
|
-
I(this, dt,
|
|
573
|
+
q(this, _);
|
|
574
|
+
I(this, dt, _e()), setTimeout(() => {
|
|
575
575
|
this.setUpArrowListener(), this.setDownArrowListener();
|
|
576
576
|
}, 100), this.setUpArrowListener = this.setUpArrowListener.bind(this), this.startUpClick = this.startUpClick.bind(this), this.endUpClick = this.endUpClick.bind(this), this.upClickFunction = this.upClickFunction.bind(this), this.setDownArrowListener = this.setDownArrowListener.bind(this), this.startDownClick = this.startDownClick.bind(this), this.endDownClick = this.endDownClick.bind(this), this.downClickFunction = this.downClickFunction.bind(this), this.initController(), de().getObservable().subscribe((t) => {
|
|
577
577
|
if (t.inputDevice === "mobile")
|
|
@@ -584,7 +584,7 @@ class YA {
|
|
|
584
584
|
});
|
|
585
585
|
}
|
|
586
586
|
getController() {
|
|
587
|
-
return w(this,
|
|
587
|
+
return w(this, _);
|
|
588
588
|
}
|
|
589
589
|
upClickFunction() {
|
|
590
590
|
w(this, dt).verticalMoveCamera(!0, 0.15);
|
|
@@ -599,10 +599,10 @@ class YA {
|
|
|
599
599
|
clearInterval(w(this, bt));
|
|
600
600
|
}
|
|
601
601
|
startDownClick(t) {
|
|
602
|
-
t.preventDefault(), this.downClickFunction(), I(this,
|
|
602
|
+
t.preventDefault(), this.downClickFunction(), I(this, yt, setInterval(this.downClickFunction, 10));
|
|
603
603
|
}
|
|
604
604
|
endDownClick() {
|
|
605
|
-
clearInterval(w(this,
|
|
605
|
+
clearInterval(w(this, yt));
|
|
606
606
|
}
|
|
607
607
|
/**
|
|
608
608
|
* Sets event listener for move up button.
|
|
@@ -631,7 +631,7 @@ class YA {
|
|
|
631
631
|
t && (t.removeEventListener("touchstart", this.startDownClick), t.removeEventListener("touchend", this.endDownClick));
|
|
632
632
|
}
|
|
633
633
|
initController() {
|
|
634
|
-
I(this,
|
|
634
|
+
I(this, _, document.createElement("div")), w(this, _).className = "mainUI", w(this, _).id = "uiDiv", w(this, _).oncontextmenu = (t) => t.preventDefault(), w(this, _).innerHTML = `
|
|
635
635
|
<div class="mainUI" id="uiDiv" oncontextmenu="event.preventDefault()">
|
|
636
636
|
<!-- top-left-->
|
|
637
637
|
<div class="regionUI skyColor" style="top: 10px; left: 10px;" oncontextmenu="event.preventDefault()">
|
|
@@ -666,7 +666,7 @@ class YA {
|
|
|
666
666
|
`;
|
|
667
667
|
}
|
|
668
668
|
}
|
|
669
|
-
bt = new WeakMap(),
|
|
669
|
+
bt = new WeakMap(), yt = new WeakMap(), dt = new WeakMap(), _ = new WeakMap();
|
|
670
670
|
const qA = async (n) => {
|
|
671
671
|
let t;
|
|
672
672
|
n.startsWith("root://") ? t = n.replace(/^root:\/\//, "https://").replace(/\/\//g, "/") : t = n, console.log(`Fetching from URL: ${t}`);
|
|
@@ -755,22 +755,22 @@ class pe {
|
|
|
755
755
|
function AA(n, t) {
|
|
756
756
|
return t <= 0 ? n.fXmin : t > n.fNbins ? n.fXmax : n.GetBinLowEdge(t + 1);
|
|
757
757
|
}
|
|
758
|
-
function Tt(n, t, e, A, s, i,
|
|
759
|
-
const
|
|
760
|
-
if (
|
|
758
|
+
function Tt(n, t, e, A, s, i, r) {
|
|
759
|
+
const a = t + 1, c = n.GetBinLowEdge(a), o = AA(n, a), h = Math.abs(o - c);
|
|
760
|
+
if (r.size = h, r.pos = c + h * 0.5 - n.fXmin, e) {
|
|
761
761
|
const u = (n.fXmax - n.fXmin) * n.fNbins / (e * n.fNbins);
|
|
762
|
-
|
|
762
|
+
r.pos /= u, r.size /= u, r.size *= 1 - A, r.pos -= e * 0.5, r.pos += s;
|
|
763
763
|
}
|
|
764
764
|
}
|
|
765
|
-
function sA(n, t, e, A, s, i,
|
|
766
|
-
Tt(n.fXaxis, t.x, e == null ? void 0 : e.x, A == null ? void 0 : A.x, s == null ? void 0 : s.x, i,
|
|
765
|
+
function sA(n, t, e, A, s, i, r) {
|
|
766
|
+
Tt(n.fXaxis, t.x, e == null ? void 0 : e.x, A == null ? void 0 : A.x, s == null ? void 0 : s.x, i, r.x), Tt(n.fYaxis, t.y, e == null ? void 0 : e.z, A == null ? void 0 : A.y, s == null ? void 0 : s.z, i, r.y), Tt(n.fZaxis, t.z, e == null ? void 0 : e.y, A == null ? void 0 : A.z, s == null ? void 0 : s.y, i, r.z);
|
|
767
767
|
}
|
|
768
768
|
function iA(n) {
|
|
769
769
|
const t = n.y.size, e = n.y.pos;
|
|
770
770
|
return n.y.size = n.z.size, n.y.pos = n.z.pos, n.z.size = t, n.z.pos = e, n;
|
|
771
771
|
}
|
|
772
|
-
function nA(n, t, e, A, s, i,
|
|
773
|
-
return sA(n, t, A, e, s, i,
|
|
772
|
+
function nA(n, t, e, A, s, i, r) {
|
|
773
|
+
return sA(n, t, A, e, s, i, r), r;
|
|
774
774
|
}
|
|
775
775
|
function rA(n, t, e) {
|
|
776
776
|
return e.z.pos = 2 * n - e.z.pos, e;
|
|
@@ -789,81 +789,81 @@ function Ae(n, t) {
|
|
|
789
789
|
}
|
|
790
790
|
function Wt(n, t, e, A) {
|
|
791
791
|
let s = Array(n.length).fill(0);
|
|
792
|
-
const i = (
|
|
793
|
-
const
|
|
794
|
-
|
|
792
|
+
const i = (r, a, c) => {
|
|
793
|
+
const o = a.fXaxis.fNbins, h = a.fYaxis.fNbins;
|
|
794
|
+
a.fZaxis.fNbins;
|
|
795
795
|
const u = e.slice(
|
|
796
|
-
-e.length +
|
|
796
|
+
-e.length + r + 1
|
|
797
797
|
).reduce((d, g) => d * g, 1);
|
|
798
|
-
if (s[c] += (n[
|
|
798
|
+
if (s[c] += (n[r].x + n[r].y * o + n[r].z * o * h) * u, r + 1 < n.length) {
|
|
799
799
|
let d;
|
|
800
|
-
|
|
801
|
-
n[
|
|
802
|
-
n[
|
|
803
|
-
n[
|
|
804
|
-
)] : d =
|
|
805
|
-
n[
|
|
806
|
-
n[
|
|
807
|
-
n[
|
|
808
|
-
)], c >
|
|
800
|
+
a.children.content ? d = a.children.content[a.getBin(
|
|
801
|
+
n[r].x + 1,
|
|
802
|
+
n[r].y + 1,
|
|
803
|
+
n[r].z + 1
|
|
804
|
+
)] : d = a.children[A[0]][a.getBin(
|
|
805
|
+
n[r].x + 1,
|
|
806
|
+
n[r].y + 1,
|
|
807
|
+
n[r].z + 1
|
|
808
|
+
)], c > r && i(r + 1, d, c);
|
|
809
809
|
}
|
|
810
810
|
};
|
|
811
|
-
for (let
|
|
812
|
-
i(0, t,
|
|
811
|
+
for (let r = 0; r < n.length; r++)
|
|
812
|
+
i(0, t, r);
|
|
813
813
|
return s;
|
|
814
814
|
}
|
|
815
815
|
function mt(n, t, e) {
|
|
816
816
|
var s, i;
|
|
817
817
|
let A = Array(n.length).fill(0);
|
|
818
|
-
for (let
|
|
819
|
-
if (A[
|
|
820
|
-
n[
|
|
821
|
-
n[
|
|
822
|
-
n[
|
|
818
|
+
for (let r = 0; r < n.length; r++)
|
|
819
|
+
if (A[r] = t.getBin(
|
|
820
|
+
n[r].x + 1,
|
|
821
|
+
n[r].y + 1,
|
|
822
|
+
n[r].z + 1
|
|
823
823
|
), t.children)
|
|
824
|
-
(s = t.children) != null && s.content ? t = t.children.content[A[
|
|
824
|
+
(s = t.children) != null && s.content ? t = t.children.content[A[r]] : t = (i = t.children[e[0]]) == null ? void 0 : i[A[r]];
|
|
825
825
|
else
|
|
826
826
|
return A;
|
|
827
827
|
return A;
|
|
828
828
|
}
|
|
829
829
|
function pt(n, t, e, A, s, i = 0) {
|
|
830
|
-
var
|
|
831
|
-
const
|
|
830
|
+
var o, h, l, u;
|
|
831
|
+
const r = ["x", "y", "z"], a = Number.parseInt(e._typename.substring(2, 3), 10);
|
|
832
832
|
let c = {};
|
|
833
833
|
if (n[0]) {
|
|
834
|
-
for (let d = 0; d <
|
|
835
|
-
const g =
|
|
834
|
+
for (let d = 0; d < a; d++) {
|
|
835
|
+
const g = r[d], p = e[`f${g.toUpperCase()}axis`], y = n[0][g];
|
|
836
836
|
c[g] = {
|
|
837
|
-
min: p.GetBinLowEdge(
|
|
838
|
-
max: p.GetBinCenter(
|
|
837
|
+
min: p.GetBinLowEdge(y + 1),
|
|
838
|
+
max: p.GetBinCenter(y + 1) * 2 - p.GetBinLowEdge(y + 1),
|
|
839
839
|
name: p.fName,
|
|
840
840
|
title: p.fTitle,
|
|
841
|
-
label: (h = (
|
|
841
|
+
label: (h = (o = p.fLabels) == null ? void 0 : o.arr[y]) == null ? void 0 : h.fString
|
|
842
842
|
};
|
|
843
843
|
}
|
|
844
844
|
c = { ...c, color: A.getColorAt(i, t), name: e.fName };
|
|
845
845
|
}
|
|
846
846
|
if (n[1]) {
|
|
847
847
|
let d;
|
|
848
|
-
return (
|
|
848
|
+
return (l = e.children) != null && l.content ? d = e.children.content[e.getBin(n[0].x + 1, n[0].y + 1, n[0].z + 1)] : (u = e.children) != null && u[s[0]] && (d = e.children[s[0]][e.getBin(n[0].x + 1, n[0].y + 1, n[0].z + 1)]), [c, ...pt(n.slice(1), t, d, A, s, i + 1)];
|
|
849
849
|
} else
|
|
850
850
|
return [c];
|
|
851
851
|
}
|
|
852
852
|
function oA(n, t, e, A) {
|
|
853
853
|
let s = 0;
|
|
854
|
-
const i = e.slice(1),
|
|
854
|
+
const i = e.slice(1), r = [];
|
|
855
855
|
for (let c = 0; c < i.length; c++) {
|
|
856
|
-
const
|
|
857
|
-
|
|
858
|
-
}
|
|
859
|
-
const
|
|
860
|
-
const { fNbins: h } =
|
|
861
|
-
if (s += d *
|
|
862
|
-
const g = cA(
|
|
863
|
-
|
|
856
|
+
const o = i.slice(c).reduce((h, l) => h * l, 1);
|
|
857
|
+
r.push(o);
|
|
858
|
+
}
|
|
859
|
+
const a = (c, o) => {
|
|
860
|
+
const { fNbins: h } = o.fXaxis, { fNbins: l } = o.fYaxis, { fNbins: u } = o.fZaxis, d = n[c].x + n[c].y * h + n[c].z * h * l;
|
|
861
|
+
if (s += d * r[c], c + 1 < n.length) {
|
|
862
|
+
const g = cA(o, n[c], A);
|
|
863
|
+
a(c + 1, g);
|
|
864
864
|
}
|
|
865
865
|
};
|
|
866
|
-
return
|
|
866
|
+
return a(0, t), s;
|
|
867
867
|
}
|
|
868
868
|
function cA(n, t, e) {
|
|
869
869
|
const A = n.getBin(
|
|
@@ -877,9 +877,9 @@ function aA(n) {
|
|
|
877
877
|
if (!n) return;
|
|
878
878
|
const t = (s) => {
|
|
879
879
|
let i = -1 / 0;
|
|
880
|
-
for (let
|
|
881
|
-
const
|
|
882
|
-
|
|
880
|
+
for (let r = 0; r < s.length; r++) {
|
|
881
|
+
const a = s[r];
|
|
882
|
+
a > i && (i = a);
|
|
883
883
|
}
|
|
884
884
|
return i;
|
|
885
885
|
}, e = [];
|
|
@@ -890,11 +890,11 @@ function aA(n) {
|
|
|
890
890
|
};
|
|
891
891
|
});
|
|
892
892
|
const A = (s, i = 1) => {
|
|
893
|
-
e[i] || (e[i] = {}), Object.entries(s).forEach(([
|
|
894
|
-
|
|
893
|
+
e[i] || (e[i] = {}), Object.entries(s).forEach(([r, a]) => {
|
|
894
|
+
a.forEach((c) => {
|
|
895
895
|
if (!c) return;
|
|
896
|
-
const
|
|
897
|
-
(!(
|
|
896
|
+
const o = t(c.fArray);
|
|
897
|
+
(!(r in e[i]) || o > e[i][r]) && (e[i][r] = o), c.children && A(c.children, i + 1);
|
|
898
898
|
});
|
|
899
899
|
});
|
|
900
900
|
};
|
|
@@ -904,9 +904,9 @@ function lA(n) {
|
|
|
904
904
|
if (!n) return;
|
|
905
905
|
const t = (s) => {
|
|
906
906
|
let i = 1 / 0;
|
|
907
|
-
for (let
|
|
908
|
-
const
|
|
909
|
-
|
|
907
|
+
for (let r = 0; r < s.length; r++) {
|
|
908
|
+
const a = s[r];
|
|
909
|
+
a < i && (i = a);
|
|
910
910
|
}
|
|
911
911
|
return i;
|
|
912
912
|
}, e = [];
|
|
@@ -921,11 +921,11 @@ function lA(n) {
|
|
|
921
921
|
};
|
|
922
922
|
});
|
|
923
923
|
const A = (s, i = 1) => {
|
|
924
|
-
e[i] || (e[i] = {}), Object.entries(s).forEach(([
|
|
925
|
-
|
|
924
|
+
e[i] || (e[i] = {}), Object.entries(s).forEach(([r, a]) => {
|
|
925
|
+
a.forEach((c) => {
|
|
926
926
|
if (!c) return;
|
|
927
|
-
const
|
|
928
|
-
(!(
|
|
927
|
+
const o = t(c.fArray.filter((h) => h !== 0));
|
|
928
|
+
(!(r in e[i]) || o > e[i][r]) && (e[i][r] = o), c.children && A(c.children, i + 1);
|
|
929
929
|
});
|
|
930
930
|
});
|
|
931
931
|
};
|
|
@@ -937,10 +937,10 @@ function hA(n) {
|
|
|
937
937
|
let e = [];
|
|
938
938
|
e.push(t);
|
|
939
939
|
const A = (s, i = 1) => {
|
|
940
|
-
let
|
|
941
|
-
return i >= e.length && e.push(0), Object.entries(s).forEach((
|
|
942
|
-
|
|
943
|
-
|
|
940
|
+
let r = 0;
|
|
941
|
+
return i >= e.length && e.push(0), Object.entries(s).forEach((a, c) => {
|
|
942
|
+
a[1].forEach((o) => {
|
|
943
|
+
o && (r = o.fXaxis.fNbins * o.fYaxis.fNbins * o.fZaxis.fNbins, r > e[i] && (e[i] = r), o.children && A(o.children, i + 1));
|
|
944
944
|
});
|
|
945
945
|
}), e;
|
|
946
946
|
};
|
|
@@ -957,16 +957,16 @@ function uA(n, t, e) {
|
|
|
957
957
|
new X(s.min).toArray(e, i), new X(s.max).toArray(e, i + 3), A++;
|
|
958
958
|
}), t.uniforms.colorPairs = { value: e }, t.uniformsNeedUpdate = !0;
|
|
959
959
|
}
|
|
960
|
-
function dA(n, t, e, A, s, i,
|
|
961
|
-
const c = ((h,
|
|
962
|
-
let
|
|
963
|
-
return n.set[i] ?
|
|
960
|
+
function dA(n, t, e, A, s, i, r) {
|
|
961
|
+
const c = ((h, l, u) => (h - l) / (u - l))(e, A, s);
|
|
962
|
+
let o = 0;
|
|
963
|
+
return n.set[i] ? o = 1 + n.layer.length + i : n.layer[r] && (o = 1 + r), o + c;
|
|
964
964
|
}
|
|
965
|
-
function se(n, t, e, A, s, i,
|
|
965
|
+
function se(n, t, e, A, s, i, r) {
|
|
966
966
|
if (!(1 / n === -1 / 0 || n < 0))
|
|
967
|
-
return
|
|
968
|
-
const c = Math.abs(n),
|
|
969
|
-
return
|
|
967
|
+
return r[0] = t[n], r[1] = t[n + 1], r[2] = t[n + 2], r[3] = e[n], r[4] = e[n + 1], r[5] = e[n + 2], r;
|
|
968
|
+
const c = Math.abs(n), o = i !== null ? A[s][i] : A[s];
|
|
969
|
+
return r[0] = o.pos[c], r[1] = o.pos[c + 1], r[2] = o.pos[c + 2], r[3] = o.scale[c], r[4] = o.scale[c + 1], r[5] = o.scale[c + 2], r;
|
|
970
970
|
}
|
|
971
971
|
const fA = (n) => {
|
|
972
972
|
if (!n) return !1;
|
|
@@ -975,55 +975,55 @@ const fA = (n) => {
|
|
|
975
975
|
return !0;
|
|
976
976
|
return !1;
|
|
977
977
|
};
|
|
978
|
-
function kt(n, t, e, A, s, i,
|
|
979
|
-
const
|
|
980
|
-
let h = 0,
|
|
981
|
-
const u = new Float32Array((
|
|
978
|
+
function kt(n, t, e, A, s, i, r) {
|
|
979
|
+
const a = t.fXaxis.fNbins, c = t.fYaxis.fNbins, o = t.fZaxis.fNbins;
|
|
980
|
+
let h = 0, l = 0;
|
|
981
|
+
const u = new Float32Array((a * c * o - 1) * 3), d = new Float32Array((a * c * o - 1) * 3), g = new Float32Array(a * c * o - 1), p = new Float32Array(a * c * o - 1), y = new Float32Array(a * c * o - 1), f = new Float32Array(6), b = new Float32Array(6), x = (C) => {
|
|
982
982
|
const z = B * 3;
|
|
983
|
-
u[z] = C[0], u[z + 1] = C[1], u[z + 2] = C[2], d[z] = C[3], d[z + 1] = C[4], d[z + 2] = C[5], g[B] = C[6], p[B] = C[7],
|
|
984
|
-
},
|
|
983
|
+
u[z] = C[0], u[z + 1] = C[1], u[z + 2] = C[2], d[z] = C[3], d[z + 1] = C[4], d[z + 2] = C[5], g[B] = C[6], p[B] = C[7], y[B] = C[8];
|
|
984
|
+
}, v = (C, z, O, E) => {
|
|
985
985
|
se(C, u, d, n, O, E, f), se(z, u, d, n, O, E, b);
|
|
986
|
-
const Y = f[0] - f[3] * 0.5 < b[0] - b[3] * 0.5 ? f[0] - f[3] * 0.5 : b[0] - b[3] * 0.5, P = f[1] - f[4] * 0.5 < b[1] - b[4] * 0.5 ? f[1] - f[4] * 0.5 : b[1] - b[4] * 0.5, k = f[2] - f[5] * 0.5 < b[2] - b[5] * 0.5 ? f[2] - f[5] * 0.5 : b[2] - b[5] * 0.5, V = f[0] + f[3] * 0.5 > b[0] + b[3] * 0.5 ? f[0] + f[3] * 0.5 : b[0] + b[3] * 0.5,
|
|
987
|
-
return G[0] = (Y + V) * 0.5, G[1] = (P +
|
|
986
|
+
const Y = f[0] - f[3] * 0.5 < b[0] - b[3] * 0.5 ? f[0] - f[3] * 0.5 : b[0] - b[3] * 0.5, P = f[1] - f[4] * 0.5 < b[1] - b[4] * 0.5 ? f[1] - f[4] * 0.5 : b[1] - b[4] * 0.5, k = f[2] - f[5] * 0.5 < b[2] - b[5] * 0.5 ? f[2] - f[5] * 0.5 : b[2] - b[5] * 0.5, V = f[0] + f[3] * 0.5 > b[0] + b[3] * 0.5 ? f[0] + f[3] * 0.5 : b[0] + b[3] * 0.5, j = f[1] + f[4] * 0.5 > b[1] + b[4] * 0.5 ? f[1] + f[4] * 0.5 : b[1] + b[4] * 0.5, Q = f[2] + f[5] * 0.5 > b[2] + b[5] * 0.5 ? f[2] + f[5] * 0.5 : b[2] + b[5] * 0.5, G = new Float32Array(9);
|
|
987
|
+
return G[0] = (Y + V) * 0.5, G[1] = (P + j) * 0.5, G[2] = (k + Q) * 0.5, G[3] = V - Y, G[4] = j - P, G[5] = Q - k, G;
|
|
988
988
|
};
|
|
989
989
|
let B = 0;
|
|
990
990
|
for (let C = 0; C < c; C++) {
|
|
991
|
-
for (let O = 0; O <
|
|
992
|
-
const E = h +
|
|
993
|
-
let Y = new Array(
|
|
994
|
-
for (let P = 0; P <
|
|
991
|
+
for (let O = 0; O < o; O++) {
|
|
992
|
+
const E = h + r;
|
|
993
|
+
let Y = new Array(a);
|
|
994
|
+
for (let P = 0; P < a; P++)
|
|
995
995
|
Y[P] = -P - E;
|
|
996
996
|
for (; Y.length > 1; ) {
|
|
997
997
|
let P = 0;
|
|
998
998
|
const k = Math.floor(Y.length / 2);
|
|
999
999
|
for (let V = 0; V < k; V++) {
|
|
1000
|
-
const
|
|
1001
|
-
Y.splice(P, 2, B), St(G, i), G[6] = 1 /
|
|
1000
|
+
const j = Y[P], Q = Y[P + 1], G = v(j * 3, Q * 3, e, A);
|
|
1001
|
+
Y.splice(P, 2, B), St(G, i), G[6] = 1 / j === -1 / 0 || j < 0 ? j : y[j], G[7] = 1 / Q === -1 / 0 || Q < 0 ? Q : y[Q], G[8] = l, x(G), B += 1, l += 1, P += 1;
|
|
1002
1002
|
}
|
|
1003
1003
|
}
|
|
1004
|
-
h +=
|
|
1004
|
+
h += a;
|
|
1005
1005
|
}
|
|
1006
|
-
const z = new Array(
|
|
1007
|
-
for (let O = 0; O <
|
|
1008
|
-
z[O] = B - 1 - (
|
|
1006
|
+
const z = new Array(o);
|
|
1007
|
+
for (let O = 0; O < o; O++)
|
|
1008
|
+
z[O] = B - 1 - (o - 1 - O) * (a - 1);
|
|
1009
1009
|
for (; z.length > 1; ) {
|
|
1010
1010
|
let O = 0;
|
|
1011
1011
|
const E = Math.floor(z.length / 2);
|
|
1012
1012
|
for (let Y = 0; Y < E; Y++) {
|
|
1013
|
-
const P = z[O], k = z[O + 1], V =
|
|
1014
|
-
z.splice(O, 2, B), St(V, i), V[6] =
|
|
1013
|
+
const P = z[O], k = z[O + 1], V = v(P * 3, k * 3, e, A);
|
|
1014
|
+
z.splice(O, 2, B), St(V, i), V[6] = y[P], V[7] = y[k], V[8] = l, x(V), B += 1, l += 1, O += 1;
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
1017
|
}
|
|
1018
1018
|
const D = new Array(c);
|
|
1019
1019
|
for (let C = 0; C < c; C++)
|
|
1020
|
-
D[C] = B - 1 - (c - 1 - C) * (
|
|
1020
|
+
D[C] = B - 1 - (c - 1 - C) * (a * o - 1);
|
|
1021
1021
|
for (; D.length > 1; ) {
|
|
1022
1022
|
let C = 0;
|
|
1023
1023
|
const z = Math.floor(D.length / 2);
|
|
1024
1024
|
for (let O = 0; O < z; O++) {
|
|
1025
|
-
const E = D[C], Y = D[C + 1], P =
|
|
1026
|
-
D.splice(C, 2, B), St(P, i), P[6] =
|
|
1025
|
+
const E = D[C], Y = D[C + 1], P = v(E * 3, Y * 3, e, A);
|
|
1026
|
+
D.splice(C, 2, B), St(P, i), P[6] = y[E], P[7] = y[Y], P[8] = l, x(P), B += 1, l += 1, C += 1;
|
|
1027
1027
|
}
|
|
1028
1028
|
}
|
|
1029
1029
|
return {
|
|
@@ -1033,12 +1033,12 @@ function kt(n, t, e, A, s, i, o) {
|
|
|
1033
1033
|
right: p
|
|
1034
1034
|
};
|
|
1035
1035
|
}
|
|
1036
|
-
function gA(n, t, e, A, s, i,
|
|
1037
|
-
const
|
|
1038
|
-
|
|
1036
|
+
function gA(n, t, e, A, s, i, r) {
|
|
1037
|
+
const a = new Array(n.length).fill().map((o) => []);
|
|
1038
|
+
a[a.length - 1] = Array.from(
|
|
1039
1039
|
{ length: s.length },
|
|
1040
1040
|
() => []
|
|
1041
|
-
),
|
|
1041
|
+
), a[0] = [kt(
|
|
1042
1042
|
n,
|
|
1043
1043
|
t,
|
|
1044
1044
|
e,
|
|
@@ -1047,64 +1047,64 @@ function gA(n, t, e, A, s, i, o) {
|
|
|
1047
1047
|
i,
|
|
1048
1048
|
0
|
|
1049
1049
|
)];
|
|
1050
|
-
const c = (
|
|
1051
|
-
var
|
|
1052
|
-
if (!
|
|
1050
|
+
const c = (o, h, l) => {
|
|
1051
|
+
var y;
|
|
1052
|
+
if (!o.children) return;
|
|
1053
1053
|
const u = new pe(
|
|
1054
1054
|
[
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1055
|
+
o.fXaxis.fNbins,
|
|
1056
|
+
o.fYaxis.fNbins,
|
|
1057
|
+
o.fZaxis.fNbins
|
|
1058
1058
|
]
|
|
1059
|
-
), d =
|
|
1059
|
+
), d = o.fXaxis.fNbins * o.fYaxis.fNbins * o.fZaxis.fNbins, g = r.slice(1, h - 1).reduce((f, b) => f * b, r[1]), p = r[h];
|
|
1060
1060
|
for (let f = 0; f < d; f++) {
|
|
1061
1061
|
const b = { x: u.getValueAt(0), y: u.getValueAt(1), z: u.getValueAt(2) };
|
|
1062
|
-
if ((
|
|
1063
|
-
const
|
|
1064
|
-
if (!
|
|
1062
|
+
if ((y = o == null ? void 0 : o.children) != null && y.content) {
|
|
1063
|
+
const x = o.children.content[o.getBin(b.x + 1, b.y + 1, b.z + 1)];
|
|
1064
|
+
if (!x) {
|
|
1065
1065
|
if (u.increment() === !1) break;
|
|
1066
1066
|
continue;
|
|
1067
1067
|
}
|
|
1068
|
-
|
|
1068
|
+
a[h][f + l] = kt(
|
|
1069
1069
|
n,
|
|
1070
|
-
|
|
1070
|
+
x,
|
|
1071
1071
|
h,
|
|
1072
1072
|
null,
|
|
1073
1073
|
s,
|
|
1074
1074
|
i,
|
|
1075
|
-
(f +
|
|
1076
|
-
), c(
|
|
1077
|
-
} else fA(
|
|
1078
|
-
const
|
|
1075
|
+
(f + l) * p
|
|
1076
|
+
), c(x, h + 1, (u.getIndex() + l) * g);
|
|
1077
|
+
} else fA(o.children) && A.forEach((x) => {
|
|
1078
|
+
const v = s.indexOf(x), B = (f + l) * p;
|
|
1079
1079
|
let D = !1;
|
|
1080
|
-
for (let z = B; z < B +
|
|
1081
|
-
if (n[h][
|
|
1080
|
+
for (let z = B; z < B + r[h]; z++)
|
|
1081
|
+
if (n[h][v].rendered[z] !== -1) {
|
|
1082
1082
|
D = !0;
|
|
1083
1083
|
break;
|
|
1084
1084
|
}
|
|
1085
1085
|
if (!D) {
|
|
1086
|
-
|
|
1086
|
+
a[h][v].push(null);
|
|
1087
1087
|
return;
|
|
1088
1088
|
}
|
|
1089
|
-
const C =
|
|
1090
|
-
C && (
|
|
1089
|
+
const C = o.children[x][o.getBin(b.x + 1, b.z + 1, b.y + 1)];
|
|
1090
|
+
C && (a[h][v][f + l] = kt(
|
|
1091
1091
|
n,
|
|
1092
1092
|
C,
|
|
1093
1093
|
h,
|
|
1094
|
-
|
|
1094
|
+
v,
|
|
1095
1095
|
s,
|
|
1096
1096
|
i,
|
|
1097
|
-
(f +
|
|
1097
|
+
(f + l) * p
|
|
1098
1098
|
), c(
|
|
1099
1099
|
C,
|
|
1100
1100
|
h + 1,
|
|
1101
|
-
(u.getIndex() +
|
|
1101
|
+
(u.getIndex() + l) * g
|
|
1102
1102
|
));
|
|
1103
1103
|
});
|
|
1104
1104
|
if (u.increment() === !1) break;
|
|
1105
1105
|
}
|
|
1106
1106
|
};
|
|
1107
|
-
return c(t, 1, 0),
|
|
1107
|
+
return c(t, 1, 0), a;
|
|
1108
1108
|
}
|
|
1109
1109
|
function St(n, t) {
|
|
1110
1110
|
const e = t.elements, A = Math.sqrt(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]), s = Math.sqrt(e[4] * e[4] + e[5] * e[5] + e[6] * e[6]), i = Math.sqrt(e[8] * e[8] + e[9] * e[9] + e[10] * e[10]);
|
|
@@ -1127,11 +1127,11 @@ class ie {
|
|
|
1127
1127
|
* @param set if children contains sets, parameter need to be specified.
|
|
1128
1128
|
* */
|
|
1129
1129
|
setOriginToChild(t, e, A) {
|
|
1130
|
-
var i,
|
|
1130
|
+
var i, r;
|
|
1131
1131
|
if (!t) return;
|
|
1132
1132
|
const s = t.splice(0, 1);
|
|
1133
1133
|
if ((i = this.origin) != null && i.children) {
|
|
1134
|
-
if ((
|
|
1134
|
+
if ((r = this.origin.children) != null && r.content)
|
|
1135
1135
|
this.parentPath.push({ origin: this.origin, range: A, bin: s }), this.origin = this.origin.children.content[s], this.isOnSet = !1;
|
|
1136
1136
|
else if (Object.keys(this.origin.children).includes(e))
|
|
1137
1137
|
this.parentPath.push({ origin: this.origin, range: A, bin: s }), this.origin = this.origin.children[e][s], this.isOnSet = !0;
|
|
@@ -1189,10 +1189,10 @@ class mA {
|
|
|
1189
1189
|
m(this, "numOfavailableSets");
|
|
1190
1190
|
m(this, "visibility", !0);
|
|
1191
1191
|
this.config = A, this.maxInstancesPerLayer = t;
|
|
1192
|
-
const s = new
|
|
1193
|
-
this.instGeom = new
|
|
1194
|
-
for (const
|
|
1195
|
-
this.instGeom.setAttribute(
|
|
1192
|
+
const s = new vt(1, 1, 1), i = new _t(s);
|
|
1193
|
+
this.instGeom = new xt(), this.instGeom.instanceCount = 0, this.instGeom.frustumCulled = !1, this.instGeom.index = i.index;
|
|
1194
|
+
for (const r in i.attributes)
|
|
1195
|
+
this.instGeom.setAttribute(r, i.attributes[r]);
|
|
1196
1196
|
this.material = this.createMaterial(), this.colorArray = new Float32Array(32 * 3), this.fillColorArray(), this.instancePositions = new Float32Array(3), this.instanceScales = new Float32Array(3), this.instanceColors = new Float32Array(1), this.instGeom.setAttribute(
|
|
1197
1197
|
"instancePosition",
|
|
1198
1198
|
new L(this.instancePositions, 3)
|
|
@@ -1202,75 +1202,75 @@ class mA {
|
|
|
1202
1202
|
), this.instGeom.setAttribute(
|
|
1203
1203
|
"instanceColorIndex",
|
|
1204
1204
|
new L(this.instanceColors, 1)
|
|
1205
|
-
), this.wireframe = new te(this.instGeom, this.material), this.wireframe.frustumCulled = !1, this.stateSub = tt().getObservable().subscribe((
|
|
1206
|
-
this.numOfavailableSets =
|
|
1205
|
+
), this.wireframe = new te(this.instGeom, this.material), this.wireframe.frustumCulled = !1, this.stateSub = tt().getObservable().subscribe((r) => {
|
|
1206
|
+
this.numOfavailableSets = r.sets.length;
|
|
1207
1207
|
});
|
|
1208
1208
|
}
|
|
1209
1209
|
pushVisibleInstances(t, e, A) {
|
|
1210
1210
|
let s = this.wireframe.parent;
|
|
1211
1211
|
s && (s.remove(this.wireframe), this.instGeom.dispose());
|
|
1212
1212
|
const i = [];
|
|
1213
|
-
let
|
|
1214
|
-
Array.isArray(t[
|
|
1213
|
+
let r = t.length - 1;
|
|
1214
|
+
Array.isArray(t[r]) && (r = r - 1);
|
|
1215
1215
|
{
|
|
1216
|
-
const b = (Array.isArray(t[
|
|
1217
|
-
for (let
|
|
1218
|
-
i[
|
|
1216
|
+
const b = (Array.isArray(t[r]) ? t[r][A] : t[r]).rendered, x = new Uint8Array(b.length);
|
|
1217
|
+
for (let v = 0; v < b.length; v++) x[v] = b[v] !== -1 ? 1 : 0;
|
|
1218
|
+
i[r] = x;
|
|
1219
1219
|
}
|
|
1220
|
-
for (let f =
|
|
1221
|
-
const
|
|
1222
|
-
for (let C = 0; C <
|
|
1223
|
-
if (
|
|
1220
|
+
for (let f = r - 1; f >= 0; f--) {
|
|
1221
|
+
const x = (Array.isArray(t[f]) ? t[f][A] : t[f]).rendered, v = i[f + 1], B = e[f + 1] || 0, D = new Uint8Array(x.length);
|
|
1222
|
+
for (let C = 0; C < x.length; C++) {
|
|
1223
|
+
if (x[C] !== -1) {
|
|
1224
1224
|
D[C] = 1;
|
|
1225
1225
|
continue;
|
|
1226
1226
|
}
|
|
1227
1227
|
const z = C * B, O = z + B;
|
|
1228
1228
|
for (let E = z; E < O; E++)
|
|
1229
|
-
if (
|
|
1229
|
+
if (v[E]) {
|
|
1230
1230
|
D[C] = 1;
|
|
1231
1231
|
break;
|
|
1232
1232
|
}
|
|
1233
1233
|
}
|
|
1234
1234
|
i[f] = D;
|
|
1235
1235
|
}
|
|
1236
|
-
const
|
|
1237
|
-
let
|
|
1238
|
-
for (;
|
|
1239
|
-
|
|
1240
|
-
const D = t[
|
|
1241
|
-
for (let z = B; z < B + e[
|
|
1236
|
+
const a = (f, b) => i[f][b] === 1, c = (f, b) => {
|
|
1237
|
+
let x = 0, v = f, B = b;
|
|
1238
|
+
for (; v + 1 < t.length; ) {
|
|
1239
|
+
v++, B *= e[v];
|
|
1240
|
+
const D = t[v], C = Array.isArray(D) ? D[A === -1 ? 0 : A] : D;
|
|
1241
|
+
for (let z = B; z < B + e[v]; z++)
|
|
1242
1242
|
if (C.rendered[z] !== -1) {
|
|
1243
|
-
|
|
1243
|
+
x = v - f;
|
|
1244
1244
|
break;
|
|
1245
1245
|
}
|
|
1246
1246
|
}
|
|
1247
|
-
return
|
|
1247
|
+
return x;
|
|
1248
1248
|
};
|
|
1249
|
-
let
|
|
1249
|
+
let o = 0;
|
|
1250
1250
|
for (let f = 0; f < t.length; f++) {
|
|
1251
1251
|
const b = t[f];
|
|
1252
1252
|
if (!Array.isArray(b))
|
|
1253
|
-
for (let
|
|
1254
|
-
|
|
1253
|
+
for (let x = 0; x < b.rendered.length; x++)
|
|
1254
|
+
a(f, x) && o++;
|
|
1255
1255
|
}
|
|
1256
|
-
const h = new Float32Array(
|
|
1256
|
+
const h = new Float32Array(o * 3), l = new Float32Array(o * 3), u = new Float32Array(o);
|
|
1257
1257
|
let d = 0;
|
|
1258
1258
|
for (let f = 0; f < t.length; f++) {
|
|
1259
|
-
const b = t[f],
|
|
1259
|
+
const b = t[f], x = this.getColorIndex(f, A);
|
|
1260
1260
|
if (!Array.isArray(b)) {
|
|
1261
|
-
for (let
|
|
1262
|
-
if (
|
|
1263
|
-
const B = c(f,
|
|
1264
|
-
h[d * 3] = b.pos[
|
|
1261
|
+
for (let v = 0; v < b.rendered.length; v++)
|
|
1262
|
+
if (a(f, v)) {
|
|
1263
|
+
const B = c(f, v) * 0.05;
|
|
1264
|
+
h[d * 3] = b.pos[v * 3], h[d * 3 + 1] = b.pos[v * 3 + 1], h[d * 3 + 2] = b.pos[v * 3 + 2], l[d * 3] = b.scale[v * 3] + B, l[d * 3 + 1] = b.scale[v * 3 + 1] + B, l[d * 3 + 2] = b.scale[v * 3 + 2] + B, u[d++] = x;
|
|
1265
1265
|
}
|
|
1266
1266
|
}
|
|
1267
1267
|
}
|
|
1268
|
-
const g = new
|
|
1269
|
-
this.instGeom = new
|
|
1270
|
-
const
|
|
1271
|
-
for (const f in
|
|
1272
|
-
this.instGeom.setAttribute(f,
|
|
1273
|
-
this.instancePositions = h, this.instanceScales =
|
|
1268
|
+
const g = new vt(1, 1, 1), p = new _t(g);
|
|
1269
|
+
this.instGeom = new xt(), this.instGeom.instanceCount = o, this.instGeom.frustumCulled = !1, this.instGeom.index = p.index;
|
|
1270
|
+
const y = p.attributes;
|
|
1271
|
+
for (const f in y)
|
|
1272
|
+
this.instGeom.setAttribute(f, y[f]);
|
|
1273
|
+
this.instancePositions = h, this.instanceScales = l, this.instanceColors = u, this.instGeom.setAttribute("instancePosition", new L(h, 3)), this.instGeom.setAttribute("instanceScale", new L(l, 3)), this.instGeom.setAttribute("instanceColorIndex", new L(u, 1)), this.wireframe = new te(this.instGeom, this.material), this.wireframe.frustumCulled = !1, s && s.add(this.wireframe);
|
|
1274
1274
|
}
|
|
1275
1275
|
//TODO cool
|
|
1276
1276
|
toggleVisibility(t, e, A) {
|
|
@@ -1363,12 +1363,12 @@ class pA {
|
|
|
1363
1363
|
(i) => i.target.id.includes("*") || i.target.id.includes(this.id)
|
|
1364
1364
|
)
|
|
1365
1365
|
).subscribe((i) => {
|
|
1366
|
-
var
|
|
1367
|
-
this.config = lt().mergeHistogramConfig((
|
|
1368
|
-
const
|
|
1366
|
+
var a;
|
|
1367
|
+
this.config = lt().mergeHistogramConfig((a = this == null ? void 0 : this.opts) == null ? void 0 : a.config), this.keyBindings = ke(i.config.bindings);
|
|
1368
|
+
const r = i.config.environment.histogramPads.find(
|
|
1369
1369
|
(c) => c.id === this.id
|
|
1370
1370
|
);
|
|
1371
|
-
this.limits =
|
|
1371
|
+
this.limits = r ?? {
|
|
1372
1372
|
scale: { x: 20, y: 10, z: 20 },
|
|
1373
1373
|
padding: { x: 0, y: 0, z: 0 },
|
|
1374
1374
|
position: { x: 0, y: 0, z: -5 }
|
|
@@ -1541,8 +1541,8 @@ class IA extends pA {
|
|
|
1541
1541
|
this.setupMatrixCache();
|
|
1542
1542
|
let e = this.maxInstancesPerLayer.reduce((s, i) => s * i, 1);
|
|
1543
1543
|
this.selectedSet.length > 1 && (e *= this.selectedSet.length);
|
|
1544
|
-
const A = new
|
|
1545
|
-
this.instGeom = new
|
|
1544
|
+
const A = new vt(1, 1, 1);
|
|
1545
|
+
this.instGeom = new xt(), this.instGeom.instanceCount = 0, this.instGeom.frustumCulled = !1, this.instGeom.index = A.index;
|
|
1546
1546
|
for (const s in A.attributes)
|
|
1547
1547
|
this.instGeom.setAttribute(s, A.attributes[s]);
|
|
1548
1548
|
this.material = this.createMaterial(), this.colorArray = new Float32Array(32 * 6), this.material.uniforms.colorArray = { value: this.colorArray }, uA(this.config, this.material, this.colorArray), this.instancePositions = new Float32Array(3), this.instanceScales = new Float32Array(3), this.instanceColors = new Float32Array(1), this.instGeom.setAttribute(
|
|
@@ -1561,41 +1561,41 @@ class IA extends pA {
|
|
|
1561
1561
|
e && (e.remove(this.mesh), this.instGeom.dispose());
|
|
1562
1562
|
let A = 0;
|
|
1563
1563
|
for (let h = 0; h < this.matrixCache.length; h++) {
|
|
1564
|
-
const
|
|
1565
|
-
if (Array.isArray(
|
|
1566
|
-
for (let u = 0; u <
|
|
1567
|
-
const d =
|
|
1564
|
+
const l = this.matrixCache[h];
|
|
1565
|
+
if (Array.isArray(l))
|
|
1566
|
+
for (let u = 0; u < l.length; u++) {
|
|
1567
|
+
const d = l[u];
|
|
1568
1568
|
for (let g = 0; g < d.rendered.length; g++)
|
|
1569
1569
|
d.rendered[g] !== -1 && A++;
|
|
1570
1570
|
}
|
|
1571
1571
|
else
|
|
1572
|
-
for (let u = 0; u <
|
|
1573
|
-
|
|
1572
|
+
for (let u = 0; u < l.rendered.length; u++)
|
|
1573
|
+
l.rendered[u] !== -1 && A++;
|
|
1574
1574
|
}
|
|
1575
|
-
const s = new Float32Array(A * 3), i = new Float32Array(A * 3),
|
|
1576
|
-
let
|
|
1575
|
+
const s = new Float32Array(A * 3), i = new Float32Array(A * 3), r = new Float32Array(A);
|
|
1576
|
+
let a = 0;
|
|
1577
1577
|
for (let h = 0; h < this.matrixCache.length; h++) {
|
|
1578
|
-
const
|
|
1579
|
-
if (Array.isArray(
|
|
1580
|
-
for (let u = 0; u <
|
|
1581
|
-
const d =
|
|
1578
|
+
const l = this.matrixCache[h];
|
|
1579
|
+
if (Array.isArray(l))
|
|
1580
|
+
for (let u = 0; u < l.length; u++) {
|
|
1581
|
+
const d = l[u];
|
|
1582
1582
|
for (let g = 0; g < d.rendered.length; g++)
|
|
1583
|
-
d.rendered[g] !== -1 && (s[
|
|
1583
|
+
d.rendered[g] !== -1 && (s[a * 3] = d.pos[g * 3], s[a * 3 + 1] = d.pos[g * 3 + 1], s[a * 3 + 2] = d.pos[g * 3 + 2], i[a * 3] = d.scale[g * 3], i[a * 3 + 1] = d.scale[g * 3 + 1], i[a * 3 + 2] = d.scale[g * 3 + 2], r[a++] = d.rendered[g]);
|
|
1584
1584
|
}
|
|
1585
1585
|
else
|
|
1586
|
-
for (let u = 0; u <
|
|
1587
|
-
|
|
1586
|
+
for (let u = 0; u < l.rendered.length; u++)
|
|
1587
|
+
l.rendered[u] !== -1 && (s[a * 3] = l.pos[u * 3], s[a * 3 + 1] = l.pos[u * 3 + 1], s[a * 3 + 2] = l.pos[u * 3 + 2], i[a * 3] = l.scale[u * 3], i[a * 3 + 1] = l.scale[u * 3 + 1], i[a * 3 + 2] = l.scale[u * 3 + 2], r[a++] = l.rendered[u]);
|
|
1588
1588
|
}
|
|
1589
|
-
const c = new
|
|
1590
|
-
this.instGeom = new
|
|
1591
|
-
const
|
|
1592
|
-
for (const h in
|
|
1593
|
-
this.instGeom.setAttribute(h,
|
|
1594
|
-
this.instancePositions = s, this.instanceScales = i, this.instanceColors =
|
|
1589
|
+
const c = new vt(1, 1, 1);
|
|
1590
|
+
this.instGeom = new xt(), this.instGeom.instanceCount = A, this.instGeom.frustumCulled = !1, this.instGeom.index = c.index;
|
|
1591
|
+
const o = c.attributes;
|
|
1592
|
+
for (const h in o)
|
|
1593
|
+
this.instGeom.setAttribute(h, o[h]);
|
|
1594
|
+
this.instancePositions = s, this.instanceScales = i, this.instanceColors = r, this.instGeom.setAttribute("instancePosition", new L(s, 3)), this.instGeom.setAttribute("instanceScale", new L(i, 3)), this.instGeom.setAttribute("instanceColorIndex", new L(r, 1)), this.mesh = new Ct(this.instGeom, this.material), this.mesh.raycast = this.raycastHandler, this.mesh.frustumCulled = !1, e && e.add(this.mesh);
|
|
1595
1595
|
}
|
|
1596
|
-
setMatrixCacheAt(e, A, s, i,
|
|
1597
|
-
const
|
|
1598
|
-
|
|
1596
|
+
setMatrixCacheAt(e, A, s, i, r) {
|
|
1597
|
+
const a = A !== null ? this.matrixCache[e][A] : this.matrixCache[e];
|
|
1598
|
+
a.pos[s * 3] = i.x.pos, a.pos[s * 3 + 1] = i.y.pos, a.pos[s * 3 + 2] = i.z.pos, a.scale[s * 3] = i.x.size, a.scale[s * 3 + 1] = i.y.size, a.scale[s * 3 + 2] = i.z.size, a.rendered[s] = r;
|
|
1599
1599
|
}
|
|
1600
1600
|
/**
|
|
1601
1601
|
* @desc Render whole or part of histogram.
|
|
@@ -1620,48 +1620,48 @@ class IA extends pA {
|
|
|
1620
1620
|
x: { size: 0, pos: 0 },
|
|
1621
1621
|
y: { size: 0, pos: 0 },
|
|
1622
1622
|
z: { size: 0, pos: 0 }
|
|
1623
|
-
},
|
|
1624
|
-
var k, V,
|
|
1625
|
-
if (
|
|
1623
|
+
}, r = async (a, c, o, h, l, u) => {
|
|
1624
|
+
var k, V, j, Q, G, Nt, Ut;
|
|
1625
|
+
if (o > s || !h) return;
|
|
1626
1626
|
const d = new pe(
|
|
1627
1627
|
[h.fXaxis.fNbins, h.fYaxis.fNbins, h.fZaxis.fNbins]
|
|
1628
1628
|
);
|
|
1629
|
-
let g, p,
|
|
1630
|
-
const b = ((V = (k = h.fArrays) == null ? void 0 : k[this.selectedArray]) == null ? void 0 : V.outside) ?? !1,
|
|
1629
|
+
let g, p, y, f;
|
|
1630
|
+
const b = ((V = (k = h.fArrays) == null ? void 0 : k[this.selectedArray]) == null ? void 0 : V.outside) ?? !1, x = this.selectedSet.indexOf(u), v = this.availableSets.indexOf(u);
|
|
1631
1631
|
if (this.config.sets.scale.maximum === "relative") {
|
|
1632
|
-
const T = (
|
|
1632
|
+
const T = (j = h.fArrays) == null ? void 0 : j[this.selectedArray];
|
|
1633
1633
|
if (T) {
|
|
1634
1634
|
const F = T.values.filter(
|
|
1635
1635
|
(M) => M !== 0
|
|
1636
1636
|
);
|
|
1637
|
-
|
|
1637
|
+
y = Math.min(...F), f = Math.max(...F), g = T.min ?? y, p = T.max ?? f;
|
|
1638
1638
|
} else {
|
|
1639
1639
|
const F = h.fArray.filter((M) => M !== 0);
|
|
1640
1640
|
g = Math.min(...F), p = Math.max(...F);
|
|
1641
1641
|
}
|
|
1642
|
-
} else u && this.maxContentPerLayer[
|
|
1642
|
+
} else u && this.maxContentPerLayer[o][u] ? (p = this.maxContentPerLayer[o][u], g = this.minContentPerLayer[o][u]) : (p = this.maxContentPerLayer[o][this.selectedArray], g = this.minContentPerLayer[o][this.selectedArray]);
|
|
1643
1643
|
g === p && (g = p - 1);
|
|
1644
|
-
const B = h._typename.substring(0, 3) === "TH3", D = h._typename.substring(0, 3) === "TH2", C = h._typename.substring(0, 3) === "TH1", z = this.maxInstancesPerLayer.slice(
|
|
1645
|
-
d.setFromNumber(
|
|
1646
|
-
const O = this.config.padding.layer[
|
|
1647
|
-
let E = !this.config.padding.layer[
|
|
1644
|
+
const B = h._typename.substring(0, 3) === "TH3", D = h._typename.substring(0, 3) === "TH2", C = h._typename.substring(0, 3) === "TH1", z = this.maxInstancesPerLayer.slice(o + 1).reduce((T, F) => T * F, 1);
|
|
1645
|
+
d.setFromNumber(a / z);
|
|
1646
|
+
const O = this.config.padding.layer[o] ?? this.config.padding.default;
|
|
1647
|
+
let E = !this.config.padding.layer[o] && C ? { x: O.x, y: O.y, z: O.z } : { ...O };
|
|
1648
1648
|
u && this.config.padding.sets && C && (E = { x: this.config.padding.sets.x, y: 0, z: 0 }), this.pointer.isOnSet && (E = { x: 0, y: 0, z: 0 });
|
|
1649
|
-
const { min: Y, max: P } = (Q = this.config.scale) != null && Q[
|
|
1650
|
-
for (let T =
|
|
1649
|
+
const { min: Y, max: P } = (Q = this.config.scale) != null && Q[o] ? (G = this.config.scale) == null ? void 0 : G[o] : this.config.scale.default;
|
|
1650
|
+
for (let T = a; T < c; T += z) {
|
|
1651
1651
|
const F = {
|
|
1652
1652
|
x: d.getValueAt(0),
|
|
1653
1653
|
y: d.getValueAt(1),
|
|
1654
1654
|
z: d.getValueAt(2)
|
|
1655
1655
|
}, M = rA(
|
|
1656
|
-
|
|
1657
|
-
|
|
1656
|
+
l.position.z,
|
|
1657
|
+
l.scale.z,
|
|
1658
1658
|
iA(nA(
|
|
1659
1659
|
h,
|
|
1660
1660
|
F,
|
|
1661
1661
|
E,
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1662
|
+
l == null ? void 0 : l.scale,
|
|
1663
|
+
l == null ? void 0 : l.position,
|
|
1664
|
+
o,
|
|
1665
1665
|
i
|
|
1666
1666
|
))
|
|
1667
1667
|
), J = this.getBinContent(
|
|
@@ -1671,53 +1671,53 @@ class IA extends pA {
|
|
|
1671
1671
|
F.z,
|
|
1672
1672
|
this.selectedArray
|
|
1673
1673
|
);
|
|
1674
|
-
let
|
|
1674
|
+
let N = 1;
|
|
1675
1675
|
if ((J >= g && J <= p) == !b) {
|
|
1676
1676
|
const R = (J - g) / (p - g);
|
|
1677
1677
|
if (!b)
|
|
1678
|
-
|
|
1678
|
+
N = Number.isInteger(J) && J === 0 ? N = 0 : (P - Y) * R + Y;
|
|
1679
1679
|
else {
|
|
1680
|
-
const at = (J -
|
|
1681
|
-
|
|
1680
|
+
const at = (J - y) / (f - y);
|
|
1681
|
+
N = Number.isInteger(J) && J === 0 ? N = 0 : (P - Y) * at + Y;
|
|
1682
1682
|
}
|
|
1683
1683
|
} else
|
|
1684
|
-
|
|
1684
|
+
N = 0;
|
|
1685
1685
|
this.color = dA(
|
|
1686
1686
|
this.config.color,
|
|
1687
1687
|
this.availableSets,
|
|
1688
1688
|
J,
|
|
1689
1689
|
0,
|
|
1690
1690
|
p,
|
|
1691
|
-
|
|
1692
|
-
|
|
1691
|
+
v,
|
|
1692
|
+
o
|
|
1693
1693
|
);
|
|
1694
|
-
const gt = M.y.size *
|
|
1695
|
-
if (
|
|
1694
|
+
const gt = M.y.size * N;
|
|
1695
|
+
if (N === 0)
|
|
1696
1696
|
M.x.size = 0, M.z.size = 0, M.y.size = 0;
|
|
1697
1697
|
else if (B)
|
|
1698
|
-
M.x.size *=
|
|
1698
|
+
M.x.size *= N, M.z.size *= N, M.y.size = gt;
|
|
1699
1699
|
else if (D)
|
|
1700
1700
|
M.y.pos -= (M.y.size - gt) / 2, M.y.size = gt;
|
|
1701
1701
|
else if (M.y.pos -= (M.y.size - gt) / 2, M.y.size = gt, u) {
|
|
1702
1702
|
const R = this.config.TH1ZScale.set;
|
|
1703
1703
|
M.z.size = R || 0.01;
|
|
1704
1704
|
} else
|
|
1705
|
-
(Ut = (
|
|
1706
|
-
if (u ? (M.z.size = 0.01, M.z.pos += (
|
|
1707
|
-
|
|
1708
|
-
|
|
1705
|
+
(Ut = (Nt = this.config.TH1ZScale) == null ? void 0 : Nt.layer) != null && Ut[o] ? M.z.size = l.scale.z * this.config.TH1ZScale.layer[o] : M.z.size = l.scale.z * this.config.TH1ZScale.default;
|
|
1706
|
+
if (u ? (M.z.size = 0.01, M.z.pos += (x - (this.selectedSet.length - 1) / 2) * 0.1, this.setMatrixCacheAt(
|
|
1707
|
+
o,
|
|
1708
|
+
v,
|
|
1709
1709
|
T / z,
|
|
1710
1710
|
M,
|
|
1711
|
-
|
|
1712
|
-
)) : (this.pointer.isOnSet && (M.z.size = 0.01, M.z.pos += (
|
|
1713
|
-
|
|
1711
|
+
o === s && N !== 0 ? this.color : -1
|
|
1712
|
+
)) : (this.pointer.isOnSet && (M.z.size = 0.01, M.z.pos += (x - (this.selectedSet.length - 1) / 2) * 0.1), this.setMatrixCacheAt(
|
|
1713
|
+
o,
|
|
1714
1714
|
null,
|
|
1715
1715
|
T / z,
|
|
1716
1716
|
M,
|
|
1717
|
-
|
|
1718
|
-
)),
|
|
1717
|
+
o === s && N !== 0 ? this.color : -1
|
|
1718
|
+
)), o === s) {
|
|
1719
1719
|
let R = T;
|
|
1720
|
-
u && (R += this.totalInstances *
|
|
1720
|
+
u && (R += this.totalInstances * x);
|
|
1721
1721
|
} else {
|
|
1722
1722
|
const R = h.getBin(F.x + 1, F.y + 1, F.z + 1);
|
|
1723
1723
|
let at;
|
|
@@ -1725,14 +1725,14 @@ class IA extends pA {
|
|
|
1725
1725
|
position: new H(M.x.pos, M.y.pos, M.z.pos),
|
|
1726
1726
|
scale: new H(M.x.size, M.y.size, M.z.size)
|
|
1727
1727
|
};
|
|
1728
|
-
h.children.content ? (at = h.children.content[R],
|
|
1729
|
-
at = h.children[Jt][R],
|
|
1728
|
+
h.children.content ? (at = h.children.content[R], r(T, c, o + 1, at, Zt)) : this.selectedSet.forEach((Jt) => {
|
|
1729
|
+
at = h.children[Jt][R], r(T, c, o + 1, at, Zt, Jt);
|
|
1730
1730
|
});
|
|
1731
1731
|
}
|
|
1732
1732
|
if (!d.increment()) break;
|
|
1733
1733
|
}
|
|
1734
1734
|
};
|
|
1735
|
-
|
|
1735
|
+
r(e, A, 0, this.pointer.origin, this.limits).then(() => {
|
|
1736
1736
|
setTimeout(() => {
|
|
1737
1737
|
this.wireframe.pushVisibleInstances(
|
|
1738
1738
|
this.matrixCache,
|
|
@@ -1786,7 +1786,8 @@ class IA extends pA {
|
|
|
1786
1786
|
});
|
|
1787
1787
|
}
|
|
1788
1788
|
mouseClickDefault(e) {
|
|
1789
|
-
|
|
1789
|
+
var A, s, i, r;
|
|
1790
|
+
this.showChildHistogram(e.index), e.selectedArray !== "content" && (e.jsrootObj.fArray = (A = e.jsrootObj.fArrays[e.selectedArray]) == null ? void 0 : A.values, e.jsrootObj.fSumw2 = (s = e.jsrootObj.fArrays[e.selectedArray]) == null ? void 0 : s.errors, e.jsrootObj.fMinimum = (i = e.jsrootObj.fArrays[e.selectedArray]) == null ? void 0 : i.min, e.jsrootObj.fMaximum = (r = e.jsrootObj.fArrays[e.selectedArray]) == null ? void 0 : r.max), ge().next({
|
|
1790
1791
|
// id: this.id + "-cinema",
|
|
1791
1792
|
id: "*",
|
|
1792
1793
|
obj: e.jsrootObj
|
|
@@ -1795,8 +1796,8 @@ class IA extends pA {
|
|
|
1795
1796
|
mousemoveDefault(e) {
|
|
1796
1797
|
if (((g, p) => {
|
|
1797
1798
|
if (g.length !== p.length) return !1;
|
|
1798
|
-
for (let
|
|
1799
|
-
const f = g[
|
|
1799
|
+
for (let y = 0; y < g.length; y++) {
|
|
1800
|
+
const f = g[y], b = p[y];
|
|
1800
1801
|
if (f.x !== b.x || f.y !== b.y || f.z !== b.z) return !1;
|
|
1801
1802
|
}
|
|
1802
1803
|
return !0;
|
|
@@ -1812,14 +1813,14 @@ class IA extends pA {
|
|
|
1812
1813
|
};
|
|
1813
1814
|
});
|
|
1814
1815
|
e.range = e.range.map((g, p) => {
|
|
1815
|
-
const
|
|
1816
|
-
return { ...g, bin:
|
|
1816
|
+
const y = e.jsrootInstance[p];
|
|
1817
|
+
return { ...g, bin: y };
|
|
1817
1818
|
});
|
|
1818
1819
|
const i = {
|
|
1819
1820
|
...e,
|
|
1820
1821
|
level: s.length,
|
|
1821
1822
|
range: s.concat(e.range)
|
|
1822
|
-
}, { range:
|
|
1823
|
+
}, { range: r, level: a, content: c, error: o, set: h, triggerSource: l, instanceId: u } = i, d = { coords: r, level: a, content: c, error: o, set: h, triggerSource: l, instanceId: u };
|
|
1823
1824
|
me().next(d);
|
|
1824
1825
|
}
|
|
1825
1826
|
shiftMouseClickDefault(e) {
|
|
@@ -1905,7 +1906,7 @@ class IA extends pA {
|
|
|
1905
1906
|
this.selectedSet
|
|
1906
1907
|
), i = this.maxInstancesPerLayer.slice(
|
|
1907
1908
|
-this.maxInstancesPerLayer.length + e.length
|
|
1908
|
-
).reduce((
|
|
1909
|
+
).reduce((r, a) => r * a, 1);
|
|
1909
1910
|
this.renderHistogram(
|
|
1910
1911
|
A.slice(-1)[0],
|
|
1911
1912
|
A.slice(-1)[0] + i,
|
|
@@ -1925,16 +1926,16 @@ class IA extends pA {
|
|
|
1925
1926
|
e.length - 1,
|
|
1926
1927
|
this.maxInstancesPerLayer.length - 1
|
|
1927
1928
|
), i = A.reduce(
|
|
1928
|
-
(c,
|
|
1929
|
+
(c, o) => c * o,
|
|
1929
1930
|
1
|
|
1930
|
-
),
|
|
1931
|
+
), r = oA(
|
|
1931
1932
|
e,
|
|
1932
1933
|
this.pointer.origin,
|
|
1933
1934
|
this.maxInstancesPerLayer,
|
|
1934
1935
|
this.selectedSet
|
|
1935
|
-
),
|
|
1936
|
+
), a = Math.floor(r / i) * i;
|
|
1936
1937
|
this.clearMatrixCacheRange(
|
|
1937
|
-
|
|
1938
|
+
a,
|
|
1938
1939
|
i,
|
|
1939
1940
|
s,
|
|
1940
1941
|
e.length - 1
|
|
@@ -1942,8 +1943,8 @@ class IA extends pA {
|
|
|
1942
1943
|
procedure: "hide",
|
|
1943
1944
|
value: e
|
|
1944
1945
|
}), this.renderHistogram(
|
|
1945
|
-
|
|
1946
|
-
|
|
1946
|
+
a,
|
|
1947
|
+
a + i,
|
|
1947
1948
|
e.length - 2
|
|
1948
1949
|
), this.renderHistory.pop();
|
|
1949
1950
|
}
|
|
@@ -1957,21 +1958,21 @@ class IA extends pA {
|
|
|
1957
1958
|
* @param baseLayerIndex start index of layer from which cache is cleared.
|
|
1958
1959
|
* */
|
|
1959
1960
|
clearMatrixCacheRange(e, A, s, i) {
|
|
1960
|
-
let
|
|
1961
|
+
let r = e, a = A;
|
|
1961
1962
|
const c = {
|
|
1962
1963
|
x: { pos: 0, size: 0 },
|
|
1963
1964
|
y: { pos: 0, size: 0 },
|
|
1964
1965
|
z: { pos: 0, size: 0 }
|
|
1965
1966
|
};
|
|
1966
|
-
for (let
|
|
1967
|
-
if (Array.isArray(this.matrixCache[
|
|
1968
|
-
for (let h = 0; h < this.matrixCache[
|
|
1969
|
-
for (let
|
|
1970
|
-
this.setMatrixCacheAt(
|
|
1967
|
+
for (let o = i + s.length - 1; o >= i; o--) {
|
|
1968
|
+
if (Array.isArray(this.matrixCache[o]))
|
|
1969
|
+
for (let h = 0; h < this.matrixCache[o].length; h++)
|
|
1970
|
+
for (let l = r; l < r + a; l++)
|
|
1971
|
+
this.setMatrixCacheAt(o, h, l, c, -1);
|
|
1971
1972
|
else
|
|
1972
|
-
for (let h =
|
|
1973
|
-
this.setMatrixCacheAt(
|
|
1974
|
-
|
|
1973
|
+
for (let h = r; h < r + a; h++)
|
|
1974
|
+
this.setMatrixCacheAt(o, null, h, c, -1);
|
|
1975
|
+
o > i && (r /= s[o - i], a /= s[o - i]);
|
|
1975
1976
|
}
|
|
1976
1977
|
}
|
|
1977
1978
|
/**
|
|
@@ -1986,7 +1987,7 @@ class IA extends pA {
|
|
|
1986
1987
|
this.setAvailableSets(s);
|
|
1987
1988
|
} else if (e != null && e.children) {
|
|
1988
1989
|
const s = tt().getValue();
|
|
1989
|
-
s.sets = Object.keys(e.children), s.selectedSet.length === 0 ? (this.selectedSet.push(s.sets[0]), s.selectedSet.push(s.sets[0])) : this.selectedSet.every((i) => s.sets.find((
|
|
1990
|
+
s.sets = Object.keys(e.children), s.selectedSet.length === 0 ? (this.selectedSet.push(s.sets[0]), s.selectedSet.push(s.sets[0])) : this.selectedSet.every((i) => s.sets.find((r) => r === i)) || (s.selectedSet = [s.sets[0]]), tt().next(s);
|
|
1990
1991
|
} else {
|
|
1991
1992
|
const s = tt().getValue();
|
|
1992
1993
|
s.sets = [], s.selectedSet = [];
|
|
@@ -1996,10 +1997,10 @@ class IA extends pA {
|
|
|
1996
1997
|
var i;
|
|
1997
1998
|
const A = tt().getValue();
|
|
1998
1999
|
A.arrays = [], e.fArrays && (A.arrays = Object.keys(e.fArrays)), A.arrays.unshift("content");
|
|
1999
|
-
const s = (
|
|
2000
|
+
const s = (r) => {
|
|
2000
2001
|
var c;
|
|
2001
|
-
const
|
|
2002
|
-
|
|
2002
|
+
const a = r.find((o) => o);
|
|
2003
|
+
a.fArrays && (A.arrays = A.arrays.concat(Object.keys(a.fArrays))), (c = a.children) != null && c.content && s(a.children.content);
|
|
2003
2004
|
};
|
|
2004
2005
|
(i = e.children) != null && i.content && s(e.children.content), tt().next(A);
|
|
2005
2006
|
}
|
|
@@ -2014,8 +2015,8 @@ class IA extends pA {
|
|
|
2014
2015
|
if (parseInt(s[1]) > this.matrixCache.length) return;
|
|
2015
2016
|
const i = new Oe();
|
|
2016
2017
|
i.scale.set(0, 0, 0), i.updateMatrix();
|
|
2017
|
-
let
|
|
2018
|
-
this.selectedSet.length > 1 && (
|
|
2018
|
+
let r = this.maxInstancesPerLayer.reduce((a, c) => a * c, 1);
|
|
2019
|
+
this.selectedSet.length > 1 && (r *= this.selectedSet.length), this.setupMatrixCache(), this.wireframe.clearWireframe(), this.renderHistogram(
|
|
2019
2020
|
0,
|
|
2020
2021
|
this.totalInstances,
|
|
2021
2022
|
parseInt(s[1]) - 1
|
|
@@ -2049,100 +2050,109 @@ class IA extends pA {
|
|
|
2049
2050
|
logRender(e) {
|
|
2050
2051
|
e.procedure === "render" && e.value.startIndex === 0 && e.value.endIndex === this.totalInstances && (this.renderHistory = []), this.renderHistory.push(e);
|
|
2051
2052
|
}
|
|
2052
|
-
getBinContent(e, A, s, i,
|
|
2053
|
-
var
|
|
2054
|
-
if (
|
|
2053
|
+
getBinContent(e, A, s, i, r) {
|
|
2054
|
+
var a;
|
|
2055
|
+
if (r === "content" || !e.fArrays)
|
|
2055
2056
|
return e.getBinContent(A + 1, s + 1, i + 1);
|
|
2056
2057
|
{
|
|
2057
2058
|
const c = e.getBin(A + 1, s + 1, i + 1);
|
|
2058
|
-
return (
|
|
2059
|
+
return (a = e.fArrays) == null ? void 0 : a[r].values[c];
|
|
2060
|
+
}
|
|
2061
|
+
}
|
|
2062
|
+
getBinError(e, A, s, i, r) {
|
|
2063
|
+
var a;
|
|
2064
|
+
if (r === "content" || !e.fArrays)
|
|
2065
|
+
return e.getBinError(A + 1, s + 1, i + 1);
|
|
2066
|
+
{
|
|
2067
|
+
const c = e.getBin(A + 1, s + 1, i + 1);
|
|
2068
|
+
return (a = e.fArrays) == null ? void 0 : a[r].errors[c];
|
|
2059
2069
|
}
|
|
2060
2070
|
}
|
|
2061
2071
|
checkIntersectionBVH(e) {
|
|
2062
|
-
const A = new H(), s = (
|
|
2072
|
+
const A = new H(), s = (o, h, l, u) => {
|
|
2063
2073
|
var d;
|
|
2064
2074
|
if (h < 0 || 1 / h === -1 / 0) {
|
|
2065
|
-
const g = h * -1, p = u && u !== "content" ? (d = this.matrixCache[
|
|
2075
|
+
const g = h * -1, p = u && u !== "content" ? (d = this.matrixCache[o]) == null ? void 0 : d[this.availableSets.indexOf(u)] : this.matrixCache[o];
|
|
2066
2076
|
return p ? new Bt().setFromCenterAndSize(
|
|
2067
2077
|
new H(p.pos[g * 3], p.pos[g * 3 + 1], p.pos[g * 3 + 2]),
|
|
2068
2078
|
new H(p.scale[g * 3], p.scale[g * 3 + 1], p.scale[g * 3 + 2])
|
|
2069
2079
|
) : void 0;
|
|
2070
2080
|
} else {
|
|
2071
|
-
const g = u && u !== "content" ? this.BVHTree[
|
|
2081
|
+
const g = u && u !== "content" ? this.BVHTree[o][this.availableSets.indexOf(u)][l] : this.BVHTree[o][l];
|
|
2072
2082
|
return g ? new Bt().setFromCenterAndSize(
|
|
2073
2083
|
new H(g.pos[h * 3], g.pos[h * 3 + 1], g.pos[h * 3 + 2]),
|
|
2074
2084
|
new H(g.scale[h * 3], g.scale[h * 3 + 1], g.scale[h * 3 + 2])
|
|
2075
2085
|
) : void 0;
|
|
2076
2086
|
}
|
|
2077
|
-
}, i = (
|
|
2078
|
-
let
|
|
2087
|
+
}, i = (o, h) => {
|
|
2088
|
+
let l = 0, u = o, d = h;
|
|
2079
2089
|
for (; u + 1 < this.matrixCache.length; ) {
|
|
2080
2090
|
u++;
|
|
2081
2091
|
const g = this.matrixCache[u];
|
|
2082
2092
|
if (Array.isArray(g))
|
|
2083
2093
|
this.selectedSet.forEach((p) => {
|
|
2084
|
-
const
|
|
2094
|
+
const y = this.availableSets.indexOf(p);
|
|
2085
2095
|
for (let f = d; f < d + this.maxInstancesPerLayer[u]; f++)
|
|
2086
|
-
if (g[
|
|
2087
|
-
|
|
2096
|
+
if (g[y].rendered[f] !== -1) {
|
|
2097
|
+
l = u - o;
|
|
2088
2098
|
break;
|
|
2089
2099
|
}
|
|
2090
2100
|
});
|
|
2091
2101
|
else {
|
|
2092
|
-
if (!g) return
|
|
2102
|
+
if (!g) return l;
|
|
2093
2103
|
for (let p = d; p < d + this.maxInstancesPerLayer[u]; p++)
|
|
2094
2104
|
if (g.rendered[p] !== -1) {
|
|
2095
|
-
|
|
2105
|
+
l = u - o;
|
|
2096
2106
|
break;
|
|
2097
2107
|
}
|
|
2098
2108
|
}
|
|
2099
2109
|
d *= this.maxInstancesPerLayer[u + 1];
|
|
2100
2110
|
}
|
|
2101
|
-
return
|
|
2102
|
-
},
|
|
2103
|
-
const d = u && u !== "content" ? this.BVHTree[
|
|
2104
|
-
return e.intersectBox(g, A) ?
|
|
2105
|
-
index: d.left[
|
|
2111
|
+
return l;
|
|
2112
|
+
}, r = (o, h, l, u) => {
|
|
2113
|
+
const d = u && u !== "content" ? this.BVHTree[l][this.availableSets.indexOf(u)][h] : this.BVHTree[l][h], g = s(l, d.left[o], h, u), p = s(l, d.right[o], h, u), y = [];
|
|
2114
|
+
return e.intersectBox(g, A) ? y.push({
|
|
2115
|
+
index: d.left[o],
|
|
2106
2116
|
target: A.clone(),
|
|
2107
2117
|
distance: e.origin.distanceTo(A)
|
|
2108
|
-
}) :
|
|
2109
|
-
index: d.right[
|
|
2118
|
+
}) : y.push(null), e.intersectBox(p, A) ? y.push({
|
|
2119
|
+
index: d.right[o],
|
|
2110
2120
|
target: A.clone(),
|
|
2111
2121
|
distance: e.origin.distanceTo(A)
|
|
2112
|
-
}) :
|
|
2113
|
-
},
|
|
2122
|
+
}) : y.push(null), y;
|
|
2123
|
+
}, a = (o, h, l) => {
|
|
2114
2124
|
const u = [], d = (p) => {
|
|
2115
2125
|
if (p.index < 0 || 1 / p.index === -1 / 0) {
|
|
2116
2126
|
u.push(p);
|
|
2117
2127
|
return;
|
|
2118
2128
|
}
|
|
2119
|
-
const [
|
|
2129
|
+
const [y, f] = r(
|
|
2120
2130
|
p.index,
|
|
2121
2131
|
h,
|
|
2122
|
-
|
|
2123
|
-
|
|
2132
|
+
o,
|
|
2133
|
+
l
|
|
2124
2134
|
);
|
|
2125
|
-
|
|
2126
|
-
}, g =
|
|
2135
|
+
y && d(y), f && d(f);
|
|
2136
|
+
}, g = l && l !== "content" ? this.BVHTree[o][this.availableSets.indexOf(l)][h] : this.BVHTree[o][h];
|
|
2127
2137
|
return g && d({
|
|
2128
2138
|
index: g.left.length - 1,
|
|
2129
2139
|
target: null,
|
|
2130
2140
|
distance: null
|
|
2131
2141
|
}), u;
|
|
2132
|
-
}, c = (
|
|
2133
|
-
const g = [], p = this.maxInstancesPerLayer[h + 1],
|
|
2134
|
-
return
|
|
2142
|
+
}, c = (o, h, l = 0, u = [], d = void 0) => {
|
|
2143
|
+
const g = [], p = this.maxInstancesPerLayer[h + 1], y = this.maxInstancesPerLayer[h] * this.maxInstancesPerLayer[h + 1];
|
|
2144
|
+
return a(h, l, d).forEach((f) => {
|
|
2135
2145
|
var C;
|
|
2136
|
-
const b = Math.abs(f.index) -
|
|
2137
|
-
b % (
|
|
2146
|
+
const b = Math.abs(f.index) - l * this.maxInstancesPerLayer[h], x = b % o.fXaxis.fNbins, v = Math.floor(
|
|
2147
|
+
b % (o.fXaxis.fNbins * o.fYaxis.fNbins) / o.fXaxis.fNbins
|
|
2138
2148
|
), B = Math.floor(
|
|
2139
|
-
b / (
|
|
2140
|
-
), D = [...u, { x
|
|
2141
|
-
if (
|
|
2142
|
-
const O = Object.entries(
|
|
2143
|
-
const P =
|
|
2149
|
+
b / (o.fXaxis.fNbins * o.fYaxis.fNbins)
|
|
2150
|
+
), D = [...u, { x, y: v, z: B }];
|
|
2151
|
+
if (o.children) {
|
|
2152
|
+
const O = Object.entries(o.children).flatMap(([E, Y]) => {
|
|
2153
|
+
const P = o.getBin(x + 1, v + 1, B + 1), k = Y == null ? void 0 : Y[P];
|
|
2144
2154
|
if (!k) return [];
|
|
2145
|
-
const V =
|
|
2155
|
+
const V = l * y + (x + v * o.fXaxis.fNbins + B * (o.fXaxis.fNbins * o.fYaxis.fNbins)) * p;
|
|
2146
2156
|
if (!(i(h, V) > 0)) return [];
|
|
2147
2157
|
let Q = c(
|
|
2148
2158
|
k,
|
|
@@ -2156,12 +2166,13 @@ class IA extends pA {
|
|
|
2156
2166
|
if (O.length > 0)
|
|
2157
2167
|
g.push(...O);
|
|
2158
2168
|
else {
|
|
2159
|
-
const E =
|
|
2169
|
+
const E = l * this.maxInstancesPerLayer[h] + (x + v * o.fXaxis.fNbins + B * (o.fXaxis.fNbins * o.fYaxis.fNbins));
|
|
2160
2170
|
(d && d !== "content" ? (C = this.matrixCache[h]) == null ? void 0 : C[this.availableSets.indexOf(d)] : this.matrixCache[h]).rendered[E] !== -1 && g.push({
|
|
2161
2171
|
index: D,
|
|
2162
2172
|
target: f.target,
|
|
2163
2173
|
distance: f.distance,
|
|
2164
2174
|
set: d,
|
|
2175
|
+
selectedArray: this.selectedArray,
|
|
2165
2176
|
instanceId: Wt(
|
|
2166
2177
|
D,
|
|
2167
2178
|
this.pointer.origin,
|
|
@@ -2181,9 +2192,9 @@ class IA extends pA {
|
|
|
2181
2192
|
this.selectedSet
|
|
2182
2193
|
),
|
|
2183
2194
|
origin: this,
|
|
2184
|
-
jsrootObj:
|
|
2185
|
-
content: this.getBinContent(
|
|
2186
|
-
error:
|
|
2195
|
+
jsrootObj: o,
|
|
2196
|
+
content: this.getBinContent(o, x, v, B, this.selectedArray),
|
|
2197
|
+
error: this.getBinError(o, x, v, B, this.selectedArray)
|
|
2187
2198
|
});
|
|
2188
2199
|
}
|
|
2189
2200
|
} else
|
|
@@ -2192,6 +2203,7 @@ class IA extends pA {
|
|
|
2192
2203
|
target: f.target,
|
|
2193
2204
|
distance: f.distance,
|
|
2194
2205
|
set: d,
|
|
2206
|
+
selectedArray: this.selectedArray,
|
|
2195
2207
|
instanceId: Wt(
|
|
2196
2208
|
D,
|
|
2197
2209
|
this.pointer.origin,
|
|
@@ -2211,9 +2223,9 @@ class IA extends pA {
|
|
|
2211
2223
|
this.selectedSet
|
|
2212
2224
|
),
|
|
2213
2225
|
origin: this,
|
|
2214
|
-
jsrootObj:
|
|
2215
|
-
content: this.getBinContent(
|
|
2216
|
-
error:
|
|
2226
|
+
jsrootObj: o,
|
|
2227
|
+
content: this.getBinContent(o, x, v, B, this.selectedArray),
|
|
2228
|
+
error: this.getBinError(o, x, v, B, this.selectedArray)
|
|
2217
2229
|
});
|
|
2218
2230
|
}), g.sort((f, b) => f.distance - b.distance);
|
|
2219
2231
|
};
|
|
@@ -2221,7 +2233,7 @@ class IA extends pA {
|
|
|
2221
2233
|
}
|
|
2222
2234
|
dispatchSubjectHandler(e) {
|
|
2223
2235
|
console.log("dispatch: ", e);
|
|
2224
|
-
const A = e.event.index.map((
|
|
2236
|
+
const A = e.event.index.map((r) => ({ x: r.x - 1, y: r.y - 1, z: r.z - 1 })), s = this.pointer.getChildByPosition(
|
|
2225
2237
|
mt([...A]).slice(0, -1),
|
|
2226
2238
|
e.event.set,
|
|
2227
2239
|
this.selectedSet
|
|
@@ -2263,14 +2275,14 @@ class XA {
|
|
|
2263
2275
|
m(this, "scale");
|
|
2264
2276
|
m(this, "id");
|
|
2265
2277
|
m(this, "configSub");
|
|
2266
|
-
const
|
|
2278
|
+
const r = new ae(s.x, s.y), a = new le({
|
|
2267
2279
|
color: new X().setHex(16777215),
|
|
2268
2280
|
side: he
|
|
2269
2281
|
});
|
|
2270
|
-
this.plane || (this.plane = new Ct(
|
|
2282
|
+
this.plane || (this.plane = new Ct(r, a), this.plane.position.set(e.x, e.y, e.z)), t && this.updateTexture(t), this.id = i, this.position = e, this.rotation = A, this.scale = s, this.cinemaSub = ge().getObservable().pipe(ct((c) => c.id === this.id || c.id === "*")).subscribe((c) => {
|
|
2271
2283
|
console.log("obj: ", c);
|
|
2272
|
-
const
|
|
2273
|
-
De({ format: "png", object:
|
|
2284
|
+
const o = c.obj;
|
|
2285
|
+
De({ format: "png", option: "pE", object: o, width: 1200, height: 600 }).then(
|
|
2274
2286
|
(h) => {
|
|
2275
2287
|
this.updateTexture(h);
|
|
2276
2288
|
}
|
|
@@ -2325,9 +2337,9 @@ class wA extends Pe {
|
|
|
2325
2337
|
super(t);
|
|
2326
2338
|
}
|
|
2327
2339
|
load(t, e, A, s) {
|
|
2328
|
-
const i = this,
|
|
2329
|
-
|
|
2330
|
-
const c = i.parse(JSON.parse(
|
|
2340
|
+
const i = this, r = new Ye(this.manager);
|
|
2341
|
+
r.setPath(this.path), r.setRequestHeader(this.requestHeader), r.setWithCredentials(this.withCredentials), r.load(t, function(a) {
|
|
2342
|
+
const c = i.parse(JSON.parse(a));
|
|
2331
2343
|
e && e(c);
|
|
2332
2344
|
}, A, s);
|
|
2333
2345
|
}
|
|
@@ -2340,56 +2352,56 @@ class bA {
|
|
|
2340
2352
|
this.isFont = !0, this.type = "Font", this.data = t;
|
|
2341
2353
|
}
|
|
2342
2354
|
generateShapes(t, e = 100) {
|
|
2343
|
-
const A = [], s =
|
|
2344
|
-
for (let i = 0,
|
|
2355
|
+
const A = [], s = yA(t, e, this.data);
|
|
2356
|
+
for (let i = 0, r = s.length; i < r; i++)
|
|
2345
2357
|
A.push(...s[i].toShapes());
|
|
2346
2358
|
return A;
|
|
2347
2359
|
}
|
|
2348
2360
|
}
|
|
2349
|
-
function
|
|
2350
|
-
const A = Array.from(n), s = t / e.resolution, i = (e.boundingBox.yMax - e.boundingBox.yMin + e.underlineThickness) * s,
|
|
2351
|
-
let
|
|
2352
|
-
for (let
|
|
2353
|
-
const h = A[
|
|
2361
|
+
function yA(n, t, e) {
|
|
2362
|
+
const A = Array.from(n), s = t / e.resolution, i = (e.boundingBox.yMax - e.boundingBox.yMin + e.underlineThickness) * s, r = [];
|
|
2363
|
+
let a = 0, c = 0;
|
|
2364
|
+
for (let o = 0; o < A.length; o++) {
|
|
2365
|
+
const h = A[o];
|
|
2354
2366
|
if (h === `
|
|
2355
2367
|
`)
|
|
2356
|
-
|
|
2368
|
+
a = 0, c -= i;
|
|
2357
2369
|
else {
|
|
2358
|
-
const
|
|
2359
|
-
|
|
2370
|
+
const l = vA(h, s, a, c, e);
|
|
2371
|
+
a += l.offsetX, r.push(l.path);
|
|
2360
2372
|
}
|
|
2361
2373
|
}
|
|
2362
|
-
return
|
|
2374
|
+
return r;
|
|
2363
2375
|
}
|
|
2364
|
-
function
|
|
2376
|
+
function vA(n, t, e, A, s) {
|
|
2365
2377
|
const i = s.glyphs[n] || s.glyphs["?"];
|
|
2366
2378
|
if (!i) {
|
|
2367
2379
|
console.error('THREE.Font: character "' + n + '" does not exists in font family ' + s.familyName + ".");
|
|
2368
2380
|
return;
|
|
2369
2381
|
}
|
|
2370
|
-
const
|
|
2371
|
-
let
|
|
2382
|
+
const r = new qe();
|
|
2383
|
+
let a, c, o, h, l, u, d, g;
|
|
2372
2384
|
if (i.o) {
|
|
2373
2385
|
const p = i._cachedOutline || (i._cachedOutline = i.o.split(" "));
|
|
2374
|
-
for (let
|
|
2375
|
-
switch (p[
|
|
2386
|
+
for (let y = 0, f = p.length; y < f; )
|
|
2387
|
+
switch (p[y++]) {
|
|
2376
2388
|
case "m":
|
|
2377
|
-
|
|
2389
|
+
a = p[y++] * t + e, c = p[y++] * t + A, r.moveTo(a, c);
|
|
2378
2390
|
break;
|
|
2379
2391
|
case "l":
|
|
2380
|
-
|
|
2392
|
+
a = p[y++] * t + e, c = p[y++] * t + A, r.lineTo(a, c);
|
|
2381
2393
|
break;
|
|
2382
2394
|
case "q":
|
|
2383
|
-
|
|
2395
|
+
o = p[y++] * t + e, h = p[y++] * t + A, l = p[y++] * t + e, u = p[y++] * t + A, r.quadraticCurveTo(l, u, o, h);
|
|
2384
2396
|
break;
|
|
2385
2397
|
case "b":
|
|
2386
|
-
|
|
2398
|
+
o = p[y++] * t + e, h = p[y++] * t + A, l = p[y++] * t + e, u = p[y++] * t + A, d = p[y++] * t + e, g = p[y++] * t + A, r.bezierCurveTo(l, u, d, g, o, h);
|
|
2387
2399
|
break;
|
|
2388
2400
|
}
|
|
2389
2401
|
}
|
|
2390
|
-
return { offsetX: i.ha * t, path:
|
|
2402
|
+
return { offsetX: i.ha * t, path: r };
|
|
2391
2403
|
}
|
|
2392
|
-
class
|
|
2404
|
+
class xA {
|
|
2393
2405
|
constructor(t, e = {}) {
|
|
2394
2406
|
this.camera = t, this.options = {
|
|
2395
2407
|
backgroundColor: 11184810,
|
|
@@ -2405,11 +2417,11 @@ class yA {
|
|
|
2405
2417
|
}, this.loader = new wA(), this.queue = new ne();
|
|
2406
2418
|
let A = !1, s = null;
|
|
2407
2419
|
this.queueSub = this.queue.pipe(
|
|
2408
|
-
|
|
2409
|
-
|
|
2420
|
+
ye((i) => A ? (s = i, Ce) : (A = !0, ve(this.updateVisualization(i)).pipe(
|
|
2421
|
+
xe(() => {
|
|
2410
2422
|
if (A = !1, s) {
|
|
2411
|
-
const
|
|
2412
|
-
s = null, this.queue.next(
|
|
2423
|
+
const r = s;
|
|
2424
|
+
s = null, this.queue.next(r);
|
|
2413
2425
|
}
|
|
2414
2426
|
})
|
|
2415
2427
|
)))
|
|
@@ -2423,14 +2435,14 @@ class yA {
|
|
|
2423
2435
|
if (t.title && e.push({ text: t.title, isTitle: !0 }), t.coords && Array.isArray(t.coords) && t.coords.forEach((A) => {
|
|
2424
2436
|
Object.entries(A).forEach(([s, i]) => {
|
|
2425
2437
|
if (i && typeof i == "object" && !("isColor" in i)) {
|
|
2426
|
-
const
|
|
2427
|
-
e.push({ text:
|
|
2438
|
+
const r = `${s} = [${i.min.toFixed(2)}, ${i.max.toFixed(2)})`;
|
|
2439
|
+
e.push({ text: r, isTitle: !1 });
|
|
2428
2440
|
}
|
|
2429
2441
|
});
|
|
2430
2442
|
}), t.index && Array.isArray(t.index) && t.index.forEach((A) => {
|
|
2431
2443
|
let s = `bin = ${t.object.bins[t.instanceId]}`;
|
|
2432
|
-
Object.entries(A).forEach(([i,
|
|
2433
|
-
s += `, ${i}: ${
|
|
2444
|
+
Object.entries(A).forEach(([i, r]) => {
|
|
2445
|
+
s += `, ${i}: ${r}`;
|
|
2434
2446
|
}), e.push({ text: s, isTitle: !1 });
|
|
2435
2447
|
}), t.content !== void 0) {
|
|
2436
2448
|
const A = Number.isInteger(t.content) ? `content = ${t.content}` : `content = ${t.content.toFixed(2)}`;
|
|
@@ -2458,19 +2470,19 @@ class yA {
|
|
|
2458
2470
|
*/
|
|
2459
2471
|
async updateVisualization(t) {
|
|
2460
2472
|
for (t === null && this.clear(); this.group.children.length > 0; ) {
|
|
2461
|
-
const
|
|
2462
|
-
|
|
2473
|
+
const x = this.group.children[0];
|
|
2474
|
+
x.geometry && x.geometry.dispose(), x.material && x.material.dispose(), this.group.remove(x);
|
|
2463
2475
|
}
|
|
2464
2476
|
const e = this.parseData(t);
|
|
2465
2477
|
if (e.length === 0) return;
|
|
2466
|
-
const { padding: A, lineHeight: s, textSize: i, textColor:
|
|
2478
|
+
const { padding: A, lineHeight: s, textSize: i, textColor: r, titleColor: a, width: c } = this.options, o = e.length * s + A * 2, h = this.createBackgroundPanel(o);
|
|
2467
2479
|
this.group.add(h);
|
|
2468
|
-
const
|
|
2469
|
-
for (let
|
|
2470
|
-
const
|
|
2480
|
+
const l = o / 2 - A - s / 2;
|
|
2481
|
+
for (let x = 0; x < e.length; x++) {
|
|
2482
|
+
const v = e[x], B = l - x * s;
|
|
2471
2483
|
try {
|
|
2472
2484
|
const D = ze("TLatex");
|
|
2473
|
-
D.fTitle =
|
|
2485
|
+
D.fTitle = v.text, D.fTextAlign = 12, D.fTextFont = 2, D.fTitleFont = 2, D.fLabelFont = 2, D.fTextColor = v.isTitle ? a : r, D.fTextSize = v.isTitle ? i + 2 : i;
|
|
2474
2486
|
const C = await re(D, "p", B * 100, "", "");
|
|
2475
2487
|
C.scale.set(16e-5, 16e-5, 16e-5), C.position.x = -(c / 2) + A, C.position.y = B, C.position.z = 1e-3, this.group.add(C);
|
|
2476
2488
|
} catch (D) {
|
|
@@ -2479,8 +2491,8 @@ class yA {
|
|
|
2479
2491
|
}
|
|
2480
2492
|
const u = new H(t.point.x, t.point.y, t.point.z);
|
|
2481
2493
|
this.camera.worldToLocal(u);
|
|
2482
|
-
const d = new H().subVectors(u, this.camera.position).normalize(), p = new H().copy(this.camera.position).addScaledVector(d, 0.1),
|
|
2483
|
-
|
|
2494
|
+
const d = new H().subVectors(u, this.camera.position).normalize(), p = new H().copy(this.camera.position).addScaledVector(d, 0.1), y = new Bt().setFromObject(this.group), f = new H();
|
|
2495
|
+
y.getSize(f);
|
|
2484
2496
|
const b = f.clone().multiplyScalar(0.5);
|
|
2485
2497
|
p.add(new H(b.x, b.y, 0)), this.group.position.copy(p), this.camera.add(this.group);
|
|
2486
2498
|
}
|
|
@@ -2535,7 +2547,7 @@ class GA {
|
|
|
2535
2547
|
m(this, "color", new X());
|
|
2536
2548
|
m(this, "colorTarget", new X(65535));
|
|
2537
2549
|
m(this, "buildPromise");
|
|
2538
|
-
this.id = t, this.rootObj = e, this.camera = A, this.histogramGroup = new ue(), this.dummyEl = document.getElementById("dummyDiv" + t), this.dummyEl && document.body.removeChild(this.dummyEl), this.binInfoComponent = new
|
|
2550
|
+
this.id = t, this.rootObj = e, this.camera = A, this.histogramGroup = new ue(), this.dummyEl = document.getElementById("dummyDiv" + t), this.dummyEl && document.body.removeChild(this.dummyEl), this.binInfoComponent = new xA(
|
|
2539
2551
|
this.camera,
|
|
2540
2552
|
{
|
|
2541
2553
|
backgroundColor: 3556687,
|
|
@@ -2546,8 +2558,8 @@ class GA {
|
|
|
2546
2558
|
}
|
|
2547
2559
|
), this.dummyEl = document.createElement("div"), this.dummyEl.id = "dummyDiv" + t, document.body.appendChild(this.dummyEl), this.configSub = lt().getObservable().pipe(ct((s) => s.target.id.includes("*") || s.target.id.includes(this.id))).subscribe((s) => {
|
|
2548
2560
|
this.config = { ...s.config };
|
|
2549
|
-
const
|
|
2550
|
-
this.histogramGroup.position.set(
|
|
2561
|
+
const r = this.config.environment.histogramPads.find((a) => a.id === this.id).position;
|
|
2562
|
+
this.histogramGroup.position.set(r.x, r.y, r.z);
|
|
2551
2563
|
}), this.sub = fe().getObservable().pipe(
|
|
2552
2564
|
ct(
|
|
2553
2565
|
(s) => s.target.id.includes("*") || s.target.id.includes(this.id)
|
|
@@ -2598,8 +2610,8 @@ class GA {
|
|
|
2598
2610
|
}
|
|
2599
2611
|
renderWithBuild3d() {
|
|
2600
2612
|
return re(this.rootObj).then((t) => {
|
|
2601
|
-
var
|
|
2602
|
-
const e = (
|
|
2613
|
+
var r;
|
|
2614
|
+
const e = (r = this.config.environment.histogramPads.find((a) => a.id === this.id)) == null ? void 0 : r.scale, A = new Bt().setFromObject(t), s = new H();
|
|
2603
2615
|
A.getSize(s), t.scale.set(
|
|
2604
2616
|
e.x / s.x,
|
|
2605
2617
|
e.z / s.y,
|
|
@@ -2618,9 +2630,9 @@ class GA {
|
|
|
2618
2630
|
}
|
|
2619
2631
|
raycastHandler(t, e) {
|
|
2620
2632
|
this.defaultRaycastHandler(t, e), setTimeout(() => {
|
|
2621
|
-
const A = e.filter((
|
|
2633
|
+
const A = e.filter((l) => l.instanceId !== void 0).sort((l, u) => l.distance - u.distance)[0];
|
|
2622
2634
|
if (!A) {
|
|
2623
|
-
this.mouseEvents.filter((
|
|
2635
|
+
this.mouseEvents.filter((l) => l.event === "mousemove").forEach((l) => l.function(
|
|
2624
2636
|
{
|
|
2625
2637
|
instanceId: void 0,
|
|
2626
2638
|
object: this.getInstancedMesh()
|
|
@@ -2629,18 +2641,18 @@ class GA {
|
|
|
2629
2641
|
));
|
|
2630
2642
|
return;
|
|
2631
2643
|
}
|
|
2632
|
-
const s = A.object.bins[A.instanceId], i = this.rootObj.fXaxis.fNbins + 2,
|
|
2644
|
+
const s = A.object.bins[A.instanceId], i = this.rootObj.fXaxis.fNbins + 2, r = this.rootObj.fYaxis.fNbins + 2, a = {
|
|
2633
2645
|
x: s % i,
|
|
2634
|
-
y: Math.floor(s % (i *
|
|
2635
|
-
z: Math.floor(s / (i *
|
|
2636
|
-
}, c = this.getRangeByPosition([
|
|
2646
|
+
y: Math.floor(s % (i * r) / i),
|
|
2647
|
+
z: Math.floor(s / (i * r))
|
|
2648
|
+
}, c = this.getRangeByPosition([a]), o = this.rootObj.fName, h = {
|
|
2637
2649
|
...A,
|
|
2638
|
-
index: [
|
|
2639
|
-
coords: [{ ...c, bin: s, name:
|
|
2640
|
-
content: this.rootObj.getBinContent(
|
|
2641
|
-
error: this.rootObj.getBinError(
|
|
2650
|
+
index: [a],
|
|
2651
|
+
coords: [{ ...c, bin: s, name: o }],
|
|
2652
|
+
content: this.rootObj.getBinContent(a.x, a.y, a.z),
|
|
2653
|
+
error: this.rootObj.getBinError(a.x, a.y, a.z)
|
|
2642
2654
|
};
|
|
2643
|
-
this.mouseEvents.filter((
|
|
2655
|
+
this.mouseEvents.filter((l) => l.event === t._triggerSource).forEach((l) => l.function(h, this)), this.dirtyInstance = A.instanceId;
|
|
2644
2656
|
}, 0);
|
|
2645
2657
|
}
|
|
2646
2658
|
/**
|
|
@@ -2713,12 +2725,12 @@ class GA {
|
|
|
2713
2725
|
let s = {};
|
|
2714
2726
|
if (t[0]) {
|
|
2715
2727
|
for (let i = 0; i < A; i++) {
|
|
2716
|
-
const
|
|
2717
|
-
s[
|
|
2718
|
-
min:
|
|
2719
|
-
max:
|
|
2720
|
-
name:
|
|
2721
|
-
title:
|
|
2728
|
+
const r = e[i], a = this.rootObj[`f${r.toUpperCase()}axis`], c = t[0][r];
|
|
2729
|
+
s[r] = {
|
|
2730
|
+
min: a.GetBinLowEdge(c),
|
|
2731
|
+
max: a.GetBinCenter(c) * 2 - a.GetBinLowEdge(c),
|
|
2732
|
+
name: a.fName,
|
|
2733
|
+
title: a.fTitle
|
|
2722
2734
|
};
|
|
2723
2735
|
}
|
|
2724
2736
|
s = { ...s, color: new X(0) };
|