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/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?.extremaTicksVisible);
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?.extremaTicksVisible);
47
+ }, r);
48
48
  }
49
- function be(e, t = !0) {
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
- var Cn = 11, wn = 2;
1058
- function Tn(e, t) {
1059
- return Array.from(e).reduce((e, n) => e + (/[\u2e80-\u9fff\uf900-\ufaff\uff01-\uff60]/u.test(n) ? 1 : /[MW@%]/u.test(n) ? .95 : /[ilI1., :;|'!]/u.test(n) ? .4 : .65) * t, 0);
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, ...u) + 7 + rt(r.labelTextStyle) / 2;
1062
+ return Math.max(7, ...r) + 7 + rt(t.labelTextStyle) / 2;
1069
1063
  }
1070
- function Dn(e, t, n = {}) {
1064
+ function wn(e, t, n = {}) {
1071
1065
  let r = /* @__PURE__ */ new Map();
1072
- for (let i of e) {
1066
+ for (let t of e) {
1073
1067
  let e = 0;
1074
- for (let a of i.yAxes) {
1075
- if (a.side !== "left") continue;
1076
- let o = `${i.column}:${e++}`, s = En(i, a, t, n), c = n.compact ? Math.min(a.x - a.labelX, s) : s;
1077
- r.set(o, Math.max(r.get(o) ?? 0, c));
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 On = "700 11px sans-serif", kn;
1088
- function An(e) {
1089
- kn === void 0 && (kn = typeof document < "u" && typeof CanvasRenderingContext2D < "u" ? document.createElement("canvas").getContext("2d") : null, kn && (kn.font = On));
1090
- let t = kn ? kn.measureText(e).width : [...e].reduce((e, t) => e + (/[0-9]/.test(t) ? 6.2 : t === "." ? 3.1 : 7), 0);
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 jn(e, t, n) {
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 Mn(e) {
1094
+ function kn(e) {
1101
1095
  return String(Math.round(e));
1102
1096
  }
1103
- function Nn(e) {
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 Pn(e, t) {
1101
+ function jn(e, t) {
1108
1102
  if (!t.integerZoom) return e;
1109
- let n = t.timeUnit === "s" ? 1 : 1e3, r = Nn(Math.min(e[0], e[1]) * n), i = Nn(Math.max(e[0], e[1]) * n);
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 Fn(e, t) {
1115
- return Pn(e, t);
1108
+ function Mn(e, t) {
1109
+ return jn(e, t);
1116
1110
  }
1117
- function In(e, t) {
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 Ln(e, t, n) {
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 Pn(i ? Sn(i, r, !0) : Sn(e.xDomain, r), n);
1121
+ return jn(i ? Sn(i, r, !0) : Sn(e.xDomain, r), n);
1128
1122
  }
1129
- function Rn(e) {
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(Ln(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);
1143
- l.domain(Fn(l.domain(), e));
1144
- let u = Zn(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains, e.yDomains, e.yAxisPadding ?? e.yAxisUpperPaddingRatio), d = {
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 = Un(t.plotHeight, e.yAxisSplitNumber), a = Wn(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 } = Qn(o.domain(), !1, u, e.showAxisUnits === !1 ? void 0 : n.seriesList[0]?.unit, i), m = p + 7 + 0 + rt(e.yAxisPadding?.labelTextStyle) + 4, h = e.yAxisSlots?.find((e) => e.side === n.side && e.sideIndex === r), g = h ? (n.side === "left" ? 0 : t.width) + h.axisOffset : n.side === "left" ? -f.left : t.width + f.right, _ = p + 7 + 0 + rt(e.yAxisPadding?.labelTextStyle) / 2, v = (h ? (n.side === "left" ? 0 : t.width) + h.labelOffset : g + (n.side === "left" ? -_ : _)) - (n.side === "right" && !e.compactYAxisLayout ? 10 : 0);
1152
- return h || (f[n.side] += m), {
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: g,
1156
- labelX: v,
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 = jn(l.domain(), Math.max(2, Math.floor(t.width / 100)), e), _ = e.xAxisLabelFormatter ?? (e.integerZoom ? Mn : void 0), v = p[0]?.majorTicks ?? (i ? m.ticks(Un(t.plotHeight, e.yAxisSplitNumber)) : []), y = p[0]?.tickValues ?? [], b = l.domain(), x = {
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 Dn(r, e.yLabel, {
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 ? An : void 0
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 zn = 7, Bn = 7, Vn = 4, Hn = 0;
1235
- function Un(e, t) {
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 Wn(e, t = 5, n = !0) {
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 Gn(e, t, n, r, i = "left") {
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 Kn(e, t, n, r) {
1266
- let i = Gn(e, t, n, r), a = Pe(t[0], t[1]);
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 qn(e) {
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 Jn = /* @__PURE__ */ new WeakMap();
1282
- function Yn(e, t) {
1283
- let n = Jn.get(e);
1284
- n || (n = /* @__PURE__ */ new Map(), Jn.set(e, n));
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 = qn(i), o = Array.from({ length: i }, (e, t) => ({
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 Xn(e, t, n, r) {
1298
+ function qn(e, t, n, r) {
1305
1299
  let i = Ye(e, r);
1306
- return Yn(e, t).map((e) => {
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 Zn(e, t, n, r, i, a) {
1314
+ function Jn(e, t, n, r, i, a) {
1321
1315
  let o = i?.[e.id];
1322
- return Xn(e.visibleSeries.length || !e.series.length ? e : {
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 Qn(e, t = !0, n, r, i = 5, a = !1, o, s, c) {
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
- } : Wn(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))];
1339
- return a && l.values.length > 1 && d.push(l.values.slice(0, -1)), { tickTextWidth: Math.max(zn, ...d.flatMap((e) => e.map((t) => {
1340
- let n = Kn(t, l.domain, e, r);
1341
- return o ? o(n) : n.length * zn;
1342
- }))) };
1343
- }
1344
- function $n(e, t, n, r, i, a = !0, o = !1, s, c, l = !0, u) {
1345
- let d = rt(typeof c == "object" ? c.labelTextStyle : void 0), f = /* @__PURE__ */ new Map();
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
- Zn(e, t, n, r, s, c).forEach((e) => {
1352
- let t = d[e.side]++, n = `${e.side}:${t}`, r = Qn(e.domain, a, void 0, l ? e.seriesList[0]?.unit : void 0, i, o, u, e.maximumTick, e.minimumTick).tickTextWidth;
1353
- f.set(n, Math.max(f.get(n) ?? zn, r));
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 p = [], m = {
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}`) ?? zn, r = e === "left" && m.left > 0 ? -m.left : m[e], i = r + (n + Bn + Hn + d / 2) * (e === "left" ? -1 : 1), a = n + Bn + Hn + d + Vn;
1363
- p.push({
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: r,
1367
- labelOffset: i,
1368
- clearance: a
1369
- }), m[e] += a;
1370
+ axisOffset: i,
1371
+ labelOffset: a,
1372
+ clearance: o
1373
+ }), h[e] += o;
1370
1374
  });
1371
1375
  }), {
1372
- slots: p,
1373
- clearance: m
1376
+ slots: m,
1377
+ clearance: h
1374
1378
  };
1375
1379
  }
1376
- function er(e, t, n) {
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 tr(e) {
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 nr(e, t) {
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 rr(e, t, n = 1, r = 1) {
1418
+ function er(e, t, n = 1, r = 1) {
1415
1419
  return Math.abs(e - t) < (n + r) / 2 + 1;
1416
1420
  }
1417
- function ir(e) {
1421
+ function tr(e) {
1418
1422
  e.setAttribute("display", "none"), e.setAttribute("data-maximum-hidden", "true");
1419
1423
  }
1420
- function ar(e) {
1424
+ function nr(e) {
1421
1425
  return Number.parseFloat(getComputedStyle(e).strokeWidth) || 1;
1422
1426
  }
1423
- function or(e) {
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 = Gn(r(e), a, i, t.getAttribute("data-label-unit") ?? void 0, t.getAttribute("data-y-axis-side") === "right" ? "right" : "left");
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 sr(e) {
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
- }), or(e);
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 = tr(e);
1440
- t.some((e) => nr(n, tr(e))) && ir(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 && nr(tr(t), tr(n)) && ir(n);
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 = tr(t);
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") || nr(r, tr(n)) && ir(n));
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 && rr(s, Number(e.getAttribute("data-tick-y")), ar(n), ar(t)) && ir(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
- rr(s, t, ar(n), ar(e)) && ir(e);
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
- }), or(e);
1471
+ }), rr(e);
1468
1472
  }
1469
1473
  //#endregion
1470
1474
  //#region src/components/controls/snapshotTitle.ts
1471
- var cr = "http://www.w3.org/2000/svg";
1472
- function lr(e, t, n) {
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(cr, "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;
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(cr, "text");
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(cr, "tspan");
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 ur = "http://www.w3.org/2000/svg";
1508
- function dr(e, t = {}) {
1509
- let n = document.createElementNS(ur, e);
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 fr = [
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 pr(e, t) {
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
- fr.forEach((e) => {
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 mr(e, t) {
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 = dr("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");
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(dr("rect", {
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 = dr("g", {
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
- pr(r, e), e.setAttribute("width", "26"), e.setAttribute("height", "16"), n.appendChild(e);
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 = dr("text", {
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 hr(e, t, n, r, i, a) {
1593
- let o = dr("svg", {
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(dr("rect", {
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
- pr(t, c), mr(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);
1605
- let l = lr(e, i, n);
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 gr(e) {
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(), sr(l);
1649
- let t = hr(c, l, u.width, u.height, u.titleHeight, a.backgroundColor), n = new Blob([t], { type: "image/svg+xml" });
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 _r(e, n) {
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 vr = /* @__PURE__ */ new WeakMap();
1691
- function yr(e) {
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 br(e) {
1698
+ function _r(e) {
1695
1699
  return Number.isFinite(e) && (e ?? 0) > 0 ? Math.ceil(e) : 0;
1696
1700
  }
1697
- function xr(e, t) {
1698
- let n = `${t[0]}\u0000${t[1]}`, r = vr.get(e)?.get(n);
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 = vr.get(e) ?? /* @__PURE__ */ new Map();
1709
- return o.set(n, a), vr.set(e, o), 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 Sr(e, t, n) {
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 = xr(i, t);
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 Cr(e, t, n) {
1725
- let r = Pn(yr(e), n), i = r[1] - r[0];
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 = br(n.minVisiblePoints), s = Sr(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;
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 wr(e, t, n, r) {
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 = xr(e, t);
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 Tr(e, t, n, r) {
1747
- let i = Pn(yr(t), r), a = i[1] - i[0];
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 = wr([Math.max(i[0], Math.min(e[0], e[1])), Math.min(i[1], Math.max(e[0], e[1]))], i, n, br(r.minVisiblePoints)), s = Cr(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));
1750
- return Pn([u, u + c], r);
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 Er(e, t, n) {
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 Dr(e, t) {
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 Or(e) {
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 kr(e, t, n, r) {
1769
- let i = Or(r);
1770
- return i ? Dr(e, i) : Tr(e, t, n, r);
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 Ar(e, t, n, r) {
1773
- let i = Or(r);
1774
- return i ? Tr(e, 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: Cr(t, n, r)
1779
- }) : Tr(e, t, n, r);
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 jr = (e, t) => e.every((e, n) => Math.abs(e - t[n]) < 1e-12);
1784
- function Mr(e) {
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 = Ar(Fn(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 && !jr(u, o(i)), g = c ? e.props.presentationMode || !e.props.zoomable ? "disabled" : l && jr(l.xDomain, f) && !m && !h ? "unchanged" : "applied" : "empty-data";
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] = Er(n.xDomain, n.bounds, e.width), n.resetsY && delete v[e.index];
1857
- } else e.sharedTransform.value = Er(n.xDomain, n.bounds, e.layout.innerWidth.value), n.resetsY && (e.sharedYDomains.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 Nr = 0;
1955
- function Pr(e = "waveform") {
1958
+ var Ar = 0;
1959
+ function jr(e = "waveform") {
1956
1960
  let t = u();
1957
- return `${e}-${t ? `v${t.uid}` : `f${++Nr}`}`;
1961
+ return `${e}-${t ? `v${t.uid}` : `f${++Ar}`}`;
1958
1962
  }
1959
1963
  //#endregion
1960
1964
  //#region src/components/annotation/annotationLayout.ts
1961
- function Fr(e, t) {
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 Ir(e, t, n) {
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 Lr(e, t, n, r, i, a, o) {
1975
- let s = Br(e, t, n, r, i);
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 Rr(e, t, n, r, i, a) {
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 (Lr(e, t, n, r, o, i, a)) return o;
1992
+ ]) if (Pr(e, t, n, r, o, i, a)) return o;
1989
1993
  return "top";
1990
1994
  }
1991
- function zr(e, t, n) {
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 Br(e, t, n, r, i) {
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 Vr(e, t, n) {
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($r), 0)) + 16))),
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 Hr(e, t, n, r, i, a, o = 0, s = 0) {
2050
- let { width: c, height: l } = Vr(n, r, i), u = Br(e, t, c, l, a), d = Ir({
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 = zr(d, e, t);
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 Ur(e, t, n, r) {
2068
+ function Br(e, t, n, r) {
2065
2069
  let i = [];
2066
2070
  return e.forEach((e) => {
2067
- if (!ti(e)) return;
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 (!Fr(e.x, o) || !Fr(e.y, s)) return;
2072
- let c = ni(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 } = Vr(c, u, m), y = g ? "top" : Rr(d, h, _, v, u, m), b = Hr(d, h, c, u, m, y, Number.isFinite(e.labelOffsetX) ? e.labelOffsetX : 0, Number.isFinite(e.labelOffsetY) ? e.labelOffsetY : 0), x = {
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: ei(e.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 Wr = {
2097
+ var Vr = {
2094
2098
  borderColor: "#1677ff",
2095
2099
  textColor: "#333333",
2096
2100
  backgroundColor: "rgba(255, 255, 255, 0.92)"
2097
- }, Gr = "12px Arial, sans-serif";
2098
- function Kr(e) {
2101
+ }, Hr = "12px Arial, sans-serif";
2102
+ function Ur(e) {
2099
2103
  return vt(e) ? e : X(e);
2100
2104
  }
2101
- function qr(e, t, n) {
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 Jr(e, t) {
2117
- let n = Kr(e);
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 Yr(e, t, n = "linear") {
2123
- let r = Kr(e);
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 Xr(e, t, n, r) {
2162
+ function qr(e, t, n, r) {
2159
2163
  return e.flatMap((e) => {
2160
2164
  if (e.series.lineType === "none") {
2161
- let t = qr(e, n, r);
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 || Wr.borderColor,
2170
+ color: e.series.color || Vr.borderColor,
2167
2171
  unit: e.series.unit,
2168
2172
  ...t
2169
2173
  }] : [];
2170
2174
  }
2171
- let i = Yr(e.series.source ?? X(e.series.points), t, e.series.lineType);
2175
+ let i = Kr(e.series.source ?? X(e.series.points), t, e.series.lineType);
2172
2176
  if (!i) return [];
2173
- let a = Jr(e.series.source ?? X(e.series.points), t);
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 || Wr.borderColor,
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 Zr;
2190
- function Qr(e) {
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 $r(e) {
2194
- return Zr === void 0 && (Zr = null, typeof document < "u" && typeof CanvasRenderingContext2D < "u" && (Zr = document.createElement("canvas").getContext("2d"), Zr && (Zr.font = Gr))), Zr?.measureText(e).width ?? Qr(e);
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 ei(e) {
2200
+ function Zr(e) {
2197
2201
  return {
2198
- borderColor: e?.borderColor || Wr.borderColor,
2199
- textColor: e?.textColor || Wr.textColor,
2200
- backgroundColor: e?.backgroundColor || Wr.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 ti(e) {
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 ni(e, t = 10) {
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 ri = [
2223
+ var ei = [
2220
2224
  "data-annotation-id",
2221
2225
  "data-placement",
2222
2226
  "onPointerdown",
2223
2227
  "onContextmenu"
2224
- ], ii = ["id"], ai = ["fill"], oi = [
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
- ], si = [
2235
+ ], ii = [
2232
2236
  "x",
2233
2237
  "y",
2234
2238
  "width",
2235
2239
  "height",
2236
2240
  "fill",
2237
2241
  "stroke"
2238
- ], ci = [
2242
+ ], ai = [
2239
2243
  "x",
2240
2244
  "y",
2241
2245
  "fill"
2242
- ], li = ["x", "dy"], ui = /*@__PURE__*/ l({
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, ai)], 8, ii)]),
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, oi),
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, si),
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(Gr) }),
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, li))), 128))], 12, ci)
2420
- ], 40, ri))), 128))], 2)) : r("", !0);
2423
+ }, E(e), 9, oi))), 128))], 12, ai)
2424
+ ], 40, ei))), 128))], 2)) : r("", !0);
2421
2425
  }
2422
- }), di = (e, t) => {
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
- }, fi = /*#__PURE__*/ di(ui, [["__scopeId", "data-v-18b3ad3a"]]), pi = /*#__PURE__*/ di(/* @__PURE__ */ l({
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"]]), mi = 1;
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 hi(e) {
2476
+ function fi(e) {
2473
2477
  return typeof e == "object" && !!e && !Array.isArray(e);
2474
2478
  }
2475
- function gi(e, t, n) {
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 _i(e, t, n) {
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 vi(e, t, n) {
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 yi(e, t, n) {
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 bi(e, t) {
2495
+ function _i(e, t) {
2492
2496
  if (e === void 0) return;
2493
- hi(e) || Q(`${t} must be an object`);
2494
- let n = _i(e, "borderColor", t), r = _i(e, "textColor", t), i = _i(e, "backgroundColor", t);
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 xi(e, t) {
2505
+ function vi(e, t) {
2502
2506
  let n = `annotations[${t}]`;
2503
- hi(e) || Q(`${n} must be an object`);
2504
- let r = gi(e, "text", n);
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 = yi(e, "labelOffsetX", n), a = yi(e, "labelOffsetY", n), o = _i(e, "createdAt", n), s = bi(e.style, `${n}.style`);
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: gi(e, "id", n),
2509
- seriesId: gi(e, "seriesId", n),
2510
- x: vi(e, "x", n),
2511
- y: vi(e, "y", n),
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 Si(e) {
2520
- let t = e.map(xi), n = /* @__PURE__ */ new Set();
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 Ci(e) {
2529
+ function bi(e) {
2526
2530
  return JSON.stringify({
2527
- version: mi,
2528
- annotations: Si(e)
2531
+ version: di,
2532
+ annotations: yi(e)
2529
2533
  }, null, 2);
2530
2534
  }
2531
- function wi(e) {
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 hi(t) || Q("root must be an object"), t.version !== mi && Q(`version must be ${mi}`), Array.isArray(t.annotations) || Q("annotations must be an array"), Si(t.annotations);
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 Ti() {
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 Ei = 0;
2584
- function Di() {
2585
- return Ei += 1, typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `annotation-${Date.now()}-${Ei}`;
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 Oi(e) {
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, Di, t), c.value = n;
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 er(l.value.filter((e) => e.hasVisibleSeries), e, t);
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: Xr(u(o), d, c, a),
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 ? Xr(u(r), n.x, r.xScale(n.x), r.top + d(r, n.seriesId)(n.y)) : [], s.openEdit(n, e?.editorAnchor ?? w(n));
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 ki(e) {
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 Ai(e, t) {
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 ji(e) {
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 Mi(e, t) {
2869
+ function ki(e, t) {
2866
2870
  return {
2867
2871
  ...e,
2868
2872
  ...t
2869
2873
  };
2870
2874
  }
2871
- function Ni(e) {
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 Pi(e, t) {
2882
+ function ji(e, t) {
2879
2883
  switch (t.type) {
2880
- case "begin": return e ? Ni(e) : {
2881
- state: ji(t.gesture),
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 ? Ni(e) : {
2886
- state: Mi(e, t.position),
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 ? Ni(e) : {
2894
+ case "finish": return !e || e.pointerId !== t.pointerId ? Ai(e) : {
2891
2895
  state: null,
2892
2896
  accepted: !0,
2893
- completed: Mi(e, t.position)
2897
+ completed: ki(e, t.position)
2894
2898
  };
2895
- case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ? Ni(e) : {
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 Fi(e) {
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 = Ar(t, a, [r.seriesList], e.props);
2918
- i[n] = Er(o, a, r.width);
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 = Ar(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
2922
- e.sharedTransform.value = Er(r, n, e.innerWidth.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 Ii(e) {
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 = Or(t) ?? v, b = Dr(In(Dr([e.xDomain[0] - h / p * _, e.xDomain[1] - h / p * _], y), t), 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] = Er(b, v, p), a.value = e;
2937
- } else o.value = Er(b, v, s.value);
2938
- if (Or(t)) return n("zoom-change", b), b;
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 = Dr([a[0] + g / m * s, a[1] + g / m * s], o);
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 Li(e) {
2954
+ function Pi(e) {
2951
2955
  return [...e].sort().join("\0");
2952
2956
  }
2953
- function Ri(e, t) {
2954
- let n = Li(t);
2955
- return e.find((e) => Li(e.seriesList.map((e) => e.id)) === n);
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 zi(e, t, n, r) {
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 Bi(e, t, n) {
2974
+ function Li(e, t, n) {
2971
2975
  for (let r of n) {
2972
- let n = Ri(t, r);
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 Vi(e, t, n) {
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 Hi(e) {
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
- Ai(n, e), r && r !== n && Ai(r, e);
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 = Pi(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 = Pi(i.value, {
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 = Ii(e), I = (e) => {
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 = Pi(i.value, {
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 = Ar([t.xScale.invert(a), t.xScale.invert(s)], u, d, n);
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] = Er(h, u, t.width), m.value = e;
3081
- } else p.value = Er(h, u, l.value);
3082
- zi(r, h, t, e.independent);
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 = Pi(i.value, {
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: Fi({
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 Ui() {
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 Wi(e) {
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 = Ui(), 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) => {
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] = Fn(e.transform.rescaleX(H(c.value, [0, u.value])).domain(), t);
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: Fn(a, t)[0],
3242
- end: Fn(a, t)[1],
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", Fn([r[0], r[1]], t));
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(Li(e), e);
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
- Bi(n, s.value, T.values()), T.clear();
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
- Vi(n, l.value, s.value), S = null;
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 = Cr(e, n, t);
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) => Er(Ar(e.rescaleX(H(n, [0, r])).domain(), n, i, t), n, r), te = (e) => {
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 = Or(t);
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 Gi(e) {
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 Ki(e) {
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 qi(e) {
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?.() || Or(t) || i[1] - i[0] < a[1] - a[0] - 1e-12 ? [[Li(n.seriesList.map((e) => e.id)), i]] : [];
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?.() || Or(t) || o[1] - o[0] < s[1] - s[0] - 1e-12 ? [...o] : void 0;
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(Li(n.seriesList.map((e) => e.id)));
3420
+ let i = h?.get(Pi(n.seriesList.map((e) => e.id)));
3417
3421
  if (!i) return;
3418
- let a = r(n), o = kr(i, a, [n.seriesList], t);
3419
- e[n.index] = Er(o, a, n.width);
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 = kr(m, e, r, t);
3423
- u.value = Er(i, e, d.value), m = void 0;
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 Ji(e) {
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 Yi(e) {
3441
- Ki(e);
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) && (Ji(e.target) || (r.value = !0, e.preventDefault()));
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 } = qi(e);
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 Xi(e) {
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 Zi(e, t, n) {
3538
- let r = T(Xi(e()));
3541
+ function Ji(e, t, n) {
3542
+ let r = T(qi(e()));
3539
3543
  return j(e, (e) => {
3540
- t(), r.value = Xi(e), n();
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 Qi(e, t) {
3546
- let n = fa(e, $.__wbindgen_malloc), r = va, i = fa(t, $.__wbindgen_malloc), a = va, o = $.calculate_range(n, r, i, a);
3547
- if (o[3]) throw pa(o[2]);
3548
- var s = ra(o[0], o[1]).slice();
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 $i(e, t, n, r) {
3552
- let i = fa(e, $.__wbindgen_malloc), a = va, o = fa(t, $.__wbindgen_malloc), s = va, c = $.find_visible_range(i, a, o, s, n, r);
3553
- if (c[3]) throw pa(c[2]);
3554
- var l = ia(c[0], c[1]).slice();
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 ea(e, t, n, r) {
3558
- let i = fa(e, $.__wbindgen_malloc), a = va, o = fa(t, $.__wbindgen_malloc), s = va, c = $.sample_aggregates(i, a, o, s, n, r);
3559
- if (c[3]) throw pa(c[2]);
3560
- var l = ra(c[0], c[1]).slice();
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 ta(e, t, n, r) {
3564
- let i = fa(e, $.__wbindgen_malloc), a = va, o = fa(t, $.__wbindgen_malloc), s = va, c = $.sample_indexes(i, a, o, s, n, r);
3565
- if (c[3]) throw pa(c[2]);
3566
- var l = ia(c[0], c[1]).slice();
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 na() {
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 sa(e, t);
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 ra(e, t) {
3585
- return e >>>= 0, oa().subarray(e / 8, e / 8 + t);
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, la().subarray(e / 4, e / 4 + t);
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 Float64Array($.memory.buffer)), aa;
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 ca = null;
3598
- function la() {
3599
- return (ca === null || ca.byteLength === 0) && (ca = new Uint32Array($.memory.buffer)), ca;
3605
+ var sa = null;
3606
+ function ca() {
3607
+ return (sa === null || sa.byteLength === 0) && (sa = new Uint8Array($.memory.buffer)), sa;
3600
3608
  }
3601
- var ua = null;
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 oa().set(e, n / 8), va = e.length, n;
3611
+ return ra().set(e, n / 8), ha = e.length, n;
3608
3612
  }
3609
- function pa(e) {
3613
+ function ua(e) {
3610
3614
  let t = $.__wbindgen_externrefs.get(e);
3611
3615
  return $.__externref_table_dealloc(e), t;
3612
3616
  }
3613
- var ma = new TextDecoder("utf-8", {
3617
+ var da = new TextDecoder("utf-8", {
3614
3618
  ignoreBOM: !0,
3615
3619
  fatal: !0
3616
3620
  });
3617
- ma.decode();
3618
- var ha = 2146435072, ga = 0;
3619
- function _a(e, t) {
3620
- return ga += t, ga >= ha && (ma = new TextDecoder("utf-8", {
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
- }), ma.decode(), ga = t), ma.decode(da().subarray(e, e + t));
3627
+ }), da.decode(), pa = t), da.decode(ca().subarray(e, e + t));
3624
3628
  }
3625
- var va = 0, $;
3626
- function ya(e, t) {
3627
- return $ = e.exports, aa = null, ca = null, ua = null, $.__wbindgen_start(), $;
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 ba(e, t) {
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 xa(e) {
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 = na();
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 ba(await e, t);
3661
- return ya(n, r);
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 Sa = {
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
- }, Ca;
3675
- function wa(e, t) {
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 Ta(e) {
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 Ea(e) {
3682
- return Ca ??= Promise.resolve(xa(e)).then(() => void 0), Ca;
3685
+ function Ca(e) {
3686
+ return ba ??= Promise.resolve(va(e)).then(() => void 0), ba;
3683
3687
  }
3684
- async function Da(e) {
3685
- Ta(e), await Ea();
3686
- let t = wa(e.targetPointCount, e.x.length), n = Sa[e.strategy];
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: ta(e.x, e.y, n, t)
3693
+ sourceIndexes: Qi(e.x, e.y, n, t)
3690
3694
  };
3691
- let r = ea(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
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 Oa(e, t) {
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 Ea();
3702
- let n = Qi(e, t);
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 ka(e, t, n) {
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 Ea();
3711
- let r = $i(e, t, n[0], n[1]);
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 Aa = (e, t) => t ? e.filter((e) => e.series.length > 0) : e, ja = (e, t, n, r, i) => {
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
- }, Ma = (e, t, n) => (r, i = 0) => {
3724
+ }, ka = (e, t, n) => (r, i = 0) => {
3721
3725
  let a = n(), o = a.findIndex((e) => e.id === r);
3722
- return ja(e(), t(), Math.max(a.length, i + 1), o >= 0 ? o : i, r);
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 Na(e, t, n, r) {
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 Pa(e, t, n, r, i, a, o, s, c, l = !0, u) {
3733
- let d = rt(typeof c == "object" ? c.labelTextStyle : void 0), f = e.filter((e) => e.series.length > 0).flatMap((e) => Zn(e, t, n, r, i, c)).map((e) => Qn(e.domain, a, void 0, l ? e.seriesList[0]?.unit : void 0, o, s, u, e.maximumTick, e.minimumTick).tickTextWidth), p = Math.max(7, ...f), m = p + 7 + 4, h = -(7 + p + 0 + d / 2);
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: m,
3736
- fullClearance: p + 7 + 0 + d + 4,
3737
- labelCenterX: h
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 Fa(e, t, n, r, i) {
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 Ia(e) {
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(() => Pa(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 ? An : void 0)), f = t(() => r.value.some((e) => {
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(() => $n(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 ? An : 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));
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 La(e) {
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(() => Aa(_.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(() => {
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(() => Un(s.value, n.axes?.y?.splitNumber)), E = t(() => Na(n.displayMode, _.value, d.value, f.value)), { yAxisMetrics: D, yAxisSlots: O, resolvedChartLeftMargin: k, innerWidth: A, yAxisLayout: j, hasVisibleWaveformData: M } = Ia({
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] ? Pn(Sn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0), n) : Pn(Sn(R.value, n.xDomainStrategy), n);
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] ? Pn(Sn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0), n) : Pn(Sn(Se(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy), n);
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(() => Fn(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) => ({
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(() => Rn({
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
- Fa(() => n.axes?.y?.extremaTicksVisible !== !1, A, ie, l, u);
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 ? Ur(n.annotations, oe.value, A.value, s.value) : []),
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: Ma(() => n.frameNumber, () => n.frameNumbers, () => _.value)
3913
+ resolveFrameNumber: ka(() => n.frameNumber, () => n.frameNumbers, () => _.value)
3910
3914
  };
3911
3915
  }
3912
- var Ra = 1e-6;
3913
- function za(e) {
3916
+ var Fa = 1e-6;
3917
+ function Ia(e) {
3914
3918
  return Number.isFinite(e) ? Math.max(1, e) : 1;
3915
3919
  }
3916
- function Ba({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r, edgeCompact: i = !1 }) {
3917
- let a = i ? 8 : 18, o = i ? 0 : 44, s = za(e), c = za(t), l = za(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;
3918
- if (!(m > Ra && Math.abs(m - 360) > Ra)) {
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 Va(e) {
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(() => Ba({
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 Ha(e, n, r, i) {
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 Ua(e, t, n, r) {
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 Wa(e = () => void 0) {
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 Ga(e, t) {
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 Ka(e, t, n, r) {
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 qa(e, t) {
4128
+ function Wa(e, t) {
4125
4129
  e[e.length - 1] !== t && e.push(t);
4126
4130
  }
4127
- function Ja(e, t, n) {
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) => qa(r, e)), qa(r, e - 1), r;
4136
+ return n().forEach((e) => Wa(r, e)), Wa(r, e - 1), r;
4133
4137
  }
4134
- function Ya(e, t, n) {
4138
+ function Ka(e, t, n) {
4135
4139
  let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
4136
- return Ja(e.length, t, () => {
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 = Ka(i, r, 1, e.length - 1), o = a.start, s = a.start;
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" ? qa(t, o) : n === "max" ? qa(t, s) : o <= s ? (qa(t, o), qa(t, s)) : (qa(t, s), qa(t, o));
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 Xa(e, t) {
4151
+ function qa(e, t) {
4148
4152
  let n = Math.floor((t - 2) / 4);
4149
- return Ja(e.length, t, () => {
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 = Ka(r, n, 1, e.length - 1), a = i.start, o = i.start;
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) => qa(t, e));
4164
+ ].sort((e, t) => e - t).forEach((e) => Wa(t, e));
4161
4165
  }
4162
4166
  return t;
4163
4167
  });
4164
4168
  }
4165
- function Za(e, t, n) {
4166
- return Ja(e.length, n, () => {
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 = Ka(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
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 Qa(e, t, n, r) {
4184
- let i = Ga(n, e.length), a = new Float64Array(i), o = new Float64Array(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 = Ka(n, i, 0, e.length);
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 $a(e, t, n, r) {
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 Qa(e, t, r, n);
4200
- let i = Ga(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? Xa(t, i) : n === "lttb" ? Za(e, t, i) : Ya(t, i, n);
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 eo = {
4212
+ var Za = {
4209
4213
  kind: "javascript",
4210
4214
  sample(e) {
4211
- return $a(e.x, e.y, e.strategy, e.targetPointCount);
4215
+ return Xa(e.x, e.y, e.strategy, e.targetPointCount);
4212
4216
  }
4213
- }, to = 8 * 1024 * 1024;
4214
- function no(e, t) {
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 ro(e, t, n, r) {
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 io(e, t) {
4228
+ function to(e, t) {
4225
4229
  e[e.length - 1] !== t && e.push(t);
4226
4230
  }
4227
- function ao(e) {
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 oo(e, t) {
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 so = class {
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)) : to;
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 = no(r, o);
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 = ro(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
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") io(a, s.minimum);
4274
- else if (r === "max") io(a, s.maximum);
4275
- else if (r === "minmax") s.minimum <= s.maximum ? (io(a, s.minimum), io(a, s.maximum)) : (io(a, s.maximum), io(a, s.minimum));
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)) io(a, e);
4285
+ ].sort((e, t) => e - t)) to(a, e);
4282
4286
  }
4283
- return io(a, t - 1), this.indexes(a);
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 = ro(o, n, e, t), c = this.querySum(s.start, s.end);
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 = oo(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;
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 = oo(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
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(ao(n))) return !1;
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(ao(n))) return !1;
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
- }, co = 1e3, lo = B((e) => e.x);
4381
- function uo(e) {
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 fo(e, t) {
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 po(e, t, n = e.length) {
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 mo(e, t) {
4416
+ function uo(e, t) {
4413
4417
  return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
4414
4418
  }
4415
- function ho(e) {
4419
+ function fo(e) {
4416
4420
  return e === "auto" ? "peak" : e;
4417
4421
  }
4418
- function go(e) {
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 _o(e, t) {
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)) : co;
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 vo(e, t) {
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[lo.center(e, t)] : void 0;
4437
+ return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[oo.center(e, t)] : void 0;
4434
4438
  }
4435
- function yo(e) {
4439
+ function go(e) {
4436
4440
  return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
4437
4441
  }
4438
- function bo(e, t) {
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 xo(e, t, n, r, i) {
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 So(e, t, n, r, i, a, o, s) {
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: ho(e.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 Co(e) {
4491
+ function bo(e) {
4488
4492
  return e?.y.length ?? 0;
4489
4493
  }
4490
- function wo(e, t) {
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 To(e, t) {
4497
+ function So(e, t) {
4494
4498
  let n = (t, n) => {
4495
- let r = 0, i = Co(e);
4499
+ let r = 0, i = bo(e);
4496
4500
  for (; r < i;) {
4497
4501
  let a = r + Math.floor((i - r) / 2);
4498
- (n ? wo(e, a) <= t : wo(e, a) < t) ? r = a + 1 : i = a;
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 Eo(e, t, n) {
4508
- return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => wo(e, t + 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 Do(e) {
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 Oo(e, t) {
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 ko(e, t, n, r) {
4531
+ function Eo(e, t, n, r) {
4528
4532
  if (t?.kind === "typed") {
4529
- let e = Oo(t.x, t.y);
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: po(e.x, e.y, Math.max(t.x.length, t.y.length))
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 = uo(e ?? t?.points ?? []);
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: fo(i, e?.length ?? t?.points.length ?? 0),
4591
- index: new so(i, { maxBytes: r })
4594
+ metrics: co(i, e?.length ?? t?.points.length ?? 0),
4595
+ index: new io(i, { maxBytes: r })
4592
4596
  };
4593
4597
  }
4594
- function Ao(e, t, n) {
4595
- !Do(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));
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 jo(e, t) {
4598
- t.index?.dispose(), t.wasmDatasetHandle !== void 0 && Do(e) && e.disposeDataset(t.wasmDatasetHandle);
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 Mo(e, t, n) {
4603
- let r = Co(n);
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(wo(n, i[0])), s.unshift(n.y[i[0]])), a.length && (o.push(wo(n, a[0])), s.push(n.y[a[0]])), {
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 No = 96, Po = 16 * 1024 * 1024;
4627
- function Fo(e) {
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 Io = class {
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)) : No, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : Po;
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 = Fo(t);
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
- }, Lo = class {
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 ?? eo, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new Io({
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 && Do(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((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, Do(e) && this.datasets.forEach((t) => Ao(e, t, this.indexMaxBytes));
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 = ko(n, r, 1, this.indexMaxBytes);
4710
- return Ao(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
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 = mo(a, n);
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
- jo(this.wasmBackend, a), this.cache.deleteDataset(e);
4716
- let s = ko(r, i, a.revision + 1, this.indexMaxBytes);
4717
- return Ao(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
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 = mo(r, t.revision);
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 = To(r, t.xDomain), o = a.end - a.start;
4730
- if (_o(t, o)) return this.sampleResponse(e, t, "ok", Mo({
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 = ho(t.strategy), d = go(t), f = xo(t, a, u, d, l.kind), p = this.cache.get(f);
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 = Mo((l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && Do(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? bo(l.sample({
4739
- x: Eo(r, a.start, a.end),
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 && Do(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
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 = So(t, Co(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, yo(r), c);
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 = mo(i, n);
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 ? vo(i.points, r) : (() => {
4773
- let e = To(i, [r, r]);
4774
- if (!Co(i) || r < wo(i, 0) || r > wo(i, Co(i) - 1)) return;
4775
- let t = Math.min(Co(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - wo(i, n)) < Math.abs(wo(i, t) - r) ? n : t;
4776
- return Number.isFinite(r) && Co(i) ? {
4777
- x: wo(i, a),
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, mo(r, n));
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 = mo(r, n);
4789
- return i === "ok" && r && (jo(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
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) => jo(this.wasmBackend, e)), Do(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
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 Ro(e) {
4819
+ function Fo(e) {
4816
4820
  return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
4817
4821
  }
4818
- function zo() {
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 Lo();
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 = Ro(i), t?.terminate(), t = void 0, c());
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 Bo(e) {
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 Vo() {
4921
- let e = Wa(), t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map(), o = {
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 ??= zo();
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 Ho = 120;
4948
- function Uo(e, t) {
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 Wo(e, t) {
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 Go(e) {
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 Ko(e, t, n, r) {
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 qo(e) {
4997
- let n = T(), r = T(0), i = Vo(), { revisions: a, backendBySeries: o, selectedModeBySeries: s, emittedErrors: c, pendingDiagnostics: l, scheduler: u } = i, d = t(() => {
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) || !Bo(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
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" && Ua(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
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(Wo(e, t))) : (o[e.series.id]?.length || (o[e.series.id] = bt(Go(e), e.visibleRange, e.source.length, (t) => e.source.pointAt(t))), c.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(Ko(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)));
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 ? Uo(e, t) : void 0;
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(Ko(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
5104
- }), p.workerError && p.results.every((e) => e.status !== "wasm-unavailable") && h(Ko(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(Ko(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);
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
- }, Ho));
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 Jo(e, t) {
5135
+ function Go(e, t) {
5132
5136
  e.value = t instanceof Element ? t : void 0;
5133
5137
  }
5134
- function Yo(e, n) {
5135
- let r = _r(e, n), i = b({
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 = Pr("waveform-clip"), P = x(new Set(i.defaultHiddenSeriesIds)), F = Ti(), I = T({}), L = x([]), R = Ui();
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 = Zi(() => i.data, () => {
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 = Va({
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 = La({
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 = Ha(i, he.resolvedChartLeftMargin, he.innerWidth, V.titleAreaStyle), Pe = qo({
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" ? Gi(Fe.value) : xe.value.showPagination && W.value > 1 && H.value <= 520 ? 40 : 0;
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 = Wi({
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 = Oi({
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 = Hi({
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 = ki({
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 = Mr({
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 = Yi({
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 = gr({
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) => Jo(o, e),
5394
- setSvgElement: (e) => Jo(s, e),
5395
- setTitleMeasureElement: (e) => Jo(c, e),
5396
- setSharedOverlayElement: (e) => Jo(l, 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 Xo = {
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
- }, Zo = {
5414
+ }, Jo = {
5411
5415
  "zoom-box": "zoom",
5412
5416
  pan: "pan",
5413
5417
  annotate: "annotation"
5414
- }, Qo = {
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
- }, $o = [
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
- ], es = Object.fromEntries($o.map((e) => {
5433
- let t = Zo[e], n = e === "zoom-in" || e === "zoom-out" || e === "reset" || e === "fit" ? e : void 0;
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: Qo[e],
5437
- icon: Xo[e],
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 ts(e) {
5447
- let t = typeof e == "object" ? e : {}, n = [...new Set(t.items ?? $o)].filter((e) => es[e]), r = [];
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 = es[e];
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 ns = ["onKeydown"], rs = ["aria-expanded"], is = ["value"], as = {
5464
+ var $o = ["onKeydown"], es = ["aria-expanded"], ts = ["value"], ns = {
5461
5465
  key: 2,
5462
5466
  class: "waveform-toolbar__scope"
5463
- }, os = ["data-group"], ss = [
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
- ], cs = {
5475
+ ], as = {
5472
5476
  viewBox: "0 0 24 24",
5473
5477
  "aria-hidden": "true"
5474
- }, ls = ["d"], us = {
5478
+ }, os = ["d"], ss = {
5475
5479
  key: 3,
5476
5480
  class: "waveform-toolbar__menu",
5477
5481
  role: "group",
5478
5482
  "aria-label": "图片格式"
5479
- }, ds = {
5483
+ }, cs = {
5480
5484
  key: 4,
5481
5485
  class: "waveform-toolbar__feedback",
5482
5486
  role: "status"
5483
- }, fs = /*#__PURE__*/ di(/* @__PURE__ */ l({
5487
+ }, ls = /*#__PURE__*/ ci(/* @__PURE__ */ l({
5484
5488
  __name: "WaveformToolbar",
5485
5489
  props: { controller: {} },
5486
5490
  setup(n) {
5487
- let o = n, s = t(() => ts(o.controller.toolbar)), c = t(() => o.controller.chartWidth < 440), l = x(!1), u = x(""), d = x(!1), f = x(!1), g = x(""), _ = !1;
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, rs)) : r("", !0),
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, is))), 128))], 512)), [[k, u.value]]) : (y(), i("span", as, "共享范围")),
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", cs, [a("path", { d: e.icon }, null, 8, ls)]))], 8, ss))), 128))], 8, os))), 128)),
5566
- d.value ? (y(), i("div", us, [a("button", {
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", ds, E(f.value ? "正在导出…" : g.value), 1)) : r("", !0)
5574
- ], 46, ns)) : r("", !0);
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"]]), ps = ["id"], ms = { class: "waveform-annotation-editor__content" }, hs = {
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
- }, gs = ["aria-invalid"], _s = {
5583
+ }, ps = ["aria-invalid"], ms = {
5580
5584
  class: "waveform-annotation-editor__coordinate-value",
5581
5585
  "aria-hidden": "true"
5582
- }, vs = ["id"], ys = {
5586
+ }, hs = ["id"], gs = {
5583
5587
  key: 0,
5584
5588
  class: "waveform-annotation-editor__series",
5585
5589
  "aria-label": "标注所属波形"
5586
- }, bs = { class: "waveform-annotation-editor__series-label" }, xs = ["value"], Ss = ["value"], Cs = { key: 1 }, ws = { class: "waveform-annotation-editor__field" }, Ts = { class: "waveform-annotation-editor__label-row" }, Es = ["maxlength"], Ds = { class: "waveform-annotation-editor__colors" }, Os = {
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
- }, ks = {
5593
+ }, Es = {
5590
5594
  class: "waveform-annotation-editor__color-field",
5591
5595
  title: "调整标注文字色和透明度"
5592
- }, As = {
5596
+ }, Ds = {
5593
5597
  class: "waveform-annotation-editor__color-field",
5594
5598
  title: "调整标注背景色和透明度"
5595
- }, js = /*#__PURE__*/ di(/* @__PURE__ */ l({
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 = Pr("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(() => {
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 = ei(d.annotation.style);
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, ps)]),
5667
- default: N(() => [a("div", ms, [
5668
- a("div", hs, [
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", _s, E(v.value), 1)
5692
- ], 8, gs),
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, vs)) : r("", !0),
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", ys, [
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", bs, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, E(I.value.name), 1)]),
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, Ss))), 128))], 40, xs)) : I.value.unit ? (y(), i("code", Cs, E(I.value.unit), 1)) : r("", !0)
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", ws, [a("span", Ts, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, E(F.value) + "/" + E(O(40)), 1)]), P(a("textarea", {
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, Es), [[A, _.value]])]),
5731
- a("fieldset", Ds, [
5734
+ }, null, 40, Cs), [[A, _.value]])]),
5735
+ a("fieldset", ws, [
5732
5736
  o[12] ||= a("legend", null, "颜色与透明度", -1),
5733
- a("label", Os, [o[9] ||= a("span", null, "边框色", -1), s(O(u), {
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", ks, [o[10] ||= a("span", null, "文字色", -1), s(O(u), {
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", As, [o[11] ||= a("span", null, "背景色", -1), s(O(u), {
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"]]), Ms = { class: "waveform-tooltip__series-content" }, Ns = { class: "waveform-tooltip__series-label" }, Ps = {
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
- }, Fs = {
5775
+ }, Ms = {
5772
5776
  key: 1,
5773
5777
  class: "waveform-tooltip__value waveform-tooltip__value--missing"
5774
- }, Is = 12, Ls = 8, Rs = 560, zs = /*#__PURE__*/ di(/* @__PURE__ */ l({
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 + Is, t = s.position.x - Is - l.value.width, n = Math.max(1, Math.min(Rs, s.containerWidth - Ls * 2));
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 - Ls ? { left: `${e}px` } : t >= Ls ? { right: `${s.containerWidth - s.position.x + Is}px` } : { left: `${Ls}px` },
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(Ls, Math.min(s.position.y - 18, s.containerHeight - l.value.height - Ls))}px`
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", Ms, [a("span", Ns, [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", Ps, "(x:" + E(O(Re)(t.point.x, n.timeUnit)) + " y:" + E(O(Fe)(t.point.y)) + ")", 1)) : (y(), i("span", Fs, "无数据"))])]))), 128))], 4)) : r("", !0);
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"]]), Bs = /* @__PURE__ */ l({
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(zs, {
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
- }), Vs = 13, Hs = 2, Us = 14, Ws = 8, Gs = 24, Ks = {
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 qs(e, t = 48) {
5859
- return e === "none" ? null : oe().type(Ks[e]).size(t)() ?? null;
5862
+ function Ws(e, t = 48) {
5863
+ return e === "none" ? null : oe().type(Us[e]).size(t)() ?? null;
5860
5864
  }
5861
- function Js(e, t, n = 48) {
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 Ys(e) {
5882
+ function Ks(e) {
5879
5883
  return e === "none" ? null : "M1 8H25";
5880
5884
  }
5881
- function Xs(e) {
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 Zs(e) {
5886
- let t = (Number.isFinite(e) && e > 0 ? Math.min(e, Gs) : Ws) / 2, n = Vs - t, r = Vs + t;
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} ${Hs}H${r}`,
5889
- `M${Vs} ${Hs}V${Us}`,
5890
- `M${n} ${Us}H${r}`
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 Qs = ["clip-path"], $s = ["data-series-id", "data-series-name"], ec = [
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
- ], tc = ["data-series-id"], nc = [
5908
+ ], Qs = ["data-series-id"], $s = [
5905
5909
  "d",
5906
5910
  "stroke",
5907
5911
  "stroke-width"
5908
- ], rc = ["data-series-id", "data-point-type"], ic = ["d", "fill"], ac = /*#__PURE__*/ di(/* @__PURE__ */ l({
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 = Js(e.series.pointType, e.pointRenderPoints.map((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(Xs)(e.series.lineStyle)
5954
- }, null, 8, ec)) : r("", !0),
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, nc)) : r("", !0)], 8, tc)) : r("", !0),
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, ic)) : r("", !0)], 8, rc))
5977
- ], 8, $s))), 128))], 8, Qs)) : r("", !0);
5980
+ }, null, 8, tc)) : r("", !0)], 8, ec))
5981
+ ], 8, Xs))), 128))], 8, Ys)) : r("", !0);
5978
5982
  }
5979
- }), [["__scopeId", "data-v-628502df"]]), oc = ["clip-path"], sc = [
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
- ], cc = /* @__PURE__ */ l({
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, sc))], 64))), 128))], 8, oc)) : r("", !0);
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 lc(e, t, n = "") {
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 uc = ["transform"], dc = ["transform"], fc = {
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
- }, pc = ["x"], mc = [
6042
+ }, uc = ["x"], dc = [
6039
6043
  "data-y-axis-index",
6040
6044
  "data-y-axis-side",
6041
6045
  "transform"
6042
- ], hc = { key: 2 }, gc = [
6046
+ ], fc = { key: 2 }, pc = [
6043
6047
  "x",
6044
6048
  "y",
6045
6049
  "width"
6046
- ], _c = ["fill", "transform"], vc = ["data-y-axis-title-index"], yc = [
6050
+ ], mc = ["fill", "transform"], hc = ["data-y-axis-title-index"], gc = [
6047
6051
  "x",
6048
6052
  "y",
6049
6053
  "width"
6050
- ], bc = ["fill", "transform"], xc = /* @__PURE__ */ l({
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 ? lc(t, e.unit) : t;
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) => Gn(Number(t), e.scale.domain(), e.tickValues, r, e.side)).tickSize(-4).tickPadding(7).tickSizeOuter(0).tickValues(e.tickValues), s = ae(n);
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 && sr(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, uc)) : r("", !0),
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", fc, E(n.track.endpointLabels.start), 1), 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, pc)], 8, dc)) : r("", !0),
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, mc))), 128)),
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", hc, [a("rect", {
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, gc), a("text", {
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, _c)])) : r("", !0),
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, yc), a("text", {
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, bc)], 8, vc))), 128))
6192
+ }, E(d(e.seriesList[0])), 13, _c)], 8, hc))), 128))
6189
6193
  ], 64));
6190
6194
  }
6191
- }), Sc = [
6195
+ }), yc = [
6192
6196
  "width",
6193
6197
  "height",
6194
6198
  "fill"
6195
- ], Cc = ["clip-path"], wc = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Tc = [
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
- ], Ec = [
6204
+ ], Cc = [
6201
6205
  "stroke",
6202
6206
  "x2",
6203
6207
  "y1",
6204
6208
  "y2"
6205
- ], Dc = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Oc = [
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
- ], kc = [
6214
+ ], Ec = [
6211
6215
  "stroke",
6212
6216
  "x2",
6213
6217
  "y1",
6214
6218
  "y2"
6215
- ], Ac = ["x", "y"], jc = /* @__PURE__ */ l({
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, Sc)) : r("", !0),
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", wc, [t.track.gridLines.vertical ? (y(!0), i(e, { key: 0 }, S(t.track.xMinorTicks, (e) => (y(), i("line", {
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, Tc))), 128)) : r("", !0), t.track.gridLines.horizontal ? (y(!0), i(e, { key: 1 }, S(t.track.yMinorTicks, (e) => (y(), i("line", {
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, Ec))), 128)) : r("", !0)]), a("g", Dc, [t.track.gridLines.vertical ? (y(!0), i(e, { key: 0 }, S(t.track.xMajorTicks, (e) => (y(), i("line", {
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, Oc))), 128)) : r("", !0), t.track.gridLines.horizontal ? (y(!0), i(e, { key: 1 }, S(t.track.yMajorTicks, (e) => (y(), i("line", {
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, kc))), 128)) : r("", !0)])], 8, Cc)) : r("", !0),
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, Ac)) : r("", !0)
6286
+ }, E(t.frameNumber), 13, Dc)) : r("", !0)
6283
6287
  ], 64));
6284
6288
  }
6285
- }), Mc = [
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
- ], Nc = [
6299
+ ], Ac = [
6296
6300
  "data-interactive",
6297
6301
  "data-independent-overlay-index",
6298
6302
  "width",
6299
6303
  "height"
6300
- ], Pc = ["x", "y"], Fc = /* @__PURE__ */ l({
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(jc, {
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(xc, {
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(ac, {
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(cc, {
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, Nc)) : r("", !0),
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, Pc)) : r("", !0)
6477
- ], 10, Mc));
6480
+ }, " 暂无可见曲线 ", 8, jc)) : r("", !0)
6481
+ ], 10, kc));
6478
6482
  }
6479
- }), Ic = [
6483
+ }), Nc = [
6480
6484
  "width",
6481
6485
  "height",
6482
6486
  "data-position",
6483
6487
  "data-orientation"
6484
- ], Lc = [
6488
+ ], Pc = [
6485
6489
  "disabled",
6486
6490
  "aria-pressed",
6487
6491
  "aria-label",
6488
6492
  "onClick"
6489
- ], Rc = [
6493
+ ], Fc = [
6490
6494
  "data-line-type",
6491
6495
  "data-line-style",
6492
6496
  "data-point-type",
6493
6497
  "data-error-bar-visible"
6494
- ], zc = [
6498
+ ], Ic = [
6495
6499
  "d",
6496
6500
  "stroke",
6497
6501
  "stroke-dasharray"
6498
- ], Bc = [
6502
+ ], Lc = [
6499
6503
  "d",
6500
6504
  "stroke",
6501
6505
  "stroke-width"
6502
- ], Vc = ["d", "fill"], Hc = ["title"], Uc = /*#__PURE__*/ di(/* @__PURE__ */ l({
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 ? lc(e.name, e.unit, " ") : e.name;
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(Ys)(e.lineType) ? (y(), i("path", {
6571
+ O(Ks)(e.lineType) ? (y(), i("path", {
6568
6572
  key: 0,
6569
6573
  class: "waveform-legend__line",
6570
- d: O(Ys)(e.lineType) ?? void 0,
6574
+ d: O(Ks)(e.lineType) ?? void 0,
6571
6575
  stroke: e.color,
6572
- "stroke-dasharray": O(Xs)(e.lineStyle),
6576
+ "stroke-dasharray": O(qs)(e.lineStyle),
6573
6577
  "stroke-width": "1",
6574
6578
  fill: "none"
6575
- }, null, 8, zc)) : r("", !0),
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(Zs)(e.errorBar.capWidth),
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, Bc)) : r("", !0),
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(qs)(e.pointType, 30) ?? void 0,
6592
+ d: O(Ws)(e.pointType, 30) ?? void 0,
6589
6593
  fill: e.color,
6590
6594
  transform: "translate(13 8)"
6591
- }, null, 8, Vc))
6592
- ], 8, Rc)), a("span", {
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, Hc)], 10, Lc))), 128))], 6)], 2)], 8, Ic));
6599
+ }, E(u(e)), 9, zc)], 10, Pc))), 128))], 6)], 2)], 8, Nc));
6596
6600
  }
6597
- }), [["__scopeId", "data-v-24214c74"]]), Wc = {
6601
+ }), [["__scopeId", "data-v-24214c74"]]), Vc = {
6598
6602
  class: "waveform-chart__hover-layer",
6599
6603
  "pointer-events": "none",
6600
6604
  "aria-hidden": "true"
6601
- }, Gc = ["clip-path", "transform"], Kc = [
6605
+ }, Hc = ["clip-path", "transform"], Uc = [
6602
6606
  "x1",
6603
6607
  "x2",
6604
6608
  "y2"
6605
- ], qc = /*#__PURE__*/ di(/* @__PURE__ */ l({
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", Wc, [(y(!0), i(e, null, S(o.value, (e) => (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, Kc)], 8, Gc))), 128))]));
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 Jc(e, t, n = 0) {
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 Yc = [
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
- ], Xc = [
6667
+ ], qc = [
6664
6668
  "role",
6665
6669
  "aria-level",
6666
6670
  "aria-hidden"
6667
- ], Zc = ["data-title-scale", "data-title-wrapped"], Qc = [
6671
+ ], Jc = ["data-title-scale", "data-title-wrapped"], Yc = [
6668
6672
  "width",
6669
6673
  "height",
6670
6674
  "aria-label"
6671
- ], $c = ["id"], el = ["width", "height"], tl = ["transform"], nl = {
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
- }, rl = ["transform"], il = ["width", "height"], al = ["width", "height"], ol = [
6679
+ }, el = ["transform"], tl = ["width", "height"], nl = ["width", "height"], rl = [
6676
6680
  "x",
6677
6681
  "y",
6678
6682
  "width",
6679
6683
  "height"
6680
- ], sl = {
6684
+ ], il = {
6681
6685
  key: 4,
6682
6686
  class: "waveform-chart__legend-layer"
6683
- }, cl = [
6687
+ }, al = [
6684
6688
  "data-legend-track-index",
6685
6689
  "data-legend-track-id",
6686
6690
  "transform"
6687
- ], ll = ["x", "y"], ul = ["x", "y"], dl = /* @__PURE__ */ l({
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, Zc)], 4)) : r("", !0)], 12, Xc)) : r("", !0),
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, el)], 8, $c))), 128))]),
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", nl, [(y(!0), i(e, null, S(O(oe), (e) => (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, il))], 8, rl))), 128))])) : r("", !0),
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, al)) : r("", !0),
6788
- (y(!0), i(e, null, S(O(V), (e) => (y(), n(O(Fc), {
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(Jc)(e, O(V), l.value) : void 0,
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(qc), {
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, ol)) : r("", !0),
6862
- O(f) ? r("", !0) : (y(), n(O(fi), {
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", sl, [(y(!0), i(e, null, S(O(V), (e) => (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(Uc), {
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, cl))), 128))]))
6914
- ], 8, tl),
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, ll)) : r("", !0),
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, ul)) : r("", !0)
6930
- ], 40, Qc)),
6931
- s(fs, { controller: o.controller }, null, 8, ["controller"]),
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(js, {
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(pi), {
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(Bs), {
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, Yc));
7007
+ ], 46, Kc));
7004
7008
  }
7005
- }), fl = /* @__PURE__ */ l({
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 = Yo(e, r);
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(dl, { controller: O(i) }, null, 8, ["controller"]));
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, fl as WaveformChart, Ce as buildMinorTicks, Oa as calculateWasmRange, Ve as clamp, K as displayTime, ka as findWasmVisibleRange, Le as formatAxisTime, Ie as formatEndpointTime, Re as formatTooltipTime, Ea as initializeWasmSampling, Mt as normalizeWaveformData, Ft as normalizeWaveformSeries, Se as paddedDomain, wi as parseWaveformAnnotations, Be as resolveTrackGeometry, Xt as resolveWaveformRenderingOptions, Da as sampleWaveformWasm, an as selectRenderablePoints, Ci as serializeWaveformAnnotations };
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 };