waveform-analysis 0.1.73 → 0.1.74
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 +10 -7
- package/dist/index.cjs +2 -2
- package/dist/index.js +769 -765
- package/dist/types/components/core/layout.d.ts +2 -1
- package/dist/types/components/core/yAxisTitleLayout.d.ts +1 -1
- package/dist/types/components/interaction/useExtremaTickViewport.d.ts +1 -1
- package/dist/types/demo/types.d.ts +2 -1
- package/dist/types/types/chart.d.ts +4 -2
- package/package.json +1 -1
- package/src/App.vue +6 -3
- package/src/components/core/layout.ts +36 -22
- package/src/components/core/trackLayoutBuilder.ts +8 -5
- package/src/components/core/useWaveformLayout.ts +3 -1
- package/src/components/core/yAxisLayoutMetrics.ts +24 -16
- package/src/components/core/yAxisPadding.ts +10 -5
- package/src/components/core/yAxisTitleLayout.ts +9 -48
- package/src/components/interaction/useExtremaTickViewport.ts +1 -1
- package/src/demo/DemoYAxisPaddingControls.vue +11 -3
- package/src/demo/types.ts +2 -1
- package/src/index.ts +1 -1
- package/src/types/chart.ts +4 -2
package/dist/index.js
CHANGED
|
@@ -39,19 +39,19 @@ function ve(e, t) {
|
|
|
39
39
|
}
|
|
40
40
|
function ye(e, t, n) {
|
|
41
41
|
let r = typeof n == "number" ? { upperPaddingRatio: n } : n;
|
|
42
|
-
if (e.fixed) return be(e, r
|
|
42
|
+
if (e.fixed) return be(e, r);
|
|
43
43
|
let i = ve(r?.upperPaddingEnabled, r?.upperPaddingRatio), a = ve(r?.lowerPaddingEnabled, r?.lowerPaddingRatio), [o, s] = e.domain, c = s - o, l = a > 0 ? o - c * a : o, u = i > 0 ? s + c * i : s;
|
|
44
44
|
return be({
|
|
45
45
|
...e,
|
|
46
46
|
domain: t ?? [Number.isFinite(l) ? l : o, Number.isFinite(u) ? u : s]
|
|
47
|
-
}, r
|
|
47
|
+
}, r);
|
|
48
48
|
}
|
|
49
|
-
function be(e, t
|
|
49
|
+
function be(e, t) {
|
|
50
50
|
let n = e.seriesList.flatMap((e) => Number.isFinite(e.rawYMaximum) ? [e.rawYMaximum] : []), r = e.seriesList.flatMap((e) => Number.isFinite(e.rawYMinimum) ? [e.rawYMinimum] : []);
|
|
51
51
|
return {
|
|
52
52
|
...e,
|
|
53
|
-
maximumTick: t && n.length ? Math.max(...n) : void 0,
|
|
54
|
-
minimumTick: t && r.length ? Math.min(...r) : void 0
|
|
53
|
+
maximumTick: t?.maximumTickVisible !== !1 && n.length ? Math.max(...n) : void 0,
|
|
54
|
+
minimumTick: t?.minimumTickVisible !== !1 && r.length ? Math.min(...r) : void 0
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
function xe(e, t, n) {
|
|
@@ -1054,27 +1054,21 @@ function Sn(e, t, n = !1) {
|
|
|
1054
1054
|
}
|
|
1055
1055
|
//#endregion
|
|
1056
1056
|
//#region src/components/core/yAxisTitleLayout.ts
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
function En(e, t, n, r) {
|
|
1062
|
-
let i = t.seriesList[0], a = Tn(i?.name.trim() || n || "", nt(r.labelTextStyle)) / 2, o = e.height / 2 - a - wn, s = e.height / 2 + a + wn, c = Math.min(...t.tickValues), l = Math.max(...t.tickValues), u = t.tickValues.flatMap((e) => {
|
|
1063
|
-
let n = t.scale(e) + .5, a = r.compact && e === l, u = n - (e === c ? Cn : a ? 0 : Cn / 2);
|
|
1064
|
-
if ((e === c ? n : n + (a ? Cn : Cn / 2)) < o || u > s) return [];
|
|
1065
|
-
let d = Kn(e, t.scale.domain(), t.tickValues, r.showUnits === !1 ? void 0 : i?.unit);
|
|
1066
|
-
return [r.measureTextWidth?.(d) ?? d.length * 7];
|
|
1057
|
+
function Cn(e, t) {
|
|
1058
|
+
let n = e.seriesList[0], r = e.tickValues.map((r) => {
|
|
1059
|
+
let i = Un(r, e.scale.domain(), e.tickValues, t.showUnits === !1 ? void 0 : n?.unit);
|
|
1060
|
+
return t.measureTextWidth?.(i) ?? i.length * 7;
|
|
1067
1061
|
});
|
|
1068
|
-
return Math.max(7, ...
|
|
1062
|
+
return Math.max(7, ...r) + 7 + rt(t.labelTextStyle) / 2;
|
|
1069
1063
|
}
|
|
1070
|
-
function
|
|
1064
|
+
function wn(e, t, n = {}) {
|
|
1071
1065
|
let r = /* @__PURE__ */ new Map();
|
|
1072
|
-
for (let
|
|
1066
|
+
for (let t of e) {
|
|
1073
1067
|
let e = 0;
|
|
1074
|
-
for (let
|
|
1075
|
-
if (
|
|
1076
|
-
let
|
|
1077
|
-
r.set(
|
|
1068
|
+
for (let i of t.yAxes) {
|
|
1069
|
+
if (i.side !== "left") continue;
|
|
1070
|
+
let a = `${t.column}:${e++}`, o = Cn(i, n);
|
|
1071
|
+
r.set(a, Math.max(r.get(a) ?? 0, o));
|
|
1078
1072
|
}
|
|
1079
1073
|
}
|
|
1080
1074
|
for (let t of e) {
|
|
@@ -1084,49 +1078,49 @@ function Dn(e, t, n = {}) {
|
|
|
1084
1078
|
}
|
|
1085
1079
|
//#endregion
|
|
1086
1080
|
//#region src/components/core/yAxisTextWidth.ts
|
|
1087
|
-
var
|
|
1088
|
-
function
|
|
1089
|
-
|
|
1090
|
-
let t =
|
|
1081
|
+
var Tn = "700 11px sans-serif", En;
|
|
1082
|
+
function Dn(e) {
|
|
1083
|
+
En === void 0 && (En = typeof document < "u" && typeof CanvasRenderingContext2D < "u" ? document.createElement("canvas").getContext("2d") : null, En && (En.font = Tn));
|
|
1084
|
+
let t = En ? En.measureText(e).width : [...e].reduce((e, t) => e + (/[0-9]/.test(t) ? 6.2 : t === "." ? 3.1 : 7), 0);
|
|
1091
1085
|
return Math.ceil(t);
|
|
1092
1086
|
}
|
|
1093
1087
|
//#endregion
|
|
1094
1088
|
//#region src/components/interaction/integerZoom.ts
|
|
1095
|
-
function
|
|
1089
|
+
function On(e, t, n) {
|
|
1096
1090
|
if (!n.integerZoom) return H().domain(e).ticks(t);
|
|
1097
1091
|
let r = n.timeUnit === "s" ? 1 : 1e3;
|
|
1098
1092
|
return H().domain(e.map((e) => e * r)).ticks(t).filter(Number.isInteger).map((e) => e / r);
|
|
1099
1093
|
}
|
|
1100
|
-
function
|
|
1094
|
+
function kn(e) {
|
|
1101
1095
|
return String(Math.round(e));
|
|
1102
1096
|
}
|
|
1103
|
-
function
|
|
1097
|
+
function An(e) {
|
|
1104
1098
|
let t = Math.round(e);
|
|
1105
1099
|
return Math.abs(e - t) <= 2 ** -52 * Math.max(1, Math.abs(e)) * 16 ? t : e;
|
|
1106
1100
|
}
|
|
1107
|
-
function
|
|
1101
|
+
function jn(e, t) {
|
|
1108
1102
|
if (!t.integerZoom) return e;
|
|
1109
|
-
let n = t.timeUnit === "s" ? 1 : 1e3, r =
|
|
1103
|
+
let n = t.timeUnit === "s" ? 1 : 1e3, r = An(Math.min(e[0], e[1]) * n), i = An(Math.max(e[0], e[1]) * n);
|
|
1110
1104
|
if (!Number.isSafeInteger(Math.floor(r)) || !Number.isSafeInteger(Math.ceil(i))) return e;
|
|
1111
1105
|
let a = Math.floor(r);
|
|
1112
1106
|
return [a / n, Math.max(a + 1, Math.ceil(i)) / n];
|
|
1113
1107
|
}
|
|
1114
|
-
function
|
|
1115
|
-
return
|
|
1108
|
+
function Mn(e, t) {
|
|
1109
|
+
return jn(e, t);
|
|
1116
1110
|
}
|
|
1117
|
-
function
|
|
1111
|
+
function Nn(e, t) {
|
|
1118
1112
|
if (!t.integerZoom) return e;
|
|
1119
1113
|
let n = t.timeUnit === "s" ? 1 : 1e3;
|
|
1120
1114
|
return [Math.round(e[0] * n) / n, Math.round(e[1] * n) / n];
|
|
1121
1115
|
}
|
|
1122
1116
|
//#endregion
|
|
1123
1117
|
//#region src/components/core/trackLayoutBuilder.ts
|
|
1124
|
-
function
|
|
1118
|
+
function Pn(e, t, n) {
|
|
1125
1119
|
if (n.effectiveXDomains?.[e.id]) return n.effectiveXDomains[e.id];
|
|
1126
1120
|
let r = n.xDomainStrategy ?? { type: "data" }, i = n.initialXDomains?.[e.id] ?? n.initialXDomains?.[t] ?? n.initialXDomain;
|
|
1127
|
-
return
|
|
1121
|
+
return jn(i ? Sn(i, r, !0) : Sn(e.xDomain, r), n);
|
|
1128
1122
|
}
|
|
1129
|
-
function
|
|
1123
|
+
function Fn(e) {
|
|
1130
1124
|
let t = e.cells.map((t) => ({
|
|
1131
1125
|
...t,
|
|
1132
1126
|
hasSeries: e.useNonEmptyBottomTracks ? !!t.series?.series.length : !!t.series
|
|
@@ -1139,21 +1133,21 @@ function Rn(e) {
|
|
|
1139
1133
|
visibleSeries: [],
|
|
1140
1134
|
xDomain: e.initialXDomain ?? e.sharedZoomDomain,
|
|
1141
1135
|
yDomain: [0, 1]
|
|
1142
|
-
}, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? H(
|
|
1143
|
-
l.domain(
|
|
1144
|
-
let u =
|
|
1136
|
+
}, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? H(Pn(a, s?.id ?? a.id, e), [0, t.width]) : H(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ?? U : U).rescaleX(c);
|
|
1137
|
+
l.domain(Mn(l.domain(), e));
|
|
1138
|
+
let u = Jn(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains, e.yDomains, e.yAxisPadding ?? e.yAxisUpperPaddingRatio), d = {
|
|
1145
1139
|
left: 0,
|
|
1146
1140
|
right: 0
|
|
1147
1141
|
}, f = {
|
|
1148
1142
|
left: 0,
|
|
1149
1143
|
right: 0
|
|
1150
1144
|
}, p = u.map((n) => {
|
|
1151
|
-
let r = d[n.side]++, i =
|
|
1152
|
-
return
|
|
1145
|
+
let r = d[n.side]++, i = Bn(t.plotHeight, e.yAxisSplitNumber), a = Vn(n.domain, i, e.yAxisNice !== !1), o = H(a.domain, [t.plotHeight, 0]), s = a.values, c = n.maximumTick !== void 0 && n.maximumTick >= a.domain[0] && n.maximumTick <= a.domain[1] ? n.maximumTick : void 0, l = n.minimumTick !== void 0 && n.minimumTick >= a.domain[0] && n.minimumTick <= a.domain[1] ? n.minimumTick : void 0, u = xe(s, c, l), { tickTextWidth: p, titleTextWidth: m } = Yn(o.domain(), !1, u, e.showAxisUnits === !1 ? void 0 : n.seriesList[0]?.unit, i), h = Math.max(p, m + 0 + rt(e.yAxisPadding?.labelTextStyle)) + 7 + 4, g = e.yAxisSlots?.find((e) => e.side === n.side && e.sideIndex === r), _ = g ? (n.side === "left" ? 0 : t.width) + g.axisOffset : n.side === "left" ? -f.left : t.width + f.right, v = m + 7 + 0 + rt(e.yAxisPadding?.labelTextStyle) / 2, y = (g ? (n.side === "left" ? 0 : t.width) + g.labelOffset : _ + (n.side === "left" ? -v : v)) - (n.side === "right" && !e.compactYAxisLayout ? 10 : 0);
|
|
1146
|
+
return g || (f[n.side] += h), {
|
|
1153
1147
|
index: n.index,
|
|
1154
1148
|
side: n.side,
|
|
1155
|
-
x:
|
|
1156
|
-
labelX:
|
|
1149
|
+
x: _,
|
|
1150
|
+
labelX: y,
|
|
1157
1151
|
scale: o,
|
|
1158
1152
|
maximumTick: c,
|
|
1159
1153
|
minimumTick: l,
|
|
@@ -1164,7 +1158,7 @@ function Rn(e) {
|
|
|
1164
1158
|
};
|
|
1165
1159
|
}), m = H(a.yDomain, [t.plotHeight, 0]);
|
|
1166
1160
|
e.yAxisNice !== !1 && m.nice();
|
|
1167
|
-
let h = p[0]?.scale ?? m, g =
|
|
1161
|
+
let h = p[0]?.scale ?? m, g = On(l.domain(), Math.max(2, Math.floor(t.width / 100)), e), _ = e.xAxisLabelFormatter ?? (e.integerZoom ? kn : void 0), v = p[0]?.majorTicks ?? (i ? m.ticks(Bn(t.plotHeight, e.yAxisSplitNumber)) : []), y = p[0]?.tickValues ?? [], b = l.domain(), x = {
|
|
1168
1162
|
start: q(b[0], b, e.timeUnit, "start", _),
|
|
1169
1163
|
end: q(b[1], b, e.timeUnit, "end", _)
|
|
1170
1164
|
}, S = x.start.length * 7 + 10, C = x.end.length * 7 + 10, w = g.filter((e) => {
|
|
@@ -1222,20 +1216,20 @@ function Rn(e) {
|
|
|
1222
1216
|
showXAxis: e.displayMode === "independent" || (e.displayMode === "compact" ? t.isLastRow ?? t.row === e.grid.rowCount - 1 : n.has(t.slotIndex))
|
|
1223
1217
|
};
|
|
1224
1218
|
});
|
|
1225
|
-
return
|
|
1219
|
+
return wn(r, e.yLabel, {
|
|
1226
1220
|
labelTextStyle: e.yAxisPadding?.labelTextStyle,
|
|
1227
1221
|
showUnits: e.showAxisUnits,
|
|
1228
1222
|
compact: e.compactYAxisLayout,
|
|
1229
|
-
measureTextWidth: e.compactYAxisLayout ?
|
|
1223
|
+
measureTextWidth: e.compactYAxisLayout ? Dn : void 0
|
|
1230
1224
|
}), r;
|
|
1231
1225
|
}
|
|
1232
1226
|
//#endregion
|
|
1233
1227
|
//#region src/components/core/layout.ts
|
|
1234
|
-
var
|
|
1235
|
-
function
|
|
1228
|
+
var In = 7, Ln = 7, Rn = 4, zn = 0;
|
|
1229
|
+
function Bn(e, t) {
|
|
1236
1230
|
return typeof t == "number" && Number.isFinite(t) ? Math.max(2, Math.floor(t)) : 5;
|
|
1237
1231
|
}
|
|
1238
|
-
function
|
|
1232
|
+
function Vn(e, t = 5, n = !0) {
|
|
1239
1233
|
if (!n) {
|
|
1240
1234
|
let n = typeof t == "number" && Number.isFinite(t) ? Math.max(2, Math.floor(t)) : 5, [r, i] = e;
|
|
1241
1235
|
return {
|
|
@@ -1245,7 +1239,7 @@ function Wn(e, t = 5, n = !0) {
|
|
|
1245
1239
|
}
|
|
1246
1240
|
return tt(e, t);
|
|
1247
1241
|
}
|
|
1248
|
-
function
|
|
1242
|
+
function Hn(e, t, n, r, i = "left") {
|
|
1249
1243
|
let a = Math.max(...n), o = i === "right" && e === a, s = Ne(e, {
|
|
1250
1244
|
axisMin: t[0],
|
|
1251
1245
|
axisMax: t[1],
|
|
@@ -1262,11 +1256,11 @@ function Gn(e, t, n, r, i = "left") {
|
|
|
1262
1256
|
}
|
|
1263
1257
|
return s;
|
|
1264
1258
|
}
|
|
1265
|
-
function
|
|
1266
|
-
let i =
|
|
1259
|
+
function Un(e, t, n, r) {
|
|
1260
|
+
let i = Hn(e, t, n, r), a = Pe(t[0], t[1]);
|
|
1267
1261
|
return a && i.startsWith(`${a} `) ? i.slice(a.length + 1) : i;
|
|
1268
1262
|
}
|
|
1269
|
-
function
|
|
1263
|
+
function Wn(e) {
|
|
1270
1264
|
return e >= 4 ? [
|
|
1271
1265
|
"left",
|
|
1272
1266
|
"left",
|
|
@@ -1278,13 +1272,13 @@ function qn(e) {
|
|
|
1278
1272
|
"right"
|
|
1279
1273
|
] : e === 2 ? ["left", "right"] : ["left"];
|
|
1280
1274
|
}
|
|
1281
|
-
var
|
|
1282
|
-
function
|
|
1283
|
-
let n =
|
|
1284
|
-
n || (n = /* @__PURE__ */ new Map(),
|
|
1275
|
+
var Gn = /* @__PURE__ */ new WeakMap();
|
|
1276
|
+
function Kn(e, t) {
|
|
1277
|
+
let n = Gn.get(e);
|
|
1278
|
+
n || (n = /* @__PURE__ */ new Map(), Gn.set(e, n));
|
|
1285
1279
|
let r = n.get(t);
|
|
1286
1280
|
if (r) return r;
|
|
1287
|
-
let i = t === "multi-axis" ? Math.min(e.visibleSeries.length, 4) : Math.min(e.visibleSeries.length, 1), a =
|
|
1281
|
+
let i = t === "multi-axis" ? Math.min(e.visibleSeries.length, 4) : Math.min(e.visibleSeries.length, 1), a = Wn(i), o = Array.from({ length: i }, (e, t) => ({
|
|
1288
1282
|
index: t,
|
|
1289
1283
|
side: a[t],
|
|
1290
1284
|
seriesList: [],
|
|
@@ -1301,9 +1295,9 @@ function Yn(e, t) {
|
|
|
1301
1295
|
}
|
|
1302
1296
|
}), n.set(t, o), o;
|
|
1303
1297
|
}
|
|
1304
|
-
function
|
|
1298
|
+
function qn(e, t, n, r) {
|
|
1305
1299
|
let i = Ye(e, r);
|
|
1306
|
-
return
|
|
1300
|
+
return Kn(e, t).map((e) => {
|
|
1307
1301
|
if (i) return {
|
|
1308
1302
|
...e,
|
|
1309
1303
|
domain: i,
|
|
@@ -1317,9 +1311,9 @@ function Xn(e, t, n, r) {
|
|
|
1317
1311
|
} : e;
|
|
1318
1312
|
});
|
|
1319
1313
|
}
|
|
1320
|
-
function
|
|
1314
|
+
function Jn(e, t, n, r, i, a) {
|
|
1321
1315
|
let o = i?.[e.id];
|
|
1322
|
-
return
|
|
1316
|
+
return qn(e.visibleSeries.length || !e.series.length ? e : {
|
|
1323
1317
|
...e,
|
|
1324
1318
|
visibleSeries: e.series
|
|
1325
1319
|
}, t, n, r).map((t) => {
|
|
@@ -1331,49 +1325,59 @@ function Zn(e, t, n, r, i, a) {
|
|
|
1331
1325
|
};
|
|
1332
1326
|
});
|
|
1333
1327
|
}
|
|
1334
|
-
function
|
|
1328
|
+
function Yn(e, t = !0, n, r, i = 5, a = !1, o, s, c) {
|
|
1335
1329
|
let l = n ? {
|
|
1336
1330
|
domain: e,
|
|
1337
1331
|
values: n
|
|
1338
|
-
} :
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
}
|
|
1344
|
-
|
|
1345
|
-
|
|
1332
|
+
} : Vn(e, i, t), u = (e) => e !== void 0 && e >= l.domain[0] && e <= l.domain[1] ? e : void 0, d = [xe(l.values, u(s), u(c))];
|
|
1333
|
+
a && l.values.length > 1 && d.push(l.values.slice(0, -1));
|
|
1334
|
+
let f = (e) => o ? o(e) : e.length * In, p = d.flatMap((e) => e.map((t) => ({
|
|
1335
|
+
full: f(Hn(t, l.domain, e, r)),
|
|
1336
|
+
title: f(Un(t, l.domain, e, r))
|
|
1337
|
+
})));
|
|
1338
|
+
return a && d[0].forEach((e) => {
|
|
1339
|
+
p.push({
|
|
1340
|
+
full: f(Hn(e, l.domain, [e], r)),
|
|
1341
|
+
title: f(Un(e, l.domain, [e], r))
|
|
1342
|
+
});
|
|
1343
|
+
}), {
|
|
1344
|
+
tickTextWidth: Math.max(In, ...p.map((e) => e.full)),
|
|
1345
|
+
titleTextWidth: Math.max(In, ...p.map((e) => e.title))
|
|
1346
|
+
};
|
|
1347
|
+
}
|
|
1348
|
+
function Xn(e, t, n, r, i, a = !0, o = !1, s, c, l = !0, u) {
|
|
1349
|
+
let d = rt(typeof c == "object" ? c.labelTextStyle : void 0), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
|
|
1346
1350
|
e.forEach((e) => {
|
|
1347
1351
|
let d = {
|
|
1348
1352
|
left: 0,
|
|
1349
1353
|
right: 0
|
|
1350
1354
|
};
|
|
1351
|
-
|
|
1352
|
-
let t = d[e.side]++, n = `${e.side}:${t}`, r =
|
|
1353
|
-
f.set(n, Math.max(f.get(n) ??
|
|
1355
|
+
Jn(e, t, n, r, s, c).forEach((e) => {
|
|
1356
|
+
let t = d[e.side]++, n = `${e.side}:${t}`, { tickTextWidth: r, titleTextWidth: s } = Yn(e.domain, a, void 0, l ? e.seriesList[0]?.unit : void 0, i, o, u, e.maximumTick, e.minimumTick);
|
|
1357
|
+
f.set(n, Math.max(f.get(n) ?? In, r)), p.set(n, Math.max(p.get(n) ?? In, s));
|
|
1354
1358
|
});
|
|
1355
1359
|
});
|
|
1356
|
-
let
|
|
1360
|
+
let m = [], h = {
|
|
1357
1361
|
left: 0,
|
|
1358
1362
|
right: 0
|
|
1359
1363
|
};
|
|
1360
1364
|
return ["left", "right"].forEach((e) => {
|
|
1361
1365
|
Array.from(f.keys()).filter((t) => t.startsWith(`${e}:`)).map((t) => Number(t.slice(e.length + 1))).sort((e, t) => e - t).forEach((t) => {
|
|
1362
|
-
let n = f.get(`${e}:${t}`) ??
|
|
1363
|
-
|
|
1366
|
+
let n = f.get(`${e}:${t}`) ?? In, r = p.get(`${e}:${t}`) ?? In, i = e === "left" && h.left > 0 ? -h.left : h[e], a = i + (r + Ln + zn + d / 2) * (e === "left" ? -1 : 1), o = Math.max(n, r + zn + d) + Ln + Rn;
|
|
1367
|
+
m.push({
|
|
1364
1368
|
side: e,
|
|
1365
1369
|
sideIndex: t,
|
|
1366
|
-
axisOffset:
|
|
1367
|
-
labelOffset:
|
|
1368
|
-
clearance:
|
|
1369
|
-
}),
|
|
1370
|
+
axisOffset: i,
|
|
1371
|
+
labelOffset: a,
|
|
1372
|
+
clearance: o
|
|
1373
|
+
}), h[e] += o;
|
|
1370
1374
|
});
|
|
1371
1375
|
}), {
|
|
1372
|
-
slots:
|
|
1373
|
-
clearance:
|
|
1376
|
+
slots: m,
|
|
1377
|
+
clearance: h
|
|
1374
1378
|
};
|
|
1375
1379
|
}
|
|
1376
|
-
function
|
|
1380
|
+
function Zn(e, t, n) {
|
|
1377
1381
|
let r = (e) => {
|
|
1378
1382
|
let r = t < e.left ? e.left - t : t > e.left + e.width ? t - e.left - e.width : 0;
|
|
1379
1383
|
return n < e.top ? e.top - n : n > e.top + e.height ? n - (e.top + e.height) : r;
|
|
@@ -1392,7 +1396,7 @@ function er(e, t, n) {
|
|
|
1392
1396
|
}
|
|
1393
1397
|
//#endregion
|
|
1394
1398
|
//#region src/components/rendering/yAxisTickVisibility.ts
|
|
1395
|
-
function
|
|
1399
|
+
function Qn(e) {
|
|
1396
1400
|
let t = e.getBoundingClientRect();
|
|
1397
1401
|
if (t.width && t.height) return t;
|
|
1398
1402
|
let n = Number.parseFloat(getComputedStyle(e).fontSize) || 11, r = (e.textContent?.length ?? 0) * n * .65, i = Number(e.getAttribute("x")) || 0, a = Number(e.getAttribute("y")) || 0;
|
|
@@ -1408,36 +1412,36 @@ function tr(e) {
|
|
|
1408
1412
|
bottom: a + n / 2
|
|
1409
1413
|
};
|
|
1410
1414
|
}
|
|
1411
|
-
function
|
|
1415
|
+
function $n(e, t) {
|
|
1412
1416
|
return e.left < t.right && t.left < e.right && e.top < t.bottom + 4 && t.top < e.bottom + 4;
|
|
1413
1417
|
}
|
|
1414
|
-
function
|
|
1418
|
+
function er(e, t, n = 1, r = 1) {
|
|
1415
1419
|
return Math.abs(e - t) < (n + r) / 2 + 1;
|
|
1416
1420
|
}
|
|
1417
|
-
function
|
|
1421
|
+
function tr(e) {
|
|
1418
1422
|
e.setAttribute("display", "none"), e.setAttribute("data-maximum-hidden", "true");
|
|
1419
1423
|
}
|
|
1420
|
-
function
|
|
1424
|
+
function nr(e) {
|
|
1421
1425
|
return Number.parseFloat(getComputedStyle(e).strokeWidth) || 1;
|
|
1422
1426
|
}
|
|
1423
|
-
function
|
|
1427
|
+
function rr(e) {
|
|
1424
1428
|
e.querySelectorAll("text[data-axis-maximum-label]").forEach((e) => {
|
|
1425
1429
|
let t = e.parentElement.parentElement, n = [...t.querySelectorAll(".tick text")], r = (e) => Number(e.parentElement.getAttribute("data-tick-value")), i = n.filter((e) => e.getAttribute("display") !== "none").map(r), a = [Number(t.getAttribute("data-label-domain-min")), Number(t.getAttribute("data-label-domain-max"))];
|
|
1426
1430
|
n.forEach((e) => {
|
|
1427
|
-
e.textContent =
|
|
1431
|
+
e.textContent = Hn(r(e), a, i, t.getAttribute("data-label-unit") ?? void 0, t.getAttribute("data-y-axis-side") === "right" ? "right" : "left");
|
|
1428
1432
|
});
|
|
1429
1433
|
});
|
|
1430
1434
|
}
|
|
1431
|
-
function
|
|
1435
|
+
function ir(e) {
|
|
1432
1436
|
e.querySelectorAll("[data-maximum-hidden]").forEach((e) => {
|
|
1433
1437
|
e.removeAttribute("display"), e.removeAttribute("data-maximum-hidden");
|
|
1434
1438
|
}), e.querySelectorAll(".waveform-track__axis--y .tick text").forEach((e) => {
|
|
1435
1439
|
e.removeAttribute("display");
|
|
1436
|
-
}),
|
|
1440
|
+
}), rr(e);
|
|
1437
1441
|
let t = [...e.querySelectorAll("text[data-axis-minimum-label]")];
|
|
1438
1442
|
e.querySelectorAll("text[data-axis-maximum-label]").forEach((e) => {
|
|
1439
|
-
let n =
|
|
1440
|
-
t.some((e) =>
|
|
1443
|
+
let n = Qn(e);
|
|
1444
|
+
t.some((e) => $n(n, Qn(e))) && tr(e);
|
|
1441
1445
|
}), e.querySelectorAll(".waveform-track__axis--y .tick").forEach((e) => {
|
|
1442
1446
|
let t = Number(e.getAttribute("data-tick-y")), n = Number(e.closest(".waveform-track")?.getAttribute("data-track-height")), r = e.querySelector("line");
|
|
1443
1447
|
W(t, 0) || W(t, n) ? r?.setAttribute("display", "none") : r?.removeAttribute("display");
|
|
@@ -1447,34 +1451,34 @@ function sr(e) {
|
|
|
1447
1451
|
let t = e.querySelector("text");
|
|
1448
1452
|
t && r.forEach((e) => {
|
|
1449
1453
|
let n = e.querySelector("text");
|
|
1450
|
-
n && n !== t &&
|
|
1454
|
+
n && n !== t && $n(Qn(t), Qn(n)) && tr(n);
|
|
1451
1455
|
});
|
|
1452
1456
|
}), [.../* @__PURE__ */ new Set([...n, ...r])].forEach((e) => {
|
|
1453
1457
|
let t = e.querySelector("text"), n = e.querySelector("line");
|
|
1454
1458
|
if (!t || !n) return;
|
|
1455
|
-
let r =
|
|
1459
|
+
let r = Qn(t);
|
|
1456
1460
|
i.forEach((n) => {
|
|
1457
|
-
t.getAttribute("display") !== "none" && n.getAttribute("display") !== "none" && (n.parentElement?.matches("[data-minimum-tick], [data-maximum-tick]") || !e.hasAttribute("data-minimum-tick") && n.hasAttribute("data-axis-minimum-label") ||
|
|
1461
|
+
t.getAttribute("display") !== "none" && n.getAttribute("display") !== "none" && (n.parentElement?.matches("[data-minimum-tick], [data-maximum-tick]") || !e.hasAttribute("data-minimum-tick") && n.hasAttribute("data-axis-minimum-label") || $n(r, Qn(n)) && tr(n));
|
|
1458
1462
|
});
|
|
1459
1463
|
let a = e.parentElement, o = Number(e.getAttribute("data-tick-value")), s = Number(e.getAttribute("data-tick-y"));
|
|
1460
1464
|
a.querySelectorAll(".tick:not([data-maximum-tick]):not([data-minimum-tick])").forEach((e) => {
|
|
1461
1465
|
let t = e.querySelector("line");
|
|
1462
|
-
t &&
|
|
1466
|
+
t && er(s, Number(e.getAttribute("data-tick-y")), nr(n), nr(t)) && tr(t);
|
|
1463
1467
|
}), a.getAttribute("data-y-axis-index") === "0" && (a.closest(".waveform-track").querySelectorAll("[data-grid-direction=\"horizontal\"]").forEach((e) => {
|
|
1464
1468
|
let t = Number(e.getAttribute("y1"));
|
|
1465
|
-
|
|
1469
|
+
er(s, t, nr(n), nr(e)) && tr(e);
|
|
1466
1470
|
}), e.hasAttribute("data-maximum-tick") && e.setAttribute("data-maximum-value", String(o)), e.hasAttribute("data-minimum-tick") && e.setAttribute("data-minimum-value", String(o)));
|
|
1467
|
-
}),
|
|
1471
|
+
}), rr(e);
|
|
1468
1472
|
}
|
|
1469
1473
|
//#endregion
|
|
1470
1474
|
//#region src/components/controls/snapshotTitle.ts
|
|
1471
|
-
var
|
|
1472
|
-
function
|
|
1475
|
+
var ar = "http://www.w3.org/2000/svg";
|
|
1476
|
+
function or(e, t, n) {
|
|
1473
1477
|
let r = e.querySelector(".waveform-chart__title-text");
|
|
1474
1478
|
if (!r) return;
|
|
1475
|
-
let i = getComputedStyle(r), a = r.getBoundingClientRect(), o = e.getBoundingClientRect(), s = o.width ? n / o.width : 1, c = document.createElementNS(
|
|
1479
|
+
let i = getComputedStyle(r), a = r.getBoundingClientRect(), o = e.getBoundingClientRect(), s = o.width ? n / o.width : 1, c = document.createElementNS(ar, "g"), l = typeof DOMMatrix < "u" && i.transform !== "none" && i.transform ? new DOMMatrix(i.transform) : void 0, u = l ? Math.atan2(l.b, l.a) * 180 / Math.PI : 0, d = l ? Math.hypot(l.a, l.b) : 1;
|
|
1476
1480
|
c.setAttribute("transform", `translate(${(a.left - o.left + a.width / 2) * s},${t / 2}) rotate(${u}) scale(${d})`);
|
|
1477
|
-
let f = document.createElementNS(
|
|
1481
|
+
let f = document.createElementNS(ar, "text");
|
|
1478
1482
|
f.setAttribute("fill", i.color);
|
|
1479
1483
|
for (let e of [
|
|
1480
1484
|
"font-family",
|
|
@@ -1498,18 +1502,18 @@ function lr(e, t, n) {
|
|
|
1498
1502
|
v.push(y);
|
|
1499
1503
|
let b = i.textAlign;
|
|
1500
1504
|
return f.setAttribute("text-anchor", b === "left" ? "start" : b === "right" ? "end" : "middle"), v.forEach((e, t) => {
|
|
1501
|
-
let n = document.createElementNS(
|
|
1505
|
+
let n = document.createElementNS(ar, "tspan");
|
|
1502
1506
|
n.setAttribute("x", String(b === "left" ? -h / 2 : b === "right" ? h / 2 : 0)), n.setAttribute("y", String((t - (v.length - 1) / 2) * m)), n.setAttribute("dominant-baseline", "middle"), n.textContent = e, f.appendChild(n);
|
|
1503
1507
|
}), g.width = 0, g.height = 0, c.appendChild(f), c;
|
|
1504
1508
|
}
|
|
1505
1509
|
//#endregion
|
|
1506
1510
|
//#region src/components/controls/chartSnapshot.ts
|
|
1507
|
-
var
|
|
1508
|
-
function
|
|
1509
|
-
let n = document.createElementNS(
|
|
1511
|
+
var sr = "http://www.w3.org/2000/svg";
|
|
1512
|
+
function cr(e, t = {}) {
|
|
1513
|
+
let n = document.createElementNS(sr, e);
|
|
1510
1514
|
return Object.entries(t).forEach(([e, t]) => n.setAttribute(e, String(t))), n;
|
|
1511
1515
|
}
|
|
1512
|
-
var
|
|
1516
|
+
var lr = [
|
|
1513
1517
|
"fill",
|
|
1514
1518
|
"fill-opacity",
|
|
1515
1519
|
"stroke",
|
|
@@ -1530,11 +1534,11 @@ var fr = [
|
|
|
1530
1534
|
"visibility",
|
|
1531
1535
|
"display"
|
|
1532
1536
|
];
|
|
1533
|
-
function
|
|
1537
|
+
function ur(e, t) {
|
|
1534
1538
|
let n = [e, ...e.querySelectorAll("*")], r = [t, ...t.querySelectorAll("*")];
|
|
1535
1539
|
n.forEach((e, t) => {
|
|
1536
1540
|
let n = r[t], i = getComputedStyle(e);
|
|
1537
|
-
|
|
1541
|
+
lr.forEach((e) => {
|
|
1538
1542
|
let t = i.getPropertyValue(e);
|
|
1539
1543
|
t && n.style.setProperty(e, t);
|
|
1540
1544
|
});
|
|
@@ -1548,13 +1552,13 @@ function pr(e, t) {
|
|
|
1548
1552
|
}
|
|
1549
1553
|
});
|
|
1550
1554
|
}
|
|
1551
|
-
function
|
|
1555
|
+
function dr(e, t) {
|
|
1552
1556
|
let n = e.querySelectorAll("foreignObject");
|
|
1553
1557
|
t.querySelectorAll("foreignObject").forEach((e, t) => {
|
|
1554
|
-
let r = n[t], i = r.getBoundingClientRect(), a =
|
|
1558
|
+
let r = n[t], i = r.getBoundingClientRect(), a = cr("g", { class: "waveform-export-legend" }), o = Number(r.getAttribute("width")) || i.width, s = i.width > 0 ? o / i.width : 1, c = r.querySelector(".waveform-legend__panel");
|
|
1555
1559
|
if (c) {
|
|
1556
1560
|
let e = c.getBoundingClientRect();
|
|
1557
|
-
a.appendChild(
|
|
1561
|
+
a.appendChild(cr("rect", {
|
|
1558
1562
|
x: (e.left - i.left) * s,
|
|
1559
1563
|
y: (e.top - i.top) * s,
|
|
1560
1564
|
width: e.width * s,
|
|
@@ -1565,17 +1569,17 @@ function mr(e, t) {
|
|
|
1565
1569
|
}));
|
|
1566
1570
|
}
|
|
1567
1571
|
r.querySelectorAll(".waveform-legend__item").forEach((e) => {
|
|
1568
|
-
let t = e.getBoundingClientRect(), n =
|
|
1572
|
+
let t = e.getBoundingClientRect(), n = cr("g", {
|
|
1569
1573
|
transform: `translate(${(t.left - i.left) * s},${(t.top - i.top) * s})`,
|
|
1570
1574
|
opacity: getComputedStyle(e).opacity
|
|
1571
1575
|
}), r = e.querySelector("svg");
|
|
1572
1576
|
if (r) {
|
|
1573
1577
|
let e = r.cloneNode(!0);
|
|
1574
|
-
|
|
1578
|
+
ur(r, e), e.setAttribute("width", "26"), e.setAttribute("height", "16"), n.appendChild(e);
|
|
1575
1579
|
}
|
|
1576
1580
|
let o = e.querySelector(".waveform-legend__label");
|
|
1577
1581
|
if (o) {
|
|
1578
|
-
let e =
|
|
1582
|
+
let e = cr("text", {
|
|
1579
1583
|
x: 32,
|
|
1580
1584
|
y: 12,
|
|
1581
1585
|
fill: getComputedStyle(o).color,
|
|
@@ -1589,20 +1593,20 @@ function mr(e, t) {
|
|
|
1589
1593
|
}), e.replaceWith(a);
|
|
1590
1594
|
});
|
|
1591
1595
|
}
|
|
1592
|
-
function
|
|
1593
|
-
let o =
|
|
1596
|
+
function fr(e, t, n, r, i, a) {
|
|
1597
|
+
let o = cr("svg", {
|
|
1594
1598
|
width: n,
|
|
1595
1599
|
height: r,
|
|
1596
1600
|
viewBox: `0 0 ${n} ${r}`
|
|
1597
1601
|
}), s = a ?? getComputedStyle(e).backgroundColor;
|
|
1598
|
-
o.appendChild(
|
|
1602
|
+
o.appendChild(cr("rect", {
|
|
1599
1603
|
width: n,
|
|
1600
1604
|
height: r,
|
|
1601
1605
|
fill: s || "#fff"
|
|
1602
1606
|
}));
|
|
1603
1607
|
let c = t.cloneNode(!0);
|
|
1604
|
-
|
|
1605
|
-
let l =
|
|
1608
|
+
ur(t, c), dr(t, c), c.querySelectorAll(".waveform-chart__overlay, .waveform-chart__hover-layer, .waveform-chart__zoom-selection").forEach((e) => e.remove()), c.setAttribute("y", String(i)), c.removeAttribute("role"), c.removeAttribute("aria-label"), o.appendChild(c);
|
|
1609
|
+
let l = or(e, i, n);
|
|
1606
1610
|
return l && o.appendChild(l), new XMLSerializer().serializeToString(o);
|
|
1607
1611
|
}
|
|
1608
1612
|
//#endregion
|
|
@@ -1618,7 +1622,7 @@ function Z(e) {
|
|
|
1618
1622
|
"export-timeout": "等待图表稳定超时,请重试"
|
|
1619
1623
|
}[e]), { code: e });
|
|
1620
1624
|
}
|
|
1621
|
-
function
|
|
1625
|
+
function pr(e) {
|
|
1622
1626
|
let t = !1, n = !1, r = 0, i;
|
|
1623
1627
|
j(e.version, () => {
|
|
1624
1628
|
r++, i?.(Z("export-stale"));
|
|
@@ -1645,8 +1649,8 @@ function gr(e) {
|
|
|
1645
1649
|
v || (e.ready() ? t() : m = setTimeout(n, 16));
|
|
1646
1650
|
};
|
|
1647
1651
|
n();
|
|
1648
|
-
}), await document.fonts?.ready, await f(), y(),
|
|
1649
|
-
let t =
|
|
1652
|
+
}), await document.fonts?.ready, await f(), y(), ir(l);
|
|
1653
|
+
let t = fr(c, l, u.width, u.height, u.titleHeight, a.backgroundColor), n = new Blob([t], { type: "image/svg+xml" });
|
|
1650
1654
|
if (o === "svg") return n;
|
|
1651
1655
|
h = URL.createObjectURL(n), g = new Image(), await new Promise((e, t) => {
|
|
1652
1656
|
g.onload = () => e(), g.onerror = () => t(Z("export-render-failed")), g.src = h;
|
|
@@ -1669,7 +1673,7 @@ function gr(e) {
|
|
|
1669
1673
|
}
|
|
1670
1674
|
//#endregion
|
|
1671
1675
|
//#region src/components/controls/useControlMode.ts
|
|
1672
|
-
function
|
|
1676
|
+
function mr(e, n) {
|
|
1673
1677
|
let r = x("zoom"), i = t(() => e.interactionMode ?? r.value), a = (t) => !e.presentationMode && (t === "none" || t === "zoom" && e.zoomable || t === "pan" && e.pannable || t === "annotation" && e.annotationsVisible);
|
|
1674
1678
|
function o(t) {
|
|
1675
1679
|
let o;
|
|
@@ -1687,15 +1691,15 @@ function _r(e, n) {
|
|
|
1687
1691
|
}
|
|
1688
1692
|
//#endregion
|
|
1689
1693
|
//#region src/components/interaction/zoomConstraints.ts
|
|
1690
|
-
var
|
|
1691
|
-
function
|
|
1694
|
+
var hr = /* @__PURE__ */ new WeakMap();
|
|
1695
|
+
function gr(e) {
|
|
1692
1696
|
return e[0] <= e[1] ? [...e] : [e[1], e[0]];
|
|
1693
1697
|
}
|
|
1694
|
-
function
|
|
1698
|
+
function _r(e) {
|
|
1695
1699
|
return Number.isFinite(e) && (e ?? 0) > 0 ? Math.ceil(e) : 0;
|
|
1696
1700
|
}
|
|
1697
|
-
function
|
|
1698
|
-
let n = `${t[0]}\u0000${t[1]}`, r =
|
|
1701
|
+
function vr(e, t) {
|
|
1702
|
+
let n = `${t[0]}\u0000${t[1]}`, r = hr.get(e)?.get(n);
|
|
1699
1703
|
if (r) return r;
|
|
1700
1704
|
let i = /* @__PURE__ */ new Set();
|
|
1701
1705
|
for (let n of e) {
|
|
@@ -1705,14 +1709,14 @@ function xr(e, t) {
|
|
|
1705
1709
|
r.x >= t[0] && r.x <= t[1] && i.add(r.x);
|
|
1706
1710
|
}
|
|
1707
1711
|
}
|
|
1708
|
-
let a = Array.from(i).sort((e, t) => e - t), o =
|
|
1709
|
-
return o.set(n, a),
|
|
1712
|
+
let a = Array.from(i).sort((e, t) => e - t), o = hr.get(e) ?? /* @__PURE__ */ new Map();
|
|
1713
|
+
return o.set(n, a), hr.set(e, o), a;
|
|
1710
1714
|
}
|
|
1711
|
-
function
|
|
1715
|
+
function yr(e, t, n) {
|
|
1712
1716
|
if (n <= 1) return 0;
|
|
1713
1717
|
let r = 0;
|
|
1714
1718
|
for (let i of e) {
|
|
1715
|
-
let e =
|
|
1719
|
+
let e = vr(i, t);
|
|
1716
1720
|
if (e.length < n) return t[1] - t[0];
|
|
1717
1721
|
let a = Infinity;
|
|
1718
1722
|
for (let t = 0; t + n <= e.length; t += 1) a = Math.min(a, e[t + n - 1] - e[t]);
|
|
@@ -1721,17 +1725,17 @@ function Sr(e, t, n) {
|
|
|
1721
1725
|
}
|
|
1722
1726
|
return r;
|
|
1723
1727
|
}
|
|
1724
|
-
function
|
|
1725
|
-
let r =
|
|
1728
|
+
function br(e, t, n) {
|
|
1729
|
+
let r = jn(gr(e), n), i = r[1] - r[0];
|
|
1726
1730
|
if (!Number.isFinite(i) || i <= 0) return 0;
|
|
1727
|
-
let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o =
|
|
1731
|
+
let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o = _r(n.minVisiblePoints), s = yr(t, r, o), c = Number(n.maxZoomScale), l = Number.isFinite(c) && c >= Ue.MIN_SCALE ? i / c : n.maxZoomScale !== null && a === 0 && o === 0 ? i / Ue.DEFAULT_MAX_SCALE : 0, u = n.integerZoom ? n.timeUnit === "s" ? 1 : .001 : 0;
|
|
1728
1732
|
return Math.max(a, s, l, u);
|
|
1729
1733
|
}
|
|
1730
|
-
function
|
|
1734
|
+
function xr(e, t, n, r) {
|
|
1731
1735
|
if (r <= 0) return e;
|
|
1732
1736
|
let i = 2 ** -52 * Math.max(1, Math.abs(t[0]), Math.abs(t[1])) * 16, a = e;
|
|
1733
1737
|
for (let e of n) {
|
|
1734
|
-
let n =
|
|
1738
|
+
let n = vr(e, t);
|
|
1735
1739
|
if (n.length < r) return [...t];
|
|
1736
1740
|
if (n.filter((e) => e >= a[0] && e <= a[1]).length >= r) continue;
|
|
1737
1741
|
let o, s = Infinity, c = Infinity, l = (a[0] + a[1]) / 2;
|
|
@@ -1743,13 +1747,13 @@ function wr(e, t, n, r) {
|
|
|
1743
1747
|
}
|
|
1744
1748
|
return a;
|
|
1745
1749
|
}
|
|
1746
|
-
function
|
|
1747
|
-
let i =
|
|
1750
|
+
function Sr(e, t, n, r) {
|
|
1751
|
+
let i = jn(gr(t), r), a = i[1] - i[0];
|
|
1748
1752
|
if (!Number.isFinite(a) || a <= 0 || Math.abs(e[1] - e[0]) >= a * .999999999999) return i;
|
|
1749
|
-
let o =
|
|
1750
|
-
return
|
|
1753
|
+
let o = xr([Math.max(i[0], Math.min(e[0], e[1])), Math.min(i[1], Math.max(e[0], e[1]))], i, n, _r(r.minVisiblePoints)), s = br(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));
|
|
1754
|
+
return jn([u, u + c], r);
|
|
1751
1755
|
}
|
|
1752
|
-
function
|
|
1756
|
+
function Cr(e, t, n) {
|
|
1753
1757
|
let r = t[1] - t[0], i = e[1] - e[0];
|
|
1754
1758
|
if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return U;
|
|
1755
1759
|
let a = r / i, o = H(t, [0, n]);
|
|
@@ -1757,31 +1761,31 @@ function Er(e, t, n) {
|
|
|
1757
1761
|
}
|
|
1758
1762
|
//#endregion
|
|
1759
1763
|
//#region src/components/interaction/remoteViewport.ts
|
|
1760
|
-
function
|
|
1764
|
+
function wr(e, t) {
|
|
1761
1765
|
let n = e[1] - e[0];
|
|
1762
1766
|
return n >= t[1] - t[0] ? [...t] : e[0] < t[0] ? [t[0], t[0] + n] : e[1] > t[1] ? [t[1] - n, t[1]] : e;
|
|
1763
1767
|
}
|
|
1764
|
-
function
|
|
1768
|
+
function Tr(e) {
|
|
1765
1769
|
let t = e.panXDomain;
|
|
1766
1770
|
return t && t.every(Number.isFinite) && t[0] < t[1] ? t : void 0;
|
|
1767
1771
|
}
|
|
1768
|
-
function
|
|
1769
|
-
let i =
|
|
1770
|
-
return i ?
|
|
1772
|
+
function Er(e, t, n, r) {
|
|
1773
|
+
let i = Tr(r);
|
|
1774
|
+
return i ? wr(e, i) : Sr(e, t, n, r);
|
|
1771
1775
|
}
|
|
1772
|
-
function
|
|
1773
|
-
let i =
|
|
1774
|
-
return i ?
|
|
1776
|
+
function Dr(e, t, n, r) {
|
|
1777
|
+
let i = Tr(r);
|
|
1778
|
+
return i ? Sr(e, i, [], {
|
|
1775
1779
|
...r,
|
|
1776
1780
|
minVisiblePoints: 0,
|
|
1777
1781
|
maxZoomScale: null,
|
|
1778
|
-
minZoomSpan:
|
|
1779
|
-
}) :
|
|
1782
|
+
minZoomSpan: br(t, n, r)
|
|
1783
|
+
}) : Sr(e, t, n, r);
|
|
1780
1784
|
}
|
|
1781
1785
|
//#endregion
|
|
1782
1786
|
//#region src/components/controls/useChartCommands.ts
|
|
1783
|
-
var
|
|
1784
|
-
function
|
|
1787
|
+
var Or = (e, t) => e.every((e, n) => Math.abs(e - t[n]) < 1e-12);
|
|
1788
|
+
function kr(e) {
|
|
1785
1789
|
let n = 0, r = t(() => e.props.displayMode === "independent"), i = () => r.value ? e.layout.trackLayouts.value.map((e) => ({
|
|
1786
1790
|
id: e.id,
|
|
1787
1791
|
tracks: [e]
|
|
@@ -1822,7 +1826,7 @@ function Mr(e) {
|
|
|
1822
1826
|
let [e, n] = l.xDomain, r = (n - e) * (t === "zoom-in" ? .25 : 1);
|
|
1823
1827
|
d = [(e + n) / 2 - r, (e + n) / 2 + r];
|
|
1824
1828
|
}
|
|
1825
|
-
let f =
|
|
1829
|
+
let f = Dr(Mn(d, e.props), u, i.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props), p = t === "reset" || t === "fit", m = p && (r.value ? i.some((t) => e.independentYDomains.value[t.index]) : Object.keys(e.sharedYDomains.value).length > 0), h = i.length && !Or(u, o(i)), g = c ? e.props.presentationMode || !e.props.zoomable ? "disabled" : l && Or(l.xDomain, f) && !m && !h ? "unchanged" : "applied" : "empty-data";
|
|
1826
1830
|
return {
|
|
1827
1831
|
id: n,
|
|
1828
1832
|
tracks: i,
|
|
@@ -1853,8 +1857,8 @@ function Mr(e) {
|
|
|
1853
1857
|
let g = [...e.independentTransforms.value], _ = { ...e.boundaries.value }, v = { ...e.independentYDomains.value };
|
|
1854
1858
|
for (let n of d) if (n.status === "applied") if (t === "fit" && (_[n.id] = n.bounds), t === "reset" && delete _[n.id], p) {
|
|
1855
1859
|
let e = n.tracks[0];
|
|
1856
|
-
g[e.index] =
|
|
1857
|
-
} else e.sharedTransform.value =
|
|
1860
|
+
g[e.index] = Cr(n.xDomain, n.bounds, e.width), n.resetsY && delete v[e.index];
|
|
1861
|
+
} else e.sharedTransform.value = Cr(n.xDomain, n.bounds, e.layout.innerWidth.value), n.resetsY && (e.sharedYDomains.value = {});
|
|
1858
1862
|
d.some((e) => e.status === "applied") && (e.boundaries.value = _, e.independentTransforms.value = g, e.independentYDomains.value = v);
|
|
1859
1863
|
let y = i(), b = d.map((e) => ({
|
|
1860
1864
|
trackId: e.id,
|
|
@@ -1951,17 +1955,17 @@ function Mr(e) {
|
|
|
1951
1955
|
}
|
|
1952
1956
|
//#endregion
|
|
1953
1957
|
//#region src/utils/waveformId.ts
|
|
1954
|
-
var
|
|
1955
|
-
function
|
|
1958
|
+
var Ar = 0;
|
|
1959
|
+
function jr(e = "waveform") {
|
|
1956
1960
|
let t = u();
|
|
1957
|
-
return `${e}-${t ? `v${t.uid}` : `f${++
|
|
1961
|
+
return `${e}-${t ? `v${t.uid}` : `f${++Ar}`}`;
|
|
1958
1962
|
}
|
|
1959
1963
|
//#endregion
|
|
1960
1964
|
//#region src/components/annotation/annotationLayout.ts
|
|
1961
|
-
function
|
|
1965
|
+
function Mr(e, t) {
|
|
1962
1966
|
return e >= Math.min(t[0], t[1]) && e <= Math.max(t[0], t[1]);
|
|
1963
1967
|
}
|
|
1964
|
-
function
|
|
1968
|
+
function Nr(e, t, n) {
|
|
1965
1969
|
let r = Math.max(0, Math.min(e.x, Math.max(0, t - e.width))), i = Math.max(0, Math.min(e.y, Math.max(0, n - e.height)));
|
|
1966
1970
|
return {
|
|
1967
1971
|
...e,
|
|
@@ -1971,11 +1975,11 @@ function Ir(e, t, n) {
|
|
|
1971
1975
|
lineEndY: Math.max(i, Math.min(e.lineEndY, i + e.height))
|
|
1972
1976
|
};
|
|
1973
1977
|
}
|
|
1974
|
-
function
|
|
1975
|
-
let s =
|
|
1978
|
+
function Pr(e, t, n, r, i, a, o) {
|
|
1979
|
+
let s = Lr(e, t, n, r, i);
|
|
1976
1980
|
return s.x >= 0 && s.y >= 0 && s.x + n <= a && s.y + r <= o;
|
|
1977
1981
|
}
|
|
1978
|
-
function
|
|
1982
|
+
function Fr(e, t, n, r, i, a) {
|
|
1979
1983
|
for (let o of [
|
|
1980
1984
|
"top",
|
|
1981
1985
|
"bottom",
|
|
@@ -1985,10 +1989,10 @@ function Rr(e, t, n, r, i, a) {
|
|
|
1985
1989
|
"top-left",
|
|
1986
1990
|
"bottom-right",
|
|
1987
1991
|
"bottom-left"
|
|
1988
|
-
]) if (
|
|
1992
|
+
]) if (Pr(e, t, n, r, o, i, a)) return o;
|
|
1989
1993
|
return "top";
|
|
1990
1994
|
}
|
|
1991
|
-
function
|
|
1995
|
+
function Ir(e, t, n) {
|
|
1992
1996
|
let r = e.x + e.width / 2, i = e.y + e.height / 2, a = t - r, o = n - i;
|
|
1993
1997
|
if (Math.abs(a) * e.height > Math.abs(o) * e.width) {
|
|
1994
1998
|
let t = a >= 0 ? e.x + e.width : e.x, n = a === 0 ? 0 : (t - r) / a;
|
|
@@ -2003,7 +2007,7 @@ function zr(e, t, n) {
|
|
|
2003
2007
|
y: s
|
|
2004
2008
|
};
|
|
2005
2009
|
}
|
|
2006
|
-
function
|
|
2010
|
+
function Lr(e, t, n, r, i) {
|
|
2007
2011
|
let a = e - n / 2, o = t - r / 2, s = e + 32, c = e - n - 32, l = t - r - 32, u = t + 32;
|
|
2008
2012
|
switch (i) {
|
|
2009
2013
|
case "top": return {
|
|
@@ -2040,36 +2044,36 @@ function Br(e, t, n, r, i) {
|
|
|
2040
2044
|
};
|
|
2041
2045
|
}
|
|
2042
2046
|
}
|
|
2043
|
-
function
|
|
2047
|
+
function Rr(e, t, n) {
|
|
2044
2048
|
return {
|
|
2045
|
-
width: Math.min(t, Math.max(16, Math.min(240, Math.ceil(Math.max(...e.map(
|
|
2049
|
+
width: Math.min(t, Math.max(16, Math.min(240, Math.ceil(Math.max(...e.map(Xr), 0)) + 16))),
|
|
2046
2050
|
height: Math.min(n, Math.max(26, (e.length - 1) * 16 + 14 + 16))
|
|
2047
2051
|
};
|
|
2048
2052
|
}
|
|
2049
|
-
function
|
|
2050
|
-
let { width: c, height: l } =
|
|
2053
|
+
function zr(e, t, n, r, i, a, o = 0, s = 0) {
|
|
2054
|
+
let { width: c, height: l } = Rr(n, r, i), u = Lr(e, t, c, l, a), d = Nr({
|
|
2051
2055
|
x: u.x + o,
|
|
2052
2056
|
y: u.y + s,
|
|
2053
2057
|
width: c,
|
|
2054
2058
|
height: l,
|
|
2055
2059
|
lineEndX: e,
|
|
2056
2060
|
lineEndY: t
|
|
2057
|
-
}, r, i), f =
|
|
2061
|
+
}, r, i), f = Ir(d, e, t);
|
|
2058
2062
|
return {
|
|
2059
2063
|
...d,
|
|
2060
2064
|
lineEndX: f.x,
|
|
2061
2065
|
lineEndY: f.y
|
|
2062
2066
|
};
|
|
2063
2067
|
}
|
|
2064
|
-
function
|
|
2068
|
+
function Br(e, t, n, r) {
|
|
2065
2069
|
let i = [];
|
|
2066
2070
|
return e.forEach((e) => {
|
|
2067
|
-
if (!
|
|
2071
|
+
if (!Qr(e)) return;
|
|
2068
2072
|
let a = t.find((t) => t.series.id === e.seriesId);
|
|
2069
2073
|
if (!a) return;
|
|
2070
2074
|
let o = a.xScale.domain(), s = a.yScale.domain();
|
|
2071
|
-
if (!
|
|
2072
|
-
let c =
|
|
2075
|
+
if (!Mr(e.x, o) || !Mr(e.y, s)) return;
|
|
2076
|
+
let c = $r(e.text), l = a.left ?? 0, u = a.width ?? n, d = a.xScale(e.x), f = l + d, p = a.yScale(e.y) + a.top, m = Math.min(a.height, Math.max(0, r - a.top)), h = p - a.top, g = Number.isFinite(e.labelOffsetX) && e.labelOffsetX !== 0 || Number.isFinite(e.labelOffsetY) && e.labelOffsetY !== 0, { width: _, height: v } = Rr(c, u, m), y = g ? "top" : Fr(d, h, _, v, u, m), b = zr(d, h, c, u, m, y, Number.isFinite(e.labelOffsetX) ? e.labelOffsetX : 0, Number.isFinite(e.labelOffsetY) ? e.labelOffsetY : 0), x = {
|
|
2073
2077
|
...b,
|
|
2074
2078
|
x: b.x + l,
|
|
2075
2079
|
y: b.y + a.top,
|
|
@@ -2084,21 +2088,21 @@ function Ur(e, t, n, r) {
|
|
|
2084
2088
|
placement: y,
|
|
2085
2089
|
lines: c,
|
|
2086
2090
|
box: { ...x },
|
|
2087
|
-
style:
|
|
2091
|
+
style: Zr(e.style)
|
|
2088
2092
|
});
|
|
2089
2093
|
}), i;
|
|
2090
2094
|
}
|
|
2091
2095
|
//#endregion
|
|
2092
2096
|
//#region src/components/annotation/markup.ts
|
|
2093
|
-
var
|
|
2097
|
+
var Vr = {
|
|
2094
2098
|
borderColor: "#1677ff",
|
|
2095
2099
|
textColor: "#333333",
|
|
2096
2100
|
backgroundColor: "rgba(255, 255, 255, 0.92)"
|
|
2097
|
-
},
|
|
2098
|
-
function
|
|
2101
|
+
}, Hr = "12px Arial, sans-serif";
|
|
2102
|
+
function Ur(e) {
|
|
2099
2103
|
return vt(e) ? e : X(e);
|
|
2100
2104
|
}
|
|
2101
|
-
function
|
|
2105
|
+
function Wr(e, t, n) {
|
|
2102
2106
|
let r = null, i = e.series.source ?? X(e.series.points);
|
|
2103
2107
|
for (let a = 0; a < i.length; a += 1) {
|
|
2104
2108
|
let o = i.pointAt(a);
|
|
@@ -2113,14 +2117,14 @@ function qr(e, t, n) {
|
|
|
2113
2117
|
}
|
|
2114
2118
|
return r;
|
|
2115
2119
|
}
|
|
2116
|
-
function
|
|
2117
|
-
let n =
|
|
2120
|
+
function Gr(e, t) {
|
|
2121
|
+
let n = Ur(e);
|
|
2118
2122
|
if (!n.length || !Number.isFinite(t)) return null;
|
|
2119
2123
|
let r = n.visibleRange([t, t]).start, i = n.pointAt(Math.min(r, n.length - 1)), a = n.pointAt(Math.max(0, r - 1));
|
|
2120
2124
|
return Math.abs(t - a.x) < Math.abs(i.x - t) ? a : i;
|
|
2121
2125
|
}
|
|
2122
|
-
function
|
|
2123
|
-
let r =
|
|
2126
|
+
function Kr(e, t, n = "linear") {
|
|
2127
|
+
let r = Ur(e);
|
|
2124
2128
|
if (!r.length || !Number.isFinite(t)) return null;
|
|
2125
2129
|
let i = r.pointAt(0), a = r.pointAt(r.length - 1);
|
|
2126
2130
|
if (t < i.x || t > a.x) return null;
|
|
@@ -2155,29 +2159,29 @@ function Yr(e, t, n = "linear") {
|
|
|
2155
2159
|
y: c.y + (s.y - c.y) * u
|
|
2156
2160
|
};
|
|
2157
2161
|
}
|
|
2158
|
-
function
|
|
2162
|
+
function qr(e, t, n, r) {
|
|
2159
2163
|
return e.flatMap((e) => {
|
|
2160
2164
|
if (e.series.lineType === "none") {
|
|
2161
|
-
let t =
|
|
2165
|
+
let t = Wr(e, n, r);
|
|
2162
2166
|
return t ? [{
|
|
2163
2167
|
trackIndex: e.index,
|
|
2164
2168
|
seriesId: e.series.id,
|
|
2165
2169
|
name: e.series.name?.trim() || e.series.id,
|
|
2166
|
-
color: e.series.color ||
|
|
2170
|
+
color: e.series.color || Vr.borderColor,
|
|
2167
2171
|
unit: e.series.unit,
|
|
2168
2172
|
...t
|
|
2169
2173
|
}] : [];
|
|
2170
2174
|
}
|
|
2171
|
-
let i =
|
|
2175
|
+
let i = Kr(e.series.source ?? X(e.series.points), t, e.series.lineType);
|
|
2172
2176
|
if (!i) return [];
|
|
2173
|
-
let a =
|
|
2177
|
+
let a = Gr(e.series.source ?? X(e.series.points), t);
|
|
2174
2178
|
if (!a) return [];
|
|
2175
2179
|
let o = e.xScale(i.x), s = e.top + e.yScale(i.y), c = e.xScale(a.x), l = e.top + e.yScale(a.y);
|
|
2176
2180
|
return [{
|
|
2177
2181
|
trackIndex: e.index,
|
|
2178
2182
|
seriesId: e.series.id,
|
|
2179
2183
|
name: e.series.name?.trim() || e.series.id,
|
|
2180
|
-
color: e.series.color ||
|
|
2184
|
+
color: e.series.color || Vr.borderColor,
|
|
2181
2185
|
unit: e.series.unit,
|
|
2182
2186
|
point: a,
|
|
2183
2187
|
screenX: c,
|
|
@@ -2186,24 +2190,24 @@ function Xr(e, t, n, r) {
|
|
|
2186
2190
|
}];
|
|
2187
2191
|
}).sort((e, t) => e.distance - t.distance || e.trackIndex - t.trackIndex);
|
|
2188
2192
|
}
|
|
2189
|
-
var
|
|
2190
|
-
function
|
|
2193
|
+
var Jr;
|
|
2194
|
+
function Yr(e) {
|
|
2191
2195
|
return Array.from(e).reduce((e, t) => e + (t.codePointAt(0) > 255 ? 12 : 6.7), 0);
|
|
2192
2196
|
}
|
|
2193
|
-
function
|
|
2194
|
-
return
|
|
2197
|
+
function Xr(e) {
|
|
2198
|
+
return Jr === void 0 && (Jr = null, typeof document < "u" && typeof CanvasRenderingContext2D < "u" && (Jr = document.createElement("canvas").getContext("2d"), Jr && (Jr.font = Hr))), Jr?.measureText(e).width ?? Yr(e);
|
|
2195
2199
|
}
|
|
2196
|
-
function
|
|
2200
|
+
function Zr(e) {
|
|
2197
2201
|
return {
|
|
2198
|
-
borderColor: e?.borderColor ||
|
|
2199
|
-
textColor: e?.textColor ||
|
|
2200
|
-
backgroundColor: e?.backgroundColor ||
|
|
2202
|
+
borderColor: e?.borderColor || Vr.borderColor,
|
|
2203
|
+
textColor: e?.textColor || Vr.textColor,
|
|
2204
|
+
backgroundColor: e?.backgroundColor || Vr.backgroundColor
|
|
2201
2205
|
};
|
|
2202
2206
|
}
|
|
2203
|
-
function
|
|
2207
|
+
function Qr(e) {
|
|
2204
2208
|
return !!(e.id && e.seriesId) && Number.isFinite(e.x) && Number.isFinite(e.y) && typeof e.text == "string" && e.text.trim().length > 0;
|
|
2205
2209
|
}
|
|
2206
|
-
function
|
|
2210
|
+
function $r(e, t = 10) {
|
|
2207
2211
|
let n = [];
|
|
2208
2212
|
return e.split(/\r?\n/).forEach((e) => {
|
|
2209
2213
|
let r = Array.from(e);
|
|
@@ -2216,30 +2220,30 @@ function ni(e, t = 10) {
|
|
|
2216
2220
|
}
|
|
2217
2221
|
//#endregion
|
|
2218
2222
|
//#region src/components/annotation/WaveformAnnotationLayer.vue?vue&type=script&setup=true&lang.ts
|
|
2219
|
-
var
|
|
2223
|
+
var ei = [
|
|
2220
2224
|
"data-annotation-id",
|
|
2221
2225
|
"data-placement",
|
|
2222
2226
|
"onPointerdown",
|
|
2223
2227
|
"onContextmenu"
|
|
2224
|
-
],
|
|
2228
|
+
], ti = ["id"], ni = ["fill"], ri = [
|
|
2225
2229
|
"x1",
|
|
2226
2230
|
"y1",
|
|
2227
2231
|
"x2",
|
|
2228
2232
|
"y2",
|
|
2229
2233
|
"stroke",
|
|
2230
2234
|
"marker-end"
|
|
2231
|
-
],
|
|
2235
|
+
], ii = [
|
|
2232
2236
|
"x",
|
|
2233
2237
|
"y",
|
|
2234
2238
|
"width",
|
|
2235
2239
|
"height",
|
|
2236
2240
|
"fill",
|
|
2237
2241
|
"stroke"
|
|
2238
|
-
],
|
|
2242
|
+
], ai = [
|
|
2239
2243
|
"x",
|
|
2240
2244
|
"y",
|
|
2241
2245
|
"fill"
|
|
2242
|
-
],
|
|
2246
|
+
], oi = ["x", "dy"], si = /*@__PURE__*/ l({
|
|
2243
2247
|
__name: "WaveformAnnotationLayer",
|
|
2244
2248
|
props: {
|
|
2245
2249
|
annotations: {},
|
|
@@ -2385,7 +2389,7 @@ var ri = [
|
|
|
2385
2389
|
}, [a("path", {
|
|
2386
2390
|
d: "M0,0 L8,4 L0,8 Z",
|
|
2387
2391
|
fill: t.style.borderColor
|
|
2388
|
-
}, null, 8,
|
|
2392
|
+
}, null, 8, ni)], 8, ti)]),
|
|
2389
2393
|
a("line", {
|
|
2390
2394
|
class: "waveform-annotation__arrow",
|
|
2391
2395
|
x1: v(t).lineEndX,
|
|
@@ -2394,7 +2398,7 @@ var ri = [
|
|
|
2394
2398
|
y2: t.anchorY,
|
|
2395
2399
|
stroke: t.style.borderColor,
|
|
2396
2400
|
"marker-end": `url(#${N(t.annotation.id)})`
|
|
2397
|
-
}, null, 8,
|
|
2401
|
+
}, null, 8, ri),
|
|
2398
2402
|
a("rect", {
|
|
2399
2403
|
class: "waveform-annotation__box",
|
|
2400
2404
|
x: v(t).x,
|
|
@@ -2403,27 +2407,27 @@ var ri = [
|
|
|
2403
2407
|
height: v(t).height,
|
|
2404
2408
|
fill: t.style.backgroundColor,
|
|
2405
2409
|
stroke: t.style.borderColor
|
|
2406
|
-
}, null, 8,
|
|
2410
|
+
}, null, 8, ii),
|
|
2407
2411
|
a("text", {
|
|
2408
2412
|
class: "waveform-annotation__text",
|
|
2409
2413
|
x: v(t).x + v(t).width / 2,
|
|
2410
2414
|
y: v(t).y + v(t).height / 2 - (t.lines.length - 1) * O(16) / 2,
|
|
2411
2415
|
fill: t.style.textColor,
|
|
2412
|
-
style: m({ font: O(
|
|
2416
|
+
style: m({ font: O(Hr) }),
|
|
2413
2417
|
"text-anchor": "middle",
|
|
2414
2418
|
"dominant-baseline": "central"
|
|
2415
2419
|
}, [(y(!0), i(e, null, S(t.lines, (e, n) => (y(), i("tspan", {
|
|
2416
2420
|
key: `${t.annotation.id}-${n}`,
|
|
2417
2421
|
x: v(t).x + v(t).width / 2,
|
|
2418
2422
|
dy: n === 0 ? 0 : O(16)
|
|
2419
|
-
}, E(e), 9,
|
|
2420
|
-
], 40,
|
|
2423
|
+
}, E(e), 9, oi))), 128))], 12, ai)
|
|
2424
|
+
], 40, ei))), 128))], 2)) : r("", !0);
|
|
2421
2425
|
}
|
|
2422
|
-
}),
|
|
2426
|
+
}), ci = (e, t) => {
|
|
2423
2427
|
let n = e.__vccOpts || e;
|
|
2424
2428
|
for (let [e, r] of t) n[e] = r;
|
|
2425
2429
|
return n;
|
|
2426
|
-
},
|
|
2430
|
+
}, li = /*#__PURE__*/ ci(si, [["__scopeId", "data-v-18b3ad3a"]]), ui = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
2427
2431
|
__name: "WaveformAnnotationContextMenu",
|
|
2428
2432
|
props: {
|
|
2429
2433
|
visible: { type: Boolean },
|
|
@@ -2465,50 +2469,50 @@ var ri = [
|
|
|
2465
2469
|
}, "取消")
|
|
2466
2470
|
], 36)) : r("", !0);
|
|
2467
2471
|
}
|
|
2468
|
-
}), [["__scopeId", "data-v-c70c98a1"]]),
|
|
2472
|
+
}), [["__scopeId", "data-v-c70c98a1"]]), di = 1;
|
|
2469
2473
|
function Q(e) {
|
|
2470
2474
|
throw TypeError(`Invalid waveform annotation file: ${e}`);
|
|
2471
2475
|
}
|
|
2472
|
-
function
|
|
2476
|
+
function fi(e) {
|
|
2473
2477
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
2474
2478
|
}
|
|
2475
|
-
function
|
|
2479
|
+
function pi(e, t, n) {
|
|
2476
2480
|
let r = e[t];
|
|
2477
2481
|
return (typeof r != "string" || r.trim().length === 0) && Q(`${n}.${t} must be a non-empty string`), r;
|
|
2478
2482
|
}
|
|
2479
|
-
function
|
|
2483
|
+
function mi(e, t, n) {
|
|
2480
2484
|
let r = e[t];
|
|
2481
2485
|
if (r !== void 0) return typeof r != "string" && Q(`${n}.${t} must be a string`), r;
|
|
2482
2486
|
}
|
|
2483
|
-
function
|
|
2487
|
+
function hi(e, t, n) {
|
|
2484
2488
|
let r = e[t];
|
|
2485
2489
|
return (typeof r != "number" || !Number.isFinite(r)) && Q(`${n}.${t} must be a finite number`), r;
|
|
2486
2490
|
}
|
|
2487
|
-
function
|
|
2491
|
+
function gi(e, t, n) {
|
|
2488
2492
|
let r = e[t];
|
|
2489
2493
|
if (r !== void 0) return (typeof r != "number" || !Number.isFinite(r)) && Q(`${n}.${t} must be a finite number`), r;
|
|
2490
2494
|
}
|
|
2491
|
-
function
|
|
2495
|
+
function _i(e, t) {
|
|
2492
2496
|
if (e === void 0) return;
|
|
2493
|
-
|
|
2494
|
-
let n =
|
|
2497
|
+
fi(e) || Q(`${t} must be an object`);
|
|
2498
|
+
let n = mi(e, "borderColor", t), r = mi(e, "textColor", t), i = mi(e, "backgroundColor", t);
|
|
2495
2499
|
return {
|
|
2496
2500
|
...n !== void 0 && { borderColor: n },
|
|
2497
2501
|
...r !== void 0 && { textColor: r },
|
|
2498
2502
|
...i !== void 0 && { backgroundColor: i }
|
|
2499
2503
|
};
|
|
2500
2504
|
}
|
|
2501
|
-
function
|
|
2505
|
+
function vi(e, t) {
|
|
2502
2506
|
let n = `annotations[${t}]`;
|
|
2503
|
-
|
|
2504
|
-
let r =
|
|
2507
|
+
fi(e) || Q(`${n} must be an object`);
|
|
2508
|
+
let r = pi(e, "text", n);
|
|
2505
2509
|
r.length > 40 && Q(`${n}.text must not exceed 40 characters`);
|
|
2506
|
-
let i =
|
|
2510
|
+
let i = gi(e, "labelOffsetX", n), a = gi(e, "labelOffsetY", n), o = mi(e, "createdAt", n), s = _i(e.style, `${n}.style`);
|
|
2507
2511
|
return {
|
|
2508
|
-
id:
|
|
2509
|
-
seriesId:
|
|
2510
|
-
x:
|
|
2511
|
-
y:
|
|
2512
|
+
id: pi(e, "id", n),
|
|
2513
|
+
seriesId: pi(e, "seriesId", n),
|
|
2514
|
+
x: hi(e, "x", n),
|
|
2515
|
+
y: hi(e, "y", n),
|
|
2512
2516
|
text: r,
|
|
2513
2517
|
...i !== void 0 && { labelOffsetX: i },
|
|
2514
2518
|
...a !== void 0 && { labelOffsetY: a },
|
|
@@ -2516,19 +2520,19 @@ function xi(e, t) {
|
|
|
2516
2520
|
...o !== void 0 && { createdAt: o }
|
|
2517
2521
|
};
|
|
2518
2522
|
}
|
|
2519
|
-
function
|
|
2520
|
-
let t = e.map(
|
|
2523
|
+
function yi(e) {
|
|
2524
|
+
let t = e.map(vi), n = /* @__PURE__ */ new Set();
|
|
2521
2525
|
return t.forEach((e, t) => {
|
|
2522
2526
|
n.has(e.id) && Q(`annotations[${t}].id must be unique`), n.add(e.id);
|
|
2523
2527
|
}), t;
|
|
2524
2528
|
}
|
|
2525
|
-
function
|
|
2529
|
+
function bi(e) {
|
|
2526
2530
|
return JSON.stringify({
|
|
2527
|
-
version:
|
|
2528
|
-
annotations:
|
|
2531
|
+
version: di,
|
|
2532
|
+
annotations: yi(e)
|
|
2529
2533
|
}, null, 2);
|
|
2530
2534
|
}
|
|
2531
|
-
function
|
|
2535
|
+
function xi(e) {
|
|
2532
2536
|
typeof e != "string" && Q("input must be a JSON string");
|
|
2533
2537
|
let t;
|
|
2534
2538
|
try {
|
|
@@ -2536,11 +2540,11 @@ function wi(e) {
|
|
|
2536
2540
|
} catch {
|
|
2537
2541
|
Q("input is not valid JSON");
|
|
2538
2542
|
}
|
|
2539
|
-
return
|
|
2543
|
+
return fi(t) || Q("root must be an object"), t.version !== di && Q(`version must be ${di}`), Array.isArray(t.annotations) || Q("annotations must be an array"), yi(t.annotations);
|
|
2540
2544
|
}
|
|
2541
2545
|
//#endregion
|
|
2542
2546
|
//#region src/components/annotation/useWaveformAnnotationInteraction.ts
|
|
2543
|
-
function
|
|
2547
|
+
function Si() {
|
|
2544
2548
|
let e = x(null), t = x(null);
|
|
2545
2549
|
return {
|
|
2546
2550
|
editorDraft: e,
|
|
@@ -2580,11 +2584,11 @@ function Ti() {
|
|
|
2580
2584
|
}
|
|
2581
2585
|
//#endregion
|
|
2582
2586
|
//#region src/components/annotation/useWaveformChartAnnotations.ts
|
|
2583
|
-
var
|
|
2584
|
-
function
|
|
2585
|
-
return
|
|
2587
|
+
var Ci = 0;
|
|
2588
|
+
function wi() {
|
|
2589
|
+
return Ci += 1, typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `annotation-${Date.now()}-${Ci}`;
|
|
2586
2590
|
}
|
|
2587
|
-
function
|
|
2591
|
+
function Ti(e) {
|
|
2588
2592
|
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, b = x("");
|
|
2589
2593
|
function S(e) {
|
|
2590
2594
|
if (!i.value.some((t) => t.id === e)) return;
|
|
@@ -2617,7 +2621,7 @@ function Oi(e) {
|
|
|
2617
2621
|
};
|
|
2618
2622
|
}
|
|
2619
2623
|
function T(e, t, n) {
|
|
2620
|
-
b.value = "", s.openCreate(e,
|
|
2624
|
+
b.value = "", s.openCreate(e, wi, t), c.value = n;
|
|
2621
2625
|
let r = s.editorDraft.value, i = l.value.find((t) => t.index === e.trackIndex)?.seriesList.find((t) => t.id === e.seriesId);
|
|
2622
2626
|
r?.mode === "add" && (r.annotation.style = {
|
|
2623
2627
|
borderColor: i?.color || "#1677ff",
|
|
@@ -2677,7 +2681,7 @@ function Oi(e) {
|
|
|
2677
2681
|
let e = l.value[n];
|
|
2678
2682
|
return e?.hasVisibleSeries ? e : void 0;
|
|
2679
2683
|
}
|
|
2680
|
-
return
|
|
2684
|
+
return Zn(l.value.filter((e) => e.hasVisibleSeries), e, t);
|
|
2681
2685
|
}
|
|
2682
2686
|
function A(e, t) {
|
|
2683
2687
|
let n = e.currentTarget;
|
|
@@ -2686,7 +2690,7 @@ function Oi(e) {
|
|
|
2686
2690
|
if (!o) return null;
|
|
2687
2691
|
let s = Math.max(0, Math.min(m.value, r)), c = Math.max(0, Math.min(o.width, s - o.left)), d = o.xScale.invert(c);
|
|
2688
2692
|
return {
|
|
2689
|
-
candidates:
|
|
2693
|
+
candidates: qr(u(o), d, c, a),
|
|
2690
2694
|
editorAnchor: C(e, t)
|
|
2691
2695
|
};
|
|
2692
2696
|
}
|
|
@@ -2731,7 +2735,7 @@ function Oi(e) {
|
|
|
2731
2735
|
let e = s.contextMenu.value, n = t.annotations.find((t) => t.id === e?.annotationId);
|
|
2732
2736
|
if (!n) return;
|
|
2733
2737
|
let r = l.value.find((e) => e.seriesList.some((e) => e.id === n.seriesId));
|
|
2734
|
-
c.value = r ?
|
|
2738
|
+
c.value = r ? qr(u(r), n.x, r.xScale(n.x), r.top + d(r, n.seriesId)(n.y)) : [], s.openEdit(n, e?.editorAnchor ?? w(n));
|
|
2735
2739
|
}
|
|
2736
2740
|
function L() {
|
|
2737
2741
|
if (y.value) return;
|
|
@@ -2761,7 +2765,7 @@ function Oi(e) {
|
|
|
2761
2765
|
}
|
|
2762
2766
|
//#endregion
|
|
2763
2767
|
//#region src/components/interaction/useWaveformHover.ts
|
|
2764
|
-
function
|
|
2768
|
+
function Ei(e) {
|
|
2765
2769
|
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) => {
|
|
2766
2770
|
let r = n.points[t];
|
|
2767
2771
|
return r?.id === e.id && r.trackIndex === e.trackIndex && r.point === e.point;
|
|
@@ -2846,14 +2850,14 @@ function ki(e) {
|
|
|
2846
2850
|
}
|
|
2847
2851
|
//#endregion
|
|
2848
2852
|
//#region src/components/interaction/pointerCapture.ts
|
|
2849
|
-
function
|
|
2853
|
+
function Di(e, t) {
|
|
2850
2854
|
try {
|
|
2851
2855
|
e?.releasePointerCapture?.(t);
|
|
2852
2856
|
} catch {}
|
|
2853
2857
|
}
|
|
2854
2858
|
//#endregion
|
|
2855
2859
|
//#region src/components/interaction/viewportInteractionState.ts
|
|
2856
|
-
function
|
|
2860
|
+
function Oi(e) {
|
|
2857
2861
|
return {
|
|
2858
2862
|
...e,
|
|
2859
2863
|
currentX: e.startX,
|
|
@@ -2862,37 +2866,37 @@ function ji(e) {
|
|
|
2862
2866
|
yDomains: Object.fromEntries(Object.entries(e.yDomains).map(([e, t]) => [e, [...t]]))
|
|
2863
2867
|
};
|
|
2864
2868
|
}
|
|
2865
|
-
function
|
|
2869
|
+
function ki(e, t) {
|
|
2866
2870
|
return {
|
|
2867
2871
|
...e,
|
|
2868
2872
|
...t
|
|
2869
2873
|
};
|
|
2870
2874
|
}
|
|
2871
|
-
function
|
|
2875
|
+
function Ai(e) {
|
|
2872
2876
|
return {
|
|
2873
2877
|
state: e,
|
|
2874
2878
|
accepted: !1,
|
|
2875
2879
|
completed: null
|
|
2876
2880
|
};
|
|
2877
2881
|
}
|
|
2878
|
-
function
|
|
2882
|
+
function ji(e, t) {
|
|
2879
2883
|
switch (t.type) {
|
|
2880
|
-
case "begin": return e ?
|
|
2881
|
-
state:
|
|
2884
|
+
case "begin": return e ? Ai(e) : {
|
|
2885
|
+
state: Oi(t.gesture),
|
|
2882
2886
|
accepted: !0,
|
|
2883
2887
|
completed: null
|
|
2884
2888
|
};
|
|
2885
|
-
case "move": return !e || e.pointerId !== t.pointerId ?
|
|
2886
|
-
state:
|
|
2889
|
+
case "move": return !e || e.pointerId !== t.pointerId ? Ai(e) : {
|
|
2890
|
+
state: ki(e, t.position),
|
|
2887
2891
|
accepted: !0,
|
|
2888
2892
|
completed: null
|
|
2889
2893
|
};
|
|
2890
|
-
case "finish": return !e || e.pointerId !== t.pointerId ?
|
|
2894
|
+
case "finish": return !e || e.pointerId !== t.pointerId ? Ai(e) : {
|
|
2891
2895
|
state: null,
|
|
2892
2896
|
accepted: !0,
|
|
2893
|
-
completed:
|
|
2897
|
+
completed: ki(e, t.position)
|
|
2894
2898
|
};
|
|
2895
|
-
case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ?
|
|
2899
|
+
case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ? Ai(e) : {
|
|
2896
2900
|
state: null,
|
|
2897
2901
|
accepted: !0,
|
|
2898
2902
|
completed: null
|
|
@@ -2906,7 +2910,7 @@ function Pi(e, t) {
|
|
|
2906
2910
|
}
|
|
2907
2911
|
//#endregion
|
|
2908
2912
|
//#region src/components/interaction/viewportDomain.ts
|
|
2909
|
-
function
|
|
2913
|
+
function Mi(e) {
|
|
2910
2914
|
return (t, n) => {
|
|
2911
2915
|
if (!(!Number.isFinite(t[0]) || !Number.isFinite(t[1]) || t[0] === t[1])) {
|
|
2912
2916
|
if (e.cancelPendingZoom(), e.cancelViewportDrag(), e.props.displayMode === "independent") {
|
|
@@ -2914,12 +2918,12 @@ function Fi(e) {
|
|
|
2914
2918
|
r.forEach((n) => {
|
|
2915
2919
|
let r = e.trackLayouts.value.find((e) => e.index === n);
|
|
2916
2920
|
if (!r) return;
|
|
2917
|
-
let a = e.resolveInitialTrackDomain(r), o =
|
|
2918
|
-
i[n] =
|
|
2921
|
+
let a = e.resolveInitialTrackDomain(r), o = Dr(t, a, [r.seriesList], e.props);
|
|
2922
|
+
i[n] = Cr(o, a, r.width);
|
|
2919
2923
|
}), e.independentTransforms.value = i;
|
|
2920
2924
|
} else {
|
|
2921
|
-
let n = e.initialXDomain.value, r =
|
|
2922
|
-
e.sharedTransform.value =
|
|
2925
|
+
let n = e.initialXDomain.value, r = Dr(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
|
|
2926
|
+
e.sharedTransform.value = Cr(r, n, e.innerWidth.value);
|
|
2923
2927
|
}
|
|
2924
2928
|
e.clearHover(), e.editorSeriesOptions.value = [], f(e.configureZoom);
|
|
2925
2929
|
}
|
|
@@ -2927,34 +2931,34 @@ function Fi(e) {
|
|
|
2927
2931
|
}
|
|
2928
2932
|
//#endregion
|
|
2929
2933
|
//#region src/components/interaction/viewportPan.ts
|
|
2930
|
-
function
|
|
2934
|
+
function Ni(e) {
|
|
2931
2935
|
let { props: t, emit: n, resolveInitialTrackDomain: r, initialXDomain: i, independentTransforms: a, sharedTransform: o, innerWidth: s, trackLayouts: c, chartTracks: l, independentYDomains: u, sharedYDomains: d } = e;
|
|
2932
2936
|
return (e, f) => {
|
|
2933
|
-
let p = f.width || 1, m = f.height || 1, h = e.currentX - e.startX, g = e.currentY - e.startY, _ = e.xDomain[1] - e.xDomain[0], v = e.independent ? r(f) : i.value, y =
|
|
2937
|
+
let p = f.width || 1, m = f.height || 1, h = e.currentX - e.startX, g = e.currentY - e.startY, _ = e.xDomain[1] - e.xDomain[0], v = e.independent ? r(f) : i.value, y = Tr(t) ?? v, b = wr(Nn(wr([e.xDomain[0] - h / p * _, e.xDomain[1] - h / p * _], y), t), y);
|
|
2934
2938
|
if (e.independent) {
|
|
2935
2939
|
let e = [...a.value];
|
|
2936
|
-
e[f.index] =
|
|
2937
|
-
} else o.value =
|
|
2938
|
-
if (
|
|
2940
|
+
e[f.index] = Cr(b, v, p), a.value = e;
|
|
2941
|
+
} else o.value = Cr(b, v, s.value);
|
|
2942
|
+
if (Tr(t)) return n("zoom-change", b), b;
|
|
2939
2943
|
let x = e.independent ? [f] : c.value.filter((e) => e.hasVisibleSeries), S = { ...u.value }, C = { ...d.value };
|
|
2940
2944
|
return x.forEach((n) => {
|
|
2941
2945
|
let r = l.value.find((e) => e.id === n.id);
|
|
2942
2946
|
if (r && Ze(r, t.yDomain, t.yDomains)) return;
|
|
2943
|
-
let i = n.series?.trackId ?? n.series?.id ?? n.id, a = e.yDomains[i] ?? n.yScale.domain(), o = r?.yDomain ?? a, s = a[1] - a[0], c =
|
|
2947
|
+
let i = n.series?.trackId ?? n.series?.id ?? n.id, a = e.yDomains[i] ?? n.yScale.domain(), o = r?.yDomain ?? a, s = a[1] - a[0], c = wr([a[0] + g / m * s, a[1] + g / m * s], o);
|
|
2944
2948
|
e.independent ? S[n.index] = c : C[i] = c;
|
|
2945
2949
|
}), e.independent ? u.value = S : d.value = C, n("zoom-change", b), b;
|
|
2946
2950
|
};
|
|
2947
2951
|
}
|
|
2948
2952
|
//#endregion
|
|
2949
2953
|
//#region src/components/interaction/zoomEventPayload.ts
|
|
2950
|
-
function
|
|
2954
|
+
function Pi(e) {
|
|
2951
2955
|
return [...e].sort().join("\0");
|
|
2952
2956
|
}
|
|
2953
|
-
function
|
|
2954
|
-
let n =
|
|
2955
|
-
return e.find((e) =>
|
|
2957
|
+
function Fi(e, t) {
|
|
2958
|
+
let n = Pi(t);
|
|
2959
|
+
return e.find((e) => Pi(e.seriesList.map((e) => e.id)) === n);
|
|
2956
2960
|
}
|
|
2957
|
-
function
|
|
2961
|
+
function Ii(e, t, n, r) {
|
|
2958
2962
|
e("zoom-intent", r ? {
|
|
2959
2963
|
start: t[0],
|
|
2960
2964
|
end: t[1],
|
|
@@ -2967,9 +2971,9 @@ function zi(e, t, n, r) {
|
|
|
2967
2971
|
gesture: "box"
|
|
2968
2972
|
});
|
|
2969
2973
|
}
|
|
2970
|
-
function
|
|
2974
|
+
function Li(e, t, n) {
|
|
2971
2975
|
for (let r of n) {
|
|
2972
|
-
let n =
|
|
2976
|
+
let n = Fi(t, r);
|
|
2973
2977
|
if (!n) continue;
|
|
2974
2978
|
let i = n.xScale.domain(), a = n.yScale.domain();
|
|
2975
2979
|
e("zoom-end", {
|
|
@@ -2983,7 +2987,7 @@ function Bi(e, t, n) {
|
|
|
2983
2987
|
});
|
|
2984
2988
|
}
|
|
2985
2989
|
}
|
|
2986
|
-
function
|
|
2990
|
+
function Ri(e, t, n) {
|
|
2987
2991
|
let r = n.filter((e) => e.hasVisibleSeries);
|
|
2988
2992
|
if (r.length === 1) {
|
|
2989
2993
|
let n = r[0]?.yScale.domain();
|
|
@@ -3005,13 +3009,13 @@ function Vi(e, t, n) {
|
|
|
3005
3009
|
}
|
|
3006
3010
|
//#endregion
|
|
3007
3011
|
//#region src/components/interaction/useWaveformViewport.ts
|
|
3008
|
-
function
|
|
3012
|
+
function zi(e) {
|
|
3009
3013
|
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: C, cancelPendingZoom: w, clearHover: E, resolveTrackAtPointer: D } = e, O = T(), k = (e, t) => {
|
|
3010
3014
|
let n = O.value, r = t?.currentTarget;
|
|
3011
|
-
|
|
3015
|
+
Di(n, e), r && r !== n && Di(r, e);
|
|
3012
3016
|
}, A = (e, t) => {
|
|
3013
3017
|
let n = i.value;
|
|
3014
|
-
!n || n.pointerId !== e || (k(e, t), i.value =
|
|
3018
|
+
!n || n.pointerId !== e || (k(e, t), i.value = ji(i.value, {
|
|
3015
3019
|
type: "cancel",
|
|
3016
3020
|
pointerId: e
|
|
3017
3021
|
}).state, O.value = void 0);
|
|
@@ -3031,7 +3035,7 @@ function Hi(e) {
|
|
|
3031
3035
|
if (!n.zoomable && !s || !_.value && !s || e.button !== 0) return;
|
|
3032
3036
|
let c = e.currentTarget, d = o.value.find((e) => e.index === t);
|
|
3033
3037
|
if (!d) return;
|
|
3034
|
-
let [f, p] = V(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 =
|
|
3038
|
+
let [f, p] = V(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 = ji(i.value, {
|
|
3035
3039
|
type: "begin",
|
|
3036
3040
|
gesture: {
|
|
3037
3041
|
trackIndex: t,
|
|
@@ -3049,13 +3053,13 @@ function Hi(e) {
|
|
|
3049
3053
|
if (!d.value) return;
|
|
3050
3054
|
let [t, n] = V(e, d.value), r = D(t, n), i = (r?.hasVisibleSeries ? r : void 0) ?? o.value.find((e) => e.hasVisibleSeries);
|
|
3051
3055
|
i && N(e, i.index, !1);
|
|
3052
|
-
}, F =
|
|
3056
|
+
}, F = Ni(e), I = (e) => {
|
|
3053
3057
|
if (v.value) return;
|
|
3054
3058
|
let t = i.value, n = O.value;
|
|
3055
3059
|
if (!t || !n || e.pointerId !== t.pointerId) return;
|
|
3056
3060
|
let r = o.value.find((e) => e.index === t.trackIndex);
|
|
3057
3061
|
if (!r) return;
|
|
3058
|
-
let [a, s] = V(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 =
|
|
3062
|
+
let [a, s] = V(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 = ji(i.value, {
|
|
3059
3063
|
type: "move",
|
|
3060
3064
|
pointerId: e.pointerId,
|
|
3061
3065
|
position: {
|
|
@@ -3074,12 +3078,12 @@ function Hi(e) {
|
|
|
3074
3078
|
if (!t || (e.independent ? !x(t) : !S())) return;
|
|
3075
3079
|
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));
|
|
3076
3080
|
if (s - a < 6) return;
|
|
3077
|
-
let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h =
|
|
3081
|
+
let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h = Dr([t.xScale.invert(a), t.xScale.invert(s)], u, d, n);
|
|
3078
3082
|
if (e.independent) {
|
|
3079
3083
|
let e = [...m.value];
|
|
3080
|
-
e[t.index] =
|
|
3081
|
-
} else p.value =
|
|
3082
|
-
|
|
3084
|
+
e[t.index] = Cr(h, u, t.width), m.value = e;
|
|
3085
|
+
} else p.value = Cr(h, u, l.value);
|
|
3086
|
+
Ii(r, h, t, e.independent);
|
|
3083
3087
|
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()]));
|
|
3084
3088
|
if (r("zoom-change", h), e.independent) {
|
|
3085
3089
|
let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
|
|
@@ -3120,7 +3124,7 @@ function Hi(e) {
|
|
|
3120
3124
|
A(t.pointerId, e);
|
|
3121
3125
|
return;
|
|
3122
3126
|
}
|
|
3123
|
-
let [s, c] = V(e, a), d = Math.max(0, Math.min(t.independent ? n.width : l.value, s)), p = Math.max(0, Math.min(t.independent ? n.height : u.value, c)), m =
|
|
3127
|
+
let [s, c] = V(e, a), d = Math.max(0, Math.min(t.independent ? n.width : l.value, s)), p = Math.max(0, Math.min(t.independent ? n.height : u.value, c)), m = ji(i.value, {
|
|
3124
3128
|
type: "finish",
|
|
3125
3129
|
pointerId: e.pointerId,
|
|
3126
3130
|
position: {
|
|
@@ -3160,7 +3164,7 @@ function Hi(e) {
|
|
|
3160
3164
|
finishViewportDrag: z,
|
|
3161
3165
|
cancelViewportDrag: L,
|
|
3162
3166
|
resetViewport: B,
|
|
3163
|
-
setViewportDomain:
|
|
3167
|
+
setViewportDomain: Mi({
|
|
3164
3168
|
props: n,
|
|
3165
3169
|
trackLayouts: o,
|
|
3166
3170
|
initialXDomain: c,
|
|
@@ -3192,7 +3196,7 @@ function Hi(e) {
|
|
|
3192
3196
|
}
|
|
3193
3197
|
//#endregion
|
|
3194
3198
|
//#region src/components/utils/useAnimationFrameThrottle.ts
|
|
3195
|
-
function
|
|
3199
|
+
function Bi() {
|
|
3196
3200
|
let e = null, t = null;
|
|
3197
3201
|
function n(n) {
|
|
3198
3202
|
t = n, e === null && (e = requestAnimationFrame(() => {
|
|
@@ -3221,11 +3225,11 @@ function Ui() {
|
|
|
3221
3225
|
}
|
|
3222
3226
|
//#endregion
|
|
3223
3227
|
//#region src/components/interaction/useWaveformZoom.ts
|
|
3224
|
-
function
|
|
3225
|
-
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 =
|
|
3228
|
+
function Vi(e) {
|
|
3229
|
+
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 = Bi(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E, D = !1, O = 0, k = () => v.schedule(M), A = (e) => {
|
|
3226
3230
|
if (y || m.value) return;
|
|
3227
3231
|
g(), b = e.transform, x = "wheel", I();
|
|
3228
|
-
let [r, i] =
|
|
3232
|
+
let [r, i] = Mn(e.transform.rescaleX(H(c.value, [0, u.value])).domain(), t);
|
|
3229
3233
|
n("zoom-intent", {
|
|
3230
3234
|
start: r,
|
|
3231
3235
|
end: i,
|
|
@@ -3238,8 +3242,8 @@ function Wi(e) {
|
|
|
3238
3242
|
if (i) {
|
|
3239
3243
|
let a = e.transform.rescaleX(H(h(i), [0, i.width])).domain();
|
|
3240
3244
|
n("zoom-intent", {
|
|
3241
|
-
start:
|
|
3242
|
-
end:
|
|
3245
|
+
start: Mn(a, t)[0],
|
|
3246
|
+
end: Mn(a, t)[1],
|
|
3243
3247
|
trackIndex: r,
|
|
3244
3248
|
seriesIds: i.seriesList.map((e) => e.id),
|
|
3245
3249
|
gesture: "wheel"
|
|
@@ -3256,7 +3260,7 @@ function Wi(e) {
|
|
|
3256
3260
|
let e = b;
|
|
3257
3261
|
b = null, S = x, x = null, a.value = e;
|
|
3258
3262
|
let r = e.rescaleX(H(c.value, [0, u.value])).domain();
|
|
3259
|
-
n("zoom-change",
|
|
3263
|
+
n("zoom-change", Mn([r[0], r[1]], t));
|
|
3260
3264
|
}
|
|
3261
3265
|
if (!C.size) return;
|
|
3262
3266
|
let e = [...o.value], r = Array.from(C.keys()), i = new Map(w);
|
|
@@ -3269,7 +3273,7 @@ function Wi(e) {
|
|
|
3269
3273
|
if (!t) return;
|
|
3270
3274
|
if (i.get(e) === "wheel") {
|
|
3271
3275
|
let e = t.seriesList.map((e) => e.id);
|
|
3272
|
-
T.set(
|
|
3276
|
+
T.set(Pi(e), e);
|
|
3273
3277
|
}
|
|
3274
3278
|
let r = t.xScale.domain();
|
|
3275
3279
|
n("zoom-change", [r[0], r[1]]);
|
|
@@ -3277,14 +3281,14 @@ function Wi(e) {
|
|
|
3277
3281
|
}
|
|
3278
3282
|
let N = () => {
|
|
3279
3283
|
if (t.displayMode === "independent") {
|
|
3280
|
-
|
|
3284
|
+
Li(n, s.value, T.values()), T.clear();
|
|
3281
3285
|
return;
|
|
3282
3286
|
}
|
|
3283
3287
|
if (S !== "wheel") {
|
|
3284
3288
|
S = null;
|
|
3285
3289
|
return;
|
|
3286
3290
|
}
|
|
3287
|
-
|
|
3291
|
+
Ri(n, l.value, s.value), S = null;
|
|
3288
3292
|
}, P = () => {
|
|
3289
3293
|
v.flush(), M(), !(S === "wheel" || T.size) && N();
|
|
3290
3294
|
}, F = (e) => {
|
|
@@ -3304,16 +3308,16 @@ function Wi(e) {
|
|
|
3304
3308
|
}, B = (e, n) => {
|
|
3305
3309
|
let r = Math.abs(e[1] - e[0]);
|
|
3306
3310
|
if (!Number.isFinite(r) || r <= 0) return Ue.MIN_SCALE;
|
|
3307
|
-
let i =
|
|
3311
|
+
let i = br(e, n, t);
|
|
3308
3312
|
return Math.max(Ue.MIN_SCALE, i > 0 ? r / i : Infinity);
|
|
3309
|
-
}, ee = (e, n, r, i) =>
|
|
3313
|
+
}, ee = (e, n, r, i) => Cr(Dr(e.rescaleX(H(n, [0, r])).domain(), n, i, t), n, r), te = (e) => {
|
|
3310
3314
|
let n = Number(t.minVisiblePoints);
|
|
3311
3315
|
return en(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
|
|
3312
3316
|
}, ne = () => {
|
|
3313
3317
|
let e = s.value.filter((e) => e.hasVisibleSeries);
|
|
3314
3318
|
return e.length > 0 && e.every(te);
|
|
3315
3319
|
}, re = (e) => {
|
|
3316
|
-
let n =
|
|
3320
|
+
let n = Tr(t);
|
|
3317
3321
|
return n ? Math.min(1, (e[1] - e[0]) / (n[1] - n[0])) : Ue.MIN_SCALE;
|
|
3318
3322
|
}, ie = (e, t, n) => {
|
|
3319
3323
|
if (e.type !== "wheel") return !1;
|
|
@@ -3361,12 +3365,12 @@ function Wi(e) {
|
|
|
3361
3365
|
}
|
|
3362
3366
|
//#endregion
|
|
3363
3367
|
//#region src/components/core/pagination.ts
|
|
3364
|
-
function
|
|
3368
|
+
function Hi(e) {
|
|
3365
3369
|
return e ? 16 : 0;
|
|
3366
3370
|
}
|
|
3367
3371
|
//#endregion
|
|
3368
3372
|
//#region src/components/core/useWaveformMeasurements.ts
|
|
3369
|
-
function
|
|
3373
|
+
function Ui(e) {
|
|
3370
3374
|
let { container: t, titleMeasureElement: n, resizeObserver: r, observedWidth: i, observedHeight: a, measuredTitleWidth: o, measuredTitleHeight: s, resolvedTitleText: c, titleAreaReserved: l, titleMeasureStyle: u } = e;
|
|
3371
3375
|
function d() {
|
|
3372
3376
|
if (!l.value || !n.value) {
|
|
@@ -3390,19 +3394,19 @@ function Ki(e) {
|
|
|
3390
3394
|
}
|
|
3391
3395
|
//#endregion
|
|
3392
3396
|
//#region src/components/core/useWaveformViewportRestore.ts
|
|
3393
|
-
function
|
|
3397
|
+
function Wi(e) {
|
|
3394
3398
|
let { props: t, trackLayouts: n, resolveInitialTrackDomain: r, sharedZoomDomain: i, initialXDomain: a, independentTransforms: o, chartTracks: s, clearHover: c, editorSeriesOptions: l, sharedTransform: u, innerWidth: d, configureZoom: p } = e, m, h;
|
|
3395
3399
|
function g() {
|
|
3396
3400
|
if (t.displayMode === "independent") {
|
|
3397
3401
|
m = void 0, h = new Map(n.value.flatMap((n) => {
|
|
3398
3402
|
let i = n.xScale.domain(), a = r(n);
|
|
3399
|
-
return e.preserveFullViewport?.() ||
|
|
3403
|
+
return e.preserveFullViewport?.() || Tr(t) || i[1] - i[0] < a[1] - a[0] - 1e-12 ? [[Pi(n.seriesList.map((e) => e.id)), i]] : [];
|
|
3400
3404
|
}));
|
|
3401
3405
|
return;
|
|
3402
3406
|
}
|
|
3403
3407
|
h = void 0;
|
|
3404
3408
|
let o = i.value, s = a.value;
|
|
3405
|
-
m = e.preserveFullViewport?.() ||
|
|
3409
|
+
m = e.preserveFullViewport?.() || Tr(t) || o[1] - o[0] < s[1] - s[0] - 1e-12 ? [...o] : void 0;
|
|
3406
3410
|
}
|
|
3407
3411
|
function _() {
|
|
3408
3412
|
if (t.displayMode === "independent") {
|
|
@@ -3413,14 +3417,14 @@ function qi(e) {
|
|
|
3413
3417
|
if (t.displayMode === "independent" && h) {
|
|
3414
3418
|
let e = s.value.map(() => U);
|
|
3415
3419
|
n.value.forEach((n) => {
|
|
3416
|
-
let i = h?.get(
|
|
3420
|
+
let i = h?.get(Pi(n.seriesList.map((e) => e.id)));
|
|
3417
3421
|
if (!i) return;
|
|
3418
|
-
let a = r(n), o =
|
|
3419
|
-
e[n.index] =
|
|
3422
|
+
let a = r(n), o = Er(i, a, [n.seriesList], t);
|
|
3423
|
+
e[n.index] = Cr(o, a, n.width);
|
|
3420
3424
|
}), o.value = e, h = void 0;
|
|
3421
3425
|
} else if (t.displayMode !== "independent" && m) {
|
|
3422
|
-
let e = a.value, r = n.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), i =
|
|
3423
|
-
u.value =
|
|
3426
|
+
let e = a.value, r = n.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), i = Er(m, e, r, t);
|
|
3427
|
+
u.value = Cr(i, e, d.value), m = void 0;
|
|
3424
3428
|
}
|
|
3425
3429
|
p();
|
|
3426
3430
|
});
|
|
@@ -3432,16 +3436,16 @@ function qi(e) {
|
|
|
3432
3436
|
}
|
|
3433
3437
|
//#endregion
|
|
3434
3438
|
//#region src/components/interaction/interactionTarget.ts
|
|
3435
|
-
function
|
|
3439
|
+
function Gi(e) {
|
|
3436
3440
|
return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
|
|
3437
3441
|
}
|
|
3438
3442
|
//#endregion
|
|
3439
3443
|
//#region src/components/core/useWaveformChartLifecycle.ts
|
|
3440
|
-
function
|
|
3441
|
-
|
|
3444
|
+
function Ki(e) {
|
|
3445
|
+
Ui(e);
|
|
3442
3446
|
let { props: t, emit: n, spacePressed: r, pointerInsideChart: i, currentPage: a, pageCount: o, pagedTracks: s, gridOptions: c, chartSeries: l, chartTracks: u, innerWidth: d, innerHeight: p, activeInteractionMode: m, hiddenSeriesIdSet: _, internalHiddenSeriesIds: v, independentTransforms: y, independentYDomains: b, annotationInteraction: x, editorSeriesOptions: S, isPresentationMode: C, clearHover: w, cancelAnnotation: T, configureZoom: E, resetViewport: D, cancelViewportDrag: O, cancelPendingHover: k, clearZoomBindings: A } = e;
|
|
3443
3447
|
function M(e) {
|
|
3444
|
-
e.key === "Escape" && (O(), T()), !(C.value || e.code !== "Space" || !t.pannable || !i.value) && (
|
|
3448
|
+
e.key === "Escape" && (O(), T()), !(C.value || e.code !== "Space" || !t.pannable || !i.value) && (Gi(e.target) || (r.value = !0, e.preventDefault()));
|
|
3445
3449
|
}
|
|
3446
3450
|
function N(e) {
|
|
3447
3451
|
e.code === "Space" && (r.value = !1);
|
|
@@ -3450,7 +3454,7 @@ function Yi(e) {
|
|
|
3450
3454
|
let r = Math.min(o.value, Math.max(1, Math.floor(e)));
|
|
3451
3455
|
r !== a.value && (a.value = r, w(), x.closeContextMenu(), T(), t.displayMode === "independent" && (y.value = s.value.map(() => U), b.value = {}), f(E), n("page-change", r, o.value));
|
|
3452
3456
|
}
|
|
3453
|
-
let { handleBeforeDataReferenceChange: F, handleDataReferenceChange: I } =
|
|
3457
|
+
let { handleBeforeDataReferenceChange: F, handleDataReferenceChange: I } = Wi(e);
|
|
3454
3458
|
return j([
|
|
3455
3459
|
d,
|
|
3456
3460
|
p,
|
|
@@ -3519,7 +3523,7 @@ function Yi(e) {
|
|
|
3519
3523
|
}
|
|
3520
3524
|
//#endregion
|
|
3521
3525
|
//#region src/components/core/useWaveformData.ts
|
|
3522
|
-
function
|
|
3526
|
+
function qi(e) {
|
|
3523
3527
|
return Pt(e).map(({ source: e, ...t }) => {
|
|
3524
3528
|
let n = e.metrics(t.errorBar.visible);
|
|
3525
3529
|
return {
|
|
@@ -3534,45 +3538,45 @@ function Xi(e) {
|
|
|
3534
3538
|
};
|
|
3535
3539
|
});
|
|
3536
3540
|
}
|
|
3537
|
-
function
|
|
3538
|
-
let r = T(
|
|
3541
|
+
function Ji(e, t, n) {
|
|
3542
|
+
let r = T(qi(e()));
|
|
3539
3543
|
return j(e, (e) => {
|
|
3540
|
-
t(), r.value =
|
|
3544
|
+
t(), r.value = qi(e), n();
|
|
3541
3545
|
}), r;
|
|
3542
3546
|
}
|
|
3543
3547
|
//#endregion
|
|
3544
3548
|
//#region wasm/pkg/waveform_sampling_wasm.js
|
|
3545
|
-
function
|
|
3546
|
-
let n =
|
|
3547
|
-
if (o[3]) throw
|
|
3548
|
-
var s =
|
|
3549
|
+
function Yi(e, t) {
|
|
3550
|
+
let n = la(e, $.__wbindgen_malloc), r = ha, i = la(t, $.__wbindgen_malloc), a = ha, o = $.calculate_range(n, r, i, a);
|
|
3551
|
+
if (o[3]) throw ua(o[2]);
|
|
3552
|
+
var s = ea(o[0], o[1]).slice();
|
|
3549
3553
|
return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
|
|
3550
3554
|
}
|
|
3551
|
-
function
|
|
3552
|
-
let i =
|
|
3553
|
-
if (c[3]) throw
|
|
3554
|
-
var l =
|
|
3555
|
+
function Xi(e, t, n, r) {
|
|
3556
|
+
let i = la(e, $.__wbindgen_malloc), a = ha, o = la(t, $.__wbindgen_malloc), s = ha, c = $.find_visible_range(i, a, o, s, n, r);
|
|
3557
|
+
if (c[3]) throw ua(c[2]);
|
|
3558
|
+
var l = ta(c[0], c[1]).slice();
|
|
3555
3559
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
3556
3560
|
}
|
|
3557
|
-
function
|
|
3558
|
-
let i =
|
|
3559
|
-
if (c[3]) throw
|
|
3560
|
-
var l =
|
|
3561
|
+
function Zi(e, t, n, r) {
|
|
3562
|
+
let i = la(e, $.__wbindgen_malloc), a = ha, o = la(t, $.__wbindgen_malloc), s = ha, c = $.sample_aggregates(i, a, o, s, n, r);
|
|
3563
|
+
if (c[3]) throw ua(c[2]);
|
|
3564
|
+
var l = ea(c[0], c[1]).slice();
|
|
3561
3565
|
return $.__wbindgen_free(c[0], c[1] * 8, 8), l;
|
|
3562
3566
|
}
|
|
3563
|
-
function
|
|
3564
|
-
let i =
|
|
3565
|
-
if (c[3]) throw
|
|
3566
|
-
var l =
|
|
3567
|
+
function Qi(e, t, n, r) {
|
|
3568
|
+
let i = la(e, $.__wbindgen_malloc), a = ha, o = la(t, $.__wbindgen_malloc), s = ha, c = $.sample_indexes(i, a, o, s, n, r);
|
|
3569
|
+
if (c[3]) throw ua(c[2]);
|
|
3570
|
+
var l = ta(c[0], c[1]).slice();
|
|
3567
3571
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
3568
3572
|
}
|
|
3569
|
-
function
|
|
3573
|
+
function $i() {
|
|
3570
3574
|
return {
|
|
3571
3575
|
__proto__: null,
|
|
3572
3576
|
"./waveform_sampling_wasm_bg.js": {
|
|
3573
3577
|
__proto__: null,
|
|
3574
3578
|
__wbindgen_cast_0000000000000001: function(e, t) {
|
|
3575
|
-
return
|
|
3579
|
+
return ia(e, t);
|
|
3576
3580
|
},
|
|
3577
3581
|
__wbindgen_init_externref_table: function() {
|
|
3578
3582
|
let e = $.__wbindgen_externrefs, t = e.grow(4);
|
|
@@ -3581,52 +3585,52 @@ function na() {
|
|
|
3581
3585
|
}
|
|
3582
3586
|
};
|
|
3583
3587
|
}
|
|
3584
|
-
function
|
|
3585
|
-
return e >>>= 0,
|
|
3588
|
+
function ea(e, t) {
|
|
3589
|
+
return e >>>= 0, ra().subarray(e / 8, e / 8 + t);
|
|
3590
|
+
}
|
|
3591
|
+
function ta(e, t) {
|
|
3592
|
+
return e >>>= 0, oa().subarray(e / 4, e / 4 + t);
|
|
3593
|
+
}
|
|
3594
|
+
var na = null;
|
|
3595
|
+
function ra() {
|
|
3596
|
+
return (na === null || na.byteLength === 0) && (na = new Float64Array($.memory.buffer)), na;
|
|
3586
3597
|
}
|
|
3587
3598
|
function ia(e, t) {
|
|
3588
|
-
return e >>>= 0,
|
|
3599
|
+
return e >>>= 0, ma(e, t);
|
|
3589
3600
|
}
|
|
3590
3601
|
var aa = null;
|
|
3591
3602
|
function oa() {
|
|
3592
|
-
return (aa === null || aa.byteLength === 0) && (aa = new
|
|
3593
|
-
}
|
|
3594
|
-
function sa(e, t) {
|
|
3595
|
-
return e >>>= 0, _a(e, t);
|
|
3603
|
+
return (aa === null || aa.byteLength === 0) && (aa = new Uint32Array($.memory.buffer)), aa;
|
|
3596
3604
|
}
|
|
3597
|
-
var
|
|
3598
|
-
function
|
|
3599
|
-
return (
|
|
3605
|
+
var sa = null;
|
|
3606
|
+
function ca() {
|
|
3607
|
+
return (sa === null || sa.byteLength === 0) && (sa = new Uint8Array($.memory.buffer)), sa;
|
|
3600
3608
|
}
|
|
3601
|
-
|
|
3602
|
-
function da() {
|
|
3603
|
-
return (ua === null || ua.byteLength === 0) && (ua = new Uint8Array($.memory.buffer)), ua;
|
|
3604
|
-
}
|
|
3605
|
-
function fa(e, t) {
|
|
3609
|
+
function la(e, t) {
|
|
3606
3610
|
let n = t(e.length * 8, 8) >>> 0;
|
|
3607
|
-
return
|
|
3611
|
+
return ra().set(e, n / 8), ha = e.length, n;
|
|
3608
3612
|
}
|
|
3609
|
-
function
|
|
3613
|
+
function ua(e) {
|
|
3610
3614
|
let t = $.__wbindgen_externrefs.get(e);
|
|
3611
3615
|
return $.__externref_table_dealloc(e), t;
|
|
3612
3616
|
}
|
|
3613
|
-
var
|
|
3617
|
+
var da = new TextDecoder("utf-8", {
|
|
3614
3618
|
ignoreBOM: !0,
|
|
3615
3619
|
fatal: !0
|
|
3616
3620
|
});
|
|
3617
|
-
|
|
3618
|
-
var
|
|
3619
|
-
function
|
|
3620
|
-
return
|
|
3621
|
+
da.decode();
|
|
3622
|
+
var fa = 2146435072, pa = 0;
|
|
3623
|
+
function ma(e, t) {
|
|
3624
|
+
return pa += t, pa >= fa && (da = new TextDecoder("utf-8", {
|
|
3621
3625
|
ignoreBOM: !0,
|
|
3622
3626
|
fatal: !0
|
|
3623
|
-
}),
|
|
3627
|
+
}), da.decode(), pa = t), da.decode(ca().subarray(e, e + t));
|
|
3624
3628
|
}
|
|
3625
|
-
var
|
|
3626
|
-
function
|
|
3627
|
-
return $ = e.exports,
|
|
3629
|
+
var ha = 0, $;
|
|
3630
|
+
function ga(e, t) {
|
|
3631
|
+
return $ = e.exports, na = null, aa = null, sa = null, $.__wbindgen_start(), $;
|
|
3628
3632
|
}
|
|
3629
|
-
async function
|
|
3633
|
+
async function _a(e, t) {
|
|
3630
3634
|
if (typeof Response == "function" && e instanceof Response) {
|
|
3631
3635
|
if (typeof WebAssembly.instantiateStreaming == "function") try {
|
|
3632
3636
|
return await WebAssembly.instantiateStreaming(e, t);
|
|
@@ -3652,17 +3656,17 @@ async function ba(e, t) {
|
|
|
3652
3656
|
return !1;
|
|
3653
3657
|
}
|
|
3654
3658
|
}
|
|
3655
|
-
async function
|
|
3659
|
+
async function va(e) {
|
|
3656
3660
|
if ($ !== void 0) return $;
|
|
3657
3661
|
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,AGFzbQEAAAAB0AEZYAAAYAABf2ABfwBgAX8Bf2ACf38AYAJ/fwF/YAJ/fwFvYAN/f38AYAN/f38Bf2AEf39/fwBgBH9/f38Bf2AEf39/fwR/f39/YAV/f39/fwBgBX9/f39/AX9gBX9/f39/A39/f2AFf39/f38Ef39/f2AGf39/f39/AGAGf39/f39/AX9gBn9/f39/fwR/f39/YAd/f39/f39/AGAHf39/f398fABgCH9/f39/fHx/AGAGf39/f3x8BH9/f39gB39/f398fH8Df39/YAJ8fAF8AoQBAh4uL3dhdmVmb3JtX3NhbXBsaW5nX3dhc21fYmcuanMfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAAHi4vd2F2ZWZvcm1fc2FtcGxpbmdfd2FzbV9iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMQAGA4wBigEDEAwQEBMMBQoMAhEQFQgMCgwEBxQEAgQFBAQTAQQECQkFBRAQFBMMBw0HBwQTBAwMBxAQEAwDCRUQBAIAAgICAgMHAwcIBAcFAwIEBwUFDRIWEg8XDwQLBQMOAgICAgkEAwICBAIFGBgEBwUHBAQICgIEBQcECAACAgAFBQQEBAUFAgIEBAUDAAAECQJwARcXbwCACAUDAQARBgkBfwFBgIDAAAsH5AIRBm1lbW9yeQIAD2NhbGN1bGF0ZV9yYW5nZQBZD2Rpc3Bvc2VfZGF0YXNldAA4EmZpbmRfdmlzaWJsZV9yYW5nZQBTEHJlZ2lzdGVyX2RhdGFzZXQAXBdyZWdpc3Rlcl9zYW1wbGVfZGF0YXNldABWEXNhbXBsZV9hZ2dyZWdhdGVzAFIZc2FtcGxlX2RhdGFzZXRfYWdncmVnYXRlcwBXFnNhbXBsZV9kYXRhc2V0X2luZGV4ZXMAVQ5zYW1wbGVfaW5kZXhlcwBUFGRpc3Bvc2VfYWxsX2RhdGFzZXRzAD4TZGF0YXNldF9pbmRleF9ieXRlcwBFFV9fd2JpbmRnZW5fZXh0ZXJucmVmcwEBEV9fd2JpbmRnZW5fbWFsbG9jAE8ZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwA/D19fd2JpbmRnZW5fZnJlZQBuEF9fd2JpbmRnZW5fc3RhcnQAAAkiAQBBAQsWiQEBhgFaZ0ck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AggiDqdBgICA/3lxQbCAgIACcjYCCEEBIQ0gACgCACIKIAAoAgQiCyAMIAIgAxBRDQNBACEHIAEgCWtB//8DcSECA0AgB0H//wNxIAJPDQJBASENIAdBAWohByAKQTAgCygCEBEFAEUNAAwECwtBASENIAogCyAMIAIgAxBRDQIgCiAEIAUgCygCDBEIAA0CQQAhByAIIAFrQf//A3EhAANAIAdB//8DcSICIABJIQ0gAiAATw0DIAdBAWohByAKIAkgCygCEBEFAEUNAAwDCwtBASENIAogBCAFIAsoAgwRCAANASAAIA43AghBAA8LQQEhDSAAKAIAIgcgACgCBCIKIAwgAiADEFENACAHIAQgBSAKKAIMEQgAIQ0LIA0L/QUDBX8CfgN8IwBB8ABrIgYkAAJAAkACQAJAIAIgBEYNAEHXi8AAQSEQba0hC0GAgICAeCEHIAZBGGohBAwBC0EAIQcCQAJAIAINAEIAIQtBgICAgHghCEQAAAAAAAAAACENQQghCUEAIQEMAQsgAkEDdCEKQQAhCCABIQQgAyEJAkACQAJAAkADQCAEKQMAQv///////////wCDQv/////////3/wBVDQEgCSkDAEL///////////8Ag0L/////////9/8AVQ0BIARBCGohBCAJQQhqIQkgAiAIQQFqIghGDQIMAAsLIAggAkkNAQtEAAAAAAAAAAAhDSACQQFGDQEgASACQX9qIgRBA3RqKwMAIAErAwChIAS4oyENDAELQaSLwABBMxBtrSELQYCAgIB4IQcgBkEYaiEEDAILQQAhBEEAIQkCQANAAkAgCiAERw0AQYCAgIB4IQgMAgsgASAEaiEIIAm4IQ4gBEEIaiEEIAlBAWohCSAIKwMAIg8gDSAOoiABKwMAoCIOoZkgD5kgDpkQaUQAAAAAAADwPxBpRAAAAAAAACA9omUNAAsQigEgCkEIEH0iBEUNAwJAIApFDQAgBCABIAr8CgAACyACrUIghiAErYQhDCACIQgLEIoBIApBCBB9IglFDQMCQCAKRQ0AIAkgAyAK/AoAAAsgASkDACELIAIhAQsgBkEANgIYIAZBEGohBAsgBCAHNgIAAkACQCAGKAIYIgRBgICAgHhHDQAgC6chBEEBIQkMAQsgBiAGKAIQNgJoIAZBBDYCZCAGIAQ2AmAgBkEANgJcIAZC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Cw8AQZqUwABB8wAgABBOAAsSAEHTlMAAQZkBQaCVwAAQTgALCQAgACABEGgPCwkAIAAgARBKDwsJACABIAAQYgALDAAgACABKQIANwMACwkAIAEgABB/AAsNACABQdCVwABBGBAQCw0AIAFBsJXAAEEgEBALBwAgABBlAAsHACAAED0ACwsAQQBBAToA+JlACwkAIABBADYCAAsGABCLAQALBwBB6JXAAAsDAA8LAwAACwuiFgIAQYCAwAAL6BUWc2xpY2UgaW5kZXggc3RhcnRzIGF0IMANIGJ1dCBlbmRzIGF0IMAAIGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgwBIgYnV0IHRoZSBpbmRleCBpcyDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwABIY2Fubm90IGFjY2VzcyBhIFRocmVhZCBMb2NhbCBTdG9yYWdlIHZhbHVlIGR1cmluZyBvciBhZnRlciBkZXN0cnVjdGlvbjogwAAvcnVzdGMvNTk4MDc2MTZlMWZhMjU0MDcyNGJmYmFjMTRkNzk3NmQ3ZTRhMzg2MC9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvNTk4MDc2MTZlMWZhMjU0MDcyNGJmYmFjMTRkNzk3NmQ3ZTRhMzg2MC9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwAvcnVzdGMvNTk4MDc2MTZlMWZhMjU0MDcyNGJmYmFjMTRkNzk3NmQ3ZTRhMzg2MC9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTE4L3NyYy9leHRlcm5yZWYucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGli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MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlhdHRlbXB0IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIHdpdGggYSBkaXZpc29yIG9mIHplcm91c2VyLXByb3ZpZGVkIGNvbXBhcmlzb24gZnVuY3Rpb24gZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBhIHRvdGFsIG9yZGVyABoBEABfAAAAXAMAAAUAAABSZWZDZWxsIGFscmVhZHkgbXV0YWJseSBib3Jyb3dlZFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB6JXAAAsoAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAADURARuYW1lABwbd2F2ZWZvcm1fc2FtcGxpbmdfd2FzbS53YXNtAe1DiwEBGFJlZihTdHJpbmcpIC0+IEV4dGVybnJlZgJhPGRsbWFsbG9jW2UyNGEyNzcwMDYzNGQ2MDldOjpkbG1hbGxvYzo6RGxtYWxsb2M8ZGxtYWxsb2NbZTI0YTI3NzAwNjM0ZDYwOV06OnN5czo6U3lzdGVtPj46Om1hbGxvYwNId2F2ZWZvcm1fc2FtcGxpbmdfd2FzbTo6U3RvcmVkRGF0YXNldDo6c2FtcGxlX2luZGV4ZXM6Omg2MWUzZjgxMTcwZDM3MDY3BDl3YXZlZm9ybV9zYW1wbGluZ193YXNtOjpzb3VyY2VfaW5kZXhlczo6aDQ2ZjNjMTMyODIyNWU2NzIFS3dhdmVmb3JtX3NhbXBsaW5nX3dhc206OlN0b3JlZERhdGFzZXQ6OnNhbXBsZV9hZ2dyZWdhdGVzOjpoOThiYzBkMGNkZWQ4MmY2ZQY5Y29yZTo6c2xpY2U6OnNvcnQ6OnN0YWJsZTo6ZHJpZnQ6OnNvcnQ6OmhiMGYzYWUzMDFkNTZkNDVhB0Jjb3JlOjpzbGljZTo6c29ydDo6c3RhYmxlOjpxdWlja3NvcnQ6OnF1aWNrc29ydDo6aDQyMGFkOTE2NGI2NDVlM2IIWGNvcmU6OnNsaWNlOjpzb3J0OjpzaGFyZWQ6OnNtYWxsc29ydDo6c21hbGxfc29ydF9nZW5lcmFsX3dpdGhfc2NyYXRjaDo6aGNmYzk3ZmQzMzIxNzQ2MWYJMmNvcmVbYzU5MzBjODVhMTJkZTgyMl06OnN0cjo6Y291bnQ6OmRvX2NvdW50X2NoYXJzCihfX3J1c3RjW2I3OTc0ZTg2OTA0MzBkZDldOjpfX3JkbF9yZWFsbG9jCzR3YXZlZm9ybV9zYW1wbGluZ193YXNtOjphZ2dyZWdhdGU6OmhkY2UwYWY2ODJjNjRkZjNhDF88ZGxtYWxsb2NbZTI0YTI3NzAwNjM0ZDYwOV06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tlMjRhMjc3MDA2MzRkNjA5XTo6c3lzOjpTeXN0ZW0+Pjo6ZnJlZQ02PGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OmZtdDo6Rm9ybWF0dGVyPjo6cGFkX2ludGVncmFsDjt3YXZlZm9ybV9zYW1wbGluZ193YXNtOjpyZWdpc3Rlcl9kYXRhc2V0OjpoM2YzMzNhZDk0ZDVkYTI0MA9Cd2F2ZWZvcm1fc2FtcGxpbmdfd2FzbTo6cmVnaXN0ZXJfc2FtcGxlX2RhdGFzZXQ6OmhhYzNjYTBmNWUyMzNlNzhiEC08Y29yZVtjNTkzMGM4NWExMmRlODIyXTo6Zm10OjpGb3JtYXR0ZXI+OjpwYWQROndhdmVmb3JtX3NhbXBsaW5nX3dhc206OmNhbGN1bGF0ZV9yYW5nZTo6aGI4ZjY0N2JhZGEyYWYwOWMSImNvcmVbYzU5MzBjODVhMTJkZTgyMl06OmZtdDo6d3JpdGUTO3dhdmVmb3JtX3NhbXBsaW5nX3dhc206OnZhbGlkYXRlZF9wb2ludHM6Omg5YTcxMGE2MTYxZjE1NjY3FGg8ZGxtYWxsb2NbZTI0YTI3NzAwNjM0ZDYwOV06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tlMjRhMjc3MDA2MzRkNjA5XTo6c3lzOjpTeXN0ZW0+Pjo6ZGlzcG9zZV9jaHVuaxU7d2F2ZWZvcm1fc2FtcGxpbmdfd2FzbTo6ZW5kcG9pbnRzX29yX2FsbDo6aGZmNmE2YTc2YjM0YmZiYTQWPXdhdmVmb3JtX3NhbXBsaW5nX3dhc206OmZpbmRfdmlzaWJsZV9yYW5nZTo6aDVhYzhjM2I0MTU5NDIxNzIXRWNvcmU6OnNsaWNlOjpzb3J0OjpzaGFyZWQ6OnNtYWxsc29ydDo6c29ydDRfc3RhYmxlOjpoZTAzMTE1NjhkZDE5NTM4OBhSY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPHdhdmVmb3JtX3NhbXBsaW5nX3dhc206OlN0b3JlZERhdGFzZXQ+OjpoNzUwMjgxMjc0Y2ExNmZjNhk0YWxsb2M6OnZlYzo6VmVjPFQsQT46OnJlc2l6ZV93aXRoOjpoNTY4NjEzOTQ2NGQyNzM2ZhpjPGRsbWFsbG9jW2UyNGEyNzcwMDYzNGQ2MDldOjpkbG1hbGxvYzo6RGxtYWxsb2M8ZGxtYWxsb2NbZTI0YTI3NzAwNjM0ZDYwOV06OnN5czo6U3lzdGVtPj46Om1lbWFsaWduGzRhbGxvYzo6dmVjOjpWZWM8VCxBPjo6cmVzaXplX3dpdGg6Omg0Yzc1ODgxZTExZWY5YzI0HGc8ZGxtYWxsb2NbZTI0YTI3NzAwNjM0ZDYwOV06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tlMjRhMjc3MDA2MzRkNjA5XTo6c3lzOjpTeXN0ZW0+Pjo6dW5saW5rX2NodW5rHQ5zYW1wbGVfaW5kZXhlcx4XX19leHRlcm5yZWZfdGFibGVfYWxsb2MfbTxkbG1hbGxvY1tlMjRhMjc3MDA2MzRkNjA5XTo6ZGxtYWxsb2M6OkRsbWFsbG9jPGRsbWFsbG9jW2UyNGEyNzcwMDYzNGQ2MDldOjpzeXM6OlN5c3RlbT4+OjppbnNlcnRfbGFyZ2VfY2h1bmsgaDxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8SSxGPiBhcyBjb3JlOjppdGVyOjp0cmFpdHM6Oml0ZXJhdG9yOjpJdGVyYXRvcj46OmZvbGQ6OmgyYTk3YjkwYmNjNDI0NGMyIVJjb3JlOjpzbGljZTo6c29ydDo6c2hhcmVkOjpzbWFsbHNvcnQ6Omluc2VydGlvbl9zb3J0X3NoaWZ0X2xlZnQ6OmhlOGU1ODA1Y2UxZGZmNjY1IjZjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpzbGljZTo6aW5kZXg6OnNsaWNlX2luZGV4X2ZhaWwjMjx1MzIgYXMgY29yZVtjNTkzMGM4NWExMmRlODIyXTo6Zm10OjpEaXNwbGF5Pjo6Zm10JFs8YWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OmZtdDo6V3JpdGU+Ojp3cml0ZV9jaGFyJRlzYW1wbGVfZGF0YXNldF9hZ2dyZWdhdGVzJhZzYW1wbGVfZGF0YXNldF9pbmRleGVzJxJmaW5kX3Zpc2libGVfcmFuZ2UoEXNhbXBsZV9hZ2dyZWdhdGVzKQ9jYWxjdWxhdGVfcmFuZ2UqOHN0ZDo6dGhyZWFkOjpsb2NhbDo6TG9jYWxLZXk8VD46OndpdGg6OmhlOTVjZWY1NTk3NjZjZTAwK0Bjb3JlOjpzbGljZTo6c29ydDo6c2hhcmVkOjpwaXZvdDo6bWVkaWFuM19yZWM6OmhlMDkzZWQ3OTU3Mjg1MmE2LDhzdGQ6OnRocmVhZDo6bG9jYWw6OkxvY2FsS2V5PFQ+Ojp3aXRoOjpoNzlkNTExMzk4ZjU0Y2Y4OS04c3RkOjp0aHJlYWQ6OmxvY2FsOjpMb2NhbEtleTxUPjo6d2l0aDo6aDk4YzlkZTAxMDhhMzhlZGEufzxzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OnBhbmlja2luZzo6cGFuaWNfaGFuZGxlcjo6Rm9ybWF0U3RyaW5nUGF5bG9hZCBhcyBjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpwYW5pYzo6UGFuaWNQYXlsb2FkPjo6dGFrZV9ib3gvPHdhdmVmb3JtX3NhbXBsaW5nX3dhc206OnNhbXBsZV9hZ2dyZWdhdGVzOjpoMzljYTc4ODA2NWVhZjVkNDBwPGFsbG9jOjp2ZWM6OlZlYzxUPiBhcyBhbGxvYzo6dmVjOjpzcGVjX2Zyb21faXRlcl9uZXN0ZWQ6OlNwZWNGcm9tSXRlck5lc3RlZDxULEk+Pjo6ZnJvbV9pdGVyOjpoMGU0M2ZjZmRkNGE3OWFhZTFRYWxsb2M6OnJhd192ZWM6OlJhd1ZlY0lubmVyPEE+OjpyZXNlcnZlOjpkb19yZXNlcnZlX2FuZF9oYW5kbGU6OmhlMjEyNzkzYmI0NzAxOGYyMjFzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OnBhbmlja2luZzo6cGFuaWNfd2l0aF9ob29rMzxjb3JlOjpzbGljZTo6c29ydDo6c3RhYmxlOjpkcmlmdHNvcnRfbWFpbjo6aDQ1ZDRhMWQxNmJmNTAwY2I0PmFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6ZmluaXNoX2dyb3c6Omg5YzE4MjU2ODMzNmY0ZjQ4NT5hbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46OmZpbmlzaF9ncm93OjpoNGFlNGZmNmI4ODM1YjQzOTY8PGFsbG9jWzNjYTUwMWVkZmYzZjBjN2NdOjpyYXdfdmVjOjpSYXdWZWNJbm5lcj46OmZpbmlzaF9ncm93N3w8YWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OnJhd192ZWM6OlJhd1ZlY0lubmVyPF8+Pjo6cmVzZXJ2ZTo6ZG9fcmVzZXJ2ZV9hbmRfaGFuZGxlOjo8YWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OmFsbG9jOjpHbG9iYWw+OA9kaXNwb3NlX2RhdGFzZXQ5QWFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6Z3Jvd19hbW9ydGl6ZWQ6OmhjMWFmNGJmN2VkNTQ0ZmYzOhdyZWdpc3Rlcl9zYW1wbGVfZGF0YXNldDsQcmVnaXN0ZXJfZGF0YXNldDx6PHN0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpGb3JtYXRTdHJpbmdQYXlsb2FkIGFzIGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OnBhbmljOjpQYW5pY1BheWxvYWQ+OjpnZXQ9PHN0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjp7Y2xvc3VyZSMwfT4/d2F2ZWZvcm1fc2FtcGxpbmdfd2FzbTo6ZGlzcG9zZV9hbGxfZGF0YXNldHM6OmgyNjcyMWYwZTFmNDY2Yjc0PxlfX2V4dGVybnJlZl90YWJsZV9kZWFsbG9jQDhhbGxvYzo6cmF3X3ZlYzo6UmF3VmVjPFQsQT46Omdyb3dfb25lOjpoMjM5YThkZWQ5ZDQ4OWIwMUE4YWxsb2M6OnJhd192ZWM6OlJhd1ZlYzxULEE+Ojpncm93X29uZTo6aDdmODZlZjE3MDY2NWUwMmZCOGFsbG9jOjpyYXdfdmVjOjpSYXdWZWM8VCxBPjo6Z3Jvd19vbmU6Omg4ZDcwOTIyOTI4ZWJhYTUzQzw8Y29yZVtjNTkzMGM4NWExMmRlODIyXTo6Zm10OjpidWlsZGVyczo6RGVidWdTdHJ1Y3Q+OjpmaW5pc2hEWTxkbG1hbGxvY1tlMjRhMjc3MDA2MzRkNjA5XTo6c3lzOjpTeXN0ZW0gYXMgZGxtYWxsb2NbZTI0YTI3NzAwNjM0ZDYwOV06OkFsbG9jYXRvcj46OmFsbG9jRT53YXZlZm9ybV9zYW1wbGluZ193YXNtOjpkYXRhc2V0X2luZGV4X2J5dGVzOjpoMTIxODQzZmRiMDg2ODQyNkYoX19ydXN0Y1tiNzk3NGU4NjkwNDMwZGQ5XTo6X19yZGxfZGVhbGxvY0daPGFsbG9jWzNjYTUwMWVkZmYzZjBjN2NdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpmbXQ6OldyaXRlPjo6d3JpdGVfc3RySDZ3YXZlZm9ybV9zYW1wbGluZ193YXNtOjpwdXNoX3VuaXF1ZTo6aDc0NTI5MTExNmFiMzA0MjNJNWNvcmVbYzU5MzBjODVhMTJkZTgyMl06OnBhbmlja2luZzo6cGFuaWNfYm91bmRzX2NoZWNrSi1fX3J1c3RjW2I3OTc0ZTg2OTA0MzBkZDldOjpfX3JkbF9hbGxvY196ZXJvZWRLN3N0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6cGFuaWNraW5nOjpwYW5pY19jb3VudDo6aW5jcmVhc2VMOGFsbG9jOjpyYXdfdmVjOjpSYXdWZWM8VCxBPjo6Z3Jvd19vbmU6OmhjODgyMzc4NDk0ZDRhYmJlTXw8c3RkW2E1NDM5OTZlNmU3ZGJmMWVdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZVtjNTkzMGM4NWExMmRlODIyXTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OnRha2VfYm94Tixjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpwYW5pY2tpbmc6OnBhbmljX2ZtdE8RX193YmluZGdlbl9tYWxsb2NQczxzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OnBhbmlja2luZzo6cGFuaWNfaGFuZGxlcjo6Rm9ybWF0U3RyaW5nUGF5bG9hZCBhcyBjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpmbXQ6OkRpc3BsYXk+OjpmbXRRRDxjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpmbXQ6OkZvcm1hdHRlcj46OnBhZF9pbnRlZ3JhbDo6d3JpdGVfcHJlZml4UiFzYW1wbGVfYWdncmVnYXRlcyBtdWx0aXZhbHVlIHNoaW1TImZpbmRfdmlzaWJsZV9yYW5nZSBtdWx0aXZhbHVlIHNoaW1UHnNhbXBsZV9pbmRleGVzIG11bHRpdmFsdWUgc2hpbVUmc2FtcGxlX2RhdGFzZXRfaW5kZXhlcyBtdWx0aXZhbHVlIHNoaW1WJ3JlZ2lzdGVyX3NhbXBsZV9kYXRhc2V0IG11bHRpdmFsdWUgc2hpbVcpc2FtcGxlX2RhdGFzZXRfYWdncmVnYXRlcyBtdWx0aXZhbHVlIHNoaW1YGl9fd2JpbmRnZW5fZGVzdHJveV9jbG9zdXJlWR9jYWxjdWxhdGVfcmFuZ2UgbXVsdGl2YWx1ZSBzaGltWl48c3RkW2E1NDM5OTZlNmU3ZGJmMWVdOjp0aHJlYWQ6OmxvY2FsOjpBY2Nlc3NFcnJvciBhcyBjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpmbXQ6OkRlYnVnPjo6Zm10Wz9jb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpzbGljZTo6c29ydDo6c3RhYmxlOjpkcmlmdDo6c3FydF9hcHByb3hcIHJlZ2lzdGVyX2RhdGFzZXQgbXVsdGl2YWx1ZSBzaGltXThzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OnRocmVhZDo6bG9jYWw6OnBhbmljX2FjY2Vzc19lcnJvcl40Y29yZVtjNTkzMGM4NWExMmRlODIyXTo6Y2VsbDo6cGFuaWNfYWxyZWFkeV9ib3Jyb3dlZF88Y29yZVtjNTkzMGM4NWExMmRlODIyXTo6Y2VsbDo6cGFuaWNfYWxyZWFkeV9tdXRhYmx5X2JvcnJvd2VkYCxfX3J1c3RjW2I3OTc0ZTg2OTA0MzBkZDldOjpydXN0X2JlZ2luX3Vud2luZGE2PGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OmZtdDo6Rm9ybWF0dGVyPjo6ZGVidWdfc3RydWN0YiZzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OmFsbG9jOjpydXN0X29vbWMuYWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OmJveGVkOjpib3hfbmV3X3VuaW5pdGRyY29yZVtjNTkzMGM4NWExMmRlODIyXTo6cHRyOjpkcm9wX2luX3BsYWNlOjo8c3RkW2E1NDM5OTZlNmU3ZGJmMWVdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQ+ZTNzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OmFsbG9jOjpydXN0X29vbTo6e2Nsb3N1cmUjMH1me2NvcmVbYzU5MzBjODVhMTJkZTgyMl06OnB0cjo6ZHJvcF9pbl9wbGFjZTo6PGNvcmVbYzU5MzBjODVhMTJkZTgyMl06Om9wdGlvbjo6T3B0aW9uPGFsbG9jWzNjYTUwMWVkZmYzZjBjN2NdOjp2ZWM6OlZlYzx1OD4+PmdVY29yZVtjNTkzMGM4NWExMmRlODIyXTo6cHRyOjpkcm9wX2luX3BsYWNlOjo8YWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OnN0cmluZzo6U3RyaW5nPmgmX19ydXN0Y1tiNzk3NGU4NjkwNDMwZGQ5XTo6X19yZGxfYWxsb2NpBGZtYXhqBGZtaW5rLmFsbG9jWzNjYTUwMWVkZmYzZjBjN2NdOjpyYXdfdmVjOjpoYW5kbGVfZXJyb3JsKGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OnBhbmlja2luZzo6cGFuaWNtJ1JlZihTdHJpbmcpIC0+IEV4dGVybnJlZiBleHRlcm5yZWYgc2hpbW4PX193YmluZGdlbl9mcmVlb1Y8YWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OmFueTo6QW55Pjo6dHlwZV9pZHAzPCZzdHIgYXMgY29yZVtjNTkzMGM4NWExMmRlODIyXTo6YW55OjpBbnk+Ojp0eXBlX2lkcTM8Y29yZVtjNTkzMGM4NWExMmRlODIyXTo6Zm10OjpGb3JtYXR0ZXI+Ojp3cml0ZV9zdHJyKV9fcnVzdGNbYjc5NzRlODY5MDQzMGRkOV06Ol9fcnVzdF9yZWFsbG9jcxRfX3diaW5kZ2VuX2V4bl9zdG9yZXR3PHN0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OnBhbmljOjpQYW5pY1BheWxvYWQ+OjpnZXR1cDxzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OnBhbmlja2luZzo6cGFuaWNfaGFuZGxlcjo6U3RhdGljU3RyUGF5bG9hZCBhcyBjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpmbXQ6OkRpc3BsYXk+OjpmbXR2KV9fcnVzdGNbYjc5NzRlODY5MDQzMGRkOV06Ol9fcnVzdF9kZWFsbG9jdyVfX3J1c3RjW2I3OTc0ZTg2OTA0MzBkZDldOjpydXN0X3BhbmljeFo8YWxsb2NbM2NhNTAxZWRmZjNmMGM3Y106OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OmZtdDo6V3JpdGU+Ojp3cml0ZV9mbXR5M2FsbG9jWzNjYTUwMWVkZmYzZjBjN2NdOjpyYXdfdmVjOjpjYXBhY2l0eV9vdmVyZmxvd3otY29yZVtjNTkzMGM4NWExMmRlODIyXTo6b3B0aW9uOjp1bndyYXBfZmFpbGVke0djb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpwYW5pY2tpbmc6OnBhbmljX2NvbnN0OjpwYW5pY19jb25zdF9yZW1fYnlfemVyb3xOY29yZVtjNTkzMGM4NWExMmRlODIyXTo6c2xpY2U6OnNvcnQ6OnNoYXJlZDo6c21hbGxzb3J0OjpwYW5pY19vbl9vcmRfdmlvbGF0aW9ufSdfX3J1c3RjW2I3OTc0ZTg2OTA0MzBkZDldOjpfX3J1c3RfYWxsb2N+Ll9fcnVzdGNbYjc5NzRlODY5MDQzMGRkOV06Ol9fcnVzdF9hbGxvY196ZXJvZWR/NV9fcnVzdGNbYjc5NzRlODY5MDQzMGRkOV06Ol9fcnVzdF9hbGxvY19lcnJvcl9oYW5kbGVygAF6PHN0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmVbYzU5MzBjODVhMTJkZTgyMl06OnBhbmljOjpQYW5pY1BheWxvYWQ+Ojphc19zdHKBATJhbGxvY1szY2E1MDFlZGZmM2YwYzdjXTo6YWxsb2M6OmhhbmRsZV9hbGxvY19lcnJvcoIBWzxjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpjZWxsOjpCb3Jyb3dNdXRFcnJvciBhcyBjb3JlW2M1OTMwYzg1YTEyZGU4MjJdOjpmbXQ6OkRpc3BsYXk+OjpmbXSDAVg8Y29yZVtjNTkzMGM4NWExMmRlODIyXTo6Y2VsbDo6Qm9ycm93RXJyb3IgYXMgY29yZVtjNTkzMGM4NWExMmRlODIyXTo6Zm10OjpEaXNwbGF5Pjo6Zm10hAF7c3RkW2E1NDM5OTZlNmU3ZGJmMWVdOjpzeXM6OmJhY2t0cmFjZTo6X19ydXN0X2VuZF9zaG9ydF9iYWNrdHJhY2U6OjxzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OmFsbG9jOjpydXN0X29vbTo6e2Nsb3N1cmUjMH0sICE+hQGEAXN0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6c3lzOjpiYWNrdHJhY2U6Ol9fcnVzdF9lbmRfc2hvcnRfYmFja3RyYWNlOjo8c3RkW2E1NDM5OTZlNmU3ZGJmMWVdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OntjbG9zdXJlIzB9LCAhPoYBNnN0ZFthNTQzOTk2ZTZlN2RiZjFlXTo6YWxsb2M6OmRlZmF1bHRfYWxsb2NfZXJyb3JfaG9va4cBdTxzdGRbYTU0Mzk5NmU2ZTdkYmYxZV06OnBhbmlja2luZzo6YmVnaW5fcGFuaWM6OlBheWxvYWQ8JnN0cj4gYXMgY29yZVtjNTkzMGM4NWExMmRlODIyXTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OmFzX3N0cogBLV9fcnVzdGNbYjc5NzRlODY5MDQzMGRkOV06Ol9fcnVzdF9zdGFydF9wYW5pY4kBOWNvcmU6Om9wczo6ZnVuY3Rpb246OkZuT25jZTo6Y2FsbF9vbmNlOjpoNzhhOGY4NDc3NzM3N2ZmMIoBPl9fcnVzdGNbYjc5NzRlODY5MDQzMGRkOV06Ol9fcnVzdF9ub19hbGxvY19zaGltX2lzX3Vuc3RhYmxlX3YyiwEnX19ydXN0Y1tiNzk3NGU4NjkwNDMwZGQ5XTo6X19ydXN0X2Fib3J0BRgBARVfX3diaW5kZ2VuX2V4dGVybnJlZnMHEgEAD19fc3RhY2tfcG9pbnRlcgkRAgAHLnJvZGF0YQEFLmRhdGEAfAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuOTUuMCAoNTk4MDc2MTZlIDIwMjYtMDQtMTQpBndhbHJ1cwYwLjI2LjEMd2FzbS1iaW5kZ2VuEzAuMi4xMTggKDc1M2JiN2ZmNCkAlAEPdGFyZ2V0X2ZlYXR1cmVzCCsLYnVsay1tZW1vcnkrD2J1bGstbWVtb3J5LW9wdCsWY2FsbC1pbmRpcmVjdC1vdmVybG9uZysKbXVsdGl2YWx1ZSsPbXV0YWJsZS1nbG9iYWxzKxNub250cmFwcGluZy1mcHRvaW50Kw9yZWZlcmVuY2UtdHlwZXMrCHNpZ24tZXh0", "" + import.meta.url));
|
|
3658
|
-
let t =
|
|
3662
|
+
let t = $i();
|
|
3659
3663
|
(typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
|
|
3660
|
-
let { instance: n, module: r } = await
|
|
3661
|
-
return
|
|
3664
|
+
let { instance: n, module: r } = await _a(await e, t);
|
|
3665
|
+
return ga(n, r);
|
|
3662
3666
|
}
|
|
3663
3667
|
//#endregion
|
|
3664
3668
|
//#region src/core/wasmSampling.ts
|
|
3665
|
-
var
|
|
3669
|
+
var ya = {
|
|
3666
3670
|
none: 0,
|
|
3667
3671
|
peak: 1,
|
|
3668
3672
|
lttb: 2,
|
|
@@ -3671,24 +3675,24 @@ var Sa = {
|
|
|
3671
3675
|
max: 5,
|
|
3672
3676
|
minmax: 6,
|
|
3673
3677
|
sum: 7
|
|
3674
|
-
},
|
|
3675
|
-
function
|
|
3678
|
+
}, ba;
|
|
3679
|
+
function xa(e, t) {
|
|
3676
3680
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3677
3681
|
}
|
|
3678
|
-
function
|
|
3682
|
+
function Sa(e) {
|
|
3679
3683
|
if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
|
|
3680
3684
|
}
|
|
3681
|
-
function
|
|
3682
|
-
return
|
|
3685
|
+
function Ca(e) {
|
|
3686
|
+
return ba ??= Promise.resolve(va(e)).then(() => void 0), ba;
|
|
3683
3687
|
}
|
|
3684
|
-
async function
|
|
3685
|
-
|
|
3686
|
-
let t =
|
|
3688
|
+
async function wa(e) {
|
|
3689
|
+
Sa(e), await Ca();
|
|
3690
|
+
let t = xa(e.targetPointCount, e.x.length), n = ya[e.strategy];
|
|
3687
3691
|
if (e.strategy !== "average" && e.strategy !== "sum") return {
|
|
3688
3692
|
kind: "source-indexes",
|
|
3689
|
-
sourceIndexes:
|
|
3693
|
+
sourceIndexes: Qi(e.x, e.y, n, t)
|
|
3690
3694
|
};
|
|
3691
|
-
let r =
|
|
3695
|
+
let r = Zi(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
|
|
3692
3696
|
for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
|
|
3693
3697
|
return {
|
|
3694
3698
|
kind: "aggregates",
|
|
@@ -3696,50 +3700,50 @@ async function Da(e) {
|
|
|
3696
3700
|
y: a
|
|
3697
3701
|
};
|
|
3698
3702
|
}
|
|
3699
|
-
async function
|
|
3703
|
+
async function Ta(e, t) {
|
|
3700
3704
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
3701
|
-
await
|
|
3702
|
-
let n =
|
|
3705
|
+
await Ca();
|
|
3706
|
+
let n = Yi(e, t);
|
|
3703
3707
|
return n.length === 4 ? {
|
|
3704
3708
|
x: [n[0], n[1]],
|
|
3705
3709
|
y: [n[2], n[3]]
|
|
3706
3710
|
} : void 0;
|
|
3707
3711
|
}
|
|
3708
|
-
async function
|
|
3712
|
+
async function Ea(e, t, n) {
|
|
3709
3713
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
3710
|
-
await
|
|
3711
|
-
let r =
|
|
3714
|
+
await Ca();
|
|
3715
|
+
let r = Xi(e, t, n[0], n[1]);
|
|
3712
3716
|
return [r[0], r[1]];
|
|
3713
3717
|
}
|
|
3714
3718
|
//#endregion
|
|
3715
3719
|
//#region src/components/core/trackPagination.ts
|
|
3716
|
-
var
|
|
3720
|
+
var Da = (e, t) => t ? e.filter((e) => e.series.length > 0) : e, Oa = (e, t, n, r, i) => {
|
|
3717
3721
|
let a = t?.[i];
|
|
3718
3722
|
if (a !== void 0) return a;
|
|
3719
3723
|
if (e !== void 0) return n === 1 ? e : typeof e == "number" ? e + r : `${e}-${r + 1}`;
|
|
3720
|
-
},
|
|
3724
|
+
}, ka = (e, t, n) => (r, i = 0) => {
|
|
3721
3725
|
let a = n(), o = a.findIndex((e) => e.id === r);
|
|
3722
|
-
return
|
|
3726
|
+
return Oa(e(), t(), Math.max(a.length, i + 1), o >= 0 ? o : i, r);
|
|
3723
3727
|
};
|
|
3724
3728
|
//#endregion
|
|
3725
3729
|
//#region src/components/core/yAxisLayoutMetrics.ts
|
|
3726
|
-
function
|
|
3730
|
+
function Aa(e, t, n, r) {
|
|
3727
3731
|
return e === "independent" ? Object.fromEntries(t.flatMap((e, t) => {
|
|
3728
3732
|
let n = r[t];
|
|
3729
3733
|
return n ? [[e.id, n]] : [];
|
|
3730
3734
|
})) : n;
|
|
3731
3735
|
}
|
|
3732
|
-
function
|
|
3733
|
-
let d = rt(typeof c == "object" ? c.labelTextStyle : void 0), f = e.filter((e) => e.series.length > 0).flatMap((e) =>
|
|
3736
|
+
function ja(e, t, n, r, i, a, o, s, c, l = !0, u) {
|
|
3737
|
+
let d = rt(typeof c == "object" ? c.labelTextStyle : void 0), f = e.filter((e) => e.series.length > 0).flatMap((e) => Jn(e, t, n, r, i, c)).map((e) => Yn(e.domain, a, void 0, l ? e.seriesList[0]?.unit : void 0, o, s, u, e.maximumTick, e.minimumTick)), p = Math.max(7, ...f.map((e) => e.tickTextWidth)), m = Math.max(7, ...f.map((e) => e.titleTextWidth)), h = p + 7 + 4, g = -(7 + m + 0 + d / 2);
|
|
3734
3738
|
return {
|
|
3735
|
-
tickClearance:
|
|
3736
|
-
fullClearance: p
|
|
3737
|
-
labelCenterX:
|
|
3739
|
+
tickClearance: h,
|
|
3740
|
+
fullClearance: Math.max(p, m + 0 + d) + 7 + 4,
|
|
3741
|
+
labelCenterX: g
|
|
3738
3742
|
};
|
|
3739
3743
|
}
|
|
3740
3744
|
//#endregion
|
|
3741
3745
|
//#region src/components/interaction/useExtremaTickViewport.ts
|
|
3742
|
-
function
|
|
3746
|
+
function Ma(e, t, n, r, i) {
|
|
3743
3747
|
let a = (e, t, n) => t > 0 && n > 0 ? e.translate((n / t - 1) * e.x / e.k, 0) : e;
|
|
3744
3748
|
j(() => ({
|
|
3745
3749
|
visible: e(),
|
|
@@ -3761,11 +3765,11 @@ function Fa(e, t, n, r, i) {
|
|
|
3761
3765
|
}
|
|
3762
3766
|
//#endregion
|
|
3763
3767
|
//#region src/components/core/useWaveformYAxisLayout.ts
|
|
3764
|
-
function
|
|
3765
|
-
let { props: n, chartTracks: r, layoutTracks: i, chartWidth: a, gridOptions: o, viewportYDomains: s, yAxisTickCount: c } = e, l = t(() => n.layoutPreset === "edge-compact"), u = t(() => n.unitDisplayMode !== "channel-label" && n.unitDisplayMode !== "channel-label-or-legend" && (!l.value || n.unitDisplayMode === "axis")), d = t(() =>
|
|
3768
|
+
function Na(e) {
|
|
3769
|
+
let { props: n, chartTracks: r, layoutTracks: i, chartWidth: a, gridOptions: o, viewportYDomains: s, yAxisTickCount: c } = e, l = t(() => n.layoutPreset === "edge-compact"), u = t(() => n.unitDisplayMode !== "channel-label" && n.unitDisplayMode !== "channel-label-or-legend" && (!l.value || n.unitDisplayMode === "axis")), d = t(() => ja(r.value, n.overlayMode, n.yDomain, n.yDomains, s.value, n.axes?.y?.nice !== !1, c.value, n.displayMode === "compact", n.axes?.y, u.value, l.value ? Dn : void 0)), f = t(() => r.value.some((e) => {
|
|
3766
3770
|
let t = e.visibleSeries.length ? e.visibleSeries : e.series;
|
|
3767
3771
|
return t.length === 1 && !!(t[0]?.name.trim() || n.yLabel);
|
|
3768
|
-
})), p = t(() => r.value.some((e) => e.visibleSeries.length > 0)), m = t(() => r.value.some((e) => e.series.length > 0)), h = t(() => Math.max(He.left, f.value ? d.value.fullClearance : m.value ? d.value.tickClearance : 0)), g = t(() =>
|
|
3772
|
+
})), p = t(() => r.value.some((e) => e.visibleSeries.length > 0)), m = t(() => r.value.some((e) => e.series.length > 0)), h = t(() => Math.max(He.left, f.value ? d.value.fullClearance : m.value ? d.value.tickClearance : 0)), g = t(() => Xn(i.value.filter((e) => e.series.length > 0), n.overlayMode, n.yDomain, n.yDomains, c.value, n.axes?.y?.nice !== !1, n.displayMode === "compact", s.value, n.axes?.y, u.value, l.value ? Dn : void 0)), _ = t(() => l.value ? He.right / 4 + Math.max(0, v.value - 4) : n.overlayMode === "multi-axis" ? Math.max(h.value, g.value.clearance.left) : h.value), v = t(() => m.value ? n.overlayMode === "multi-axis" || f.value ? g.value.clearance.left : d.value.tickClearance : 0), y = t(() => n.overlayMode === "multi-axis" ? Math.max(He.right, g.value.clearance.right) : He.right), b = t(() => Math.max(0, a.value - _.value - y.value));
|
|
3769
3773
|
return {
|
|
3770
3774
|
yAxisMetrics: d,
|
|
3771
3775
|
yAxisSlots: g,
|
|
@@ -3783,7 +3787,7 @@ function Ia(e) {
|
|
|
3783
3787
|
}
|
|
3784
3788
|
//#endregion
|
|
3785
3789
|
//#region src/components/core/useWaveformLayout.ts
|
|
3786
|
-
function
|
|
3790
|
+
function Pa(e) {
|
|
3787
3791
|
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) => ({
|
|
3788
3792
|
...e,
|
|
3789
3793
|
color: e.color ?? (t === 0 ? n.lineColor : Ke[t % Ke.length])
|
|
@@ -3806,10 +3810,10 @@ function La(e) {
|
|
|
3806
3810
|
yDomain: o.length ? Se(o) : [0, 1]
|
|
3807
3811
|
};
|
|
3808
3812
|
});
|
|
3809
|
-
}), v = t(() => n.unitDisplayMode === "channel-label-or-legend" || n.unitDisplayMode === "legend-single-series" && !_.value.some((e) => e.series.length > 1)), y = t(() => Xt(n.rendering)), b = t(() =>
|
|
3813
|
+
}), v = t(() => n.unitDisplayMode === "channel-label-or-legend" || n.unitDisplayMode === "legend-single-series" && !_.value.some((e) => e.series.length > 1)), y = t(() => Xt(n.rendering)), b = t(() => Da(_.value, g.value.hideEmptyTracks)), x = t(() => pn(b.value.length, g.value)), S = t(() => mn(b.value, i.value, g.value)), C = t(() => n.unitDisplayMode === "channel-label-or-legend" && S.value.some((e) => e.series.length > 1)), w = t(() => {
|
|
3810
3814
|
let e = S.value.filter((e) => e.series.length > 0);
|
|
3811
3815
|
return g.value.fillIncompleteLastRow && e.length > 0 ? e : S.value;
|
|
3812
|
-
}), T = t(() =>
|
|
3816
|
+
}), T = t(() => Bn(s.value, n.axes?.y?.splitNumber)), E = t(() => Aa(n.displayMode, _.value, d.value, f.value)), { yAxisMetrics: D, yAxisSlots: O, resolvedChartLeftMargin: k, innerWidth: A, yAxisLayout: j, hasVisibleWaveformData: M } = Na({
|
|
3813
3817
|
props: n,
|
|
3814
3818
|
chartTracks: _,
|
|
3815
3819
|
layoutTracks: w,
|
|
@@ -3824,14 +3828,14 @@ function La(e) {
|
|
|
3824
3828
|
}), Se(e);
|
|
3825
3829
|
}), z = t(() => {
|
|
3826
3830
|
let e = n.initialXDomain;
|
|
3827
|
-
return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ?
|
|
3831
|
+
return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? jn(Sn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0), n) : jn(Sn(R.value, n.xDomainStrategy), n);
|
|
3828
3832
|
}), B = (e) => {
|
|
3829
3833
|
let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
|
|
3830
|
-
return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ?
|
|
3831
|
-
}, ee = t(() => (n.displayMode === "independent" ? void 0 : e.boundaries?.value.shared) ?? z.value), te = (t) => e.boundaries?.value[t.id] ?? B(t), ne = t(() =>
|
|
3834
|
+
return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ? jn(Sn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0), n) : jn(Sn(Se(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy), n);
|
|
3835
|
+
}, ee = t(() => (n.displayMode === "independent" ? void 0 : e.boundaries?.value.shared) ?? z.value), te = (t) => e.boundaries?.value[t.id] ?? B(t), ne = t(() => Mn(l.value.rescaleX(H(ee.value, [0, A.value])).domain(), n)), re = t(() => gn(A.value, s.value, g.value, n.displayMode, w.value.map((e) => n.layoutPreset === "edge-compact" ? e.series.length > 0 : !!e), j.value.horizontalGap, !0, n.layoutPreset === "edge-compact" && !c.value).map((e, t) => ({
|
|
3832
3836
|
...e,
|
|
3833
3837
|
series: w.value[t]
|
|
3834
|
-
}))), ie = t(() =>
|
|
3838
|
+
}))), ie = t(() => Fn({
|
|
3835
3839
|
cells: re.value,
|
|
3836
3840
|
grid: g.value,
|
|
3837
3841
|
useNonEmptyBottomTracks: n.layoutPreset === "edge-compact",
|
|
@@ -3862,7 +3866,7 @@ function La(e) {
|
|
|
3862
3866
|
yAxisSlots: O.value.slots,
|
|
3863
3867
|
showEmptyTracks: N.value
|
|
3864
3868
|
}));
|
|
3865
|
-
|
|
3869
|
+
Ma(() => Number(n.axes?.y?.maximumTickVisible !== !1) * 2 + Number(n.axes?.y?.minimumTickVisible !== !1), A, ie, l, u);
|
|
3866
3870
|
let V = (e) => e.seriesList.map((t) => ({
|
|
3867
3871
|
...e,
|
|
3868
3872
|
series: t,
|
|
@@ -3896,7 +3900,7 @@ function La(e) {
|
|
|
3896
3900
|
annotationLayoutsForTrack: V,
|
|
3897
3901
|
resolveSeriesYScale: ae,
|
|
3898
3902
|
annotationTrackLayouts: oe,
|
|
3899
|
-
renderedAnnotations: t(() => n.annotationsVisible ?
|
|
3903
|
+
renderedAnnotations: t(() => n.annotationsVisible ? Br(n.annotations, oe.value, A.value, s.value) : []),
|
|
3900
3904
|
editorSeries: t(() => {
|
|
3901
3905
|
let e = p.editorDraft.value?.annotation.seriesId, t = h.value.find((t) => t.id === e);
|
|
3902
3906
|
return t ? {
|
|
@@ -3906,16 +3910,16 @@ function La(e) {
|
|
|
3906
3910
|
unit: t.unit
|
|
3907
3911
|
} : void 0;
|
|
3908
3912
|
}),
|
|
3909
|
-
resolveFrameNumber:
|
|
3913
|
+
resolveFrameNumber: ka(() => n.frameNumber, () => n.frameNumbers, () => _.value)
|
|
3910
3914
|
};
|
|
3911
3915
|
}
|
|
3912
|
-
var
|
|
3913
|
-
function
|
|
3916
|
+
var Fa = 1e-6;
|
|
3917
|
+
function Ia(e) {
|
|
3914
3918
|
return Number.isFinite(e) ? Math.max(1, e) : 1;
|
|
3915
3919
|
}
|
|
3916
|
-
function
|
|
3917
|
-
let a = i ? 8 : 18, o = i ? 0 : 44, s =
|
|
3918
|
-
if (!(m >
|
|
3920
|
+
function La({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r, edgeCompact: i = !1 }) {
|
|
3921
|
+
let a = i ? 8 : 18, o = i ? 0 : 44, s = Ia(e), c = Ia(t), l = Ia(n), u = Number.isFinite(r) ? r : 0, d = u * Math.PI / 180, f = Math.abs(Math.cos(d)), p = Math.abs(Math.sin(d)), m = (u % 360 + 360) % 360;
|
|
3922
|
+
if (!(m > Fa && Math.abs(m - 360) > Fa)) {
|
|
3919
3923
|
let e = Math.max(1, Math.ceil(s / l)), t = l, n = c * e;
|
|
3920
3924
|
return {
|
|
3921
3925
|
textWidth: t,
|
|
@@ -3940,7 +3944,7 @@ function Ba({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r,
|
|
|
3940
3944
|
}
|
|
3941
3945
|
//#endregion
|
|
3942
3946
|
//#region src/components/core/useWaveformPresentation.ts
|
|
3943
|
-
function
|
|
3947
|
+
function Ra(e) {
|
|
3944
3948
|
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(() => ({
|
|
3945
3949
|
width: l.value === void 0 ? "100%" : `${l.value}px`,
|
|
3946
3950
|
height: u.value === void 0 ? "100%" : `${u.value}px`
|
|
@@ -3987,7 +3991,7 @@ function Va(e) {
|
|
|
3987
3991
|
maxWidth: k.value ? "none" : `${M.value}px`,
|
|
3988
3992
|
whiteSpace: k.value ? "nowrap" : "normal",
|
|
3989
3993
|
overflowWrap: k.value ? "normal" : "anywhere"
|
|
3990
|
-
})), P = t(() =>
|
|
3994
|
+
})), P = t(() => La({
|
|
3991
3995
|
naturalWidth: C.value && !k.value && o.value > 0 ? Math.min(a.value || M.value, M.value) : a.value || j.value,
|
|
3992
3996
|
naturalHeight: o.value || D.value * 1.2,
|
|
3993
3997
|
availableWidth: M.value,
|
|
@@ -4045,7 +4049,7 @@ function Va(e) {
|
|
|
4045
4049
|
}
|
|
4046
4050
|
//#endregion
|
|
4047
4051
|
//#region src/components/core/usePlotLabelLayout.ts
|
|
4048
|
-
function
|
|
4052
|
+
function za(e, n, r, i) {
|
|
4049
4053
|
return {
|
|
4050
4054
|
plotCenterX: t(() => n.value + r.value / 2),
|
|
4051
4055
|
plotTitleAreaStyle: t(() => !e.title?.align || e.title.align === "center" || e.title.align === "left" ? {
|
|
@@ -4062,10 +4066,10 @@ function Ha(e, n, r, i) {
|
|
|
4062
4066
|
}
|
|
4063
4067
|
//#endregion
|
|
4064
4068
|
//#region src/components/core/latestTaskScheduler.ts
|
|
4065
|
-
function
|
|
4069
|
+
function Ba(e, t, n, r) {
|
|
4066
4070
|
return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
|
|
4067
4071
|
}
|
|
4068
|
-
function
|
|
4072
|
+
function Va(e = () => void 0) {
|
|
4069
4073
|
let t = 0, n = !1, r, i = !1, a = {
|
|
4070
4074
|
scheduled: 0,
|
|
4071
4075
|
coalesced: 0,
|
|
@@ -4111,66 +4115,66 @@ function Wa(e = () => void 0) {
|
|
|
4111
4115
|
}
|
|
4112
4116
|
//#endregion
|
|
4113
4117
|
//#region src/core/samplingReferenceValues.ts
|
|
4114
|
-
function
|
|
4118
|
+
function Ha(e, t) {
|
|
4115
4119
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
4116
4120
|
}
|
|
4117
|
-
function
|
|
4121
|
+
function Ua(e, t, n, r) {
|
|
4118
4122
|
let i = r - n;
|
|
4119
4123
|
return {
|
|
4120
4124
|
start: n + Math.floor(e * i / t),
|
|
4121
4125
|
end: n + Math.floor((e + 1) * i / t)
|
|
4122
4126
|
};
|
|
4123
4127
|
}
|
|
4124
|
-
function
|
|
4128
|
+
function Wa(e, t) {
|
|
4125
4129
|
e[e.length - 1] !== t && e.push(t);
|
|
4126
4130
|
}
|
|
4127
|
-
function
|
|
4131
|
+
function Ga(e, t, n) {
|
|
4128
4132
|
if (e <= t) return Array.from({ length: e }, (e, t) => t);
|
|
4129
4133
|
if (t === 1) return [0];
|
|
4130
4134
|
if (t === 2) return [0, e - 1];
|
|
4131
4135
|
let r = [0];
|
|
4132
|
-
return n().forEach((e) =>
|
|
4136
|
+
return n().forEach((e) => Wa(r, e)), Wa(r, e - 1), r;
|
|
4133
4137
|
}
|
|
4134
|
-
function
|
|
4138
|
+
function Ka(e, t, n) {
|
|
4135
4139
|
let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
|
|
4136
|
-
return
|
|
4140
|
+
return Ga(e.length, t, () => {
|
|
4137
4141
|
if (!r) return [];
|
|
4138
4142
|
let t = [];
|
|
4139
4143
|
for (let i = 0; i < r; i += 1) {
|
|
4140
|
-
let a =
|
|
4144
|
+
let a = Ua(i, r, 1, e.length - 1), o = a.start, s = a.start;
|
|
4141
4145
|
for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
|
|
4142
|
-
n === "min" ?
|
|
4146
|
+
n === "min" ? Wa(t, o) : n === "max" ? Wa(t, s) : o <= s ? (Wa(t, o), Wa(t, s)) : (Wa(t, s), Wa(t, o));
|
|
4143
4147
|
}
|
|
4144
4148
|
return t;
|
|
4145
4149
|
});
|
|
4146
4150
|
}
|
|
4147
|
-
function
|
|
4151
|
+
function qa(e, t) {
|
|
4148
4152
|
let n = Math.floor((t - 2) / 4);
|
|
4149
|
-
return
|
|
4153
|
+
return Ga(e.length, t, () => {
|
|
4150
4154
|
if (!n) return [];
|
|
4151
4155
|
let t = [];
|
|
4152
4156
|
for (let r = 0; r < n; r += 1) {
|
|
4153
|
-
let i =
|
|
4157
|
+
let i = Ua(r, n, 1, e.length - 1), a = i.start, o = i.start;
|
|
4154
4158
|
for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
|
|
4155
4159
|
[
|
|
4156
4160
|
i.start,
|
|
4157
4161
|
a,
|
|
4158
4162
|
o,
|
|
4159
4163
|
i.end - 1
|
|
4160
|
-
].sort((e, t) => e - t).forEach((e) =>
|
|
4164
|
+
].sort((e, t) => e - t).forEach((e) => Wa(t, e));
|
|
4161
4165
|
}
|
|
4162
4166
|
return t;
|
|
4163
4167
|
});
|
|
4164
4168
|
}
|
|
4165
|
-
function
|
|
4166
|
-
return
|
|
4169
|
+
function Ja(e, t, n) {
|
|
4170
|
+
return Ga(e.length, n, () => {
|
|
4167
4171
|
let r = (e.length - 2) / (n - 2), i = [], a = 0;
|
|
4168
4172
|
for (let o = 0; o < n - 2; o += 1) {
|
|
4169
4173
|
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;
|
|
4170
4174
|
for (let n = s; n < c; n += 1) l += e[n], u += t[n];
|
|
4171
4175
|
let d = c - s;
|
|
4172
4176
|
d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
|
|
4173
|
-
let f =
|
|
4177
|
+
let f = Ua(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
|
|
4174
4178
|
for (let n = f.start; n < f.end; n += 1) {
|
|
4175
4179
|
let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
|
|
4176
4180
|
r > m && (m = r, p = n);
|
|
@@ -4180,10 +4184,10 @@ function Za(e, t, n) {
|
|
|
4180
4184
|
return i;
|
|
4181
4185
|
});
|
|
4182
4186
|
}
|
|
4183
|
-
function
|
|
4184
|
-
let i =
|
|
4187
|
+
function Ya(e, t, n, r) {
|
|
4188
|
+
let i = Ha(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
|
|
4185
4189
|
for (let n = 0; n < i; n += 1) {
|
|
4186
|
-
let s =
|
|
4190
|
+
let s = Ua(n, i, 0, e.length);
|
|
4187
4191
|
for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
|
|
4188
4192
|
let c = s.end - s.start;
|
|
4189
4193
|
a[n] /= c, r === "average" && (o[n] /= c);
|
|
@@ -4194,10 +4198,10 @@ function Qa(e, t, n, r) {
|
|
|
4194
4198
|
y: o
|
|
4195
4199
|
};
|
|
4196
4200
|
}
|
|
4197
|
-
function
|
|
4201
|
+
function Xa(e, t, n, r) {
|
|
4198
4202
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
4199
|
-
if (n === "average" || n === "sum") return
|
|
4200
|
-
let i =
|
|
4203
|
+
if (n === "average" || n === "sum") return Ya(e, t, r, n);
|
|
4204
|
+
let i = Ha(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? qa(t, i) : n === "lttb" ? Ja(e, t, i) : Ka(t, i, n);
|
|
4201
4205
|
return {
|
|
4202
4206
|
kind: "source-indexes",
|
|
4203
4207
|
sourceIndexes: Uint32Array.from(a)
|
|
@@ -4205,41 +4209,41 @@ function $a(e, t, n, r) {
|
|
|
4205
4209
|
}
|
|
4206
4210
|
//#endregion
|
|
4207
4211
|
//#region src/core/workerSampling/javascriptBackend.ts
|
|
4208
|
-
var
|
|
4212
|
+
var Za = {
|
|
4209
4213
|
kind: "javascript",
|
|
4210
4214
|
sample(e) {
|
|
4211
|
-
return
|
|
4215
|
+
return Xa(e.x, e.y, e.strategy, e.targetPointCount);
|
|
4212
4216
|
}
|
|
4213
|
-
},
|
|
4214
|
-
function
|
|
4217
|
+
}, Qa = 8 * 1024 * 1024;
|
|
4218
|
+
function $a(e, t) {
|
|
4215
4219
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
4216
4220
|
}
|
|
4217
|
-
function
|
|
4221
|
+
function eo(e, t, n, r) {
|
|
4218
4222
|
let i = r - n;
|
|
4219
4223
|
return {
|
|
4220
4224
|
start: n + Math.floor(e * i / t),
|
|
4221
4225
|
end: n + Math.floor((e + 1) * i / t)
|
|
4222
4226
|
};
|
|
4223
4227
|
}
|
|
4224
|
-
function
|
|
4228
|
+
function to(e, t) {
|
|
4225
4229
|
e[e.length - 1] !== t && e.push(t);
|
|
4226
4230
|
}
|
|
4227
|
-
function
|
|
4231
|
+
function no(e) {
|
|
4228
4232
|
return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
|
|
4229
4233
|
}
|
|
4230
|
-
function
|
|
4234
|
+
function ro(e, t) {
|
|
4231
4235
|
let n = 1;
|
|
4232
4236
|
for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
|
|
4233
4237
|
return n;
|
|
4234
4238
|
}
|
|
4235
|
-
var
|
|
4239
|
+
var io = class {
|
|
4236
4240
|
points;
|
|
4237
4241
|
extremaLayers = [];
|
|
4238
4242
|
sumLayers = [];
|
|
4239
4243
|
indexBytes = 0;
|
|
4240
4244
|
maxBytes;
|
|
4241
4245
|
constructor(e, t = {}) {
|
|
4242
|
-
this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) :
|
|
4246
|
+
this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : Qa;
|
|
4243
4247
|
}
|
|
4244
4248
|
get byteLength() {
|
|
4245
4249
|
return this.indexBytes;
|
|
@@ -4248,7 +4252,7 @@ var so = class {
|
|
|
4248
4252
|
this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
|
|
4249
4253
|
}
|
|
4250
4254
|
sample(e, t, n, r) {
|
|
4251
|
-
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 =
|
|
4255
|
+
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 = $a(r, o);
|
|
4252
4256
|
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);
|
|
4253
4257
|
}
|
|
4254
4258
|
allIndexes(e, t) {
|
|
@@ -4268,24 +4272,24 @@ var so = class {
|
|
|
4268
4272
|
if (i === 0) return this.indexes([e, t - 1]);
|
|
4269
4273
|
let a = [e];
|
|
4270
4274
|
for (let n = 0; n < i; n += 1) {
|
|
4271
|
-
let o =
|
|
4275
|
+
let o = eo(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
|
|
4272
4276
|
if (!s) return;
|
|
4273
|
-
if (r === "min")
|
|
4274
|
-
else if (r === "max")
|
|
4275
|
-
else if (r === "minmax") s.minimum <= s.maximum ? (
|
|
4277
|
+
if (r === "min") to(a, s.minimum);
|
|
4278
|
+
else if (r === "max") to(a, s.maximum);
|
|
4279
|
+
else if (r === "minmax") s.minimum <= s.maximum ? (to(a, s.minimum), to(a, s.maximum)) : (to(a, s.maximum), to(a, s.minimum));
|
|
4276
4280
|
else for (let e of [
|
|
4277
4281
|
o.start,
|
|
4278
4282
|
s.minimum,
|
|
4279
4283
|
s.maximum,
|
|
4280
4284
|
o.end - 1
|
|
4281
|
-
].sort((e, t) => e - t))
|
|
4285
|
+
].sort((e, t) => e - t)) to(a, e);
|
|
4282
4286
|
}
|
|
4283
|
-
return
|
|
4287
|
+
return to(a, t - 1), this.indexes(a);
|
|
4284
4288
|
}
|
|
4285
4289
|
aggregate(e, t, n, r) {
|
|
4286
4290
|
let i = new Float64Array(n), a = new Float64Array(n);
|
|
4287
4291
|
for (let o = 0; o < n; o += 1) {
|
|
4288
|
-
let s =
|
|
4292
|
+
let s = eo(o, n, e, t), c = this.querySum(s.start, s.end);
|
|
4289
4293
|
if (!c || c.count === 0) return;
|
|
4290
4294
|
i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
|
|
4291
4295
|
}
|
|
@@ -4300,7 +4304,7 @@ var so = class {
|
|
|
4300
4304
|
if (!this.ensureExtrema(n)) return;
|
|
4301
4305
|
let r = e, i = e;
|
|
4302
4306
|
for (let n = e; n < t;) {
|
|
4303
|
-
let e =
|
|
4307
|
+
let e = ro(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;
|
|
4304
4308
|
this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
|
|
4305
4309
|
}
|
|
4306
4310
|
return {
|
|
@@ -4313,7 +4317,7 @@ var so = class {
|
|
|
4313
4317
|
if (!this.ensureSum(n)) return;
|
|
4314
4318
|
let r = 0, i = 0, a = 0;
|
|
4315
4319
|
for (let n = e; n < t;) {
|
|
4316
|
-
let e =
|
|
4320
|
+
let e = ro(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
|
|
4317
4321
|
if (c) r += c.x[s], i += c.y[s], a += c.count[s];
|
|
4318
4322
|
else {
|
|
4319
4323
|
let e = this.points[n];
|
|
@@ -4334,7 +4338,7 @@ var so = class {
|
|
|
4334
4338
|
minimumIndexes: new Uint32Array(e),
|
|
4335
4339
|
maximumIndexes: new Uint32Array(e)
|
|
4336
4340
|
};
|
|
4337
|
-
if (!this.reserve(
|
|
4341
|
+
if (!this.reserve(no(n))) return !1;
|
|
4338
4342
|
let r = this.extremaLayers[t - 1];
|
|
4339
4343
|
for (let t = 0; t < e; t += 1) {
|
|
4340
4344
|
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;
|
|
@@ -4352,7 +4356,7 @@ var so = class {
|
|
|
4352
4356
|
y: new Float64Array(e),
|
|
4353
4357
|
count: new Uint32Array(e)
|
|
4354
4358
|
};
|
|
4355
|
-
if (!this.reserve(
|
|
4359
|
+
if (!this.reserve(no(n))) return !1;
|
|
4356
4360
|
let r = this.sumLayers[t - 1];
|
|
4357
4361
|
for (let t = 0; t < e; t += 1) {
|
|
4358
4362
|
let e = t * 2, i = e + 1;
|
|
@@ -4377,8 +4381,8 @@ var so = class {
|
|
|
4377
4381
|
let n = this.points[e], r = this.points[t];
|
|
4378
4382
|
return n.y > r.y || n.y === r.y && e < t;
|
|
4379
4383
|
}
|
|
4380
|
-
},
|
|
4381
|
-
function
|
|
4384
|
+
}, ao = 1e3, oo = B((e) => e.x);
|
|
4385
|
+
function so(e) {
|
|
4382
4386
|
let t = [], n = !0, r = -Infinity;
|
|
4383
4387
|
for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
|
|
4384
4388
|
x: i.x,
|
|
@@ -4389,7 +4393,7 @@ function uo(e) {
|
|
|
4389
4393
|
}));
|
|
4390
4394
|
return n || t.sort((e, t) => e.x - t.x), t;
|
|
4391
4395
|
}
|
|
4392
|
-
function
|
|
4396
|
+
function co(e, t) {
|
|
4393
4397
|
let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
|
|
4394
4398
|
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);
|
|
4395
4399
|
return {
|
|
@@ -4399,7 +4403,7 @@ function fo(e, t) {
|
|
|
4399
4403
|
yDomain: e.length ? [i, a] : null
|
|
4400
4404
|
};
|
|
4401
4405
|
}
|
|
4402
|
-
function
|
|
4406
|
+
function lo(e, t, n = e.length) {
|
|
4403
4407
|
let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
|
|
4404
4408
|
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]);
|
|
4405
4409
|
return {
|
|
@@ -4409,39 +4413,39 @@ function po(e, t, n = e.length) {
|
|
|
4409
4413
|
yDomain: e.length ? [a, o] : null
|
|
4410
4414
|
};
|
|
4411
4415
|
}
|
|
4412
|
-
function
|
|
4416
|
+
function uo(e, t) {
|
|
4413
4417
|
return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
|
|
4414
4418
|
}
|
|
4415
|
-
function
|
|
4419
|
+
function fo(e) {
|
|
4416
4420
|
return e === "auto" ? "peak" : e;
|
|
4417
4421
|
}
|
|
4418
|
-
function
|
|
4422
|
+
function po(e) {
|
|
4419
4423
|
if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
|
|
4420
4424
|
let t = Number.isFinite(e.plotWidth) ? Math.max(0, e.plotWidth) : 0, n = Number.isFinite(e.maxPointsPerPixel) ? Math.max(0, e.maxPointsPerPixel ?? 0) : 4;
|
|
4421
4425
|
return Math.max(1, Math.floor(t * n));
|
|
4422
4426
|
}
|
|
4423
|
-
function
|
|
4427
|
+
function mo(e, t) {
|
|
4424
4428
|
if (e.mode === "raw") return !0;
|
|
4425
4429
|
if (e.mode !== "auto") return !1;
|
|
4426
|
-
let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) :
|
|
4430
|
+
let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : ao;
|
|
4427
4431
|
if (!e.previousSelectedMode) return t <= n;
|
|
4428
4432
|
let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
|
|
4429
4433
|
return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
|
|
4430
4434
|
}
|
|
4431
|
-
function
|
|
4435
|
+
function ho(e, t) {
|
|
4432
4436
|
let n = e[0], r = e.at(-1);
|
|
4433
|
-
return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[
|
|
4437
|
+
return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[oo.center(e, t)] : void 0;
|
|
4434
4438
|
}
|
|
4435
|
-
function
|
|
4439
|
+
function go(e) {
|
|
4436
4440
|
return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
|
|
4437
4441
|
}
|
|
4438
|
-
function
|
|
4442
|
+
function _o(e, t) {
|
|
4439
4443
|
return e.kind === "aggregates" ? e : {
|
|
4440
4444
|
kind: "source-indexes",
|
|
4441
4445
|
sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
|
|
4442
4446
|
};
|
|
4443
4447
|
}
|
|
4444
|
-
function
|
|
4448
|
+
function vo(e, t, n, r, i) {
|
|
4445
4449
|
return [
|
|
4446
4450
|
e.datasetId,
|
|
4447
4451
|
e.revision,
|
|
@@ -4461,14 +4465,14 @@ function xo(e, t, n, r, i) {
|
|
|
4461
4465
|
e.errorBarMinSpacing ?? 0
|
|
4462
4466
|
].join("\0");
|
|
4463
4467
|
}
|
|
4464
|
-
function
|
|
4468
|
+
function yo(e, t, n, r, i, a, o, s) {
|
|
4465
4469
|
return {
|
|
4466
4470
|
seriesId: e.seriesId,
|
|
4467
4471
|
datasetId: e.datasetId,
|
|
4468
4472
|
mode: e.mode,
|
|
4469
4473
|
selectedMode: i,
|
|
4470
4474
|
backend: r,
|
|
4471
|
-
strategy:
|
|
4475
|
+
strategy: fo(e.strategy),
|
|
4472
4476
|
sourcePointCount: t,
|
|
4473
4477
|
visiblePointCount: n,
|
|
4474
4478
|
renderedPointCount: o,
|
|
@@ -4484,18 +4488,18 @@ function So(e, t, n, r, i, a, o, s) {
|
|
|
4484
4488
|
}
|
|
4485
4489
|
//#endregion
|
|
4486
4490
|
//#region src/core/workerSampling/repositoryDataset.ts
|
|
4487
|
-
function
|
|
4491
|
+
function bo(e) {
|
|
4488
4492
|
return e?.y.length ?? 0;
|
|
4489
4493
|
}
|
|
4490
|
-
function
|
|
4494
|
+
function xo(e, t) {
|
|
4491
4495
|
return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
|
|
4492
4496
|
}
|
|
4493
|
-
function
|
|
4497
|
+
function So(e, t) {
|
|
4494
4498
|
let n = (t, n) => {
|
|
4495
|
-
let r = 0, i =
|
|
4499
|
+
let r = 0, i = bo(e);
|
|
4496
4500
|
for (; r < i;) {
|
|
4497
4501
|
let a = r + Math.floor((i - r) / 2);
|
|
4498
|
-
(n ?
|
|
4502
|
+
(n ? xo(e, a) <= t : xo(e, a) < t) ? r = a + 1 : i = a;
|
|
4499
4503
|
}
|
|
4500
4504
|
return r;
|
|
4501
4505
|
}, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
|
|
@@ -4504,13 +4508,13 @@ function To(e, t) {
|
|
|
4504
4508
|
end: n(i, !0)
|
|
4505
4509
|
};
|
|
4506
4510
|
}
|
|
4507
|
-
function
|
|
4508
|
-
return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) =>
|
|
4511
|
+
function Co(e, t, n) {
|
|
4512
|
+
return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => xo(e, t + r));
|
|
4509
4513
|
}
|
|
4510
|
-
function
|
|
4514
|
+
function wo(e) {
|
|
4511
4515
|
return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
|
|
4512
4516
|
}
|
|
4513
|
-
function
|
|
4517
|
+
function To(e, t) {
|
|
4514
4518
|
let n = Math.min(e.length, t.length), r = e.length === t.length;
|
|
4515
4519
|
for (let i = 0; i < n && r; i += 1) r = Number.isFinite(e[i]) && Number.isFinite(t[i]) && (i === 0 || e[i] >= e[i - 1]);
|
|
4516
4520
|
if (r) return {
|
|
@@ -4524,14 +4528,14 @@ function Oo(e, t) {
|
|
|
4524
4528
|
y: Float64Array.from(i, (e) => t[e])
|
|
4525
4529
|
};
|
|
4526
4530
|
}
|
|
4527
|
-
function
|
|
4531
|
+
function Eo(e, t, n, r) {
|
|
4528
4532
|
if (t?.kind === "typed") {
|
|
4529
|
-
let e =
|
|
4533
|
+
let e = To(t.x, t.y);
|
|
4530
4534
|
return {
|
|
4531
4535
|
x: e.x,
|
|
4532
4536
|
y: e.y,
|
|
4533
4537
|
revision: n,
|
|
4534
|
-
metrics:
|
|
4538
|
+
metrics: lo(e.x, e.y, Math.max(t.x.length, t.y.length))
|
|
4535
4539
|
};
|
|
4536
4540
|
}
|
|
4537
4541
|
if (t?.kind === "samples") {
|
|
@@ -4581,26 +4585,26 @@ function ko(e, t, n, r) {
|
|
|
4581
4585
|
}
|
|
4582
4586
|
};
|
|
4583
4587
|
}
|
|
4584
|
-
let i =
|
|
4588
|
+
let i = so(e ?? t?.points ?? []);
|
|
4585
4589
|
return {
|
|
4586
4590
|
x: Float64Array.from(i, (e) => e.x),
|
|
4587
4591
|
y: Float64Array.from(i, (e) => e.y),
|
|
4588
4592
|
points: i,
|
|
4589
4593
|
revision: n,
|
|
4590
|
-
metrics:
|
|
4591
|
-
index: new
|
|
4594
|
+
metrics: co(i, e?.length ?? t?.points.length ?? 0),
|
|
4595
|
+
index: new io(i, { maxBytes: r })
|
|
4592
4596
|
};
|
|
4593
4597
|
}
|
|
4594
|
-
function
|
|
4595
|
-
!
|
|
4598
|
+
function Do(e, t, n) {
|
|
4599
|
+
!wo(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));
|
|
4596
4600
|
}
|
|
4597
|
-
function
|
|
4598
|
-
t.index?.dispose(), t.wasmDatasetHandle !== void 0 &&
|
|
4601
|
+
function Oo(e, t) {
|
|
4602
|
+
t.index?.dispose(), t.wasmDatasetHandle !== void 0 && wo(e) && e.disposeDataset(t.wasmDatasetHandle);
|
|
4599
4603
|
}
|
|
4600
4604
|
//#endregion
|
|
4601
4605
|
//#region src/core/workerSampling/outputBoundaries.ts
|
|
4602
|
-
function
|
|
4603
|
-
let r =
|
|
4606
|
+
function ko(e, t, n) {
|
|
4607
|
+
let r = bo(n);
|
|
4604
4608
|
if (t.start === t.end && (t.start === 0 || t.end === r)) return e;
|
|
4605
4609
|
let i = t.start > 0 ? [t.start - 1] : [], a = t.end < r ? [t.end] : [];
|
|
4606
4610
|
if (e.kind === "source-indexes") {
|
|
@@ -4615,7 +4619,7 @@ function Mo(e, t, n) {
|
|
|
4615
4619
|
};
|
|
4616
4620
|
}
|
|
4617
4621
|
let o = Array.from(e.x), s = Array.from(e.y);
|
|
4618
|
-
return i.length && (o.unshift(
|
|
4622
|
+
return i.length && (o.unshift(xo(n, i[0])), s.unshift(n.y[i[0]])), a.length && (o.push(xo(n, a[0])), s.push(n.y[a[0]])), {
|
|
4619
4623
|
kind: "aggregates",
|
|
4620
4624
|
x: Float64Array.from(o),
|
|
4621
4625
|
y: Float64Array.from(s)
|
|
@@ -4623,17 +4627,17 @@ function Mo(e, t, n) {
|
|
|
4623
4627
|
}
|
|
4624
4628
|
//#endregion
|
|
4625
4629
|
//#region src/core/workerSampling/samplingCache.ts
|
|
4626
|
-
var
|
|
4627
|
-
function
|
|
4630
|
+
var Ao = 96, jo = 16 * 1024 * 1024;
|
|
4631
|
+
function Mo(e) {
|
|
4628
4632
|
return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
|
|
4629
4633
|
}
|
|
4630
|
-
var
|
|
4634
|
+
var No = class {
|
|
4631
4635
|
entries = /* @__PURE__ */ new Map();
|
|
4632
4636
|
bytes = 0;
|
|
4633
4637
|
maxEntries;
|
|
4634
4638
|
maxBytes;
|
|
4635
4639
|
constructor(e = {}) {
|
|
4636
|
-
this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) :
|
|
4640
|
+
this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : Ao, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : jo;
|
|
4637
4641
|
}
|
|
4638
4642
|
get metrics() {
|
|
4639
4643
|
return {
|
|
@@ -4648,7 +4652,7 @@ var Io = class {
|
|
|
4648
4652
|
if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
|
|
4649
4653
|
}
|
|
4650
4654
|
set(e, t) {
|
|
4651
|
-
let n =
|
|
4655
|
+
let n = Mo(t);
|
|
4652
4656
|
if (n > this.maxBytes || this.maxEntries === 0) return;
|
|
4653
4657
|
let r = this.entries.get(e);
|
|
4654
4658
|
for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
|
|
@@ -4668,14 +4672,14 @@ var Io = class {
|
|
|
4668
4672
|
clear() {
|
|
4669
4673
|
this.entries.clear(), this.bytes = 0;
|
|
4670
4674
|
}
|
|
4671
|
-
},
|
|
4675
|
+
}, Po = class {
|
|
4672
4676
|
datasets = /* @__PURE__ */ new Map();
|
|
4673
4677
|
javascriptBackend;
|
|
4674
4678
|
cache;
|
|
4675
4679
|
indexMaxBytes;
|
|
4676
4680
|
wasmBackend;
|
|
4677
4681
|
constructor(e = {}) {
|
|
4678
|
-
this.javascriptBackend = e.javascriptBackend ??
|
|
4682
|
+
this.javascriptBackend = e.javascriptBackend ?? Za, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new No({
|
|
4679
4683
|
maxEntries: e.cacheMaxEntries,
|
|
4680
4684
|
maxBytes: e.cacheMaxBytes
|
|
4681
4685
|
});
|
|
@@ -4688,9 +4692,9 @@ var Io = class {
|
|
|
4688
4692
|
};
|
|
4689
4693
|
}
|
|
4690
4694
|
setWasmBackend(e) {
|
|
4691
|
-
this.wasmBackend && this.wasmBackend !== e &&
|
|
4695
|
+
this.wasmBackend && this.wasmBackend !== e && wo(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
|
|
4692
4696
|
e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
|
|
4693
|
-
})), this.wasmBackend = e,
|
|
4697
|
+
})), this.wasmBackend = e, wo(e) && this.datasets.forEach((t) => Do(e, t, this.indexMaxBytes));
|
|
4694
4698
|
}
|
|
4695
4699
|
handle(e) {
|
|
4696
4700
|
switch (e.type) {
|
|
@@ -4706,15 +4710,15 @@ var Io = class {
|
|
|
4706
4710
|
register(e, t, n, r) {
|
|
4707
4711
|
let i = this.datasets.get(e);
|
|
4708
4712
|
if (i) return this.datasetResponse(t, e, i, "stale-revision");
|
|
4709
|
-
let a =
|
|
4710
|
-
return
|
|
4713
|
+
let a = Eo(n, r, 1, this.indexMaxBytes);
|
|
4714
|
+
return Do(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
|
|
4711
4715
|
}
|
|
4712
4716
|
replace(e, t, n, r, i) {
|
|
4713
|
-
let a = this.datasets.get(e), o =
|
|
4717
|
+
let a = this.datasets.get(e), o = uo(a, n);
|
|
4714
4718
|
if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
|
|
4715
|
-
|
|
4716
|
-
let s =
|
|
4717
|
-
return
|
|
4719
|
+
Oo(this.wasmBackend, a), this.cache.deleteDataset(e);
|
|
4720
|
+
let s = Eo(r, i, a.revision + 1, this.indexMaxBytes);
|
|
4721
|
+
return Do(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
|
|
4718
4722
|
}
|
|
4719
4723
|
sample(e) {
|
|
4720
4724
|
return {
|
|
@@ -4724,28 +4728,28 @@ var Io = class {
|
|
|
4724
4728
|
};
|
|
4725
4729
|
}
|
|
4726
4730
|
sampleSeries(e, t) {
|
|
4727
|
-
let n = performance.now(), r = this.datasets.get(t.datasetId), i =
|
|
4731
|
+
let n = performance.now(), r = this.datasets.get(t.datasetId), i = uo(r, t.revision);
|
|
4728
4732
|
if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
|
|
4729
|
-
let a =
|
|
4730
|
-
if (
|
|
4733
|
+
let a = So(r, t.xDomain), o = a.end - a.start;
|
|
4734
|
+
if (mo(t, o)) return this.sampleResponse(e, t, "ok", ko({
|
|
4731
4735
|
kind: "source-indexes",
|
|
4732
4736
|
sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
|
|
4733
4737
|
}, a, r), "raw", "raw", o, n, !1);
|
|
4734
4738
|
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);
|
|
4735
4739
|
if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
|
|
4736
|
-
let u =
|
|
4740
|
+
let u = fo(t.strategy), d = po(t), f = vo(t, a, u, d, l.kind), p = this.cache.get(f);
|
|
4737
4741
|
if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
|
|
4738
|
-
let m =
|
|
4739
|
-
x:
|
|
4742
|
+
let m = ko((l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && wo(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? _o(l.sample({
|
|
4743
|
+
x: Co(r, a.start, a.end),
|
|
4740
4744
|
y: r.y.subarray(a.start, a.end),
|
|
4741
4745
|
points: r.points?.slice(a.start, a.end) ?? [],
|
|
4742
4746
|
strategy: u,
|
|
4743
4747
|
targetPointCount: d
|
|
4744
4748
|
}), a.start), a, r);
|
|
4745
|
-
return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 &&
|
|
4749
|
+
return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && wo(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
|
|
4746
4750
|
}
|
|
4747
4751
|
sampleResponse(e, t, n, r, i, a, o, s, c) {
|
|
4748
|
-
let l =
|
|
4752
|
+
let l = yo(t, bo(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, go(r), c);
|
|
4749
4753
|
return l.requestId = e, {
|
|
4750
4754
|
seriesId: t.seriesId,
|
|
4751
4755
|
datasetId: t.datasetId,
|
|
@@ -4756,7 +4760,7 @@ var Io = class {
|
|
|
4756
4760
|
};
|
|
4757
4761
|
}
|
|
4758
4762
|
findNearest(e, t, n, r) {
|
|
4759
|
-
let i = this.datasets.get(e), a =
|
|
4763
|
+
let i = this.datasets.get(e), a = uo(i, n);
|
|
4760
4764
|
return a !== "ok" || !i ? {
|
|
4761
4765
|
type: "find-nearest-point-response",
|
|
4762
4766
|
requestId: t,
|
|
@@ -4769,12 +4773,12 @@ var Io = class {
|
|
|
4769
4773
|
datasetId: e,
|
|
4770
4774
|
revision: n,
|
|
4771
4775
|
status: a,
|
|
4772
|
-
point: i.points ?
|
|
4773
|
-
let e =
|
|
4774
|
-
if (!
|
|
4775
|
-
let t = Math.min(
|
|
4776
|
-
return Number.isFinite(r) &&
|
|
4777
|
-
x:
|
|
4776
|
+
point: i.points ? ho(i.points, r) : (() => {
|
|
4777
|
+
let e = So(i, [r, r]);
|
|
4778
|
+
if (!bo(i) || r < xo(i, 0) || r > xo(i, bo(i) - 1)) return;
|
|
4779
|
+
let t = Math.min(bo(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - xo(i, n)) < Math.abs(xo(i, t) - r) ? n : t;
|
|
4780
|
+
return Number.isFinite(r) && bo(i) ? {
|
|
4781
|
+
x: xo(i, a),
|
|
4778
4782
|
y: i.y[a]
|
|
4779
4783
|
} : void 0;
|
|
4780
4784
|
})()
|
|
@@ -4782,15 +4786,15 @@ var Io = class {
|
|
|
4782
4786
|
}
|
|
4783
4787
|
metrics(e, t, n) {
|
|
4784
4788
|
let r = this.datasets.get(e);
|
|
4785
|
-
return this.datasetResponse(t, e, r,
|
|
4789
|
+
return this.datasetResponse(t, e, r, uo(r, n));
|
|
4786
4790
|
}
|
|
4787
4791
|
dispose(e, t, n) {
|
|
4788
|
-
let r = this.datasets.get(e), i =
|
|
4789
|
-
return i === "ok" && r && (
|
|
4792
|
+
let r = this.datasets.get(e), i = uo(r, n);
|
|
4793
|
+
return i === "ok" && r && (Oo(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
|
|
4790
4794
|
}
|
|
4791
4795
|
disposeAll(e) {
|
|
4792
4796
|
let t = [...this.datasets.keys()];
|
|
4793
|
-
return this.datasets.forEach((e) =>
|
|
4797
|
+
return this.datasets.forEach((e) => Oo(this.wasmBackend, e)), wo(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
|
|
4794
4798
|
type: "dispose-all-response",
|
|
4795
4799
|
requestId: e,
|
|
4796
4800
|
disposedDatasetIds: t
|
|
@@ -4812,13 +4816,13 @@ var Io = class {
|
|
|
4812
4816
|
};
|
|
4813
4817
|
//#endregion
|
|
4814
4818
|
//#region src/components/core/workerSamplingClient.ts
|
|
4815
|
-
function
|
|
4819
|
+
function Fo(e) {
|
|
4816
4820
|
return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
|
|
4817
4821
|
}
|
|
4818
|
-
function
|
|
4822
|
+
function Io() {
|
|
4819
4823
|
let e = !1, t, n, r, i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = () => {
|
|
4820
4824
|
if (n) return n;
|
|
4821
|
-
n = new
|
|
4825
|
+
n = new Po();
|
|
4822
4826
|
for (let [e, t] of a) {
|
|
4823
4827
|
n.handle({
|
|
4824
4828
|
type: "register-dataset",
|
|
@@ -4866,7 +4870,7 @@ function zo() {
|
|
|
4866
4870
|
}
|
|
4867
4871
|
});
|
|
4868
4872
|
}, l = (i) => {
|
|
4869
|
-
e || n || (r =
|
|
4873
|
+
e || n || (r = Fo(i), t?.terminate(), t = void 0, c());
|
|
4870
4874
|
};
|
|
4871
4875
|
try {
|
|
4872
4876
|
typeof Worker > "u" ? l() : (t = new Worker(new URL(
|
|
@@ -4912,13 +4916,13 @@ function zo() {
|
|
|
4912
4916
|
}
|
|
4913
4917
|
};
|
|
4914
4918
|
}
|
|
4915
|
-
function
|
|
4919
|
+
function Lo(e) {
|
|
4916
4920
|
return e.type === "dataset-response";
|
|
4917
4921
|
}
|
|
4918
4922
|
//#endregion
|
|
4919
4923
|
//#region src/components/core/waveformSamplingSession.ts
|
|
4920
|
-
function
|
|
4921
|
-
let e =
|
|
4924
|
+
function Ro() {
|
|
4925
|
+
let e = Va(), t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map(), o = {
|
|
4922
4926
|
scheduler: e,
|
|
4923
4927
|
revisions: t,
|
|
4924
4928
|
backendBySeries: n,
|
|
@@ -4931,7 +4935,7 @@ function Vo() {
|
|
|
4931
4935
|
autoModeSettleTimer: void 0,
|
|
4932
4936
|
hasInitialSamplingRun: !1,
|
|
4933
4937
|
getClient() {
|
|
4934
|
-
return o.client ??=
|
|
4938
|
+
return o.client ??= Io();
|
|
4935
4939
|
},
|
|
4936
4940
|
invalidate() {
|
|
4937
4941
|
e.cancelPending(), clearTimeout(o.diagnosticsTimer), clearTimeout(o.autoModeSettleTimer), o.diagnosticsTimer = void 0, o.autoModeSettleTimer = void 0, o.hasInitialSamplingRun = !1, a.clear(), t.clear(), n.clear(), r.clear(), i.clear(), o.client?.dispose(), o.client = void 0;
|
|
@@ -4944,15 +4948,15 @@ function Vo() {
|
|
|
4944
4948
|
}
|
|
4945
4949
|
//#endregion
|
|
4946
4950
|
//#region src/components/core/useWaveformRenderSampling.ts
|
|
4947
|
-
var
|
|
4948
|
-
function
|
|
4951
|
+
var zo = 120;
|
|
4952
|
+
function Bo(e, t) {
|
|
4949
4953
|
let n = e.output;
|
|
4950
4954
|
if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
|
|
4951
4955
|
x: e,
|
|
4952
4956
|
y: n.y[t]
|
|
4953
4957
|
})) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
|
|
4954
4958
|
}
|
|
4955
|
-
function
|
|
4959
|
+
function Vo(e, t) {
|
|
4956
4960
|
let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
|
|
4957
4961
|
return {
|
|
4958
4962
|
seriesId: n.seriesId,
|
|
@@ -4974,7 +4978,7 @@ function Wo(e, t) {
|
|
|
4974
4978
|
maxPendingRequestCount: 0
|
|
4975
4979
|
};
|
|
4976
4980
|
}
|
|
4977
|
-
function
|
|
4981
|
+
function Ho(e) {
|
|
4978
4982
|
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));
|
|
4979
4983
|
if (i <= a) return t.pointsInRange(n, r);
|
|
4980
4984
|
if (a === 1) return t.pointAt(n) ? [t.pointAt(n)] : [];
|
|
@@ -4985,7 +4989,7 @@ function Go(e) {
|
|
|
4985
4989
|
}
|
|
4986
4990
|
return o;
|
|
4987
4991
|
}
|
|
4988
|
-
function
|
|
4992
|
+
function Uo(e, t, n, r) {
|
|
4989
4993
|
return {
|
|
4990
4994
|
message: e,
|
|
4991
4995
|
mode: t,
|
|
@@ -4993,8 +4997,8 @@ function Ko(e, t, n, r) {
|
|
|
4993
4997
|
seriesIds: r
|
|
4994
4998
|
};
|
|
4995
4999
|
}
|
|
4996
|
-
function
|
|
4997
|
-
let n = T(), r = T(0), i =
|
|
5000
|
+
function Wo(e) {
|
|
5001
|
+
let n = T(), r = T(0), i = Ro(), { revisions: a, backendBySeries: o, selectedModeBySeries: s, emittedErrors: c, pendingDiagnostics: l, scheduler: u } = i, d = t(() => {
|
|
4998
5002
|
let t = e.renderingOptions.value.sampling;
|
|
4999
5003
|
return e.sourceTrackLayouts.value.flatMap((n) => {
|
|
5000
5004
|
let r = n.xScale.domain();
|
|
@@ -5059,13 +5063,13 @@ function qo(e) {
|
|
|
5059
5063
|
revision: 0,
|
|
5060
5064
|
dataset: t.source.toWorkerDataset()
|
|
5061
5065
|
});
|
|
5062
|
-
!u.isCurrent(n) || !
|
|
5066
|
+
!u.isCurrent(n) || !Lo(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
|
|
5063
5067
|
}));
|
|
5064
5068
|
}, v = async (t, n = !1) => {
|
|
5065
5069
|
let r = d.value, o = { ...e.linePointOverrides.value }, c = [], l = [];
|
|
5066
5070
|
if (r.forEach((e) => {
|
|
5067
|
-
let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" &&
|
|
5068
|
-
e.request.mode === "raw" || a ? (o[e.series.id] = bt(e.source.pointsInRange(e.visibleRange.start, e.visibleRange.end), e.visibleRange, e.source.length, (t) => e.source.pointAt(t)), s.set(e.series.id, "raw"), l.push(
|
|
5071
|
+
let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" && Ba(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
|
|
5072
|
+
e.request.mode === "raw" || a ? (o[e.series.id] = bt(e.source.pointsInRange(e.visibleRange.start, e.visibleRange.end), e.visibleRange, e.source.length, (t) => e.source.pointAt(t)), s.set(e.series.id, "raw"), l.push(Vo(e, t))) : (o[e.series.id]?.length || (o[e.series.id] = bt(Ho(e), e.visibleRange, e.source.length, (t) => e.source.pointAt(t))), c.push({
|
|
5069
5073
|
...e,
|
|
5070
5074
|
request: {
|
|
5071
5075
|
...e.request,
|
|
@@ -5093,15 +5097,15 @@ function qo(e) {
|
|
|
5093
5097
|
p = n;
|
|
5094
5098
|
} catch (n) {
|
|
5095
5099
|
if (!u.isCurrent(t)) return;
|
|
5096
|
-
h(
|
|
5100
|
+
h(Uo(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, e.renderingOptions.value.sampling.mode === "wasm" && e.renderingOptions.value.sampling.wasmFailureFallback === "error" ? "none" : "javascript", c.map((e) => e.series.id)));
|
|
5097
5101
|
return;
|
|
5098
5102
|
}
|
|
5099
5103
|
if (!u.isCurrent(t)) return;
|
|
5100
5104
|
let _ = new Map(c.map((e) => [e.series.id, e.source]));
|
|
5101
5105
|
p.results.forEach((e) => {
|
|
5102
|
-
let t = _.get(e.seriesId), n = t ?
|
|
5103
|
-
n && (e.status === "ok" || e.status === "wasm-unavailable") && (o[e.seriesId] = n), l.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && h(
|
|
5104
|
-
}), p.workerError && p.results.every((e) => e.status !== "wasm-unavailable") && h(
|
|
5106
|
+
let t = _.get(e.seriesId), n = t ? Bo(e, t) : void 0;
|
|
5107
|
+
n && (e.status === "ok" || e.status === "wasm-unavailable") && (o[e.seriesId] = n), l.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && h(Uo(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
|
|
5108
|
+
}), p.workerError && p.results.every((e) => e.status !== "wasm-unavailable") && h(Uo(p.workerError, e.renderingOptions.value.sampling.mode, e.renderingOptions.value.sampling.mode === "wasm" && e.renderingOptions.value.sampling.wasmFailureFallback === "error" ? "none" : "javascript", c.map((e) => e.series.id))), f.workerFailureReason && p.results.every((e) => e.status !== "wasm-unavailable") && h(Uo(f.workerFailureReason, e.renderingOptions.value.sampling.mode, e.renderingOptions.value.sampling.mode === "wasm" && e.renderingOptions.value.sampling.wasmFailureFallback === "error" ? "none" : "javascript", c.map((e) => e.series.id))), e.linePointOverrides.value = { ...o }, m(l);
|
|
5105
5109
|
}, y = (e) => {
|
|
5106
5110
|
n.value = void 0;
|
|
5107
5111
|
let t = f.value;
|
|
@@ -5118,7 +5122,7 @@ function qo(e) {
|
|
|
5118
5122
|
let t = i.hasInitialSamplingRun;
|
|
5119
5123
|
i.hasInitialSamplingRun = !0, y(t), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (i.autoModeSettleTimer = setTimeout(() => {
|
|
5120
5124
|
i.autoModeSettleTimer = void 0, y(!1);
|
|
5121
|
-
},
|
|
5125
|
+
}, zo));
|
|
5122
5126
|
}, { immediate: !0 }), j(e.preparedSeries, () => {
|
|
5123
5127
|
i.invalidate(), r.value += 1, e.linePointOverrides.value = {};
|
|
5124
5128
|
}, { flush: "sync" }), _(() => i.dispose()), {
|
|
@@ -5128,11 +5132,11 @@ function qo(e) {
|
|
|
5128
5132
|
}
|
|
5129
5133
|
//#endregion
|
|
5130
5134
|
//#region src/components/core/useWaveformChartController.ts
|
|
5131
|
-
function
|
|
5135
|
+
function Go(e, t) {
|
|
5132
5136
|
e.value = t instanceof Element ? t : void 0;
|
|
5133
5137
|
}
|
|
5134
|
-
function
|
|
5135
|
-
let r =
|
|
5138
|
+
function Ko(e, n) {
|
|
5139
|
+
let r = mr(e, n), i = b({
|
|
5136
5140
|
...D(e),
|
|
5137
5141
|
interactionMode: r.mode
|
|
5138
5142
|
}), a = T({}), o = x(), s = x(), c = x(), l = x(), u = x(0), p = x(0), m = x(0), g = x(0), _ = x(0), v = T(U), y = T([]), S = x({}), C = x({}), E = w({
|
|
@@ -5144,13 +5148,13 @@ function Yo(e, n) {
|
|
|
5144
5148
|
x: 0,
|
|
5145
5149
|
y: 0
|
|
5146
5150
|
}
|
|
5147
|
-
}), O = x(!1), k = x(1), A = T(), N =
|
|
5151
|
+
}), O = x(!1), k = x(1), A = T(), N = jr("waveform-clip"), P = x(new Set(i.defaultHiddenSeriesIds)), F = Si(), I = T({}), L = x([]), R = Bi();
|
|
5148
5152
|
j([() => i.yDomain, () => i.yDomains], () => {
|
|
5149
5153
|
S.value = {}, C.value = {};
|
|
5150
5154
|
}, { deep: !0 });
|
|
5151
|
-
let z = T(null), B = x(!1), ee = x(!1), te = () => void 0, ne = () => void 0, re = () => void 0, ie =
|
|
5155
|
+
let z = T(null), B = x(!1), ee = x(!1), te = () => void 0, ne = () => void 0, re = () => void 0, ie = Ji(() => i.data, () => {
|
|
5152
5156
|
re(), te();
|
|
5153
|
-
}, () => ne()), V =
|
|
5157
|
+
}, () => ne()), V = Ra({
|
|
5154
5158
|
props: i,
|
|
5155
5159
|
observedWidth: u,
|
|
5156
5160
|
observedHeight: p,
|
|
@@ -5158,7 +5162,7 @@ function Yo(e, n) {
|
|
|
5158
5162
|
measuredTitleHeight: g,
|
|
5159
5163
|
internalHiddenSeriesIds: P,
|
|
5160
5164
|
paginationBandHeight: _
|
|
5161
|
-
}), { chartWidth: H, chartHeight: ae, isCleanView: oe, isPresentationMode: se, hiddenSeriesIdSet: ce, resolvedTitleText: le, titleAreaReserved: ue, titleMeasureStyle: de, titleAreaHeight: fe, chartTopMargin: pe, innerHeight: me } = V, he =
|
|
5165
|
+
}), { chartWidth: H, chartHeight: ae, isCleanView: oe, isPresentationMode: se, hiddenSeriesIdSet: ce, resolvedTitleText: le, titleAreaReserved: ue, titleMeasureStyle: de, titleAreaHeight: fe, chartTopMargin: pe, innerHeight: me } = V, he = Pa({
|
|
5162
5166
|
props: i,
|
|
5163
5167
|
preparedSeries: ie,
|
|
5164
5168
|
currentPage: k,
|
|
@@ -5173,7 +5177,7 @@ function Yo(e, n) {
|
|
|
5173
5177
|
annotationInteraction: d(F),
|
|
5174
5178
|
linePointOverrides: I,
|
|
5175
5179
|
boundaries: a
|
|
5176
|
-
}), { chartSeries: ge, chartTracks: ve, renderingOptions: ye, trackLayouts: be, gridOptions: xe, pageCount: W, pagedTracks: Se, resolvedChartLeftMargin: Ce, innerWidth: we, hasChartArea: Te, activeInteractionMode: Ee, isZoomMode: De, initialXDomain: Oe, sharedZoomDomain: ke, resolveInitialTrackDomain: Ae, annotationLayoutsForTrack: je, resolveSeriesYScale: Me } = he, Ne =
|
|
5180
|
+
}), { chartSeries: ge, chartTracks: ve, renderingOptions: ye, trackLayouts: be, gridOptions: xe, pageCount: W, pagedTracks: Se, resolvedChartLeftMargin: Ce, innerWidth: we, hasChartArea: Te, activeInteractionMode: Ee, isZoomMode: De, initialXDomain: Oe, sharedZoomDomain: ke, resolveInitialTrackDomain: Ae, annotationLayoutsForTrack: je, resolveSeriesYScale: Me } = he, Ne = za(i, he.resolvedChartLeftMargin, he.innerWidth, V.titleAreaStyle), Pe = Wo({
|
|
5177
5181
|
props: i,
|
|
5178
5182
|
emit: n,
|
|
5179
5183
|
instanceId: N,
|
|
@@ -5183,9 +5187,9 @@ function Yo(e, n) {
|
|
|
5183
5187
|
linePointOverrides: I
|
|
5184
5188
|
}), Fe = t(() => xe.value.showPagination && W.value > 1 && !oe.value);
|
|
5185
5189
|
M(() => {
|
|
5186
|
-
_.value = i.layoutPreset === "edge-compact" ?
|
|
5190
|
+
_.value = i.layoutPreset === "edge-compact" ? Hi(Fe.value) : xe.value.showPagination && W.value > 1 && H.value <= 520 ? 40 : 0;
|
|
5187
5191
|
});
|
|
5188
|
-
let G =
|
|
5192
|
+
let G = Vi({
|
|
5189
5193
|
props: i,
|
|
5190
5194
|
emit: n,
|
|
5191
5195
|
svgElement: s,
|
|
@@ -5204,7 +5208,7 @@ function Yo(e, n) {
|
|
|
5204
5208
|
cancelPendingHover: () => Ie.cancelPendingHover()
|
|
5205
5209
|
});
|
|
5206
5210
|
re = G.prepareForDataChange;
|
|
5207
|
-
let K =
|
|
5211
|
+
let K = Ti({
|
|
5208
5212
|
props: i,
|
|
5209
5213
|
emit: n,
|
|
5210
5214
|
container: o,
|
|
@@ -5224,7 +5228,7 @@ function Yo(e, n) {
|
|
|
5224
5228
|
chartTopMargin: pe,
|
|
5225
5229
|
activeInteractionMode: Ee,
|
|
5226
5230
|
isPresentationMode: se
|
|
5227
|
-
}), q =
|
|
5231
|
+
}), q = zi({
|
|
5228
5232
|
clearBoundaries: (e) => Re.clearBoundaries(e),
|
|
5229
5233
|
props: i,
|
|
5230
5234
|
emit: n,
|
|
@@ -5250,7 +5254,7 @@ function Yo(e, n) {
|
|
|
5250
5254
|
cancelPendingZoom: G.cancelPendingZoom,
|
|
5251
5255
|
clearHover: () => Ie.clearHover(),
|
|
5252
5256
|
resolveTrackAtPointer: K.resolveTrackAtPointer
|
|
5253
|
-
}), Ie =
|
|
5257
|
+
}), Ie = Ei({
|
|
5254
5258
|
emit: n,
|
|
5255
5259
|
hoverState: E,
|
|
5256
5260
|
suppressHoverUntilMove: O,
|
|
@@ -5267,7 +5271,7 @@ function Yo(e, n) {
|
|
|
5267
5271
|
resolveTrackAtPointer: K.resolveTrackAtPointer
|
|
5268
5272
|
}), Le = () => {
|
|
5269
5273
|
q.cancelViewportDrag(), G.cancelPendingZoom(), Ie.clearHover(), K.cancelAnnotation();
|
|
5270
|
-
}, Re =
|
|
5274
|
+
}, Re = kr({
|
|
5271
5275
|
props: i,
|
|
5272
5276
|
emit: n,
|
|
5273
5277
|
layout: he,
|
|
@@ -5295,7 +5299,7 @@ function Yo(e, n) {
|
|
|
5295
5299
|
ce,
|
|
5296
5300
|
() => i.xDomainStrategy
|
|
5297
5301
|
], Re.restoreInitialBoundaries, { deep: !0 }), h(Le);
|
|
5298
|
-
let ze =
|
|
5302
|
+
let ze = Ki({
|
|
5299
5303
|
preserveFullViewport: () => Object.keys(a.value).length > 0,
|
|
5300
5304
|
props: i,
|
|
5301
5305
|
emit: n,
|
|
@@ -5343,7 +5347,7 @@ function Yo(e, n) {
|
|
|
5343
5347
|
te = ze.handleBeforeDataReferenceChange, ne = () => {
|
|
5344
5348
|
a.value = {}, q.cancelViewportDrag(), ze.handleDataReferenceChange(), f(G.configureZoom);
|
|
5345
5349
|
};
|
|
5346
|
-
let Be =
|
|
5350
|
+
let Be = pr({
|
|
5347
5351
|
container: () => o.value,
|
|
5348
5352
|
svg: () => s.value,
|
|
5349
5353
|
size: () => ({
|
|
@@ -5390,15 +5394,15 @@ function Yo(e, n) {
|
|
|
5390
5394
|
editorSeriesOptions: L,
|
|
5391
5395
|
clipPathId: N,
|
|
5392
5396
|
goToPage: ze.goToPage,
|
|
5393
|
-
setContainer: (e) =>
|
|
5394
|
-
setSvgElement: (e) =>
|
|
5395
|
-
setTitleMeasureElement: (e) =>
|
|
5396
|
-
setSharedOverlayElement: (e) =>
|
|
5397
|
+
setContainer: (e) => Go(o, e),
|
|
5398
|
+
setSvgElement: (e) => Go(s, e),
|
|
5399
|
+
setTitleMeasureElement: (e) => Go(c, e),
|
|
5400
|
+
setSharedOverlayElement: (e) => Go(l, e)
|
|
5397
5401
|
});
|
|
5398
5402
|
}
|
|
5399
5403
|
//#endregion
|
|
5400
5404
|
//#region src/components/controls/toolbarRegistry.ts
|
|
5401
|
-
var
|
|
5405
|
+
var qo = {
|
|
5402
5406
|
"zoom-box": "M3 3h6M3 3v6M21 3h-6M21 3v6M3 21h6M3 21v-6M21 21h-6M21 21v-6",
|
|
5403
5407
|
pan: "M12 2v20M2 12h20M8 6l4-4 4 4M8 18l4 4 4-4M6 8l-4 4 4 4M18 8l4 4-4 4",
|
|
5404
5408
|
annotate: "M4 4h16v12H9l-5 4V4M8 8h8M8 12h5",
|
|
@@ -5407,11 +5411,11 @@ var Xo = {
|
|
|
5407
5411
|
reset: "M4 11a8 8 0 1 1 1 6M4 4v7h7",
|
|
5408
5412
|
fit: "M8 3H3v5M16 3h5v5M3 16v5h5M21 16v5h-5M8 8h8v8H8z",
|
|
5409
5413
|
export: "M12 3v12M7 10l5 5 5-5M4 15v6h16v-6"
|
|
5410
|
-
},
|
|
5414
|
+
}, Jo = {
|
|
5411
5415
|
"zoom-box": "zoom",
|
|
5412
5416
|
pan: "pan",
|
|
5413
5417
|
annotate: "annotation"
|
|
5414
|
-
},
|
|
5418
|
+
}, Yo = {
|
|
5415
5419
|
"zoom-box": "框选缩放",
|
|
5416
5420
|
pan: "平移",
|
|
5417
5421
|
annotate: "注解",
|
|
@@ -5420,7 +5424,7 @@ var Xo = {
|
|
|
5420
5424
|
reset: "重置",
|
|
5421
5425
|
fit: "显示全部",
|
|
5422
5426
|
export: "导出图片"
|
|
5423
|
-
},
|
|
5427
|
+
}, Xo = [
|
|
5424
5428
|
"zoom-box",
|
|
5425
5429
|
"pan",
|
|
5426
5430
|
"annotate",
|
|
@@ -5429,12 +5433,12 @@ var Xo = {
|
|
|
5429
5433
|
"reset",
|
|
5430
5434
|
"fit",
|
|
5431
5435
|
"export"
|
|
5432
|
-
],
|
|
5433
|
-
let t =
|
|
5436
|
+
], Zo = Object.fromEntries(Xo.map((e) => {
|
|
5437
|
+
let t = Jo[e], n = e === "zoom-in" || e === "zoom-out" || e === "reset" || e === "fit" ? e : void 0;
|
|
5434
5438
|
return [e, {
|
|
5435
5439
|
id: e,
|
|
5436
|
-
label:
|
|
5437
|
-
icon:
|
|
5440
|
+
label: Yo[e],
|
|
5441
|
+
icon: qo[e],
|
|
5438
5442
|
group: t ? "mode" : n ? "viewport" : "export",
|
|
5439
5443
|
active: (e) => !!t && e.mode === t,
|
|
5440
5444
|
enabled: (t, r) => n && r ? !!t.targets.find((e) => e.trackId === r)?.available[n] : t.available[e],
|
|
@@ -5443,10 +5447,10 @@ var Xo = {
|
|
|
5443
5447
|
}
|
|
5444
5448
|
}];
|
|
5445
5449
|
}));
|
|
5446
|
-
function
|
|
5447
|
-
let t = typeof e == "object" ? e : {}, n = [...new Set(t.items ??
|
|
5450
|
+
function Qo(e) {
|
|
5451
|
+
let t = typeof e == "object" ? e : {}, n = [...new Set(t.items ?? Xo)].filter((e) => Zo[e]), r = [];
|
|
5448
5452
|
return n.forEach((e) => {
|
|
5449
|
-
let t =
|
|
5453
|
+
let t = Zo[e];
|
|
5450
5454
|
r.at(-1)?.[0]?.group === t.group ? r.at(-1).push(t) : r.push([t]);
|
|
5451
5455
|
}), {
|
|
5452
5456
|
visible: !!e && t.visible !== !1 && n.length > 0,
|
|
@@ -5457,10 +5461,10 @@ function ts(e) {
|
|
|
5457
5461
|
}
|
|
5458
5462
|
//#endregion
|
|
5459
5463
|
//#region src/components/controls/WaveformToolbar.vue?vue&type=script&setup=true&lang.ts
|
|
5460
|
-
var
|
|
5464
|
+
var $o = ["onKeydown"], es = ["aria-expanded"], ts = ["value"], ns = {
|
|
5461
5465
|
key: 2,
|
|
5462
5466
|
class: "waveform-toolbar__scope"
|
|
5463
|
-
},
|
|
5467
|
+
}, rs = ["data-group"], is = [
|
|
5464
5468
|
"data-command",
|
|
5465
5469
|
"title",
|
|
5466
5470
|
"aria-label",
|
|
@@ -5468,23 +5472,23 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5468
5472
|
"aria-expanded",
|
|
5469
5473
|
"disabled",
|
|
5470
5474
|
"onClick"
|
|
5471
|
-
],
|
|
5475
|
+
], as = {
|
|
5472
5476
|
viewBox: "0 0 24 24",
|
|
5473
5477
|
"aria-hidden": "true"
|
|
5474
|
-
},
|
|
5478
|
+
}, os = ["d"], ss = {
|
|
5475
5479
|
key: 3,
|
|
5476
5480
|
class: "waveform-toolbar__menu",
|
|
5477
5481
|
role: "group",
|
|
5478
5482
|
"aria-label": "图片格式"
|
|
5479
|
-
},
|
|
5483
|
+
}, cs = {
|
|
5480
5484
|
key: 4,
|
|
5481
5485
|
class: "waveform-toolbar__feedback",
|
|
5482
5486
|
role: "status"
|
|
5483
|
-
},
|
|
5487
|
+
}, ls = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
5484
5488
|
__name: "WaveformToolbar",
|
|
5485
5489
|
props: { controller: {} },
|
|
5486
5490
|
setup(n) {
|
|
5487
|
-
let o = n, s = t(() =>
|
|
5491
|
+
let o = n, s = t(() => Qo(o.controller.toolbar)), c = t(() => o.controller.chartWidth < 440), l = x(!1), u = x(""), d = x(!1), f = x(!1), g = x(""), _ = !1;
|
|
5488
5492
|
h(() => {
|
|
5489
5493
|
_ = !0;
|
|
5490
5494
|
}), j(() => o.controller.controlState, (e) => {
|
|
@@ -5539,7 +5543,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5539
5543
|
"aria-label": "图表工具",
|
|
5540
5544
|
"aria-expanded": l.value,
|
|
5541
5545
|
onClick: b
|
|
5542
|
-
}, " 工具 ", 8,
|
|
5546
|
+
}, " 工具 ", 8, es)) : r("", !0),
|
|
5543
5547
|
n.controller.controlState.independent ? P((y(), i("select", {
|
|
5544
5548
|
key: 1,
|
|
5545
5549
|
"onUpdate:modelValue": o[0] ||= (e) => u.value = e,
|
|
@@ -5547,7 +5551,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5547
5551
|
}, [o[8] ||= a("option", { value: "" }, "当前页全部", -1), (y(!0), i(e, null, S(n.controller.controlState.targets, (e) => (y(), i("option", {
|
|
5548
5552
|
key: e.trackId,
|
|
5549
5553
|
value: e.trackId
|
|
5550
|
-
}, E(e.label), 9,
|
|
5554
|
+
}, E(e.label), 9, ts))), 128))], 512)), [[k, u.value]]) : (y(), i("span", ns, "共享范围")),
|
|
5551
5555
|
(y(!0), i(e, null, S(s.value.groups, (t, r) => (y(), i("div", {
|
|
5552
5556
|
key: r,
|
|
5553
5557
|
class: "waveform-toolbar__group",
|
|
@@ -5562,37 +5566,37 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5562
5566
|
"aria-expanded": e.id === "export" ? d.value : void 0,
|
|
5563
5567
|
disabled: !e.enabled(n.controller.controlState, u.value || void 0) || e.id === "export" && f.value,
|
|
5564
5568
|
onClick: (t) => e.id === "export" ? d.value = !d.value : e.run(n.controller, u.value || void 0)
|
|
5565
|
-
}, [(y(), i("svg",
|
|
5566
|
-
d.value ? (y(), i("div",
|
|
5569
|
+
}, [(y(), i("svg", as, [a("path", { d: e.icon }, null, 8, os)]))], 8, is))), 128))], 8, rs))), 128)),
|
|
5570
|
+
d.value ? (y(), i("div", ss, [a("button", {
|
|
5567
5571
|
type: "button",
|
|
5568
5572
|
onClick: o[1] ||= (e) => v("png")
|
|
5569
5573
|
}, "下载 PNG"), a("button", {
|
|
5570
5574
|
type: "button",
|
|
5571
5575
|
onClick: o[2] ||= (e) => v("svg")
|
|
5572
5576
|
}, "下载 SVG")])) : r("", !0),
|
|
5573
|
-
f.value || g.value ? (y(), i("span",
|
|
5574
|
-
], 46,
|
|
5577
|
+
f.value || g.value ? (y(), i("span", cs, E(f.value ? "正在导出…" : g.value), 1)) : r("", !0)
|
|
5578
|
+
], 46, $o)) : r("", !0);
|
|
5575
5579
|
}
|
|
5576
|
-
}), [["__scopeId", "data-v-253fa741"]]),
|
|
5580
|
+
}), [["__scopeId", "data-v-253fa741"]]), us = ["id"], ds = { class: "waveform-annotation-editor__content" }, fs = {
|
|
5577
5581
|
class: "waveform-annotation-editor__coordinates",
|
|
5578
5582
|
"aria-label": "标注坐标"
|
|
5579
|
-
},
|
|
5583
|
+
}, ps = ["aria-invalid"], ms = {
|
|
5580
5584
|
class: "waveform-annotation-editor__coordinate-value",
|
|
5581
5585
|
"aria-hidden": "true"
|
|
5582
|
-
},
|
|
5586
|
+
}, hs = ["id"], gs = {
|
|
5583
5587
|
key: 0,
|
|
5584
5588
|
class: "waveform-annotation-editor__series",
|
|
5585
5589
|
"aria-label": "标注所属波形"
|
|
5586
|
-
},
|
|
5590
|
+
}, _s = { class: "waveform-annotation-editor__series-label" }, vs = ["value"], ys = ["value"], bs = { key: 1 }, xs = { class: "waveform-annotation-editor__field" }, Ss = { class: "waveform-annotation-editor__label-row" }, Cs = ["maxlength"], ws = { class: "waveform-annotation-editor__colors" }, Ts = {
|
|
5587
5591
|
class: "waveform-annotation-editor__color-field",
|
|
5588
5592
|
title: "调整标注边框色和透明度"
|
|
5589
|
-
},
|
|
5593
|
+
}, Es = {
|
|
5590
5594
|
class: "waveform-annotation-editor__color-field",
|
|
5591
5595
|
title: "调整标注文字色和透明度"
|
|
5592
|
-
},
|
|
5596
|
+
}, Ds = {
|
|
5593
5597
|
class: "waveform-annotation-editor__color-field",
|
|
5594
5598
|
title: "调整标注背景色和透明度"
|
|
5595
|
-
},
|
|
5599
|
+
}, Os = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
5596
5600
|
__name: "WaveformAnnotationEditor",
|
|
5597
5601
|
props: {
|
|
5598
5602
|
annotation: {},
|
|
@@ -5612,7 +5616,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5612
5616
|
let u = c(async () => typeof window > "u" ? {
|
|
5613
5617
|
name: "WaveformColorPickerSsrFallback",
|
|
5614
5618
|
render: () => null
|
|
5615
|
-
} : (await import("vue3-colorpicker")).ColorPicker), d = o, p = l, h = x(), g =
|
|
5619
|
+
} : (await import("vue3-colorpicker")).ColorPicker), d = o, p = l, h = x(), g = jr("waveform-annotation-editor-title"), _ = x(""), v = x(""), b = x(!1), C = x(""), w = x(""), T = x(""), D = t(() => b.value && (!v.value.trim() || !Number.isFinite(Number(v.value))) ? "请输入有效的时间" : ""), k = t(() => b.value && (D.value || d.timeError) || ""), M = t(() => _.value.trim().length > 0 && v.value.trim().length > 0 && Number.isFinite(Number(v.value)) && !k.value), F = t(() => _.value.length), I = t(() => {
|
|
5616
5620
|
let e = d.seriesOptions?.find((e) => e.seriesId === d.annotation.seriesId);
|
|
5617
5621
|
return e ? {
|
|
5618
5622
|
id: e.seriesId,
|
|
@@ -5622,7 +5626,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5622
5626
|
} : d.series;
|
|
5623
5627
|
});
|
|
5624
5628
|
function L() {
|
|
5625
|
-
let e =
|
|
5629
|
+
let e = Zr(d.annotation.style);
|
|
5626
5630
|
_.value = d.annotation.text, v.value = ze(d.annotation.x, d.timeUnit), b.value = !1, C.value = e.borderColor, w.value = e.textColor, T.value = e.backgroundColor, f(() => h.value?.focus());
|
|
5627
5631
|
}
|
|
5628
5632
|
j(() => d.annotation.id, L, { immediate: !0 });
|
|
@@ -5663,9 +5667,9 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5663
5667
|
onCancel: o[4] ||= (e) => p("cancel"),
|
|
5664
5668
|
onOk: B
|
|
5665
5669
|
}, {
|
|
5666
|
-
title: N(() => [a("span", { id: O(g) }, E(d.mode === "add" ? "添加标注" : "编辑标注"), 9,
|
|
5667
|
-
default: N(() => [a("div",
|
|
5668
|
-
a("div",
|
|
5670
|
+
title: N(() => [a("span", { id: O(g) }, E(d.mode === "add" ? "添加标注" : "编辑标注"), 9, us)]),
|
|
5671
|
+
default: N(() => [a("div", ds, [
|
|
5672
|
+
a("div", fs, [
|
|
5669
5673
|
a("label", {
|
|
5670
5674
|
class: "waveform-annotation-editor__coordinate-input",
|
|
5671
5675
|
"aria-invalid": !!k.value
|
|
@@ -5688,26 +5692,26 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5688
5692
|
"aria-invalid",
|
|
5689
5693
|
"aria-describedby"
|
|
5690
5694
|
]),
|
|
5691
|
-
a("code",
|
|
5692
|
-
], 8,
|
|
5695
|
+
a("code", ms, E(v.value), 1)
|
|
5696
|
+
], 8, ps),
|
|
5693
5697
|
k.value ? (y(), i("p", {
|
|
5694
5698
|
key: 0,
|
|
5695
5699
|
id: `${O(g)}-time-error`,
|
|
5696
5700
|
class: "waveform-annotation-editor__coordinate-error",
|
|
5697
5701
|
role: "alert"
|
|
5698
|
-
}, E(k.value), 9,
|
|
5702
|
+
}, E(k.value), 9, hs)) : r("", !0),
|
|
5699
5703
|
a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, E(O(G)(d.annotation.y)), 1)])
|
|
5700
5704
|
]),
|
|
5701
5705
|
o[13] ||= a("p", {
|
|
5702
5706
|
class: "waveform-annotation-editor__coordinate-hint",
|
|
5703
5707
|
role: "note"
|
|
5704
5708
|
}, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
|
|
5705
|
-
I.value ? (y(), i("label",
|
|
5709
|
+
I.value ? (y(), i("label", gs, [
|
|
5706
5710
|
a("i", {
|
|
5707
5711
|
style: m({ backgroundColor: I.value.color }),
|
|
5708
5712
|
"aria-hidden": "true"
|
|
5709
5713
|
}, null, 4),
|
|
5710
|
-
a("span",
|
|
5714
|
+
a("span", _s, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, E(I.value.name), 1)]),
|
|
5711
5715
|
d.seriesOptions?.length ? (y(), i("select", {
|
|
5712
5716
|
key: 0,
|
|
5713
5717
|
value: d.annotation.seriesId,
|
|
@@ -5716,9 +5720,9 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5716
5720
|
}, [(y(!0), i(e, null, S(d.seriesOptions, (e) => (y(), i("option", {
|
|
5717
5721
|
key: e.seriesId,
|
|
5718
5722
|
value: e.seriesId
|
|
5719
|
-
}, E(e.name) + E(e.unit ? ` (${e.unit})` : ""), 9,
|
|
5723
|
+
}, E(e.name) + E(e.unit ? ` (${e.unit})` : ""), 9, ys))), 128))], 40, vs)) : I.value.unit ? (y(), i("code", bs, E(I.value.unit), 1)) : r("", !0)
|
|
5720
5724
|
])) : r("", !0),
|
|
5721
|
-
a("label",
|
|
5725
|
+
a("label", xs, [a("span", Ss, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, E(F.value) + "/" + E(O(40)), 1)]), P(a("textarea", {
|
|
5722
5726
|
ref_key: "textarea",
|
|
5723
5727
|
ref: h,
|
|
5724
5728
|
"onUpdate:modelValue": o[0] ||= (e) => _.value = e,
|
|
@@ -5727,10 +5731,10 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5727
5731
|
"aria-label": "标注文本",
|
|
5728
5732
|
placeholder: "输入这处波形的说明",
|
|
5729
5733
|
onKeydown: ee
|
|
5730
|
-
}, null, 40,
|
|
5731
|
-
a("fieldset",
|
|
5734
|
+
}, null, 40, Cs), [[A, _.value]])]),
|
|
5735
|
+
a("fieldset", ws, [
|
|
5732
5736
|
o[12] ||= a("legend", null, "颜色与透明度", -1),
|
|
5733
|
-
a("label",
|
|
5737
|
+
a("label", Ts, [o[9] ||= a("span", null, "边框色", -1), s(O(u), {
|
|
5734
5738
|
"pure-color": C.value,
|
|
5735
5739
|
"onUpdate:pureColor": o[1] ||= (e) => C.value = e,
|
|
5736
5740
|
"aria-label": "标注边框色",
|
|
@@ -5740,7 +5744,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5740
5744
|
"disable-alpha": !1,
|
|
5741
5745
|
"blur-close": !0
|
|
5742
5746
|
}, null, 8, ["pure-color"])]),
|
|
5743
|
-
a("label",
|
|
5747
|
+
a("label", Es, [o[10] ||= a("span", null, "文字色", -1), s(O(u), {
|
|
5744
5748
|
"pure-color": w.value,
|
|
5745
5749
|
"onUpdate:pureColor": o[2] ||= (e) => w.value = e,
|
|
5746
5750
|
"aria-label": "标注文字色",
|
|
@@ -5750,7 +5754,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5750
5754
|
"disable-alpha": !1,
|
|
5751
5755
|
"blur-close": !0
|
|
5752
5756
|
}, null, 8, ["pure-color"])]),
|
|
5753
|
-
a("label",
|
|
5757
|
+
a("label", Ds, [o[11] ||= a("span", null, "背景色", -1), s(O(u), {
|
|
5754
5758
|
"pure-color": T.value,
|
|
5755
5759
|
"onUpdate:pureColor": o[3] ||= (e) => T.value = e,
|
|
5756
5760
|
"aria-label": "标注背景色",
|
|
@@ -5765,13 +5769,13 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5765
5769
|
_: 1
|
|
5766
5770
|
}, 8, ["ok-button-props"]));
|
|
5767
5771
|
}
|
|
5768
|
-
}), [["__scopeId", "data-v-01ecd3a4"]]),
|
|
5772
|
+
}), [["__scopeId", "data-v-01ecd3a4"]]), ks = { class: "waveform-tooltip__series-content" }, As = { class: "waveform-tooltip__series-label" }, js = {
|
|
5769
5773
|
key: 0,
|
|
5770
5774
|
class: "waveform-tooltip__value"
|
|
5771
|
-
},
|
|
5775
|
+
}, Ms = {
|
|
5772
5776
|
key: 1,
|
|
5773
5777
|
class: "waveform-tooltip__value waveform-tooltip__value--missing"
|
|
5774
|
-
},
|
|
5778
|
+
}, Ns = 12, Ps = 8, Fs = 560, Is = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
5775
5779
|
__name: "WaveformTooltip",
|
|
5776
5780
|
props: {
|
|
5777
5781
|
visible: { type: Boolean },
|
|
@@ -5801,12 +5805,12 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5801
5805
|
}, { flush: "post" }), v(u);
|
|
5802
5806
|
let d = t(() => {
|
|
5803
5807
|
if (!s.visible || !s.hoveredPoint) return { display: "none" };
|
|
5804
|
-
let e = s.position.x +
|
|
5808
|
+
let e = s.position.x + Ns, t = s.position.x - Ns - l.value.width, n = Math.max(1, Math.min(Fs, s.containerWidth - Ps * 2));
|
|
5805
5809
|
return {
|
|
5806
|
-
...e + l.value.width <= s.containerWidth -
|
|
5810
|
+
...e + l.value.width <= s.containerWidth - Ps ? { left: `${e}px` } : t >= Ps ? { right: `${s.containerWidth - s.position.x + Ns}px` } : { left: `${Ps}px` },
|
|
5807
5811
|
maxWidth: `${n}px`,
|
|
5808
5812
|
visibility: l.value.width > 0 ? "visible" : "hidden",
|
|
5809
|
-
top: `${Math.max(
|
|
5813
|
+
top: `${Math.max(Ps, Math.min(s.position.y - 18, s.containerHeight - l.value.height - Ps))}px`
|
|
5810
5814
|
};
|
|
5811
5815
|
});
|
|
5812
5816
|
return (t, s) => n.visible && n.hoveredPoint ? (y(), i("div", {
|
|
@@ -5818,9 +5822,9 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5818
5822
|
}, [(y(!0), i(e, null, S(n.seriesPoints, (t) => (y(), i("span", {
|
|
5819
5823
|
key: `${t.trackIndex}-${t.name}`,
|
|
5820
5824
|
class: "waveform-tooltip__series waveform-chart__tooltip-series"
|
|
5821
|
-
}, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span",
|
|
5825
|
+
}, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", ks, [a("span", As, [o(E(t.shotNo?.trim() || "未配置炮号") + ": " + E(t.name), 1), t.unit ? (y(), i(e, { key: 0 }, [o("(" + E(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (y(), i("span", js, "(x:" + E(O(Re)(t.point.x, n.timeUnit)) + " y:" + E(O(Fe)(t.point.y)) + ")", 1)) : (y(), i("span", Ms, "无数据"))])]))), 128))], 4)) : r("", !0);
|
|
5822
5826
|
}
|
|
5823
|
-
}), [["__scopeId", "data-v-88c44eda"]]),
|
|
5827
|
+
}), [["__scopeId", "data-v-88c44eda"]]), Ls = /* @__PURE__ */ l({
|
|
5824
5828
|
__name: "WaveformHoverHost",
|
|
5825
5829
|
props: {
|
|
5826
5830
|
state: {},
|
|
@@ -5831,7 +5835,7 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5831
5835
|
},
|
|
5832
5836
|
setup(e) {
|
|
5833
5837
|
let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
|
|
5834
|
-
return (t, r) => (y(), n(
|
|
5838
|
+
return (t, r) => (y(), n(Is, {
|
|
5835
5839
|
visible: e.visible && i.value !== null,
|
|
5836
5840
|
position: e.state.position,
|
|
5837
5841
|
"time-unit": e.timeUnit,
|
|
@@ -5849,16 +5853,16 @@ var ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
|
|
|
5849
5853
|
"container-height"
|
|
5850
5854
|
]));
|
|
5851
5855
|
}
|
|
5852
|
-
}),
|
|
5856
|
+
}), Rs = 13, zs = 2, Bs = 14, Vs = 8, Hs = 24, Us = {
|
|
5853
5857
|
circle: se,
|
|
5854
5858
|
square: le,
|
|
5855
5859
|
triangle: ue,
|
|
5856
5860
|
diamond: ce
|
|
5857
5861
|
};
|
|
5858
|
-
function
|
|
5859
|
-
return e === "none" ? null : oe().type(
|
|
5862
|
+
function Ws(e, t = 48) {
|
|
5863
|
+
return e === "none" ? null : oe().type(Us[e]).size(t)() ?? null;
|
|
5860
5864
|
}
|
|
5861
|
-
function
|
|
5865
|
+
function Gs(e, t, n = 48) {
|
|
5862
5866
|
if (e === "none" || t.length === 0) return null;
|
|
5863
5867
|
if (e === "circle") {
|
|
5864
5868
|
let e = Math.sqrt(n / Math.PI);
|
|
@@ -5875,24 +5879,24 @@ function Js(e, t, n = 48) {
|
|
|
5875
5879
|
let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
|
|
5876
5880
|
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("");
|
|
5877
5881
|
}
|
|
5878
|
-
function
|
|
5882
|
+
function Ks(e) {
|
|
5879
5883
|
return e === "none" ? null : "M1 8H25";
|
|
5880
5884
|
}
|
|
5881
|
-
function
|
|
5885
|
+
function qs(e) {
|
|
5882
5886
|
if (e === "dashed") return "8 5";
|
|
5883
5887
|
if (e === "dash-dot") return "8 5 1.5 5";
|
|
5884
5888
|
}
|
|
5885
|
-
function
|
|
5886
|
-
let t = (Number.isFinite(e) && e > 0 ? Math.min(e,
|
|
5889
|
+
function Js(e) {
|
|
5890
|
+
let t = (Number.isFinite(e) && e > 0 ? Math.min(e, Hs) : Vs) / 2, n = Rs - t, r = Rs + t;
|
|
5887
5891
|
return [
|
|
5888
|
-
`M${n} ${
|
|
5889
|
-
`M${
|
|
5890
|
-
`M${n} ${
|
|
5892
|
+
`M${n} ${zs}H${r}`,
|
|
5893
|
+
`M${Rs} ${zs}V${Bs}`,
|
|
5894
|
+
`M${n} ${Bs}H${r}`
|
|
5891
5895
|
].join("");
|
|
5892
5896
|
}
|
|
5893
5897
|
//#endregion
|
|
5894
5898
|
//#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
|
|
5895
|
-
var
|
|
5899
|
+
var Ys = ["clip-path"], Xs = ["data-series-id", "data-series-name"], Zs = [
|
|
5896
5900
|
"data-series-id",
|
|
5897
5901
|
"data-series-name",
|
|
5898
5902
|
"data-y-axis-index",
|
|
@@ -5901,11 +5905,11 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
5901
5905
|
"d",
|
|
5902
5906
|
"stroke",
|
|
5903
5907
|
"stroke-dasharray"
|
|
5904
|
-
],
|
|
5908
|
+
], Qs = ["data-series-id"], $s = [
|
|
5905
5909
|
"d",
|
|
5906
5910
|
"stroke",
|
|
5907
5911
|
"stroke-width"
|
|
5908
|
-
],
|
|
5912
|
+
], ec = ["data-series-id", "data-point-type"], tc = ["d", "fill"], nc = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
5909
5913
|
__name: "WaveformSeriesLayer",
|
|
5910
5914
|
props: {
|
|
5911
5915
|
track: {},
|
|
@@ -5913,7 +5917,7 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
5913
5917
|
},
|
|
5914
5918
|
setup(n) {
|
|
5915
5919
|
let a = n, o = t(() => a.track.seriesPaths.map((e) => {
|
|
5916
|
-
let t =
|
|
5920
|
+
let t = Gs(e.series.pointType, e.pointRenderPoints.map((t) => ({
|
|
5917
5921
|
x: a.track.xScale(t.x),
|
|
5918
5922
|
y: e.yScale(t.y)
|
|
5919
5923
|
}))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
|
|
@@ -5950,8 +5954,8 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
5950
5954
|
"data-line-style": e.series.lineStyle,
|
|
5951
5955
|
d: e.path,
|
|
5952
5956
|
stroke: e.series.color,
|
|
5953
|
-
"stroke-dasharray": O(
|
|
5954
|
-
}, null, 8,
|
|
5957
|
+
"stroke-dasharray": O(qs)(e.series.lineStyle)
|
|
5958
|
+
}, null, 8, Zs)) : r("", !0),
|
|
5955
5959
|
e.series.errorBar.visible ? (y(), i("g", {
|
|
5956
5960
|
key: 1,
|
|
5957
5961
|
class: "waveform-track__error-bars waveform-chart__error-bars",
|
|
@@ -5962,7 +5966,7 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
5962
5966
|
d: e.errorBarPath,
|
|
5963
5967
|
stroke: e.series.errorBar.color || e.series.color,
|
|
5964
5968
|
"stroke-width": e.series.errorBar.width
|
|
5965
|
-
}, null, 8,
|
|
5969
|
+
}, null, 8, $s)) : r("", !0)], 8, Qs)) : r("", !0),
|
|
5966
5970
|
e.series.pointType === "none" ? r("", !0) : (y(), i("g", {
|
|
5967
5971
|
key: 2,
|
|
5968
5972
|
class: "waveform-track__points waveform-chart__points",
|
|
@@ -5973,10 +5977,10 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
5973
5977
|
class: "waveform-track__point waveform-chart__point",
|
|
5974
5978
|
d: e.pointPath,
|
|
5975
5979
|
fill: e.series.color
|
|
5976
|
-
}, null, 8,
|
|
5977
|
-
], 8,
|
|
5980
|
+
}, null, 8, tc)) : r("", !0)], 8, ec))
|
|
5981
|
+
], 8, Xs))), 128))], 8, Ys)) : r("", !0);
|
|
5978
5982
|
}
|
|
5979
|
-
}), [["__scopeId", "data-v-628502df"]]),
|
|
5983
|
+
}), [["__scopeId", "data-v-628502df"]]), rc = ["clip-path"], ic = [
|
|
5980
5984
|
"data-y-axis-index",
|
|
5981
5985
|
"x2",
|
|
5982
5986
|
"y1",
|
|
@@ -5985,7 +5989,7 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
5985
5989
|
"stroke-opacity",
|
|
5986
5990
|
"stroke-width",
|
|
5987
5991
|
"stroke-dasharray"
|
|
5988
|
-
],
|
|
5992
|
+
], ac = /* @__PURE__ */ l({
|
|
5989
5993
|
__name: "WaveformZeroLines",
|
|
5990
5994
|
props: {
|
|
5991
5995
|
track: {},
|
|
@@ -6018,36 +6022,36 @@ var Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
|
|
|
6018
6022
|
"stroke-opacity": t.zeroLine.opacity,
|
|
6019
6023
|
"stroke-width": t.zeroLine.width,
|
|
6020
6024
|
"stroke-dasharray": t.zeroLine.dash || void 0
|
|
6021
|
-
}, null, 8,
|
|
6025
|
+
}, null, 8, ic))], 64))), 128))], 8, rc)) : r("", !0);
|
|
6022
6026
|
}
|
|
6023
6027
|
});
|
|
6024
6028
|
//#endregion
|
|
6025
6029
|
//#region src/components/rendering/channelLabel.ts
|
|
6026
|
-
function
|
|
6030
|
+
function oc(e, t, n = "") {
|
|
6027
6031
|
let r = t?.trim();
|
|
6028
6032
|
return r && r !== "--" ? `${e}${n}(${r})` : e;
|
|
6029
6033
|
}
|
|
6030
6034
|
//#endregion
|
|
6031
6035
|
//#region src/components/rendering/WaveformTrackAxes.vue?vue&type=script&setup=true&lang.ts
|
|
6032
|
-
var
|
|
6036
|
+
var sc = ["transform"], cc = ["transform"], lc = {
|
|
6033
6037
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
|
|
6034
6038
|
x: "0",
|
|
6035
6039
|
y: "7",
|
|
6036
6040
|
dy: "0.71em",
|
|
6037
6041
|
"text-anchor": "start"
|
|
6038
|
-
},
|
|
6042
|
+
}, uc = ["x"], dc = [
|
|
6039
6043
|
"data-y-axis-index",
|
|
6040
6044
|
"data-y-axis-side",
|
|
6041
6045
|
"transform"
|
|
6042
|
-
],
|
|
6046
|
+
], fc = { key: 2 }, pc = [
|
|
6043
6047
|
"x",
|
|
6044
6048
|
"y",
|
|
6045
6049
|
"width"
|
|
6046
|
-
],
|
|
6050
|
+
], mc = ["fill", "transform"], hc = ["data-y-axis-title-index"], gc = [
|
|
6047
6051
|
"x",
|
|
6048
6052
|
"y",
|
|
6049
6053
|
"width"
|
|
6050
|
-
],
|
|
6054
|
+
], _c = ["fill", "transform"], vc = /* @__PURE__ */ l({
|
|
6051
6055
|
__name: "WaveformTrackAxes",
|
|
6052
6056
|
props: {
|
|
6053
6057
|
track: {},
|
|
@@ -6076,7 +6080,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6076
6080
|
}), l = x(), u = x([]);
|
|
6077
6081
|
function d(e) {
|
|
6078
6082
|
let t = e.name.trim() || o.yLabel || "";
|
|
6079
|
-
return o.showLabelUnits ?
|
|
6083
|
+
return o.showLabelUnits ? oc(t, e.unit) : t;
|
|
6080
6084
|
}
|
|
6081
6085
|
function _(e) {
|
|
6082
6086
|
let t = e.seriesList[0];
|
|
@@ -6089,7 +6093,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6089
6093
|
if (o.track.yAxes.forEach((e, t) => {
|
|
6090
6094
|
let n = u.value[t];
|
|
6091
6095
|
if (!n) return;
|
|
6092
|
-
let r = o.showUnits ? e.seriesList[0]?.unit : void 0, i = Math.max(...e.tickValues), a = (e.side === "left" ? R(e.scale) : z(e.scale)).tickFormat((t) =>
|
|
6096
|
+
let r = o.showUnits ? e.seriesList[0]?.unit : void 0, i = Math.max(...e.tickValues), a = (e.side === "left" ? R(e.scale) : z(e.scale)).tickFormat((t) => Hn(Number(t), e.scale.domain(), e.tickValues, r, e.side)).tickSize(-4).tickPadding(7).tickSizeOuter(0).tickValues(e.tickValues), s = ae(n);
|
|
6093
6097
|
s.call(a), s.selectAll(".tick text").attr("y", null).attr("dy", "0").attr("dominant-baseline", "central").attr("data-axis-maximum-label", (e) => o.hideOverlappingMaximumLabel && W(e, i) ? "true" : null).attr("data-axis-minimum-label", (t) => o.hideOverlappingMaximumLabel && W(t, Math.min(...e.tickValues)) ? "true" : null), s.attr("data-label-domain-min", e.scale.domain()[0]).attr("data-label-domain-max", e.scale.domain()[1]).attr("data-label-unit", r ?? null), s.selectAll(".tick").attr("data-maximum-tick", (t) => e.maximumTick !== void 0 && W(t, e.maximumTick) ? "true" : null).attr("data-minimum-tick", (t) => e.minimumTick !== void 0 && W(t, e.minimumTick) ? "true" : null).attr("data-tick-value", (e) => e).attr("data-tick-y", (t) => e.scale(t)), s.selectAll("path.domain").attr("display", o.axes?.y?.lineVisible === !1 ? "none" : null);
|
|
6094
6098
|
}), w(), !l.value) return;
|
|
6095
6099
|
let e = ae(l.value);
|
|
@@ -6099,7 +6103,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6099
6103
|
function w() {
|
|
6100
6104
|
C || (() => {
|
|
6101
6105
|
let e = u.value[0]?.ownerSVGElement;
|
|
6102
|
-
e &&
|
|
6106
|
+
e && ir(e);
|
|
6103
6107
|
})();
|
|
6104
6108
|
}
|
|
6105
6109
|
return h(() => {
|
|
@@ -6128,7 +6132,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6128
6132
|
ref: l,
|
|
6129
6133
|
class: p(["waveform-track__axis waveform-track__axis--x waveform-chart__axis waveform-chart__axis--x", { "waveform-track__axis--line-hidden": n.axes?.x?.lineVisible === !1 }]),
|
|
6130
6134
|
transform: `translate(0, ${n.track.height})`
|
|
6131
|
-
}, null, 10,
|
|
6135
|
+
}, null, 10, sc)) : r("", !0),
|
|
6132
6136
|
n.track.showXAxis ? (y(), i("g", {
|
|
6133
6137
|
key: 1,
|
|
6134
6138
|
class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
|
|
@@ -6136,13 +6140,13 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6136
6140
|
"font-family": "sans-serif",
|
|
6137
6141
|
"font-size": "10",
|
|
6138
6142
|
"aria-hidden": "true"
|
|
6139
|
-
}, [a("text",
|
|
6143
|
+
}, [a("text", lc, E(n.track.endpointLabels.start), 1), a("text", {
|
|
6140
6144
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
|
|
6141
6145
|
x: n.track.width ?? n.innerWidth,
|
|
6142
6146
|
y: "7",
|
|
6143
6147
|
dy: "0.71em",
|
|
6144
6148
|
"text-anchor": "end"
|
|
6145
|
-
}, E(n.track.endpointLabels.end), 9,
|
|
6149
|
+
}, E(n.track.endpointLabels.end), 9, uc)], 8, cc)) : r("", !0),
|
|
6146
6150
|
(y(!0), i(e, null, S(n.track.isEmpty ? [] : n.track.yAxes, (e) => (y(), i("g", {
|
|
6147
6151
|
key: `y-axis-${n.track.index}-${e.index}`,
|
|
6148
6152
|
ref_for: !0,
|
|
@@ -6151,22 +6155,22 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6151
6155
|
"data-y-axis-index": e.index,
|
|
6152
6156
|
"data-y-axis-side": e.side,
|
|
6153
6157
|
transform: `translate(${e.x}, 0)`
|
|
6154
|
-
}, null, 10,
|
|
6155
|
-
!n.cleanView && !n.hideYAxisTitles && !n.track.isEmpty && n.track.hasVisibleSeries && n.track.seriesList.length === 1 && n.track.showYAxisLabel && n.track.series && d(n.track.series) ? (y(), i("g",
|
|
6158
|
+
}, null, 10, dc))), 128)),
|
|
6159
|
+
!n.cleanView && !n.hideYAxisTitles && !n.track.isEmpty && n.track.hasVisibleSeries && n.track.seriesList.length === 1 && n.track.showYAxisLabel && n.track.series && d(n.track.series) ? (y(), i("g", fc, [a("rect", {
|
|
6156
6160
|
class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
|
|
6157
6161
|
x: n.track.yAxes[0].labelX - s.value / 2,
|
|
6158
6162
|
y: n.track.height / 2 - 40,
|
|
6159
6163
|
width: s.value,
|
|
6160
6164
|
height: "80",
|
|
6161
6165
|
rx: "2"
|
|
6162
|
-
}, null, 8,
|
|
6166
|
+
}, null, 8, pc), a("text", {
|
|
6163
6167
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
6164
6168
|
fill: n.axes?.y?.labelTextStyle?.color || n.track.series?.color,
|
|
6165
6169
|
style: m(c.value),
|
|
6166
6170
|
transform: `translate(${n.track.yAxes[0].labelX}, ${n.track.height / 2}) rotate(-90)`,
|
|
6167
6171
|
"text-anchor": "middle",
|
|
6168
6172
|
"dominant-baseline": "central"
|
|
6169
|
-
}, E(n.track.series ? d(n.track.series) : ""), 13,
|
|
6173
|
+
}, E(n.track.series ? d(n.track.series) : ""), 13, mc)])) : r("", !0),
|
|
6170
6174
|
(y(!0), i(e, null, S(!n.cleanView && !n.hideYAxisTitles && n.track.yAxes.length > 1 ? n.track.yAxes.filter(_) : [], (e) => (y(), i("g", {
|
|
6171
6175
|
key: `y-axis-title-${n.track.index}-${e.index}`,
|
|
6172
6176
|
class: "waveform-track__multi-axis-title",
|
|
@@ -6178,41 +6182,41 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6178
6182
|
width: s.value,
|
|
6179
6183
|
height: "80",
|
|
6180
6184
|
rx: "2"
|
|
6181
|
-
}, null, 8,
|
|
6185
|
+
}, null, 8, gc), a("text", {
|
|
6182
6186
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
6183
6187
|
fill: n.axes?.y?.labelTextStyle?.color || e.seriesList[0].color,
|
|
6184
6188
|
style: m(c.value),
|
|
6185
6189
|
transform: `translate(${e.labelX}, ${n.track.height / 2}) rotate(-90)`,
|
|
6186
6190
|
"text-anchor": "middle",
|
|
6187
6191
|
"dominant-baseline": "central"
|
|
6188
|
-
}, E(d(e.seriesList[0])), 13,
|
|
6192
|
+
}, E(d(e.seriesList[0])), 13, _c)], 8, hc))), 128))
|
|
6189
6193
|
], 64));
|
|
6190
6194
|
}
|
|
6191
|
-
}),
|
|
6195
|
+
}), yc = [
|
|
6192
6196
|
"width",
|
|
6193
6197
|
"height",
|
|
6194
6198
|
"fill"
|
|
6195
|
-
],
|
|
6199
|
+
], bc = ["clip-path"], xc = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Sc = [
|
|
6196
6200
|
"stroke",
|
|
6197
6201
|
"x1",
|
|
6198
6202
|
"x2",
|
|
6199
6203
|
"y2"
|
|
6200
|
-
],
|
|
6204
|
+
], Cc = [
|
|
6201
6205
|
"stroke",
|
|
6202
6206
|
"x2",
|
|
6203
6207
|
"y1",
|
|
6204
6208
|
"y2"
|
|
6205
|
-
],
|
|
6209
|
+
], wc = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Tc = [
|
|
6206
6210
|
"stroke",
|
|
6207
6211
|
"x1",
|
|
6208
6212
|
"x2",
|
|
6209
6213
|
"y2"
|
|
6210
|
-
],
|
|
6214
|
+
], Ec = [
|
|
6211
6215
|
"stroke",
|
|
6212
6216
|
"x2",
|
|
6213
6217
|
"y1",
|
|
6214
6218
|
"y2"
|
|
6215
|
-
],
|
|
6219
|
+
], Dc = ["x", "y"], Oc = /* @__PURE__ */ l({
|
|
6216
6220
|
__name: "WaveformTrackBackdrop",
|
|
6217
6221
|
props: {
|
|
6218
6222
|
track: {},
|
|
@@ -6232,12 +6236,12 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6232
6236
|
height: t.track.height,
|
|
6233
6237
|
fill: t.frameStyle.backgroundColor,
|
|
6234
6238
|
"aria-hidden": "true"
|
|
6235
|
-
}, null, 8,
|
|
6239
|
+
}, null, 8, yc)) : r("", !0),
|
|
6236
6240
|
(!t.track.isEmpty || t.showEmptyFrame) && !t.cleanView ? (y(), i("g", {
|
|
6237
6241
|
key: 1,
|
|
6238
6242
|
"clip-path": `url(#${t.clipPathId}-${t.track.index})`,
|
|
6239
6243
|
"aria-hidden": "true"
|
|
6240
|
-
}, [a("g",
|
|
6244
|
+
}, [a("g", xc, [t.track.gridLines.vertical ? (y(!0), i(e, { key: 0 }, S(t.track.xMinorTicks, (e) => (y(), i("line", {
|
|
6241
6245
|
key: `x-minor-${t.track.index}-${e}`,
|
|
6242
6246
|
"data-grid-direction": "vertical",
|
|
6243
6247
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -6245,7 +6249,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6245
6249
|
x2: t.track.xScale(e),
|
|
6246
6250
|
y1: "0",
|
|
6247
6251
|
y2: t.track.height
|
|
6248
|
-
}, null, 8,
|
|
6252
|
+
}, null, 8, Sc))), 128)) : r("", !0), t.track.gridLines.horizontal ? (y(!0), i(e, { key: 1 }, S(t.track.yMinorTicks, (e) => (y(), i("line", {
|
|
6249
6253
|
key: `y-minor-${t.track.index}-${e}`,
|
|
6250
6254
|
"data-grid-direction": "horizontal",
|
|
6251
6255
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -6253,7 +6257,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6253
6257
|
x2: t.track.width ?? t.innerWidth,
|
|
6254
6258
|
y1: t.track.yScale(e),
|
|
6255
6259
|
y2: t.track.yScale(e)
|
|
6256
|
-
}, null, 8,
|
|
6260
|
+
}, null, 8, Cc))), 128)) : r("", !0)]), a("g", wc, [t.track.gridLines.vertical ? (y(!0), i(e, { key: 0 }, S(t.track.xMajorTicks, (e) => (y(), i("line", {
|
|
6257
6261
|
key: `x-major-${t.track.index}-${e}`,
|
|
6258
6262
|
"data-grid-direction": "vertical",
|
|
6259
6263
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -6261,7 +6265,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6261
6265
|
x2: t.track.xScale(e),
|
|
6262
6266
|
y1: "0",
|
|
6263
6267
|
y2: t.track.height
|
|
6264
|
-
}, null, 8,
|
|
6268
|
+
}, null, 8, Tc))), 128)) : r("", !0), t.track.gridLines.horizontal ? (y(!0), i(e, { key: 1 }, S(t.track.yMajorTicks, (e) => (y(), i("line", {
|
|
6265
6269
|
key: `y-major-${t.track.index}-${e}`,
|
|
6266
6270
|
"data-grid-direction": "horizontal",
|
|
6267
6271
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -6269,7 +6273,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6269
6273
|
x2: t.track.width ?? t.innerWidth,
|
|
6270
6274
|
y1: t.track.yScale(e),
|
|
6271
6275
|
y2: t.track.yScale(e)
|
|
6272
|
-
}, null, 8,
|
|
6276
|
+
}, null, 8, Ec))), 128)) : r("", !0)])], 8, bc)) : r("", !0),
|
|
6273
6277
|
(t.track.hasVisibleSeries || t.track.isEmpty && t.showEmptyFrame) && t.frameNumber !== void 0 && !t.cleanView ? (y(), i("text", {
|
|
6274
6278
|
key: 2,
|
|
6275
6279
|
class: "waveform-track__watermark waveform-chart__watermark",
|
|
@@ -6279,10 +6283,10 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6279
6283
|
"text-anchor": "middle",
|
|
6280
6284
|
"dominant-baseline": "central",
|
|
6281
6285
|
"aria-hidden": "true"
|
|
6282
|
-
}, E(t.frameNumber), 13,
|
|
6286
|
+
}, E(t.frameNumber), 13, Dc)) : r("", !0)
|
|
6283
6287
|
], 64));
|
|
6284
6288
|
}
|
|
6285
|
-
}),
|
|
6289
|
+
}), kc = [
|
|
6286
6290
|
"data-track-index",
|
|
6287
6291
|
"data-track-id",
|
|
6288
6292
|
"data-track-empty",
|
|
@@ -6292,12 +6296,12 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6292
6296
|
"data-track-top",
|
|
6293
6297
|
"data-track-height",
|
|
6294
6298
|
"transform"
|
|
6295
|
-
],
|
|
6299
|
+
], Ac = [
|
|
6296
6300
|
"data-interactive",
|
|
6297
6301
|
"data-independent-overlay-index",
|
|
6298
6302
|
"width",
|
|
6299
6303
|
"height"
|
|
6300
|
-
],
|
|
6304
|
+
], jc = ["x", "y"], Mc = /* @__PURE__ */ l({
|
|
6301
6305
|
__name: "WaveformTrack",
|
|
6302
6306
|
props: {
|
|
6303
6307
|
track: {},
|
|
@@ -6367,7 +6371,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6367
6371
|
"data-track-height": e.track.height,
|
|
6368
6372
|
transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
|
|
6369
6373
|
}, [
|
|
6370
|
-
s(
|
|
6374
|
+
s(Oc, {
|
|
6371
6375
|
track: e.track,
|
|
6372
6376
|
"clip-path-id": e.clipPathId,
|
|
6373
6377
|
"inner-width": e.innerWidth,
|
|
@@ -6383,7 +6387,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6383
6387
|
"frame-number",
|
|
6384
6388
|
"frame-style"
|
|
6385
6389
|
]),
|
|
6386
|
-
s(
|
|
6390
|
+
s(vc, {
|
|
6387
6391
|
track: e.track,
|
|
6388
6392
|
"inner-width": e.innerWidth,
|
|
6389
6393
|
"clean-view": e.cleanView,
|
|
@@ -6430,11 +6434,11 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6430
6434
|
"stroke-dasharray",
|
|
6431
6435
|
"stroke-linecap"
|
|
6432
6436
|
])),
|
|
6433
|
-
s(
|
|
6437
|
+
s(nc, {
|
|
6434
6438
|
track: e.track,
|
|
6435
6439
|
"clip-path-id": e.clipPathId
|
|
6436
6440
|
}, null, 8, ["track", "clip-path-id"]),
|
|
6437
|
-
s(
|
|
6441
|
+
s(ac, {
|
|
6438
6442
|
track: e.track,
|
|
6439
6443
|
"clip-path-id": e.clipPathId,
|
|
6440
6444
|
"inner-width": e.innerWidth,
|
|
@@ -6465,7 +6469,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6465
6469
|
onPointerleave: a[4] ||= (e) => c("pointer-leave"),
|
|
6466
6470
|
onClick: a[5] ||= (e) => c("click", e),
|
|
6467
6471
|
onContextmenu: a[6] ||= (e) => c("contextmenu", e)
|
|
6468
|
-
}, null, 42,
|
|
6472
|
+
}, null, 42, Ac)) : r("", !0),
|
|
6469
6473
|
!e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (y(), i("text", {
|
|
6470
6474
|
key: 1,
|
|
6471
6475
|
class: "waveform-track__no-visible-series",
|
|
@@ -6473,33 +6477,33 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6473
6477
|
y: e.track.height / 2,
|
|
6474
6478
|
"text-anchor": "middle",
|
|
6475
6479
|
"dominant-baseline": "central"
|
|
6476
|
-
}, " 暂无可见曲线 ", 8,
|
|
6477
|
-
], 10,
|
|
6480
|
+
}, " 暂无可见曲线 ", 8, jc)) : r("", !0)
|
|
6481
|
+
], 10, kc));
|
|
6478
6482
|
}
|
|
6479
|
-
}),
|
|
6483
|
+
}), Nc = [
|
|
6480
6484
|
"width",
|
|
6481
6485
|
"height",
|
|
6482
6486
|
"data-position",
|
|
6483
6487
|
"data-orientation"
|
|
6484
|
-
],
|
|
6488
|
+
], Pc = [
|
|
6485
6489
|
"disabled",
|
|
6486
6490
|
"aria-pressed",
|
|
6487
6491
|
"aria-label",
|
|
6488
6492
|
"onClick"
|
|
6489
|
-
],
|
|
6493
|
+
], Fc = [
|
|
6490
6494
|
"data-line-type",
|
|
6491
6495
|
"data-line-style",
|
|
6492
6496
|
"data-point-type",
|
|
6493
6497
|
"data-error-bar-visible"
|
|
6494
|
-
],
|
|
6498
|
+
], Ic = [
|
|
6495
6499
|
"d",
|
|
6496
6500
|
"stroke",
|
|
6497
6501
|
"stroke-dasharray"
|
|
6498
|
-
],
|
|
6502
|
+
], Lc = [
|
|
6499
6503
|
"d",
|
|
6500
6504
|
"stroke",
|
|
6501
6505
|
"stroke-width"
|
|
6502
|
-
],
|
|
6506
|
+
], Rc = ["d", "fill"], zc = ["title"], Bc = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
6503
6507
|
__name: "WaveformLegend",
|
|
6504
6508
|
props: {
|
|
6505
6509
|
series: {},
|
|
@@ -6522,7 +6526,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6522
6526
|
setup(n, { emit: o }) {
|
|
6523
6527
|
let s = n, c = o, l = t(() => new Set(s.hiddenSeriesIds));
|
|
6524
6528
|
function u(e) {
|
|
6525
|
-
return s.showUnits ?
|
|
6529
|
+
return s.showUnits ? oc(e.name, e.unit, " ") : e.name;
|
|
6526
6530
|
}
|
|
6527
6531
|
function d(e) {
|
|
6528
6532
|
return l.value.has(e);
|
|
@@ -6564,45 +6568,45 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6564
6568
|
"data-point-type": e.pointType,
|
|
6565
6569
|
"data-error-bar-visible": e.errorBar.visible || void 0
|
|
6566
6570
|
}, [
|
|
6567
|
-
O(
|
|
6571
|
+
O(Ks)(e.lineType) ? (y(), i("path", {
|
|
6568
6572
|
key: 0,
|
|
6569
6573
|
class: "waveform-legend__line",
|
|
6570
|
-
d: O(
|
|
6574
|
+
d: O(Ks)(e.lineType) ?? void 0,
|
|
6571
6575
|
stroke: e.color,
|
|
6572
|
-
"stroke-dasharray": O(
|
|
6576
|
+
"stroke-dasharray": O(qs)(e.lineStyle),
|
|
6573
6577
|
"stroke-width": "1",
|
|
6574
6578
|
fill: "none"
|
|
6575
|
-
}, null, 8,
|
|
6579
|
+
}, null, 8, Ic)) : r("", !0),
|
|
6576
6580
|
e.errorBar.visible ? (y(), i("path", {
|
|
6577
6581
|
key: 1,
|
|
6578
6582
|
class: "waveform-legend__error-bar",
|
|
6579
|
-
d: O(
|
|
6583
|
+
d: O(Js)(e.errorBar.capWidth),
|
|
6580
6584
|
stroke: e.errorBar.color || e.color,
|
|
6581
6585
|
"stroke-width": e.errorBar.width,
|
|
6582
6586
|
"stroke-linecap": "butt",
|
|
6583
6587
|
fill: "none"
|
|
6584
|
-
}, null, 8,
|
|
6588
|
+
}, null, 8, Lc)) : r("", !0),
|
|
6585
6589
|
e.pointType === "none" ? r("", !0) : (y(), i("path", {
|
|
6586
6590
|
key: 2,
|
|
6587
6591
|
class: "waveform-legend__point",
|
|
6588
|
-
d: O(
|
|
6592
|
+
d: O(Ws)(e.pointType, 30) ?? void 0,
|
|
6589
6593
|
fill: e.color,
|
|
6590
6594
|
transform: "translate(13 8)"
|
|
6591
|
-
}, null, 8,
|
|
6592
|
-
], 8,
|
|
6595
|
+
}, null, 8, Rc))
|
|
6596
|
+
], 8, Fc)), a("span", {
|
|
6593
6597
|
class: "waveform-legend__label",
|
|
6594
6598
|
title: u(e)
|
|
6595
|
-
}, E(u(e)), 9,
|
|
6599
|
+
}, E(u(e)), 9, zc)], 10, Pc))), 128))], 6)], 2)], 8, Nc));
|
|
6596
6600
|
}
|
|
6597
|
-
}), [["__scopeId", "data-v-24214c74"]]),
|
|
6601
|
+
}), [["__scopeId", "data-v-24214c74"]]), Vc = {
|
|
6598
6602
|
class: "waveform-chart__hover-layer",
|
|
6599
6603
|
"pointer-events": "none",
|
|
6600
6604
|
"aria-hidden": "true"
|
|
6601
|
-
},
|
|
6605
|
+
}, Hc = ["clip-path", "transform"], Uc = [
|
|
6602
6606
|
"x1",
|
|
6603
6607
|
"x2",
|
|
6604
6608
|
"y2"
|
|
6605
|
-
],
|
|
6609
|
+
], Wc = /*#__PURE__*/ ci(/* @__PURE__ */ l({
|
|
6606
6610
|
__name: "WaveformHoverLayer",
|
|
6607
6611
|
props: {
|
|
6608
6612
|
state: {},
|
|
@@ -6618,7 +6622,7 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6618
6622
|
x: e.xScale(n)
|
|
6619
6623
|
}] : [];
|
|
6620
6624
|
}));
|
|
6621
|
-
return (t, r) => (y(), i("g",
|
|
6625
|
+
return (t, r) => (y(), i("g", Vc, [(y(!0), i(e, null, S(o.value, (e) => (y(), i("g", {
|
|
6622
6626
|
key: e.track.index,
|
|
6623
6627
|
class: "waveform-track__crosshair waveform-chart__crosshair",
|
|
6624
6628
|
"clip-path": `url(#${n.clipPathId}-${e.track.index})`,
|
|
@@ -6628,12 +6632,12 @@ var uc = ["transform"], dc = ["transform"], fc = {
|
|
|
6628
6632
|
x2: e.x,
|
|
6629
6633
|
y1: "0",
|
|
6630
6634
|
y2: e.track.height
|
|
6631
|
-
}, null, 8,
|
|
6635
|
+
}, null, 8, Uc)], 8, Hc))), 128))]));
|
|
6632
6636
|
}
|
|
6633
6637
|
}), [["__scopeId", "data-v-54a5a37d"]]);
|
|
6634
6638
|
//#endregion
|
|
6635
6639
|
//#region src/components/rendering/compactFrame.ts
|
|
6636
|
-
function
|
|
6640
|
+
function Gc(e, t, n = 0) {
|
|
6637
6641
|
let r = [[0, e.width]];
|
|
6638
6642
|
for (let n of t) {
|
|
6639
6643
|
if (n === e || Math.abs(e.top + e.height - n.top) > 1e-6) continue;
|
|
@@ -6651,7 +6655,7 @@ function Jc(e, t, n = 0) {
|
|
|
6651
6655
|
}
|
|
6652
6656
|
//#endregion
|
|
6653
6657
|
//#region src/components/WaveformChartView.vue?vue&type=script&setup=true&lang.ts
|
|
6654
|
-
var
|
|
6658
|
+
var Kc = [
|
|
6655
6659
|
"data-display-mode",
|
|
6656
6660
|
"data-interaction-mode",
|
|
6657
6661
|
"data-presentation-mode",
|
|
@@ -6660,31 +6664,31 @@ var Yc = [
|
|
|
6660
6664
|
"data-plot-margin-top",
|
|
6661
6665
|
"data-plot-margin-bottom",
|
|
6662
6666
|
"data-title-area-height"
|
|
6663
|
-
],
|
|
6667
|
+
], qc = [
|
|
6664
6668
|
"role",
|
|
6665
6669
|
"aria-level",
|
|
6666
6670
|
"aria-hidden"
|
|
6667
|
-
],
|
|
6671
|
+
], Jc = ["data-title-scale", "data-title-wrapped"], Yc = [
|
|
6668
6672
|
"width",
|
|
6669
6673
|
"height",
|
|
6670
6674
|
"aria-label"
|
|
6671
|
-
],
|
|
6675
|
+
], Xc = ["id"], Zc = ["width", "height"], Qc = ["transform"], $c = {
|
|
6672
6676
|
key: 0,
|
|
6673
6677
|
class: "waveform-chart__grid-slots",
|
|
6674
6678
|
"aria-hidden": "true"
|
|
6675
|
-
},
|
|
6679
|
+
}, el = ["transform"], tl = ["width", "height"], nl = ["width", "height"], rl = [
|
|
6676
6680
|
"x",
|
|
6677
6681
|
"y",
|
|
6678
6682
|
"width",
|
|
6679
6683
|
"height"
|
|
6680
|
-
],
|
|
6684
|
+
], il = {
|
|
6681
6685
|
key: 4,
|
|
6682
6686
|
class: "waveform-chart__legend-layer"
|
|
6683
|
-
},
|
|
6687
|
+
}, al = [
|
|
6684
6688
|
"data-legend-track-index",
|
|
6685
6689
|
"data-legend-track-id",
|
|
6686
6690
|
"transform"
|
|
6687
|
-
],
|
|
6691
|
+
], ol = ["x", "y"], sl = ["x", "y"], cl = /* @__PURE__ */ l({
|
|
6688
6692
|
__name: "WaveformChartView",
|
|
6689
6693
|
props: { controller: {} },
|
|
6690
6694
|
setup(o) {
|
|
@@ -6741,7 +6745,7 @@ var Yc = [
|
|
|
6741
6745
|
style: m(O(B)),
|
|
6742
6746
|
"data-title-scale": O(ee).scale,
|
|
6743
6747
|
"data-title-wrapped": O(ee).wrapped || void 0
|
|
6744
|
-
}, E(O(R)), 13,
|
|
6748
|
+
}, E(O(R)), 13, Jc)], 4)) : r("", !0)], 12, qc)) : r("", !0),
|
|
6745
6749
|
(y(), i("svg", {
|
|
6746
6750
|
ref: O(at),
|
|
6747
6751
|
class: "waveform-chart__svg",
|
|
@@ -6758,9 +6762,9 @@ var Yc = [
|
|
|
6758
6762
|
}, [a("rect", {
|
|
6759
6763
|
width: e.width,
|
|
6760
6764
|
height: e.height
|
|
6761
|
-
}, null, 8,
|
|
6765
|
+
}, null, 8, Zc)], 8, Xc))), 128))]),
|
|
6762
6766
|
a("g", { transform: `translate(${O(k)}, ${O(ae)})` }, [
|
|
6763
|
-
O(u) !== "compact" && !O(re) && !O(f) ? (y(), i("g",
|
|
6767
|
+
O(u) !== "compact" && !O(re) && !O(f) ? (y(), i("g", $c, [(y(!0), i(e, null, S(O(oe), (e) => (y(), i("g", {
|
|
6764
6768
|
key: `grid-slot-${e.slotIndex}`,
|
|
6765
6769
|
transform: `translate(${e.left}, ${e.top})`
|
|
6766
6770
|
}, [e.series ? r("", !0) : (y(), i("rect", {
|
|
@@ -6768,7 +6772,7 @@ var Yc = [
|
|
|
6768
6772
|
class: "waveform-chart__grid-slot-placeholder",
|
|
6769
6773
|
width: e.width,
|
|
6770
6774
|
height: e.cellHeight
|
|
6771
|
-
}, null, 8,
|
|
6775
|
+
}, null, 8, tl))], 8, el))), 128))])) : r("", !0),
|
|
6772
6776
|
O(u) !== "independent" && O(V).length && O(se) ? (y(), i("rect", {
|
|
6773
6777
|
key: 1,
|
|
6774
6778
|
ref: O(ot),
|
|
@@ -6784,11 +6788,11 @@ var Yc = [
|
|
|
6784
6788
|
onPointercancel: c[3] ||= (...e) => O(me) && O(me)(...e),
|
|
6785
6789
|
onPointerleave: c[4] ||= (...e) => O(he) && O(he)(...e),
|
|
6786
6790
|
onClick: c[5] ||= (...e) => O(_e) && O(_e)(...e)
|
|
6787
|
-
}, null, 42,
|
|
6788
|
-
(y(!0), i(e, null, S(O(V), (e) => (y(), n(O(
|
|
6791
|
+
}, null, 42, nl)) : r("", !0),
|
|
6792
|
+
(y(!0), i(e, null, S(O(V), (e) => (y(), n(O(Mc), {
|
|
6789
6793
|
key: `${e.index}-${e.id}`,
|
|
6790
6794
|
track: e,
|
|
6791
|
-
"frame-path": O(u) === "compact" ? O(
|
|
6795
|
+
"frame-path": O(u) === "compact" ? O(Gc)(e, O(V), l.value) : void 0,
|
|
6792
6796
|
"clip-path-id": O(H),
|
|
6793
6797
|
"inner-width": O(ue),
|
|
6794
6798
|
zoomable: O(ce),
|
|
@@ -6839,7 +6843,7 @@ var Yc = [
|
|
|
6839
6843
|
"onPointerLeave",
|
|
6840
6844
|
"onClick"
|
|
6841
6845
|
]))), 128)),
|
|
6842
|
-
s(O(
|
|
6846
|
+
s(O(Wc), {
|
|
6843
6847
|
state: O(Te),
|
|
6844
6848
|
tracks: O(V),
|
|
6845
6849
|
"clip-path-id": O(H),
|
|
@@ -6858,8 +6862,8 @@ var Yc = [
|
|
|
6858
6862
|
width: O(De).width,
|
|
6859
6863
|
height: O(De).height,
|
|
6860
6864
|
"aria-hidden": "true"
|
|
6861
|
-
}, null, 8,
|
|
6862
|
-
O(f) ? r("", !0) : (y(), n(O(
|
|
6865
|
+
}, null, 8, rl)) : r("", !0),
|
|
6866
|
+
O(f) ? r("", !0) : (y(), n(O(li), {
|
|
6863
6867
|
key: 3,
|
|
6864
6868
|
"cancel-key": O(d),
|
|
6865
6869
|
"data-version": o.controller.data,
|
|
@@ -6881,13 +6885,13 @@ var Yc = [
|
|
|
6881
6885
|
"onMove",
|
|
6882
6886
|
"onDragEnd"
|
|
6883
6887
|
])),
|
|
6884
|
-
O(f) ? r("", !0) : (y(), i("g",
|
|
6888
|
+
O(f) ? r("", !0) : (y(), i("g", il, [(y(!0), i(e, null, S(O(V), (e) => (y(), i("g", {
|
|
6885
6889
|
key: `legend-${e.index}-${e.id}`,
|
|
6886
6890
|
class: "waveform-chart__legend-track",
|
|
6887
6891
|
"data-legend-track-index": e.index,
|
|
6888
6892
|
"data-legend-track-id": e.id,
|
|
6889
6893
|
transform: `translate(${e.left}, ${e.top})`
|
|
6890
|
-
}, [!e.isEmpty && (e.legendSeries.length > 1 || O(T)) ? (y(), n(O(
|
|
6894
|
+
}, [!e.isEmpty && (e.legendSeries.length > 1 || O(T)) ? (y(), n(O(Bc), {
|
|
6891
6895
|
key: 0,
|
|
6892
6896
|
series: e.legendSeries,
|
|
6893
6897
|
"show-units": O(w),
|
|
@@ -6910,8 +6914,8 @@ var Yc = [
|
|
|
6910
6914
|
"width",
|
|
6911
6915
|
"height",
|
|
6912
6916
|
"onToggle"
|
|
6913
|
-
])) : r("", !0)], 8,
|
|
6914
|
-
], 8,
|
|
6917
|
+
])) : r("", !0)], 8, al))), 128))]))
|
|
6918
|
+
], 8, Qc),
|
|
6915
6919
|
O(Le) && !O(f) ? (y(), i("text", {
|
|
6916
6920
|
key: 0,
|
|
6917
6921
|
class: "waveform-chart__label waveform-chart__x-label",
|
|
@@ -6919,16 +6923,16 @@ var Yc = [
|
|
|
6919
6923
|
x: O(ze),
|
|
6920
6924
|
y: O(Re),
|
|
6921
6925
|
"text-anchor": "middle"
|
|
6922
|
-
}, E(O(Le)), 13,
|
|
6926
|
+
}, E(O(Le)), 13, ol)) : r("", !0),
|
|
6923
6927
|
O(Be) && !O(re) ? (y(), i("text", {
|
|
6924
6928
|
key: 1,
|
|
6925
6929
|
class: "waveform-chart__empty",
|
|
6926
6930
|
x: O(te) / 2,
|
|
6927
6931
|
y: O(ne) / 2,
|
|
6928
6932
|
"text-anchor": "middle"
|
|
6929
|
-
}, " 暂无有效波形数据 ", 8,
|
|
6930
|
-
], 40,
|
|
6931
|
-
s(
|
|
6933
|
+
}, " 暂无有效波形数据 ", 8, sl)) : r("", !0)
|
|
6934
|
+
], 40, Yc)),
|
|
6935
|
+
s(ls, { controller: o.controller }, null, 8, ["controller"]),
|
|
6932
6936
|
O(g) ? (y(), n(O(ge), {
|
|
6933
6937
|
key: 1,
|
|
6934
6938
|
class: "waveform-chart__pagination",
|
|
@@ -6945,7 +6949,7 @@ var Yc = [
|
|
|
6945
6949
|
"total",
|
|
6946
6950
|
"onChange"
|
|
6947
6951
|
])) : r("", !0),
|
|
6948
|
-
O(qe) && !O(f) && !O(_) ? (y(), n(
|
|
6952
|
+
O(qe) && !O(f) && !O(_) ? (y(), n(Os, {
|
|
6949
6953
|
key: 2,
|
|
6950
6954
|
annotation: O(qe).annotation,
|
|
6951
6955
|
mode: O(qe).mode,
|
|
@@ -6969,7 +6973,7 @@ var Yc = [
|
|
|
6969
6973
|
"onSeriesChange",
|
|
6970
6974
|
"onTimeChange"
|
|
6971
6975
|
])) : r("", !0),
|
|
6972
|
-
!O(f) && !O(_) ? (y(), n(O(
|
|
6976
|
+
!O(f) && !O(_) ? (y(), n(O(ui), {
|
|
6973
6977
|
key: 3,
|
|
6974
6978
|
visible: O(J) !== null,
|
|
6975
6979
|
x: O(J)?.x || 0,
|
|
@@ -6987,7 +6991,7 @@ var Yc = [
|
|
|
6987
6991
|
"onDelete",
|
|
6988
6992
|
"onClose"
|
|
6989
6993
|
])) : r("", !0),
|
|
6990
|
-
s(O(
|
|
6994
|
+
s(O(Ls), {
|
|
6991
6995
|
state: O(Te),
|
|
6992
6996
|
visible: O(Ee) && !O(_),
|
|
6993
6997
|
"time-unit": O(W),
|
|
@@ -7000,9 +7004,9 @@ var Yc = [
|
|
|
7000
7004
|
"container-width",
|
|
7001
7005
|
"container-height"
|
|
7002
7006
|
])
|
|
7003
|
-
], 46,
|
|
7007
|
+
], 46, Kc));
|
|
7004
7008
|
}
|
|
7005
|
-
}),
|
|
7009
|
+
}), ll = /* @__PURE__ */ l({
|
|
7006
7010
|
__name: "WaveformChart",
|
|
7007
7011
|
props: {
|
|
7008
7012
|
toolbar: { type: [Boolean, Object] },
|
|
@@ -7098,7 +7102,7 @@ var Yc = [
|
|
|
7098
7102
|
"sampling-error"
|
|
7099
7103
|
],
|
|
7100
7104
|
setup(e, { expose: t, emit: r }) {
|
|
7101
|
-
let i =
|
|
7105
|
+
let i = Ko(e, r);
|
|
7102
7106
|
return t({
|
|
7103
7107
|
exportImage: i.exportImage,
|
|
7104
7108
|
zoomIn: i.zoomIn,
|
|
@@ -7108,8 +7112,8 @@ var Yc = [
|
|
|
7108
7112
|
getControlState: i.getControlState,
|
|
7109
7113
|
resetViewport: i.resetViewport,
|
|
7110
7114
|
setViewportDomain: i.setViewportDomain
|
|
7111
|
-
}), (e, t) => (y(), n(
|
|
7115
|
+
}), (e, t) => (y(), n(cl, { controller: O(i) }, null, 8, ["controller"]));
|
|
7112
7116
|
}
|
|
7113
7117
|
});
|
|
7114
7118
|
//#endregion
|
|
7115
|
-
export { Bt as DEFAULT_WAVEFORM_RENDERING_OPTIONS,
|
|
7119
|
+
export { Bt as DEFAULT_WAVEFORM_RENDERING_OPTIONS, ll as WaveformChart, Ce as buildMinorTicks, Ta as calculateWasmRange, Ve as clamp, K as displayTime, Ea as findWasmVisibleRange, Le as formatAxisTime, Ie as formatEndpointTime, Re as formatTooltipTime, Ca as initializeWasmSampling, Mt as normalizeWaveformData, Ft as normalizeWaveformSeries, Se as paddedDomain, xi as parseWaveformAnnotations, Be as resolveTrackGeometry, Xt as resolveWaveformRenderingOptions, wa as sampleWaveformWasm, an as selectRenderablePoints, bi as serializeWaveformAnnotations };
|