@graphty/graphty-element 2.4.0 → 2.5.0
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/ai.js +3 -3
- package/dist/catalog.js +6 -6
- package/dist/chunks/{AiManager-BD9XK30e.js → AiManager-DNJCoeTO.js} +5 -5
- package/dist/chunks/{DataSource-B8vf2uhW.js → DataSource-xL3Yn0Pa.js} +72 -61
- package/dist/chunks/{GraphSession-dcwOjGJh.js → GraphSession-PFm2tJ_j.js} +1483 -1441
- package/dist/chunks/{GraphtyLogger-CqOVV13Y.js → GraphtyLogger-kbOx2zq3.js} +169 -221
- package/dist/chunks/{VoiceInputAdapter-D0tHHi9G.js → VoiceInputAdapter-CDNKQgUK.js} +1 -1
- package/dist/chunks/{XRPivotCameraController-DTfhvhHz.js → XRPivotCameraController-JdlLBcD7.js} +146 -134
- package/dist/chunks/{algorithms-BF0X6RPw.js → algorithms-B87OPYw4.js} +2 -2
- package/dist/chunks/{capability-check-BJzlK4oL.js → capability-check-B2oYf_30.js} +1 -1
- package/dist/chunks/{detect-vJxK7n0D.js → detect-tuYQLJbT.js} +2 -2
- package/dist/chunks/{format-detection-C80TLQ2e.js → format-detection-BG6CMwPO.js} +1 -1
- package/dist/chunks/{index-2xkq7wyD.js → index-6GDfNfwJ.js} +2928 -2856
- package/dist/chunks/{optionsFromZod-BuTOFgVM.js → optionsFromZod-DHLLiX_8.js} +237 -236
- package/dist/chunks/{paletteRegistry-A63C71Gn.js → paletteRegistry-jg9uS7wo.js} +66 -66
- package/dist/chunks/pluginRegistry-MaTIDh6l.js +238 -0
- package/dist/chunks/{registry-jB46Gmeb.js → registry-DQeq4B2K.js} +8 -8
- package/dist/chunks/{scales-B2d-7Bf0.js → scales-BXHmwPXC.js} +4 -4
- package/dist/extend.js +7 -7
- package/dist/graphty-catalog.json +1 -1
- package/dist/graphty.bundle.js +25128 -24837
- package/dist/graphty.js +67 -63
- package/dist/index.d.ts +3 -0
- package/dist/logging.js +2 -2
- package/dist/session.js +5 -5
- package/dist/src/Edge.d.ts +4 -4
- package/dist/src/acceleration/AccelerationController.d.ts +6 -0
- package/dist/src/acceleration/registry.d.ts +3 -0
- package/dist/src/acceleration/types.d.ts +7 -0
- package/dist/src/algorithms/Algorithm.d.ts +13 -0
- package/dist/src/cameras/InputUtils.d.ts +67 -0
- package/dist/src/cameras/XRInputHandler.d.ts +0 -8
- package/dist/src/catalog/pluginRegistry.d.ts +62 -0
- package/dist/src/catalog/registry.d.ts +7 -0
- package/dist/src/data/DataSource.d.ts +1 -1
- package/dist/src/errors/codes.d.ts +2 -1
- package/dist/src/meshes/CustomLineRenderer.d.ts +11 -9
- package/dist/src/meshes/EdgeMesh.d.ts +18 -9
- package/dist/src/meshes/FilledArrowRenderer.d.ts +61 -23
- package/dist/src/meshes/PatternedLineRenderer.d.ts +5 -37
- package/dist/src/meshes/PerSceneMaterials.d.ts +49 -0
- package/dist/src/xr/XRSessionManager.d.ts +1 -1
- package/dist/webgpu.d.ts +8 -0
- package/dist/webgpu.js +2 -2
- package/package.json +5 -5
- package/dist/chunks/GraphtyError-B93WRH3e.js +0 -134
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as he, G as y, S as Ie } from "./pluginRegistry-MaTIDh6l.js";
|
|
2
2
|
import { K as Te, f as Me } from "./types-C_c53VgR.js";
|
|
3
|
-
import {
|
|
4
|
-
import { Graph as
|
|
3
|
+
import { b as _e } from "./GraphtyLogger-kbOx2zq3.js";
|
|
4
|
+
import { Graph as ze, accelerated as X } from "@graphty/algorithms";
|
|
5
5
|
import { INVALID_INDEX as L } from "@graphty/graph-format";
|
|
6
6
|
import { z as me } from "zod/v4";
|
|
7
7
|
const _ = he({
|
|
@@ -11,7 +11,7 @@ const _ = he({
|
|
|
11
11
|
implementationOf: (e) => e.compute,
|
|
12
12
|
builtInIds: () => Te
|
|
13
13
|
});
|
|
14
|
-
function
|
|
14
|
+
function bn(e, t) {
|
|
15
15
|
const n = e.descriptor;
|
|
16
16
|
if (n === void 0 || typeof n != "object")
|
|
17
17
|
throw new y({
|
|
@@ -43,16 +43,16 @@ function yn(e, t) {
|
|
|
43
43
|
});
|
|
44
44
|
_.register(e, t);
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function wn() {
|
|
47
47
|
return _.descriptors();
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function vn(e) {
|
|
50
50
|
return _.byId(e);
|
|
51
51
|
}
|
|
52
|
-
function
|
|
52
|
+
function On() {
|
|
53
53
|
_.clearForTesting();
|
|
54
54
|
}
|
|
55
|
-
const
|
|
55
|
+
const Ce = ["forceAtlas2", "fruchtermanReingold", "springElectrical", "release"], xe = [
|
|
56
56
|
"pageRank",
|
|
57
57
|
"sssp",
|
|
58
58
|
"breadthFirstSearch",
|
|
@@ -60,31 +60,31 @@ const ze = ["forceAtlas2", "fruchtermanReingold", "springElectrical", "release"]
|
|
|
60
60
|
"weaklyConnectedComponents",
|
|
61
61
|
"minimumSpanningTree"
|
|
62
62
|
];
|
|
63
|
-
function
|
|
63
|
+
function kn(e) {
|
|
64
64
|
const t = {
|
|
65
65
|
kind: e.backend
|
|
66
66
|
};
|
|
67
|
-
for (const n of
|
|
67
|
+
for (const n of Ce) {
|
|
68
68
|
const r = e[n];
|
|
69
69
|
typeof r == "function" && (t[n] = r.bind(e));
|
|
70
70
|
}
|
|
71
71
|
return t;
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function je(e) {
|
|
74
74
|
const t = {
|
|
75
75
|
kind: e.backend
|
|
76
76
|
};
|
|
77
|
-
for (const n of
|
|
77
|
+
for (const n of xe) {
|
|
78
78
|
const r = e[n];
|
|
79
79
|
typeof r == "function" && (t[n] = r.bind(e));
|
|
80
80
|
}
|
|
81
81
|
return t;
|
|
82
82
|
}
|
|
83
|
-
const
|
|
84
|
-
function
|
|
85
|
-
return typeof e == "string" &&
|
|
83
|
+
const Pe = ["auto", "off", "required"], Nn = "auto";
|
|
84
|
+
function Sn(e) {
|
|
85
|
+
return typeof e == "string" && Pe.includes(e);
|
|
86
86
|
}
|
|
87
|
-
const
|
|
87
|
+
const Le = "f64", An = "f32", $n = "acceleration.minNodes", Rn = 0, En = "RTX 4070 SUPER, headless Chromium, 2026-09-25", Fn = Object.freeze({
|
|
88
88
|
breadthFirstSearch: 3e5,
|
|
89
89
|
sssp: 3e5,
|
|
90
90
|
pageRank: 5e3,
|
|
@@ -96,7 +96,7 @@ const Pe = "f64", Sn = "f32", An = "acceleration.minNodes", $n = 0, Rn = "RTX 40
|
|
|
96
96
|
implementationOf: (e) => e.descriptor,
|
|
97
97
|
builtInIds: () => Me
|
|
98
98
|
});
|
|
99
|
-
function
|
|
99
|
+
function De(e, t) {
|
|
100
100
|
if (e.descriptor.key !== e.type)
|
|
101
101
|
throw new y({
|
|
102
102
|
code: "E_BAD_COMMAND",
|
|
@@ -112,13 +112,13 @@ function Le(e, t) {
|
|
|
112
112
|
});
|
|
113
113
|
z.register(e, t);
|
|
114
114
|
}
|
|
115
|
-
function
|
|
115
|
+
function In() {
|
|
116
116
|
return z.descriptors();
|
|
117
117
|
}
|
|
118
|
-
function
|
|
118
|
+
function Tn(e) {
|
|
119
119
|
return z.byId(e);
|
|
120
120
|
}
|
|
121
|
-
function
|
|
121
|
+
function Mn() {
|
|
122
122
|
z.clearForTesting();
|
|
123
123
|
}
|
|
124
124
|
class b extends Error {
|
|
@@ -131,7 +131,7 @@ class b extends Error {
|
|
|
131
131
|
super(`Option '${t}': ${n}`), this.optionKey = t, this.name = "OptionValidationError";
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function Ge(e, t, n) {
|
|
135
135
|
if (t == null) {
|
|
136
136
|
if (n.required)
|
|
137
137
|
throw new b(e, "is required but was not provided");
|
|
@@ -153,7 +153,7 @@ function De(e, t, n) {
|
|
|
153
153
|
throw new b(e, `must be a string, got ${typeof t}`);
|
|
154
154
|
break;
|
|
155
155
|
case "select":
|
|
156
|
-
|
|
156
|
+
Ue(e, t, n);
|
|
157
157
|
break;
|
|
158
158
|
case "nodeId":
|
|
159
159
|
if (typeof t != "string" && typeof t != "number")
|
|
@@ -177,7 +177,7 @@ function Q(e, t, n, r) {
|
|
|
177
177
|
if (n.max !== void 0 && t > n.max)
|
|
178
178
|
throw new b(e, `must be <= ${n.max}, got ${t}`);
|
|
179
179
|
}
|
|
180
|
-
function
|
|
180
|
+
function Ue(e, t, n) {
|
|
181
181
|
if (!n.options || n.options.length === 0)
|
|
182
182
|
throw new b(e, "is a select type but has no options defined");
|
|
183
183
|
if (!n.options.map((i) => i.value).includes(t)) {
|
|
@@ -185,27 +185,27 @@ function Ge(e, t, n) {
|
|
|
185
185
|
throw new b(e, `must be one of [${i}], got '${String(t)}'`);
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function He(e, t) {
|
|
189
189
|
const n = {};
|
|
190
190
|
for (const [r, i] of Object.entries(e)) {
|
|
191
191
|
const o = t?.[r] ?? i.default;
|
|
192
|
-
|
|
192
|
+
Ge(r, o, i), n[r] = o;
|
|
193
193
|
}
|
|
194
194
|
return n;
|
|
195
195
|
}
|
|
196
|
-
function
|
|
196
|
+
function _n(e) {
|
|
197
197
|
return e;
|
|
198
198
|
}
|
|
199
|
-
function
|
|
199
|
+
function Be(e, t) {
|
|
200
200
|
const n = e.getSnapshot(), r = t === "directed" ? n : e.undirected(n).snapshot, i = r.flags.multigraph ? r.simplified({ weights: "sum" }).snapshot : r;
|
|
201
|
-
return
|
|
201
|
+
return Ve(i, t);
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function zn(e) {
|
|
204
204
|
const t = e.getSnapshot();
|
|
205
205
|
return t.flags.multigraph ? t.edgeCount - t.simplified({ weights: "sum" }).snapshot.edgeCount : 0;
|
|
206
206
|
}
|
|
207
|
-
function
|
|
208
|
-
const n = new
|
|
207
|
+
function Ve(e, t) {
|
|
208
|
+
const n = new ze({
|
|
209
209
|
directed: t !== "undirected"
|
|
210
210
|
}), { ids: r } = e;
|
|
211
211
|
for (let a = 0; a < e.nodeCount; a++)
|
|
@@ -217,8 +217,8 @@ function Be(e, t) {
|
|
|
217
217
|
}
|
|
218
218
|
return n;
|
|
219
219
|
}
|
|
220
|
-
const E =
|
|
221
|
-
function
|
|
220
|
+
const E = new Ie("algorithm");
|
|
221
|
+
function Je(e, t) {
|
|
222
222
|
if (t === null)
|
|
223
223
|
return e;
|
|
224
224
|
if (e === null)
|
|
@@ -260,7 +260,7 @@ const Z = class Z {
|
|
|
260
260
|
* @returns a freshly built Graph for the algorithm package
|
|
261
261
|
*/
|
|
262
262
|
algorithmGraph(t) {
|
|
263
|
-
return
|
|
263
|
+
return Be(this.graph.getDataManager(), t);
|
|
264
264
|
}
|
|
265
265
|
/**
|
|
266
266
|
* The route an algorithm with an accelerated implementation takes.
|
|
@@ -292,13 +292,13 @@ const Z = class Z {
|
|
|
292
292
|
const r = this.graph.getDataManager(), i = r.getSnapshot(), s = n === "undirected" ? r.undirected(i) : null, o = s === null ? i : s.snapshot, a = o.flags.multigraph ? o.simplified({ weights: "sum" }) : null, u = a === null ? o : a.snapshot, c = this.graph.acceleration, h = { capability: t, nodeCount: u.nodeCount };
|
|
293
293
|
return {
|
|
294
294
|
snapshot: u,
|
|
295
|
-
edgeRemap:
|
|
295
|
+
edgeRemap: Je(s?.edgeRemap ?? null, a?.edgeRemap ?? null),
|
|
296
296
|
run: async (p) => {
|
|
297
297
|
const l = await c.run(
|
|
298
298
|
h,
|
|
299
|
-
(d) => p(X(
|
|
299
|
+
(d) => p(X(je(d)), u)
|
|
300
300
|
);
|
|
301
|
-
return l.accelerated ? { value: l.value, precision: l.precision } : { value: await p(X(null), u), precision:
|
|
301
|
+
return l.accelerated ? { value: l.value, precision: l.precision } : { value: await p(X(null), u), precision: Le };
|
|
302
302
|
}
|
|
303
303
|
};
|
|
304
304
|
}
|
|
@@ -333,7 +333,7 @@ const Z = class Z {
|
|
|
333
333
|
*/
|
|
334
334
|
resolveOptions(t) {
|
|
335
335
|
const n = this.constructor.optionsSchema;
|
|
336
|
-
return Object.keys(n).length === 0 ? {} :
|
|
336
|
+
return Object.keys(n).length === 0 ? {} : He(n, t);
|
|
337
337
|
}
|
|
338
338
|
/**
|
|
339
339
|
* Gets the algorithm type
|
|
@@ -386,13 +386,14 @@ const Z = class Z {
|
|
|
386
386
|
* @returns The registered algorithm class
|
|
387
387
|
*/
|
|
388
388
|
static register(t) {
|
|
389
|
-
const n = t, r = String(n.type), i = String(n.namespace), { descriptor: s, cost: o,
|
|
390
|
-
return s !== void 0 &&
|
|
389
|
+
const n = t, r = String(n.type), i = String(n.namespace), { descriptor: s, cost: o, costUnits: a, version: u } = n;
|
|
390
|
+
return s !== void 0 && De({
|
|
391
391
|
descriptor: s,
|
|
392
392
|
namespace: i,
|
|
393
393
|
type: r,
|
|
394
394
|
...o === void 0 ? {} : { cost: o },
|
|
395
|
-
...a === void 0 ? {} : {
|
|
395
|
+
...a === void 0 ? {} : { costUnits: a },
|
|
396
|
+
...u === void 0 ? {} : { version: u }
|
|
396
397
|
}), E.set(`${i}:${r}`, t), t;
|
|
397
398
|
}
|
|
398
399
|
/**
|
|
@@ -479,7 +480,7 @@ const ee = 3, qe = 0.1;
|
|
|
479
480
|
function m(e, t) {
|
|
480
481
|
return Number.isInteger(e) ? e.toLocaleString(t) : Number(e.toFixed(ee)).toLocaleString(t, { maximumFractionDigits: ee });
|
|
481
482
|
}
|
|
482
|
-
function
|
|
483
|
+
function Ye(e, t, n) {
|
|
483
484
|
const r = e.fields.find((i) => i.name === t);
|
|
484
485
|
return r === void 0 ? t : n === "technical" ? r.technicalName : r.plainName.toLowerCase();
|
|
485
486
|
}
|
|
@@ -491,11 +492,11 @@ function R(e, t) {
|
|
|
491
492
|
const n = e.graph[t];
|
|
492
493
|
return typeof n == "number" && Number.isFinite(n) ? n : void 0;
|
|
493
494
|
}
|
|
494
|
-
function
|
|
495
|
+
function We(e) {
|
|
495
496
|
return e[0];
|
|
496
497
|
}
|
|
497
|
-
function
|
|
498
|
-
const { locale: r, audience: i } = n, s =
|
|
498
|
+
function Ke(e, t, n) {
|
|
499
|
+
const { locale: r, audience: i } = n, s = Ye(e, "value", i), o = We(t.top);
|
|
499
500
|
if (o === void 0 || t.median === null)
|
|
500
501
|
return `Nothing was measured, so there is no ${s} to report.`;
|
|
501
502
|
const a = [
|
|
@@ -506,7 +507,7 @@ function We(e, t, n) {
|
|
|
506
507
|
`${m(t.tiedAtMin, r)} of ${m(t.measured, r)} sit at the lowest value, ${m(t.min, r)}${C(e, "value", t.min)}.`
|
|
507
508
|
), t.count > t.measured && a.push(`${m(t.count - t.measured, r)} were not measured.`), a.join(" ");
|
|
508
509
|
}
|
|
509
|
-
function
|
|
510
|
+
function Ze(e, t, n) {
|
|
510
511
|
const { locale: r } = n, i = t.groups ?? [];
|
|
511
512
|
if (i.length === 0)
|
|
512
513
|
return "Nothing was grouped, so there are no groups to report.";
|
|
@@ -516,62 +517,62 @@ function Ke(e, t, n) {
|
|
|
516
517
|
], a = R(e, "modularity");
|
|
517
518
|
return a !== void 0 && o.push(`Modularity is ${m(a, r)}.`), o.join(" ");
|
|
518
519
|
}
|
|
519
|
-
function
|
|
520
|
+
function Xe(e, t) {
|
|
520
521
|
const { locale: n } = t, r = R(e, "hops"), i = R(e, "cost");
|
|
521
522
|
if (r === void 0 && i === void 0)
|
|
522
523
|
return "No route was found.";
|
|
523
524
|
const s = [];
|
|
524
525
|
return r !== void 0 && s.push(`The route runs ${m(r, n)} ${r === 1 ? "hop" : "hops"}.`), i !== void 0 && s.push(`Its total cost is ${m(i, n)}.`), s.join(" ");
|
|
525
526
|
}
|
|
526
|
-
function
|
|
527
|
+
function Qe(e, t, n) {
|
|
527
528
|
const { locale: r } = n, i = R(e, "count") ?? t.measured, s = e.shape === "edge-set" ? "edge" : "node";
|
|
528
529
|
return i === 0 ? `No ${s}s were selected.` : `${m(i, r)} ${i === 1 ? s : `${s}s`} were selected.`;
|
|
529
530
|
}
|
|
530
|
-
function
|
|
531
|
+
function et(e, t) {
|
|
531
532
|
const { pairs: n } = e.graph, r = Array.isArray(n) ? n.length : 0;
|
|
532
533
|
return r === 0 ? "No pairs were found." : `${m(r, t.locale)} ${r === 1 ? "pair was" : "pairs were"} found.`;
|
|
533
534
|
}
|
|
534
|
-
function
|
|
535
|
+
function tt(e, t) {
|
|
535
536
|
const n = R(e, "steps");
|
|
536
537
|
return n === void 0 || n === 0 ? "The series is empty." : `The series covers ${m(n, t.locale)} ${n === 1 ? "step" : "steps"}.`;
|
|
537
538
|
}
|
|
538
539
|
function te(e, t) {
|
|
539
540
|
return e.measured === 0 ? "The run produced no values." : `The run covered ${m(e.measured, t.locale)} of ${m(e.count, t.locale)}.`;
|
|
540
541
|
}
|
|
541
|
-
function
|
|
542
|
+
function nt(e, t) {
|
|
542
543
|
const n = e.summary(), { shape: r } = e;
|
|
543
544
|
switch (r) {
|
|
544
545
|
case "node-metric":
|
|
545
546
|
case "edge-metric":
|
|
546
|
-
return
|
|
547
|
+
return Ke(e, n, t);
|
|
547
548
|
case "community":
|
|
548
549
|
case "layered-grouping":
|
|
549
550
|
case "category-table":
|
|
550
|
-
return
|
|
551
|
+
return Ze(e, n, t);
|
|
551
552
|
case "path":
|
|
552
|
-
return
|
|
553
|
+
return Xe(e, t);
|
|
553
554
|
case "node-set":
|
|
554
555
|
case "edge-set":
|
|
555
|
-
return
|
|
556
|
+
return Qe(e, n, t);
|
|
556
557
|
case "pair-list":
|
|
557
|
-
return Qe(e, t);
|
|
558
|
-
case "temporal":
|
|
559
558
|
return et(e, t);
|
|
559
|
+
case "temporal":
|
|
560
|
+
return tt(e, t);
|
|
560
561
|
case "fact":
|
|
561
562
|
return te(n, t);
|
|
562
563
|
default:
|
|
563
564
|
return te(n, t);
|
|
564
565
|
}
|
|
565
566
|
}
|
|
566
|
-
function
|
|
567
|
+
function Cn(e, t) {
|
|
567
568
|
const n = t === "node", r = n ? e.nodeValue : e.edgeValue, i = n ? e.nodeHas : e.edgeHas, s = n ? e.nodeIdOf : e.edgeIdOf;
|
|
568
569
|
return {
|
|
569
570
|
value: r,
|
|
570
|
-
has: i ?? ((o, a) =>
|
|
571
|
+
has: i ?? ((o, a) => rt(r(o, a))),
|
|
571
572
|
idOf: s ?? null
|
|
572
573
|
};
|
|
573
574
|
}
|
|
574
|
-
function
|
|
575
|
+
function rt(e) {
|
|
575
576
|
return e != null;
|
|
576
577
|
}
|
|
577
578
|
function I(e) {
|
|
@@ -599,7 +600,7 @@ function f(e, t, n, r = {}) {
|
|
|
599
600
|
details: { ...r, position: n, where: t }
|
|
600
601
|
});
|
|
601
602
|
}
|
|
602
|
-
const
|
|
603
|
+
const it = Object.freeze({
|
|
603
604
|
"[": "index, slice, wildcard and filter expressions",
|
|
604
605
|
"]": "index, slice, wildcard and filter expressions",
|
|
605
606
|
"{": "multi-select hashes",
|
|
@@ -608,7 +609,7 @@ const rt = Object.freeze({
|
|
|
608
609
|
"*": "wildcards",
|
|
609
610
|
"@": "the current-node reference",
|
|
610
611
|
":": "slices"
|
|
611
|
-
}),
|
|
612
|
+
}), st = ["&&", "||", "==", "!=", "<=", ">=", "!", "<", ">", ".", "(", ")"];
|
|
612
613
|
function fe(e) {
|
|
613
614
|
return /[A-Za-z_]/.test(e);
|
|
614
615
|
}
|
|
@@ -626,7 +627,7 @@ function x(e, t, n) {
|
|
|
626
627
|
}
|
|
627
628
|
throw f(`A ${n} is opened and never closed`, e, t, { delimiter: n });
|
|
628
629
|
}
|
|
629
|
-
function
|
|
630
|
+
function ot(e) {
|
|
630
631
|
let t = "";
|
|
631
632
|
for (let n = 0; n < e.length; n++) {
|
|
632
633
|
if (e[n] === "\\" && (e[n + 1] === "'" || e[n + 1] === "\\")) {
|
|
@@ -637,7 +638,7 @@ function st(e) {
|
|
|
637
638
|
}
|
|
638
639
|
return t;
|
|
639
640
|
}
|
|
640
|
-
function
|
|
641
|
+
function at(e, t, n) {
|
|
641
642
|
const r = n.replace(/\\`/g, "`");
|
|
642
643
|
try {
|
|
643
644
|
return JSON.parse(r);
|
|
@@ -650,7 +651,7 @@ function ot(e, t, n) {
|
|
|
650
651
|
);
|
|
651
652
|
}
|
|
652
653
|
}
|
|
653
|
-
function
|
|
654
|
+
function ct(e, t, n) {
|
|
654
655
|
try {
|
|
655
656
|
const r = JSON.parse(n);
|
|
656
657
|
if (typeof r == "string")
|
|
@@ -664,7 +665,7 @@ function at(e, t, n) {
|
|
|
664
665
|
{ name: n }
|
|
665
666
|
);
|
|
666
667
|
}
|
|
667
|
-
function
|
|
668
|
+
function ut(e) {
|
|
668
669
|
const t = [];
|
|
669
670
|
let n = 0;
|
|
670
671
|
for (; n < e.length; ) {
|
|
@@ -673,7 +674,7 @@ function ct(e) {
|
|
|
673
674
|
n++;
|
|
674
675
|
continue;
|
|
675
676
|
}
|
|
676
|
-
const i =
|
|
677
|
+
const i = it[r];
|
|
677
678
|
if (i !== void 0)
|
|
678
679
|
throw f(`A selector does not support ${i}`, e, n, { construct: i });
|
|
679
680
|
if (r === "|" && e.charAt(n + 1) !== "|")
|
|
@@ -682,24 +683,24 @@ function ct(e) {
|
|
|
682
683
|
throw f("A selector does not support expression references", e, n, {
|
|
683
684
|
construct: "expression references"
|
|
684
685
|
});
|
|
685
|
-
const s =
|
|
686
|
+
const s = st.find((o) => e.startsWith(o, n));
|
|
686
687
|
if (s !== void 0) {
|
|
687
688
|
t.push({ kind: "operator", text: s, at: n }), n += s.length;
|
|
688
689
|
continue;
|
|
689
690
|
}
|
|
690
691
|
if (r === "`") {
|
|
691
692
|
const o = x(e, n, "`");
|
|
692
|
-
t.push({ kind: "literal", text: "", value:
|
|
693
|
+
t.push({ kind: "literal", text: "", value: at(e, n, e.slice(n + 1, o)), at: n }), n = o + 1;
|
|
693
694
|
continue;
|
|
694
695
|
}
|
|
695
696
|
if (r === "'") {
|
|
696
697
|
const o = x(e, n, "'");
|
|
697
|
-
t.push({ kind: "literal", text: "", value:
|
|
698
|
+
t.push({ kind: "literal", text: "", value: ot(e.slice(n + 1, o)), at: n }), n = o + 1;
|
|
698
699
|
continue;
|
|
699
700
|
}
|
|
700
701
|
if (r === '"') {
|
|
701
702
|
const o = x(e, n, '"');
|
|
702
|
-
t.push({ kind: "identifier", text:
|
|
703
|
+
t.push({ kind: "identifier", text: ct(e, n, e.slice(n, o + 1)), at: n }), n = o + 1;
|
|
703
704
|
continue;
|
|
704
705
|
}
|
|
705
706
|
if (fe(r)) {
|
|
@@ -720,7 +721,7 @@ function ct(e) {
|
|
|
720
721
|
}
|
|
721
722
|
return t.push({ kind: "end", text: "", at: e.length }), t;
|
|
722
723
|
}
|
|
723
|
-
const
|
|
724
|
+
const lt = Object.freeze({
|
|
724
725
|
"!=": "!=",
|
|
725
726
|
"<": "<",
|
|
726
727
|
"<=": "<=",
|
|
@@ -735,7 +736,7 @@ function S(e, t) {
|
|
|
735
736
|
const n = N(e);
|
|
736
737
|
return n.kind === "operator" && n.text === t;
|
|
737
738
|
}
|
|
738
|
-
function
|
|
739
|
+
function dt(e) {
|
|
739
740
|
const t = N(e), n = [];
|
|
740
741
|
for (; ; ) {
|
|
741
742
|
const r = N(e);
|
|
@@ -760,12 +761,12 @@ function lt(e) {
|
|
|
760
761
|
e.index++;
|
|
761
762
|
}
|
|
762
763
|
}
|
|
763
|
-
function
|
|
764
|
+
function pt(e) {
|
|
764
765
|
const t = N(e);
|
|
765
766
|
if (t.kind === "literal")
|
|
766
767
|
return e.index++, { kind: "literal", value: t.value };
|
|
767
768
|
if (t.kind === "identifier")
|
|
768
|
-
return
|
|
769
|
+
return dt(e);
|
|
769
770
|
if (S(e, "(")) {
|
|
770
771
|
e.index++;
|
|
771
772
|
const n = ye(e);
|
|
@@ -781,7 +782,7 @@ function dt(e) {
|
|
|
781
782
|
}
|
|
782
783
|
function U(e) {
|
|
783
784
|
if (!S(e, "!"))
|
|
784
|
-
return
|
|
785
|
+
return pt(e);
|
|
785
786
|
const t = N(e);
|
|
786
787
|
e.index++;
|
|
787
788
|
const n = U(e);
|
|
@@ -795,7 +796,7 @@ function U(e) {
|
|
|
795
796
|
return { kind: "not", operand: n };
|
|
796
797
|
}
|
|
797
798
|
function re(e) {
|
|
798
|
-
const t = U(e), n = N(e), r = n.kind === "operator" ?
|
|
799
|
+
const t = U(e), n = N(e), r = n.kind === "operator" ? lt[n.text] : void 0;
|
|
799
800
|
return r === void 0 ? t : (e.index++, { kind: "compare", operator: r, left: t, right: U(e) });
|
|
800
801
|
}
|
|
801
802
|
function ie(e) {
|
|
@@ -810,8 +811,8 @@ function ye(e) {
|
|
|
810
811
|
e.index++, t = { kind: "or", left: t, right: ie(e) };
|
|
811
812
|
return t;
|
|
812
813
|
}
|
|
813
|
-
function
|
|
814
|
-
const t = { where: e, tokens:
|
|
814
|
+
function ht(e) {
|
|
815
|
+
const t = { where: e, tokens: ut(e), index: 0 }, n = ye(t), r = N(t);
|
|
815
816
|
if (r.kind !== "end")
|
|
816
817
|
throw f(
|
|
817
818
|
`${JSON.stringify(r.text)} is left over at the end of the selector`,
|
|
@@ -874,21 +875,21 @@ function w(e, t) {
|
|
|
874
875
|
};
|
|
875
876
|
}
|
|
876
877
|
default:
|
|
877
|
-
return
|
|
878
|
+
return gt(e.operator, e.left, e.right, t);
|
|
878
879
|
}
|
|
879
880
|
}
|
|
880
|
-
const
|
|
881
|
+
const mt = Object.freeze({
|
|
881
882
|
"<": (e, t) => e < t,
|
|
882
883
|
"<=": (e, t) => e <= t,
|
|
883
884
|
">": (e, t) => e > t,
|
|
884
885
|
">=": (e, t) => e >= t
|
|
885
886
|
});
|
|
886
|
-
function
|
|
887
|
+
function ft(e, t) {
|
|
887
888
|
return e.kind === "literal" ? e : t.kind === "literal" ? t : null;
|
|
888
889
|
}
|
|
889
|
-
function
|
|
890
|
+
function gt(e, t, n, r) {
|
|
890
891
|
if (e === "==" || e === "!=") {
|
|
891
|
-
const a = e === "==", u = t.kind === "literal", c =
|
|
892
|
+
const a = e === "==", u = t.kind === "literal", c = ft(t, n), h = u ? n : t;
|
|
892
893
|
if (c !== null && c.value === null && h.kind === "path") {
|
|
893
894
|
const { path: d } = h, { has: v } = r;
|
|
894
895
|
return (k) => v(k, d) !== a;
|
|
@@ -900,7 +901,7 @@ function ft(e, t, n, r) {
|
|
|
900
901
|
}
|
|
901
902
|
return (d) => G(p(d), l(d)) === a;
|
|
902
903
|
}
|
|
903
|
-
const i = w(t, r), s = w(n, r), o =
|
|
904
|
+
const i = w(t, r), s = w(n, r), o = mt[e];
|
|
904
905
|
return (a) => {
|
|
905
906
|
const u = i(a), c = s(a);
|
|
906
907
|
return typeof u == "number" && typeof c == "number" ? o(u, c) : null;
|
|
@@ -929,10 +930,10 @@ function A(e, t) {
|
|
|
929
930
|
}
|
|
930
931
|
}
|
|
931
932
|
}
|
|
932
|
-
function gt(e) {
|
|
933
|
-
return e.split(".").map((t) => yt(t) ? t : JSON.stringify(t)).join(".");
|
|
934
|
-
}
|
|
935
933
|
function yt(e) {
|
|
934
|
+
return e.split(".").map((t) => bt(t) ? t : JSON.stringify(t)).join(".");
|
|
935
|
+
}
|
|
936
|
+
function bt(e) {
|
|
936
937
|
if (e === "" || !fe(e[0]))
|
|
937
938
|
return !1;
|
|
938
939
|
for (let t = 1; t < e.length; t++)
|
|
@@ -940,11 +941,11 @@ function yt(e) {
|
|
|
940
941
|
return !1;
|
|
941
942
|
return !0;
|
|
942
943
|
}
|
|
943
|
-
function
|
|
944
|
+
function xn(e, t) {
|
|
944
945
|
const { has: n } = e;
|
|
945
946
|
return (r) => n(r, t);
|
|
946
947
|
}
|
|
947
|
-
function
|
|
948
|
+
function jn(e, t) {
|
|
948
949
|
const { idOf: n } = e;
|
|
949
950
|
if (n === null)
|
|
950
951
|
throw new y({
|
|
@@ -955,7 +956,7 @@ function xn(e, t) {
|
|
|
955
956
|
});
|
|
956
957
|
return (r) => t.has(n(r));
|
|
957
958
|
}
|
|
958
|
-
function
|
|
959
|
+
function Pn(e, t, n) {
|
|
959
960
|
const { value: r } = e;
|
|
960
961
|
return (i) => {
|
|
961
962
|
const s = n();
|
|
@@ -965,8 +966,8 @@ function jn(e, t, n) {
|
|
|
965
966
|
return typeof o == "number" && Number.isFinite(o) && o >= s;
|
|
966
967
|
};
|
|
967
968
|
}
|
|
968
|
-
function
|
|
969
|
-
const n =
|
|
969
|
+
function Ln(e, t) {
|
|
970
|
+
const n = ht(e), r = [];
|
|
970
971
|
if ($(n, r), r.length === 0) {
|
|
971
972
|
let i = n;
|
|
972
973
|
for (; i.kind === "group"; )
|
|
@@ -981,7 +982,7 @@ function Pn(e, t) {
|
|
|
981
982
|
}
|
|
982
983
|
return { paths: Object.freeze(r), test: A(n, t) };
|
|
983
984
|
}
|
|
984
|
-
const H = "results",
|
|
985
|
+
const H = "results", wt = "$";
|
|
985
986
|
function T(e, t) {
|
|
986
987
|
return t === void 0 ? `${H}.${e}` : `${H}.${e}.${t}`;
|
|
987
988
|
}
|
|
@@ -1153,7 +1154,7 @@ const be = {
|
|
|
1153
1154
|
scope: "graph",
|
|
1154
1155
|
types: ["number"]
|
|
1155
1156
|
}
|
|
1156
|
-
},
|
|
1157
|
+
}, Dn = Object.keys(be), J = {
|
|
1157
1158
|
"node-metric": {
|
|
1158
1159
|
shape: "node-metric",
|
|
1159
1160
|
primaryField: "value",
|
|
@@ -1271,13 +1272,13 @@ const be = {
|
|
|
1271
1272
|
}
|
|
1272
1273
|
};
|
|
1273
1274
|
function B(e) {
|
|
1274
|
-
return
|
|
1275
|
+
return J[e];
|
|
1275
1276
|
}
|
|
1276
|
-
function
|
|
1277
|
-
return
|
|
1277
|
+
function Gn(e) {
|
|
1278
|
+
return J[e].layer === "highlight";
|
|
1278
1279
|
}
|
|
1279
|
-
function
|
|
1280
|
-
const n =
|
|
1280
|
+
function Un(e, t) {
|
|
1281
|
+
const n = J[e], r = [], i = [
|
|
1281
1282
|
{ names: n.nodeFields, kind: "node" },
|
|
1282
1283
|
{ names: n.edgeFields, kind: "edge" },
|
|
1283
1284
|
{ names: n.graphFields, kind: "graph" }
|
|
@@ -1300,18 +1301,18 @@ function Gn(e, t) {
|
|
|
1300
1301
|
reason: `${o} field "${a}" is typed "${u.type}", not ${c.map((h) => `"${h}"`).join(" or ")}`
|
|
1301
1302
|
});
|
|
1302
1303
|
}
|
|
1303
|
-
return n.headlineScalar && !
|
|
1304
|
+
return n.headlineScalar && !vt(n, t) && r.push({
|
|
1304
1305
|
field: null,
|
|
1305
1306
|
kind: "graph",
|
|
1306
1307
|
reason: `shape "${e}" requires one graph-level scalar of its own beside "count"`
|
|
1307
1308
|
}), r;
|
|
1308
1309
|
}
|
|
1309
|
-
function
|
|
1310
|
+
function vt(e, t) {
|
|
1310
1311
|
const n = [...e.graphFields, ...e.optionalGraphFields];
|
|
1311
1312
|
return t.some((r) => r.kind === "graph" && !n.includes(r.name));
|
|
1312
1313
|
}
|
|
1313
|
-
const
|
|
1314
|
-
function
|
|
1314
|
+
const Ot = 3;
|
|
1315
|
+
function kt(e, t) {
|
|
1315
1316
|
if (e === t)
|
|
1316
1317
|
return 0;
|
|
1317
1318
|
const n = new Uint32Array(t.length + 1), r = new Uint32Array(t.length + 1);
|
|
@@ -1327,23 +1328,23 @@ function Ot(e, t) {
|
|
|
1327
1328
|
}
|
|
1328
1329
|
return n[t.length];
|
|
1329
1330
|
}
|
|
1330
|
-
function
|
|
1331
|
+
function Nt(e, t, n = Ot) {
|
|
1331
1332
|
const r = e.toLowerCase(), i = t.map((s) => ({
|
|
1332
1333
|
candidate: s,
|
|
1333
|
-
distance:
|
|
1334
|
+
distance: kt(r, s.toLowerCase())
|
|
1334
1335
|
}));
|
|
1335
1336
|
return i.sort((s, o) => s.distance - o.distance || s.candidate.localeCompare(o.candidate)), Object.freeze(i.slice(0, Math.max(n, 0)).map((s) => s.candidate));
|
|
1336
1337
|
}
|
|
1337
1338
|
function se(e) {
|
|
1338
1339
|
return typeof e == "string" ? e : "runId" in e ? e.runId : e.id;
|
|
1339
1340
|
}
|
|
1340
|
-
function
|
|
1341
|
+
function St(e) {
|
|
1341
1342
|
return typeof e == "string" ? void 0 : e.shape;
|
|
1342
1343
|
}
|
|
1343
|
-
function
|
|
1344
|
+
function At(e, t) {
|
|
1344
1345
|
return e.fields.some((n) => n.name === t) || t in e.graph;
|
|
1345
1346
|
}
|
|
1346
|
-
class
|
|
1347
|
+
class $t {
|
|
1347
1348
|
#e;
|
|
1348
1349
|
/**
|
|
1349
1350
|
* Build the API over a registry.
|
|
@@ -1367,7 +1368,7 @@ class At {
|
|
|
1367
1368
|
const r = se(t);
|
|
1368
1369
|
if (n !== void 0)
|
|
1369
1370
|
return T(r, n);
|
|
1370
|
-
const i =
|
|
1371
|
+
const i = St(t) ?? this.#e.entry(r)?.shape, s = i === void 0 ? null : B(i).primaryField;
|
|
1371
1372
|
return s === null ? T(r) : T(r, s);
|
|
1372
1373
|
}
|
|
1373
1374
|
/**
|
|
@@ -1383,7 +1384,7 @@ class At {
|
|
|
1383
1384
|
* @returns The path with every segment quoted that needs it.
|
|
1384
1385
|
*/
|
|
1385
1386
|
term(t, n) {
|
|
1386
|
-
return
|
|
1387
|
+
return yt(n === void 0 ? this.path(t) : this.path(t, n));
|
|
1387
1388
|
}
|
|
1388
1389
|
/**
|
|
1389
1390
|
* One run's result.
|
|
@@ -1405,7 +1406,7 @@ class At {
|
|
|
1405
1406
|
*/
|
|
1406
1407
|
has(t, n) {
|
|
1407
1408
|
const r = this.get(t);
|
|
1408
|
-
return r === void 0 ? !1 : n === void 0 ||
|
|
1409
|
+
return r === void 0 ? !1 : n === void 0 || At(r, n);
|
|
1409
1410
|
}
|
|
1410
1411
|
/**
|
|
1411
1412
|
* Every run that has published a result, as an expression editor reads them.
|
|
@@ -1418,20 +1419,20 @@ class At {
|
|
|
1418
1419
|
return Object.freeze(t);
|
|
1419
1420
|
}
|
|
1420
1421
|
}
|
|
1421
|
-
function
|
|
1422
|
-
return new
|
|
1422
|
+
function Hn(e) {
|
|
1423
|
+
return new $t(e);
|
|
1423
1424
|
}
|
|
1424
|
-
const
|
|
1425
|
+
const Rt = 20, j = 100, Et = 100, Ft = Object.freeze([]), It = Object.freeze(["max", "min-max", "none"]);
|
|
1425
1426
|
function we(e) {
|
|
1426
|
-
return typeof e == "string" &&
|
|
1427
|
+
return typeof e == "string" && It.includes(e);
|
|
1427
1428
|
}
|
|
1428
|
-
function
|
|
1429
|
+
function Bn(e) {
|
|
1429
1430
|
return {
|
|
1430
1431
|
length: e.length,
|
|
1431
1432
|
get: (t) => e[t]
|
|
1432
1433
|
};
|
|
1433
1434
|
}
|
|
1434
|
-
const
|
|
1435
|
+
const Tt = Object.freeze({
|
|
1435
1436
|
measured: 0,
|
|
1436
1437
|
min: Number.NaN,
|
|
1437
1438
|
max: Number.NaN,
|
|
@@ -1448,7 +1449,7 @@ function ve(e) {
|
|
|
1448
1449
|
Number.isFinite(d) && (n[r] = d, r++);
|
|
1449
1450
|
}
|
|
1450
1451
|
if (r === 0)
|
|
1451
|
-
return { length: t, ...
|
|
1452
|
+
return { length: t, ...Tt };
|
|
1452
1453
|
let i = Number.POSITIVE_INFINITY, s = Number.NEGATIVE_INFINITY, o = Number.POSITIVE_INFINITY, a = 0, u = 0;
|
|
1453
1454
|
for (let l = 0; l < r; l++) {
|
|
1454
1455
|
const d = n[l];
|
|
@@ -1482,7 +1483,7 @@ function Oe(e) {
|
|
|
1482
1483
|
median: t.median
|
|
1483
1484
|
}), statistics: t };
|
|
1484
1485
|
}
|
|
1485
|
-
function
|
|
1486
|
+
function q(e) {
|
|
1486
1487
|
const t = e.filter((o) => Number.isFinite(o.value)).map((o) => ({ entry: o, label: String(o.id) }));
|
|
1487
1488
|
t.sort((o, a) => o.entry.value !== a.entry.value ? a.entry.value - o.entry.value : o.label === a.label ? 0 : o.label < a.label ? -1 : 1);
|
|
1488
1489
|
const n = t.length, r = [];
|
|
@@ -1500,7 +1501,7 @@ function J(e) {
|
|
|
1500
1501
|
}
|
|
1501
1502
|
return Object.freeze(r);
|
|
1502
1503
|
}
|
|
1503
|
-
function
|
|
1504
|
+
function Mt(e, t) {
|
|
1504
1505
|
let n = Math.min(t, e.length);
|
|
1505
1506
|
for (; n > 0 && n < e.length && e[n].rank === e[n - 1].rank; )
|
|
1506
1507
|
n--;
|
|
@@ -1517,17 +1518,17 @@ function Tt(e, t) {
|
|
|
1517
1518
|
reason: o
|
|
1518
1519
|
});
|
|
1519
1520
|
}
|
|
1520
|
-
function
|
|
1521
|
+
function _t(e) {
|
|
1521
1522
|
const { smallestPositive: t } = e;
|
|
1522
1523
|
if (e.measured === 0 || !(e.max > 0) || t === null)
|
|
1523
1524
|
return !1;
|
|
1524
1525
|
const n = e.min > 0 ? e.min : t;
|
|
1525
1526
|
return Math.log10(e.max) > Math.log10(n);
|
|
1526
1527
|
}
|
|
1527
|
-
function
|
|
1528
|
-
return e.measured === 0 || !(e.median > 0) || e.max / e.median <=
|
|
1528
|
+
function zt(e) {
|
|
1529
|
+
return e.measured === 0 || !(e.median > 0) || e.max / e.median <= Et ? "linear" : _t(e) ? "log" : "linear";
|
|
1529
1530
|
}
|
|
1530
|
-
function
|
|
1531
|
+
function Ct(e, t, n, r) {
|
|
1531
1532
|
if (!(t > e))
|
|
1532
1533
|
return { binCount: 1, indexOf: () => 0, rangeOf: () => [e, t] };
|
|
1533
1534
|
if (r) {
|
|
@@ -1551,7 +1552,7 @@ function zt(e, t, n, r) {
|
|
|
1551
1552
|
]
|
|
1552
1553
|
};
|
|
1553
1554
|
}
|
|
1554
|
-
function
|
|
1555
|
+
function xt(e, t, n, r, i) {
|
|
1555
1556
|
const s = e > 0 ? 0 : 1, o = s === 0 ? e : n;
|
|
1556
1557
|
if (!(t > 0) || o === null || !(o > 0))
|
|
1557
1558
|
return null;
|
|
@@ -1581,9 +1582,9 @@ function Ct(e, t, n, r, i) {
|
|
|
1581
1582
|
}
|
|
1582
1583
|
};
|
|
1583
1584
|
}
|
|
1584
|
-
function
|
|
1585
|
+
function jt(e) {
|
|
1585
1586
|
if (e === void 0)
|
|
1586
|
-
return
|
|
1587
|
+
return Rt;
|
|
1587
1588
|
if (!Number.isInteger(e) || e < 1 || e > j)
|
|
1588
1589
|
throw new y({
|
|
1589
1590
|
code: "E_OPTION_RANGE",
|
|
@@ -1593,7 +1594,7 @@ function xt(e) {
|
|
|
1593
1594
|
});
|
|
1594
1595
|
return e;
|
|
1595
1596
|
}
|
|
1596
|
-
function
|
|
1597
|
+
function Pt(e, t) {
|
|
1597
1598
|
const n = /* @__PURE__ */ new Map();
|
|
1598
1599
|
for (let r = 0; r < e.length; r++) {
|
|
1599
1600
|
const i = e.get(r);
|
|
@@ -1610,12 +1611,12 @@ function jt(e, t) {
|
|
|
1610
1611
|
}
|
|
1611
1612
|
return n;
|
|
1612
1613
|
}
|
|
1613
|
-
function
|
|
1614
|
-
const n =
|
|
1614
|
+
function Lt(e, t) {
|
|
1615
|
+
const n = jt(t?.bins), r = t?.integerValued ?? !1, i = ve(e), s = zt(i), o = Pt(e, n);
|
|
1615
1616
|
if (o !== null) {
|
|
1616
1617
|
if (o.size === 0)
|
|
1617
1618
|
return Object.freeze({
|
|
1618
|
-
bins:
|
|
1619
|
+
bins: Ft,
|
|
1619
1620
|
// Nothing was measured, so nothing is on any axis. Reported as linear rather
|
|
1620
1621
|
// than as the request, because "log scale" over an empty chart is the same false
|
|
1621
1622
|
// caption this whole return type exists to prevent.
|
|
@@ -1634,7 +1635,7 @@ function Pt(e, t) {
|
|
|
1634
1635
|
binning: "per-value"
|
|
1635
1636
|
});
|
|
1636
1637
|
}
|
|
1637
|
-
const u = t?.scale === "log" || t?.scale === "auto" && s === "log" ?
|
|
1638
|
+
const u = t?.scale === "log" || t?.scale === "auto" && s === "log" ? xt(i.min, i.max, i.smallestPositive, n, r) : null, c = u ?? Ct(i.min, i.max, n, r), h = new Array(c.binCount).fill(0);
|
|
1638
1639
|
for (let p = 0; p < e.length; p++) {
|
|
1639
1640
|
const l = e.get(p);
|
|
1640
1641
|
Number.isFinite(l) && (h[c.indexOf(l)] += 1);
|
|
@@ -1653,7 +1654,7 @@ function Pt(e, t) {
|
|
|
1653
1654
|
binning: "banded"
|
|
1654
1655
|
});
|
|
1655
1656
|
}
|
|
1656
|
-
const
|
|
1657
|
+
const Dt = 10, Gt = 10;
|
|
1657
1658
|
function oe(e) {
|
|
1658
1659
|
const t = { ids: [], records: [], index: /* @__PURE__ */ new Map() };
|
|
1659
1660
|
if (e === void 0)
|
|
@@ -1705,7 +1706,7 @@ function Se(e, t) {
|
|
|
1705
1706
|
const n = String(e), r = String(t);
|
|
1706
1707
|
return n === r ? 0 : n < r ? -1 : 1;
|
|
1707
1708
|
}
|
|
1708
|
-
function
|
|
1709
|
+
function Ut(e) {
|
|
1709
1710
|
const t = [...e.entries()].map(([n, r]) => ({ group: n, size: r }));
|
|
1710
1711
|
return t.sort((n, r) => r.size - n.size || Se(n.group, r.group)), Object.freeze(t.map((n) => Object.freeze(n)));
|
|
1711
1712
|
}
|
|
@@ -1715,7 +1716,7 @@ function Ae(e, t) {
|
|
|
1715
1716
|
}
|
|
1716
1717
|
function ae(e, t, n) {
|
|
1717
1718
|
const { statistics: r } = Oe(V(e, "value"));
|
|
1718
|
-
for (const i of
|
|
1719
|
+
for (const i of q(Y(e, "value"))) {
|
|
1719
1720
|
const s = e.index.get(i.id);
|
|
1720
1721
|
s !== void 0 && (M(e.records[s], "rank", i.rank), M(e.records[s], "percentile", i.percentile));
|
|
1721
1722
|
}
|
|
@@ -1727,10 +1728,10 @@ function ce(e, t, n, r, i) {
|
|
|
1727
1728
|
const a = o[n];
|
|
1728
1729
|
W(a) && M(o, r, s.get(a));
|
|
1729
1730
|
}
|
|
1730
|
-
g(t, i, s.size), g(t, "sizes",
|
|
1731
|
+
g(t, i, s.size), g(t, "sizes", Ut(s));
|
|
1731
1732
|
}
|
|
1732
|
-
function
|
|
1733
|
-
for (const r of
|
|
1733
|
+
function Ht(e, t) {
|
|
1734
|
+
for (const r of q(Y(e, "score"))) {
|
|
1734
1735
|
const i = e.index.get(r.id);
|
|
1735
1736
|
i !== void 0 && M(e.records[i], "rank", r.rank);
|
|
1736
1737
|
}
|
|
@@ -1752,7 +1753,7 @@ function ue(e, t) {
|
|
|
1752
1753
|
r[t] !== void 0 && n++;
|
|
1753
1754
|
return n;
|
|
1754
1755
|
}
|
|
1755
|
-
function
|
|
1756
|
+
function Bt(e, t, n, r, i) {
|
|
1756
1757
|
switch (e) {
|
|
1757
1758
|
case "node-metric":
|
|
1758
1759
|
ae(t, r, i);
|
|
@@ -1767,7 +1768,7 @@ function Ht(e, t, n, r, i) {
|
|
|
1767
1768
|
ce(t, r, "level", "levelSize", "levelCount");
|
|
1768
1769
|
break;
|
|
1769
1770
|
case "category-table":
|
|
1770
|
-
|
|
1771
|
+
Ht(t, r);
|
|
1771
1772
|
break;
|
|
1772
1773
|
case "path":
|
|
1773
1774
|
g(r, "length", F(t, "onPath")), g(r, "hops", F(n, "onPath"));
|
|
@@ -1780,7 +1781,7 @@ function Ht(e, t, n, r, i) {
|
|
|
1780
1781
|
break;
|
|
1781
1782
|
}
|
|
1782
1783
|
}
|
|
1783
|
-
function
|
|
1784
|
+
function Vt(e) {
|
|
1784
1785
|
switch (e) {
|
|
1785
1786
|
case "node-metric":
|
|
1786
1787
|
case "edge-metric":
|
|
@@ -1793,7 +1794,7 @@ function Bt(e) {
|
|
|
1793
1794
|
return null;
|
|
1794
1795
|
}
|
|
1795
1796
|
}
|
|
1796
|
-
function
|
|
1797
|
+
function Jt(e, t) {
|
|
1797
1798
|
if (!Array.isArray(e))
|
|
1798
1799
|
return;
|
|
1799
1800
|
const n = [];
|
|
@@ -1826,7 +1827,7 @@ class qt {
|
|
|
1826
1827
|
*/
|
|
1827
1828
|
constructor(t, n, r, i) {
|
|
1828
1829
|
this.runId = t.runId, this.shape = t.shape, this.fields = Object.freeze([...t.fields]), this.measured = Object.freeze({ nodes: t.measured.nodes, edges: t.measured.edges }), this.graph = i, this.#e = n, this.#t = r, this.#n = t.caveats, this.#r = t.durationMs, this.#i = t.labelOf ?? (() => {
|
|
1829
|
-
}), this.#s = t.reading ??
|
|
1830
|
+
}), this.#s = t.reading ?? nt;
|
|
1830
1831
|
}
|
|
1831
1832
|
/**
|
|
1832
1833
|
* One node's fields.
|
|
@@ -1892,7 +1893,7 @@ class qt {
|
|
|
1892
1893
|
const r = `${String(n)}:${t}`, i = this.#c.get(r);
|
|
1893
1894
|
if (i !== void 0)
|
|
1894
1895
|
return i;
|
|
1895
|
-
const s =
|
|
1896
|
+
const s = Mt(this.ranking(t), this.#l(n, "n"));
|
|
1896
1897
|
return this.#c.set(r, s), s;
|
|
1897
1898
|
}
|
|
1898
1899
|
/**
|
|
@@ -1927,7 +1928,7 @@ class qt {
|
|
|
1927
1928
|
*/
|
|
1928
1929
|
histogram(t, n) {
|
|
1929
1930
|
const r = this.#d(t), i = r.kind === "edge" ? this.#t : this.#e;
|
|
1930
|
-
return
|
|
1931
|
+
return Lt(V(i, t), {
|
|
1931
1932
|
...n,
|
|
1932
1933
|
integerValued: r.type === "integer"
|
|
1933
1934
|
});
|
|
@@ -1983,7 +1984,7 @@ class qt {
|
|
|
1983
1984
|
code: "E_UNKNOWN_ATTRIBUTE",
|
|
1984
1985
|
source: "run",
|
|
1985
1986
|
message: `Run "${this.runId}" published no field named "${t}".`,
|
|
1986
|
-
details: { field: t, available: i, candidates:
|
|
1987
|
+
details: { field: t, available: i, candidates: Nt(t, i) },
|
|
1987
1988
|
target: { kind: "run", id: this.runId }
|
|
1988
1989
|
});
|
|
1989
1990
|
if (!P(r))
|
|
@@ -2025,7 +2026,7 @@ class qt {
|
|
|
2025
2026
|
* @throws A GraphtyError naming what went wrong.
|
|
2026
2027
|
*/
|
|
2027
2028
|
#f(t) {
|
|
2028
|
-
const n =
|
|
2029
|
+
const n = q(Y(this.#p(t), t));
|
|
2029
2030
|
return this.#a.set(t, n), n;
|
|
2030
2031
|
}
|
|
2031
2032
|
/**
|
|
@@ -2033,7 +2034,7 @@ class qt {
|
|
|
2033
2034
|
* @returns The summary.
|
|
2034
2035
|
*/
|
|
2035
2036
|
#g() {
|
|
2036
|
-
const t =
|
|
2037
|
+
const t = Vt(this.shape), n = t === null || this.#m(t) === null ? null : t, r = n === null ? null : this.#h(n).statistics, i = r !== null && r.measured > 0 ? r : null, s = n === null ? [] : this.ranking(n, Dt).map(
|
|
2037
2038
|
(c) => Object.freeze({
|
|
2038
2039
|
id: c.id,
|
|
2039
2040
|
label: this.#i(c.id) ?? String(c.id),
|
|
@@ -2053,7 +2054,7 @@ class qt {
|
|
|
2053
2054
|
top: Object.freeze(s),
|
|
2054
2055
|
caveats: this.#n,
|
|
2055
2056
|
durationMs: this.#r
|
|
2056
|
-
}, a = this.graph.sizes ?? this.graph.categories, u =
|
|
2057
|
+
}, a = this.graph.sizes ?? this.graph.categories, u = Jt(a, Gt);
|
|
2057
2058
|
return Object.freeze(u === void 0 ? o : { ...o, groups: u });
|
|
2058
2059
|
}
|
|
2059
2060
|
/**
|
|
@@ -2090,16 +2091,16 @@ class qt {
|
|
|
2090
2091
|
return we(n) ? n : t === null ? "none" : Ae(this.fields, t);
|
|
2091
2092
|
}
|
|
2092
2093
|
}
|
|
2093
|
-
function
|
|
2094
|
+
function Yt(e) {
|
|
2094
2095
|
const t = oe(e.nodes), n = oe(e.edges), r = { ...e.graph };
|
|
2095
|
-
|
|
2096
|
+
Bt(e.shape, t, n, r, e.fields);
|
|
2096
2097
|
for (const i of t.records)
|
|
2097
2098
|
Object.freeze(i);
|
|
2098
2099
|
for (const i of n.records)
|
|
2099
2100
|
Object.freeze(i);
|
|
2100
2101
|
return new qt(e, t, n, Object.freeze(r));
|
|
2101
2102
|
}
|
|
2102
|
-
function
|
|
2103
|
+
function Wt(e) {
|
|
2103
2104
|
const t = e.styles?.config.data.knownFields.nodeLabelPath ?? null;
|
|
2104
2105
|
if (t === null)
|
|
2105
2106
|
return;
|
|
@@ -2109,11 +2110,11 @@ function Yt(e) {
|
|
|
2109
2110
|
return typeof i == "string" || typeof i == "number" ? String(i) : void 0;
|
|
2110
2111
|
};
|
|
2111
2112
|
}
|
|
2112
|
-
function
|
|
2113
|
+
function Vn(e) {
|
|
2113
2114
|
return { exact: !0, precision: "f64", notes: [], ...e };
|
|
2114
2115
|
}
|
|
2115
|
-
const
|
|
2116
|
-
function
|
|
2116
|
+
const Kt = 1024, Zt = 16;
|
|
2117
|
+
function Xt() {
|
|
2117
2118
|
return {
|
|
2118
2119
|
signal: new AbortController().signal,
|
|
2119
2120
|
report: () => {
|
|
@@ -2123,15 +2124,15 @@ function Zt() {
|
|
|
2123
2124
|
})
|
|
2124
2125
|
};
|
|
2125
2126
|
}
|
|
2126
|
-
async function
|
|
2127
|
+
async function Jn(e, t, n, r) {
|
|
2127
2128
|
const i = n.length;
|
|
2128
2129
|
e.report({ phase: t, completed: 0, total: i });
|
|
2129
2130
|
let s = performance.now();
|
|
2130
2131
|
for (let o = 0; o < i; o++)
|
|
2131
|
-
o > 0 && o %
|
|
2132
|
+
o > 0 && o % Kt === 0 && (e.signal.throwIfAborted(), e.report({ phase: t, completed: o, total: i }), performance.now() - s >= Zt && (await e.yieldNow(), s = performance.now())), r(n[o], o);
|
|
2132
2133
|
e.signal.throwIfAborted(), e.report({ phase: t, completed: i, total: i });
|
|
2133
2134
|
}
|
|
2134
|
-
function
|
|
2135
|
+
function Qt(e, t, n) {
|
|
2135
2136
|
const r = n?.find((s) => s.name === e.name && s.kind === e.kind), i = {
|
|
2136
2137
|
name: e.name,
|
|
2137
2138
|
plainName: r?.plainName ?? e.name,
|
|
@@ -2167,7 +2168,7 @@ class qn extends D {
|
|
|
2167
2168
|
*/
|
|
2168
2169
|
resolveOptions(t) {
|
|
2169
2170
|
const { descriptor: n } = this.constructor;
|
|
2170
|
-
return n === void 0 ? super.resolveOptions(t) :
|
|
2171
|
+
return n === void 0 ? super.resolveOptions(t) : _e(n.options, t ?? {}, {
|
|
2171
2172
|
kind: "algorithm",
|
|
2172
2173
|
id: n.key
|
|
2173
2174
|
});
|
|
@@ -2194,7 +2195,7 @@ class qn extends D {
|
|
|
2194
2195
|
* @returns A promise that settles when the result has been published.
|
|
2195
2196
|
*/
|
|
2196
2197
|
async run() {
|
|
2197
|
-
await this.computeRun(
|
|
2198
|
+
await this.computeRun(Xt(), this.type);
|
|
2198
2199
|
}
|
|
2199
2200
|
/**
|
|
2200
2201
|
* Compute on behalf of a run, and hand the result back.
|
|
@@ -2229,11 +2230,11 @@ class qn extends D {
|
|
|
2229
2230
|
const i = Date.now(), s = await this.compute(t);
|
|
2230
2231
|
if (s === null)
|
|
2231
2232
|
return;
|
|
2232
|
-
const o = this.graph.getDataManager(), a =
|
|
2233
|
+
const o = this.graph.getDataManager(), a = Wt(this.graph), u = Yt({
|
|
2233
2234
|
...a === void 0 ? {} : { labelOf: a },
|
|
2234
2235
|
runId: n,
|
|
2235
2236
|
shape: s.shape,
|
|
2236
|
-
fields: s.fields.map((c) =>
|
|
2237
|
+
fields: s.fields.map((c) => Qt(c, n, r)),
|
|
2237
2238
|
measured: { nodes: o.nodes.size, edges: o.edges.size },
|
|
2238
2239
|
graph: s.graph,
|
|
2239
2240
|
nodes: s.nodes,
|
|
@@ -2244,7 +2245,7 @@ class qn extends D {
|
|
|
2244
2245
|
return this.#e = u, u;
|
|
2245
2246
|
}
|
|
2246
2247
|
}
|
|
2247
|
-
function
|
|
2248
|
+
function Yn(e, t = "number") {
|
|
2248
2249
|
return [
|
|
2249
2250
|
{ name: "value", kind: e, type: t },
|
|
2250
2251
|
{ name: "rank", kind: e, type: "integer" },
|
|
@@ -2264,15 +2265,15 @@ const le = [
|
|
|
2264
2265
|
{ name: "groupCount", kind: "graph", type: "integer" },
|
|
2265
2266
|
{ name: "sizes", kind: "graph", type: "table" }
|
|
2266
2267
|
];
|
|
2267
|
-
function
|
|
2268
|
+
function Wn(e) {
|
|
2268
2269
|
return e ? [...le, { name: "modularity", kind: "graph", type: "number" }] : le;
|
|
2269
2270
|
}
|
|
2270
|
-
const
|
|
2271
|
+
const Kn = [
|
|
2271
2272
|
{ name: "level", kind: "node", type: "integer" },
|
|
2272
2273
|
{ name: "levelSize", kind: "node", type: "integer" },
|
|
2273
2274
|
{ name: "levelCount", kind: "graph", type: "integer" },
|
|
2274
2275
|
{ name: "sizes", kind: "graph", type: "table" }
|
|
2275
|
-
],
|
|
2276
|
+
], Zn = [
|
|
2276
2277
|
{ name: "onPath", kind: "node", type: "boolean" },
|
|
2277
2278
|
{ name: "order", kind: "node", type: "integer" },
|
|
2278
2279
|
{ name: "onPath", kind: "edge", type: "boolean" },
|
|
@@ -2280,18 +2281,18 @@ const Wn = [
|
|
|
2280
2281
|
{ name: "cost", kind: "graph", type: "number" },
|
|
2281
2282
|
{ name: "hops", kind: "graph", type: "integer" }
|
|
2282
2283
|
];
|
|
2283
|
-
function
|
|
2284
|
+
function Xn(e, t) {
|
|
2284
2285
|
return [
|
|
2285
2286
|
{ name: "in", kind: e, type: "boolean" },
|
|
2286
2287
|
{ name: "count", kind: "graph", type: "integer" },
|
|
2287
2288
|
{ ...t, kind: "graph" }
|
|
2288
2289
|
];
|
|
2289
2290
|
}
|
|
2290
|
-
const
|
|
2291
|
+
const en = `${H}.${wt}`;
|
|
2291
2292
|
function O(e) {
|
|
2292
|
-
return { ...e, path: `${
|
|
2293
|
+
return { ...e, path: `${en}.${e.name}` };
|
|
2293
2294
|
}
|
|
2294
|
-
function
|
|
2295
|
+
function Qn(e) {
|
|
2295
2296
|
return [
|
|
2296
2297
|
O({
|
|
2297
2298
|
name: "value",
|
|
@@ -2336,28 +2337,28 @@ function Xn(e) {
|
|
|
2336
2337
|
})
|
|
2337
2338
|
];
|
|
2338
2339
|
}
|
|
2339
|
-
const
|
|
2340
|
-
function
|
|
2341
|
-
return (
|
|
2342
|
-
const i = { ...r.meta, ...t.meta?.[r.name] }, s = r.node === null ?
|
|
2340
|
+
const tn = 12;
|
|
2341
|
+
function er(e, t = {}) {
|
|
2342
|
+
return (nn(e) ? rn(e) : sn(e)).map((r) => {
|
|
2343
|
+
const i = { ...r.meta, ...t.meta?.[r.name] }, s = r.node === null ? cn(r.name, i, r.failure ?? "the schema could not be converted") : an(r.name, r.node, i), o = t.overrides?.[r.name];
|
|
2343
2344
|
return o === void 0 ? s : { ...s, ...o };
|
|
2344
2345
|
});
|
|
2345
2346
|
}
|
|
2346
|
-
function
|
|
2347
|
+
function nn(e) {
|
|
2347
2348
|
return typeof e != "object" || e === null ? !1 : "_zod" in e || "_def" in e;
|
|
2348
2349
|
}
|
|
2349
|
-
function
|
|
2350
|
+
function rn(e) {
|
|
2350
2351
|
const t = $e(e);
|
|
2351
2352
|
if (t === null)
|
|
2352
2353
|
return [];
|
|
2353
2354
|
const { properties: n } = t;
|
|
2354
2355
|
return n === void 0 ? [] : Object.entries(n).map(([r, i]) => ({ name: r, node: Re(i, t) }));
|
|
2355
2356
|
}
|
|
2356
|
-
function
|
|
2357
|
+
function sn(e) {
|
|
2357
2358
|
const t = Object.entries(e), n = {};
|
|
2358
2359
|
for (const [s, o] of t)
|
|
2359
2360
|
n[s] = o.schema;
|
|
2360
|
-
const r =
|
|
2361
|
+
const r = on(n), i = r?.properties;
|
|
2361
2362
|
return t.map(([s, o]) => {
|
|
2362
2363
|
const a = i?.[s];
|
|
2363
2364
|
return r === null || a === void 0 ? {
|
|
@@ -2375,7 +2376,7 @@ function $e(e) {
|
|
|
2375
2376
|
return null;
|
|
2376
2377
|
}
|
|
2377
2378
|
}
|
|
2378
|
-
function
|
|
2379
|
+
function on(e) {
|
|
2379
2380
|
try {
|
|
2380
2381
|
return $e(me.object(e));
|
|
2381
2382
|
} catch {
|
|
@@ -2390,8 +2391,8 @@ function Re(e, t) {
|
|
|
2390
2391
|
const r = n.slice(de.length).replaceAll("~1", "/").replaceAll("~0", "~");
|
|
2391
2392
|
return t.$defs?.[r] ?? e;
|
|
2392
2393
|
}
|
|
2393
|
-
function
|
|
2394
|
-
const r = Ee(t, 0), i =
|
|
2394
|
+
function an(e, t, n) {
|
|
2395
|
+
const r = Ee(t, 0), i = un(r), s = {
|
|
2395
2396
|
name: e,
|
|
2396
2397
|
plainName: n.label ?? K(e),
|
|
2397
2398
|
technicalName: e,
|
|
@@ -2406,7 +2407,7 @@ function on(e, t, n) {
|
|
|
2406
2407
|
const u = n.step ?? a?.multipleOf;
|
|
2407
2408
|
return u !== void 0 && (s.step = u), i.values !== void 0 && (s.values = i.values), n.group !== void 0 && (s.group = n.group), n.advanced !== void 0 && (s.advanced = n.advanced), i.unsupportedReason !== void 0 && (s.unsupportedReason = i.unsupportedReason), s;
|
|
2408
2409
|
}
|
|
2409
|
-
function
|
|
2410
|
+
function cn(e, t, n) {
|
|
2410
2411
|
const r = {
|
|
2411
2412
|
name: e,
|
|
2412
2413
|
plainName: t.label ?? K(e),
|
|
@@ -2417,7 +2418,7 @@ function an(e, t, n) {
|
|
|
2417
2418
|
return t.description !== void 0 && (r.description = t.description), t.step !== void 0 && (r.step = t.step), t.group !== void 0 && (r.group = t.group), t.advanced !== void 0 && (r.advanced = t.advanced), r;
|
|
2418
2419
|
}
|
|
2419
2420
|
function Ee(e, t) {
|
|
2420
|
-
if (t >=
|
|
2421
|
+
if (t >= tn)
|
|
2421
2422
|
return { arms: [], nullable: !1, unresolvedRef: !0 };
|
|
2422
2423
|
if (e.$ref !== void 0)
|
|
2423
2424
|
return { arms: [], nullable: !1, unresolvedRef: !0 };
|
|
@@ -2431,7 +2432,7 @@ function Ee(e, t) {
|
|
|
2431
2432
|
}
|
|
2432
2433
|
return r;
|
|
2433
2434
|
}
|
|
2434
|
-
function
|
|
2435
|
+
function un(e) {
|
|
2435
2436
|
if (e.arms.length === 0)
|
|
2436
2437
|
return e.unresolvedRef ? {
|
|
2437
2438
|
type: "unknown",
|
|
@@ -2440,18 +2441,18 @@ function cn(e) {
|
|
|
2440
2441
|
type: "unknown",
|
|
2441
2442
|
unsupportedReason: e.nullable ? "the only value the schema accepts is null" : "the schema declares no value type"
|
|
2442
2443
|
};
|
|
2443
|
-
const t =
|
|
2444
|
+
const t = dn(e.arms);
|
|
2444
2445
|
if (t !== void 0)
|
|
2445
2446
|
return { type: "enum", node: e.arms[0], values: t };
|
|
2446
2447
|
if (e.arms.length === 1)
|
|
2447
|
-
return
|
|
2448
|
+
return ln(e.arms[0]);
|
|
2448
2449
|
const n = e.arms.map((r) => Fe(r));
|
|
2449
2450
|
return n.length === 2 && n.includes("string") && n.includes("number") ? { type: "node-id" } : {
|
|
2450
2451
|
type: "unknown",
|
|
2451
2452
|
unsupportedReason: `the schema is a union of ${n.join(" and ")}, which has no single control`
|
|
2452
2453
|
};
|
|
2453
2454
|
}
|
|
2454
|
-
function
|
|
2455
|
+
function ln(e) {
|
|
2455
2456
|
switch (Fe(e)) {
|
|
2456
2457
|
case "integer":
|
|
2457
2458
|
return { type: "integer", node: e };
|
|
@@ -2481,7 +2482,7 @@ function un(e) {
|
|
|
2481
2482
|
};
|
|
2482
2483
|
}
|
|
2483
2484
|
}
|
|
2484
|
-
function
|
|
2485
|
+
function dn(e) {
|
|
2485
2486
|
const t = [];
|
|
2486
2487
|
for (const r of e)
|
|
2487
2488
|
if (r.enum !== void 0)
|
|
@@ -2514,59 +2515,59 @@ function K(e) {
|
|
|
2514
2515
|
return t === "" ? e : t.split(/\s+/u).map((n) => n.charAt(0).toUpperCase() + n.slice(1)).join(" ");
|
|
2515
2516
|
}
|
|
2516
2517
|
export {
|
|
2517
|
-
|
|
2518
|
+
Hn as $,
|
|
2518
2519
|
D as A,
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2520
|
+
Tn as B,
|
|
2521
|
+
Le as C,
|
|
2522
|
+
An as D,
|
|
2523
|
+
kn as E,
|
|
2524
|
+
vn as F,
|
|
2525
|
+
Wt as G,
|
|
2526
|
+
Yt as H,
|
|
2527
|
+
Rn as I,
|
|
2528
|
+
$n as J,
|
|
2529
|
+
Fn as K,
|
|
2530
|
+
Kn as L,
|
|
2531
|
+
En as M,
|
|
2531
2532
|
ve as N,
|
|
2532
2533
|
b as O,
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2534
|
+
Zn as P,
|
|
2535
|
+
Bn as Q,
|
|
2536
|
+
Dn as R,
|
|
2537
|
+
Ln as S,
|
|
2538
|
+
Cn as T,
|
|
2538
2539
|
B as U,
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2540
|
+
Nt as V,
|
|
2541
|
+
Pn as W,
|
|
2542
|
+
jn as X,
|
|
2543
|
+
Zt as Y,
|
|
2544
|
+
xn as Z,
|
|
2545
|
+
Gn as _,
|
|
2545
2546
|
qn as a,
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2547
|
+
zn as a0,
|
|
2548
|
+
Mn as b,
|
|
2549
|
+
Un as c,
|
|
2550
|
+
On as d,
|
|
2551
|
+
Wn as e,
|
|
2552
|
+
Vn as f,
|
|
2553
|
+
_n as g,
|
|
2554
|
+
Jn as h,
|
|
2555
|
+
Yn as i,
|
|
2556
|
+
In as j,
|
|
2557
|
+
wn as k,
|
|
2558
|
+
He as l,
|
|
2558
2559
|
O as m,
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2560
|
+
Qn as n,
|
|
2561
|
+
er as o,
|
|
2562
|
+
Pe as p,
|
|
2563
|
+
Nn as q,
|
|
2564
|
+
bn as r,
|
|
2565
|
+
Xn as s,
|
|
2565
2566
|
H as t,
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2567
|
+
J as u,
|
|
2568
|
+
Ge as v,
|
|
2569
|
+
nt as w,
|
|
2570
|
+
Sn as x,
|
|
2571
|
+
yt as y,
|
|
2571
2572
|
T as z
|
|
2572
2573
|
};
|