waveform-analysis 0.1.52 → 0.1.54
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/README.md +9 -5
- package/dist/assets/{workerRuntime-Dt94jbqq.js → workerRuntime-BcYng9TR.js} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +553 -545
- package/dist/types/core/renderingOptions.d.ts +1 -0
- package/dist/types/core/workerSampling/protocol.d.ts +1 -0
- package/dist/types/types/chart.d.ts +2 -0
- package/dist/types/views/wasmSamplingDemoSampling.d.ts +6 -0
- package/package.json +1 -1
- package/src/components/core/useWaveformRenderSampling.ts +8 -7
- package/src/core/rendering.test.ts +3 -0
- package/src/core/rendering.ts +3 -1
- package/src/core/renderingOptions.ts +9 -0
- package/src/core/renderingStrategies.ts +6 -2
- package/src/core/workerSampling/protocol.ts +1 -0
- package/src/core/workerSampling/repositorySampling.test.ts +106 -0
- package/src/core/workerSampling/repositorySupport.ts +4 -0
- package/src/types/chart.ts +2 -0
- package/src/views/WasmSamplingDemo.vue +25 -5
- package/src/views/wasmSamplingDemoSampling.test.ts +27 -0
- package/src/views/wasmSamplingDemoSampling.ts +23 -0
package/dist/index.js
CHANGED
|
@@ -1204,7 +1204,7 @@ var pn = (e) => {
|
|
|
1204
1204
|
}, mn = (e) => {
|
|
1205
1205
|
let { points: t, range: n, domain: r, width: i, options: a } = e, { start: o, end: s } = dn(n, t.length);
|
|
1206
1206
|
if (s - o <= 0) return [];
|
|
1207
|
-
let c = Math.min(r[0], r[1]), l = Math.max(r[0], r[1]), u = Math.max(4, Math.floor(i * a.maxPointsPerPixel)), d = Math.max(1, Math.floor(u / 4)), f = [], p = l - c || 1, m = Array.from({ length: 4 }, () => -1), h = -1, g = -1, _ = -1, v = -1, y = -1, b = (e, t) => {
|
|
1207
|
+
let c = Math.min(r[0], r[1]), l = Math.max(r[0], r[1]), u = Math.max(4, a.sampling.maxPointCount ?? Math.floor(i * a.maxPointsPerPixel)), d = Math.max(1, Math.floor(u / 4)), f = [], p = l - c || 1, m = Array.from({ length: 4 }, () => -1), h = -1, g = -1, _ = -1, v = -1, y = -1, b = (e, t) => {
|
|
1208
1208
|
if (e < 0) return t;
|
|
1209
1209
|
for (let n = 0; n < t; n += 1) if (m[n] === e) return t;
|
|
1210
1210
|
return m[t] = e, t + 1;
|
|
@@ -1231,7 +1231,7 @@ var pn = (e) => {
|
|
|
1231
1231
|
return x(), fn(f, t[s - 1]), f;
|
|
1232
1232
|
};
|
|
1233
1233
|
function hn(e) {
|
|
1234
|
-
let t = Math.max(4, Math.floor(e.width * e.options.maxPointsPerPixel));
|
|
1234
|
+
let t = Math.max(4, e.options.sampling.maxPointCount ?? Math.floor(e.width * e.options.maxPointsPerPixel));
|
|
1235
1235
|
return !e.options.downsample || e.visibleCount <= e.options.downsampleThreshold || e.visibleCount <= t ? pn : mn;
|
|
1236
1236
|
}
|
|
1237
1237
|
//#endregion
|
|
@@ -1248,6 +1248,7 @@ var Q = {
|
|
|
1248
1248
|
autoHysteresis: 0,
|
|
1249
1249
|
strategy: "peak",
|
|
1250
1250
|
maxPointsPerPixel: 4,
|
|
1251
|
+
maxPointCount: void 0,
|
|
1251
1252
|
rawPointLimit: 1e5,
|
|
1252
1253
|
wasmFailureFallback: "error"
|
|
1253
1254
|
}
|
|
@@ -1279,9 +1280,12 @@ function xn(e, t) {
|
|
|
1279
1280
|
return typeof e == "number" && Number.isFinite(e) && e > 0 ? e : t;
|
|
1280
1281
|
}
|
|
1281
1282
|
function Sn(e, t) {
|
|
1283
|
+
return typeof e == "number" && Number.isFinite(e) && e >= t ? Math.floor(e) : void 0;
|
|
1284
|
+
}
|
|
1285
|
+
function Cn(e, t) {
|
|
1282
1286
|
return Number.isFinite(e) && e >= 0 ? e : t;
|
|
1283
1287
|
}
|
|
1284
|
-
function
|
|
1288
|
+
function wn(e, t, n) {
|
|
1285
1289
|
let r = vn(e?.mode) ? e.mode : t === !1 ? "raw" : Q.sampling.mode, i = xn(e?.maxPointsPerPixel, n);
|
|
1286
1290
|
return {
|
|
1287
1291
|
mode: r,
|
|
@@ -1289,41 +1293,42 @@ function Cn(e, t, n) {
|
|
|
1289
1293
|
autoHysteresis: bn(e?.autoHysteresis, 0, Q.sampling.autoHysteresis),
|
|
1290
1294
|
strategy: yn(e?.strategy) ? e.strategy : Q.sampling.strategy,
|
|
1291
1295
|
maxPointsPerPixel: i,
|
|
1296
|
+
maxPointCount: Sn(e?.maxPointCount, 1),
|
|
1292
1297
|
rawPointLimit: bn(e?.rawPointLimit, 1, Q.sampling.rawPointLimit),
|
|
1293
1298
|
wasmFailureFallback: e?.wasmFailureFallback === "javascript" || e?.wasmFailureFallback === "error" ? e.wasmFailureFallback : Q.sampling.wasmFailureFallback
|
|
1294
1299
|
};
|
|
1295
1300
|
}
|
|
1296
|
-
function
|
|
1297
|
-
let t = Number(e?.downsampleThreshold), n = Number(e?.maxPointsPerPixel), r = Number(e?.pointMinSpacing), i = Number(e?.errorBarMinSpacing), a = Number.isFinite(n) && n > 0 ? n : Q.maxPointsPerPixel, o =
|
|
1301
|
+
function Tn(e) {
|
|
1302
|
+
let t = Number(e?.downsampleThreshold), n = Number(e?.maxPointsPerPixel), r = Number(e?.pointMinSpacing), i = Number(e?.errorBarMinSpacing), a = Number.isFinite(n) && n > 0 ? n : Q.maxPointsPerPixel, o = wn(e?.sampling, typeof e?.downsample == "boolean" ? e.downsample : void 0, a);
|
|
1298
1303
|
return {
|
|
1299
1304
|
downsample: o.mode !== "raw",
|
|
1300
1305
|
downsampleThreshold: Number.isFinite(t) && t >= 2 ? Math.floor(t) : Q.downsampleThreshold,
|
|
1301
1306
|
maxPointsPerPixel: o.maxPointsPerPixel,
|
|
1302
|
-
pointMinSpacing:
|
|
1303
|
-
errorBarMinSpacing:
|
|
1307
|
+
pointMinSpacing: Cn(r, Q.pointMinSpacing),
|
|
1308
|
+
errorBarMinSpacing: Cn(i, Q.errorBarMinSpacing),
|
|
1304
1309
|
sampling: o
|
|
1305
1310
|
};
|
|
1306
1311
|
}
|
|
1307
1312
|
//#endregion
|
|
1308
1313
|
//#region src/core/rendering.ts
|
|
1309
|
-
var
|
|
1310
|
-
function
|
|
1314
|
+
var En = I((e) => e.x), Dn = () => !0;
|
|
1315
|
+
function On(e, t) {
|
|
1311
1316
|
let n = Math.min(t[0], t[1]), r = Math.max(t[0], t[1]);
|
|
1312
1317
|
return {
|
|
1313
|
-
start:
|
|
1314
|
-
end:
|
|
1318
|
+
start: En.left(e, n),
|
|
1319
|
+
end: En.right(e, r)
|
|
1315
1320
|
};
|
|
1316
1321
|
}
|
|
1317
|
-
function
|
|
1322
|
+
function kn(e, t, n) {
|
|
1318
1323
|
if (!Number.isFinite(n) || n <= 0) return !0;
|
|
1319
1324
|
let r = Math.ceil(n), i = /* @__PURE__ */ new Set();
|
|
1320
1325
|
for (let n of e) {
|
|
1321
|
-
let e =
|
|
1326
|
+
let e = On(n.points, t);
|
|
1322
1327
|
for (let t = e.start; t < e.end; t += 1) if (i.add(n.points[t].x), i.size >= r) return !0;
|
|
1323
1328
|
}
|
|
1324
1329
|
return !1;
|
|
1325
1330
|
}
|
|
1326
|
-
function
|
|
1331
|
+
function An(e, t, n, r, i) {
|
|
1327
1332
|
let a = Math.max(0, t.start - 1), o = Math.min(e.length, t.end + 1) - a;
|
|
1328
1333
|
return o <= 0 ? [] : hn({
|
|
1329
1334
|
visibleCount: o,
|
|
@@ -1337,25 +1342,25 @@ function kn(e, t, n, r, i) {
|
|
|
1337
1342
|
options: i
|
|
1338
1343
|
});
|
|
1339
1344
|
}
|
|
1340
|
-
function
|
|
1345
|
+
function jn(e, t) {
|
|
1341
1346
|
return t.sampling.mode === "wasm" || t.sampling.mode === "auto" && e > t.sampling.autoThreshold;
|
|
1342
1347
|
}
|
|
1343
|
-
function
|
|
1348
|
+
function Mn(e, t, n, r) {
|
|
1344
1349
|
let i = Math.max(0, t.start - 1), a = Math.min(e.length, t.end + 1), o = a - i;
|
|
1345
1350
|
if (o <= 0) return [];
|
|
1346
1351
|
if (r.sampling.strategy === "none") return e.slice(i, a);
|
|
1347
|
-
let s = Math.max(1, Math.floor(n * r.sampling.maxPointsPerPixel));
|
|
1352
|
+
let s = r.sampling.maxPointCount ?? Math.max(1, Math.floor(n * r.sampling.maxPointsPerPixel));
|
|
1348
1353
|
return o <= s ? e.slice(i, a) : s === 1 ? [e[i]] : Array.from({ length: s }, (t, n) => {
|
|
1349
1354
|
let r = Math.round(n * (o - 1) / (s - 1));
|
|
1350
1355
|
return e[i + r];
|
|
1351
1356
|
});
|
|
1352
1357
|
}
|
|
1353
|
-
function
|
|
1354
|
-
return !e.length || n <= 0 ? [] :
|
|
1358
|
+
function Nn(e, t, n, r) {
|
|
1359
|
+
return !e.length || n <= 0 ? [] : An(e, On(e, t), t, n, r);
|
|
1355
1360
|
}
|
|
1356
|
-
function
|
|
1361
|
+
function Pn(e, t, n, r, i, a, o, s) {
|
|
1357
1362
|
if (!a || i === 0) {
|
|
1358
|
-
if (o ===
|
|
1363
|
+
if (o === Dn) return e.slice(t.start, t.end);
|
|
1359
1364
|
let n = [];
|
|
1360
1365
|
for (let r = t.start; r < t.end; r += 1) o(e[r]) && n.push(e[r]);
|
|
1361
1366
|
return n;
|
|
@@ -1388,40 +1393,40 @@ function Nn(e, t, n, r, i, a, o, s) {
|
|
|
1388
1393
|
let w = (f ?? []).map((e, t) => m?.[t] ?? e).filter((e) => e !== void 0);
|
|
1389
1394
|
return v && w[0] !== v && w.unshift(v), y && w.at(-1) !== y && w.push(y), w;
|
|
1390
1395
|
}
|
|
1391
|
-
function
|
|
1396
|
+
function Fn(e) {
|
|
1392
1397
|
let { lower: t, upper: n } = on(e);
|
|
1393
1398
|
return t !== 0 || n !== 0;
|
|
1394
1399
|
}
|
|
1395
|
-
function
|
|
1400
|
+
function In(e, t, n, r, i) {
|
|
1396
1401
|
if (!e.length || n <= 0) return {
|
|
1397
1402
|
linePoints: [],
|
|
1398
1403
|
pointRenderPoints: [],
|
|
1399
1404
|
errorBarRenderPoints: []
|
|
1400
1405
|
};
|
|
1401
|
-
let a =
|
|
1406
|
+
let a = On(e, t), o = i.lineVisible ? i.linePointOverride ?? (jn(a.end - a.start, r) ? Mn(e, a, n, r) : An(e, a, t, n, r)) : [], s = i.errorBarVisible && i.hasErrorPoints;
|
|
1402
1407
|
if (i.pointVisible && s) {
|
|
1403
|
-
let i =
|
|
1408
|
+
let i = Pn(e, a, t, n, Math.max(r.pointMinSpacing, r.errorBarMinSpacing), r.downsample, Dn, Fn);
|
|
1404
1409
|
return {
|
|
1405
1410
|
linePoints: o,
|
|
1406
1411
|
pointRenderPoints: i,
|
|
1407
|
-
errorBarRenderPoints: i.filter(
|
|
1412
|
+
errorBarRenderPoints: i.filter(Fn)
|
|
1408
1413
|
};
|
|
1409
1414
|
}
|
|
1410
1415
|
return {
|
|
1411
1416
|
linePoints: o,
|
|
1412
|
-
pointRenderPoints: i.pointVisible ?
|
|
1413
|
-
errorBarRenderPoints: s ?
|
|
1417
|
+
pointRenderPoints: i.pointVisible ? Pn(e, a, t, n, r.pointMinSpacing, r.downsample, Dn) : [],
|
|
1418
|
+
errorBarRenderPoints: s ? Pn(e, a, t, n, r.errorBarMinSpacing, r.downsample, Fn) : []
|
|
1414
1419
|
};
|
|
1415
1420
|
}
|
|
1416
|
-
var
|
|
1421
|
+
var Ln = (e, t) => {
|
|
1417
1422
|
let n = typeof e == "number" ? e : Number(e);
|
|
1418
1423
|
return Number.isFinite(n) ? Math.min(10, Math.max(1, Math.floor(n))) : t;
|
|
1419
|
-
},
|
|
1424
|
+
}, Rn = (e) => {
|
|
1420
1425
|
if (!Array.isArray(e)) return [];
|
|
1421
1426
|
let t = e.filter((e) => typeof e == "string").map((e) => e.trim()).filter(Boolean);
|
|
1422
1427
|
return Array.from(new Set(t));
|
|
1423
1428
|
};
|
|
1424
|
-
function
|
|
1429
|
+
function zn(e) {
|
|
1425
1430
|
let t = Object.fromEntries(Object.entries(e?.trackLines ?? {}).map(([e, t]) => [e, {
|
|
1426
1431
|
horizontal: typeof t?.horizontal != "boolean" || t.horizontal,
|
|
1427
1432
|
vertical: typeof t?.vertical != "boolean" || t.vertical,
|
|
@@ -1429,33 +1434,33 @@ function Rn(e) {
|
|
|
1429
1434
|
verticalColor: typeof t?.verticalColor == "string" && t.verticalColor.trim() ? t.verticalColor : void 0
|
|
1430
1435
|
}]));
|
|
1431
1436
|
return {
|
|
1432
|
-
rowCount:
|
|
1433
|
-
columnCount:
|
|
1437
|
+
rowCount: Ln(e?.rowCount, 2),
|
|
1438
|
+
columnCount: Ln(e?.columnCount, 1),
|
|
1434
1439
|
showPagination: e?.showPagination ?? !0,
|
|
1435
1440
|
fillIncompleteLastRow: e?.fillIncompleteLastRow ?? !1,
|
|
1436
|
-
trackOrder:
|
|
1441
|
+
trackOrder: Rn(e?.trackOrder),
|
|
1437
1442
|
trackLines: t
|
|
1438
1443
|
};
|
|
1439
1444
|
}
|
|
1440
|
-
function
|
|
1445
|
+
function Bn(e) {
|
|
1441
1446
|
return e.rowCount * e.columnCount;
|
|
1442
1447
|
}
|
|
1443
|
-
function
|
|
1444
|
-
return Math.max(1, Math.ceil(Math.max(0, e) /
|
|
1448
|
+
function Vn(e, t) {
|
|
1449
|
+
return Math.max(1, Math.ceil(Math.max(0, e) / Bn(t)));
|
|
1445
1450
|
}
|
|
1446
|
-
function
|
|
1447
|
-
let r =
|
|
1448
|
-
return e.slice(i, i +
|
|
1451
|
+
function Hn(e, t, n) {
|
|
1452
|
+
let r = Vn(e.length, n), i = (Math.min(r, Math.max(1, Math.floor(t))) - 1) * Bn(n);
|
|
1453
|
+
return e.slice(i, i + Bn(n));
|
|
1449
1454
|
}
|
|
1450
|
-
function
|
|
1455
|
+
function Un(e) {
|
|
1451
1456
|
return e === "compact" ? 0 : e === "separated" ? 16 : 14;
|
|
1452
1457
|
}
|
|
1453
|
-
function
|
|
1454
|
-
let s =
|
|
1458
|
+
function Wn(e, t, n, r, i = [], a, o = !0) {
|
|
1459
|
+
let s = Bn(n), c = i.filter(Boolean).length, l = n.fillIncompleteLastRow && c > 0 && c < s, u = l ? Math.ceil(c / n.columnCount) : n.rowCount, d = Un(r), f = Number.isFinite(a) ? Math.max(0, a) : d, p = /* @__PURE__ */ new Set();
|
|
1455
1460
|
if (o) {
|
|
1456
1461
|
if (r === "independent") for (let e = 0; e < u; e += 1) p.add(e);
|
|
1457
1462
|
else if (r === "compact") p.add(u - 1);
|
|
1458
|
-
else for (let e = 0; e < n.columnCount; e += 1) for (let t =
|
|
1463
|
+
else for (let e = 0; e < n.columnCount; e += 1) for (let t = Bn(n) - 1; t >= 0; --t) if (t % n.columnCount === e && i[t]) {
|
|
1459
1464
|
p.add(Math.floor(t / n.columnCount));
|
|
1460
1465
|
break;
|
|
1461
1466
|
}
|
|
@@ -1481,7 +1486,7 @@ function Un(e, t, n, r, i = [], a, o = !0) {
|
|
|
1481
1486
|
};
|
|
1482
1487
|
});
|
|
1483
1488
|
}
|
|
1484
|
-
function
|
|
1489
|
+
function Gn(e, t) {
|
|
1485
1490
|
let n = /* @__PURE__ */ new Set();
|
|
1486
1491
|
for (let r = 0; r < t; r += 1) for (let t = e.length - 1; t >= 0; --t) {
|
|
1487
1492
|
let i = e[t];
|
|
@@ -1494,26 +1499,26 @@ function Wn(e, t) {
|
|
|
1494
1499
|
}
|
|
1495
1500
|
//#endregion
|
|
1496
1501
|
//#region src/components/core/xDomain.ts
|
|
1497
|
-
var
|
|
1498
|
-
function
|
|
1499
|
-
return !Number.isFinite(e) || (e ?? 0) < 1 ?
|
|
1502
|
+
var Kn = 10;
|
|
1503
|
+
function qn(e) {
|
|
1504
|
+
return !Number.isFinite(e) || (e ?? 0) < 1 ? Kn : Math.max(1, Math.trunc(e));
|
|
1500
1505
|
}
|
|
1501
|
-
function
|
|
1506
|
+
function Jn(e, t, n = !1) {
|
|
1502
1507
|
if (t.type !== "nice" || n && !t.includeExplicit) return [...e];
|
|
1503
|
-
let r = U().domain(e).nice(
|
|
1508
|
+
let r = U().domain(e).nice(qn(t.tickCount)).domain();
|
|
1504
1509
|
return t.bounds === "end" ? [e[0], r[1]] : r;
|
|
1505
1510
|
}
|
|
1506
1511
|
//#endregion
|
|
1507
1512
|
//#region src/components/core/trackLayoutBuilder.ts
|
|
1508
|
-
function
|
|
1513
|
+
function Yn(e, t, n) {
|
|
1509
1514
|
let r = n.xDomainStrategy ?? { type: "data" }, i = n.initialXDomains?.[e.id] ?? n.initialXDomains?.[t] ?? n.initialXDomain;
|
|
1510
|
-
return i ?
|
|
1515
|
+
return i ? Jn(i, r, !0) : Jn(e.xDomain, r);
|
|
1511
1516
|
}
|
|
1512
|
-
function
|
|
1517
|
+
function Xn(e) {
|
|
1513
1518
|
let t = e.cells.map((e) => ({
|
|
1514
1519
|
...e,
|
|
1515
1520
|
hasSeries: !!e.series
|
|
1516
|
-
})), n =
|
|
1521
|
+
})), n = Gn(t, e.grid.columnCount);
|
|
1517
1522
|
return t.flatMap((t, r) => {
|
|
1518
1523
|
let i = !t.series || t.series.series.length === 0;
|
|
1519
1524
|
if (!t.series && (e.displayMode !== "compact" || !e.showCompactEmptyTracks)) return [];
|
|
@@ -1523,16 +1528,16 @@ function Yn(e) {
|
|
|
1523
1528
|
visibleSeries: [],
|
|
1524
1529
|
xDomain: [0, 1],
|
|
1525
1530
|
yDomain: [0, 1]
|
|
1526
|
-
}, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? U(
|
|
1531
|
+
}, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? U(Yn(a, s?.id ?? a.id, e), [0, t.width]) : U(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ?? K : K).rescaleX(c), u = e.yDomains?.[a.id], d = or(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains).map((e) => !e.fixed && u ? {
|
|
1527
1532
|
...e,
|
|
1528
1533
|
domain: u
|
|
1529
1534
|
} : e), f = {
|
|
1530
1535
|
left: 0,
|
|
1531
1536
|
right: 0
|
|
1532
1537
|
}, p = d.map((n) => {
|
|
1533
|
-
let r =
|
|
1538
|
+
let r = nr(t.plotHeight, e.yAxisSplitNumber), i = Math.max(1, r - 1), a = U(n.domain, [t.plotHeight, 0]);
|
|
1534
1539
|
e.yAxisNice !== !1 && a.nice(i);
|
|
1535
|
-
let [o, s] = a.domain(), c = Array.from({ length: r }, (e, t) => o + (s - o) * t / (r - 1)), l = e.displayMode !== "compact" || t.row === 0 ? c : c.slice(0, -1), { tickTextWidth: u } =
|
|
1540
|
+
let [o, s] = a.domain(), c = Array.from({ length: r }, (e, t) => o + (s - o) * t / (r - 1)), l = e.displayMode !== "compact" || t.row === 0 ? c : c.slice(0, -1), { tickTextWidth: u } = sr(a.domain(), !1, l, n.seriesList[0]?.unit, r), d = u + 7 + 0 + 12 + 4, p = n.side === "left" ? -f.left : t.width + f.right, m = u + 7 + 0 + 12 / 2, h = p + (n.side === "left" ? -m : m);
|
|
1536
1541
|
return f[n.side] += d, {
|
|
1537
1542
|
index: n.index,
|
|
1538
1543
|
side: n.side,
|
|
@@ -1553,7 +1558,7 @@ function Yn(e) {
|
|
|
1553
1558
|
let n = l(e);
|
|
1554
1559
|
return n > x && n < t.width - S;
|
|
1555
1560
|
}), w = a.visibleSeries.map((n) => {
|
|
1556
|
-
let r = p.find((e) => e.seriesList.some((e) => e.id === n.id)), a = r?.scale ?? h, o =
|
|
1561
|
+
let r = p.find((e) => e.seriesList.some((e) => e.id === n.id)), a = r?.scale ?? h, o = In(n.points, y, t.width, e.rendering, {
|
|
1557
1562
|
lineVisible: !i && n.lineType !== "none",
|
|
1558
1563
|
linePointOverride: e.linePointOverrides?.[n.id],
|
|
1559
1564
|
pointVisible: n.pointType !== "none",
|
|
@@ -1606,11 +1611,11 @@ function Yn(e) {
|
|
|
1606
1611
|
}
|
|
1607
1612
|
//#endregion
|
|
1608
1613
|
//#region src/components/core/layout.ts
|
|
1609
|
-
var
|
|
1610
|
-
function
|
|
1614
|
+
var Zn = 7, Qn = 7, $n = 4, er = 0, tr = 12;
|
|
1615
|
+
function nr(e, t) {
|
|
1611
1616
|
return typeof t == "number" && Number.isFinite(t) ? Math.max(2, Math.floor(t)) : 5;
|
|
1612
1617
|
}
|
|
1613
|
-
function
|
|
1618
|
+
function rr(e) {
|
|
1614
1619
|
return e >= 4 ? [
|
|
1615
1620
|
"left",
|
|
1616
1621
|
"left",
|
|
@@ -1622,13 +1627,13 @@ function nr(e) {
|
|
|
1622
1627
|
"right"
|
|
1623
1628
|
] : e === 2 ? ["left", "right"] : ["left"];
|
|
1624
1629
|
}
|
|
1625
|
-
var
|
|
1626
|
-
function
|
|
1627
|
-
let n =
|
|
1628
|
-
n || (n = /* @__PURE__ */ new Map(),
|
|
1630
|
+
var ir = /* @__PURE__ */ new WeakMap();
|
|
1631
|
+
function ar(e, t) {
|
|
1632
|
+
let n = ir.get(e);
|
|
1633
|
+
n || (n = /* @__PURE__ */ new Map(), ir.set(e, n));
|
|
1629
1634
|
let r = n.get(t);
|
|
1630
1635
|
if (r) return r;
|
|
1631
|
-
let i = t === "multi-axis" ? Math.min(e.visibleSeries.length, 4) : Math.min(e.visibleSeries.length, 1), a =
|
|
1636
|
+
let i = t === "multi-axis" ? Math.min(e.visibleSeries.length, 4) : Math.min(e.visibleSeries.length, 1), a = rr(i), o = Array.from({ length: i }, (e, t) => ({
|
|
1632
1637
|
index: t,
|
|
1633
1638
|
side: a[t],
|
|
1634
1639
|
seriesList: [],
|
|
@@ -1645,9 +1650,9 @@ function ir(e, t) {
|
|
|
1645
1650
|
}
|
|
1646
1651
|
}), n.set(t, o), o;
|
|
1647
1652
|
}
|
|
1648
|
-
function
|
|
1653
|
+
function or(e, t, n, r) {
|
|
1649
1654
|
let i = Gt(e, r);
|
|
1650
|
-
return
|
|
1655
|
+
return ar(e, t).map((e) => {
|
|
1651
1656
|
if (i) return {
|
|
1652
1657
|
...e,
|
|
1653
1658
|
domain: i,
|
|
@@ -1661,7 +1666,7 @@ function ar(e, t, n, r) {
|
|
|
1661
1666
|
} : e;
|
|
1662
1667
|
});
|
|
1663
1668
|
}
|
|
1664
|
-
function
|
|
1669
|
+
function sr(e, t = !0, n, r, i = 10) {
|
|
1665
1670
|
let a = typeof i == "number" && Number.isFinite(i) ? Math.max(2, Math.floor(i)) : 10, o = U(e, [1, 0]);
|
|
1666
1671
|
t && o.nice(a);
|
|
1667
1672
|
let [s, c] = o.domain(), l = n ?? o.ticks(a), u = Math.max(...l);
|
|
@@ -1670,21 +1675,21 @@ function or(e, t = !0, n, r, i = 10) {
|
|
|
1670
1675
|
axisMax: c,
|
|
1671
1676
|
topTickValue: u,
|
|
1672
1677
|
unit: r
|
|
1673
|
-
}).length)) *
|
|
1674
|
-
}
|
|
1675
|
-
function sr(e, t, n = !0) {
|
|
1676
|
-
return or(e.domain, n, void 0, e.seriesList[0]?.unit, t).tickTextWidth + Zn + $n + er + Qn;
|
|
1678
|
+
}).length)) * Zn };
|
|
1677
1679
|
}
|
|
1678
1680
|
function cr(e, t, n = !0) {
|
|
1679
|
-
return
|
|
1681
|
+
return sr(e.domain, n, void 0, e.seriesList[0]?.unit, t).tickTextWidth + Qn + er + tr + $n;
|
|
1682
|
+
}
|
|
1683
|
+
function lr(e, t, n = !0) {
|
|
1684
|
+
return sr(e.domain, n, void 0, e.seriesList[0]?.unit, t).tickTextWidth + Qn + $n;
|
|
1680
1685
|
}
|
|
1681
|
-
function
|
|
1682
|
-
return
|
|
1686
|
+
function ur(e, t, n, r, i, a = !0) {
|
|
1687
|
+
return or(e, t, n, r).reduce((n, r) => (n[r.side] += t === "multi-axis" || e.visibleSeries.length === 1 ? cr(r, i, a) : lr(r, i, a), n), {
|
|
1683
1688
|
left: 0,
|
|
1684
1689
|
right: 0
|
|
1685
1690
|
});
|
|
1686
1691
|
}
|
|
1687
|
-
function
|
|
1692
|
+
function dr(e, t, n) {
|
|
1688
1693
|
let r = (e) => {
|
|
1689
1694
|
let r = t < e.left ? e.left - t : t > e.left + e.width ? t - e.left - e.width : 0;
|
|
1690
1695
|
return n < e.top ? e.top - n : n > e.top + e.height ? n - (e.top + e.height) : r;
|
|
@@ -1703,11 +1708,11 @@ function ur(e, t, n) {
|
|
|
1703
1708
|
}
|
|
1704
1709
|
//#endregion
|
|
1705
1710
|
//#region src/components/annotation/useWaveformChartAnnotations.ts
|
|
1706
|
-
var
|
|
1707
|
-
function
|
|
1708
|
-
return
|
|
1711
|
+
var fr = 0;
|
|
1712
|
+
function pr() {
|
|
1713
|
+
return fr += 1, typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `annotation-${Date.now()}-${fr}`;
|
|
1709
1714
|
}
|
|
1710
|
-
function
|
|
1715
|
+
function mr(e) {
|
|
1711
1716
|
let { props: t, emit: n, container: r, chartSeries: i, hiddenSeriesIdSet: a, internalHiddenSeriesIds: o, annotationInteraction: s, editorSeriesOptions: c, trackLayouts: l, annotationLayoutsForTrack: u, resolveSeriesYScale: d, chartWidth: f, chartHeight: p, innerWidth: m, resolvedChartLeftMargin: h, titleAreaHeight: g, chartTopMargin: _, activeInteractionMode: v, isPresentationMode: y } = e, x = b("");
|
|
1712
1717
|
function S(e) {
|
|
1713
1718
|
if (!i.value.some((t) => t.id === e)) return;
|
|
@@ -1740,7 +1745,7 @@ function pr(e) {
|
|
|
1740
1745
|
};
|
|
1741
1746
|
}
|
|
1742
1747
|
function T(e, t, n) {
|
|
1743
|
-
x.value = "", s.openCreate(e,
|
|
1748
|
+
x.value = "", s.openCreate(e, pr, t), c.value = n;
|
|
1744
1749
|
let r = s.editorDraft.value, i = l.value.find((t) => t.index === e.trackIndex)?.seriesList.find((t) => t.id === e.seriesId);
|
|
1745
1750
|
r?.mode === "add" && (r.annotation.style = {
|
|
1746
1751
|
borderColor: i?.color || "#1677ff",
|
|
@@ -1800,7 +1805,7 @@ function pr(e) {
|
|
|
1800
1805
|
let e = l.value[n];
|
|
1801
1806
|
return e?.hasVisibleSeries ? e : void 0;
|
|
1802
1807
|
}
|
|
1803
|
-
return
|
|
1808
|
+
return dr(l.value.filter((e) => e.hasVisibleSeries), e, t);
|
|
1804
1809
|
}
|
|
1805
1810
|
function A(e, t) {
|
|
1806
1811
|
let n = e.currentTarget;
|
|
@@ -1891,7 +1896,7 @@ function pr(e) {
|
|
|
1891
1896
|
}
|
|
1892
1897
|
//#endregion
|
|
1893
1898
|
//#region src/components/interaction/useWaveformHover.ts
|
|
1894
|
-
function
|
|
1899
|
+
function hr(e) {
|
|
1895
1900
|
let { emit: t, hoverState: n, suppressHoverUntilMove: r, hoverThrottle: i, selection: a, trackLayouts: o, innerWidth: s, resolvedChartLeftMargin: c, titleAreaHeight: l, chartTopMargin: u, sharedOverlayElement: d, isPresentationMode: f, updateViewportDrag: p, resolveTrackAtPointer: m } = e, h = () => i.cancel(), g = (e) => i.schedule(e), _ = (e) => n.points.length === e.length && e.every((e, t) => {
|
|
1896
1901
|
let r = n.points[t];
|
|
1897
1902
|
return r?.id === e.id && r.trackIndex === e.trackIndex && r.point === e.point;
|
|
@@ -1965,14 +1970,14 @@ function mr(e) {
|
|
|
1965
1970
|
}
|
|
1966
1971
|
//#endregion
|
|
1967
1972
|
//#region src/components/interaction/pointerCapture.ts
|
|
1968
|
-
function
|
|
1973
|
+
function gr(e, t) {
|
|
1969
1974
|
try {
|
|
1970
1975
|
e?.releasePointerCapture?.(t);
|
|
1971
1976
|
} catch {}
|
|
1972
1977
|
}
|
|
1973
1978
|
//#endregion
|
|
1974
1979
|
//#region src/components/interaction/viewportInteractionState.ts
|
|
1975
|
-
function
|
|
1980
|
+
function _r(e) {
|
|
1976
1981
|
return {
|
|
1977
1982
|
...e,
|
|
1978
1983
|
currentX: e.startX,
|
|
@@ -1981,37 +1986,37 @@ function gr(e) {
|
|
|
1981
1986
|
yDomains: Object.fromEntries(Object.entries(e.yDomains).map(([e, t]) => [e, [...t]]))
|
|
1982
1987
|
};
|
|
1983
1988
|
}
|
|
1984
|
-
function
|
|
1989
|
+
function vr(e, t) {
|
|
1985
1990
|
return {
|
|
1986
1991
|
...e,
|
|
1987
1992
|
...t
|
|
1988
1993
|
};
|
|
1989
1994
|
}
|
|
1990
|
-
function
|
|
1995
|
+
function yr(e) {
|
|
1991
1996
|
return {
|
|
1992
1997
|
state: e,
|
|
1993
1998
|
accepted: !1,
|
|
1994
1999
|
completed: null
|
|
1995
2000
|
};
|
|
1996
2001
|
}
|
|
1997
|
-
function
|
|
2002
|
+
function br(e, t) {
|
|
1998
2003
|
switch (t.type) {
|
|
1999
|
-
case "begin": return e ?
|
|
2000
|
-
state:
|
|
2004
|
+
case "begin": return e ? yr(e) : {
|
|
2005
|
+
state: _r(t.gesture),
|
|
2001
2006
|
accepted: !0,
|
|
2002
2007
|
completed: null
|
|
2003
2008
|
};
|
|
2004
|
-
case "move": return !e || e.pointerId !== t.pointerId ?
|
|
2005
|
-
state:
|
|
2009
|
+
case "move": return !e || e.pointerId !== t.pointerId ? yr(e) : {
|
|
2010
|
+
state: vr(e, t.position),
|
|
2006
2011
|
accepted: !0,
|
|
2007
2012
|
completed: null
|
|
2008
2013
|
};
|
|
2009
|
-
case "finish": return !e || e.pointerId !== t.pointerId ?
|
|
2014
|
+
case "finish": return !e || e.pointerId !== t.pointerId ? yr(e) : {
|
|
2010
2015
|
state: null,
|
|
2011
2016
|
accepted: !0,
|
|
2012
|
-
completed:
|
|
2017
|
+
completed: vr(e, t.position)
|
|
2013
2018
|
};
|
|
2014
|
-
case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ?
|
|
2019
|
+
case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ? yr(e) : {
|
|
2015
2020
|
state: null,
|
|
2016
2021
|
accepted: !0,
|
|
2017
2022
|
completed: null
|
|
@@ -2025,15 +2030,15 @@ function yr(e, t) {
|
|
|
2025
2030
|
}
|
|
2026
2031
|
//#endregion
|
|
2027
2032
|
//#region src/components/interaction/zoomConstraints.ts
|
|
2028
|
-
var
|
|
2029
|
-
function
|
|
2033
|
+
var xr = /* @__PURE__ */ new WeakMap();
|
|
2034
|
+
function Sr(e) {
|
|
2030
2035
|
return e[0] <= e[1] ? [...e] : [e[1], e[0]];
|
|
2031
2036
|
}
|
|
2032
|
-
function
|
|
2037
|
+
function Cr(e) {
|
|
2033
2038
|
return Number.isFinite(e) && (e ?? 0) > 0 ? Math.ceil(e) : 0;
|
|
2034
2039
|
}
|
|
2035
|
-
function
|
|
2036
|
-
let n = `${t[0]}\u0000${t[1]}`, r =
|
|
2040
|
+
function wr(e, t) {
|
|
2041
|
+
let n = `${t[0]}\u0000${t[1]}`, r = xr.get(e)?.get(n);
|
|
2037
2042
|
if (r) return r;
|
|
2038
2043
|
let i = /* @__PURE__ */ new Set();
|
|
2039
2044
|
for (let n of e) {
|
|
@@ -2043,14 +2048,14 @@ function Cr(e, t) {
|
|
|
2043
2048
|
r.x >= t[0] && r.x <= t[1] && i.add(r.x);
|
|
2044
2049
|
}
|
|
2045
2050
|
}
|
|
2046
|
-
let a = Array.from(i).sort((e, t) => e - t), o =
|
|
2047
|
-
return o.set(n, a),
|
|
2051
|
+
let a = Array.from(i).sort((e, t) => e - t), o = xr.get(e) ?? /* @__PURE__ */ new Map();
|
|
2052
|
+
return o.set(n, a), xr.set(e, o), a;
|
|
2048
2053
|
}
|
|
2049
|
-
function
|
|
2054
|
+
function Tr(e, t, n) {
|
|
2050
2055
|
if (n <= 1) return 0;
|
|
2051
2056
|
let r = 0;
|
|
2052
2057
|
for (let i of e) {
|
|
2053
|
-
let e =
|
|
2058
|
+
let e = wr(i, t);
|
|
2054
2059
|
if (e.length < n) return t[1] - t[0];
|
|
2055
2060
|
let a = Infinity;
|
|
2056
2061
|
for (let t = 0; t + n <= e.length; t += 1) a = Math.min(a, e[t + n - 1] - e[t]);
|
|
@@ -2059,17 +2064,17 @@ function wr(e, t, n) {
|
|
|
2059
2064
|
}
|
|
2060
2065
|
return r;
|
|
2061
2066
|
}
|
|
2062
|
-
function
|
|
2063
|
-
let r =
|
|
2067
|
+
function Er(e, t, n) {
|
|
2068
|
+
let r = Sr(e), i = r[1] - r[0];
|
|
2064
2069
|
if (!Number.isFinite(i) || i <= 0) return 0;
|
|
2065
|
-
let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o =
|
|
2070
|
+
let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o = Cr(n.minVisiblePoints), s = Tr(t, r, o), c = Number(n.maxZoomScale), l = Number.isFinite(c) && c >= Rt.MIN_SCALE ? i / c : n.maxZoomScale !== null && a === 0 && o === 0 ? i / Rt.DEFAULT_MAX_SCALE : 0;
|
|
2066
2071
|
return Math.max(a, s, l);
|
|
2067
2072
|
}
|
|
2068
|
-
function
|
|
2073
|
+
function Dr(e, t, n, r) {
|
|
2069
2074
|
if (r <= 0) return e;
|
|
2070
2075
|
let i = 2 ** -52 * Math.max(1, Math.abs(t[0]), Math.abs(t[1])) * 16, a = e;
|
|
2071
2076
|
for (let e of n) {
|
|
2072
|
-
let n =
|
|
2077
|
+
let n = wr(e, t);
|
|
2073
2078
|
if (n.length < r) return [...t];
|
|
2074
2079
|
if (n.filter((e) => e >= a[0] && e <= a[1]).length >= r) continue;
|
|
2075
2080
|
let o, s = Infinity, c = Infinity, l = (a[0] + a[1]) / 2;
|
|
@@ -2081,13 +2086,13 @@ function Er(e, t, n, r) {
|
|
|
2081
2086
|
}
|
|
2082
2087
|
return a;
|
|
2083
2088
|
}
|
|
2084
|
-
function
|
|
2085
|
-
let i =
|
|
2089
|
+
function Or(e, t, n, r) {
|
|
2090
|
+
let i = Sr(t), a = i[1] - i[0];
|
|
2086
2091
|
if (!Number.isFinite(a) || a <= 0 || Math.abs(e[1] - e[0]) >= a * .999999999999) return i;
|
|
2087
|
-
let o =
|
|
2092
|
+
let o = Dr([Math.max(i[0], Math.min(e[0], e[1])), Math.min(i[1], Math.max(e[0], e[1]))], i, n, Cr(r.minVisiblePoints)), s = Er(i, n, r), c = Math.max(s, Math.min(a, o[1] - o[0])), l = (o[0] + o[1]) / 2, u = Math.max(i[0], Math.min(l - c / 2, i[1] - c));
|
|
2088
2093
|
return [u, u + c];
|
|
2089
2094
|
}
|
|
2090
|
-
function
|
|
2095
|
+
function kr(e, t, n) {
|
|
2091
2096
|
let r = t[1] - t[0], i = e[1] - e[0];
|
|
2092
2097
|
if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return K;
|
|
2093
2098
|
let a = r / i, o = U(t, [0, n]);
|
|
@@ -2095,7 +2100,7 @@ function Or(e, t, n) {
|
|
|
2095
2100
|
}
|
|
2096
2101
|
//#endregion
|
|
2097
2102
|
//#region src/components/interaction/viewportDomain.ts
|
|
2098
|
-
function
|
|
2103
|
+
function Ar(e) {
|
|
2099
2104
|
return (t, n) => {
|
|
2100
2105
|
if (!(!Number.isFinite(t[0]) || !Number.isFinite(t[1]) || t[0] === t[1])) {
|
|
2101
2106
|
if (e.cancelPendingZoom(), e.cancelViewportDrag(), e.props.displayMode === "independent") {
|
|
@@ -2103,12 +2108,12 @@ function kr(e) {
|
|
|
2103
2108
|
r.forEach((n) => {
|
|
2104
2109
|
let r = e.trackLayouts.value.find((e) => e.index === n);
|
|
2105
2110
|
if (!r) return;
|
|
2106
|
-
let a = e.resolveInitialTrackDomain(r), o =
|
|
2107
|
-
i[n] =
|
|
2111
|
+
let a = e.resolveInitialTrackDomain(r), o = Or(t, a, [r.seriesList], e.props);
|
|
2112
|
+
i[n] = kr(o, a, r.width);
|
|
2108
2113
|
}), e.independentTransforms.value = i;
|
|
2109
2114
|
} else {
|
|
2110
|
-
let n = e.initialXDomain.value, r =
|
|
2111
|
-
e.sharedTransform.value =
|
|
2115
|
+
let n = e.initialXDomain.value, r = Or(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
|
|
2116
|
+
e.sharedTransform.value = kr(r, n, e.innerWidth.value);
|
|
2112
2117
|
}
|
|
2113
2118
|
e.clearHover(), e.editorSeriesOptions.value = [], f(e.configureZoom);
|
|
2114
2119
|
}
|
|
@@ -2116,13 +2121,13 @@ function kr(e) {
|
|
|
2116
2121
|
}
|
|
2117
2122
|
//#endregion
|
|
2118
2123
|
//#region src/components/interaction/useWaveformViewport.ts
|
|
2119
|
-
function
|
|
2124
|
+
function jr(e) {
|
|
2120
2125
|
let { props: n, emit: r, selection: i, spacePressed: a, trackLayouts: o, chartTracks: s, initialXDomain: c, innerWidth: l, innerHeight: u, sharedOverlayElement: d, sharedTransform: p, independentTransforms: m, sharedYDomains: h, independentYDomains: g, isZoomMode: _, isPresentationMode: v, editorSeriesOptions: y, resolveInitialTrackDomain: b, canZoomTrack: x, canZoomSharedTracks: S, configureZoom: w, cancelPendingZoom: T, clearHover: E, resolveTrackAtPointer: D } = e, O = C(), k = (e, t) => {
|
|
2121
2126
|
let n = O.value, r = t?.currentTarget;
|
|
2122
|
-
|
|
2127
|
+
gr(n, e), r && r !== n && gr(r, e);
|
|
2123
2128
|
}, A = (e, t) => {
|
|
2124
2129
|
let n = i.value;
|
|
2125
|
-
!n || n.pointerId !== e || (k(e, t), i.value =
|
|
2130
|
+
!n || n.pointerId !== e || (k(e, t), i.value = br(i.value, {
|
|
2126
2131
|
type: "cancel",
|
|
2127
2132
|
pointerId: e
|
|
2128
2133
|
}).state, O.value = void 0);
|
|
@@ -2145,7 +2150,7 @@ function Ar(e) {
|
|
|
2145
2150
|
if (!n.zoomable && !s || !_.value || e.button !== 0) return;
|
|
2146
2151
|
let c = e.currentTarget, d = o.value.find((e) => e.index === t);
|
|
2147
2152
|
if (!d) return;
|
|
2148
|
-
let [f, p] = H(e, c), m = Math.max(0, Math.min(r ? d.width : l.value, f)), h = Math.max(0, Math.min(r ? d.height : u.value, p)), g =
|
|
2153
|
+
let [f, p] = H(e, c), m = Math.max(0, Math.min(r ? d.width : l.value, f)), h = Math.max(0, Math.min(r ? d.height : u.value, p)), g = br(i.value, {
|
|
2149
2154
|
type: "begin",
|
|
2150
2155
|
gesture: {
|
|
2151
2156
|
trackIndex: t,
|
|
@@ -2167,8 +2172,8 @@ function Ar(e) {
|
|
|
2167
2172
|
let i = t.width || 1, a = t.height || 1, u = e.currentX - e.startX, d = e.currentY - e.startY, f = e.xDomain[1] - e.xDomain[0], _ = e.independent ? b(t) : c.value, v = M([e.xDomain[0] - u / i * f, e.xDomain[1] - u / i * f], _);
|
|
2168
2173
|
if (e.independent) {
|
|
2169
2174
|
let e = [...m.value];
|
|
2170
|
-
e[t.index] =
|
|
2171
|
-
} else p.value =
|
|
2175
|
+
e[t.index] = kr(v, _, i), m.value = e;
|
|
2176
|
+
} else p.value = kr(v, _, l.value);
|
|
2172
2177
|
let y = e.independent ? [t] : o.value.filter((e) => e.hasVisibleSeries), x = { ...g.value }, S = { ...h.value };
|
|
2173
2178
|
y.forEach((t) => {
|
|
2174
2179
|
let r = s.value.find((e) => e.id === t.id);
|
|
@@ -2182,7 +2187,7 @@ function Ar(e) {
|
|
|
2182
2187
|
if (!t || !n || e.pointerId !== t.pointerId) return;
|
|
2183
2188
|
let r = o.value.find((e) => e.index === t.trackIndex);
|
|
2184
2189
|
if (!r) return;
|
|
2185
|
-
let [a, s] = H(e, n), c = Math.max(0, Math.min(t.independent ? r.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? r.height : u.value, s)), f =
|
|
2190
|
+
let [a, s] = H(e, n), c = Math.max(0, Math.min(t.independent ? r.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? r.height : u.value, s)), f = br(i.value, {
|
|
2186
2191
|
type: "move",
|
|
2187
2192
|
pointerId: e.pointerId,
|
|
2188
2193
|
position: {
|
|
@@ -2201,11 +2206,11 @@ function Ar(e) {
|
|
|
2201
2206
|
if (!t || (e.independent ? !x(t) : !S())) return;
|
|
2202
2207
|
let i = e.independent ? 0 : t.left, a = Math.max(0, Math.min(t.width, Math.min(e.startX, e.currentX) - i)), s = Math.max(0, Math.min(t.width, Math.max(e.startX, e.currentX) - i));
|
|
2203
2208
|
if (s - a < 6) return;
|
|
2204
|
-
let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h =
|
|
2209
|
+
let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h = Or([t.xScale.invert(a), t.xScale.invert(s)], u, d, n);
|
|
2205
2210
|
if (e.independent) {
|
|
2206
2211
|
let e = [...m.value];
|
|
2207
|
-
e[t.index] =
|
|
2208
|
-
} else p.value =
|
|
2212
|
+
e[t.index] = kr(h, u, t.width), m.value = e;
|
|
2213
|
+
} else p.value = kr(h, u, l.value);
|
|
2209
2214
|
let g = e.independent ? [t] : o.value.filter((e) => e.hasVisibleSeries), _ = Object.fromEntries(g.map((e) => [e.series?.trackId ?? e.series?.id ?? e.id, e.yScale.domain()]));
|
|
2210
2215
|
if (r("zoom-change", h), e.independent) {
|
|
2211
2216
|
let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
|
|
@@ -2246,7 +2251,7 @@ function Ar(e) {
|
|
|
2246
2251
|
A(t.pointerId, e);
|
|
2247
2252
|
return;
|
|
2248
2253
|
}
|
|
2249
|
-
let [a, s] = H(e, r), c = Math.max(0, Math.min(t.independent ? n.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? n.height : u.value, s)), p =
|
|
2254
|
+
let [a, s] = H(e, r), c = Math.max(0, Math.min(t.independent ? n.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? n.height : u.value, s)), p = br(i.value, {
|
|
2250
2255
|
type: "finish",
|
|
2251
2256
|
pointerId: e.pointerId,
|
|
2252
2257
|
position: {
|
|
@@ -2278,7 +2283,7 @@ function Ar(e) {
|
|
|
2278
2283
|
finishViewportDrag: B,
|
|
2279
2284
|
cancelViewportDrag: R,
|
|
2280
2285
|
resetViewport: V,
|
|
2281
|
-
setViewportDomain:
|
|
2286
|
+
setViewportDomain: Ar({
|
|
2282
2287
|
props: n,
|
|
2283
2288
|
trackLayouts: o,
|
|
2284
2289
|
initialXDomain: c,
|
|
@@ -2310,7 +2315,7 @@ function Ar(e) {
|
|
|
2310
2315
|
}
|
|
2311
2316
|
//#endregion
|
|
2312
2317
|
//#region src/components/utils/useAnimationFrameThrottle.ts
|
|
2313
|
-
function
|
|
2318
|
+
function Mr() {
|
|
2314
2319
|
let e = null, t = null;
|
|
2315
2320
|
function n(n) {
|
|
2316
2321
|
t = n, e === null && (e = requestAnimationFrame(() => {
|
|
@@ -2339,8 +2344,8 @@ function jr() {
|
|
|
2339
2344
|
}
|
|
2340
2345
|
//#endregion
|
|
2341
2346
|
//#region src/components/interaction/useWaveformZoom.ts
|
|
2342
|
-
function
|
|
2343
|
-
let { props: t, emit: n, svgElement: r, sharedOverlayElement: i, sharedTransform: a, independentTransforms: o, trackLayouts: s, initialXDomain: c, sharedZoomDomain: l, innerWidth: u, innerHeight: d, hasChartArea: f, isZoomMode: p, isPresentationMode: m, resolveInitialTrackDomain: h, cancelPendingHover: g } = e, _ = /* @__PURE__ */ new Map(), v =
|
|
2347
|
+
function Nr(e) {
|
|
2348
|
+
let { props: t, emit: n, svgElement: r, sharedOverlayElement: i, sharedTransform: a, independentTransforms: o, trackLayouts: s, initialXDomain: c, sharedZoomDomain: l, innerWidth: u, innerHeight: d, hasChartArea: f, isZoomMode: p, isPresentationMode: m, resolveInitialTrackDomain: h, cancelPendingHover: g } = e, _ = /* @__PURE__ */ new Map(), v = Mr(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Set(), D, O = () => v.schedule(j), k = (e) => {
|
|
2344
2349
|
y || m.value || (g(), b = e.transform, x = "wheel", O(), P());
|
|
2345
2350
|
}, A = (e, t) => {
|
|
2346
2351
|
y || m.value || (g(), C.set(t, e.transform), w.set(t, "wheel"), O(), P());
|
|
@@ -2428,11 +2433,11 @@ function Mr(e) {
|
|
|
2428
2433
|
}, L = (e, n) => {
|
|
2429
2434
|
let r = Math.abs(e[1] - e[0]);
|
|
2430
2435
|
if (!Number.isFinite(r) || r <= 0) return Rt.MIN_SCALE;
|
|
2431
|
-
let i =
|
|
2436
|
+
let i = Er(e, n, t);
|
|
2432
2437
|
return Math.max(Rt.MIN_SCALE, i > 0 ? r / i : Infinity);
|
|
2433
|
-
}, R = (e, n, r, i) => Or(
|
|
2438
|
+
}, R = (e, n, r, i) => kr(Or(e.rescaleX(U(n, [0, r])).domain(), n, i, t), n, r), z = (e) => {
|
|
2434
2439
|
let n = Number(t.minVisiblePoints);
|
|
2435
|
-
return
|
|
2440
|
+
return kn(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
|
|
2436
2441
|
}, B = () => {
|
|
2437
2442
|
let e = s.value.filter((e) => e.hasVisibleSeries);
|
|
2438
2443
|
return e.length > 0 && e.every(z);
|
|
@@ -2479,13 +2484,13 @@ function Mr(e) {
|
|
|
2479
2484
|
}
|
|
2480
2485
|
//#endregion
|
|
2481
2486
|
//#region src/components/core/useWaveformChartLifecycle.ts
|
|
2482
|
-
function
|
|
2487
|
+
function Pr(e) {
|
|
2483
2488
|
return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
|
|
2484
2489
|
}
|
|
2485
|
-
function
|
|
2490
|
+
function Fr(e) {
|
|
2486
2491
|
let { props: t, emit: n, container: r, titleMeasureElement: i, resizeObserver: a, observedWidth: o, observedHeight: s, measuredTitleWidth: c, measuredTitleHeight: l, resolvedTitleText: u, titleAreaReserved: d, titleMeasureStyle: p, spacePressed: m, pointerInsideChart: _, currentPage: v, pageCount: y, pagedTracks: b, gridOptions: x, chartSeries: S, chartTracks: C, trackLayouts: w, innerWidth: T, innerHeight: E, sharedZoomDomain: D, initialXDomain: k, sharedTransform: A, activeInteractionMode: j, hiddenSeriesIdSet: M, internalHiddenSeriesIds: N, independentTransforms: P, independentYDomains: F, resolveInitialTrackDomain: I, annotationInteraction: L, editorSeriesOptions: R, isPresentationMode: z, clearHover: B, cancelAnnotation: V, configureZoom: H, resetViewport: U, cancelViewportDrag: W, cancelPendingHover: ee, clearZoomBindings: te } = e;
|
|
2487
2492
|
function ne(e) {
|
|
2488
|
-
z.value || e.code !== "Space" || !t.pannable || !_.value ||
|
|
2493
|
+
z.value || e.code !== "Space" || !t.pannable || !_.value || Pr(e.target) || (m.value = !0, e.preventDefault());
|
|
2489
2494
|
}
|
|
2490
2495
|
function re(e) {
|
|
2491
2496
|
e.code === "Space" && (m.value = !1);
|
|
@@ -2518,12 +2523,12 @@ function Pr(e) {
|
|
|
2518
2523
|
w.value.forEach((n) => {
|
|
2519
2524
|
let r = q?.[n.index];
|
|
2520
2525
|
if (!r) return;
|
|
2521
|
-
let i = I(n), a =
|
|
2522
|
-
e[n.index] =
|
|
2526
|
+
let i = I(n), a = Or(r, i, [n.seriesList], t);
|
|
2527
|
+
e[n.index] = kr(a, i, n.width);
|
|
2523
2528
|
}), P.value = e, q = void 0;
|
|
2524
2529
|
} else if (t.displayMode !== "independent" && G) {
|
|
2525
|
-
let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r =
|
|
2526
|
-
A.value =
|
|
2530
|
+
let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Or(G, e, n, t);
|
|
2531
|
+
A.value = kr(r, e, T.value), G = void 0;
|
|
2527
2532
|
}
|
|
2528
2533
|
H();
|
|
2529
2534
|
});
|
|
@@ -2609,7 +2614,7 @@ function Pr(e) {
|
|
|
2609
2614
|
}
|
|
2610
2615
|
//#endregion
|
|
2611
2616
|
//#region src/components/core/useWaveformData.ts
|
|
2612
|
-
function
|
|
2617
|
+
function Ir(e) {
|
|
2613
2618
|
return ln(e).map(({ source: e, ...t }) => {
|
|
2614
2619
|
let n = e.metrics(t.errorBar.visible);
|
|
2615
2620
|
return {
|
|
@@ -2622,45 +2627,45 @@ function Fr(e) {
|
|
|
2622
2627
|
};
|
|
2623
2628
|
});
|
|
2624
2629
|
}
|
|
2625
|
-
function
|
|
2626
|
-
let r = C(
|
|
2630
|
+
function Lr(e, t, n) {
|
|
2631
|
+
let r = C(Ir(e()));
|
|
2627
2632
|
return O(e, (e) => {
|
|
2628
|
-
t(), r.value =
|
|
2633
|
+
t(), r.value = Ir(e), n();
|
|
2629
2634
|
}), r;
|
|
2630
2635
|
}
|
|
2631
2636
|
//#endregion
|
|
2632
2637
|
//#region wasm/pkg/waveform_sampling_wasm.js
|
|
2633
|
-
function
|
|
2634
|
-
let n =
|
|
2635
|
-
if (o[3]) throw
|
|
2636
|
-
var s =
|
|
2638
|
+
function Rr(e, t) {
|
|
2639
|
+
let n = Qr(e, $.__wbindgen_malloc), r = ii, i = Qr(t, $.__wbindgen_malloc), a = ii, o = $.calculate_range(n, r, i, a);
|
|
2640
|
+
if (o[3]) throw $r(o[2]);
|
|
2641
|
+
var s = Ur(o[0], o[1]).slice();
|
|
2637
2642
|
return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
|
|
2638
2643
|
}
|
|
2639
|
-
function Rr(e, t, n, r) {
|
|
2640
|
-
let i = Zr(e, $.__wbindgen_malloc), a = ri, o = Zr(t, $.__wbindgen_malloc), s = ri, c = $.find_visible_range(i, a, o, s, n, r);
|
|
2641
|
-
if (c[3]) throw Qr(c[2]);
|
|
2642
|
-
var l = Ur(c[0], c[1]).slice();
|
|
2643
|
-
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2644
|
-
}
|
|
2645
2644
|
function zr(e, t, n, r) {
|
|
2646
|
-
let i =
|
|
2647
|
-
if (c[3]) throw
|
|
2648
|
-
var l =
|
|
2649
|
-
return $.__wbindgen_free(c[0], c[1] *
|
|
2645
|
+
let i = Qr(e, $.__wbindgen_malloc), a = ii, o = Qr(t, $.__wbindgen_malloc), s = ii, c = $.find_visible_range(i, a, o, s, n, r);
|
|
2646
|
+
if (c[3]) throw $r(c[2]);
|
|
2647
|
+
var l = Wr(c[0], c[1]).slice();
|
|
2648
|
+
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2650
2649
|
}
|
|
2651
2650
|
function Br(e, t, n, r) {
|
|
2652
|
-
let i =
|
|
2653
|
-
if (c[3]) throw
|
|
2651
|
+
let i = Qr(e, $.__wbindgen_malloc), a = ii, o = Qr(t, $.__wbindgen_malloc), s = ii, c = $.sample_aggregates(i, a, o, s, n, r);
|
|
2652
|
+
if (c[3]) throw $r(c[2]);
|
|
2654
2653
|
var l = Ur(c[0], c[1]).slice();
|
|
2654
|
+
return $.__wbindgen_free(c[0], c[1] * 8, 8), l;
|
|
2655
|
+
}
|
|
2656
|
+
function Vr(e, t, n, r) {
|
|
2657
|
+
let i = Qr(e, $.__wbindgen_malloc), a = ii, o = Qr(t, $.__wbindgen_malloc), s = ii, c = $.sample_indexes(i, a, o, s, n, r);
|
|
2658
|
+
if (c[3]) throw $r(c[2]);
|
|
2659
|
+
var l = Wr(c[0], c[1]).slice();
|
|
2655
2660
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2656
2661
|
}
|
|
2657
|
-
function
|
|
2662
|
+
function Hr() {
|
|
2658
2663
|
return {
|
|
2659
2664
|
__proto__: null,
|
|
2660
2665
|
"./waveform_sampling_wasm_bg.js": {
|
|
2661
2666
|
__proto__: null,
|
|
2662
2667
|
__wbindgen_cast_0000000000000001: function(e, t) {
|
|
2663
|
-
return
|
|
2668
|
+
return qr(e, t);
|
|
2664
2669
|
},
|
|
2665
2670
|
__wbindgen_init_externref_table: function() {
|
|
2666
2671
|
let e = $.__wbindgen_externrefs, t = e.grow(4);
|
|
@@ -2669,52 +2674,52 @@ function Vr() {
|
|
|
2669
2674
|
}
|
|
2670
2675
|
};
|
|
2671
2676
|
}
|
|
2672
|
-
function Hr(e, t) {
|
|
2673
|
-
return e >>>= 0, Gr().subarray(e / 8, e / 8 + t);
|
|
2674
|
-
}
|
|
2675
2677
|
function Ur(e, t) {
|
|
2676
|
-
return e >>>= 0,
|
|
2678
|
+
return e >>>= 0, Kr().subarray(e / 8, e / 8 + t);
|
|
2679
|
+
}
|
|
2680
|
+
function Wr(e, t) {
|
|
2681
|
+
return e >>>= 0, Yr().subarray(e / 4, e / 4 + t);
|
|
2677
2682
|
}
|
|
2678
|
-
var
|
|
2679
|
-
function
|
|
2680
|
-
return (
|
|
2683
|
+
var Gr = null;
|
|
2684
|
+
function Kr() {
|
|
2685
|
+
return (Gr === null || Gr.byteLength === 0) && (Gr = new Float64Array($.memory.buffer)), Gr;
|
|
2681
2686
|
}
|
|
2682
|
-
function
|
|
2683
|
-
return e >>>= 0,
|
|
2687
|
+
function qr(e, t) {
|
|
2688
|
+
return e >>>= 0, ri(e, t);
|
|
2684
2689
|
}
|
|
2685
|
-
var
|
|
2686
|
-
function
|
|
2687
|
-
return (
|
|
2690
|
+
var Jr = null;
|
|
2691
|
+
function Yr() {
|
|
2692
|
+
return (Jr === null || Jr.byteLength === 0) && (Jr = new Uint32Array($.memory.buffer)), Jr;
|
|
2688
2693
|
}
|
|
2689
|
-
var
|
|
2690
|
-
function
|
|
2691
|
-
return (
|
|
2694
|
+
var Xr = null;
|
|
2695
|
+
function Zr() {
|
|
2696
|
+
return (Xr === null || Xr.byteLength === 0) && (Xr = new Uint8Array($.memory.buffer)), Xr;
|
|
2692
2697
|
}
|
|
2693
|
-
function
|
|
2698
|
+
function Qr(e, t) {
|
|
2694
2699
|
let n = t(e.length * 8, 8) >>> 0;
|
|
2695
|
-
return
|
|
2700
|
+
return Kr().set(e, n / 8), ii = e.length, n;
|
|
2696
2701
|
}
|
|
2697
|
-
function
|
|
2702
|
+
function $r(e) {
|
|
2698
2703
|
let t = $.__wbindgen_externrefs.get(e);
|
|
2699
2704
|
return $.__externref_table_dealloc(e), t;
|
|
2700
2705
|
}
|
|
2701
|
-
var
|
|
2706
|
+
var ei = new TextDecoder("utf-8", {
|
|
2702
2707
|
ignoreBOM: !0,
|
|
2703
2708
|
fatal: !0
|
|
2704
2709
|
});
|
|
2705
|
-
|
|
2706
|
-
var
|
|
2707
|
-
function
|
|
2708
|
-
return
|
|
2710
|
+
ei.decode();
|
|
2711
|
+
var ti = 2146435072, ni = 0;
|
|
2712
|
+
function ri(e, t) {
|
|
2713
|
+
return ni += t, ni >= ti && (ei = new TextDecoder("utf-8", {
|
|
2709
2714
|
ignoreBOM: !0,
|
|
2710
2715
|
fatal: !0
|
|
2711
|
-
}),
|
|
2716
|
+
}), ei.decode(), ni = t), ei.decode(Zr().subarray(e, e + t));
|
|
2712
2717
|
}
|
|
2713
|
-
var
|
|
2714
|
-
function
|
|
2715
|
-
return $ = e.exports,
|
|
2718
|
+
var ii = 0, $;
|
|
2719
|
+
function ai(e, t) {
|
|
2720
|
+
return $ = e.exports, Gr = null, Jr = null, Xr = null, $.__wbindgen_start(), $;
|
|
2716
2721
|
}
|
|
2717
|
-
async function
|
|
2722
|
+
async function oi(e, t) {
|
|
2718
2723
|
if (typeof Response == "function" && e instanceof Response) {
|
|
2719
2724
|
if (typeof WebAssembly.instantiateStreaming == "function") try {
|
|
2720
2725
|
return await WebAssembly.instantiateStreaming(e, t);
|
|
@@ -2740,17 +2745,17 @@ async function ai(e, t) {
|
|
|
2740
2745
|
return !1;
|
|
2741
2746
|
}
|
|
2742
2747
|
}
|
|
2743
|
-
async function
|
|
2748
|
+
async function si(e) {
|
|
2744
2749
|
if ($ !== void 0) return $;
|
|
2745
2750
|
e !== void 0 && (Object.getPrototypeOf(e) === Object.prototype ? {module_or_path: e} = e : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), e === void 0 && (e = new URL("data:application/wasm;base64,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kkA7AAAgAkEEayECIAVB/6ziBEsNAAsLIABBCUsEQCACQQJrIgIgBkEGamogACAAQf//A3FB5ABuIgBB5ABsa0H//wNxQQF0LwDSkkA7AAALQQAgBCAAG0UEQCACQQFrIgIgBkEGamogAEEBdC0A05JAOgAACwJ/IAZBBmogAmohB0EAIQRBK0GAgMQAIAEoAggiA0GAgIABcSIAGyEIIANBgICABHFFRSEKAkBBCiACayILIABBFXZqIgAgAS8BDCIFSQRAAkACQCADQYCAgAhxRQRAIAUgAGshBUEAIQACQAJAAkAgA0EddkEDcUEBaw4DAAEAAgsgBSEADAELIAVB/v8DcUEBdiEACyADQf///wBxIQkgASgCBCEDIAEoAgAhAQNAIARB//8DcSAAQf//A3FPDQJBASECIARBAWohBCABIAkgAygCEBEBAEUNAAsMBAsgASABKQIIIgynQYCAgP95cUGwgICAAnI2AghBASECIAEoAgAiAyABKAIEIgkgCCAKECwNAyAFIABrQf//A3EhAANAIARB//8DcSAATw0CIARBAWohBCADQTAgCSgCEBEBAEUNAAsMAwtBASECIAEgAyAIIAoQLA0CIAEgByALIAMoAgwRAgANAkEAIQQgBSAAa0H//wNxIQADQCAEQf//A3EiBSAASSECIAAgBU0NAyAEQQFqIQQgASAJIAMoAhARAQBFDQALDAILIAMgByALIAkoAgwRAgANASABIAw3AghBAAwCC0EBIQIgASgCACIAIAEoAgQiASAIIAoQLA0AIAAgByALIAEoAgwRAgAhAgsgAgsgBkEQaiQAC4gCAQZ/IAAoAggiBCECAn9BASABQYABSQ0AGkECIAFBgBBJDQAaQQNBBCABQYCABEkbCyIGIAAoAgAgBGtLBH8gACAEIAYQHSAAKAIIBSACCyAAKAIEaiECAkAgAUGAAU8EQCABQT9xQYB/ciEFIAFBBnYhAyABQYAQSQRAIAIgBToAASACIANBwAFyOgAADAILIAFBDHYhByADQT9xQYB/ciEDIAFB//8DTQRAIAIgBToAAiACIAM6AAEgAiAHQeABcjoAAAwCCyACIAU6AAMgAiADOgACIAIgB0E/cUGAf3I6AAEgAiABQRJ2QXByOgAADAELIAIgAToAAAsgACAEIAZqNgIIQQALzwIBCH9BAEHo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gIACcSABQYCABElyDQBBgIAEIQYgAEGAgARxIAFBgIAISXINAEGAgAghBiAAQYCACHEgAUGAgBBJcg0AQYCAECEGIABBgIAQcSABQYCAIElyDQBBgIAgIQYgAEGAgCBxIAFBgIDAAElyDQBBgIDAACEGIABBgIDAAHEgAUGAgIABSXINAEGAgIABIQYgAEGAgIABcSABQYCAgAJJcg0AQYCAgAIhBiAAQYCAgAJxIAFBgICABElyDQBBgICABCEGIABBgICABHEgAUGAgIAISXINAEGAgIAIIQYgAEGAgIAIcSABQYCAgBBJcg0AQYCAgBAhBiAAQYCAgBBxIAFBgICAIElyDQBBgICAICEGIABBgICAIHEgAUGAgIDAAElyDQBBgICAwAAhBiAAQYCAgMAAcSABQYCAgIABSXINAEGAgICAASEGIABBgICAgAFxIAFBgICAgAJJcg0AQYCAgIACIQYgAEGAgICAAnEgAUGAgICABElyDQBBgICAgAQhBiAAQYCAgIAEcSABQQBOcg0AEEoACyAAIQEgACEDAkAgBmgiCEUNAAJAIAggC0kEQCAQIAhBGGxqIgEoAgBBgICAgHhHDQEMDAsgCCALQbyJwAAQJgALIAAgCHYiAyABKAIIIghJBEAgASgCFCIIIANLBEAgA0ECdCIIIAEoAhBqKAIAIQMgASgCBCAIaigCACEBDAILIAMgCEHcicAAECYACyADIAhBzInAABAmAAsgASAMTw0BIAcgDE8NAiAHIAEgDyABQQN0aisDACInIA8gB0EDdGorAwAiKGNFIAEgB08gJyAoYnJxGyEHIAMgDE8NAyAEIAxPDQQgBCADIA8gA0EDdGorAwAiJyAPIARBA3RqKwMAIihkRSADIARPICcgKGJycRshBCAAIAZqIgAgI0kNAAsCQAJAAkACQAJAIBZBAWsOBgMAAAECBAALQZyKwABBKEHEisAAED4ACyAFKAIUIgAEQCAFKAIQIABBAnRqQQRrKAIAIAdGDQkLIAUoAgwgAEYEQCAFQQxqECcLIAUoAhAgAEECdGogBzYCACAFIABBAWo2AhQMCAsgBSgCFCIABEAgBSgCECAAQQJ0akEEaygCACAERg0ICyAFKAIMIABGBEAgBUEMahAnCyAFKAIQIABBAnRqIAQ2AgAgBSAAQQFqNgIUDAcLIAUgBDYC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IQ4gAyEKIwBB8ABrIgckAAJ/AkAgBL0iEEL///////////8Ag0KAgICAgICA+P8AWg0AIAW9IhFC////////////AIMiD1AgEUIAUyIIIA9CAX1C/////////wdUcXIgD0KAgICAgICA+P8AUXIgD0KAgICAgICA+P8AVXIgD0KAgICAgICACH1CgICAgICAgPD/AFQgCHFyDQAgAUEDdCELQQAhCAJAA0AgCCALRg0BIAAgCGogCEEIaiEIKQMAQv///////////wCDQv/////////3/wBYDQALQcmIwABBLBA/rSEQIAdBGGohCUGAgICAeAwCCwJAIApFDQAgASAKRgRAIAFBAWohCSACIQgDQCAJQQFrIglBAkkNAiAIKAIAIQsgCyAIQQRqIggoAgBNDQALC0GciMAAQS0QP60hECAHQRhqIQlBgICAgHgMAgsCQCABRQRAQQghCwwBCyABQQN0IghBCBBLIgsEQCAIRQ0BIAsgACAI/AoAAAwBC0EIIAgQPQALAkACQCAKRQRAQYCAgIB4IQoMAQsgCkECdCIJQQQQSyIIRQ0BIAkEQCAIIAIgCfwKAAALIAitIAqtQiCGhCEPC0QAAAAAAADwPyAFoyEEIAdBADYCGCAHQRBqIQlBAAwCC0EEIAkQPQALQfWIwABBNhA/rSEQIAdBGGohCUGAgICAeAshCCAJIAg2AgACfyAHKAIYIghBgICAgHhGBEBBASEJIBCnDAELIAcgBygCEDYCaCAHQQQ2AmQgByAINgJgIAdBADYCXCAHQoCAgIDAADcCVCAHIAE2AlAgByALNgJMIAcgATYCSCAHIA83A0AgByAKNgI8IAdBgICAgHg2AjAgByAGNgIsIAdBADYCKCAHIAQ5AyAgByAQNwMYIAdBCGogB0EYahAXIAcoAgghCSAHKAIMCyEGIA4gCTYCACAOIAY2AgQgB0HwAGokACANKAIMIQogDSgCCCEGIAMEQCACIANBAnRBBBBHCyABBEAgACABQQN0QQgQRwsgDCAGQQFxIgA2AgggDCAKQQAgABs2AgQgDEEAIAogABs2AgAgDUEQaiQAIAwoAgAgDCgCBCAMKAIIIAxBEGokAAuBIAMmfwV8AX4jAEEQayIPJAAjAEFAaiIKJAAgCiAENgIoIAogAzYCJCAKIAI2AiAgCiABNgIcIAogADYC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ZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAASGNhbm5vdCBhY2Nlc3MgYSBUaHJlYWQgTG9jYWwgU3RvcmFnZSB2YWx1ZSBkdXJpbmcgb3IgYWZ0ZXIgZGVzdHJ1Y3Rpb246IMAAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3NoYXJlZC9zbWFsbHNvcnQucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3N0YWJsZS9xdWlja3NvcnQucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExOC9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy81OTgwNzYxNmUxZmEyNTQwNzI0YmZiYWMxNGQ3OTc2ZDdlNGEzODYwL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjExL3NyYy9kbG1hbGxvYy5ycwBzcmMvbGliLnJzAAAAAA4DEAAKAAAA0gAAABkAAAAOAxAACgAAANoAAAAaAAAADgMQAAoAAADaAAAAPQAAAA4DEAAKAAAAyQAAAB0AAAAOAxAACgAAAKoAAAAQAAAADgMQAAoAAACqAAAAIgAAAA4DEAAKAAAArQAAACIAAAAOAxAACgAAABcCAAAcAAAADgMQAAoAAAALAgAAJgAAAA4DEAAKAAAA8gEAACoAAAAOAxAACgAAAPgBAAAqAAAADgMQAAoAAAD+AQAAMgAAAA4DEAAKAAAAkgEAAA8AAAAOAxAACgAAAJIBAAAsAAAADgMQAAoAAACNAQAADwAAAA4DEAAKAAAAjQEAACwAAABzb3VyY2UgaW5kZXhlcyBtdXN0IGJlIGVtcHR5IG9yIG5vbmRlY3JlYXNpbmdzYW1wbGUgdmFsdWVzIG11c3QgYmUgZmluaXRlIGFuZCBhZGRyZXNzYWJsZXNhbXBsZSBtZXRhZGF0YSBtdXN0IGJlIGZpbml0ZSBhbmQgc2FtcGxlUmF0ZSBwb3NpdGl2ZQAOAxAACgAAABYBAAAkAAAADgMQAAoAAAAuAgAAMAAAAA4DEAAKAAAALwIAAB8AAAAOAxAACgAAAC8CAAA1AAAADgMQAAoAAADWAQAAIAAAAA4DEAAKAAAAsQEAAC0AAAAOAxAACgAAALIBAAAtAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZQ4DEAAKAAAAmgIAABYAAABzdHJhdGVneSBkb2VzIG5vdCByZXR1cm4gc291cmNlIGluZGV4ZXNzdHJhdGVneSBkb2VzIG5vdCByZXR1cm4gYWdncmVnYXRlIHZhbHVlc3JlZ2lzdGVyZWQgZGF0YXNldHMgbXVzdCBjb250YWluIGZpbml0ZSBjb29yZGluYXRlc3ggYW5kIHkgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aA4DEAAKAAAAdgEAABIAAAAOAxAACgAAAHMBAAA8AAAADgMQAAoAAABMAgAAHAAAAA4DEAAKAAAATwIAACwAAAAOAxAACgAAAFACAAAdAAAADgMQAAoAAABRAgAAHQAAAA4DEAAKAAAAUgIAACUAAAABAAAADgMQAAoAAACUAAAAEgAAAA4DEAAKAAAAggAAABAAAAAOAxAACgAAAIIAAAAiAAAADgMQAAoAAACFAAAAIgAAAA4DEAAKAAAAAQEAAB0AAAAOAxAACgAAABwDAAAlAAAADgMQAAoAAABJAAAAQwAAAA4DEAAKAAAALQMAAA4AAAAOAxAACgAAACYDAAAnAAAAZGF0YXNldCBoYW5kbGUgd2FzIG5vdCBmb3VuZA4DEAAKAAAAPwMAACUAAAAOAxAACgAAAAoDAAAlAAAADgMQAAoAAABRAwAAJQAAANoBEABPAAAA3wEAABkAAABtaWQgPiBsZW4AAAB6ARAAXwAAAE0AAAAfAAAAegEQAF8AAABHAAAAFwAAAA4DEAAKAAAAfwEAABoAAAAOAxAACgAAAPMAAAAWAAAADgMQAAoAAABJAAAAQwAAAA4DEAAKAAAASQAAAEMAAAAqAhAAZwAAAHwAAAARAAAAKgIQAGcAAACJAAAAEQAAAAUAAAAMAAAABAAAAAYAAAAHAAAACAAAAAAAAAAIAAAABAAAAAkAAAAKAAAACwAAAAwAAAANAAAAEAAAAAQAAAAOAAAADwAAABAAAAARAAAAbV3L1ixQ62N4QaZXcRuLuRWiXFU0VQfUU3itgVHwo/dhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAADjAhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAA4wIQACoAAAC3BAAADQAAAAAAAAAIAAAABAAAABIAAABBY2Nlc3NFcnJvcgAFAAAADAAAAAQAAAATAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAACSAhAAUAAAABwAAAAFAAAAfSB9Y2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZTAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5YXR0ZW1wdCB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciB3aXRoIGEgZGl2aXNvciBvZiB6ZXJvdXNlci1wcm92aWRlZCBjb21wYXJpc29uIGZ1bmN0aW9uIGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgYSB0b3RhbCBvcmRlcgAaARAAXwAAAFwDAAAFAAAAUmVmQ2VsbCBhbHJlYWR5IG11dGFibHkgYm9ycm93ZWRSZWZDZWxsIGFscmVhZHkgYm9ycm93ZWQAQfCVwAALAQgAQYCWwAALAQQAfAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuOTUuMCAoNTk4MDc2MTZlIDIwMjYtMDQtMTQpBndhbHJ1cwYwLjI2LjEMd2FzbS1iaW5kZ2VuEzAuMi4xMTggKDc1M2JiN2ZmNCkAaw90YXJnZXRfZmVhdHVyZXMGKw9tdXRhYmxlLWdsb2JhbHMrE25vbnRyYXBwaW5nLWZwdG9pbnQrC2J1bGstbWVtb3J5KwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVl", "" + import.meta.url));
|
|
2746
|
-
let t =
|
|
2751
|
+
let t = Hr();
|
|
2747
2752
|
(typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
|
|
2748
|
-
let { instance: n, module: r } = await
|
|
2749
|
-
return
|
|
2753
|
+
let { instance: n, module: r } = await oi(await e, t);
|
|
2754
|
+
return ai(n, r);
|
|
2750
2755
|
}
|
|
2751
2756
|
//#endregion
|
|
2752
2757
|
//#region src/core/wasmSampling.ts
|
|
2753
|
-
var
|
|
2758
|
+
var ci = {
|
|
2754
2759
|
none: 0,
|
|
2755
2760
|
peak: 1,
|
|
2756
2761
|
lttb: 2,
|
|
@@ -2759,24 +2764,24 @@ var si = {
|
|
|
2759
2764
|
max: 5,
|
|
2760
2765
|
minmax: 6,
|
|
2761
2766
|
sum: 7
|
|
2762
|
-
},
|
|
2763
|
-
function
|
|
2767
|
+
}, li;
|
|
2768
|
+
function ui(e, t) {
|
|
2764
2769
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
2765
2770
|
}
|
|
2766
|
-
function
|
|
2771
|
+
function di(e) {
|
|
2767
2772
|
if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
|
|
2768
2773
|
}
|
|
2769
|
-
function
|
|
2770
|
-
return
|
|
2774
|
+
function fi(e) {
|
|
2775
|
+
return li ??= Promise.resolve(si(e)).then(() => void 0), li;
|
|
2771
2776
|
}
|
|
2772
|
-
async function
|
|
2773
|
-
|
|
2774
|
-
let t =
|
|
2777
|
+
async function pi(e) {
|
|
2778
|
+
di(e), await fi();
|
|
2779
|
+
let t = ui(e.targetPointCount, e.x.length), n = ci[e.strategy];
|
|
2775
2780
|
if (e.strategy !== "average" && e.strategy !== "sum") return {
|
|
2776
2781
|
kind: "source-indexes",
|
|
2777
|
-
sourceIndexes:
|
|
2782
|
+
sourceIndexes: Vr(e.x, e.y, n, t)
|
|
2778
2783
|
};
|
|
2779
|
-
let r =
|
|
2784
|
+
let r = Br(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
|
|
2780
2785
|
for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
|
|
2781
2786
|
return {
|
|
2782
2787
|
kind: "aggregates",
|
|
@@ -2784,28 +2789,28 @@ async function fi(e) {
|
|
|
2784
2789
|
y: a
|
|
2785
2790
|
};
|
|
2786
2791
|
}
|
|
2787
|
-
async function
|
|
2792
|
+
async function mi(e, t) {
|
|
2788
2793
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2789
|
-
await
|
|
2790
|
-
let n =
|
|
2794
|
+
await fi();
|
|
2795
|
+
let n = Rr(e, t);
|
|
2791
2796
|
return n.length === 4 ? {
|
|
2792
2797
|
x: [n[0], n[1]],
|
|
2793
2798
|
y: [n[2], n[3]]
|
|
2794
2799
|
} : void 0;
|
|
2795
2800
|
}
|
|
2796
|
-
async function
|
|
2801
|
+
async function hi(e, t, n) {
|
|
2797
2802
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2798
|
-
await
|
|
2799
|
-
let r =
|
|
2803
|
+
await fi();
|
|
2804
|
+
let r = zr(e, t, n[0], n[1]);
|
|
2800
2805
|
return [r[0], r[1]];
|
|
2801
2806
|
}
|
|
2802
2807
|
//#endregion
|
|
2803
2808
|
//#region src/components/core/useWaveformLayout.ts
|
|
2804
|
-
function
|
|
2809
|
+
function gi(e) {
|
|
2805
2810
|
let { props: n, preparedSeries: r, currentPage: i, hiddenSeriesIdSet: a, chartWidth: o, innerHeight: s, isCleanView: c, sharedTransform: l, independentTransforms: u, sharedYDomains: d, independentYDomains: f, annotationInteraction: p, linePointOverrides: m } = e, h = t(() => r.value.map((e, t) => ({
|
|
2806
2811
|
...e,
|
|
2807
2812
|
color: e.color ?? (t === 0 ? n.lineColor : Vt[t % Vt.length])
|
|
2808
|
-
}))), g = t(() =>
|
|
2813
|
+
}))), g = t(() => zn(n.grid)), _ = t(() => {
|
|
2809
2814
|
let e = /* @__PURE__ */ new Map();
|
|
2810
2815
|
h.value.forEach((t) => {
|
|
2811
2816
|
let n = t.trackId || t.id, r = e.get(n);
|
|
@@ -2824,18 +2829,18 @@ function hi(e) {
|
|
|
2824
2829
|
yDomain: o.length ? ht(o) : [0, 1]
|
|
2825
2830
|
};
|
|
2826
2831
|
});
|
|
2827
|
-
}), v = t(() =>
|
|
2832
|
+
}), v = t(() => Tn(n.rendering)), y = t(() => Vn(_.value.length, g.value)), b = t(() => Hn(_.value, i.value, g.value)), x = t(() => {
|
|
2828
2833
|
let e = b.value.filter((e) => e.series.length > 0);
|
|
2829
2834
|
return g.value.fillIncompleteLastRow && e.length > 0 ? e : b.value;
|
|
2830
2835
|
}), S = t(() => {
|
|
2831
|
-
let e = _.value.filter((e) => e.visibleSeries.length > 0).flatMap((e) =>
|
|
2836
|
+
let e = _.value.filter((e) => e.visibleSeries.length > 0).flatMap((e) => or(e, n.overlayMode, n.yDomain, n.yDomains)).map((e) => sr(e.domain, n.axes?.y?.nice !== !1, void 0, e.seriesList[0]?.unit, n.axes?.y?.splitNumber).tickTextWidth), t = Math.max(7, ...e), r = t + 7 + 4, i = -(7 + t + 0 + 12 / 2);
|
|
2832
2837
|
return {
|
|
2833
2838
|
tickClearance: r,
|
|
2834
2839
|
fullClearance: t + 7 + 0 + 12 + 4,
|
|
2835
2840
|
labelCenterX: i
|
|
2836
2841
|
};
|
|
2837
2842
|
}), C = t(() => _.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), w = t(() => _.value.some((e) => e.visibleSeries.length > 0)), T = t(() => Math.max(Lt.left, C.value ? S.value.fullClearance : w.value ? S.value.tickClearance : 0)), E = t(() => _.value.reduce((e, t) => {
|
|
2838
|
-
let r =
|
|
2843
|
+
let r = ur(t, n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber, n.axes?.y?.nice !== !1);
|
|
2839
2844
|
return {
|
|
2840
2845
|
left: Math.max(e.left, r.left),
|
|
2841
2846
|
right: Math.max(e.right, r.right)
|
|
@@ -2844,7 +2849,7 @@ function hi(e) {
|
|
|
2844
2849
|
left: 0,
|
|
2845
2850
|
right: 0
|
|
2846
2851
|
})), D = t(() => n.overlayMode === "multi-axis" ? Math.max(T.value, E.value.left) : T.value), O = t(() => n.overlayMode === "multi-axis" ? Math.max(Lt.right, E.value.right) : Lt.right), k = t(() => Math.max(0, o.value - D.value - O.value)), A = t(() => {
|
|
2847
|
-
let e =
|
|
2852
|
+
let e = Un(n.displayMode), t = g.value.columnCount, r = t > 1, i = Math.max(e, S.value.fullClearance), a = Math.max(e, S.value.tickClearance), o = (k.value - i * Math.max(0, t - 1)) / t >= 120;
|
|
2848
2853
|
return {
|
|
2849
2854
|
horizontalGap: n.overlayMode === "multi-axis" && r && w.value ? Math.max(e, E.value.left + E.value.right) : r && w.value ? C.value && o ? i : a : e,
|
|
2850
2855
|
hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && C.value && !o
|
|
@@ -2856,14 +2861,14 @@ function hi(e) {
|
|
|
2856
2861
|
}), ht(e);
|
|
2857
2862
|
}), L = t(() => {
|
|
2858
2863
|
let e = n.initialXDomain;
|
|
2859
|
-
return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ?
|
|
2864
|
+
return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? Jn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0) : Jn(I.value, n.xDomainStrategy);
|
|
2860
2865
|
}), R = (e) => {
|
|
2861
2866
|
let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
|
|
2862
|
-
return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ?
|
|
2863
|
-
}, z = t(() => l.value.rescaleX(U(L.value, [0, k.value])).domain()), B = t(() =>
|
|
2867
|
+
return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ? Jn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0) : Jn(ht(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy);
|
|
2868
|
+
}, z = t(() => l.value.rescaleX(U(L.value, [0, k.value])).domain()), B = t(() => Wn(k.value, s.value, g.value, n.displayMode, x.value.map(Boolean), A.value.horizontalGap).map((e, t) => ({
|
|
2864
2869
|
...e,
|
|
2865
2870
|
series: x.value[t]
|
|
2866
|
-
}))), V = t(() =>
|
|
2871
|
+
}))), V = t(() => Xn({
|
|
2867
2872
|
cells: B.value,
|
|
2868
2873
|
grid: g.value,
|
|
2869
2874
|
displayMode: n.displayMode,
|
|
@@ -2931,13 +2936,13 @@ function hi(e) {
|
|
|
2931
2936
|
}
|
|
2932
2937
|
};
|
|
2933
2938
|
}
|
|
2934
|
-
var
|
|
2935
|
-
function
|
|
2939
|
+
var _i = 1e-6;
|
|
2940
|
+
function vi(e) {
|
|
2936
2941
|
return Number.isFinite(e) ? Math.max(1, e) : 1;
|
|
2937
2942
|
}
|
|
2938
|
-
function
|
|
2939
|
-
let i =
|
|
2940
|
-
if (!(d >
|
|
2943
|
+
function yi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
|
|
2944
|
+
let i = vi(e), a = vi(t), o = vi(n), s = Number.isFinite(r) ? r : 0, c = s * Math.PI / 180, l = Math.abs(Math.cos(c)), u = Math.abs(Math.sin(c)), d = (s % 360 + 360) % 360;
|
|
2945
|
+
if (!(d > _i && Math.abs(d - 360) > _i)) {
|
|
2941
2946
|
let e = Math.max(1, Math.ceil(i / o)), t = o, n = a * e;
|
|
2942
2947
|
return {
|
|
2943
2948
|
textWidth: t,
|
|
@@ -2962,7 +2967,7 @@ function vi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r
|
|
|
2962
2967
|
}
|
|
2963
2968
|
//#endregion
|
|
2964
2969
|
//#region src/components/core/useWaveformPresentation.ts
|
|
2965
|
-
function
|
|
2970
|
+
function bi(e) {
|
|
2966
2971
|
let { props: n, observedWidth: r, observedHeight: i, measuredTitleWidth: a, measuredTitleHeight: o, internalHiddenSeriesIds: s, paginationBandHeight: c } = e, l = t(() => Number.isFinite(n.width) ? Math.max(0, n.width ?? 0) : void 0), u = t(() => Number.isFinite(n.height) ? Math.max(180, n.height ?? 0) : void 0), d = t(() => r.value > 0 ? r.value : l.value ?? 0), f = t(() => i.value > 0 ? i.value : u.value ?? 180), p = t(() => ({
|
|
2967
2972
|
width: l.value === void 0 ? "100%" : `${l.value}px`,
|
|
2968
2973
|
height: u.value === void 0 ? "100%" : `${u.value}px`
|
|
@@ -3007,7 +3012,7 @@ function yi(e) {
|
|
|
3007
3012
|
maxWidth: O.value ? "none" : `${j.value}px`,
|
|
3008
3013
|
whiteSpace: O.value ? "nowrap" : "normal",
|
|
3009
3014
|
overflowWrap: O.value ? "normal" : "anywhere"
|
|
3010
|
-
})), N = t(() =>
|
|
3015
|
+
})), N = t(() => yi({
|
|
3011
3016
|
naturalWidth: a.value || A.value,
|
|
3012
3017
|
naturalHeight: o.value || E.value * 1.2,
|
|
3013
3018
|
availableWidth: j.value,
|
|
@@ -3063,66 +3068,66 @@ function yi(e) {
|
|
|
3063
3068
|
}
|
|
3064
3069
|
//#endregion
|
|
3065
3070
|
//#region src/core/samplingReferenceValues.ts
|
|
3066
|
-
function
|
|
3071
|
+
function xi(e, t) {
|
|
3067
3072
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3068
3073
|
}
|
|
3069
|
-
function
|
|
3074
|
+
function Si(e, t, n, r) {
|
|
3070
3075
|
let i = r - n;
|
|
3071
3076
|
return {
|
|
3072
3077
|
start: n + Math.floor(e * i / t),
|
|
3073
3078
|
end: n + Math.floor((e + 1) * i / t)
|
|
3074
3079
|
};
|
|
3075
3080
|
}
|
|
3076
|
-
function
|
|
3081
|
+
function Ci(e, t) {
|
|
3077
3082
|
e[e.length - 1] !== t && e.push(t);
|
|
3078
3083
|
}
|
|
3079
|
-
function
|
|
3084
|
+
function wi(e, t, n) {
|
|
3080
3085
|
if (e <= t) return Array.from({ length: e }, (e, t) => t);
|
|
3081
3086
|
if (t === 1) return [0];
|
|
3082
3087
|
if (t === 2) return [0, e - 1];
|
|
3083
3088
|
let r = [0];
|
|
3084
|
-
return n().forEach((e) =>
|
|
3089
|
+
return n().forEach((e) => Ci(r, e)), Ci(r, e - 1), r;
|
|
3085
3090
|
}
|
|
3086
|
-
function
|
|
3091
|
+
function Ti(e, t, n) {
|
|
3087
3092
|
let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
|
|
3088
|
-
return
|
|
3093
|
+
return wi(e.length, t, () => {
|
|
3089
3094
|
if (!r) return [];
|
|
3090
3095
|
let t = [];
|
|
3091
3096
|
for (let i = 0; i < r; i += 1) {
|
|
3092
|
-
let a =
|
|
3097
|
+
let a = Si(i, r, 1, e.length - 1), o = a.start, s = a.start;
|
|
3093
3098
|
for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
|
|
3094
|
-
n === "min" ?
|
|
3099
|
+
n === "min" ? Ci(t, o) : n === "max" ? Ci(t, s) : o <= s ? (Ci(t, o), Ci(t, s)) : (Ci(t, s), Ci(t, o));
|
|
3095
3100
|
}
|
|
3096
3101
|
return t;
|
|
3097
3102
|
});
|
|
3098
3103
|
}
|
|
3099
|
-
function
|
|
3104
|
+
function Ei(e, t) {
|
|
3100
3105
|
let n = Math.floor((t - 2) / 4);
|
|
3101
|
-
return
|
|
3106
|
+
return wi(e.length, t, () => {
|
|
3102
3107
|
if (!n) return [];
|
|
3103
3108
|
let t = [];
|
|
3104
3109
|
for (let r = 0; r < n; r += 1) {
|
|
3105
|
-
let i =
|
|
3110
|
+
let i = Si(r, n, 1, e.length - 1), a = i.start, o = i.start;
|
|
3106
3111
|
for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
|
|
3107
3112
|
[
|
|
3108
3113
|
i.start,
|
|
3109
3114
|
a,
|
|
3110
3115
|
o,
|
|
3111
3116
|
i.end - 1
|
|
3112
|
-
].sort((e, t) => e - t).forEach((e) =>
|
|
3117
|
+
].sort((e, t) => e - t).forEach((e) => Ci(t, e));
|
|
3113
3118
|
}
|
|
3114
3119
|
return t;
|
|
3115
3120
|
});
|
|
3116
3121
|
}
|
|
3117
|
-
function
|
|
3118
|
-
return
|
|
3122
|
+
function Di(e, t, n) {
|
|
3123
|
+
return wi(e.length, n, () => {
|
|
3119
3124
|
let r = (e.length - 2) / (n - 2), i = [], a = 0;
|
|
3120
3125
|
for (let o = 0; o < n - 2; o += 1) {
|
|
3121
3126
|
let s = Math.min(e.length, Math.floor((o + 1) * r) + 1), c = Math.min(e.length, Math.floor((o + 2) * r) + 1), l = 0, u = 0;
|
|
3122
3127
|
for (let n = s; n < c; n += 1) l += e[n], u += t[n];
|
|
3123
3128
|
let d = c - s;
|
|
3124
3129
|
d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
|
|
3125
|
-
let f =
|
|
3130
|
+
let f = Si(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
|
|
3126
3131
|
for (let n = f.start; n < f.end; n += 1) {
|
|
3127
3132
|
let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
|
|
3128
3133
|
r > m && (m = r, p = n);
|
|
@@ -3132,10 +3137,10 @@ function Ei(e, t, n) {
|
|
|
3132
3137
|
return i;
|
|
3133
3138
|
});
|
|
3134
3139
|
}
|
|
3135
|
-
function
|
|
3136
|
-
let i =
|
|
3140
|
+
function Oi(e, t, n, r) {
|
|
3141
|
+
let i = xi(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
|
|
3137
3142
|
for (let n = 0; n < i; n += 1) {
|
|
3138
|
-
let s =
|
|
3143
|
+
let s = Si(n, i, 0, e.length);
|
|
3139
3144
|
for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
|
|
3140
3145
|
let c = s.end - s.start;
|
|
3141
3146
|
a[n] /= c, r === "average" && (o[n] /= c);
|
|
@@ -3146,10 +3151,10 @@ function Di(e, t, n, r) {
|
|
|
3146
3151
|
y: o
|
|
3147
3152
|
};
|
|
3148
3153
|
}
|
|
3149
|
-
function
|
|
3154
|
+
function ki(e, t, n, r) {
|
|
3150
3155
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
3151
|
-
if (n === "average" || n === "sum") return
|
|
3152
|
-
let i =
|
|
3156
|
+
if (n === "average" || n === "sum") return Oi(e, t, r, n);
|
|
3157
|
+
let i = xi(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? Ei(t, i) : n === "lttb" ? Di(e, t, i) : Ti(t, i, n);
|
|
3153
3158
|
return {
|
|
3154
3159
|
kind: "source-indexes",
|
|
3155
3160
|
sourceIndexes: Uint32Array.from(a)
|
|
@@ -3157,41 +3162,41 @@ function Oi(e, t, n, r) {
|
|
|
3157
3162
|
}
|
|
3158
3163
|
//#endregion
|
|
3159
3164
|
//#region src/core/workerSampling/javascriptBackend.ts
|
|
3160
|
-
var
|
|
3165
|
+
var Ai = {
|
|
3161
3166
|
kind: "javascript",
|
|
3162
3167
|
sample(e) {
|
|
3163
|
-
return
|
|
3168
|
+
return ki(e.x, e.y, e.strategy, e.targetPointCount);
|
|
3164
3169
|
}
|
|
3165
|
-
},
|
|
3166
|
-
function
|
|
3170
|
+
}, ji = 8 * 1024 * 1024;
|
|
3171
|
+
function Mi(e, t) {
|
|
3167
3172
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3168
3173
|
}
|
|
3169
|
-
function
|
|
3174
|
+
function Ni(e, t, n, r) {
|
|
3170
3175
|
let i = r - n;
|
|
3171
3176
|
return {
|
|
3172
3177
|
start: n + Math.floor(e * i / t),
|
|
3173
3178
|
end: n + Math.floor((e + 1) * i / t)
|
|
3174
3179
|
};
|
|
3175
3180
|
}
|
|
3176
|
-
function
|
|
3181
|
+
function Pi(e, t) {
|
|
3177
3182
|
e[e.length - 1] !== t && e.push(t);
|
|
3178
3183
|
}
|
|
3179
|
-
function
|
|
3184
|
+
function Fi(e) {
|
|
3180
3185
|
return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
|
|
3181
3186
|
}
|
|
3182
|
-
function
|
|
3187
|
+
function Ii(e, t) {
|
|
3183
3188
|
let n = 1;
|
|
3184
3189
|
for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
|
|
3185
3190
|
return n;
|
|
3186
3191
|
}
|
|
3187
|
-
var
|
|
3192
|
+
var Li = class {
|
|
3188
3193
|
points;
|
|
3189
3194
|
extremaLayers = [];
|
|
3190
3195
|
sumLayers = [];
|
|
3191
3196
|
indexBytes = 0;
|
|
3192
3197
|
maxBytes;
|
|
3193
3198
|
constructor(e, t = {}) {
|
|
3194
|
-
this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) :
|
|
3199
|
+
this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : ji;
|
|
3195
3200
|
}
|
|
3196
3201
|
get byteLength() {
|
|
3197
3202
|
return this.indexBytes;
|
|
@@ -3200,7 +3205,7 @@ var Ii = class {
|
|
|
3200
3205
|
this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
|
|
3201
3206
|
}
|
|
3202
3207
|
sample(e, t, n, r) {
|
|
3203
|
-
let i = Math.max(0, Math.min(this.points.length, Math.floor(e))), a = Math.max(i, Math.min(this.points.length, Math.floor(t))), o = a - i, s =
|
|
3208
|
+
let i = Math.max(0, Math.min(this.points.length, Math.floor(e))), a = Math.max(i, Math.min(this.points.length, Math.floor(t))), o = a - i, s = Mi(r, o);
|
|
3204
3209
|
if (n !== "lttb") return n === "average" || n === "sum" ? this.aggregate(i, a, s, n) : n === "none" || o <= s ? this.allIndexes(i, a) : s === 1 ? this.indexes([i]) : s === 2 ? this.indexes([i, a - 1]) : this.extrema(i, a, s, n);
|
|
3205
3210
|
}
|
|
3206
3211
|
allIndexes(e, t) {
|
|
@@ -3220,24 +3225,24 @@ var Ii = class {
|
|
|
3220
3225
|
if (i === 0) return this.indexes([e, t - 1]);
|
|
3221
3226
|
let a = [e];
|
|
3222
3227
|
for (let n = 0; n < i; n += 1) {
|
|
3223
|
-
let o =
|
|
3228
|
+
let o = Ni(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
|
|
3224
3229
|
if (!s) return;
|
|
3225
|
-
if (r === "min")
|
|
3226
|
-
else if (r === "max")
|
|
3227
|
-
else if (r === "minmax") s.minimum <= s.maximum ? (
|
|
3230
|
+
if (r === "min") Pi(a, s.minimum);
|
|
3231
|
+
else if (r === "max") Pi(a, s.maximum);
|
|
3232
|
+
else if (r === "minmax") s.minimum <= s.maximum ? (Pi(a, s.minimum), Pi(a, s.maximum)) : (Pi(a, s.maximum), Pi(a, s.minimum));
|
|
3228
3233
|
else for (let e of [
|
|
3229
3234
|
o.start,
|
|
3230
3235
|
s.minimum,
|
|
3231
3236
|
s.maximum,
|
|
3232
3237
|
o.end - 1
|
|
3233
|
-
].sort((e, t) => e - t))
|
|
3238
|
+
].sort((e, t) => e - t)) Pi(a, e);
|
|
3234
3239
|
}
|
|
3235
|
-
return
|
|
3240
|
+
return Pi(a, t - 1), this.indexes(a);
|
|
3236
3241
|
}
|
|
3237
3242
|
aggregate(e, t, n, r) {
|
|
3238
3243
|
let i = new Float64Array(n), a = new Float64Array(n);
|
|
3239
3244
|
for (let o = 0; o < n; o += 1) {
|
|
3240
|
-
let s =
|
|
3245
|
+
let s = Ni(o, n, e, t), c = this.querySum(s.start, s.end);
|
|
3241
3246
|
if (!c || c.count === 0) return;
|
|
3242
3247
|
i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
|
|
3243
3248
|
}
|
|
@@ -3252,7 +3257,7 @@ var Ii = class {
|
|
|
3252
3257
|
if (!this.ensureExtrema(n)) return;
|
|
3253
3258
|
let r = e, i = e;
|
|
3254
3259
|
for (let n = e; n < t;) {
|
|
3255
|
-
let e =
|
|
3260
|
+
let e = Ii(n, t - n), a = Math.floor(Math.log2(e)), o = n / e, s = this.extremaLayers[a], c = s ? s.minimumIndexes[o] : n, l = s ? s.maximumIndexes[o] : n;
|
|
3256
3261
|
this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
|
|
3257
3262
|
}
|
|
3258
3263
|
return {
|
|
@@ -3265,7 +3270,7 @@ var Ii = class {
|
|
|
3265
3270
|
if (!this.ensureSum(n)) return;
|
|
3266
3271
|
let r = 0, i = 0, a = 0;
|
|
3267
3272
|
for (let n = e; n < t;) {
|
|
3268
|
-
let e =
|
|
3273
|
+
let e = Ii(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
|
|
3269
3274
|
if (c) r += c.x[s], i += c.y[s], a += c.count[s];
|
|
3270
3275
|
else {
|
|
3271
3276
|
let e = this.points[n];
|
|
@@ -3286,7 +3291,7 @@ var Ii = class {
|
|
|
3286
3291
|
minimumIndexes: new Uint32Array(e),
|
|
3287
3292
|
maximumIndexes: new Uint32Array(e)
|
|
3288
3293
|
};
|
|
3289
|
-
if (!this.reserve(
|
|
3294
|
+
if (!this.reserve(Fi(n))) return !1;
|
|
3290
3295
|
let r = this.extremaLayers[t - 1];
|
|
3291
3296
|
for (let t = 0; t < e; t += 1) {
|
|
3292
3297
|
let e = t * 2, i = e + 1, a = r ? r.minimumIndexes[e] : e, o = r ? r.maximumIndexes[e] : e, s = r ? i < r.minimumIndexes.length : i < this.points.length, c = r && s ? r.minimumIndexes[i] : i, l = r && s ? r.maximumIndexes[i] : i;
|
|
@@ -3304,7 +3309,7 @@ var Ii = class {
|
|
|
3304
3309
|
y: new Float64Array(e),
|
|
3305
3310
|
count: new Uint32Array(e)
|
|
3306
3311
|
};
|
|
3307
|
-
if (!this.reserve(
|
|
3312
|
+
if (!this.reserve(Fi(n))) return !1;
|
|
3308
3313
|
let r = this.sumLayers[t - 1];
|
|
3309
3314
|
for (let t = 0; t < e; t += 1) {
|
|
3310
3315
|
let e = t * 2, i = e + 1;
|
|
@@ -3329,8 +3334,8 @@ var Ii = class {
|
|
|
3329
3334
|
let n = this.points[e], r = this.points[t];
|
|
3330
3335
|
return n.y > r.y || n.y === r.y && e < t;
|
|
3331
3336
|
}
|
|
3332
|
-
},
|
|
3333
|
-
function
|
|
3337
|
+
}, Ri = 1e3, zi = I((e) => e.x);
|
|
3338
|
+
function Bi(e) {
|
|
3334
3339
|
let t = [], n = !0, r = -Infinity;
|
|
3335
3340
|
for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
|
|
3336
3341
|
x: i.x,
|
|
@@ -3341,7 +3346,7 @@ function zi(e) {
|
|
|
3341
3346
|
}));
|
|
3342
3347
|
return n || t.sort((e, t) => e.x - t.x), t;
|
|
3343
3348
|
}
|
|
3344
|
-
function
|
|
3349
|
+
function Vi(e, t) {
|
|
3345
3350
|
let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
|
|
3346
3351
|
for (let t of e) n = Math.min(n, t.x), r = Math.max(r, t.x), i = Math.min(i, t.y), a = Math.max(a, t.y);
|
|
3347
3352
|
return {
|
|
@@ -3351,7 +3356,7 @@ function Bi(e, t) {
|
|
|
3351
3356
|
yDomain: e.length ? [i, a] : null
|
|
3352
3357
|
};
|
|
3353
3358
|
}
|
|
3354
|
-
function
|
|
3359
|
+
function Hi(e, t, n = e.length) {
|
|
3355
3360
|
let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
|
|
3356
3361
|
for (let n = 0; n < e.length; n += 1) r = Math.min(r, e[n]), i = Math.max(i, e[n]), a = Math.min(a, t[n]), o = Math.max(o, t[n]);
|
|
3357
3362
|
return {
|
|
@@ -3361,38 +3366,39 @@ function Vi(e, t, n = e.length) {
|
|
|
3361
3366
|
yDomain: e.length ? [a, o] : null
|
|
3362
3367
|
};
|
|
3363
3368
|
}
|
|
3364
|
-
function
|
|
3369
|
+
function Ui(e, t) {
|
|
3365
3370
|
return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
|
|
3366
3371
|
}
|
|
3367
|
-
function
|
|
3372
|
+
function Wi(e) {
|
|
3368
3373
|
return e === "auto" ? "peak" : e;
|
|
3369
3374
|
}
|
|
3370
|
-
function
|
|
3375
|
+
function Gi(e) {
|
|
3376
|
+
if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
|
|
3371
3377
|
let t = Number.isFinite(e.plotWidth) ? Math.max(0, e.plotWidth) : 0, n = Number.isFinite(e.maxPointsPerPixel) ? Math.max(0, e.maxPointsPerPixel ?? 0) : 4;
|
|
3372
3378
|
return Math.max(1, Math.floor(t * n));
|
|
3373
3379
|
}
|
|
3374
|
-
function
|
|
3380
|
+
function Ki(e, t) {
|
|
3375
3381
|
if (e.mode === "raw") return !0;
|
|
3376
3382
|
if (e.mode !== "auto") return !1;
|
|
3377
|
-
let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) :
|
|
3383
|
+
let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : Ri;
|
|
3378
3384
|
if (!e.previousSelectedMode) return t <= n;
|
|
3379
3385
|
let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
|
|
3380
3386
|
return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
|
|
3381
3387
|
}
|
|
3382
|
-
function
|
|
3388
|
+
function qi(e, t) {
|
|
3383
3389
|
let n = e[0], r = e.at(-1);
|
|
3384
|
-
return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[
|
|
3390
|
+
return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[zi.center(e, t)] : void 0;
|
|
3385
3391
|
}
|
|
3386
|
-
function
|
|
3392
|
+
function Ji(e) {
|
|
3387
3393
|
return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
|
|
3388
3394
|
}
|
|
3389
|
-
function
|
|
3395
|
+
function Yi(e, t) {
|
|
3390
3396
|
return e.kind === "aggregates" ? e : {
|
|
3391
3397
|
kind: "source-indexes",
|
|
3392
3398
|
sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
|
|
3393
3399
|
};
|
|
3394
3400
|
}
|
|
3395
|
-
function
|
|
3401
|
+
function Xi(e, t, n, r, i) {
|
|
3396
3402
|
return [
|
|
3397
3403
|
e.datasetId,
|
|
3398
3404
|
e.revision,
|
|
@@ -3401,6 +3407,7 @@ function Yi(e, t, n, r, i) {
|
|
|
3401
3407
|
e.plotWidth,
|
|
3402
3408
|
r,
|
|
3403
3409
|
e.maxPointsPerPixel,
|
|
3410
|
+
e.maxPointCount,
|
|
3404
3411
|
e.mode,
|
|
3405
3412
|
i,
|
|
3406
3413
|
n,
|
|
@@ -3411,14 +3418,14 @@ function Yi(e, t, n, r, i) {
|
|
|
3411
3418
|
e.errorBarMinSpacing ?? 0
|
|
3412
3419
|
].join("\0");
|
|
3413
3420
|
}
|
|
3414
|
-
function
|
|
3421
|
+
function Zi(e, t, n, r, i, a, o, s) {
|
|
3415
3422
|
return {
|
|
3416
3423
|
seriesId: e.seriesId,
|
|
3417
3424
|
datasetId: e.datasetId,
|
|
3418
3425
|
mode: e.mode,
|
|
3419
3426
|
selectedMode: i,
|
|
3420
3427
|
backend: r,
|
|
3421
|
-
strategy:
|
|
3428
|
+
strategy: Wi(e.strategy),
|
|
3422
3429
|
sourcePointCount: t,
|
|
3423
3430
|
visiblePointCount: n,
|
|
3424
3431
|
renderedPointCount: o,
|
|
@@ -3434,18 +3441,18 @@ function Xi(e, t, n, r, i, a, o, s) {
|
|
|
3434
3441
|
}
|
|
3435
3442
|
//#endregion
|
|
3436
3443
|
//#region src/core/workerSampling/repositoryDataset.ts
|
|
3437
|
-
function
|
|
3444
|
+
function Qi(e) {
|
|
3438
3445
|
return e?.y.length ?? 0;
|
|
3439
3446
|
}
|
|
3440
|
-
function
|
|
3447
|
+
function $i(e, t) {
|
|
3441
3448
|
return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
|
|
3442
3449
|
}
|
|
3443
|
-
function
|
|
3450
|
+
function ea(e, t) {
|
|
3444
3451
|
let n = (t, n) => {
|
|
3445
|
-
let r = 0, i =
|
|
3452
|
+
let r = 0, i = Qi(e);
|
|
3446
3453
|
for (; r < i;) {
|
|
3447
3454
|
let a = r + Math.floor((i - r) / 2);
|
|
3448
|
-
(n ?
|
|
3455
|
+
(n ? $i(e, a) <= t : $i(e, a) < t) ? r = a + 1 : i = a;
|
|
3449
3456
|
}
|
|
3450
3457
|
return r;
|
|
3451
3458
|
}, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
|
|
@@ -3454,13 +3461,13 @@ function $i(e, t) {
|
|
|
3454
3461
|
end: n(i, !0)
|
|
3455
3462
|
};
|
|
3456
3463
|
}
|
|
3457
|
-
function
|
|
3458
|
-
return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) =>
|
|
3464
|
+
function ta(e, t, n) {
|
|
3465
|
+
return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => $i(e, t + r));
|
|
3459
3466
|
}
|
|
3460
|
-
function
|
|
3467
|
+
function na(e) {
|
|
3461
3468
|
return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
|
|
3462
3469
|
}
|
|
3463
|
-
function
|
|
3470
|
+
function ra(e, t) {
|
|
3464
3471
|
let n = [], r = Math.min(e.length, t.length);
|
|
3465
3472
|
for (let i = 0; i < r; i += 1) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push(i);
|
|
3466
3473
|
return n.sort((t, n) => e[t] - e[n] || t - n), {
|
|
@@ -3468,14 +3475,14 @@ function na(e, t) {
|
|
|
3468
3475
|
y: Float64Array.from(n, (e) => t[e])
|
|
3469
3476
|
};
|
|
3470
3477
|
}
|
|
3471
|
-
function
|
|
3478
|
+
function ia(e, t, n, r) {
|
|
3472
3479
|
if (t?.kind === "typed") {
|
|
3473
|
-
let e =
|
|
3480
|
+
let e = ra(t.x, t.y);
|
|
3474
3481
|
return {
|
|
3475
3482
|
x: e.x,
|
|
3476
3483
|
y: e.y,
|
|
3477
3484
|
revision: n,
|
|
3478
|
-
metrics:
|
|
3485
|
+
metrics: Hi(e.x, e.y, Math.max(t.x.length, t.y.length))
|
|
3479
3486
|
};
|
|
3480
3487
|
}
|
|
3481
3488
|
if (t?.kind === "samples") {
|
|
@@ -3509,35 +3516,35 @@ function ra(e, t, n, r) {
|
|
|
3509
3516
|
}
|
|
3510
3517
|
};
|
|
3511
3518
|
}
|
|
3512
|
-
let i =
|
|
3519
|
+
let i = Bi(e ?? t?.points ?? []);
|
|
3513
3520
|
return {
|
|
3514
3521
|
x: Float64Array.from(i, (e) => e.x),
|
|
3515
3522
|
y: Float64Array.from(i, (e) => e.y),
|
|
3516
3523
|
points: i,
|
|
3517
3524
|
revision: n,
|
|
3518
|
-
metrics:
|
|
3519
|
-
index: new
|
|
3525
|
+
metrics: Vi(i, e?.length ?? t?.points.length ?? 0),
|
|
3526
|
+
index: new Li(i, { maxBytes: r })
|
|
3520
3527
|
};
|
|
3521
3528
|
}
|
|
3522
|
-
function
|
|
3523
|
-
!
|
|
3529
|
+
function aa(e, t, n) {
|
|
3530
|
+
!na(e) || t.wasmDatasetHandle !== void 0 || (t.wasmDatasetHandle = t.x ? e.registerDataset(t.x, t.y, n) : e.registerSamples(t.y, t.sampleSourceIndexes, t.sampleStartTime, t.sampleRate, n), t.wasmIndexBytes = e.datasetIndexBytes(t.wasmDatasetHandle));
|
|
3524
3531
|
}
|
|
3525
|
-
function
|
|
3526
|
-
t.index?.dispose(), t.wasmDatasetHandle !== void 0 &&
|
|
3532
|
+
function oa(e, t) {
|
|
3533
|
+
t.index?.dispose(), t.wasmDatasetHandle !== void 0 && na(e) && e.disposeDataset(t.wasmDatasetHandle);
|
|
3527
3534
|
}
|
|
3528
3535
|
//#endregion
|
|
3529
3536
|
//#region src/core/workerSampling/samplingCache.ts
|
|
3530
|
-
var
|
|
3531
|
-
function
|
|
3537
|
+
var sa = 96, ca = 16 * 1024 * 1024;
|
|
3538
|
+
function la(e) {
|
|
3532
3539
|
return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
|
|
3533
3540
|
}
|
|
3534
|
-
var
|
|
3541
|
+
var ua = class {
|
|
3535
3542
|
entries = /* @__PURE__ */ new Map();
|
|
3536
3543
|
bytes = 0;
|
|
3537
3544
|
maxEntries;
|
|
3538
3545
|
maxBytes;
|
|
3539
3546
|
constructor(e = {}) {
|
|
3540
|
-
this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) :
|
|
3547
|
+
this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : sa, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : ca;
|
|
3541
3548
|
}
|
|
3542
3549
|
get metrics() {
|
|
3543
3550
|
return {
|
|
@@ -3552,7 +3559,7 @@ var la = class {
|
|
|
3552
3559
|
if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
|
|
3553
3560
|
}
|
|
3554
3561
|
set(e, t) {
|
|
3555
|
-
let n =
|
|
3562
|
+
let n = la(t);
|
|
3556
3563
|
if (n > this.maxBytes || this.maxEntries === 0) return;
|
|
3557
3564
|
let r = this.entries.get(e);
|
|
3558
3565
|
for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
|
|
@@ -3572,14 +3579,14 @@ var la = class {
|
|
|
3572
3579
|
clear() {
|
|
3573
3580
|
this.entries.clear(), this.bytes = 0;
|
|
3574
3581
|
}
|
|
3575
|
-
},
|
|
3582
|
+
}, da = class {
|
|
3576
3583
|
datasets = /* @__PURE__ */ new Map();
|
|
3577
3584
|
javascriptBackend;
|
|
3578
3585
|
cache;
|
|
3579
3586
|
indexMaxBytes;
|
|
3580
3587
|
wasmBackend;
|
|
3581
3588
|
constructor(e = {}) {
|
|
3582
|
-
this.javascriptBackend = e.javascriptBackend ??
|
|
3589
|
+
this.javascriptBackend = e.javascriptBackend ?? Ai, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new ua({
|
|
3583
3590
|
maxEntries: e.cacheMaxEntries,
|
|
3584
3591
|
maxBytes: e.cacheMaxBytes
|
|
3585
3592
|
});
|
|
@@ -3592,9 +3599,9 @@ var la = class {
|
|
|
3592
3599
|
};
|
|
3593
3600
|
}
|
|
3594
3601
|
setWasmBackend(e) {
|
|
3595
|
-
this.wasmBackend && this.wasmBackend !== e &&
|
|
3602
|
+
this.wasmBackend && this.wasmBackend !== e && na(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
|
|
3596
3603
|
e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
|
|
3597
|
-
})), this.wasmBackend = e,
|
|
3604
|
+
})), this.wasmBackend = e, na(e) && this.datasets.forEach((t) => aa(e, t, this.indexMaxBytes));
|
|
3598
3605
|
}
|
|
3599
3606
|
handle(e) {
|
|
3600
3607
|
switch (e.type) {
|
|
@@ -3610,15 +3617,15 @@ var la = class {
|
|
|
3610
3617
|
register(e, t, n, r) {
|
|
3611
3618
|
let i = this.datasets.get(e);
|
|
3612
3619
|
if (i) return this.datasetResponse(t, e, i, "stale-revision");
|
|
3613
|
-
let a =
|
|
3614
|
-
return
|
|
3620
|
+
let a = ia(n, r, 1, this.indexMaxBytes);
|
|
3621
|
+
return aa(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
|
|
3615
3622
|
}
|
|
3616
3623
|
replace(e, t, n, r, i) {
|
|
3617
|
-
let a = this.datasets.get(e), o =
|
|
3624
|
+
let a = this.datasets.get(e), o = Ui(a, n);
|
|
3618
3625
|
if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
|
|
3619
|
-
|
|
3620
|
-
let s =
|
|
3621
|
-
return
|
|
3626
|
+
oa(this.wasmBackend, a), this.cache.deleteDataset(e);
|
|
3627
|
+
let s = ia(r, i, a.revision + 1, this.indexMaxBytes);
|
|
3628
|
+
return aa(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
|
|
3622
3629
|
}
|
|
3623
3630
|
sample(e) {
|
|
3624
3631
|
return {
|
|
@@ -3628,28 +3635,28 @@ var la = class {
|
|
|
3628
3635
|
};
|
|
3629
3636
|
}
|
|
3630
3637
|
sampleSeries(e, t) {
|
|
3631
|
-
let n = performance.now(), r = this.datasets.get(t.datasetId), i =
|
|
3638
|
+
let n = performance.now(), r = this.datasets.get(t.datasetId), i = Ui(r, t.revision);
|
|
3632
3639
|
if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
|
|
3633
|
-
let a =
|
|
3634
|
-
if (
|
|
3640
|
+
let a = ea(r, t.xDomain), o = a.end - a.start;
|
|
3641
|
+
if (Ki(t, o)) return this.sampleResponse(e, t, "ok", {
|
|
3635
3642
|
kind: "source-indexes",
|
|
3636
3643
|
sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
|
|
3637
3644
|
}, "raw", "raw", o, n, !1);
|
|
3638
3645
|
let s = t.mode === "wasm" || t.mode === "auto" && this.wasmBackend ? this.wasmBackend : this.javascriptBackend, c = !s && t.wasmFailureFallback === "javascript", l = s ?? (c ? this.javascriptBackend : void 0);
|
|
3639
3646
|
if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
|
|
3640
|
-
let u =
|
|
3647
|
+
let u = Wi(t.strategy), d = Gi(t), f = Xi(t, a, u, d, l.kind), p = this.cache.get(f);
|
|
3641
3648
|
if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
|
|
3642
|
-
let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 &&
|
|
3643
|
-
x:
|
|
3649
|
+
let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && na(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? Yi(l.sample({
|
|
3650
|
+
x: ta(r, a.start, a.end),
|
|
3644
3651
|
y: r.y.subarray(a.start, a.end),
|
|
3645
3652
|
points: r.points?.slice(a.start, a.end) ?? [],
|
|
3646
3653
|
strategy: u,
|
|
3647
3654
|
targetPointCount: d
|
|
3648
3655
|
}), a.start);
|
|
3649
|
-
return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 &&
|
|
3656
|
+
return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && na(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
|
|
3650
3657
|
}
|
|
3651
3658
|
sampleResponse(e, t, n, r, i, a, o, s, c) {
|
|
3652
|
-
let l =
|
|
3659
|
+
let l = Zi(t, Qi(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Ji(r), c);
|
|
3653
3660
|
return l.requestId = e, {
|
|
3654
3661
|
seriesId: t.seriesId,
|
|
3655
3662
|
datasetId: t.datasetId,
|
|
@@ -3660,7 +3667,7 @@ var la = class {
|
|
|
3660
3667
|
};
|
|
3661
3668
|
}
|
|
3662
3669
|
findNearest(e, t, n, r) {
|
|
3663
|
-
let i = this.datasets.get(e), a =
|
|
3670
|
+
let i = this.datasets.get(e), a = Ui(i, n);
|
|
3664
3671
|
return a !== "ok" || !i ? {
|
|
3665
3672
|
type: "find-nearest-point-response",
|
|
3666
3673
|
requestId: t,
|
|
@@ -3673,12 +3680,12 @@ var la = class {
|
|
|
3673
3680
|
datasetId: e,
|
|
3674
3681
|
revision: n,
|
|
3675
3682
|
status: a,
|
|
3676
|
-
point: i.points ?
|
|
3677
|
-
let e =
|
|
3678
|
-
if (!
|
|
3679
|
-
let t = Math.min(
|
|
3680
|
-
return Number.isFinite(r) &&
|
|
3681
|
-
x:
|
|
3683
|
+
point: i.points ? qi(i.points, r) : (() => {
|
|
3684
|
+
let e = ea(i, [r, r]);
|
|
3685
|
+
if (!Qi(i) || r < $i(i, 0) || r > $i(i, Qi(i) - 1)) return;
|
|
3686
|
+
let t = Math.min(Qi(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - $i(i, n)) < Math.abs($i(i, t) - r) ? n : t;
|
|
3687
|
+
return Number.isFinite(r) && Qi(i) ? {
|
|
3688
|
+
x: $i(i, a),
|
|
3682
3689
|
y: i.y[a]
|
|
3683
3690
|
} : void 0;
|
|
3684
3691
|
})()
|
|
@@ -3686,15 +3693,15 @@ var la = class {
|
|
|
3686
3693
|
}
|
|
3687
3694
|
metrics(e, t, n) {
|
|
3688
3695
|
let r = this.datasets.get(e);
|
|
3689
|
-
return this.datasetResponse(t, e, r,
|
|
3696
|
+
return this.datasetResponse(t, e, r, Ui(r, n));
|
|
3690
3697
|
}
|
|
3691
3698
|
dispose(e, t, n) {
|
|
3692
|
-
let r = this.datasets.get(e), i =
|
|
3693
|
-
return i === "ok" && r && (
|
|
3699
|
+
let r = this.datasets.get(e), i = Ui(r, n);
|
|
3700
|
+
return i === "ok" && r && (oa(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
|
|
3694
3701
|
}
|
|
3695
3702
|
disposeAll(e) {
|
|
3696
3703
|
let t = [...this.datasets.keys()];
|
|
3697
|
-
return this.datasets.forEach((e) =>
|
|
3704
|
+
return this.datasets.forEach((e) => oa(this.wasmBackend, e)), na(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
|
|
3698
3705
|
type: "dispose-all-response",
|
|
3699
3706
|
requestId: e,
|
|
3700
3707
|
disposedDatasetIds: t
|
|
@@ -3716,10 +3723,10 @@ var la = class {
|
|
|
3716
3723
|
};
|
|
3717
3724
|
//#endregion
|
|
3718
3725
|
//#region src/components/core/latestTaskScheduler.ts
|
|
3719
|
-
function
|
|
3726
|
+
function fa(e, t, n, r) {
|
|
3720
3727
|
return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
|
|
3721
3728
|
}
|
|
3722
|
-
function
|
|
3729
|
+
function pa() {
|
|
3723
3730
|
let e = 0, t = !1, n, r = !1, i = {
|
|
3724
3731
|
scheduled: 0,
|
|
3725
3732
|
coalesced: 0,
|
|
@@ -3758,12 +3765,12 @@ function fa() {
|
|
|
3758
3765
|
}
|
|
3759
3766
|
//#endregion
|
|
3760
3767
|
//#region src/components/core/workerSamplingClient.ts
|
|
3761
|
-
function
|
|
3768
|
+
function ma(e) {
|
|
3762
3769
|
return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
|
|
3763
3770
|
}
|
|
3764
|
-
function
|
|
3771
|
+
function ha() {
|
|
3765
3772
|
let e, t, n, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = () => {
|
|
3766
|
-
t ??= new
|
|
3773
|
+
t ??= new da();
|
|
3767
3774
|
for (let [e, n] of i) {
|
|
3768
3775
|
t.handle({
|
|
3769
3776
|
type: "register-dataset",
|
|
@@ -3799,12 +3806,12 @@ function ma() {
|
|
|
3799
3806
|
let t = a();
|
|
3800
3807
|
e.forEach(({ request: e, resolve: n }) => n(t.handle(e)));
|
|
3801
3808
|
}, c = (r) => {
|
|
3802
|
-
t || (n =
|
|
3809
|
+
t || (n = ma(r), e?.terminate(), e = void 0, s());
|
|
3803
3810
|
};
|
|
3804
3811
|
try {
|
|
3805
3812
|
typeof Worker > "u" ? c() : (e = new Worker(new URL(
|
|
3806
3813
|
/* @vite-ignore */
|
|
3807
|
-
"/assets/workerRuntime-
|
|
3814
|
+
"/assets/workerRuntime-BcYng9TR.js",
|
|
3808
3815
|
"" + import.meta.url
|
|
3809
3816
|
), { type: "module" }), e.onmessage = (e) => {
|
|
3810
3817
|
let t = r.get(e.data.requestId);
|
|
@@ -3836,20 +3843,20 @@ function ma() {
|
|
|
3836
3843
|
}
|
|
3837
3844
|
};
|
|
3838
3845
|
}
|
|
3839
|
-
function
|
|
3846
|
+
function ga(e) {
|
|
3840
3847
|
return e.type === "dataset-response";
|
|
3841
3848
|
}
|
|
3842
3849
|
//#endregion
|
|
3843
3850
|
//#region src/components/core/useWaveformRenderSampling.ts
|
|
3844
|
-
var
|
|
3845
|
-
function
|
|
3851
|
+
var _a = 120;
|
|
3852
|
+
function va(e, t) {
|
|
3846
3853
|
let n = e.output;
|
|
3847
3854
|
if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
|
|
3848
3855
|
x: e,
|
|
3849
3856
|
y: n.y[t]
|
|
3850
3857
|
})) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
|
|
3851
3858
|
}
|
|
3852
|
-
function
|
|
3859
|
+
function ya(e, t) {
|
|
3853
3860
|
let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
|
|
3854
3861
|
return {
|
|
3855
3862
|
seriesId: n.seriesId,
|
|
@@ -3871,18 +3878,18 @@ function va(e, t) {
|
|
|
3871
3878
|
maxPendingRequestCount: 0
|
|
3872
3879
|
};
|
|
3873
3880
|
}
|
|
3874
|
-
function
|
|
3875
|
-
let { source:
|
|
3876
|
-
if (
|
|
3877
|
-
if (
|
|
3878
|
-
let
|
|
3879
|
-
for (let e = 0; e <
|
|
3880
|
-
let
|
|
3881
|
-
|
|
3881
|
+
function ba(e) {
|
|
3882
|
+
let { source: t } = e, { start: n, end: r } = e.visibleRange, i = r - n, a = Number.isFinite(e.request.maxPointCount) && (e.request.maxPointCount ?? 0) >= 1 ? Math.floor(e.request.maxPointCount) : Math.max(1, Math.floor(e.request.plotWidth * e.request.maxPointsPerPixel));
|
|
3883
|
+
if (i <= a) return t.pointsInRange(n, r);
|
|
3884
|
+
if (a === 1) return t.pointAt(n) ? [t.pointAt(n)] : [];
|
|
3885
|
+
let o = [];
|
|
3886
|
+
for (let e = 0; e < a; e += 1) {
|
|
3887
|
+
let r = Math.round(e * (i - 1) / (a - 1)), s = t.pointAt(n + r);
|
|
3888
|
+
s && o.push(s);
|
|
3882
3889
|
}
|
|
3883
|
-
return
|
|
3890
|
+
return o;
|
|
3884
3891
|
}
|
|
3885
|
-
function
|
|
3892
|
+
function xa(e, t, n, r) {
|
|
3886
3893
|
return {
|
|
3887
3894
|
message: e,
|
|
3888
3895
|
mode: t,
|
|
@@ -3890,8 +3897,8 @@ function ba(e, t, n, r) {
|
|
|
3890
3897
|
seriesIds: r
|
|
3891
3898
|
};
|
|
3892
3899
|
}
|
|
3893
|
-
function
|
|
3894
|
-
let n = C(0), r, i = 0, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u =
|
|
3900
|
+
function Sa(e) {
|
|
3901
|
+
let n = C(0), r, i = 0, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u = pa(), d, f, p = !1, m = t(() => {
|
|
3895
3902
|
let t = e.renderingOptions.value.sampling;
|
|
3896
3903
|
return e.sourceTrackLayouts.value.flatMap((n) => {
|
|
3897
3904
|
let r = n.xScale.domain();
|
|
@@ -3915,6 +3922,7 @@ function xa(e) {
|
|
|
3915
3922
|
autoHysteresis: t.autoHysteresis,
|
|
3916
3923
|
strategy: t.strategy,
|
|
3917
3924
|
maxPointsPerPixel: t.maxPointsPerPixel,
|
|
3925
|
+
maxPointCount: t.maxPointCount,
|
|
3918
3926
|
rawPointLimit: t.rawPointLimit,
|
|
3919
3927
|
wasmFailureFallback: t.wasmFailureFallback,
|
|
3920
3928
|
lineType: i.lineType,
|
|
@@ -3926,7 +3934,7 @@ function xa(e) {
|
|
|
3926
3934
|
}];
|
|
3927
3935
|
});
|
|
3928
3936
|
});
|
|
3929
|
-
}), h = t(() => `${n.value}:${m.value.map((e) => `${e.request.datasetId}:${e.request.xDomain.join(",")}:${e.request.plotWidth}:${e.visibleRange.start}:${e.visibleRange.end}:${e.request.mode}:${e.request.autoThreshold}:${e.request.autoHysteresis}:${e.request.strategy}:${e.request.maxPointsPerPixel}:${e.request.rawPointLimit}:${e.request.wasmFailureFallback}:${e.request.lineType}:${e.request.pointType}:${e.request.errorBarVisible}:${e.request.pointMinSpacing}:${e.request.errorBarMinSpacing}`).join("|")}`), g = () => {
|
|
3937
|
+
}), h = t(() => `${n.value}:${m.value.map((e) => `${e.request.datasetId}:${e.request.xDomain.join(",")}:${e.request.plotWidth}:${e.visibleRange.start}:${e.visibleRange.end}:${e.request.mode}:${e.request.autoThreshold}:${e.request.autoHysteresis}:${e.request.strategy}:${e.request.maxPointsPerPixel}:${e.request.maxPointCount}:${e.request.rawPointLimit}:${e.request.wasmFailureFallback}:${e.request.lineType}:${e.request.pointType}:${e.request.errorBarVisible}:${e.request.pointMinSpacing}:${e.request.errorBarMinSpacing}`).join("|")}`), g = () => {
|
|
3930
3938
|
d = void 0, l.forEach((t) => {
|
|
3931
3939
|
let n = o.get(t.seriesId);
|
|
3932
3940
|
n && n !== t.backend && e.emit("sampling-backend-change", {
|
|
@@ -3955,17 +3963,17 @@ function xa(e) {
|
|
|
3955
3963
|
revision: 0,
|
|
3956
3964
|
dataset: t.source.toWorkerDataset()
|
|
3957
3965
|
});
|
|
3958
|
-
!u.isCurrent(n) || !
|
|
3966
|
+
!u.isCurrent(n) || !ga(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
|
|
3959
3967
|
}));
|
|
3960
3968
|
}, x = async (t, n = !1) => {
|
|
3961
3969
|
let o = m.value, c = { ...e.linePointOverrides.value }, l = [], d = [];
|
|
3962
|
-
if (o.forEach((
|
|
3963
|
-
let
|
|
3964
|
-
|
|
3965
|
-
...
|
|
3970
|
+
if (o.forEach((e) => {
|
|
3971
|
+
let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" && fa(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
|
|
3972
|
+
e.request.mode === "raw" || a ? (c[e.series.id] = e.source.pointsInRange(e.visibleRange.start, e.visibleRange.end), s.set(e.series.id, "raw"), d.push(ya(e, t))) : (c[e.series.id]?.length || (c[e.series.id] = ba(e)), l.push({
|
|
3973
|
+
...e,
|
|
3966
3974
|
request: {
|
|
3967
|
-
...
|
|
3968
|
-
previousSelectedMode:
|
|
3975
|
+
...e.request,
|
|
3976
|
+
previousSelectedMode: i
|
|
3969
3977
|
}
|
|
3970
3978
|
}));
|
|
3971
3979
|
}), !l.length) {
|
|
@@ -3973,7 +3981,7 @@ function xa(e) {
|
|
|
3973
3981
|
e.linePointOverrides.value = c, v(d);
|
|
3974
3982
|
return;
|
|
3975
3983
|
}
|
|
3976
|
-
if (e.linePointOverrides.value = c, r ??=
|
|
3984
|
+
if (e.linePointOverrides.value = c, r ??= ha(), await b(r, l, t), !u.isCurrent(t)) return;
|
|
3977
3985
|
let f = l.map((e) => ({
|
|
3978
3986
|
...e.request,
|
|
3979
3987
|
revision: a.get(e.request.datasetId) ?? 1
|
|
@@ -3988,22 +3996,22 @@ function xa(e) {
|
|
|
3988
3996
|
p = e;
|
|
3989
3997
|
} catch (n) {
|
|
3990
3998
|
if (!u.isCurrent(t)) return;
|
|
3991
|
-
y(
|
|
3999
|
+
y(xa(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
|
|
3992
4000
|
return;
|
|
3993
4001
|
}
|
|
3994
4002
|
if (!u.isCurrent(t)) return;
|
|
3995
4003
|
let h = new Map(l.map((e) => [e.series.id, e.source]));
|
|
3996
4004
|
p.results.forEach((e) => {
|
|
3997
|
-
let t = h.get(e.seriesId), n = t ?
|
|
3998
|
-
n && (e.status === "ok" || e.status === "wasm-unavailable") && (c[e.seriesId] = n), d.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && y(
|
|
3999
|
-
}), p.workerError && y(
|
|
4005
|
+
let t = h.get(e.seriesId), n = t ? va(e, t) : void 0;
|
|
4006
|
+
n && (e.status === "ok" || e.status === "wasm-unavailable") && (c[e.seriesId] = n), d.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && y(xa(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
|
|
4007
|
+
}), p.workerError && y(xa(p.workerError, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), r.workerFailureReason && p.results.every((e) => e.status !== "wasm-unavailable") && y(xa(r.workerFailureReason, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), e.linePointOverrides.value = { ...c }, v(d);
|
|
4000
4008
|
};
|
|
4001
4009
|
return O(h, () => {
|
|
4002
4010
|
f && clearTimeout(f);
|
|
4003
4011
|
let t = p;
|
|
4004
4012
|
p = !0, u.schedule((e) => x(e, t)), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (f = setTimeout(() => {
|
|
4005
4013
|
f = void 0, u.schedule((e) => x(e, !1));
|
|
4006
|
-
},
|
|
4014
|
+
}, _a));
|
|
4007
4015
|
}, { immediate: !0 }), O(e.preparedSeries, () => {
|
|
4008
4016
|
u.cancelPending(), n.value += 1, e.linePointOverrides.value = {}, a.clear(), o.clear(), s.clear(), c.clear(), r?.dispose(), r = void 0;
|
|
4009
4017
|
}, { flush: "sync" }), _(() => {
|
|
@@ -4012,10 +4020,10 @@ function xa(e) {
|
|
|
4012
4020
|
}
|
|
4013
4021
|
//#endregion
|
|
4014
4022
|
//#region src/components/core/useWaveformChartController.ts
|
|
4015
|
-
function
|
|
4023
|
+
function Ca(e, t) {
|
|
4016
4024
|
e.value = t instanceof Element ? t : void 0;
|
|
4017
4025
|
}
|
|
4018
|
-
function
|
|
4026
|
+
function wa(e, t) {
|
|
4019
4027
|
let n = b(), r = b(), i = b(), a = b(), o = b(0), s = b(0), c = b(0), l = b(0), u = b(0), f = C(K), p = C([]), m = b({}), h = b({}), g = S({
|
|
4020
4028
|
points: [],
|
|
4021
4029
|
trackIndex: null,
|
|
@@ -4024,11 +4032,11 @@ function Ca(e, t) {
|
|
|
4024
4032
|
x: 0,
|
|
4025
4033
|
y: 0
|
|
4026
4034
|
}
|
|
4027
|
-
}), _ = b(!1), v = b(1), x = C(), w = le("waveform-clip"), E = b(new Set(e.defaultHiddenSeriesIds)), D = mt(), A = C({}), j = b([]), M =
|
|
4035
|
+
}), _ = b(!1), v = b(1), x = C(), w = le("waveform-clip"), E = b(new Set(e.defaultHiddenSeriesIds)), D = mt(), A = C({}), j = b([]), M = Mr();
|
|
4028
4036
|
O([() => e.yDomain, () => e.yDomains], () => {
|
|
4029
4037
|
m.value = {}, h.value = {};
|
|
4030
4038
|
}, { deep: !0 });
|
|
4031
|
-
let N = C(null), P = b(!1), F = b(!1), I = () => void 0, L = () => void 0, R =
|
|
4039
|
+
let N = C(null), P = b(!1), F = b(!1), I = () => void 0, L = () => void 0, R = Lr(() => e.data, () => I(), () => L()), z = bi({
|
|
4032
4040
|
props: e,
|
|
4033
4041
|
observedWidth: o,
|
|
4034
4042
|
observedHeight: s,
|
|
@@ -4036,7 +4044,7 @@ function Ca(e, t) {
|
|
|
4036
4044
|
measuredTitleHeight: l,
|
|
4037
4045
|
internalHiddenSeriesIds: E,
|
|
4038
4046
|
paginationBandHeight: u
|
|
4039
|
-
}), { chartWidth: B, chartHeight: V, isCleanView: H, isPresentationMode: U, hiddenSeriesIdSet: W, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = z, q =
|
|
4047
|
+
}), { chartWidth: B, chartHeight: V, isCleanView: H, isPresentationMode: U, hiddenSeriesIdSet: W, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = z, q = gi({
|
|
4040
4048
|
props: e,
|
|
4041
4049
|
preparedSeries: R,
|
|
4042
4050
|
currentPage: v,
|
|
@@ -4051,7 +4059,7 @@ function Ca(e, t) {
|
|
|
4051
4059
|
annotationInteraction: d(D),
|
|
4052
4060
|
linePointOverrides: A
|
|
4053
4061
|
}), { chartSeries: ae, chartTracks: oe, renderingOptions: se, trackLayouts: ce, gridOptions: ue, pageCount: de, pagedTracks: J, resolvedChartLeftMargin: fe, innerWidth: Y, hasChartArea: pe, activeInteractionMode: me, isZoomMode: he, initialXDomain: ge, sharedZoomDomain: _e, resolveInitialTrackDomain: ve, annotationLayoutsForTrack: ye, resolveSeriesYScale: be } = q;
|
|
4054
|
-
|
|
4062
|
+
Sa({
|
|
4055
4063
|
props: e,
|
|
4056
4064
|
emit: t,
|
|
4057
4065
|
instanceId: w,
|
|
@@ -4062,7 +4070,7 @@ function Ca(e, t) {
|
|
|
4062
4070
|
}), k(() => {
|
|
4063
4071
|
u.value = ue.value.showPagination && de.value > 1 && B.value <= 520 ? 40 : 0;
|
|
4064
4072
|
});
|
|
4065
|
-
let xe =
|
|
4073
|
+
let xe = Nr({
|
|
4066
4074
|
props: e,
|
|
4067
4075
|
emit: t,
|
|
4068
4076
|
svgElement: r,
|
|
@@ -4079,7 +4087,7 @@ function Ca(e, t) {
|
|
|
4079
4087
|
isPresentationMode: U,
|
|
4080
4088
|
resolveInitialTrackDomain: ve,
|
|
4081
4089
|
cancelPendingHover: () => Ce.cancelPendingHover()
|
|
4082
|
-
}), X =
|
|
4090
|
+
}), X = mr({
|
|
4083
4091
|
props: e,
|
|
4084
4092
|
emit: t,
|
|
4085
4093
|
container: n,
|
|
@@ -4099,7 +4107,7 @@ function Ca(e, t) {
|
|
|
4099
4107
|
chartTopMargin: ie,
|
|
4100
4108
|
activeInteractionMode: me,
|
|
4101
4109
|
isPresentationMode: U
|
|
4102
|
-
}), Se =
|
|
4110
|
+
}), Se = jr({
|
|
4103
4111
|
props: e,
|
|
4104
4112
|
emit: t,
|
|
4105
4113
|
selection: N,
|
|
@@ -4124,7 +4132,7 @@ function Ca(e, t) {
|
|
|
4124
4132
|
cancelPendingZoom: xe.cancelPendingZoom,
|
|
4125
4133
|
clearHover: () => Ce.clearHover(),
|
|
4126
4134
|
resolveTrackAtPointer: X.resolveTrackAtPointer
|
|
4127
|
-
}), Ce =
|
|
4135
|
+
}), Ce = hr({
|
|
4128
4136
|
emit: t,
|
|
4129
4137
|
hoverState: g,
|
|
4130
4138
|
suppressHoverUntilMove: _,
|
|
@@ -4139,7 +4147,7 @@ function Ca(e, t) {
|
|
|
4139
4147
|
isPresentationMode: U,
|
|
4140
4148
|
updateViewportDrag: Se.updateViewportDrag,
|
|
4141
4149
|
resolveTrackAtPointer: X.resolveTrackAtPointer
|
|
4142
|
-
}), we =
|
|
4150
|
+
}), we = Fr({
|
|
4143
4151
|
props: e,
|
|
4144
4152
|
emit: t,
|
|
4145
4153
|
container: n,
|
|
@@ -4191,7 +4199,7 @@ function Ca(e, t) {
|
|
|
4191
4199
|
...Se,
|
|
4192
4200
|
...Ce,
|
|
4193
4201
|
margin: Lt,
|
|
4194
|
-
getPageSize:
|
|
4202
|
+
getPageSize: Bn,
|
|
4195
4203
|
currentPage: v,
|
|
4196
4204
|
selection: N,
|
|
4197
4205
|
pointerInsideChart: F,
|
|
@@ -4202,34 +4210,34 @@ function Ca(e, t) {
|
|
|
4202
4210
|
editorSeriesOptions: j,
|
|
4203
4211
|
clipPathId: w,
|
|
4204
4212
|
goToPage: we.goToPage,
|
|
4205
|
-
setContainer: (e) =>
|
|
4206
|
-
setSvgElement: (e) =>
|
|
4207
|
-
setTitleMeasureElement: (e) =>
|
|
4208
|
-
setSharedOverlayElement: (e) =>
|
|
4213
|
+
setContainer: (e) => Ca(n, e),
|
|
4214
|
+
setSvgElement: (e) => Ca(r, e),
|
|
4215
|
+
setTitleMeasureElement: (e) => Ca(i, e),
|
|
4216
|
+
setSharedOverlayElement: (e) => Ca(a, e)
|
|
4209
4217
|
});
|
|
4210
4218
|
}
|
|
4211
4219
|
//#endregion
|
|
4212
4220
|
//#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
|
|
4213
|
-
var
|
|
4221
|
+
var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
4214
4222
|
class: "waveform-annotation-editor__coordinates",
|
|
4215
4223
|
"aria-label": "标注坐标"
|
|
4216
|
-
},
|
|
4224
|
+
}, Oa = ["aria-invalid"], ka = {
|
|
4217
4225
|
class: "waveform-annotation-editor__coordinate-value",
|
|
4218
4226
|
"aria-hidden": "true"
|
|
4219
|
-
},
|
|
4227
|
+
}, Aa = ["id"], ja = {
|
|
4220
4228
|
key: 0,
|
|
4221
4229
|
class: "waveform-annotation-editor__series",
|
|
4222
4230
|
"aria-label": "标注所属波形"
|
|
4223
|
-
},
|
|
4231
|
+
}, Ma = { class: "waveform-annotation-editor__series-label" }, Na = ["value"], Pa = ["value"], Fa = { key: 1 }, Ia = { class: "waveform-annotation-editor__field" }, La = { class: "waveform-annotation-editor__label-row" }, Ra = ["maxlength"], za = { class: "waveform-annotation-editor__colors" }, Ba = {
|
|
4224
4232
|
class: "waveform-annotation-editor__color-field",
|
|
4225
4233
|
title: "调整标注边框色和透明度"
|
|
4226
|
-
},
|
|
4234
|
+
}, Va = {
|
|
4227
4235
|
class: "waveform-annotation-editor__color-field",
|
|
4228
4236
|
title: "调整标注文字色和透明度"
|
|
4229
|
-
},
|
|
4237
|
+
}, Ha = {
|
|
4230
4238
|
class: "waveform-annotation-editor__color-field",
|
|
4231
4239
|
title: "调整标注背景色和透明度"
|
|
4232
|
-
},
|
|
4240
|
+
}, Ua = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4233
4241
|
__name: "WaveformAnnotationEditor",
|
|
4234
4242
|
props: {
|
|
4235
4243
|
annotation: {},
|
|
@@ -4300,9 +4308,9 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4300
4308
|
onCancel: o[4] ||= (e) => p("cancel"),
|
|
4301
4309
|
onOk: B
|
|
4302
4310
|
}, {
|
|
4303
|
-
title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9,
|
|
4304
|
-
default: A(() => [a("div",
|
|
4305
|
-
a("div",
|
|
4311
|
+
title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9, Ta)]),
|
|
4312
|
+
default: A(() => [a("div", Ea, [
|
|
4313
|
+
a("div", Da, [
|
|
4306
4314
|
a("label", {
|
|
4307
4315
|
class: "waveform-annotation-editor__coordinate-input",
|
|
4308
4316
|
"aria-invalid": !!N.value
|
|
@@ -4325,26 +4333,26 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4325
4333
|
"aria-invalid",
|
|
4326
4334
|
"aria-describedby"
|
|
4327
4335
|
]),
|
|
4328
|
-
a("code",
|
|
4329
|
-
], 8,
|
|
4336
|
+
a("code", ka, w(y.value), 1)
|
|
4337
|
+
], 8, Oa),
|
|
4330
4338
|
N.value ? (v(), i("p", {
|
|
4331
4339
|
key: 0,
|
|
4332
4340
|
id: `${E(g)}-time-error`,
|
|
4333
4341
|
class: "waveform-annotation-editor__coordinate-error",
|
|
4334
4342
|
role: "alert"
|
|
4335
|
-
}, w(N.value), 9,
|
|
4343
|
+
}, w(N.value), 9, Aa)) : r("", !0),
|
|
4336
4344
|
a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, w(E(Ot)(d.annotation.y)), 1)])
|
|
4337
4345
|
]),
|
|
4338
4346
|
o[13] ||= a("p", {
|
|
4339
4347
|
class: "waveform-annotation-editor__coordinate-hint",
|
|
4340
4348
|
role: "note"
|
|
4341
4349
|
}, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
|
|
4342
|
-
I.value ? (v(), i("label",
|
|
4350
|
+
I.value ? (v(), i("label", ja, [
|
|
4343
4351
|
a("i", {
|
|
4344
4352
|
style: m({ backgroundColor: I.value.color }),
|
|
4345
4353
|
"aria-hidden": "true"
|
|
4346
4354
|
}, null, 4),
|
|
4347
|
-
a("span",
|
|
4355
|
+
a("span", Ma, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
|
|
4348
4356
|
d.seriesOptions?.length ? (v(), i("select", {
|
|
4349
4357
|
key: 0,
|
|
4350
4358
|
value: d.annotation.seriesId,
|
|
@@ -4353,9 +4361,9 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4353
4361
|
}, [(v(!0), i(e, null, x(d.seriesOptions, (e) => (v(), i("option", {
|
|
4354
4362
|
key: e.seriesId,
|
|
4355
4363
|
value: e.seriesId
|
|
4356
|
-
}, w(e.name) + w(e.unit ? ` (${e.unit})` : ""), 9,
|
|
4364
|
+
}, w(e.name) + w(e.unit ? ` (${e.unit})` : ""), 9, Pa))), 128))], 40, Na)) : I.value.unit ? (v(), i("code", Fa, w(I.value.unit), 1)) : r("", !0)
|
|
4357
4365
|
])) : r("", !0),
|
|
4358
|
-
a("label",
|
|
4366
|
+
a("label", Ia, [a("span", La, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, w(F.value) + "/" + w(E(40)), 1)]), j(a("textarea", {
|
|
4359
4367
|
ref_key: "textarea",
|
|
4360
4368
|
ref: h,
|
|
4361
4369
|
"onUpdate:modelValue": o[0] ||= (e) => _.value = e,
|
|
@@ -4364,10 +4372,10 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4364
4372
|
"aria-label": "标注文本",
|
|
4365
4373
|
placeholder: "输入这处波形的说明",
|
|
4366
4374
|
onKeydown: V
|
|
4367
|
-
}, null, 40,
|
|
4368
|
-
a("fieldset",
|
|
4375
|
+
}, null, 40, Ra), [[D, _.value]])]),
|
|
4376
|
+
a("fieldset", za, [
|
|
4369
4377
|
o[12] ||= a("legend", null, "颜色与透明度", -1),
|
|
4370
|
-
a("label",
|
|
4378
|
+
a("label", Ba, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
|
|
4371
4379
|
"pure-color": C.value,
|
|
4372
4380
|
"onUpdate:pureColor": o[1] ||= (e) => C.value = e,
|
|
4373
4381
|
"aria-label": "标注边框色",
|
|
@@ -4377,7 +4385,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4377
4385
|
"disable-alpha": !1,
|
|
4378
4386
|
"blur-close": !0
|
|
4379
4387
|
}, null, 8, ["pure-color"])]),
|
|
4380
|
-
a("label",
|
|
4388
|
+
a("label", Va, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
|
|
4381
4389
|
"pure-color": T.value,
|
|
4382
4390
|
"onUpdate:pureColor": o[2] ||= (e) => T.value = e,
|
|
4383
4391
|
"aria-label": "标注文字色",
|
|
@@ -4387,7 +4395,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4387
4395
|
"disable-alpha": !1,
|
|
4388
4396
|
"blur-close": !0
|
|
4389
4397
|
}, null, 8, ["pure-color"])]),
|
|
4390
|
-
a("label",
|
|
4398
|
+
a("label", Ha, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
|
|
4391
4399
|
"pure-color": k.value,
|
|
4392
4400
|
"onUpdate:pureColor": o[3] ||= (e) => k.value = e,
|
|
4393
4401
|
"aria-label": "标注背景色",
|
|
@@ -4402,13 +4410,13 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4402
4410
|
_: 1
|
|
4403
4411
|
}, 8, ["ok-button-props"]));
|
|
4404
4412
|
}
|
|
4405
|
-
}), [["__scopeId", "data-v-01ecd3a4"]]),
|
|
4413
|
+
}), [["__scopeId", "data-v-01ecd3a4"]]), Wa = { class: "waveform-tooltip__series-content" }, Ga = { class: "waveform-tooltip__series-label" }, Ka = {
|
|
4406
4414
|
key: 0,
|
|
4407
4415
|
class: "waveform-tooltip__value"
|
|
4408
|
-
},
|
|
4416
|
+
}, qa = {
|
|
4409
4417
|
key: 1,
|
|
4410
4418
|
class: "waveform-tooltip__value waveform-tooltip__value--missing"
|
|
4411
|
-
},
|
|
4419
|
+
}, Ja = 12, Ya = 8, Xa = 238, Za = 560, Qa = 20, $a = 20, eo = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4412
4420
|
__name: "WaveformTooltip",
|
|
4413
4421
|
props: {
|
|
4414
4422
|
visible: { type: Boolean },
|
|
@@ -4422,7 +4430,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4422
4430
|
setup(n) {
|
|
4423
4431
|
let s = n;
|
|
4424
4432
|
function c(e, t) {
|
|
4425
|
-
let n = Math.max(1, t -
|
|
4433
|
+
let n = Math.max(1, t - Qa - 14), r = Math.max(1, Math.floor(n / 7.2));
|
|
4426
4434
|
return Math.max(1, Math.ceil([...e].length / r));
|
|
4427
4435
|
}
|
|
4428
4436
|
function l(e) {
|
|
@@ -4430,18 +4438,18 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4430
4438
|
return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} ${t}`;
|
|
4431
4439
|
}
|
|
4432
4440
|
function u(e) {
|
|
4433
|
-
return 16 +
|
|
4441
|
+
return 16 + $a * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
|
|
4434
4442
|
}
|
|
4435
4443
|
let d = t(() => {
|
|
4436
4444
|
if (!s.visible || !s.hoveredPoint) return { display: "none" };
|
|
4437
|
-
let e = s.position.x +
|
|
4445
|
+
let e = s.position.x + Ja, t = s.position.x - Ja - Xa, n = s.containerWidth - Ya - e, r = s.position.x - Ja - Ya, i = Math.max(1, Math.min(Za, s.containerWidth - Ya * 2)), a = e + Xa <= s.containerWidth - Ya ? {
|
|
4438
4446
|
left: `${e}px`,
|
|
4439
|
-
maxWidth: `${Math.min(
|
|
4440
|
-
} : t >=
|
|
4441
|
-
right: `${s.containerWidth - s.position.x +
|
|
4442
|
-
maxWidth: `${Math.min(
|
|
4447
|
+
maxWidth: `${Math.min(Za, n)}px`
|
|
4448
|
+
} : t >= Ya ? {
|
|
4449
|
+
right: `${s.containerWidth - s.position.x + Ja}px`,
|
|
4450
|
+
maxWidth: `${Math.min(Za, r)}px`
|
|
4443
4451
|
} : {
|
|
4444
|
-
left: `${
|
|
4452
|
+
left: `${Ya}px`,
|
|
4445
4453
|
maxWidth: `${i}px`
|
|
4446
4454
|
}, o = Number.parseFloat(a.maxWidth);
|
|
4447
4455
|
return {
|
|
@@ -4456,9 +4464,9 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4456
4464
|
}, [(v(!0), i(e, null, x(n.seriesPoints, (t) => (v(), i("span", {
|
|
4457
4465
|
key: `${t.trackIndex}-${t.name}`,
|
|
4458
4466
|
class: "waveform-tooltip__series waveform-chart__tooltip-series"
|
|
4459
|
-
}, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span",
|
|
4467
|
+
}, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", Wa, [a("span", Ga, [o(w(t.shotNo?.trim() || "未配置炮号") + ": " + w(t.name), 1), t.unit ? (v(), i(e, { key: 0 }, [o("(" + w(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (v(), i("span", Ka, "(x:" + w(E(Nt)(t.point.x, n.timeUnit)) + " y:" + w(E(Dt)(t.point.y)) + ")", 1)) : (v(), i("span", qa, "无数据"))])]))), 128))], 4)) : r("", !0);
|
|
4460
4468
|
}
|
|
4461
|
-
}), [["__scopeId", "data-v-1ae3316b"]]),
|
|
4469
|
+
}), [["__scopeId", "data-v-1ae3316b"]]), to = /* @__PURE__ */ l({
|
|
4462
4470
|
__name: "WaveformHoverHost",
|
|
4463
4471
|
props: {
|
|
4464
4472
|
state: {},
|
|
@@ -4469,7 +4477,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4469
4477
|
},
|
|
4470
4478
|
setup(e) {
|
|
4471
4479
|
let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
|
|
4472
|
-
return (t, r) => (v(), n(
|
|
4480
|
+
return (t, r) => (v(), n(eo, {
|
|
4473
4481
|
visible: e.visible && i.value !== null,
|
|
4474
4482
|
position: e.state.position,
|
|
4475
4483
|
"time-unit": e.timeUnit,
|
|
@@ -4487,16 +4495,16 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4487
4495
|
"container-height"
|
|
4488
4496
|
]));
|
|
4489
4497
|
}
|
|
4490
|
-
}),
|
|
4498
|
+
}), no = 13, ro = 2, io = 14, ao = 8, oo = 24, so = {
|
|
4491
4499
|
circle: te,
|
|
4492
4500
|
square: re,
|
|
4493
4501
|
triangle: ie,
|
|
4494
4502
|
diamond: ne
|
|
4495
4503
|
};
|
|
4496
|
-
function
|
|
4497
|
-
return e === "none" ? null : ee().type(
|
|
4504
|
+
function co(e, t = 48) {
|
|
4505
|
+
return e === "none" ? null : ee().type(so[e]).size(t)() ?? null;
|
|
4498
4506
|
}
|
|
4499
|
-
function
|
|
4507
|
+
function lo(e, t, n = 48) {
|
|
4500
4508
|
if (e === "none" || t.length === 0) return null;
|
|
4501
4509
|
if (e === "circle") {
|
|
4502
4510
|
let e = Math.sqrt(n / Math.PI);
|
|
@@ -4513,24 +4521,24 @@ function co(e, t, n = 48) {
|
|
|
4513
4521
|
let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
|
|
4514
4522
|
return t.map(({ x: e, y: t }) => `M${e},${t - r}L${e + i},${t}L${e},${t + r}L${e - i},${t}Z`).join("");
|
|
4515
4523
|
}
|
|
4516
|
-
function
|
|
4524
|
+
function uo(e) {
|
|
4517
4525
|
return e === "none" ? null : "M1 8H25";
|
|
4518
4526
|
}
|
|
4519
|
-
function
|
|
4527
|
+
function fo(e) {
|
|
4520
4528
|
if (e === "dashed") return "8 5";
|
|
4521
4529
|
if (e === "dash-dot") return "8 5 1.5 5";
|
|
4522
4530
|
}
|
|
4523
|
-
function
|
|
4524
|
-
let t = (Number.isFinite(e) && e > 0 ? Math.min(e,
|
|
4531
|
+
function po(e) {
|
|
4532
|
+
let t = (Number.isFinite(e) && e > 0 ? Math.min(e, oo) : ao) / 2, n = no - t, r = no + t;
|
|
4525
4533
|
return [
|
|
4526
|
-
`M${n} ${
|
|
4527
|
-
`M${
|
|
4528
|
-
`M${n} ${
|
|
4534
|
+
`M${n} ${ro}H${r}`,
|
|
4535
|
+
`M${no} ${ro}V${io}`,
|
|
4536
|
+
`M${n} ${io}H${r}`
|
|
4529
4537
|
].join("");
|
|
4530
4538
|
}
|
|
4531
4539
|
//#endregion
|
|
4532
4540
|
//#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
|
|
4533
|
-
var
|
|
4541
|
+
var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
4534
4542
|
"data-series-id",
|
|
4535
4543
|
"data-series-name",
|
|
4536
4544
|
"data-y-axis-index",
|
|
@@ -4539,11 +4547,11 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4539
4547
|
"d",
|
|
4540
4548
|
"stroke",
|
|
4541
4549
|
"stroke-dasharray"
|
|
4542
|
-
],
|
|
4550
|
+
], _o = ["data-series-id"], vo = [
|
|
4543
4551
|
"d",
|
|
4544
4552
|
"stroke",
|
|
4545
4553
|
"stroke-width"
|
|
4546
|
-
],
|
|
4554
|
+
], yo = ["data-series-id", "data-point-type"], bo = ["d", "fill"], xo = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4547
4555
|
__name: "WaveformSeriesLayer",
|
|
4548
4556
|
props: {
|
|
4549
4557
|
track: {},
|
|
@@ -4551,7 +4559,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4551
4559
|
},
|
|
4552
4560
|
setup(n) {
|
|
4553
4561
|
let a = n, o = t(() => a.track.seriesPaths.map((e) => {
|
|
4554
|
-
let t =
|
|
4562
|
+
let t = lo(e.series.pointType, e.pointRenderPoints.map((t) => ({
|
|
4555
4563
|
x: a.track.xScale(t.x),
|
|
4556
4564
|
y: e.yScale(t.y)
|
|
4557
4565
|
}))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
|
|
@@ -4588,8 +4596,8 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4588
4596
|
"data-line-style": e.series.lineStyle,
|
|
4589
4597
|
d: e.path,
|
|
4590
4598
|
stroke: e.series.color,
|
|
4591
|
-
"stroke-dasharray": E(
|
|
4592
|
-
}, null, 8,
|
|
4599
|
+
"stroke-dasharray": E(fo)(e.series.lineStyle)
|
|
4600
|
+
}, null, 8, go)) : r("", !0),
|
|
4593
4601
|
e.series.errorBar.visible ? (v(), i("g", {
|
|
4594
4602
|
key: 1,
|
|
4595
4603
|
class: "waveform-track__error-bars waveform-chart__error-bars",
|
|
@@ -4600,7 +4608,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4600
4608
|
d: e.errorBarPath,
|
|
4601
4609
|
stroke: e.series.errorBar.color || e.series.color,
|
|
4602
4610
|
"stroke-width": e.series.errorBar.width
|
|
4603
|
-
}, null, 8,
|
|
4611
|
+
}, null, 8, vo)) : r("", !0)], 8, _o)) : r("", !0),
|
|
4604
4612
|
e.series.pointType === "none" ? r("", !0) : (v(), i("g", {
|
|
4605
4613
|
key: 2,
|
|
4606
4614
|
class: "waveform-track__points waveform-chart__points",
|
|
@@ -4611,28 +4619,28 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4611
4619
|
class: "waveform-track__point waveform-chart__point",
|
|
4612
4620
|
d: e.pointPath,
|
|
4613
4621
|
fill: e.series.color
|
|
4614
|
-
}, null, 8,
|
|
4615
|
-
], 8,
|
|
4622
|
+
}, null, 8, bo)) : r("", !0)], 8, yo))
|
|
4623
|
+
], 8, ho))), 128))], 8, mo)) : r("", !0);
|
|
4616
4624
|
}
|
|
4617
|
-
}), [["__scopeId", "data-v-42a3fd47"]]),
|
|
4625
|
+
}), [["__scopeId", "data-v-42a3fd47"]]), So = ["transform"], Co = ["transform"], wo = {
|
|
4618
4626
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
|
|
4619
4627
|
x: "0",
|
|
4620
4628
|
y: "7",
|
|
4621
4629
|
dy: "0.71em",
|
|
4622
4630
|
"text-anchor": "start"
|
|
4623
|
-
},
|
|
4631
|
+
}, To = ["x"], Eo = [
|
|
4624
4632
|
"data-y-axis-index",
|
|
4625
4633
|
"data-y-axis-side",
|
|
4626
4634
|
"transform"
|
|
4627
|
-
],
|
|
4635
|
+
], Do = { key: 2 }, Oo = [
|
|
4628
4636
|
"x",
|
|
4629
4637
|
"y",
|
|
4630
4638
|
"width"
|
|
4631
|
-
],
|
|
4639
|
+
], ko = ["fill", "transform"], Ao = ["data-y-axis-title-index"], jo = [
|
|
4632
4640
|
"x",
|
|
4633
4641
|
"y",
|
|
4634
4642
|
"width"
|
|
4635
|
-
],
|
|
4643
|
+
], Mo = ["fill", "transform"], No = /* @__PURE__ */ l({
|
|
4636
4644
|
__name: "WaveformTrackAxes",
|
|
4637
4645
|
props: {
|
|
4638
4646
|
track: {},
|
|
@@ -4692,7 +4700,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4692
4700
|
ref: o,
|
|
4693
4701
|
class: p(["waveform-track__axis waveform-track__axis--x waveform-chart__axis waveform-chart__axis--x", { "waveform-track__axis--line-hidden": t.axes?.x?.lineVisible === !1 }]),
|
|
4694
4702
|
transform: `translate(0, ${t.track.height})`
|
|
4695
|
-
}, null, 10,
|
|
4703
|
+
}, null, 10, So)) : r("", !0),
|
|
4696
4704
|
t.track.showXAxis ? (v(), i("g", {
|
|
4697
4705
|
key: 1,
|
|
4698
4706
|
class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
|
|
@@ -4700,13 +4708,13 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4700
4708
|
"font-family": "sans-serif",
|
|
4701
4709
|
"font-size": "10",
|
|
4702
4710
|
"aria-hidden": "true"
|
|
4703
|
-
}, [a("text",
|
|
4711
|
+
}, [a("text", wo, w(t.track.endpointLabels.start), 1), a("text", {
|
|
4704
4712
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
|
|
4705
4713
|
x: t.track.width ?? t.innerWidth,
|
|
4706
4714
|
y: "7",
|
|
4707
4715
|
dy: "0.71em",
|
|
4708
4716
|
"text-anchor": "end"
|
|
4709
|
-
}, w(t.track.endpointLabels.end), 9,
|
|
4717
|
+
}, w(t.track.endpointLabels.end), 9, To)], 8, Co)) : r("", !0),
|
|
4710
4718
|
(v(!0), i(e, null, x(t.track.isEmpty ? [] : t.track.yAxes, (e) => (v(), i("g", {
|
|
4711
4719
|
key: `y-axis-${t.track.index}-${e.index}`,
|
|
4712
4720
|
ref_for: !0,
|
|
@@ -4715,21 +4723,21 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4715
4723
|
"data-y-axis-index": e.index,
|
|
4716
4724
|
"data-y-axis-side": e.side,
|
|
4717
4725
|
transform: `translate(${e.x}, 0)`
|
|
4718
|
-
}, null, 10,
|
|
4719
|
-
!t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && t.track.series && c(t.track.series) && d(t.track.height, t.track.index) ? (v(), i("g",
|
|
4726
|
+
}, null, 10, Eo))), 128)),
|
|
4727
|
+
!t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && t.track.series && c(t.track.series) && d(t.track.height, t.track.index) ? (v(), i("g", Do, [a("rect", {
|
|
4720
4728
|
class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
|
|
4721
4729
|
x: t.track.yAxisLabelX - E(12) / 2,
|
|
4722
4730
|
y: t.track.height / 2 - 40,
|
|
4723
4731
|
width: E(12),
|
|
4724
4732
|
height: "80",
|
|
4725
4733
|
rx: "2"
|
|
4726
|
-
}, null, 8,
|
|
4734
|
+
}, null, 8, Oo), a("text", {
|
|
4727
4735
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4728
4736
|
fill: t.track.series?.color,
|
|
4729
4737
|
transform: `translate(${t.track.yAxisLabelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4730
4738
|
"text-anchor": "middle",
|
|
4731
4739
|
"dominant-baseline": "central"
|
|
4732
|
-
}, w(t.track.series ? c(t.track.series) : ""), 9,
|
|
4740
|
+
}, w(t.track.series ? c(t.track.series) : ""), 9, ko)])) : r("", !0),
|
|
4733
4741
|
(v(!0), i(e, null, x(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (v(), i("g", {
|
|
4734
4742
|
key: `y-axis-title-${t.track.index}-${e.index}`,
|
|
4735
4743
|
class: "waveform-track__multi-axis-title",
|
|
@@ -4741,40 +4749,40 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4741
4749
|
width: E(12),
|
|
4742
4750
|
height: "80",
|
|
4743
4751
|
rx: "2"
|
|
4744
|
-
}, null, 8,
|
|
4752
|
+
}, null, 8, jo), a("text", {
|
|
4745
4753
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4746
4754
|
fill: e.seriesList[0].color,
|
|
4747
4755
|
transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4748
4756
|
"text-anchor": "middle",
|
|
4749
4757
|
"dominant-baseline": "central"
|
|
4750
|
-
}, w(c(e.seriesList[0])), 9,
|
|
4758
|
+
}, w(c(e.seriesList[0])), 9, Mo)], 8, Ao))), 128))
|
|
4751
4759
|
], 64));
|
|
4752
4760
|
}
|
|
4753
|
-
}),
|
|
4761
|
+
}), Po = [
|
|
4754
4762
|
"width",
|
|
4755
4763
|
"height",
|
|
4756
4764
|
"fill"
|
|
4757
|
-
],
|
|
4765
|
+
], Fo = ["clip-path"], Io = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Lo = [
|
|
4758
4766
|
"stroke",
|
|
4759
4767
|
"x1",
|
|
4760
4768
|
"x2",
|
|
4761
4769
|
"y2"
|
|
4762
|
-
],
|
|
4770
|
+
], Ro = [
|
|
4763
4771
|
"stroke",
|
|
4764
4772
|
"x2",
|
|
4765
4773
|
"y1",
|
|
4766
4774
|
"y2"
|
|
4767
|
-
],
|
|
4775
|
+
], zo = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Bo = [
|
|
4768
4776
|
"stroke",
|
|
4769
4777
|
"x1",
|
|
4770
4778
|
"x2",
|
|
4771
4779
|
"y2"
|
|
4772
|
-
],
|
|
4780
|
+
], Vo = [
|
|
4773
4781
|
"stroke",
|
|
4774
4782
|
"x2",
|
|
4775
4783
|
"y1",
|
|
4776
4784
|
"y2"
|
|
4777
|
-
],
|
|
4785
|
+
], Ho = ["clip-path"], Uo = [
|
|
4778
4786
|
"data-y-axis-index",
|
|
4779
4787
|
"x2",
|
|
4780
4788
|
"y1",
|
|
@@ -4782,7 +4790,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4782
4790
|
"stroke",
|
|
4783
4791
|
"stroke-width",
|
|
4784
4792
|
"stroke-dasharray"
|
|
4785
|
-
],
|
|
4793
|
+
], Wo = ["x", "y"], Go = /* @__PURE__ */ l({
|
|
4786
4794
|
__name: "WaveformTrackBackdrop",
|
|
4787
4795
|
props: {
|
|
4788
4796
|
track: {},
|
|
@@ -4807,12 +4815,12 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4807
4815
|
height: t.track.height,
|
|
4808
4816
|
fill: t.frameStyle.backgroundColor,
|
|
4809
4817
|
"aria-hidden": "true"
|
|
4810
|
-
}, null, 8,
|
|
4818
|
+
}, null, 8, Po)) : r("", !0),
|
|
4811
4819
|
!t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (v(), i("g", {
|
|
4812
4820
|
key: 1,
|
|
4813
4821
|
"clip-path": `url(#${t.clipPathId}-${t.track.index})`,
|
|
4814
4822
|
"aria-hidden": "true"
|
|
4815
|
-
}, [a("g",
|
|
4823
|
+
}, [a("g", Io, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
|
|
4816
4824
|
key: `x-minor-${t.track.index}-${e}`,
|
|
4817
4825
|
"data-grid-direction": "vertical",
|
|
4818
4826
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -4820,7 +4828,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4820
4828
|
x2: t.track.xScale(e),
|
|
4821
4829
|
y1: "0",
|
|
4822
4830
|
y2: t.track.height
|
|
4823
|
-
}, null, 8,
|
|
4831
|
+
}, null, 8, Lo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMinorTicks, (e) => (v(), i("line", {
|
|
4824
4832
|
key: `y-minor-${t.track.index}-${e}`,
|
|
4825
4833
|
"data-grid-direction": "horizontal",
|
|
4826
4834
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -4828,7 +4836,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4828
4836
|
x2: t.track.width ?? t.innerWidth,
|
|
4829
4837
|
y1: t.track.yScale(e),
|
|
4830
4838
|
y2: t.track.yScale(e)
|
|
4831
|
-
}, null, 8,
|
|
4839
|
+
}, null, 8, Ro))), 128)) : r("", !0)]), a("g", zo, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMajorTicks, (e) => (v(), i("line", {
|
|
4832
4840
|
key: `x-major-${t.track.index}-${e}`,
|
|
4833
4841
|
"data-grid-direction": "vertical",
|
|
4834
4842
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -4836,7 +4844,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4836
4844
|
x2: t.track.xScale(e),
|
|
4837
4845
|
y1: "0",
|
|
4838
4846
|
y2: t.track.height
|
|
4839
|
-
}, null, 8,
|
|
4847
|
+
}, null, 8, Bo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMajorTicks, (e) => (v(), i("line", {
|
|
4840
4848
|
key: `y-major-${t.track.index}-${e}`,
|
|
4841
4849
|
"data-grid-direction": "horizontal",
|
|
4842
4850
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -4844,7 +4852,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4844
4852
|
x2: t.track.width ?? t.innerWidth,
|
|
4845
4853
|
y1: t.track.yScale(e),
|
|
4846
4854
|
y2: t.track.yScale(e)
|
|
4847
|
-
}, null, 8,
|
|
4855
|
+
}, null, 8, Vo))), 128)) : r("", !0)])], 8, Fo)) : r("", !0),
|
|
4848
4856
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.zeroLine.visible && !t.cleanView ? (v(), i("g", {
|
|
4849
4857
|
key: 2,
|
|
4850
4858
|
class: "waveform-track__zero-lines waveform-chart__zero-lines",
|
|
@@ -4861,7 +4869,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4861
4869
|
stroke: t.zeroLine.color,
|
|
4862
4870
|
"stroke-width": t.zeroLine.width,
|
|
4863
4871
|
"stroke-dasharray": t.zeroLine.dash || void 0
|
|
4864
|
-
}, null, 8,
|
|
4872
|
+
}, null, 8, Uo))], 64))), 128))], 8, Ho)) : r("", !0),
|
|
4865
4873
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (v(), i("text", {
|
|
4866
4874
|
key: 3,
|
|
4867
4875
|
class: "waveform-track__watermark waveform-chart__watermark",
|
|
@@ -4871,10 +4879,10 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4871
4879
|
"text-anchor": "middle",
|
|
4872
4880
|
"dominant-baseline": "central",
|
|
4873
4881
|
"aria-hidden": "true"
|
|
4874
|
-
}, w(t.frameNumber), 13,
|
|
4882
|
+
}, w(t.frameNumber), 13, Wo)) : r("", !0)
|
|
4875
4883
|
], 64));
|
|
4876
4884
|
}
|
|
4877
|
-
}),
|
|
4885
|
+
}), Ko = [
|
|
4878
4886
|
"data-track-index",
|
|
4879
4887
|
"data-track-id",
|
|
4880
4888
|
"data-track-empty",
|
|
@@ -4884,19 +4892,19 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4884
4892
|
"data-track-top",
|
|
4885
4893
|
"data-track-height",
|
|
4886
4894
|
"transform"
|
|
4887
|
-
],
|
|
4895
|
+
], qo = [
|
|
4888
4896
|
"width",
|
|
4889
4897
|
"height",
|
|
4890
4898
|
"stroke",
|
|
4891
4899
|
"stroke-width",
|
|
4892
4900
|
"stroke-dasharray",
|
|
4893
4901
|
"stroke-linecap"
|
|
4894
|
-
],
|
|
4902
|
+
], Jo = [
|
|
4895
4903
|
"data-interactive",
|
|
4896
4904
|
"data-independent-overlay-index",
|
|
4897
4905
|
"width",
|
|
4898
4906
|
"height"
|
|
4899
|
-
],
|
|
4907
|
+
], Yo = ["x", "y"], Xo = /* @__PURE__ */ l({
|
|
4900
4908
|
__name: "WaveformTrack",
|
|
4901
4909
|
props: {
|
|
4902
4910
|
track: {},
|
|
@@ -4956,7 +4964,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4956
4964
|
"data-track-height": e.track.height,
|
|
4957
4965
|
transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
|
|
4958
4966
|
}, [
|
|
4959
|
-
s(
|
|
4967
|
+
s(Go, {
|
|
4960
4968
|
track: e.track,
|
|
4961
4969
|
"clip-path-id": e.clipPathId,
|
|
4962
4970
|
"inner-width": e.innerWidth,
|
|
@@ -4973,7 +4981,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4973
4981
|
"frame-style",
|
|
4974
4982
|
"zero-line"
|
|
4975
4983
|
]),
|
|
4976
|
-
s(
|
|
4984
|
+
s(No, {
|
|
4977
4985
|
track: e.track,
|
|
4978
4986
|
"inner-width": e.innerWidth,
|
|
4979
4987
|
"clean-view": e.cleanView,
|
|
@@ -4999,8 +5007,8 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4999
5007
|
"stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
|
|
5000
5008
|
"stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
|
|
5001
5009
|
"aria-hidden": "true"
|
|
5002
|
-
}, null, 8,
|
|
5003
|
-
s(
|
|
5010
|
+
}, null, 8, qo)),
|
|
5011
|
+
s(xo, {
|
|
5004
5012
|
track: e.track,
|
|
5005
5013
|
"clip-path-id": e.clipPathId
|
|
5006
5014
|
}, null, 8, ["track", "clip-path-id"]),
|
|
@@ -5022,7 +5030,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5022
5030
|
onPointerleave: n[4] ||= (e) => o("pointer-leave"),
|
|
5023
5031
|
onClick: n[5] ||= (e) => o("click", e),
|
|
5024
5032
|
onContextmenu: n[6] ||= (e) => o("contextmenu", e)
|
|
5025
|
-
}, null, 42,
|
|
5033
|
+
}, null, 42, Jo)) : r("", !0),
|
|
5026
5034
|
!e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (v(), i("text", {
|
|
5027
5035
|
key: 2,
|
|
5028
5036
|
class: "waveform-track__no-visible-series",
|
|
@@ -5030,33 +5038,33 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5030
5038
|
y: e.track.height / 2,
|
|
5031
5039
|
"text-anchor": "middle",
|
|
5032
5040
|
"dominant-baseline": "central"
|
|
5033
|
-
}, " 暂无可见曲线 ", 8,
|
|
5034
|
-
], 10,
|
|
5041
|
+
}, " 暂无可见曲线 ", 8, Yo)) : r("", !0)
|
|
5042
|
+
], 10, Ko));
|
|
5035
5043
|
}
|
|
5036
|
-
}),
|
|
5044
|
+
}), Zo = [
|
|
5037
5045
|
"width",
|
|
5038
5046
|
"height",
|
|
5039
5047
|
"data-position",
|
|
5040
5048
|
"data-orientation"
|
|
5041
|
-
],
|
|
5049
|
+
], Qo = [
|
|
5042
5050
|
"disabled",
|
|
5043
5051
|
"aria-pressed",
|
|
5044
5052
|
"aria-label",
|
|
5045
5053
|
"onClick"
|
|
5046
|
-
],
|
|
5054
|
+
], $o = [
|
|
5047
5055
|
"data-line-type",
|
|
5048
5056
|
"data-line-style",
|
|
5049
5057
|
"data-point-type",
|
|
5050
5058
|
"data-error-bar-visible"
|
|
5051
|
-
],
|
|
5059
|
+
], es = [
|
|
5052
5060
|
"d",
|
|
5053
5061
|
"stroke",
|
|
5054
5062
|
"stroke-dasharray"
|
|
5055
|
-
],
|
|
5063
|
+
], ts = [
|
|
5056
5064
|
"d",
|
|
5057
5065
|
"stroke",
|
|
5058
5066
|
"stroke-width"
|
|
5059
|
-
],
|
|
5067
|
+
], ns = ["d", "fill"], rs = ["title"], is = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
5060
5068
|
__name: "WaveformLegend",
|
|
5061
5069
|
props: {
|
|
5062
5070
|
series: {},
|
|
@@ -5114,45 +5122,45 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5114
5122
|
"data-point-type": e.pointType,
|
|
5115
5123
|
"data-error-bar-visible": e.errorBar.visible || void 0
|
|
5116
5124
|
}, [
|
|
5117
|
-
E(
|
|
5125
|
+
E(uo)(e.lineType) ? (v(), i("path", {
|
|
5118
5126
|
key: 0,
|
|
5119
5127
|
class: "waveform-legend__line",
|
|
5120
|
-
d: E(
|
|
5128
|
+
d: E(uo)(e.lineType) ?? void 0,
|
|
5121
5129
|
stroke: e.color,
|
|
5122
|
-
"stroke-dasharray": E(
|
|
5130
|
+
"stroke-dasharray": E(fo)(e.lineStyle),
|
|
5123
5131
|
"stroke-width": "1.5",
|
|
5124
5132
|
fill: "none"
|
|
5125
|
-
}, null, 8,
|
|
5133
|
+
}, null, 8, es)) : r("", !0),
|
|
5126
5134
|
e.errorBar.visible ? (v(), i("path", {
|
|
5127
5135
|
key: 1,
|
|
5128
5136
|
class: "waveform-legend__error-bar",
|
|
5129
|
-
d: E(
|
|
5137
|
+
d: E(po)(e.errorBar.capWidth),
|
|
5130
5138
|
stroke: e.errorBar.color || e.color,
|
|
5131
5139
|
"stroke-width": e.errorBar.width,
|
|
5132
5140
|
"stroke-linecap": "butt",
|
|
5133
5141
|
fill: "none"
|
|
5134
|
-
}, null, 8,
|
|
5142
|
+
}, null, 8, ts)) : r("", !0),
|
|
5135
5143
|
e.pointType === "none" ? r("", !0) : (v(), i("path", {
|
|
5136
5144
|
key: 2,
|
|
5137
5145
|
class: "waveform-legend__point",
|
|
5138
|
-
d: E(
|
|
5146
|
+
d: E(co)(e.pointType, 30) ?? void 0,
|
|
5139
5147
|
fill: e.color,
|
|
5140
5148
|
transform: "translate(13 8)"
|
|
5141
|
-
}, null, 8,
|
|
5142
|
-
], 8,
|
|
5149
|
+
}, null, 8, ns))
|
|
5150
|
+
], 8, $o)), a("span", {
|
|
5143
5151
|
class: "waveform-legend__label",
|
|
5144
5152
|
title: e.name
|
|
5145
|
-
}, w(e.name), 9,
|
|
5153
|
+
}, w(e.name), 9, rs)], 10, Qo))), 128))], 6)], 2)], 8, Zo));
|
|
5146
5154
|
}
|
|
5147
|
-
}), [["__scopeId", "data-v-2ae12e71"]]),
|
|
5155
|
+
}), [["__scopeId", "data-v-2ae12e71"]]), as = {
|
|
5148
5156
|
class: "waveform-chart__hover-layer",
|
|
5149
5157
|
"pointer-events": "none",
|
|
5150
5158
|
"aria-hidden": "true"
|
|
5151
|
-
},
|
|
5159
|
+
}, os = ["clip-path", "transform"], ss = [
|
|
5152
5160
|
"x1",
|
|
5153
5161
|
"x2",
|
|
5154
5162
|
"y2"
|
|
5155
|
-
],
|
|
5163
|
+
], cs = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
5156
5164
|
__name: "WaveformHoverLayer",
|
|
5157
5165
|
props: {
|
|
5158
5166
|
state: {},
|
|
@@ -5165,7 +5173,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5165
5173
|
track: e,
|
|
5166
5174
|
x: e.xScale(r.state.queryX)
|
|
5167
5175
|
}] : []));
|
|
5168
|
-
return (t, r) => (v(), i("g",
|
|
5176
|
+
return (t, r) => (v(), i("g", as, [(v(!0), i(e, null, x(o.value, (e) => (v(), i("g", {
|
|
5169
5177
|
key: e.track.index,
|
|
5170
5178
|
class: "waveform-track__crosshair waveform-chart__crosshair",
|
|
5171
5179
|
"clip-path": `url(#${n.clipPathId}-${e.track.index})`,
|
|
@@ -5175,9 +5183,9 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5175
5183
|
x2: e.x,
|
|
5176
5184
|
y1: "0",
|
|
5177
5185
|
y2: e.track.height
|
|
5178
|
-
}, null, 8,
|
|
5186
|
+
}, null, 8, ss)], 8, os))), 128))]));
|
|
5179
5187
|
}
|
|
5180
|
-
}), [["__scopeId", "data-v-044318c2"]]),
|
|
5188
|
+
}), [["__scopeId", "data-v-044318c2"]]), ls = [
|
|
5181
5189
|
"data-display-mode",
|
|
5182
5190
|
"data-interaction-mode",
|
|
5183
5191
|
"data-presentation-mode",
|
|
@@ -5186,31 +5194,31 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5186
5194
|
"data-plot-margin-top",
|
|
5187
5195
|
"data-plot-margin-bottom",
|
|
5188
5196
|
"data-title-area-height"
|
|
5189
|
-
],
|
|
5197
|
+
], us = [
|
|
5190
5198
|
"role",
|
|
5191
5199
|
"aria-level",
|
|
5192
5200
|
"aria-hidden"
|
|
5193
|
-
],
|
|
5201
|
+
], ds = ["data-title-scale", "data-title-wrapped"], fs = [
|
|
5194
5202
|
"width",
|
|
5195
5203
|
"height",
|
|
5196
5204
|
"aria-label"
|
|
5197
|
-
],
|
|
5205
|
+
], ps = ["id"], ms = ["width", "height"], hs = ["transform"], gs = {
|
|
5198
5206
|
key: 0,
|
|
5199
5207
|
class: "waveform-chart__grid-slots",
|
|
5200
5208
|
"aria-hidden": "true"
|
|
5201
|
-
},
|
|
5209
|
+
}, _s = ["transform"], vs = ["width", "height"], ys = ["width", "height"], bs = [
|
|
5202
5210
|
"x",
|
|
5203
5211
|
"y",
|
|
5204
5212
|
"width",
|
|
5205
5213
|
"height"
|
|
5206
|
-
],
|
|
5214
|
+
], xs = {
|
|
5207
5215
|
key: 4,
|
|
5208
5216
|
class: "waveform-chart__legend-layer"
|
|
5209
|
-
},
|
|
5217
|
+
}, Ss = [
|
|
5210
5218
|
"data-legend-track-index",
|
|
5211
5219
|
"data-legend-track-id",
|
|
5212
5220
|
"transform"
|
|
5213
|
-
],
|
|
5221
|
+
], Cs = ["x", "y"], ws = ["x", "y"], Ts = /* @__PURE__ */ l({
|
|
5214
5222
|
__name: "WaveformChartView",
|
|
5215
5223
|
props: { controller: {} },
|
|
5216
5224
|
setup(t) {
|
|
@@ -5263,7 +5271,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5263
5271
|
style: m(E(M)),
|
|
5264
5272
|
"data-title-scale": E(N).scale,
|
|
5265
5273
|
"data-title-wrapped": E(N).wrapped || void 0
|
|
5266
|
-
}, w(E(A)), 13,
|
|
5274
|
+
}, w(E(A)), 13, ds)], 4)) : r("", !0)], 12, us)) : r("", !0),
|
|
5267
5275
|
(v(), i("svg", {
|
|
5268
5276
|
ref: E(Xe),
|
|
5269
5277
|
class: "waveform-chart__svg",
|
|
@@ -5280,9 +5288,9 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5280
5288
|
}, [a("rect", {
|
|
5281
5289
|
width: e.width,
|
|
5282
5290
|
height: e.height
|
|
5283
|
-
}, null, 8,
|
|
5291
|
+
}, null, 8, ms)], 8, ps))), 128))]),
|
|
5284
5292
|
a("g", { transform: `translate(${E(g)}, ${E(B)})` }, [
|
|
5285
|
-
E(o) !== "compact" && !E(l) ? (v(), i("g",
|
|
5293
|
+
E(o) !== "compact" && !E(l) ? (v(), i("g", gs, [(v(!0), i(e, null, x(E(V), (e) => (v(), i("g", {
|
|
5286
5294
|
key: `grid-slot-${e.slotIndex}`,
|
|
5287
5295
|
transform: `translate(${e.left}, ${e.top})`
|
|
5288
5296
|
}, [e.series ? r("", !0) : (v(), i("rect", {
|
|
@@ -5290,7 +5298,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5290
5298
|
class: "waveform-chart__grid-slot-placeholder",
|
|
5291
5299
|
width: e.width,
|
|
5292
5300
|
height: e.cellHeight
|
|
5293
|
-
}, null, 8,
|
|
5301
|
+
}, null, 8, vs))], 8, _s))), 128))])) : r("", !0),
|
|
5294
5302
|
E(o) !== "independent" && E(R).length && E(H) ? (v(), i("rect", {
|
|
5295
5303
|
key: 1,
|
|
5296
5304
|
ref: E(Qe),
|
|
@@ -5307,8 +5315,8 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5307
5315
|
onPointerleave: T[4] ||= (...e) => E(K) && E(K)(...e),
|
|
5308
5316
|
onClick: T[5] ||= (...e) => E(q) && E(q)(...e),
|
|
5309
5317
|
onContextmenu: T[6] ||= (...e) => E(ae) && E(ae)(...e)
|
|
5310
|
-
}, null, 42,
|
|
5311
|
-
(v(!0), i(e, null, x(E(R), (e) => (v(), n(E(
|
|
5318
|
+
}, null, 42, ys)) : r("", !0),
|
|
5319
|
+
(v(!0), i(e, null, x(E(R), (e) => (v(), n(E(Xo), {
|
|
5312
5320
|
key: `${e.index}-${e.id}`,
|
|
5313
5321
|
track: e,
|
|
5314
5322
|
"clip-path-id": E(z),
|
|
@@ -5354,7 +5362,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5354
5362
|
"onClick",
|
|
5355
5363
|
"onContextmenu"
|
|
5356
5364
|
]))), 128)),
|
|
5357
|
-
s(E(
|
|
5365
|
+
s(E(cs), {
|
|
5358
5366
|
state: E(pe),
|
|
5359
5367
|
tracks: E(R),
|
|
5360
5368
|
"clip-path-id": E(z),
|
|
@@ -5373,7 +5381,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5373
5381
|
width: E(he).width,
|
|
5374
5382
|
height: E(he).height,
|
|
5375
5383
|
"aria-hidden": "true"
|
|
5376
|
-
}, null, 8,
|
|
5384
|
+
}, null, 8, bs)) : r("", !0),
|
|
5377
5385
|
E(l) ? r("", !0) : (v(), n(E(tt), {
|
|
5378
5386
|
key: 3,
|
|
5379
5387
|
annotations: E(ge),
|
|
@@ -5392,13 +5400,13 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5392
5400
|
"onMove",
|
|
5393
5401
|
"onDragEnd"
|
|
5394
5402
|
])),
|
|
5395
|
-
E(l) ? r("", !0) : (v(), i("g",
|
|
5403
|
+
E(l) ? r("", !0) : (v(), i("g", xs, [(v(!0), i(e, null, x(E(R), (e) => (v(), i("g", {
|
|
5396
5404
|
key: `legend-${e.index}-${e.id}`,
|
|
5397
5405
|
class: "waveform-chart__legend-track",
|
|
5398
5406
|
"data-legend-track-index": e.index,
|
|
5399
5407
|
"data-legend-track-id": e.id,
|
|
5400
5408
|
transform: `translate(${e.left}, ${e.top})`
|
|
5401
|
-
}, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(
|
|
5409
|
+
}, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(is), {
|
|
5402
5410
|
key: 0,
|
|
5403
5411
|
series: e.legendSeries,
|
|
5404
5412
|
position: E(X)(e.id),
|
|
@@ -5419,23 +5427,23 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5419
5427
|
"width",
|
|
5420
5428
|
"height",
|
|
5421
5429
|
"onToggle"
|
|
5422
|
-
])) : r("", !0)], 8,
|
|
5423
|
-
], 8,
|
|
5430
|
+
])) : r("", !0)], 8, Ss))), 128))]))
|
|
5431
|
+
], 8, hs),
|
|
5424
5432
|
E(De) && !E(l) ? (v(), i("text", {
|
|
5425
5433
|
key: 0,
|
|
5426
5434
|
class: "waveform-chart__label waveform-chart__x-label",
|
|
5427
5435
|
x: E(g) + E(ee) / 2,
|
|
5428
5436
|
y: E(Oe),
|
|
5429
5437
|
"text-anchor": "middle"
|
|
5430
|
-
}, w(E(De)), 9,
|
|
5438
|
+
}, w(E(De)), 9, Cs)) : r("", !0),
|
|
5431
5439
|
E(ke) && !E(I) ? (v(), i("text", {
|
|
5432
5440
|
key: 1,
|
|
5433
5441
|
class: "waveform-chart__empty",
|
|
5434
5442
|
x: E(P) / 2,
|
|
5435
5443
|
y: E(F) / 2,
|
|
5436
5444
|
"text-anchor": "middle"
|
|
5437
|
-
}, " 暂无有效波形数据 ", 8,
|
|
5438
|
-
], 40,
|
|
5445
|
+
}, " 暂无有效波形数据 ", 8, ws)) : r("", !0)
|
|
5446
|
+
], 40, fs)),
|
|
5439
5447
|
E(Ae).showPagination && E(je) > 1 && !E(l) ? (v(), n(E(se), {
|
|
5440
5448
|
key: 1,
|
|
5441
5449
|
class: "waveform-chart__pagination",
|
|
@@ -5452,7 +5460,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5452
5460
|
"total",
|
|
5453
5461
|
"onChange"
|
|
5454
5462
|
])) : r("", !0),
|
|
5455
|
-
E(Le) && !E(l) && !E(u) ? (v(), n(
|
|
5463
|
+
E(Le) && !E(l) && !E(u) ? (v(), n(Ua, {
|
|
5456
5464
|
key: 2,
|
|
5457
5465
|
annotation: E(Le).annotation,
|
|
5458
5466
|
mode: E(Le).mode,
|
|
@@ -5494,7 +5502,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5494
5502
|
"onDelete",
|
|
5495
5503
|
"onClose"
|
|
5496
5504
|
])) : r("", !0),
|
|
5497
|
-
s(E(
|
|
5505
|
+
s(E(to), {
|
|
5498
5506
|
state: E(pe),
|
|
5499
5507
|
visible: E(me) && !E(u),
|
|
5500
5508
|
"time-unit": E(de),
|
|
@@ -5507,9 +5515,9 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5507
5515
|
"container-width",
|
|
5508
5516
|
"container-height"
|
|
5509
5517
|
])
|
|
5510
|
-
], 46,
|
|
5518
|
+
], 46, ls));
|
|
5511
5519
|
}
|
|
5512
|
-
}),
|
|
5520
|
+
}), Es = /* @__PURE__ */ l({
|
|
5513
5521
|
__name: "WaveformChart",
|
|
5514
5522
|
props: {
|
|
5515
5523
|
data: {},
|
|
@@ -5591,12 +5599,12 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5591
5599
|
"sampling-error"
|
|
5592
5600
|
],
|
|
5593
5601
|
setup(e, { expose: t, emit: r }) {
|
|
5594
|
-
let i =
|
|
5602
|
+
let i = wa(e, r);
|
|
5595
5603
|
return t({
|
|
5596
5604
|
resetViewport: i.resetViewport,
|
|
5597
5605
|
setViewportDomain: i.setViewportDomain
|
|
5598
|
-
}), (e, t) => (v(), n(
|
|
5606
|
+
}), (e, t) => (v(), n(Ts, { controller: E(i) }, null, 8, ["controller"]));
|
|
5599
5607
|
}
|
|
5600
5608
|
});
|
|
5601
5609
|
//#endregion
|
|
5602
|
-
export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS,
|
|
5610
|
+
export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS, Es as WaveformChart, gt as buildMinorTicks, mi as calculateWasmRange, It as clamp, kt as displayTime, hi as findWasmVisibleRange, Mt as formatAxisTime, jt as formatEndpointTime, Nt as formatTooltipTime, fi as initializeWasmSampling, sn as normalizeWaveformData, un as normalizeWaveformSeries, ht as paddedDomain, pt as parseWaveformAnnotations, Ft as resolveTrackGeometry, Tn as resolveWaveformRenderingOptions, pi as sampleWaveformWasm, Nn as selectRenderablePoints, ft as serializeWaveformAnnotations };
|