waveform-analysis 0.1.51 → 0.1.53
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 +13 -7
- package/dist/assets/{workerRuntime-Dt94jbqq.js → workerRuntime-BcYng9TR.js} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +557 -547
- package/dist/types/components/core/useWaveformChartController.d.ts +1 -0
- package/dist/types/components/core/waveformChartTypes.d.ts +1 -0
- package/dist/types/components/interaction/zoomConstraints.d.ts +1 -0
- 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/package.json +1 -1
- package/src/components/core/useWaveformChartLifecycle.ts +1 -0
- package/src/components/core/useWaveformRenderSampling.ts +8 -7
- package/src/components/core/waveformChartTypes.ts +1 -0
- package/src/components/interaction/useWaveformZoom.ts +1 -1
- package/src/components/interaction/zoomConstraints.ts +9 -4
- package/src/components/waveformChartCases/zoomPointConstraints.test.ts +63 -3
- 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 +52 -0
- package/src/core/workerSampling/repositorySupport.ts +4 -0
- package/src/types/chart.ts +2 -0
- package/src/views/WasmSamplingDemo.vue +17 -7
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 =
|
|
2066
|
-
return
|
|
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;
|
|
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 =
|
|
2432
|
-
return Math.max(Rt.MIN_SCALE, i > 0 ? r / i :
|
|
2433
|
-
}, R = (e, n, r, i) => Or(
|
|
2436
|
+
let i = Er(e, n, t);
|
|
2437
|
+
return Math.max(Rt.MIN_SCALE, i > 0 ? r / i : Infinity);
|
|
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
|
});
|
|
@@ -2535,6 +2540,7 @@ function Pr(e) {
|
|
|
2535
2540
|
z,
|
|
2536
2541
|
() => t.minZoomSpan,
|
|
2537
2542
|
() => t.minVisiblePoints,
|
|
2543
|
+
() => t.maxZoomScale,
|
|
2538
2544
|
() => t.initialXDomain,
|
|
2539
2545
|
() => t.initialXDomains,
|
|
2540
2546
|
() => t.xDomainStrategy,
|
|
@@ -2608,7 +2614,7 @@ function Pr(e) {
|
|
|
2608
2614
|
}
|
|
2609
2615
|
//#endregion
|
|
2610
2616
|
//#region src/components/core/useWaveformData.ts
|
|
2611
|
-
function
|
|
2617
|
+
function Ir(e) {
|
|
2612
2618
|
return ln(e).map(({ source: e, ...t }) => {
|
|
2613
2619
|
let n = e.metrics(t.errorBar.visible);
|
|
2614
2620
|
return {
|
|
@@ -2621,45 +2627,45 @@ function Fr(e) {
|
|
|
2621
2627
|
};
|
|
2622
2628
|
});
|
|
2623
2629
|
}
|
|
2624
|
-
function
|
|
2625
|
-
let r = C(
|
|
2630
|
+
function Lr(e, t, n) {
|
|
2631
|
+
let r = C(Ir(e()));
|
|
2626
2632
|
return O(e, (e) => {
|
|
2627
|
-
t(), r.value =
|
|
2633
|
+
t(), r.value = Ir(e), n();
|
|
2628
2634
|
}), r;
|
|
2629
2635
|
}
|
|
2630
2636
|
//#endregion
|
|
2631
2637
|
//#region wasm/pkg/waveform_sampling_wasm.js
|
|
2632
|
-
function
|
|
2633
|
-
let n =
|
|
2634
|
-
if (o[3]) throw
|
|
2635
|
-
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();
|
|
2636
2642
|
return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
|
|
2637
2643
|
}
|
|
2638
|
-
function Rr(e, t, n, r) {
|
|
2639
|
-
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);
|
|
2640
|
-
if (c[3]) throw Qr(c[2]);
|
|
2641
|
-
var l = Ur(c[0], c[1]).slice();
|
|
2642
|
-
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2643
|
-
}
|
|
2644
2644
|
function zr(e, t, n, r) {
|
|
2645
|
-
let i =
|
|
2646
|
-
if (c[3]) throw
|
|
2647
|
-
var l =
|
|
2648
|
-
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;
|
|
2649
2649
|
}
|
|
2650
2650
|
function Br(e, t, n, r) {
|
|
2651
|
-
let i =
|
|
2652
|
-
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]);
|
|
2653
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();
|
|
2654
2660
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2655
2661
|
}
|
|
2656
|
-
function
|
|
2662
|
+
function Hr() {
|
|
2657
2663
|
return {
|
|
2658
2664
|
__proto__: null,
|
|
2659
2665
|
"./waveform_sampling_wasm_bg.js": {
|
|
2660
2666
|
__proto__: null,
|
|
2661
2667
|
__wbindgen_cast_0000000000000001: function(e, t) {
|
|
2662
|
-
return
|
|
2668
|
+
return qr(e, t);
|
|
2663
2669
|
},
|
|
2664
2670
|
__wbindgen_init_externref_table: function() {
|
|
2665
2671
|
let e = $.__wbindgen_externrefs, t = e.grow(4);
|
|
@@ -2668,52 +2674,52 @@ function Vr() {
|
|
|
2668
2674
|
}
|
|
2669
2675
|
};
|
|
2670
2676
|
}
|
|
2671
|
-
function Hr(e, t) {
|
|
2672
|
-
return e >>>= 0, Gr().subarray(e / 8, e / 8 + t);
|
|
2673
|
-
}
|
|
2674
2677
|
function Ur(e, t) {
|
|
2675
|
-
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);
|
|
2676
2682
|
}
|
|
2677
|
-
var
|
|
2678
|
-
function
|
|
2679
|
-
return (
|
|
2683
|
+
var Gr = null;
|
|
2684
|
+
function Kr() {
|
|
2685
|
+
return (Gr === null || Gr.byteLength === 0) && (Gr = new Float64Array($.memory.buffer)), Gr;
|
|
2680
2686
|
}
|
|
2681
|
-
function
|
|
2682
|
-
return e >>>= 0,
|
|
2687
|
+
function qr(e, t) {
|
|
2688
|
+
return e >>>= 0, ri(e, t);
|
|
2683
2689
|
}
|
|
2684
|
-
var
|
|
2685
|
-
function
|
|
2686
|
-
return (
|
|
2690
|
+
var Jr = null;
|
|
2691
|
+
function Yr() {
|
|
2692
|
+
return (Jr === null || Jr.byteLength === 0) && (Jr = new Uint32Array($.memory.buffer)), Jr;
|
|
2687
2693
|
}
|
|
2688
|
-
var
|
|
2689
|
-
function
|
|
2690
|
-
return (
|
|
2694
|
+
var Xr = null;
|
|
2695
|
+
function Zr() {
|
|
2696
|
+
return (Xr === null || Xr.byteLength === 0) && (Xr = new Uint8Array($.memory.buffer)), Xr;
|
|
2691
2697
|
}
|
|
2692
|
-
function
|
|
2698
|
+
function Qr(e, t) {
|
|
2693
2699
|
let n = t(e.length * 8, 8) >>> 0;
|
|
2694
|
-
return
|
|
2700
|
+
return Kr().set(e, n / 8), ii = e.length, n;
|
|
2695
2701
|
}
|
|
2696
|
-
function
|
|
2702
|
+
function $r(e) {
|
|
2697
2703
|
let t = $.__wbindgen_externrefs.get(e);
|
|
2698
2704
|
return $.__externref_table_dealloc(e), t;
|
|
2699
2705
|
}
|
|
2700
|
-
var
|
|
2706
|
+
var ei = new TextDecoder("utf-8", {
|
|
2701
2707
|
ignoreBOM: !0,
|
|
2702
2708
|
fatal: !0
|
|
2703
2709
|
});
|
|
2704
|
-
|
|
2705
|
-
var
|
|
2706
|
-
function
|
|
2707
|
-
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", {
|
|
2708
2714
|
ignoreBOM: !0,
|
|
2709
2715
|
fatal: !0
|
|
2710
|
-
}),
|
|
2716
|
+
}), ei.decode(), ni = t), ei.decode(Zr().subarray(e, e + t));
|
|
2711
2717
|
}
|
|
2712
|
-
var
|
|
2713
|
-
function
|
|
2714
|
-
return $ = e.exports,
|
|
2718
|
+
var ii = 0, $;
|
|
2719
|
+
function ai(e, t) {
|
|
2720
|
+
return $ = e.exports, Gr = null, Jr = null, Xr = null, $.__wbindgen_start(), $;
|
|
2715
2721
|
}
|
|
2716
|
-
async function
|
|
2722
|
+
async function oi(e, t) {
|
|
2717
2723
|
if (typeof Response == "function" && e instanceof Response) {
|
|
2718
2724
|
if (typeof WebAssembly.instantiateStreaming == "function") try {
|
|
2719
2725
|
return await WebAssembly.instantiateStreaming(e, t);
|
|
@@ -2739,17 +2745,17 @@ async function ai(e, t) {
|
|
|
2739
2745
|
return !1;
|
|
2740
2746
|
}
|
|
2741
2747
|
}
|
|
2742
|
-
async function
|
|
2748
|
+
async function si(e) {
|
|
2743
2749
|
if ($ !== void 0) return $;
|
|
2744
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));
|
|
2745
|
-
let t =
|
|
2751
|
+
let t = Hr();
|
|
2746
2752
|
(typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
|
|
2747
|
-
let { instance: n, module: r } = await
|
|
2748
|
-
return
|
|
2753
|
+
let { instance: n, module: r } = await oi(await e, t);
|
|
2754
|
+
return ai(n, r);
|
|
2749
2755
|
}
|
|
2750
2756
|
//#endregion
|
|
2751
2757
|
//#region src/core/wasmSampling.ts
|
|
2752
|
-
var
|
|
2758
|
+
var ci = {
|
|
2753
2759
|
none: 0,
|
|
2754
2760
|
peak: 1,
|
|
2755
2761
|
lttb: 2,
|
|
@@ -2758,24 +2764,24 @@ var si = {
|
|
|
2758
2764
|
max: 5,
|
|
2759
2765
|
minmax: 6,
|
|
2760
2766
|
sum: 7
|
|
2761
|
-
},
|
|
2762
|
-
function
|
|
2767
|
+
}, li;
|
|
2768
|
+
function ui(e, t) {
|
|
2763
2769
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
2764
2770
|
}
|
|
2765
|
-
function
|
|
2771
|
+
function di(e) {
|
|
2766
2772
|
if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
|
|
2767
2773
|
}
|
|
2768
|
-
function
|
|
2769
|
-
return
|
|
2774
|
+
function fi(e) {
|
|
2775
|
+
return li ??= Promise.resolve(si(e)).then(() => void 0), li;
|
|
2770
2776
|
}
|
|
2771
|
-
async function
|
|
2772
|
-
|
|
2773
|
-
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];
|
|
2774
2780
|
if (e.strategy !== "average" && e.strategy !== "sum") return {
|
|
2775
2781
|
kind: "source-indexes",
|
|
2776
|
-
sourceIndexes:
|
|
2782
|
+
sourceIndexes: Vr(e.x, e.y, n, t)
|
|
2777
2783
|
};
|
|
2778
|
-
let r =
|
|
2784
|
+
let r = Br(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
|
|
2779
2785
|
for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
|
|
2780
2786
|
return {
|
|
2781
2787
|
kind: "aggregates",
|
|
@@ -2783,28 +2789,28 @@ async function fi(e) {
|
|
|
2783
2789
|
y: a
|
|
2784
2790
|
};
|
|
2785
2791
|
}
|
|
2786
|
-
async function
|
|
2792
|
+
async function mi(e, t) {
|
|
2787
2793
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2788
|
-
await
|
|
2789
|
-
let n =
|
|
2794
|
+
await fi();
|
|
2795
|
+
let n = Rr(e, t);
|
|
2790
2796
|
return n.length === 4 ? {
|
|
2791
2797
|
x: [n[0], n[1]],
|
|
2792
2798
|
y: [n[2], n[3]]
|
|
2793
2799
|
} : void 0;
|
|
2794
2800
|
}
|
|
2795
|
-
async function
|
|
2801
|
+
async function hi(e, t, n) {
|
|
2796
2802
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2797
|
-
await
|
|
2798
|
-
let r =
|
|
2803
|
+
await fi();
|
|
2804
|
+
let r = zr(e, t, n[0], n[1]);
|
|
2799
2805
|
return [r[0], r[1]];
|
|
2800
2806
|
}
|
|
2801
2807
|
//#endregion
|
|
2802
2808
|
//#region src/components/core/useWaveformLayout.ts
|
|
2803
|
-
function
|
|
2809
|
+
function gi(e) {
|
|
2804
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) => ({
|
|
2805
2811
|
...e,
|
|
2806
2812
|
color: e.color ?? (t === 0 ? n.lineColor : Vt[t % Vt.length])
|
|
2807
|
-
}))), g = t(() =>
|
|
2813
|
+
}))), g = t(() => zn(n.grid)), _ = t(() => {
|
|
2808
2814
|
let e = /* @__PURE__ */ new Map();
|
|
2809
2815
|
h.value.forEach((t) => {
|
|
2810
2816
|
let n = t.trackId || t.id, r = e.get(n);
|
|
@@ -2823,18 +2829,18 @@ function hi(e) {
|
|
|
2823
2829
|
yDomain: o.length ? ht(o) : [0, 1]
|
|
2824
2830
|
};
|
|
2825
2831
|
});
|
|
2826
|
-
}), 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(() => {
|
|
2827
2833
|
let e = b.value.filter((e) => e.series.length > 0);
|
|
2828
2834
|
return g.value.fillIncompleteLastRow && e.length > 0 ? e : b.value;
|
|
2829
2835
|
}), S = t(() => {
|
|
2830
|
-
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);
|
|
2831
2837
|
return {
|
|
2832
2838
|
tickClearance: r,
|
|
2833
2839
|
fullClearance: t + 7 + 0 + 12 + 4,
|
|
2834
2840
|
labelCenterX: i
|
|
2835
2841
|
};
|
|
2836
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) => {
|
|
2837
|
-
let r =
|
|
2843
|
+
let r = ur(t, n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber, n.axes?.y?.nice !== !1);
|
|
2838
2844
|
return {
|
|
2839
2845
|
left: Math.max(e.left, r.left),
|
|
2840
2846
|
right: Math.max(e.right, r.right)
|
|
@@ -2843,7 +2849,7 @@ function hi(e) {
|
|
|
2843
2849
|
left: 0,
|
|
2844
2850
|
right: 0
|
|
2845
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(() => {
|
|
2846
|
-
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;
|
|
2847
2853
|
return {
|
|
2848
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,
|
|
2849
2855
|
hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && C.value && !o
|
|
@@ -2855,14 +2861,14 @@ function hi(e) {
|
|
|
2855
2861
|
}), ht(e);
|
|
2856
2862
|
}), L = t(() => {
|
|
2857
2863
|
let e = n.initialXDomain;
|
|
2858
|
-
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);
|
|
2859
2865
|
}), R = (e) => {
|
|
2860
2866
|
let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
|
|
2861
|
-
return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ?
|
|
2862
|
-
}, 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) => ({
|
|
2863
2869
|
...e,
|
|
2864
2870
|
series: x.value[t]
|
|
2865
|
-
}))), V = t(() =>
|
|
2871
|
+
}))), V = t(() => Xn({
|
|
2866
2872
|
cells: B.value,
|
|
2867
2873
|
grid: g.value,
|
|
2868
2874
|
displayMode: n.displayMode,
|
|
@@ -2930,13 +2936,13 @@ function hi(e) {
|
|
|
2930
2936
|
}
|
|
2931
2937
|
};
|
|
2932
2938
|
}
|
|
2933
|
-
var
|
|
2934
|
-
function
|
|
2939
|
+
var _i = 1e-6;
|
|
2940
|
+
function vi(e) {
|
|
2935
2941
|
return Number.isFinite(e) ? Math.max(1, e) : 1;
|
|
2936
2942
|
}
|
|
2937
|
-
function
|
|
2938
|
-
let i =
|
|
2939
|
-
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)) {
|
|
2940
2946
|
let e = Math.max(1, Math.ceil(i / o)), t = o, n = a * e;
|
|
2941
2947
|
return {
|
|
2942
2948
|
textWidth: t,
|
|
@@ -2961,7 +2967,7 @@ function vi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r
|
|
|
2961
2967
|
}
|
|
2962
2968
|
//#endregion
|
|
2963
2969
|
//#region src/components/core/useWaveformPresentation.ts
|
|
2964
|
-
function
|
|
2970
|
+
function bi(e) {
|
|
2965
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(() => ({
|
|
2966
2972
|
width: l.value === void 0 ? "100%" : `${l.value}px`,
|
|
2967
2973
|
height: u.value === void 0 ? "100%" : `${u.value}px`
|
|
@@ -3006,7 +3012,7 @@ function yi(e) {
|
|
|
3006
3012
|
maxWidth: O.value ? "none" : `${j.value}px`,
|
|
3007
3013
|
whiteSpace: O.value ? "nowrap" : "normal",
|
|
3008
3014
|
overflowWrap: O.value ? "normal" : "anywhere"
|
|
3009
|
-
})), N = t(() =>
|
|
3015
|
+
})), N = t(() => yi({
|
|
3010
3016
|
naturalWidth: a.value || A.value,
|
|
3011
3017
|
naturalHeight: o.value || E.value * 1.2,
|
|
3012
3018
|
availableWidth: j.value,
|
|
@@ -3062,66 +3068,66 @@ function yi(e) {
|
|
|
3062
3068
|
}
|
|
3063
3069
|
//#endregion
|
|
3064
3070
|
//#region src/core/samplingReferenceValues.ts
|
|
3065
|
-
function
|
|
3071
|
+
function xi(e, t) {
|
|
3066
3072
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3067
3073
|
}
|
|
3068
|
-
function
|
|
3074
|
+
function Si(e, t, n, r) {
|
|
3069
3075
|
let i = r - n;
|
|
3070
3076
|
return {
|
|
3071
3077
|
start: n + Math.floor(e * i / t),
|
|
3072
3078
|
end: n + Math.floor((e + 1) * i / t)
|
|
3073
3079
|
};
|
|
3074
3080
|
}
|
|
3075
|
-
function
|
|
3081
|
+
function Ci(e, t) {
|
|
3076
3082
|
e[e.length - 1] !== t && e.push(t);
|
|
3077
3083
|
}
|
|
3078
|
-
function
|
|
3084
|
+
function wi(e, t, n) {
|
|
3079
3085
|
if (e <= t) return Array.from({ length: e }, (e, t) => t);
|
|
3080
3086
|
if (t === 1) return [0];
|
|
3081
3087
|
if (t === 2) return [0, e - 1];
|
|
3082
3088
|
let r = [0];
|
|
3083
|
-
return n().forEach((e) =>
|
|
3089
|
+
return n().forEach((e) => Ci(r, e)), Ci(r, e - 1), r;
|
|
3084
3090
|
}
|
|
3085
|
-
function
|
|
3091
|
+
function Ti(e, t, n) {
|
|
3086
3092
|
let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
|
|
3087
|
-
return
|
|
3093
|
+
return wi(e.length, t, () => {
|
|
3088
3094
|
if (!r) return [];
|
|
3089
3095
|
let t = [];
|
|
3090
3096
|
for (let i = 0; i < r; i += 1) {
|
|
3091
|
-
let a =
|
|
3097
|
+
let a = Si(i, r, 1, e.length - 1), o = a.start, s = a.start;
|
|
3092
3098
|
for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
|
|
3093
|
-
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));
|
|
3094
3100
|
}
|
|
3095
3101
|
return t;
|
|
3096
3102
|
});
|
|
3097
3103
|
}
|
|
3098
|
-
function
|
|
3104
|
+
function Ei(e, t) {
|
|
3099
3105
|
let n = Math.floor((t - 2) / 4);
|
|
3100
|
-
return
|
|
3106
|
+
return wi(e.length, t, () => {
|
|
3101
3107
|
if (!n) return [];
|
|
3102
3108
|
let t = [];
|
|
3103
3109
|
for (let r = 0; r < n; r += 1) {
|
|
3104
|
-
let i =
|
|
3110
|
+
let i = Si(r, n, 1, e.length - 1), a = i.start, o = i.start;
|
|
3105
3111
|
for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
|
|
3106
3112
|
[
|
|
3107
3113
|
i.start,
|
|
3108
3114
|
a,
|
|
3109
3115
|
o,
|
|
3110
3116
|
i.end - 1
|
|
3111
|
-
].sort((e, t) => e - t).forEach((e) =>
|
|
3117
|
+
].sort((e, t) => e - t).forEach((e) => Ci(t, e));
|
|
3112
3118
|
}
|
|
3113
3119
|
return t;
|
|
3114
3120
|
});
|
|
3115
3121
|
}
|
|
3116
|
-
function
|
|
3117
|
-
return
|
|
3122
|
+
function Di(e, t, n) {
|
|
3123
|
+
return wi(e.length, n, () => {
|
|
3118
3124
|
let r = (e.length - 2) / (n - 2), i = [], a = 0;
|
|
3119
3125
|
for (let o = 0; o < n - 2; o += 1) {
|
|
3120
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;
|
|
3121
3127
|
for (let n = s; n < c; n += 1) l += e[n], u += t[n];
|
|
3122
3128
|
let d = c - s;
|
|
3123
3129
|
d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
|
|
3124
|
-
let f =
|
|
3130
|
+
let f = Si(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
|
|
3125
3131
|
for (let n = f.start; n < f.end; n += 1) {
|
|
3126
3132
|
let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
|
|
3127
3133
|
r > m && (m = r, p = n);
|
|
@@ -3131,10 +3137,10 @@ function Ei(e, t, n) {
|
|
|
3131
3137
|
return i;
|
|
3132
3138
|
});
|
|
3133
3139
|
}
|
|
3134
|
-
function
|
|
3135
|
-
let i =
|
|
3140
|
+
function Oi(e, t, n, r) {
|
|
3141
|
+
let i = xi(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
|
|
3136
3142
|
for (let n = 0; n < i; n += 1) {
|
|
3137
|
-
let s =
|
|
3143
|
+
let s = Si(n, i, 0, e.length);
|
|
3138
3144
|
for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
|
|
3139
3145
|
let c = s.end - s.start;
|
|
3140
3146
|
a[n] /= c, r === "average" && (o[n] /= c);
|
|
@@ -3145,10 +3151,10 @@ function Di(e, t, n, r) {
|
|
|
3145
3151
|
y: o
|
|
3146
3152
|
};
|
|
3147
3153
|
}
|
|
3148
|
-
function
|
|
3154
|
+
function ki(e, t, n, r) {
|
|
3149
3155
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
3150
|
-
if (n === "average" || n === "sum") return
|
|
3151
|
-
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);
|
|
3152
3158
|
return {
|
|
3153
3159
|
kind: "source-indexes",
|
|
3154
3160
|
sourceIndexes: Uint32Array.from(a)
|
|
@@ -3156,41 +3162,41 @@ function Oi(e, t, n, r) {
|
|
|
3156
3162
|
}
|
|
3157
3163
|
//#endregion
|
|
3158
3164
|
//#region src/core/workerSampling/javascriptBackend.ts
|
|
3159
|
-
var
|
|
3165
|
+
var Ai = {
|
|
3160
3166
|
kind: "javascript",
|
|
3161
3167
|
sample(e) {
|
|
3162
|
-
return
|
|
3168
|
+
return ki(e.x, e.y, e.strategy, e.targetPointCount);
|
|
3163
3169
|
}
|
|
3164
|
-
},
|
|
3165
|
-
function
|
|
3170
|
+
}, ji = 8 * 1024 * 1024;
|
|
3171
|
+
function Mi(e, t) {
|
|
3166
3172
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3167
3173
|
}
|
|
3168
|
-
function
|
|
3174
|
+
function Ni(e, t, n, r) {
|
|
3169
3175
|
let i = r - n;
|
|
3170
3176
|
return {
|
|
3171
3177
|
start: n + Math.floor(e * i / t),
|
|
3172
3178
|
end: n + Math.floor((e + 1) * i / t)
|
|
3173
3179
|
};
|
|
3174
3180
|
}
|
|
3175
|
-
function
|
|
3181
|
+
function Pi(e, t) {
|
|
3176
3182
|
e[e.length - 1] !== t && e.push(t);
|
|
3177
3183
|
}
|
|
3178
|
-
function
|
|
3184
|
+
function Fi(e) {
|
|
3179
3185
|
return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
|
|
3180
3186
|
}
|
|
3181
|
-
function
|
|
3187
|
+
function Ii(e, t) {
|
|
3182
3188
|
let n = 1;
|
|
3183
3189
|
for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
|
|
3184
3190
|
return n;
|
|
3185
3191
|
}
|
|
3186
|
-
var
|
|
3192
|
+
var Li = class {
|
|
3187
3193
|
points;
|
|
3188
3194
|
extremaLayers = [];
|
|
3189
3195
|
sumLayers = [];
|
|
3190
3196
|
indexBytes = 0;
|
|
3191
3197
|
maxBytes;
|
|
3192
3198
|
constructor(e, t = {}) {
|
|
3193
|
-
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;
|
|
3194
3200
|
}
|
|
3195
3201
|
get byteLength() {
|
|
3196
3202
|
return this.indexBytes;
|
|
@@ -3199,7 +3205,7 @@ var Ii = class {
|
|
|
3199
3205
|
this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
|
|
3200
3206
|
}
|
|
3201
3207
|
sample(e, t, n, r) {
|
|
3202
|
-
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);
|
|
3203
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);
|
|
3204
3210
|
}
|
|
3205
3211
|
allIndexes(e, t) {
|
|
@@ -3219,24 +3225,24 @@ var Ii = class {
|
|
|
3219
3225
|
if (i === 0) return this.indexes([e, t - 1]);
|
|
3220
3226
|
let a = [e];
|
|
3221
3227
|
for (let n = 0; n < i; n += 1) {
|
|
3222
|
-
let o =
|
|
3228
|
+
let o = Ni(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
|
|
3223
3229
|
if (!s) return;
|
|
3224
|
-
if (r === "min")
|
|
3225
|
-
else if (r === "max")
|
|
3226
|
-
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));
|
|
3227
3233
|
else for (let e of [
|
|
3228
3234
|
o.start,
|
|
3229
3235
|
s.minimum,
|
|
3230
3236
|
s.maximum,
|
|
3231
3237
|
o.end - 1
|
|
3232
|
-
].sort((e, t) => e - t))
|
|
3238
|
+
].sort((e, t) => e - t)) Pi(a, e);
|
|
3233
3239
|
}
|
|
3234
|
-
return
|
|
3240
|
+
return Pi(a, t - 1), this.indexes(a);
|
|
3235
3241
|
}
|
|
3236
3242
|
aggregate(e, t, n, r) {
|
|
3237
3243
|
let i = new Float64Array(n), a = new Float64Array(n);
|
|
3238
3244
|
for (let o = 0; o < n; o += 1) {
|
|
3239
|
-
let s =
|
|
3245
|
+
let s = Ni(o, n, e, t), c = this.querySum(s.start, s.end);
|
|
3240
3246
|
if (!c || c.count === 0) return;
|
|
3241
3247
|
i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
|
|
3242
3248
|
}
|
|
@@ -3251,7 +3257,7 @@ var Ii = class {
|
|
|
3251
3257
|
if (!this.ensureExtrema(n)) return;
|
|
3252
3258
|
let r = e, i = e;
|
|
3253
3259
|
for (let n = e; n < t;) {
|
|
3254
|
-
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;
|
|
3255
3261
|
this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
|
|
3256
3262
|
}
|
|
3257
3263
|
return {
|
|
@@ -3264,7 +3270,7 @@ var Ii = class {
|
|
|
3264
3270
|
if (!this.ensureSum(n)) return;
|
|
3265
3271
|
let r = 0, i = 0, a = 0;
|
|
3266
3272
|
for (let n = e; n < t;) {
|
|
3267
|
-
let e =
|
|
3273
|
+
let e = Ii(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
|
|
3268
3274
|
if (c) r += c.x[s], i += c.y[s], a += c.count[s];
|
|
3269
3275
|
else {
|
|
3270
3276
|
let e = this.points[n];
|
|
@@ -3285,7 +3291,7 @@ var Ii = class {
|
|
|
3285
3291
|
minimumIndexes: new Uint32Array(e),
|
|
3286
3292
|
maximumIndexes: new Uint32Array(e)
|
|
3287
3293
|
};
|
|
3288
|
-
if (!this.reserve(
|
|
3294
|
+
if (!this.reserve(Fi(n))) return !1;
|
|
3289
3295
|
let r = this.extremaLayers[t - 1];
|
|
3290
3296
|
for (let t = 0; t < e; t += 1) {
|
|
3291
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;
|
|
@@ -3303,7 +3309,7 @@ var Ii = class {
|
|
|
3303
3309
|
y: new Float64Array(e),
|
|
3304
3310
|
count: new Uint32Array(e)
|
|
3305
3311
|
};
|
|
3306
|
-
if (!this.reserve(
|
|
3312
|
+
if (!this.reserve(Fi(n))) return !1;
|
|
3307
3313
|
let r = this.sumLayers[t - 1];
|
|
3308
3314
|
for (let t = 0; t < e; t += 1) {
|
|
3309
3315
|
let e = t * 2, i = e + 1;
|
|
@@ -3328,8 +3334,8 @@ var Ii = class {
|
|
|
3328
3334
|
let n = this.points[e], r = this.points[t];
|
|
3329
3335
|
return n.y > r.y || n.y === r.y && e < t;
|
|
3330
3336
|
}
|
|
3331
|
-
},
|
|
3332
|
-
function
|
|
3337
|
+
}, Ri = 1e3, zi = I((e) => e.x);
|
|
3338
|
+
function Bi(e) {
|
|
3333
3339
|
let t = [], n = !0, r = -Infinity;
|
|
3334
3340
|
for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
|
|
3335
3341
|
x: i.x,
|
|
@@ -3340,7 +3346,7 @@ function zi(e) {
|
|
|
3340
3346
|
}));
|
|
3341
3347
|
return n || t.sort((e, t) => e.x - t.x), t;
|
|
3342
3348
|
}
|
|
3343
|
-
function
|
|
3349
|
+
function Vi(e, t) {
|
|
3344
3350
|
let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
|
|
3345
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);
|
|
3346
3352
|
return {
|
|
@@ -3350,7 +3356,7 @@ function Bi(e, t) {
|
|
|
3350
3356
|
yDomain: e.length ? [i, a] : null
|
|
3351
3357
|
};
|
|
3352
3358
|
}
|
|
3353
|
-
function
|
|
3359
|
+
function Hi(e, t, n = e.length) {
|
|
3354
3360
|
let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
|
|
3355
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]);
|
|
3356
3362
|
return {
|
|
@@ -3360,38 +3366,39 @@ function Vi(e, t, n = e.length) {
|
|
|
3360
3366
|
yDomain: e.length ? [a, o] : null
|
|
3361
3367
|
};
|
|
3362
3368
|
}
|
|
3363
|
-
function
|
|
3369
|
+
function Ui(e, t) {
|
|
3364
3370
|
return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
|
|
3365
3371
|
}
|
|
3366
|
-
function
|
|
3372
|
+
function Wi(e) {
|
|
3367
3373
|
return e === "auto" ? "peak" : e;
|
|
3368
3374
|
}
|
|
3369
|
-
function
|
|
3375
|
+
function Gi(e) {
|
|
3376
|
+
if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
|
|
3370
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;
|
|
3371
3378
|
return Math.max(1, Math.floor(t * n));
|
|
3372
3379
|
}
|
|
3373
|
-
function
|
|
3380
|
+
function Ki(e, t) {
|
|
3374
3381
|
if (e.mode === "raw") return !0;
|
|
3375
3382
|
if (e.mode !== "auto") return !1;
|
|
3376
|
-
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;
|
|
3377
3384
|
if (!e.previousSelectedMode) return t <= n;
|
|
3378
3385
|
let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
|
|
3379
3386
|
return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
|
|
3380
3387
|
}
|
|
3381
|
-
function
|
|
3388
|
+
function qi(e, t) {
|
|
3382
3389
|
let n = e[0], r = e.at(-1);
|
|
3383
|
-
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;
|
|
3384
3391
|
}
|
|
3385
|
-
function
|
|
3392
|
+
function Ji(e) {
|
|
3386
3393
|
return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
|
|
3387
3394
|
}
|
|
3388
|
-
function
|
|
3395
|
+
function Yi(e, t) {
|
|
3389
3396
|
return e.kind === "aggregates" ? e : {
|
|
3390
3397
|
kind: "source-indexes",
|
|
3391
3398
|
sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
|
|
3392
3399
|
};
|
|
3393
3400
|
}
|
|
3394
|
-
function
|
|
3401
|
+
function Xi(e, t, n, r, i) {
|
|
3395
3402
|
return [
|
|
3396
3403
|
e.datasetId,
|
|
3397
3404
|
e.revision,
|
|
@@ -3400,6 +3407,7 @@ function Yi(e, t, n, r, i) {
|
|
|
3400
3407
|
e.plotWidth,
|
|
3401
3408
|
r,
|
|
3402
3409
|
e.maxPointsPerPixel,
|
|
3410
|
+
e.maxPointCount,
|
|
3403
3411
|
e.mode,
|
|
3404
3412
|
i,
|
|
3405
3413
|
n,
|
|
@@ -3410,14 +3418,14 @@ function Yi(e, t, n, r, i) {
|
|
|
3410
3418
|
e.errorBarMinSpacing ?? 0
|
|
3411
3419
|
].join("\0");
|
|
3412
3420
|
}
|
|
3413
|
-
function
|
|
3421
|
+
function Zi(e, t, n, r, i, a, o, s) {
|
|
3414
3422
|
return {
|
|
3415
3423
|
seriesId: e.seriesId,
|
|
3416
3424
|
datasetId: e.datasetId,
|
|
3417
3425
|
mode: e.mode,
|
|
3418
3426
|
selectedMode: i,
|
|
3419
3427
|
backend: r,
|
|
3420
|
-
strategy:
|
|
3428
|
+
strategy: Wi(e.strategy),
|
|
3421
3429
|
sourcePointCount: t,
|
|
3422
3430
|
visiblePointCount: n,
|
|
3423
3431
|
renderedPointCount: o,
|
|
@@ -3433,18 +3441,18 @@ function Xi(e, t, n, r, i, a, o, s) {
|
|
|
3433
3441
|
}
|
|
3434
3442
|
//#endregion
|
|
3435
3443
|
//#region src/core/workerSampling/repositoryDataset.ts
|
|
3436
|
-
function
|
|
3444
|
+
function Qi(e) {
|
|
3437
3445
|
return e?.y.length ?? 0;
|
|
3438
3446
|
}
|
|
3439
|
-
function
|
|
3447
|
+
function $i(e, t) {
|
|
3440
3448
|
return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
|
|
3441
3449
|
}
|
|
3442
|
-
function
|
|
3450
|
+
function ea(e, t) {
|
|
3443
3451
|
let n = (t, n) => {
|
|
3444
|
-
let r = 0, i =
|
|
3452
|
+
let r = 0, i = Qi(e);
|
|
3445
3453
|
for (; r < i;) {
|
|
3446
3454
|
let a = r + Math.floor((i - r) / 2);
|
|
3447
|
-
(n ?
|
|
3455
|
+
(n ? $i(e, a) <= t : $i(e, a) < t) ? r = a + 1 : i = a;
|
|
3448
3456
|
}
|
|
3449
3457
|
return r;
|
|
3450
3458
|
}, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
|
|
@@ -3453,13 +3461,13 @@ function $i(e, t) {
|
|
|
3453
3461
|
end: n(i, !0)
|
|
3454
3462
|
};
|
|
3455
3463
|
}
|
|
3456
|
-
function
|
|
3457
|
-
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));
|
|
3458
3466
|
}
|
|
3459
|
-
function
|
|
3467
|
+
function na(e) {
|
|
3460
3468
|
return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
|
|
3461
3469
|
}
|
|
3462
|
-
function
|
|
3470
|
+
function ra(e, t) {
|
|
3463
3471
|
let n = [], r = Math.min(e.length, t.length);
|
|
3464
3472
|
for (let i = 0; i < r; i += 1) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push(i);
|
|
3465
3473
|
return n.sort((t, n) => e[t] - e[n] || t - n), {
|
|
@@ -3467,14 +3475,14 @@ function na(e, t) {
|
|
|
3467
3475
|
y: Float64Array.from(n, (e) => t[e])
|
|
3468
3476
|
};
|
|
3469
3477
|
}
|
|
3470
|
-
function
|
|
3478
|
+
function ia(e, t, n, r) {
|
|
3471
3479
|
if (t?.kind === "typed") {
|
|
3472
|
-
let e =
|
|
3480
|
+
let e = ra(t.x, t.y);
|
|
3473
3481
|
return {
|
|
3474
3482
|
x: e.x,
|
|
3475
3483
|
y: e.y,
|
|
3476
3484
|
revision: n,
|
|
3477
|
-
metrics:
|
|
3485
|
+
metrics: Hi(e.x, e.y, Math.max(t.x.length, t.y.length))
|
|
3478
3486
|
};
|
|
3479
3487
|
}
|
|
3480
3488
|
if (t?.kind === "samples") {
|
|
@@ -3508,35 +3516,35 @@ function ra(e, t, n, r) {
|
|
|
3508
3516
|
}
|
|
3509
3517
|
};
|
|
3510
3518
|
}
|
|
3511
|
-
let i =
|
|
3519
|
+
let i = Bi(e ?? t?.points ?? []);
|
|
3512
3520
|
return {
|
|
3513
3521
|
x: Float64Array.from(i, (e) => e.x),
|
|
3514
3522
|
y: Float64Array.from(i, (e) => e.y),
|
|
3515
3523
|
points: i,
|
|
3516
3524
|
revision: n,
|
|
3517
|
-
metrics:
|
|
3518
|
-
index: new
|
|
3525
|
+
metrics: Vi(i, e?.length ?? t?.points.length ?? 0),
|
|
3526
|
+
index: new Li(i, { maxBytes: r })
|
|
3519
3527
|
};
|
|
3520
3528
|
}
|
|
3521
|
-
function
|
|
3522
|
-
!
|
|
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));
|
|
3523
3531
|
}
|
|
3524
|
-
function
|
|
3525
|
-
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);
|
|
3526
3534
|
}
|
|
3527
3535
|
//#endregion
|
|
3528
3536
|
//#region src/core/workerSampling/samplingCache.ts
|
|
3529
|
-
var
|
|
3530
|
-
function
|
|
3537
|
+
var sa = 96, ca = 16 * 1024 * 1024;
|
|
3538
|
+
function la(e) {
|
|
3531
3539
|
return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
|
|
3532
3540
|
}
|
|
3533
|
-
var
|
|
3541
|
+
var ua = class {
|
|
3534
3542
|
entries = /* @__PURE__ */ new Map();
|
|
3535
3543
|
bytes = 0;
|
|
3536
3544
|
maxEntries;
|
|
3537
3545
|
maxBytes;
|
|
3538
3546
|
constructor(e = {}) {
|
|
3539
|
-
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;
|
|
3540
3548
|
}
|
|
3541
3549
|
get metrics() {
|
|
3542
3550
|
return {
|
|
@@ -3551,7 +3559,7 @@ var la = class {
|
|
|
3551
3559
|
if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
|
|
3552
3560
|
}
|
|
3553
3561
|
set(e, t) {
|
|
3554
|
-
let n =
|
|
3562
|
+
let n = la(t);
|
|
3555
3563
|
if (n > this.maxBytes || this.maxEntries === 0) return;
|
|
3556
3564
|
let r = this.entries.get(e);
|
|
3557
3565
|
for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
|
|
@@ -3571,14 +3579,14 @@ var la = class {
|
|
|
3571
3579
|
clear() {
|
|
3572
3580
|
this.entries.clear(), this.bytes = 0;
|
|
3573
3581
|
}
|
|
3574
|
-
},
|
|
3582
|
+
}, da = class {
|
|
3575
3583
|
datasets = /* @__PURE__ */ new Map();
|
|
3576
3584
|
javascriptBackend;
|
|
3577
3585
|
cache;
|
|
3578
3586
|
indexMaxBytes;
|
|
3579
3587
|
wasmBackend;
|
|
3580
3588
|
constructor(e = {}) {
|
|
3581
|
-
this.javascriptBackend = e.javascriptBackend ??
|
|
3589
|
+
this.javascriptBackend = e.javascriptBackend ?? Ai, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new ua({
|
|
3582
3590
|
maxEntries: e.cacheMaxEntries,
|
|
3583
3591
|
maxBytes: e.cacheMaxBytes
|
|
3584
3592
|
});
|
|
@@ -3591,9 +3599,9 @@ var la = class {
|
|
|
3591
3599
|
};
|
|
3592
3600
|
}
|
|
3593
3601
|
setWasmBackend(e) {
|
|
3594
|
-
this.wasmBackend && this.wasmBackend !== e &&
|
|
3602
|
+
this.wasmBackend && this.wasmBackend !== e && na(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
|
|
3595
3603
|
e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
|
|
3596
|
-
})), this.wasmBackend = e,
|
|
3604
|
+
})), this.wasmBackend = e, na(e) && this.datasets.forEach((t) => aa(e, t, this.indexMaxBytes));
|
|
3597
3605
|
}
|
|
3598
3606
|
handle(e) {
|
|
3599
3607
|
switch (e.type) {
|
|
@@ -3609,15 +3617,15 @@ var la = class {
|
|
|
3609
3617
|
register(e, t, n, r) {
|
|
3610
3618
|
let i = this.datasets.get(e);
|
|
3611
3619
|
if (i) return this.datasetResponse(t, e, i, "stale-revision");
|
|
3612
|
-
let a =
|
|
3613
|
-
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");
|
|
3614
3622
|
}
|
|
3615
3623
|
replace(e, t, n, r, i) {
|
|
3616
|
-
let a = this.datasets.get(e), o =
|
|
3624
|
+
let a = this.datasets.get(e), o = Ui(a, n);
|
|
3617
3625
|
if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
|
|
3618
|
-
|
|
3619
|
-
let s =
|
|
3620
|
-
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");
|
|
3621
3629
|
}
|
|
3622
3630
|
sample(e) {
|
|
3623
3631
|
return {
|
|
@@ -3627,28 +3635,28 @@ var la = class {
|
|
|
3627
3635
|
};
|
|
3628
3636
|
}
|
|
3629
3637
|
sampleSeries(e, t) {
|
|
3630
|
-
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);
|
|
3631
3639
|
if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
|
|
3632
|
-
let a =
|
|
3633
|
-
if (
|
|
3640
|
+
let a = ea(r, t.xDomain), o = a.end - a.start;
|
|
3641
|
+
if (Ki(t, o)) return this.sampleResponse(e, t, "ok", {
|
|
3634
3642
|
kind: "source-indexes",
|
|
3635
3643
|
sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
|
|
3636
3644
|
}, "raw", "raw", o, n, !1);
|
|
3637
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);
|
|
3638
3646
|
if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
|
|
3639
|
-
let u =
|
|
3647
|
+
let u = Wi(t.strategy), d = Gi(t), f = Xi(t, a, u, d, l.kind), p = this.cache.get(f);
|
|
3640
3648
|
if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
|
|
3641
|
-
let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 &&
|
|
3642
|
-
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),
|
|
3643
3651
|
y: r.y.subarray(a.start, a.end),
|
|
3644
3652
|
points: r.points?.slice(a.start, a.end) ?? [],
|
|
3645
3653
|
strategy: u,
|
|
3646
3654
|
targetPointCount: d
|
|
3647
3655
|
}), a.start);
|
|
3648
|
-
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);
|
|
3649
3657
|
}
|
|
3650
3658
|
sampleResponse(e, t, n, r, i, a, o, s, c) {
|
|
3651
|
-
let l =
|
|
3659
|
+
let l = Zi(t, Qi(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Ji(r), c);
|
|
3652
3660
|
return l.requestId = e, {
|
|
3653
3661
|
seriesId: t.seriesId,
|
|
3654
3662
|
datasetId: t.datasetId,
|
|
@@ -3659,7 +3667,7 @@ var la = class {
|
|
|
3659
3667
|
};
|
|
3660
3668
|
}
|
|
3661
3669
|
findNearest(e, t, n, r) {
|
|
3662
|
-
let i = this.datasets.get(e), a =
|
|
3670
|
+
let i = this.datasets.get(e), a = Ui(i, n);
|
|
3663
3671
|
return a !== "ok" || !i ? {
|
|
3664
3672
|
type: "find-nearest-point-response",
|
|
3665
3673
|
requestId: t,
|
|
@@ -3672,12 +3680,12 @@ var la = class {
|
|
|
3672
3680
|
datasetId: e,
|
|
3673
3681
|
revision: n,
|
|
3674
3682
|
status: a,
|
|
3675
|
-
point: i.points ?
|
|
3676
|
-
let e =
|
|
3677
|
-
if (!
|
|
3678
|
-
let t = Math.min(
|
|
3679
|
-
return Number.isFinite(r) &&
|
|
3680
|
-
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),
|
|
3681
3689
|
y: i.y[a]
|
|
3682
3690
|
} : void 0;
|
|
3683
3691
|
})()
|
|
@@ -3685,15 +3693,15 @@ var la = class {
|
|
|
3685
3693
|
}
|
|
3686
3694
|
metrics(e, t, n) {
|
|
3687
3695
|
let r = this.datasets.get(e);
|
|
3688
|
-
return this.datasetResponse(t, e, r,
|
|
3696
|
+
return this.datasetResponse(t, e, r, Ui(r, n));
|
|
3689
3697
|
}
|
|
3690
3698
|
dispose(e, t, n) {
|
|
3691
|
-
let r = this.datasets.get(e), i =
|
|
3692
|
-
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);
|
|
3693
3701
|
}
|
|
3694
3702
|
disposeAll(e) {
|
|
3695
3703
|
let t = [...this.datasets.keys()];
|
|
3696
|
-
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(), {
|
|
3697
3705
|
type: "dispose-all-response",
|
|
3698
3706
|
requestId: e,
|
|
3699
3707
|
disposedDatasetIds: t
|
|
@@ -3715,10 +3723,10 @@ var la = class {
|
|
|
3715
3723
|
};
|
|
3716
3724
|
//#endregion
|
|
3717
3725
|
//#region src/components/core/latestTaskScheduler.ts
|
|
3718
|
-
function
|
|
3726
|
+
function fa(e, t, n, r) {
|
|
3719
3727
|
return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
|
|
3720
3728
|
}
|
|
3721
|
-
function
|
|
3729
|
+
function pa() {
|
|
3722
3730
|
let e = 0, t = !1, n, r = !1, i = {
|
|
3723
3731
|
scheduled: 0,
|
|
3724
3732
|
coalesced: 0,
|
|
@@ -3757,12 +3765,12 @@ function fa() {
|
|
|
3757
3765
|
}
|
|
3758
3766
|
//#endregion
|
|
3759
3767
|
//#region src/components/core/workerSamplingClient.ts
|
|
3760
|
-
function
|
|
3768
|
+
function ma(e) {
|
|
3761
3769
|
return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
|
|
3762
3770
|
}
|
|
3763
|
-
function
|
|
3771
|
+
function ha() {
|
|
3764
3772
|
let e, t, n, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = () => {
|
|
3765
|
-
t ??= new
|
|
3773
|
+
t ??= new da();
|
|
3766
3774
|
for (let [e, n] of i) {
|
|
3767
3775
|
t.handle({
|
|
3768
3776
|
type: "register-dataset",
|
|
@@ -3798,12 +3806,12 @@ function ma() {
|
|
|
3798
3806
|
let t = a();
|
|
3799
3807
|
e.forEach(({ request: e, resolve: n }) => n(t.handle(e)));
|
|
3800
3808
|
}, c = (r) => {
|
|
3801
|
-
t || (n =
|
|
3809
|
+
t || (n = ma(r), e?.terminate(), e = void 0, s());
|
|
3802
3810
|
};
|
|
3803
3811
|
try {
|
|
3804
3812
|
typeof Worker > "u" ? c() : (e = new Worker(new URL(
|
|
3805
3813
|
/* @vite-ignore */
|
|
3806
|
-
"/assets/workerRuntime-
|
|
3814
|
+
"/assets/workerRuntime-BcYng9TR.js",
|
|
3807
3815
|
"" + import.meta.url
|
|
3808
3816
|
), { type: "module" }), e.onmessage = (e) => {
|
|
3809
3817
|
let t = r.get(e.data.requestId);
|
|
@@ -3835,20 +3843,20 @@ function ma() {
|
|
|
3835
3843
|
}
|
|
3836
3844
|
};
|
|
3837
3845
|
}
|
|
3838
|
-
function
|
|
3846
|
+
function ga(e) {
|
|
3839
3847
|
return e.type === "dataset-response";
|
|
3840
3848
|
}
|
|
3841
3849
|
//#endregion
|
|
3842
3850
|
//#region src/components/core/useWaveformRenderSampling.ts
|
|
3843
|
-
var
|
|
3844
|
-
function
|
|
3851
|
+
var _a = 120;
|
|
3852
|
+
function va(e, t) {
|
|
3845
3853
|
let n = e.output;
|
|
3846
3854
|
if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
|
|
3847
3855
|
x: e,
|
|
3848
3856
|
y: n.y[t]
|
|
3849
3857
|
})) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
|
|
3850
3858
|
}
|
|
3851
|
-
function
|
|
3859
|
+
function ya(e, t) {
|
|
3852
3860
|
let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
|
|
3853
3861
|
return {
|
|
3854
3862
|
seriesId: n.seriesId,
|
|
@@ -3870,18 +3878,18 @@ function va(e, t) {
|
|
|
3870
3878
|
maxPendingRequestCount: 0
|
|
3871
3879
|
};
|
|
3872
3880
|
}
|
|
3873
|
-
function
|
|
3874
|
-
let { source:
|
|
3875
|
-
if (
|
|
3876
|
-
if (
|
|
3877
|
-
let
|
|
3878
|
-
for (let e = 0; e <
|
|
3879
|
-
let
|
|
3880
|
-
|
|
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);
|
|
3881
3889
|
}
|
|
3882
|
-
return
|
|
3890
|
+
return o;
|
|
3883
3891
|
}
|
|
3884
|
-
function
|
|
3892
|
+
function xa(e, t, n, r) {
|
|
3885
3893
|
return {
|
|
3886
3894
|
message: e,
|
|
3887
3895
|
mode: t,
|
|
@@ -3889,8 +3897,8 @@ function ba(e, t, n, r) {
|
|
|
3889
3897
|
seriesIds: r
|
|
3890
3898
|
};
|
|
3891
3899
|
}
|
|
3892
|
-
function
|
|
3893
|
-
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(() => {
|
|
3894
3902
|
let t = e.renderingOptions.value.sampling;
|
|
3895
3903
|
return e.sourceTrackLayouts.value.flatMap((n) => {
|
|
3896
3904
|
let r = n.xScale.domain();
|
|
@@ -3914,6 +3922,7 @@ function xa(e) {
|
|
|
3914
3922
|
autoHysteresis: t.autoHysteresis,
|
|
3915
3923
|
strategy: t.strategy,
|
|
3916
3924
|
maxPointsPerPixel: t.maxPointsPerPixel,
|
|
3925
|
+
maxPointCount: t.maxPointCount,
|
|
3917
3926
|
rawPointLimit: t.rawPointLimit,
|
|
3918
3927
|
wasmFailureFallback: t.wasmFailureFallback,
|
|
3919
3928
|
lineType: i.lineType,
|
|
@@ -3925,7 +3934,7 @@ function xa(e) {
|
|
|
3925
3934
|
}];
|
|
3926
3935
|
});
|
|
3927
3936
|
});
|
|
3928
|
-
}), 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 = () => {
|
|
3929
3938
|
d = void 0, l.forEach((t) => {
|
|
3930
3939
|
let n = o.get(t.seriesId);
|
|
3931
3940
|
n && n !== t.backend && e.emit("sampling-backend-change", {
|
|
@@ -3954,17 +3963,17 @@ function xa(e) {
|
|
|
3954
3963
|
revision: 0,
|
|
3955
3964
|
dataset: t.source.toWorkerDataset()
|
|
3956
3965
|
});
|
|
3957
|
-
!u.isCurrent(n) || !
|
|
3966
|
+
!u.isCurrent(n) || !ga(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
|
|
3958
3967
|
}));
|
|
3959
3968
|
}, x = async (t, n = !1) => {
|
|
3960
3969
|
let o = m.value, c = { ...e.linePointOverrides.value }, l = [], d = [];
|
|
3961
|
-
if (o.forEach((
|
|
3962
|
-
let
|
|
3963
|
-
|
|
3964
|
-
...
|
|
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,
|
|
3965
3974
|
request: {
|
|
3966
|
-
...
|
|
3967
|
-
previousSelectedMode:
|
|
3975
|
+
...e.request,
|
|
3976
|
+
previousSelectedMode: i
|
|
3968
3977
|
}
|
|
3969
3978
|
}));
|
|
3970
3979
|
}), !l.length) {
|
|
@@ -3972,7 +3981,7 @@ function xa(e) {
|
|
|
3972
3981
|
e.linePointOverrides.value = c, v(d);
|
|
3973
3982
|
return;
|
|
3974
3983
|
}
|
|
3975
|
-
if (e.linePointOverrides.value = c, r ??=
|
|
3984
|
+
if (e.linePointOverrides.value = c, r ??= ha(), await b(r, l, t), !u.isCurrent(t)) return;
|
|
3976
3985
|
let f = l.map((e) => ({
|
|
3977
3986
|
...e.request,
|
|
3978
3987
|
revision: a.get(e.request.datasetId) ?? 1
|
|
@@ -3987,22 +3996,22 @@ function xa(e) {
|
|
|
3987
3996
|
p = e;
|
|
3988
3997
|
} catch (n) {
|
|
3989
3998
|
if (!u.isCurrent(t)) return;
|
|
3990
|
-
y(
|
|
3999
|
+
y(xa(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
|
|
3991
4000
|
return;
|
|
3992
4001
|
}
|
|
3993
4002
|
if (!u.isCurrent(t)) return;
|
|
3994
4003
|
let h = new Map(l.map((e) => [e.series.id, e.source]));
|
|
3995
4004
|
p.results.forEach((e) => {
|
|
3996
|
-
let t = h.get(e.seriesId), n = t ?
|
|
3997
|
-
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(
|
|
3998
|
-
}), 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);
|
|
3999
4008
|
};
|
|
4000
4009
|
return O(h, () => {
|
|
4001
4010
|
f && clearTimeout(f);
|
|
4002
4011
|
let t = p;
|
|
4003
4012
|
p = !0, u.schedule((e) => x(e, t)), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (f = setTimeout(() => {
|
|
4004
4013
|
f = void 0, u.schedule((e) => x(e, !1));
|
|
4005
|
-
},
|
|
4014
|
+
}, _a));
|
|
4006
4015
|
}, { immediate: !0 }), O(e.preparedSeries, () => {
|
|
4007
4016
|
u.cancelPending(), n.value += 1, e.linePointOverrides.value = {}, a.clear(), o.clear(), s.clear(), c.clear(), r?.dispose(), r = void 0;
|
|
4008
4017
|
}, { flush: "sync" }), _(() => {
|
|
@@ -4011,10 +4020,10 @@ function xa(e) {
|
|
|
4011
4020
|
}
|
|
4012
4021
|
//#endregion
|
|
4013
4022
|
//#region src/components/core/useWaveformChartController.ts
|
|
4014
|
-
function
|
|
4023
|
+
function Ca(e, t) {
|
|
4015
4024
|
e.value = t instanceof Element ? t : void 0;
|
|
4016
4025
|
}
|
|
4017
|
-
function
|
|
4026
|
+
function wa(e, t) {
|
|
4018
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({
|
|
4019
4028
|
points: [],
|
|
4020
4029
|
trackIndex: null,
|
|
@@ -4023,11 +4032,11 @@ function Ca(e, t) {
|
|
|
4023
4032
|
x: 0,
|
|
4024
4033
|
y: 0
|
|
4025
4034
|
}
|
|
4026
|
-
}), _ = 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();
|
|
4027
4036
|
O([() => e.yDomain, () => e.yDomains], () => {
|
|
4028
4037
|
m.value = {}, h.value = {};
|
|
4029
4038
|
}, { deep: !0 });
|
|
4030
|
-
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({
|
|
4031
4040
|
props: e,
|
|
4032
4041
|
observedWidth: o,
|
|
4033
4042
|
observedHeight: s,
|
|
@@ -4035,7 +4044,7 @@ function Ca(e, t) {
|
|
|
4035
4044
|
measuredTitleHeight: l,
|
|
4036
4045
|
internalHiddenSeriesIds: E,
|
|
4037
4046
|
paginationBandHeight: u
|
|
4038
|
-
}), { 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({
|
|
4039
4048
|
props: e,
|
|
4040
4049
|
preparedSeries: R,
|
|
4041
4050
|
currentPage: v,
|
|
@@ -4050,7 +4059,7 @@ function Ca(e, t) {
|
|
|
4050
4059
|
annotationInteraction: d(D),
|
|
4051
4060
|
linePointOverrides: A
|
|
4052
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;
|
|
4053
|
-
|
|
4062
|
+
Sa({
|
|
4054
4063
|
props: e,
|
|
4055
4064
|
emit: t,
|
|
4056
4065
|
instanceId: w,
|
|
@@ -4061,7 +4070,7 @@ function Ca(e, t) {
|
|
|
4061
4070
|
}), k(() => {
|
|
4062
4071
|
u.value = ue.value.showPagination && de.value > 1 && B.value <= 520 ? 40 : 0;
|
|
4063
4072
|
});
|
|
4064
|
-
let xe =
|
|
4073
|
+
let xe = Nr({
|
|
4065
4074
|
props: e,
|
|
4066
4075
|
emit: t,
|
|
4067
4076
|
svgElement: r,
|
|
@@ -4078,7 +4087,7 @@ function Ca(e, t) {
|
|
|
4078
4087
|
isPresentationMode: U,
|
|
4079
4088
|
resolveInitialTrackDomain: ve,
|
|
4080
4089
|
cancelPendingHover: () => Ce.cancelPendingHover()
|
|
4081
|
-
}), X =
|
|
4090
|
+
}), X = mr({
|
|
4082
4091
|
props: e,
|
|
4083
4092
|
emit: t,
|
|
4084
4093
|
container: n,
|
|
@@ -4098,7 +4107,7 @@ function Ca(e, t) {
|
|
|
4098
4107
|
chartTopMargin: ie,
|
|
4099
4108
|
activeInteractionMode: me,
|
|
4100
4109
|
isPresentationMode: U
|
|
4101
|
-
}), Se =
|
|
4110
|
+
}), Se = jr({
|
|
4102
4111
|
props: e,
|
|
4103
4112
|
emit: t,
|
|
4104
4113
|
selection: N,
|
|
@@ -4123,7 +4132,7 @@ function Ca(e, t) {
|
|
|
4123
4132
|
cancelPendingZoom: xe.cancelPendingZoom,
|
|
4124
4133
|
clearHover: () => Ce.clearHover(),
|
|
4125
4134
|
resolveTrackAtPointer: X.resolveTrackAtPointer
|
|
4126
|
-
}), Ce =
|
|
4135
|
+
}), Ce = hr({
|
|
4127
4136
|
emit: t,
|
|
4128
4137
|
hoverState: g,
|
|
4129
4138
|
suppressHoverUntilMove: _,
|
|
@@ -4138,7 +4147,7 @@ function Ca(e, t) {
|
|
|
4138
4147
|
isPresentationMode: U,
|
|
4139
4148
|
updateViewportDrag: Se.updateViewportDrag,
|
|
4140
4149
|
resolveTrackAtPointer: X.resolveTrackAtPointer
|
|
4141
|
-
}), we =
|
|
4150
|
+
}), we = Fr({
|
|
4142
4151
|
props: e,
|
|
4143
4152
|
emit: t,
|
|
4144
4153
|
container: n,
|
|
@@ -4190,7 +4199,7 @@ function Ca(e, t) {
|
|
|
4190
4199
|
...Se,
|
|
4191
4200
|
...Ce,
|
|
4192
4201
|
margin: Lt,
|
|
4193
|
-
getPageSize:
|
|
4202
|
+
getPageSize: Bn,
|
|
4194
4203
|
currentPage: v,
|
|
4195
4204
|
selection: N,
|
|
4196
4205
|
pointerInsideChart: F,
|
|
@@ -4201,34 +4210,34 @@ function Ca(e, t) {
|
|
|
4201
4210
|
editorSeriesOptions: j,
|
|
4202
4211
|
clipPathId: w,
|
|
4203
4212
|
goToPage: we.goToPage,
|
|
4204
|
-
setContainer: (e) =>
|
|
4205
|
-
setSvgElement: (e) =>
|
|
4206
|
-
setTitleMeasureElement: (e) =>
|
|
4207
|
-
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)
|
|
4208
4217
|
});
|
|
4209
4218
|
}
|
|
4210
4219
|
//#endregion
|
|
4211
4220
|
//#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
|
|
4212
|
-
var
|
|
4221
|
+
var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
4213
4222
|
class: "waveform-annotation-editor__coordinates",
|
|
4214
4223
|
"aria-label": "标注坐标"
|
|
4215
|
-
},
|
|
4224
|
+
}, Oa = ["aria-invalid"], ka = {
|
|
4216
4225
|
class: "waveform-annotation-editor__coordinate-value",
|
|
4217
4226
|
"aria-hidden": "true"
|
|
4218
|
-
},
|
|
4227
|
+
}, Aa = ["id"], ja = {
|
|
4219
4228
|
key: 0,
|
|
4220
4229
|
class: "waveform-annotation-editor__series",
|
|
4221
4230
|
"aria-label": "标注所属波形"
|
|
4222
|
-
},
|
|
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 = {
|
|
4223
4232
|
class: "waveform-annotation-editor__color-field",
|
|
4224
4233
|
title: "调整标注边框色和透明度"
|
|
4225
|
-
},
|
|
4234
|
+
}, Va = {
|
|
4226
4235
|
class: "waveform-annotation-editor__color-field",
|
|
4227
4236
|
title: "调整标注文字色和透明度"
|
|
4228
|
-
},
|
|
4237
|
+
}, Ha = {
|
|
4229
4238
|
class: "waveform-annotation-editor__color-field",
|
|
4230
4239
|
title: "调整标注背景色和透明度"
|
|
4231
|
-
},
|
|
4240
|
+
}, Ua = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4232
4241
|
__name: "WaveformAnnotationEditor",
|
|
4233
4242
|
props: {
|
|
4234
4243
|
annotation: {},
|
|
@@ -4299,9 +4308,9 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4299
4308
|
onCancel: o[4] ||= (e) => p("cancel"),
|
|
4300
4309
|
onOk: B
|
|
4301
4310
|
}, {
|
|
4302
|
-
title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9,
|
|
4303
|
-
default: A(() => [a("div",
|
|
4304
|
-
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, [
|
|
4305
4314
|
a("label", {
|
|
4306
4315
|
class: "waveform-annotation-editor__coordinate-input",
|
|
4307
4316
|
"aria-invalid": !!N.value
|
|
@@ -4324,26 +4333,26 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4324
4333
|
"aria-invalid",
|
|
4325
4334
|
"aria-describedby"
|
|
4326
4335
|
]),
|
|
4327
|
-
a("code",
|
|
4328
|
-
], 8,
|
|
4336
|
+
a("code", ka, w(y.value), 1)
|
|
4337
|
+
], 8, Oa),
|
|
4329
4338
|
N.value ? (v(), i("p", {
|
|
4330
4339
|
key: 0,
|
|
4331
4340
|
id: `${E(g)}-time-error`,
|
|
4332
4341
|
class: "waveform-annotation-editor__coordinate-error",
|
|
4333
4342
|
role: "alert"
|
|
4334
|
-
}, w(N.value), 9,
|
|
4343
|
+
}, w(N.value), 9, Aa)) : r("", !0),
|
|
4335
4344
|
a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, w(E(Ot)(d.annotation.y)), 1)])
|
|
4336
4345
|
]),
|
|
4337
4346
|
o[13] ||= a("p", {
|
|
4338
4347
|
class: "waveform-annotation-editor__coordinate-hint",
|
|
4339
4348
|
role: "note"
|
|
4340
4349
|
}, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
|
|
4341
|
-
I.value ? (v(), i("label",
|
|
4350
|
+
I.value ? (v(), i("label", ja, [
|
|
4342
4351
|
a("i", {
|
|
4343
4352
|
style: m({ backgroundColor: I.value.color }),
|
|
4344
4353
|
"aria-hidden": "true"
|
|
4345
4354
|
}, null, 4),
|
|
4346
|
-
a("span",
|
|
4355
|
+
a("span", Ma, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
|
|
4347
4356
|
d.seriesOptions?.length ? (v(), i("select", {
|
|
4348
4357
|
key: 0,
|
|
4349
4358
|
value: d.annotation.seriesId,
|
|
@@ -4352,9 +4361,9 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4352
4361
|
}, [(v(!0), i(e, null, x(d.seriesOptions, (e) => (v(), i("option", {
|
|
4353
4362
|
key: e.seriesId,
|
|
4354
4363
|
value: e.seriesId
|
|
4355
|
-
}, 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)
|
|
4356
4365
|
])) : r("", !0),
|
|
4357
|
-
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", {
|
|
4358
4367
|
ref_key: "textarea",
|
|
4359
4368
|
ref: h,
|
|
4360
4369
|
"onUpdate:modelValue": o[0] ||= (e) => _.value = e,
|
|
@@ -4363,10 +4372,10 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4363
4372
|
"aria-label": "标注文本",
|
|
4364
4373
|
placeholder: "输入这处波形的说明",
|
|
4365
4374
|
onKeydown: V
|
|
4366
|
-
}, null, 40,
|
|
4367
|
-
a("fieldset",
|
|
4375
|
+
}, null, 40, Ra), [[D, _.value]])]),
|
|
4376
|
+
a("fieldset", za, [
|
|
4368
4377
|
o[12] ||= a("legend", null, "颜色与透明度", -1),
|
|
4369
|
-
a("label",
|
|
4378
|
+
a("label", Ba, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
|
|
4370
4379
|
"pure-color": C.value,
|
|
4371
4380
|
"onUpdate:pureColor": o[1] ||= (e) => C.value = e,
|
|
4372
4381
|
"aria-label": "标注边框色",
|
|
@@ -4376,7 +4385,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4376
4385
|
"disable-alpha": !1,
|
|
4377
4386
|
"blur-close": !0
|
|
4378
4387
|
}, null, 8, ["pure-color"])]),
|
|
4379
|
-
a("label",
|
|
4388
|
+
a("label", Va, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
|
|
4380
4389
|
"pure-color": T.value,
|
|
4381
4390
|
"onUpdate:pureColor": o[2] ||= (e) => T.value = e,
|
|
4382
4391
|
"aria-label": "标注文字色",
|
|
@@ -4386,7 +4395,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4386
4395
|
"disable-alpha": !1,
|
|
4387
4396
|
"blur-close": !0
|
|
4388
4397
|
}, null, 8, ["pure-color"])]),
|
|
4389
|
-
a("label",
|
|
4398
|
+
a("label", Ha, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
|
|
4390
4399
|
"pure-color": k.value,
|
|
4391
4400
|
"onUpdate:pureColor": o[3] ||= (e) => k.value = e,
|
|
4392
4401
|
"aria-label": "标注背景色",
|
|
@@ -4401,13 +4410,13 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4401
4410
|
_: 1
|
|
4402
4411
|
}, 8, ["ok-button-props"]));
|
|
4403
4412
|
}
|
|
4404
|
-
}), [["__scopeId", "data-v-01ecd3a4"]]),
|
|
4413
|
+
}), [["__scopeId", "data-v-01ecd3a4"]]), Wa = { class: "waveform-tooltip__series-content" }, Ga = { class: "waveform-tooltip__series-label" }, Ka = {
|
|
4405
4414
|
key: 0,
|
|
4406
4415
|
class: "waveform-tooltip__value"
|
|
4407
|
-
},
|
|
4416
|
+
}, qa = {
|
|
4408
4417
|
key: 1,
|
|
4409
4418
|
class: "waveform-tooltip__value waveform-tooltip__value--missing"
|
|
4410
|
-
},
|
|
4419
|
+
}, Ja = 12, Ya = 8, Xa = 238, Za = 560, Qa = 20, $a = 20, eo = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4411
4420
|
__name: "WaveformTooltip",
|
|
4412
4421
|
props: {
|
|
4413
4422
|
visible: { type: Boolean },
|
|
@@ -4421,7 +4430,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4421
4430
|
setup(n) {
|
|
4422
4431
|
let s = n;
|
|
4423
4432
|
function c(e, t) {
|
|
4424
|
-
let n = Math.max(1, t -
|
|
4433
|
+
let n = Math.max(1, t - Qa - 14), r = Math.max(1, Math.floor(n / 7.2));
|
|
4425
4434
|
return Math.max(1, Math.ceil([...e].length / r));
|
|
4426
4435
|
}
|
|
4427
4436
|
function l(e) {
|
|
@@ -4429,18 +4438,18 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4429
4438
|
return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} ${t}`;
|
|
4430
4439
|
}
|
|
4431
4440
|
function u(e) {
|
|
4432
|
-
return 16 +
|
|
4441
|
+
return 16 + $a * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
|
|
4433
4442
|
}
|
|
4434
4443
|
let d = t(() => {
|
|
4435
4444
|
if (!s.visible || !s.hoveredPoint) return { display: "none" };
|
|
4436
|
-
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 ? {
|
|
4437
4446
|
left: `${e}px`,
|
|
4438
|
-
maxWidth: `${Math.min(
|
|
4439
|
-
} : t >=
|
|
4440
|
-
right: `${s.containerWidth - s.position.x +
|
|
4441
|
-
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`
|
|
4442
4451
|
} : {
|
|
4443
|
-
left: `${
|
|
4452
|
+
left: `${Ya}px`,
|
|
4444
4453
|
maxWidth: `${i}px`
|
|
4445
4454
|
}, o = Number.parseFloat(a.maxWidth);
|
|
4446
4455
|
return {
|
|
@@ -4455,9 +4464,9 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4455
4464
|
}, [(v(!0), i(e, null, x(n.seriesPoints, (t) => (v(), i("span", {
|
|
4456
4465
|
key: `${t.trackIndex}-${t.name}`,
|
|
4457
4466
|
class: "waveform-tooltip__series waveform-chart__tooltip-series"
|
|
4458
|
-
}, [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);
|
|
4459
4468
|
}
|
|
4460
|
-
}), [["__scopeId", "data-v-1ae3316b"]]),
|
|
4469
|
+
}), [["__scopeId", "data-v-1ae3316b"]]), to = /* @__PURE__ */ l({
|
|
4461
4470
|
__name: "WaveformHoverHost",
|
|
4462
4471
|
props: {
|
|
4463
4472
|
state: {},
|
|
@@ -4468,7 +4477,7 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4468
4477
|
},
|
|
4469
4478
|
setup(e) {
|
|
4470
4479
|
let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
|
|
4471
|
-
return (t, r) => (v(), n(
|
|
4480
|
+
return (t, r) => (v(), n(eo, {
|
|
4472
4481
|
visible: e.visible && i.value !== null,
|
|
4473
4482
|
position: e.state.position,
|
|
4474
4483
|
"time-unit": e.timeUnit,
|
|
@@ -4486,16 +4495,16 @@ var wa = ["id"], Ta = { class: "waveform-annotation-editor__content" }, Ea = {
|
|
|
4486
4495
|
"container-height"
|
|
4487
4496
|
]));
|
|
4488
4497
|
}
|
|
4489
|
-
}),
|
|
4498
|
+
}), no = 13, ro = 2, io = 14, ao = 8, oo = 24, so = {
|
|
4490
4499
|
circle: te,
|
|
4491
4500
|
square: re,
|
|
4492
4501
|
triangle: ie,
|
|
4493
4502
|
diamond: ne
|
|
4494
4503
|
};
|
|
4495
|
-
function
|
|
4496
|
-
return e === "none" ? null : ee().type(
|
|
4504
|
+
function co(e, t = 48) {
|
|
4505
|
+
return e === "none" ? null : ee().type(so[e]).size(t)() ?? null;
|
|
4497
4506
|
}
|
|
4498
|
-
function
|
|
4507
|
+
function lo(e, t, n = 48) {
|
|
4499
4508
|
if (e === "none" || t.length === 0) return null;
|
|
4500
4509
|
if (e === "circle") {
|
|
4501
4510
|
let e = Math.sqrt(n / Math.PI);
|
|
@@ -4512,24 +4521,24 @@ function co(e, t, n = 48) {
|
|
|
4512
4521
|
let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
|
|
4513
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("");
|
|
4514
4523
|
}
|
|
4515
|
-
function
|
|
4524
|
+
function uo(e) {
|
|
4516
4525
|
return e === "none" ? null : "M1 8H25";
|
|
4517
4526
|
}
|
|
4518
|
-
function
|
|
4527
|
+
function fo(e) {
|
|
4519
4528
|
if (e === "dashed") return "8 5";
|
|
4520
4529
|
if (e === "dash-dot") return "8 5 1.5 5";
|
|
4521
4530
|
}
|
|
4522
|
-
function
|
|
4523
|
-
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;
|
|
4524
4533
|
return [
|
|
4525
|
-
`M${n} ${
|
|
4526
|
-
`M${
|
|
4527
|
-
`M${n} ${
|
|
4534
|
+
`M${n} ${ro}H${r}`,
|
|
4535
|
+
`M${no} ${ro}V${io}`,
|
|
4536
|
+
`M${n} ${io}H${r}`
|
|
4528
4537
|
].join("");
|
|
4529
4538
|
}
|
|
4530
4539
|
//#endregion
|
|
4531
4540
|
//#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
|
|
4532
|
-
var
|
|
4541
|
+
var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
4533
4542
|
"data-series-id",
|
|
4534
4543
|
"data-series-name",
|
|
4535
4544
|
"data-y-axis-index",
|
|
@@ -4538,11 +4547,11 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4538
4547
|
"d",
|
|
4539
4548
|
"stroke",
|
|
4540
4549
|
"stroke-dasharray"
|
|
4541
|
-
],
|
|
4550
|
+
], _o = ["data-series-id"], vo = [
|
|
4542
4551
|
"d",
|
|
4543
4552
|
"stroke",
|
|
4544
4553
|
"stroke-width"
|
|
4545
|
-
],
|
|
4554
|
+
], yo = ["data-series-id", "data-point-type"], bo = ["d", "fill"], xo = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4546
4555
|
__name: "WaveformSeriesLayer",
|
|
4547
4556
|
props: {
|
|
4548
4557
|
track: {},
|
|
@@ -4550,7 +4559,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4550
4559
|
},
|
|
4551
4560
|
setup(n) {
|
|
4552
4561
|
let a = n, o = t(() => a.track.seriesPaths.map((e) => {
|
|
4553
|
-
let t =
|
|
4562
|
+
let t = lo(e.series.pointType, e.pointRenderPoints.map((t) => ({
|
|
4554
4563
|
x: a.track.xScale(t.x),
|
|
4555
4564
|
y: e.yScale(t.y)
|
|
4556
4565
|
}))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
|
|
@@ -4587,8 +4596,8 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4587
4596
|
"data-line-style": e.series.lineStyle,
|
|
4588
4597
|
d: e.path,
|
|
4589
4598
|
stroke: e.series.color,
|
|
4590
|
-
"stroke-dasharray": E(
|
|
4591
|
-
}, null, 8,
|
|
4599
|
+
"stroke-dasharray": E(fo)(e.series.lineStyle)
|
|
4600
|
+
}, null, 8, go)) : r("", !0),
|
|
4592
4601
|
e.series.errorBar.visible ? (v(), i("g", {
|
|
4593
4602
|
key: 1,
|
|
4594
4603
|
class: "waveform-track__error-bars waveform-chart__error-bars",
|
|
@@ -4599,7 +4608,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4599
4608
|
d: e.errorBarPath,
|
|
4600
4609
|
stroke: e.series.errorBar.color || e.series.color,
|
|
4601
4610
|
"stroke-width": e.series.errorBar.width
|
|
4602
|
-
}, null, 8,
|
|
4611
|
+
}, null, 8, vo)) : r("", !0)], 8, _o)) : r("", !0),
|
|
4603
4612
|
e.series.pointType === "none" ? r("", !0) : (v(), i("g", {
|
|
4604
4613
|
key: 2,
|
|
4605
4614
|
class: "waveform-track__points waveform-chart__points",
|
|
@@ -4610,28 +4619,28 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4610
4619
|
class: "waveform-track__point waveform-chart__point",
|
|
4611
4620
|
d: e.pointPath,
|
|
4612
4621
|
fill: e.series.color
|
|
4613
|
-
}, null, 8,
|
|
4614
|
-
], 8,
|
|
4622
|
+
}, null, 8, bo)) : r("", !0)], 8, yo))
|
|
4623
|
+
], 8, ho))), 128))], 8, mo)) : r("", !0);
|
|
4615
4624
|
}
|
|
4616
|
-
}), [["__scopeId", "data-v-42a3fd47"]]),
|
|
4625
|
+
}), [["__scopeId", "data-v-42a3fd47"]]), So = ["transform"], Co = ["transform"], wo = {
|
|
4617
4626
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
|
|
4618
4627
|
x: "0",
|
|
4619
4628
|
y: "7",
|
|
4620
4629
|
dy: "0.71em",
|
|
4621
4630
|
"text-anchor": "start"
|
|
4622
|
-
},
|
|
4631
|
+
}, To = ["x"], Eo = [
|
|
4623
4632
|
"data-y-axis-index",
|
|
4624
4633
|
"data-y-axis-side",
|
|
4625
4634
|
"transform"
|
|
4626
|
-
],
|
|
4635
|
+
], Do = { key: 2 }, Oo = [
|
|
4627
4636
|
"x",
|
|
4628
4637
|
"y",
|
|
4629
4638
|
"width"
|
|
4630
|
-
],
|
|
4639
|
+
], ko = ["fill", "transform"], Ao = ["data-y-axis-title-index"], jo = [
|
|
4631
4640
|
"x",
|
|
4632
4641
|
"y",
|
|
4633
4642
|
"width"
|
|
4634
|
-
],
|
|
4643
|
+
], Mo = ["fill", "transform"], No = /* @__PURE__ */ l({
|
|
4635
4644
|
__name: "WaveformTrackAxes",
|
|
4636
4645
|
props: {
|
|
4637
4646
|
track: {},
|
|
@@ -4691,7 +4700,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4691
4700
|
ref: o,
|
|
4692
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 }]),
|
|
4693
4702
|
transform: `translate(0, ${t.track.height})`
|
|
4694
|
-
}, null, 10,
|
|
4703
|
+
}, null, 10, So)) : r("", !0),
|
|
4695
4704
|
t.track.showXAxis ? (v(), i("g", {
|
|
4696
4705
|
key: 1,
|
|
4697
4706
|
class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
|
|
@@ -4699,13 +4708,13 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4699
4708
|
"font-family": "sans-serif",
|
|
4700
4709
|
"font-size": "10",
|
|
4701
4710
|
"aria-hidden": "true"
|
|
4702
|
-
}, [a("text",
|
|
4711
|
+
}, [a("text", wo, w(t.track.endpointLabels.start), 1), a("text", {
|
|
4703
4712
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
|
|
4704
4713
|
x: t.track.width ?? t.innerWidth,
|
|
4705
4714
|
y: "7",
|
|
4706
4715
|
dy: "0.71em",
|
|
4707
4716
|
"text-anchor": "end"
|
|
4708
|
-
}, w(t.track.endpointLabels.end), 9,
|
|
4717
|
+
}, w(t.track.endpointLabels.end), 9, To)], 8, Co)) : r("", !0),
|
|
4709
4718
|
(v(!0), i(e, null, x(t.track.isEmpty ? [] : t.track.yAxes, (e) => (v(), i("g", {
|
|
4710
4719
|
key: `y-axis-${t.track.index}-${e.index}`,
|
|
4711
4720
|
ref_for: !0,
|
|
@@ -4714,21 +4723,21 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4714
4723
|
"data-y-axis-index": e.index,
|
|
4715
4724
|
"data-y-axis-side": e.side,
|
|
4716
4725
|
transform: `translate(${e.x}, 0)`
|
|
4717
|
-
}, null, 10,
|
|
4718
|
-
!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", {
|
|
4719
4728
|
class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
|
|
4720
4729
|
x: t.track.yAxisLabelX - E(12) / 2,
|
|
4721
4730
|
y: t.track.height / 2 - 40,
|
|
4722
4731
|
width: E(12),
|
|
4723
4732
|
height: "80",
|
|
4724
4733
|
rx: "2"
|
|
4725
|
-
}, null, 8,
|
|
4734
|
+
}, null, 8, Oo), a("text", {
|
|
4726
4735
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4727
4736
|
fill: t.track.series?.color,
|
|
4728
4737
|
transform: `translate(${t.track.yAxisLabelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4729
4738
|
"text-anchor": "middle",
|
|
4730
4739
|
"dominant-baseline": "central"
|
|
4731
|
-
}, w(t.track.series ? c(t.track.series) : ""), 9,
|
|
4740
|
+
}, w(t.track.series ? c(t.track.series) : ""), 9, ko)])) : r("", !0),
|
|
4732
4741
|
(v(!0), i(e, null, x(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (v(), i("g", {
|
|
4733
4742
|
key: `y-axis-title-${t.track.index}-${e.index}`,
|
|
4734
4743
|
class: "waveform-track__multi-axis-title",
|
|
@@ -4740,40 +4749,40 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4740
4749
|
width: E(12),
|
|
4741
4750
|
height: "80",
|
|
4742
4751
|
rx: "2"
|
|
4743
|
-
}, null, 8,
|
|
4752
|
+
}, null, 8, jo), a("text", {
|
|
4744
4753
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4745
4754
|
fill: e.seriesList[0].color,
|
|
4746
4755
|
transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4747
4756
|
"text-anchor": "middle",
|
|
4748
4757
|
"dominant-baseline": "central"
|
|
4749
|
-
}, w(c(e.seriesList[0])), 9,
|
|
4758
|
+
}, w(c(e.seriesList[0])), 9, Mo)], 8, Ao))), 128))
|
|
4750
4759
|
], 64));
|
|
4751
4760
|
}
|
|
4752
|
-
}),
|
|
4761
|
+
}), Po = [
|
|
4753
4762
|
"width",
|
|
4754
4763
|
"height",
|
|
4755
4764
|
"fill"
|
|
4756
|
-
],
|
|
4765
|
+
], Fo = ["clip-path"], Io = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Lo = [
|
|
4757
4766
|
"stroke",
|
|
4758
4767
|
"x1",
|
|
4759
4768
|
"x2",
|
|
4760
4769
|
"y2"
|
|
4761
|
-
],
|
|
4770
|
+
], Ro = [
|
|
4762
4771
|
"stroke",
|
|
4763
4772
|
"x2",
|
|
4764
4773
|
"y1",
|
|
4765
4774
|
"y2"
|
|
4766
|
-
],
|
|
4775
|
+
], zo = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Bo = [
|
|
4767
4776
|
"stroke",
|
|
4768
4777
|
"x1",
|
|
4769
4778
|
"x2",
|
|
4770
4779
|
"y2"
|
|
4771
|
-
],
|
|
4780
|
+
], Vo = [
|
|
4772
4781
|
"stroke",
|
|
4773
4782
|
"x2",
|
|
4774
4783
|
"y1",
|
|
4775
4784
|
"y2"
|
|
4776
|
-
],
|
|
4785
|
+
], Ho = ["clip-path"], Uo = [
|
|
4777
4786
|
"data-y-axis-index",
|
|
4778
4787
|
"x2",
|
|
4779
4788
|
"y1",
|
|
@@ -4781,7 +4790,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4781
4790
|
"stroke",
|
|
4782
4791
|
"stroke-width",
|
|
4783
4792
|
"stroke-dasharray"
|
|
4784
|
-
],
|
|
4793
|
+
], Wo = ["x", "y"], Go = /* @__PURE__ */ l({
|
|
4785
4794
|
__name: "WaveformTrackBackdrop",
|
|
4786
4795
|
props: {
|
|
4787
4796
|
track: {},
|
|
@@ -4806,12 +4815,12 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4806
4815
|
height: t.track.height,
|
|
4807
4816
|
fill: t.frameStyle.backgroundColor,
|
|
4808
4817
|
"aria-hidden": "true"
|
|
4809
|
-
}, null, 8,
|
|
4818
|
+
}, null, 8, Po)) : r("", !0),
|
|
4810
4819
|
!t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (v(), i("g", {
|
|
4811
4820
|
key: 1,
|
|
4812
4821
|
"clip-path": `url(#${t.clipPathId}-${t.track.index})`,
|
|
4813
4822
|
"aria-hidden": "true"
|
|
4814
|
-
}, [a("g",
|
|
4823
|
+
}, [a("g", Io, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
|
|
4815
4824
|
key: `x-minor-${t.track.index}-${e}`,
|
|
4816
4825
|
"data-grid-direction": "vertical",
|
|
4817
4826
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -4819,7 +4828,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4819
4828
|
x2: t.track.xScale(e),
|
|
4820
4829
|
y1: "0",
|
|
4821
4830
|
y2: t.track.height
|
|
4822
|
-
}, 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", {
|
|
4823
4832
|
key: `y-minor-${t.track.index}-${e}`,
|
|
4824
4833
|
"data-grid-direction": "horizontal",
|
|
4825
4834
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -4827,7 +4836,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4827
4836
|
x2: t.track.width ?? t.innerWidth,
|
|
4828
4837
|
y1: t.track.yScale(e),
|
|
4829
4838
|
y2: t.track.yScale(e)
|
|
4830
|
-
}, 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", {
|
|
4831
4840
|
key: `x-major-${t.track.index}-${e}`,
|
|
4832
4841
|
"data-grid-direction": "vertical",
|
|
4833
4842
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -4835,7 +4844,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4835
4844
|
x2: t.track.xScale(e),
|
|
4836
4845
|
y1: "0",
|
|
4837
4846
|
y2: t.track.height
|
|
4838
|
-
}, 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", {
|
|
4839
4848
|
key: `y-major-${t.track.index}-${e}`,
|
|
4840
4849
|
"data-grid-direction": "horizontal",
|
|
4841
4850
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -4843,7 +4852,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4843
4852
|
x2: t.track.width ?? t.innerWidth,
|
|
4844
4853
|
y1: t.track.yScale(e),
|
|
4845
4854
|
y2: t.track.yScale(e)
|
|
4846
|
-
}, null, 8,
|
|
4855
|
+
}, null, 8, Vo))), 128)) : r("", !0)])], 8, Fo)) : r("", !0),
|
|
4847
4856
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.zeroLine.visible && !t.cleanView ? (v(), i("g", {
|
|
4848
4857
|
key: 2,
|
|
4849
4858
|
class: "waveform-track__zero-lines waveform-chart__zero-lines",
|
|
@@ -4860,7 +4869,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4860
4869
|
stroke: t.zeroLine.color,
|
|
4861
4870
|
"stroke-width": t.zeroLine.width,
|
|
4862
4871
|
"stroke-dasharray": t.zeroLine.dash || void 0
|
|
4863
|
-
}, null, 8,
|
|
4872
|
+
}, null, 8, Uo))], 64))), 128))], 8, Ho)) : r("", !0),
|
|
4864
4873
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (v(), i("text", {
|
|
4865
4874
|
key: 3,
|
|
4866
4875
|
class: "waveform-track__watermark waveform-chart__watermark",
|
|
@@ -4870,10 +4879,10 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4870
4879
|
"text-anchor": "middle",
|
|
4871
4880
|
"dominant-baseline": "central",
|
|
4872
4881
|
"aria-hidden": "true"
|
|
4873
|
-
}, w(t.frameNumber), 13,
|
|
4882
|
+
}, w(t.frameNumber), 13, Wo)) : r("", !0)
|
|
4874
4883
|
], 64));
|
|
4875
4884
|
}
|
|
4876
|
-
}),
|
|
4885
|
+
}), Ko = [
|
|
4877
4886
|
"data-track-index",
|
|
4878
4887
|
"data-track-id",
|
|
4879
4888
|
"data-track-empty",
|
|
@@ -4883,19 +4892,19 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4883
4892
|
"data-track-top",
|
|
4884
4893
|
"data-track-height",
|
|
4885
4894
|
"transform"
|
|
4886
|
-
],
|
|
4895
|
+
], qo = [
|
|
4887
4896
|
"width",
|
|
4888
4897
|
"height",
|
|
4889
4898
|
"stroke",
|
|
4890
4899
|
"stroke-width",
|
|
4891
4900
|
"stroke-dasharray",
|
|
4892
4901
|
"stroke-linecap"
|
|
4893
|
-
],
|
|
4902
|
+
], Jo = [
|
|
4894
4903
|
"data-interactive",
|
|
4895
4904
|
"data-independent-overlay-index",
|
|
4896
4905
|
"width",
|
|
4897
4906
|
"height"
|
|
4898
|
-
],
|
|
4907
|
+
], Yo = ["x", "y"], Xo = /* @__PURE__ */ l({
|
|
4899
4908
|
__name: "WaveformTrack",
|
|
4900
4909
|
props: {
|
|
4901
4910
|
track: {},
|
|
@@ -4955,7 +4964,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4955
4964
|
"data-track-height": e.track.height,
|
|
4956
4965
|
transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
|
|
4957
4966
|
}, [
|
|
4958
|
-
s(
|
|
4967
|
+
s(Go, {
|
|
4959
4968
|
track: e.track,
|
|
4960
4969
|
"clip-path-id": e.clipPathId,
|
|
4961
4970
|
"inner-width": e.innerWidth,
|
|
@@ -4972,7 +4981,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4972
4981
|
"frame-style",
|
|
4973
4982
|
"zero-line"
|
|
4974
4983
|
]),
|
|
4975
|
-
s(
|
|
4984
|
+
s(No, {
|
|
4976
4985
|
track: e.track,
|
|
4977
4986
|
"inner-width": e.innerWidth,
|
|
4978
4987
|
"clean-view": e.cleanView,
|
|
@@ -4998,8 +5007,8 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
4998
5007
|
"stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
|
|
4999
5008
|
"stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
|
|
5000
5009
|
"aria-hidden": "true"
|
|
5001
|
-
}, null, 8,
|
|
5002
|
-
s(
|
|
5010
|
+
}, null, 8, qo)),
|
|
5011
|
+
s(xo, {
|
|
5003
5012
|
track: e.track,
|
|
5004
5013
|
"clip-path-id": e.clipPathId
|
|
5005
5014
|
}, null, 8, ["track", "clip-path-id"]),
|
|
@@ -5021,7 +5030,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5021
5030
|
onPointerleave: n[4] ||= (e) => o("pointer-leave"),
|
|
5022
5031
|
onClick: n[5] ||= (e) => o("click", e),
|
|
5023
5032
|
onContextmenu: n[6] ||= (e) => o("contextmenu", e)
|
|
5024
|
-
}, null, 42,
|
|
5033
|
+
}, null, 42, Jo)) : r("", !0),
|
|
5025
5034
|
!e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (v(), i("text", {
|
|
5026
5035
|
key: 2,
|
|
5027
5036
|
class: "waveform-track__no-visible-series",
|
|
@@ -5029,33 +5038,33 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5029
5038
|
y: e.track.height / 2,
|
|
5030
5039
|
"text-anchor": "middle",
|
|
5031
5040
|
"dominant-baseline": "central"
|
|
5032
|
-
}, " 暂无可见曲线 ", 8,
|
|
5033
|
-
], 10,
|
|
5041
|
+
}, " 暂无可见曲线 ", 8, Yo)) : r("", !0)
|
|
5042
|
+
], 10, Ko));
|
|
5034
5043
|
}
|
|
5035
|
-
}),
|
|
5044
|
+
}), Zo = [
|
|
5036
5045
|
"width",
|
|
5037
5046
|
"height",
|
|
5038
5047
|
"data-position",
|
|
5039
5048
|
"data-orientation"
|
|
5040
|
-
],
|
|
5049
|
+
], Qo = [
|
|
5041
5050
|
"disabled",
|
|
5042
5051
|
"aria-pressed",
|
|
5043
5052
|
"aria-label",
|
|
5044
5053
|
"onClick"
|
|
5045
|
-
],
|
|
5054
|
+
], $o = [
|
|
5046
5055
|
"data-line-type",
|
|
5047
5056
|
"data-line-style",
|
|
5048
5057
|
"data-point-type",
|
|
5049
5058
|
"data-error-bar-visible"
|
|
5050
|
-
],
|
|
5059
|
+
], es = [
|
|
5051
5060
|
"d",
|
|
5052
5061
|
"stroke",
|
|
5053
5062
|
"stroke-dasharray"
|
|
5054
|
-
],
|
|
5063
|
+
], ts = [
|
|
5055
5064
|
"d",
|
|
5056
5065
|
"stroke",
|
|
5057
5066
|
"stroke-width"
|
|
5058
|
-
],
|
|
5067
|
+
], ns = ["d", "fill"], rs = ["title"], is = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
5059
5068
|
__name: "WaveformLegend",
|
|
5060
5069
|
props: {
|
|
5061
5070
|
series: {},
|
|
@@ -5113,45 +5122,45 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5113
5122
|
"data-point-type": e.pointType,
|
|
5114
5123
|
"data-error-bar-visible": e.errorBar.visible || void 0
|
|
5115
5124
|
}, [
|
|
5116
|
-
E(
|
|
5125
|
+
E(uo)(e.lineType) ? (v(), i("path", {
|
|
5117
5126
|
key: 0,
|
|
5118
5127
|
class: "waveform-legend__line",
|
|
5119
|
-
d: E(
|
|
5128
|
+
d: E(uo)(e.lineType) ?? void 0,
|
|
5120
5129
|
stroke: e.color,
|
|
5121
|
-
"stroke-dasharray": E(
|
|
5130
|
+
"stroke-dasharray": E(fo)(e.lineStyle),
|
|
5122
5131
|
"stroke-width": "1.5",
|
|
5123
5132
|
fill: "none"
|
|
5124
|
-
}, null, 8,
|
|
5133
|
+
}, null, 8, es)) : r("", !0),
|
|
5125
5134
|
e.errorBar.visible ? (v(), i("path", {
|
|
5126
5135
|
key: 1,
|
|
5127
5136
|
class: "waveform-legend__error-bar",
|
|
5128
|
-
d: E(
|
|
5137
|
+
d: E(po)(e.errorBar.capWidth),
|
|
5129
5138
|
stroke: e.errorBar.color || e.color,
|
|
5130
5139
|
"stroke-width": e.errorBar.width,
|
|
5131
5140
|
"stroke-linecap": "butt",
|
|
5132
5141
|
fill: "none"
|
|
5133
|
-
}, null, 8,
|
|
5142
|
+
}, null, 8, ts)) : r("", !0),
|
|
5134
5143
|
e.pointType === "none" ? r("", !0) : (v(), i("path", {
|
|
5135
5144
|
key: 2,
|
|
5136
5145
|
class: "waveform-legend__point",
|
|
5137
|
-
d: E(
|
|
5146
|
+
d: E(co)(e.pointType, 30) ?? void 0,
|
|
5138
5147
|
fill: e.color,
|
|
5139
5148
|
transform: "translate(13 8)"
|
|
5140
|
-
}, null, 8,
|
|
5141
|
-
], 8,
|
|
5149
|
+
}, null, 8, ns))
|
|
5150
|
+
], 8, $o)), a("span", {
|
|
5142
5151
|
class: "waveform-legend__label",
|
|
5143
5152
|
title: e.name
|
|
5144
|
-
}, w(e.name), 9,
|
|
5153
|
+
}, w(e.name), 9, rs)], 10, Qo))), 128))], 6)], 2)], 8, Zo));
|
|
5145
5154
|
}
|
|
5146
|
-
}), [["__scopeId", "data-v-2ae12e71"]]),
|
|
5155
|
+
}), [["__scopeId", "data-v-2ae12e71"]]), as = {
|
|
5147
5156
|
class: "waveform-chart__hover-layer",
|
|
5148
5157
|
"pointer-events": "none",
|
|
5149
5158
|
"aria-hidden": "true"
|
|
5150
|
-
},
|
|
5159
|
+
}, os = ["clip-path", "transform"], ss = [
|
|
5151
5160
|
"x1",
|
|
5152
5161
|
"x2",
|
|
5153
5162
|
"y2"
|
|
5154
|
-
],
|
|
5163
|
+
], cs = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
5155
5164
|
__name: "WaveformHoverLayer",
|
|
5156
5165
|
props: {
|
|
5157
5166
|
state: {},
|
|
@@ -5164,7 +5173,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5164
5173
|
track: e,
|
|
5165
5174
|
x: e.xScale(r.state.queryX)
|
|
5166
5175
|
}] : []));
|
|
5167
|
-
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", {
|
|
5168
5177
|
key: e.track.index,
|
|
5169
5178
|
class: "waveform-track__crosshair waveform-chart__crosshair",
|
|
5170
5179
|
"clip-path": `url(#${n.clipPathId}-${e.track.index})`,
|
|
@@ -5174,9 +5183,9 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5174
5183
|
x2: e.x,
|
|
5175
5184
|
y1: "0",
|
|
5176
5185
|
y2: e.track.height
|
|
5177
|
-
}, null, 8,
|
|
5186
|
+
}, null, 8, ss)], 8, os))), 128))]));
|
|
5178
5187
|
}
|
|
5179
|
-
}), [["__scopeId", "data-v-044318c2"]]),
|
|
5188
|
+
}), [["__scopeId", "data-v-044318c2"]]), ls = [
|
|
5180
5189
|
"data-display-mode",
|
|
5181
5190
|
"data-interaction-mode",
|
|
5182
5191
|
"data-presentation-mode",
|
|
@@ -5185,31 +5194,31 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5185
5194
|
"data-plot-margin-top",
|
|
5186
5195
|
"data-plot-margin-bottom",
|
|
5187
5196
|
"data-title-area-height"
|
|
5188
|
-
],
|
|
5197
|
+
], us = [
|
|
5189
5198
|
"role",
|
|
5190
5199
|
"aria-level",
|
|
5191
5200
|
"aria-hidden"
|
|
5192
|
-
],
|
|
5201
|
+
], ds = ["data-title-scale", "data-title-wrapped"], fs = [
|
|
5193
5202
|
"width",
|
|
5194
5203
|
"height",
|
|
5195
5204
|
"aria-label"
|
|
5196
|
-
],
|
|
5205
|
+
], ps = ["id"], ms = ["width", "height"], hs = ["transform"], gs = {
|
|
5197
5206
|
key: 0,
|
|
5198
5207
|
class: "waveform-chart__grid-slots",
|
|
5199
5208
|
"aria-hidden": "true"
|
|
5200
|
-
},
|
|
5209
|
+
}, _s = ["transform"], vs = ["width", "height"], ys = ["width", "height"], bs = [
|
|
5201
5210
|
"x",
|
|
5202
5211
|
"y",
|
|
5203
5212
|
"width",
|
|
5204
5213
|
"height"
|
|
5205
|
-
],
|
|
5214
|
+
], xs = {
|
|
5206
5215
|
key: 4,
|
|
5207
5216
|
class: "waveform-chart__legend-layer"
|
|
5208
|
-
},
|
|
5217
|
+
}, Ss = [
|
|
5209
5218
|
"data-legend-track-index",
|
|
5210
5219
|
"data-legend-track-id",
|
|
5211
5220
|
"transform"
|
|
5212
|
-
],
|
|
5221
|
+
], Cs = ["x", "y"], ws = ["x", "y"], Ts = /* @__PURE__ */ l({
|
|
5213
5222
|
__name: "WaveformChartView",
|
|
5214
5223
|
props: { controller: {} },
|
|
5215
5224
|
setup(t) {
|
|
@@ -5262,7 +5271,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5262
5271
|
style: m(E(M)),
|
|
5263
5272
|
"data-title-scale": E(N).scale,
|
|
5264
5273
|
"data-title-wrapped": E(N).wrapped || void 0
|
|
5265
|
-
}, w(E(A)), 13,
|
|
5274
|
+
}, w(E(A)), 13, ds)], 4)) : r("", !0)], 12, us)) : r("", !0),
|
|
5266
5275
|
(v(), i("svg", {
|
|
5267
5276
|
ref: E(Xe),
|
|
5268
5277
|
class: "waveform-chart__svg",
|
|
@@ -5279,9 +5288,9 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5279
5288
|
}, [a("rect", {
|
|
5280
5289
|
width: e.width,
|
|
5281
5290
|
height: e.height
|
|
5282
|
-
}, null, 8,
|
|
5291
|
+
}, null, 8, ms)], 8, ps))), 128))]),
|
|
5283
5292
|
a("g", { transform: `translate(${E(g)}, ${E(B)})` }, [
|
|
5284
|
-
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", {
|
|
5285
5294
|
key: `grid-slot-${e.slotIndex}`,
|
|
5286
5295
|
transform: `translate(${e.left}, ${e.top})`
|
|
5287
5296
|
}, [e.series ? r("", !0) : (v(), i("rect", {
|
|
@@ -5289,7 +5298,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5289
5298
|
class: "waveform-chart__grid-slot-placeholder",
|
|
5290
5299
|
width: e.width,
|
|
5291
5300
|
height: e.cellHeight
|
|
5292
|
-
}, null, 8,
|
|
5301
|
+
}, null, 8, vs))], 8, _s))), 128))])) : r("", !0),
|
|
5293
5302
|
E(o) !== "independent" && E(R).length && E(H) ? (v(), i("rect", {
|
|
5294
5303
|
key: 1,
|
|
5295
5304
|
ref: E(Qe),
|
|
@@ -5306,8 +5315,8 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5306
5315
|
onPointerleave: T[4] ||= (...e) => E(K) && E(K)(...e),
|
|
5307
5316
|
onClick: T[5] ||= (...e) => E(q) && E(q)(...e),
|
|
5308
5317
|
onContextmenu: T[6] ||= (...e) => E(ae) && E(ae)(...e)
|
|
5309
|
-
}, null, 42,
|
|
5310
|
-
(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), {
|
|
5311
5320
|
key: `${e.index}-${e.id}`,
|
|
5312
5321
|
track: e,
|
|
5313
5322
|
"clip-path-id": E(z),
|
|
@@ -5353,7 +5362,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5353
5362
|
"onClick",
|
|
5354
5363
|
"onContextmenu"
|
|
5355
5364
|
]))), 128)),
|
|
5356
|
-
s(E(
|
|
5365
|
+
s(E(cs), {
|
|
5357
5366
|
state: E(pe),
|
|
5358
5367
|
tracks: E(R),
|
|
5359
5368
|
"clip-path-id": E(z),
|
|
@@ -5372,7 +5381,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5372
5381
|
width: E(he).width,
|
|
5373
5382
|
height: E(he).height,
|
|
5374
5383
|
"aria-hidden": "true"
|
|
5375
|
-
}, null, 8,
|
|
5384
|
+
}, null, 8, bs)) : r("", !0),
|
|
5376
5385
|
E(l) ? r("", !0) : (v(), n(E(tt), {
|
|
5377
5386
|
key: 3,
|
|
5378
5387
|
annotations: E(ge),
|
|
@@ -5391,13 +5400,13 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5391
5400
|
"onMove",
|
|
5392
5401
|
"onDragEnd"
|
|
5393
5402
|
])),
|
|
5394
|
-
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", {
|
|
5395
5404
|
key: `legend-${e.index}-${e.id}`,
|
|
5396
5405
|
class: "waveform-chart__legend-track",
|
|
5397
5406
|
"data-legend-track-index": e.index,
|
|
5398
5407
|
"data-legend-track-id": e.id,
|
|
5399
5408
|
transform: `translate(${e.left}, ${e.top})`
|
|
5400
|
-
}, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(
|
|
5409
|
+
}, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(is), {
|
|
5401
5410
|
key: 0,
|
|
5402
5411
|
series: e.legendSeries,
|
|
5403
5412
|
position: E(X)(e.id),
|
|
@@ -5418,23 +5427,23 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5418
5427
|
"width",
|
|
5419
5428
|
"height",
|
|
5420
5429
|
"onToggle"
|
|
5421
|
-
])) : r("", !0)], 8,
|
|
5422
|
-
], 8,
|
|
5430
|
+
])) : r("", !0)], 8, Ss))), 128))]))
|
|
5431
|
+
], 8, hs),
|
|
5423
5432
|
E(De) && !E(l) ? (v(), i("text", {
|
|
5424
5433
|
key: 0,
|
|
5425
5434
|
class: "waveform-chart__label waveform-chart__x-label",
|
|
5426
5435
|
x: E(g) + E(ee) / 2,
|
|
5427
5436
|
y: E(Oe),
|
|
5428
5437
|
"text-anchor": "middle"
|
|
5429
|
-
}, w(E(De)), 9,
|
|
5438
|
+
}, w(E(De)), 9, Cs)) : r("", !0),
|
|
5430
5439
|
E(ke) && !E(I) ? (v(), i("text", {
|
|
5431
5440
|
key: 1,
|
|
5432
5441
|
class: "waveform-chart__empty",
|
|
5433
5442
|
x: E(P) / 2,
|
|
5434
5443
|
y: E(F) / 2,
|
|
5435
5444
|
"text-anchor": "middle"
|
|
5436
|
-
}, " 暂无有效波形数据 ", 8,
|
|
5437
|
-
], 40,
|
|
5445
|
+
}, " 暂无有效波形数据 ", 8, ws)) : r("", !0)
|
|
5446
|
+
], 40, fs)),
|
|
5438
5447
|
E(Ae).showPagination && E(je) > 1 && !E(l) ? (v(), n(E(se), {
|
|
5439
5448
|
key: 1,
|
|
5440
5449
|
class: "waveform-chart__pagination",
|
|
@@ -5451,7 +5460,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5451
5460
|
"total",
|
|
5452
5461
|
"onChange"
|
|
5453
5462
|
])) : r("", !0),
|
|
5454
|
-
E(Le) && !E(l) && !E(u) ? (v(), n(
|
|
5463
|
+
E(Le) && !E(l) && !E(u) ? (v(), n(Ua, {
|
|
5455
5464
|
key: 2,
|
|
5456
5465
|
annotation: E(Le).annotation,
|
|
5457
5466
|
mode: E(Le).mode,
|
|
@@ -5493,7 +5502,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5493
5502
|
"onDelete",
|
|
5494
5503
|
"onClose"
|
|
5495
5504
|
])) : r("", !0),
|
|
5496
|
-
s(E(
|
|
5505
|
+
s(E(to), {
|
|
5497
5506
|
state: E(pe),
|
|
5498
5507
|
visible: E(me) && !E(u),
|
|
5499
5508
|
"time-unit": E(de),
|
|
@@ -5506,9 +5515,9 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5506
5515
|
"container-width",
|
|
5507
5516
|
"container-height"
|
|
5508
5517
|
])
|
|
5509
|
-
], 46,
|
|
5518
|
+
], 46, ls));
|
|
5510
5519
|
}
|
|
5511
|
-
}),
|
|
5520
|
+
}), Es = /* @__PURE__ */ l({
|
|
5512
5521
|
__name: "WaveformChart",
|
|
5513
5522
|
props: {
|
|
5514
5523
|
data: {},
|
|
@@ -5533,6 +5542,7 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5533
5542
|
},
|
|
5534
5543
|
minZoomSpan: {},
|
|
5535
5544
|
minVisiblePoints: { default: 0 },
|
|
5545
|
+
maxZoomScale: {},
|
|
5536
5546
|
initialXDomain: {},
|
|
5537
5547
|
initialXDomains: {},
|
|
5538
5548
|
xDomainStrategy: { default: () => ({ type: "data" }) },
|
|
@@ -5589,12 +5599,12 @@ var po = ["clip-path"], mo = ["data-series-id", "data-series-name"], ho = [
|
|
|
5589
5599
|
"sampling-error"
|
|
5590
5600
|
],
|
|
5591
5601
|
setup(e, { expose: t, emit: r }) {
|
|
5592
|
-
let i =
|
|
5602
|
+
let i = wa(e, r);
|
|
5593
5603
|
return t({
|
|
5594
5604
|
resetViewport: i.resetViewport,
|
|
5595
5605
|
setViewportDomain: i.setViewportDomain
|
|
5596
|
-
}), (e, t) => (v(), n(
|
|
5606
|
+
}), (e, t) => (v(), n(Ts, { controller: E(i) }, null, 8, ["controller"]));
|
|
5597
5607
|
}
|
|
5598
5608
|
});
|
|
5599
5609
|
//#endregion
|
|
5600
|
-
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 };
|