waveform-analysis 0.1.57 → 0.1.59

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.
Files changed (54) hide show
  1. package/README.md +12 -7
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +752 -680
  4. package/dist/types/components/WaveformChart.vue.d.ts +2 -0
  5. package/dist/types/components/core/grid.d.ts +3 -0
  6. package/dist/types/components/core/trackPagination.d.ts +4 -0
  7. package/dist/types/components/core/useWaveformChartController.d.ts +3 -1
  8. package/dist/types/components/core/useWaveformChartLifecycle.d.ts +1 -2
  9. package/dist/types/components/core/useWaveformLayout.d.ts +2 -1
  10. package/dist/types/components/core/waveformChartTypes.d.ts +4 -1
  11. package/dist/types/components/data/types.d.ts +1 -1
  12. package/dist/types/components/index.d.ts +1 -1
  13. package/dist/types/components/interaction/useWaveformZoom.d.ts +2 -1
  14. package/dist/types/components/interaction/zoomEventPayload.d.ts +7 -0
  15. package/dist/types/core/rendering.d.ts +1 -1
  16. package/dist/types/core/renderingOptions.d.ts +1 -1
  17. package/dist/types/core/wasmSampling.d.ts +1 -1
  18. package/dist/types/core/workerSampling/multiresolution.d.ts +1 -1
  19. package/dist/types/core/workerSampling/protocol.d.ts +1 -1
  20. package/dist/types/core/workerSampling/repositoryDataset.d.ts +1 -1
  21. package/dist/types/core/workerSampling/repositorySupport.d.ts +1 -1
  22. package/dist/types/index.d.ts +1 -1
  23. package/dist/types/types/chart.d.ts +8 -0
  24. package/dist/types/types/index.d.ts +1 -1
  25. package/dist/types/utils/geometry.d.ts +1 -1
  26. package/dist/types/wasm/waveform_sampling_wasm.d.ts +74 -0
  27. package/dist/types/wasm/waveform_sampling_wasm_bg.wasm.d.ts +19 -0
  28. package/package.json +5 -4
  29. package/src/components/WaveformChartView.vue +3 -3
  30. package/src/components/core/grid.test.ts +3 -0
  31. package/src/components/core/grid.ts +4 -0
  32. package/src/components/core/trackPagination.ts +40 -0
  33. package/src/components/core/useWaveformChartController.ts +6 -1
  34. package/src/components/core/useWaveformChartLifecycle.ts +15 -9
  35. package/src/components/core/useWaveformLayout.ts +12 -9
  36. package/src/components/core/waveformChartTypes.ts +4 -0
  37. package/src/components/data/types.ts +1 -0
  38. package/src/components/index.ts +1 -0
  39. package/src/components/interaction/useWaveformViewport.ts +2 -0
  40. package/src/components/interaction/useWaveformZoom.ts +58 -61
  41. package/src/components/interaction/zoomEventPayload.ts +88 -0
  42. package/src/components/waveformChartCases/trackOrder.test.ts +62 -0
  43. package/src/components/waveformChartCases/zoomIntentAndDataRebind.test.ts +213 -0
  44. package/src/core/rendering.ts +1 -1
  45. package/src/core/renderingOptions.ts +1 -1
  46. package/src/core/workerSampling/multiresolution.ts +1 -1
  47. package/src/core/workerSampling/protocol.ts +1 -1
  48. package/src/core/workerSampling/repository.ts +1 -1
  49. package/src/core/workerSampling/repositoryDataset.ts +1 -1
  50. package/src/core/workerSampling/repositorySupport.ts +1 -1
  51. package/src/index.ts +1 -0
  52. package/src/types/chart.ts +9 -0
  53. package/src/types/index.ts +1 -0
  54. package/src/utils/geometry.ts +1 -1
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, defineAsyncComponent as c, defineComponent as l, getCurrentInstance as u, markRaw as d, nextTick as f, normalizeClass as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, onScopeDispose as _, openBlock as v, reactive as y, ref as b, renderList as x, shallowReactive as S, shallowRef as C, toDisplayString as w, toRefs as T, unref as E, vModelText as D, watch as O, watchEffect as k, withCtx as A, withDirectives as j, withModifiers as M } from "vue";
2
- import { axisBottom as N, axisLeft as P, axisRight as F, bisector as I, curveStep as L, curveStepAfter as R, curveStepBefore as z, extent as B, line as V, pointer as H, scaleLinear as U, select as W, symbol as ee, symbolCircle as te, symbolDiamond as ne, symbolSquare as re, symbolTriangle as ie, zoom as G, zoomIdentity as K, zoomTransform as q } from "d3";
3
- import { InputNumber as ae, Modal as oe, Pagination as se } from "ant-design-vue";
2
+ import { axisBottom as N, axisLeft as P, axisRight as F, bisector as I, curveStep as L, curveStepAfter as R, curveStepBefore as z, extent as B, line as V, pointer as H, scaleLinear as U, select as W, symbol as G, symbolCircle as ee, symbolDiamond as te, symbolSquare as ne, symbolTriangle as re, zoom as K, zoomIdentity as q, zoomTransform as J } from "d3";
3
+ import { InputNumber as ie, Modal as ae, Pagination as oe } from "ant-design-vue";
4
4
  //#region src/utils/waveformId.ts
5
- var ce = 0;
6
- function le(e = "waveform") {
5
+ var se = 0;
6
+ function ce(e = "waveform") {
7
7
  let t = u();
8
- return `${e}-${t ? `v${t.uid}` : `f${++ce}`}`;
8
+ return `${e}-${t ? `v${t.uid}` : `f${++se}`}`;
9
9
  }
10
10
  //#endregion
11
11
  //#region src/core/compactSamplePointSource.ts
12
- function ue(e, t, n, r) {
12
+ function le(e, t, n, r) {
13
13
  let i = 0, a = e;
14
14
  for (; i < a;) {
15
15
  let e = i + Math.floor((a - i) / 2);
@@ -17,7 +17,7 @@ function ue(e, t, n, r) {
17
17
  }
18
18
  return i;
19
19
  }
20
- function de(e, t, n, r) {
20
+ function ue(e, t, n, r) {
21
21
  let i = (e) => n + (r?.[e] ?? e) / t, a = (t) => t < 0 || t >= e.length ? void 0 : {
22
22
  x: i(t),
23
23
  y: e[t]
@@ -33,15 +33,15 @@ function de(e, t, n, r) {
33
33
  visibleRange(t) {
34
34
  let n = Math.min(t[0], t[1]), r = Math.max(t[0], t[1]);
35
35
  return {
36
- start: ue(e.length, i, n, !1),
37
- end: ue(e.length, i, r, !0)
36
+ start: le(e.length, i, n, !1),
37
+ end: le(e.length, i, r, !0)
38
38
  };
39
39
  },
40
40
  nearestPoint(t) {
41
41
  if (!Number.isFinite(t) || !e.length) return;
42
42
  if (t <= i(0)) return a(0);
43
43
  if (t >= i(e.length - 1)) return a(e.length - 1);
44
- let n = ue(e.length, i, t, !1), r = Math.max(0, n - 1);
44
+ let n = le(e.length, i, t, !1), r = Math.max(0, n - 1);
45
45
  return Math.abs(t - i(r)) < Math.abs(i(n) - t) ? a(r) : a(n);
46
46
  },
47
47
  metrics() {
@@ -68,17 +68,17 @@ function de(e, t, n, r) {
68
68
  }
69
69
  //#endregion
70
70
  //#region src/core/waveformPointSource.ts
71
- function J(e) {
71
+ function Y(e) {
72
72
  return typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : void 0;
73
73
  }
74
- function fe(e, t, n) {
74
+ function de(e, t, n) {
75
75
  let r = Math.max(0, Math.min(n, Math.floor(e)));
76
76
  return {
77
77
  start: r,
78
78
  end: Math.max(r, Math.min(n, Math.floor(t)))
79
79
  };
80
80
  }
81
- function Y(e, t, n) {
81
+ function fe(e, t, n) {
82
82
  let r = 0, i = e;
83
83
  for (; r < i;) {
84
84
  let e = r + Math.floor((i - r) / 2);
@@ -99,7 +99,7 @@ function me(e, t, n) {
99
99
  for (let c = 0; c < e; c += 1) {
100
100
  let e = t(c);
101
101
  if (!e || (r = Math.min(r, e.x), i = Math.max(i, e.x), a = Math.min(a, e.y), o = Math.max(o, e.y), !n)) continue;
102
- let l = J(e.lowerError) ?? J(e.error) ?? 0, u = J(e.upperError) ?? J(e.error) ?? 0;
102
+ let l = Y(e.lowerError) ?? Y(e.error) ?? 0, u = Y(e.upperError) ?? Y(e.error) ?? 0;
103
103
  s ||= l !== 0 || u !== 0, a = Math.min(a, e.y - l), o = Math.max(o, e.y + u);
104
104
  }
105
105
  return {
@@ -123,13 +123,13 @@ var he = class {
123
123
  return this.sourcePoints[e];
124
124
  }
125
125
  pointsInRange(e = 0, t = this.length) {
126
- let n = fe(e, t, this.length);
126
+ let n = de(e, t, this.length);
127
127
  return this.sourcePoints.slice(n.start, n.end);
128
128
  }
129
129
  visibleRange(e) {
130
130
  let t = Math.min(e[0], e[1]), n = Math.max(e[0], e[1]);
131
131
  return {
132
- start: Y(this.length, (e) => this.sourcePoints[e].x, t),
132
+ start: fe(this.length, (e) => this.sourcePoints[e].x, t),
133
133
  end: pe(this.length, (e) => this.sourcePoints[e].x, n)
134
134
  };
135
135
  }
@@ -138,7 +138,7 @@ var he = class {
138
138
  let t = this.sourcePoints[0], n = this.sourcePoints[this.length - 1];
139
139
  if (e <= t.x) return t;
140
140
  if (e >= n.x) return n;
141
- let r = Y(this.length, (e) => this.sourcePoints[e].x, e), i = this.sourcePoints[Math.min(r, this.length - 1)], a = this.sourcePoints[Math.max(0, r - 1)];
141
+ let r = fe(this.length, (e) => this.sourcePoints[e].x, e), i = this.sourcePoints[Math.min(r, this.length - 1)], a = this.sourcePoints[Math.max(0, r - 1)];
142
142
  return Math.abs(e - a.x) < Math.abs(i.x - e) ? a : i;
143
143
  }
144
144
  metrics(e = !1) {
@@ -165,7 +165,7 @@ var he = class {
165
165
  }
166
166
  pointAt(e) {
167
167
  if (e < 0 || e >= this.length) return;
168
- let t = J(this.error?.[e]), n = J(this.lowerError?.[e]), r = J(this.upperError?.[e]);
168
+ let t = Y(this.error?.[e]), n = Y(this.lowerError?.[e]), r = Y(this.upperError?.[e]);
169
169
  return {
170
170
  x: this.x[e],
171
171
  y: this.y[e],
@@ -175,14 +175,14 @@ var he = class {
175
175
  };
176
176
  }
177
177
  pointsInRange(e = 0, t = this.length) {
178
- let n = fe(e, t, this.length), r = [];
178
+ let n = de(e, t, this.length), r = [];
179
179
  for (let e = n.start; e < n.end; e += 1) r.push(this.pointAt(e));
180
180
  return r;
181
181
  }
182
182
  visibleRange(e) {
183
183
  let t = Math.min(e[0], e[1]), n = Math.max(e[0], e[1]);
184
184
  return {
185
- start: Y(this.length, (e) => this.x[e], t),
185
+ start: fe(this.length, (e) => this.x[e], t),
186
186
  end: pe(this.length, (e) => this.x[e], n)
187
187
  };
188
188
  }
@@ -190,7 +190,7 @@ var he = class {
190
190
  if (!Number.isFinite(e) || !this.length) return;
191
191
  if (e <= this.x[0]) return this.pointAt(0);
192
192
  if (e >= this.x[this.length - 1]) return this.pointAt(this.length - 1);
193
- let t = Y(this.length, (e) => this.x[e], e), n = Math.min(t, this.length - 1), r = Math.max(0, t - 1);
193
+ let t = fe(this.length, (e) => this.x[e], e), n = Math.min(t, this.length - 1), r = Math.max(0, t - 1);
194
194
  return Math.abs(e - this.x[r]) < Math.abs(this.x[n] - e) ? this.pointAt(r) : this.pointAt(n);
195
195
  }
196
196
  metrics(e = !1) {
@@ -198,7 +198,7 @@ var he = class {
198
198
  for (let o = 0; o < this.length; o += 1) {
199
199
  let s = this.x[o], c = this.y[o];
200
200
  if (t = Math.min(t, s), n = Math.max(n, s), r = Math.min(r, c), i = Math.max(i, c), !e) continue;
201
- let l = J(this.lowerError?.[o]) ?? J(this.error?.[o]) ?? 0, u = J(this.upperError?.[o]) ?? J(this.error?.[o]) ?? 0;
201
+ let l = Y(this.lowerError?.[o]) ?? Y(this.error?.[o]) ?? 0, u = Y(this.upperError?.[o]) ?? Y(this.error?.[o]) ?? 0;
202
202
  a ||= l !== 0 || u !== 0, r = Math.min(r, c - l), i = Math.max(i, c + u);
203
203
  }
204
204
  return {
@@ -230,7 +230,7 @@ function ve(e) {
230
230
  return e.x instanceof Float64Array && t.every((t) => t === void 0 || _e(t) && t.length === e.x.length);
231
231
  }
232
232
  function ye(e) {
233
- if (!_e(e.values) || !Number.isFinite(e.sampleRate) || e.sampleRate <= 0 || e.startTime !== void 0 && !Number.isFinite(e.startTime)) return de(/* @__PURE__ */ new Float64Array(), 1, 0);
233
+ if (!_e(e.values) || !Number.isFinite(e.sampleRate) || e.sampleRate <= 0 || e.startTime !== void 0 && !Number.isFinite(e.startTime)) return ue(/* @__PURE__ */ new Float64Array(), 1, 0);
234
234
  let t = e.startTime ?? 0, n = 0;
235
235
  for (let t = 0; t < e.values.length; t += 1) n += +!!Number.isFinite(e.values[t]);
236
236
  let r = e.values instanceof Float32Array ? new Float32Array(n) : new Float64Array(n), i = n === e.values.length ? void 0 : new Uint32Array(n);
@@ -238,7 +238,7 @@ function ye(e) {
238
238
  let a = e.values[t];
239
239
  Number.isFinite(a) && (r[n] = a, i && (i[n] = t), n += 1);
240
240
  }
241
- return de(r, e.sampleRate, t, i);
241
+ return ue(r, e.sampleRate, t, i);
242
242
  }
243
243
  function be(e) {
244
244
  if (!ve(e)) return new ge(/* @__PURE__ */ new Float64Array(), /* @__PURE__ */ new Float64Array());
@@ -1439,6 +1439,7 @@ function zn(e) {
1439
1439
  showPagination: e?.showPagination ?? !0,
1440
1440
  fillIncompleteLastRow: e?.fillIncompleteLastRow ?? !1,
1441
1441
  trackOrder: Rn(e?.trackOrder),
1442
+ hideEmptyTracks: e?.hideEmptyTracks ?? !1,
1442
1443
  trackLines: t
1443
1444
  };
1444
1445
  }
@@ -1528,7 +1529,7 @@ function Xn(e) {
1528
1529
  visibleSeries: [],
1529
1530
  xDomain: [0, 1],
1530
1531
  yDomain: [0, 1]
1531
- }, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? U(Yn(a, s?.id ?? a.id, e), [0, t.width]) : U(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ?? K : K).rescaleX(c), u = e.yDomains?.[a.id], d = or(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains).map((e) => !e.fixed && u ? {
1532
+ }, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? U(Yn(a, s?.id ?? a.id, e), [0, t.width]) : U(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ?? q : q).rescaleX(c), u = e.yDomains?.[a.id], d = or(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains).map((e) => !e.fixed && u ? {
1532
1533
  ...e,
1533
1534
  domain: u
1534
1535
  } : e), f = {
@@ -2128,9 +2129,9 @@ function Er(e, t, n, r) {
2128
2129
  }
2129
2130
  function Dr(e, t, n) {
2130
2131
  let r = t[1] - t[0], i = e[1] - e[0];
2131
- if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return K;
2132
+ if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return q;
2132
2133
  let a = r / i, o = U(t, [0, n]);
2133
- return K.translate(-a * o(e[0]), 0).scale(a);
2134
+ return q.translate(-a * o(e[0]), 0).scale(a);
2134
2135
  }
2135
2136
  //#endregion
2136
2137
  //#region src/components/interaction/viewportDomain.ts
@@ -2154,8 +2155,66 @@ function Or(e) {
2154
2155
  };
2155
2156
  }
2156
2157
  //#endregion
2157
- //#region src/components/interaction/useWaveformViewport.ts
2158
+ //#region src/components/interaction/zoomEventPayload.ts
2158
2159
  function kr(e) {
2160
+ return [...e].sort().join("\0");
2161
+ }
2162
+ function Ar(e, t) {
2163
+ let n = kr(t);
2164
+ return e.find((e) => kr(e.seriesList.map((e) => e.id)) === n);
2165
+ }
2166
+ function jr(e, t, n, r) {
2167
+ e("zoom-intent", r ? {
2168
+ start: t[0],
2169
+ end: t[1],
2170
+ trackIndex: n.index,
2171
+ seriesIds: n.seriesList.map((e) => e.id),
2172
+ gesture: "box"
2173
+ } : {
2174
+ start: t[0],
2175
+ end: t[1],
2176
+ gesture: "box"
2177
+ });
2178
+ }
2179
+ function Mr(e, t, n) {
2180
+ for (let r of n) {
2181
+ let n = Ar(t, r);
2182
+ if (!n) continue;
2183
+ let i = n.xScale.domain(), a = n.yScale.domain();
2184
+ e("zoom-end", {
2185
+ start: i[0],
2186
+ end: i[1],
2187
+ yStart: a[0],
2188
+ yEnd: a[1],
2189
+ trackIndex: n.index,
2190
+ seriesIds: [...r],
2191
+ gesture: "wheel"
2192
+ });
2193
+ }
2194
+ }
2195
+ function Nr(e, t, n) {
2196
+ let r = n.filter((e) => e.hasVisibleSeries);
2197
+ if (r.length === 1) {
2198
+ let n = r[0]?.yScale.domain();
2199
+ e("zoom-end", {
2200
+ start: t[0],
2201
+ end: t[1],
2202
+ yStart: n?.[0],
2203
+ yEnd: n?.[1],
2204
+ gesture: "wheel"
2205
+ });
2206
+ return;
2207
+ }
2208
+ e("zoom-end", {
2209
+ start: t[0],
2210
+ end: t[1],
2211
+ yRanges: Object.fromEntries(r.map((e) => [e.series?.trackId ?? e.series?.id ?? e.id, e.yScale.domain()])),
2212
+ gesture: "wheel"
2213
+ });
2214
+ }
2215
+ //#endregion
2216
+ //#region src/components/interaction/useWaveformViewport.ts
2217
+ function Pr(e) {
2159
2218
  let { props: n, emit: r, selection: i, spacePressed: a, trackLayouts: o, chartTracks: s, initialXDomain: c, innerWidth: l, innerHeight: u, sharedOverlayElement: d, sharedTransform: p, independentTransforms: m, sharedYDomains: h, independentYDomains: g, isZoomMode: _, isPresentationMode: v, editorSeriesOptions: y, resolveInitialTrackDomain: b, canZoomTrack: x, canZoomSharedTracks: S, configureZoom: w, cancelPendingZoom: T, clearHover: E, resolveTrackAtPointer: D } = e, O = C(), k = (e, t) => {
2160
2219
  let n = O.value, r = t?.currentTarget;
2161
2220
  mr(n, e), r && r !== n && mr(r, e);
@@ -2245,6 +2304,7 @@ function kr(e) {
2245
2304
  let e = [...m.value];
2246
2305
  e[t.index] = Dr(h, u, t.width), m.value = e;
2247
2306
  } else p.value = Dr(h, u, l.value);
2307
+ jr(r, h, t, e.independent);
2248
2308
  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()]));
2249
2309
  if (r("zoom-change", h), e.independent) {
2250
2310
  let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
@@ -2303,10 +2363,10 @@ function kr(e) {
2303
2363
  }, V = (e) => {
2304
2364
  if (T(), R(), n.displayMode === "independent" && e !== void 0) {
2305
2365
  let t = [...m.value];
2306
- t[e] = K, m.value = t;
2366
+ t[e] = q, m.value = t;
2307
2367
  let n = { ...g.value };
2308
2368
  delete n[e], g.value = n;
2309
- } else p.value = K, m.value = s.value.map(() => K), h.value = {}, g.value = {};
2369
+ } else p.value = q, m.value = s.value.map(() => q), h.value = {}, g.value = {};
2310
2370
  E(), y.value = [], f(w);
2311
2371
  };
2312
2372
  return {
@@ -2349,7 +2409,7 @@ function kr(e) {
2349
2409
  }
2350
2410
  //#endregion
2351
2411
  //#region src/components/utils/useAnimationFrameThrottle.ts
2352
- function Ar() {
2412
+ function Fr() {
2353
2413
  let e = null, t = null;
2354
2414
  function n(n) {
2355
2415
  t = n, e === null && (e = requestAnimationFrame(() => {
@@ -2378,15 +2438,35 @@ function Ar() {
2378
2438
  }
2379
2439
  //#endregion
2380
2440
  //#region src/components/interaction/useWaveformZoom.ts
2381
- function jr(e) {
2382
- 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 = Ar(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Set(), D, O = () => v.schedule(j), k = (e) => {
2383
- y || m.value || (g(), b = e.transform, x = "wheel", O(), P());
2384
- }, A = (e, t) => {
2385
- y || m.value || (g(), C.set(t, e.transform), w.set(t, "wheel"), O(), P());
2441
+ function Ir(e) {
2442
+ 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 = Fr(), 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) => {
2443
+ if (y || m.value) return;
2444
+ g(), b = e.transform, x = "wheel", I();
2445
+ let t = e.transform.rescaleX(U(c.value, [0, u.value])).domain();
2446
+ n("zoom-intent", {
2447
+ start: t[0],
2448
+ end: t[1],
2449
+ gesture: "wheel"
2450
+ }), k();
2451
+ }, j = (e, t) => {
2452
+ if (y || m.value) return;
2453
+ g(), C.set(t, e.transform), w.set(t, "wheel"), I();
2454
+ let r = s.value.find((e) => e.index === t);
2455
+ if (r) {
2456
+ let i = e.transform.rescaleX(U(h(r), [0, r.width])).domain();
2457
+ n("zoom-intent", {
2458
+ start: i[0],
2459
+ end: i[1],
2460
+ trackIndex: t,
2461
+ seriesIds: r.seriesList.map((e) => e.id),
2462
+ gesture: "wheel"
2463
+ });
2464
+ }
2465
+ k();
2386
2466
  };
2387
- function j() {
2467
+ function M() {
2388
2468
  if (m.value) {
2389
- F();
2469
+ R();
2390
2470
  return;
2391
2471
  }
2392
2472
  if (b) {
@@ -2396,173 +2476,150 @@ function jr(e) {
2396
2476
  n("zoom-change", [t[0], t[1]]);
2397
2477
  }
2398
2478
  if (!C.size) return;
2399
- let e = [...o.value], t = Array.from(C.keys());
2400
- E.clear(), t.forEach((e) => E.add(e)), t.forEach((e) => {
2401
- let t = w.get(e);
2402
- t && T.set(e, t);
2403
- }), C.forEach((t, n) => {
2479
+ let e = [...o.value], t = Array.from(C.keys()), r = new Map(w);
2480
+ C.forEach((t, n) => {
2404
2481
  e[n] = t;
2405
2482
  }), C.clear(), w.clear(), o.value = e;
2406
- let r = new Map(s.value.map((e) => [e.index, e]));
2483
+ let i = new Map(s.value.map((e) => [e.index, e]));
2407
2484
  t.forEach((e) => {
2408
- let t = r.get(e);
2485
+ let t = i.get(e);
2409
2486
  if (!t) return;
2410
- let i = t.xScale.domain();
2411
- n("zoom-change", [i[0], i[1]]);
2487
+ if (r.get(e) === "wheel") {
2488
+ let e = t.seriesList.map((e) => e.id);
2489
+ T.set(kr(e), e);
2490
+ }
2491
+ let a = t.xScale.domain();
2492
+ n("zoom-change", [a[0], a[1]]);
2412
2493
  });
2413
2494
  }
2414
- let M = () => {
2495
+ let N = () => {
2415
2496
  if (t.displayMode === "independent") {
2416
- let e = new Map(s.value.map((e) => [e.index, e]));
2417
- E.forEach((t) => {
2418
- if (T.get(t) !== "wheel") return;
2419
- let r = e.get(t);
2420
- if (!r) return;
2421
- let i = r.xScale.domain(), a = r.yScale.domain();
2422
- n("zoom-end", {
2423
- start: i[0],
2424
- end: i[1],
2425
- yStart: a[0],
2426
- yEnd: a[1],
2427
- trackIndex: t,
2428
- seriesIds: r.seriesList.map((e) => e.id),
2429
- gesture: "wheel"
2430
- });
2431
- }), E.clear(), T.clear();
2497
+ Mr(n, s.value, T.values()), T.clear();
2432
2498
  return;
2433
2499
  }
2434
2500
  if (S !== "wheel") {
2435
2501
  S = null;
2436
2502
  return;
2437
2503
  }
2438
- let e = l.value, r = s.value.filter((e) => e.hasVisibleSeries);
2439
- if (r.length === 1) {
2440
- let t = r[0]?.yScale.domain();
2441
- n("zoom-end", {
2442
- start: e[0],
2443
- end: e[1],
2444
- yStart: t?.[0],
2445
- yEnd: t?.[1],
2446
- gesture: "wheel"
2447
- });
2448
- } else n("zoom-end", {
2449
- start: e[0],
2450
- end: e[1],
2451
- yRanges: Object.fromEntries(r.map((e) => [e.series?.trackId ?? e.series?.id ?? e.id, e.yScale.domain()])),
2452
- gesture: "wheel"
2453
- });
2454
- S = null;
2455
- }, N = () => {
2456
- v.flush(), j(), !(S === "wheel" || T.size) && M();
2504
+ Nr(n, l.value, s.value), S = null;
2505
+ }, P = () => {
2506
+ v.flush(), M(), !(S === "wheel" || T.size) && N();
2507
+ }, F = (e) => {
2508
+ e === O && P();
2457
2509
  };
2458
- function P() {
2459
- D !== void 0 && clearTimeout(D), D = setTimeout(() => {
2460
- D = void 0, v.flush(), j(), M();
2510
+ function I() {
2511
+ E !== void 0 && clearTimeout(E), E = setTimeout(() => {
2512
+ E = void 0, v.flush(), M(), N(), D = !1;
2461
2513
  }, 200);
2462
2514
  }
2463
- let F = () => {
2464
- b = null, x = null, S = null, C.clear(), w.clear(), E.clear(), T.clear(), v.cancel(), D !== void 0 && (clearTimeout(D), D = void 0);
2465
- }, I = () => {
2466
- F(), r.value?.querySelectorAll(".waveform-chart__overlay").forEach((e) => W(e).on(".zoom", null)), _.clear();
2467
- }, L = (e, n) => {
2515
+ let L = () => {
2516
+ E !== void 0 && (v.flush(), M(), D = !0);
2517
+ }, R = () => {
2518
+ b = null, x = null, S = null, C.clear(), w.clear(), T.clear(), v.cancel(), D = !1, E !== void 0 && (clearTimeout(E), E = void 0);
2519
+ }, z = (e = !1) => {
2520
+ O += 1, e || R(), r.value?.querySelectorAll(".waveform-chart__overlay").forEach((e) => W(e).on(".zoom", null)), _.clear();
2521
+ }, B = (e, n) => {
2468
2522
  let r = Math.abs(e[1] - e[0]);
2469
2523
  if (!Number.isFinite(r) || r <= 0) return Rt.MIN_SCALE;
2470
2524
  let i = wr(e, n, t);
2471
2525
  return Math.max(Rt.MIN_SCALE, i > 0 ? r / i : Infinity);
2472
- }, R = (e, n, r, i) => Dr(Er(e.rescaleX(U(n, [0, r])).domain(), n, i, t), n, r), z = (e) => {
2526
+ }, V = (e, n, r, i) => Dr(Er(e.rescaleX(U(n, [0, r])).domain(), n, i, t), n, r), H = (e) => {
2473
2527
  let n = Number(t.minVisiblePoints);
2474
2528
  return kn(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
2475
- }, B = () => {
2529
+ }, G = () => {
2476
2530
  let e = s.value.filter((e) => e.hasVisibleSeries);
2477
- return e.length > 0 && e.every(z);
2478
- }, V = (e, t) => {
2531
+ return e.length > 0 && e.every(H);
2532
+ }, ee = (e, t) => {
2479
2533
  if (e.type !== "wheel") return !1;
2480
2534
  let n = e.deltaY;
2481
- return n < 0 ? t : n > 0 && q(e.currentTarget).k > Rt.MIN_SCALE;
2535
+ return n < 0 ? t : n > 0 && J(e.currentTarget).k > Rt.MIN_SCALE;
2482
2536
  };
2483
2537
  return {
2484
- cancelPendingZoom: F,
2485
- clearZoomBindings: I,
2486
- canZoomTrack: z,
2487
- canZoomSharedTracks: B,
2538
+ cancelPendingZoom: R,
2539
+ clearZoomBindings: z,
2540
+ canZoomTrack: H,
2541
+ canZoomSharedTracks: G,
2488
2542
  configureZoom: () => {
2489
- if (I(), m.value || !t.zoomable || !p.value || !f.value || !s.value.length) return;
2543
+ z(D);
2544
+ let e = O;
2545
+ if (m.value || !t.zoomable || !p.value || !f.value || !s.value.length) return;
2490
2546
  if (t.displayMode === "independent") {
2491
- s.value.forEach((e) => {
2492
- let t = r.value?.querySelector(`[data-independent-overlay-index="${e.index}"]`);
2493
- if (!t) return;
2494
- let n = h(e), i = [e.seriesList], a = G().filter((t) => {
2495
- let n = s.value.find((t) => t.index === e.index) ?? e;
2496
- return V(t, z(n));
2497
- }).scaleExtent([1, L(n, i)]).constrain((t) => R(t, n, e.width, i)).extent([[0, 0], [e.width, e.height]]).translateExtent([[0, 0], [e.width, e.height]]).on("zoom", (t) => A(t, e.index)).on("end", N);
2498
- _.set(e.index, a), y = !0;
2547
+ s.value.forEach((t) => {
2548
+ let n = r.value?.querySelector(`[data-independent-overlay-index="${t.index}"]`);
2549
+ if (!n) return;
2550
+ let i = h(t), a = [t.seriesList], c = K().filter((e) => {
2551
+ let n = s.value.find((e) => e.index === t.index) ?? t;
2552
+ return ee(e, H(n));
2553
+ }).scaleExtent([1, B(i, a)]).constrain((e) => V(e, i, t.width, a)).extent([[0, 0], [t.width, t.height]]).translateExtent([[0, 0], [t.width, t.height]]).on("zoom", (e) => j(e, t.index)).on("end", () => F(e));
2554
+ _.set(t.index, c), y = !0;
2499
2555
  try {
2500
- W(t).call(a).on("dblclick.zoom", null).call(a.transform, o.value[e.index] ?? K);
2556
+ W(n).call(c).on("dblclick.zoom", null).call(c.transform, o.value[t.index] ?? q);
2501
2557
  } finally {
2502
2558
  y = !1;
2503
2559
  }
2504
2560
  });
2505
2561
  return;
2506
2562
  }
2507
- let e = i.value;
2508
- if (!e) return;
2509
- let n = s.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), l = G().filter((e) => V(e, B())).scaleExtent([1, L(c.value, n)]).constrain((e) => R(e, c.value, u.value, n)).extent([[0, 0], [u.value, d.value]]).translateExtent([[0, 0], [u.value, d.value]]).on("zoom", k).on("end", N);
2510
- _.set("shared", l), y = !0;
2563
+ let n = i.value;
2564
+ if (!n) return;
2565
+ let l = s.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), g = K().filter((e) => ee(e, G())).scaleExtent([1, B(c.value, l)]).constrain((e) => V(e, c.value, u.value, l)).extent([[0, 0], [u.value, d.value]]).translateExtent([[0, 0], [u.value, d.value]]).on("zoom", A).on("end", () => F(e));
2566
+ _.set("shared", g), y = !0;
2511
2567
  try {
2512
- W(e).call(l).on("dblclick.zoom", null).call(l.transform, a.value);
2568
+ W(n).call(g).on("dblclick.zoom", null).call(g.transform, a.value);
2513
2569
  } finally {
2514
2570
  y = !1;
2515
2571
  }
2516
- }
2572
+ },
2573
+ prepareForDataChange: L
2517
2574
  };
2518
2575
  }
2519
2576
  //#endregion
2520
2577
  //#region src/components/core/useWaveformChartLifecycle.ts
2521
- function Mr(e) {
2578
+ function Lr(e) {
2522
2579
  return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
2523
2580
  }
2524
- function Nr(e) {
2525
- let { props: t, emit: n, container: r, titleMeasureElement: i, resizeObserver: a, observedWidth: o, observedHeight: s, measuredTitleWidth: c, measuredTitleHeight: l, resolvedTitleText: u, titleAreaReserved: d, titleMeasureStyle: p, spacePressed: m, pointerInsideChart: _, currentPage: v, pageCount: y, pagedTracks: b, gridOptions: x, chartSeries: S, chartTracks: C, trackLayouts: w, innerWidth: T, innerHeight: E, sharedZoomDomain: D, initialXDomain: k, sharedTransform: A, activeInteractionMode: j, hiddenSeriesIdSet: M, internalHiddenSeriesIds: N, independentTransforms: P, independentYDomains: F, resolveInitialTrackDomain: I, annotationInteraction: L, editorSeriesOptions: R, isPresentationMode: z, clearHover: B, cancelAnnotation: V, configureZoom: H, resetViewport: U, cancelViewportDrag: W, cancelPendingHover: ee, clearZoomBindings: te } = e;
2526
- function ne(e) {
2527
- z.value || e.code !== "Space" || !t.pannable || !_.value || Mr(e.target) || (m.value = !0, e.preventDefault());
2581
+ function Rr(e) {
2582
+ let { props: t, emit: n, container: r, titleMeasureElement: i, resizeObserver: a, observedWidth: o, observedHeight: s, measuredTitleWidth: c, measuredTitleHeight: l, resolvedTitleText: u, titleAreaReserved: d, titleMeasureStyle: p, spacePressed: m, pointerInsideChart: _, currentPage: v, pageCount: y, pagedTracks: b, gridOptions: x, chartSeries: S, chartTracks: C, trackLayouts: w, innerWidth: T, innerHeight: E, sharedZoomDomain: D, initialXDomain: k, sharedTransform: A, activeInteractionMode: j, hiddenSeriesIdSet: M, internalHiddenSeriesIds: N, independentTransforms: P, independentYDomains: F, resolveInitialTrackDomain: I, annotationInteraction: L, editorSeriesOptions: R, isPresentationMode: z, clearHover: B, cancelAnnotation: V, configureZoom: H, resetViewport: U, cancelViewportDrag: W, cancelPendingHover: G, clearZoomBindings: ee } = e;
2583
+ function te(e) {
2584
+ z.value || e.code !== "Space" || !t.pannable || !_.value || Lr(e.target) || (m.value = !0, e.preventDefault());
2528
2585
  }
2529
- function re(e) {
2586
+ function ne(e) {
2530
2587
  e.code === "Space" && (m.value = !1);
2531
2588
  }
2532
- function ie(e) {
2589
+ function re(e) {
2533
2590
  let r = Math.min(y.value, Math.max(1, Math.floor(e)));
2534
- r !== v.value && (v.value = r, B(), L.closeContextMenu(), V(), t.displayMode === "independent" && (P.value = b.value.map(() => K), F.value = {}), f(H), n("page-change", r, y.value));
2591
+ r !== v.value && (v.value = r, B(), L.closeContextMenu(), V(), t.displayMode === "independent" && (P.value = b.value.map(() => q), F.value = {}), f(H), n("page-change", r, y.value));
2535
2592
  }
2536
- let G, q;
2537
- function ae() {
2593
+ let K, J;
2594
+ function ie() {
2538
2595
  if (t.displayMode === "independent") {
2539
- G = void 0, q = w.value.map((e) => {
2596
+ K = void 0, J = new Map(w.value.flatMap((e) => {
2540
2597
  let t = e.xScale.domain(), n = I(e);
2541
- return t[1] - t[0] < n[1] - n[0] - 1e-12 ? t : void 0;
2542
- });
2598
+ return t[1] - t[0] < n[1] - n[0] - 1e-12 ? [[kr(e.seriesList.map((e) => e.id)), t]] : [];
2599
+ }));
2543
2600
  return;
2544
2601
  }
2545
- q = void 0;
2602
+ J = void 0;
2546
2603
  let e = D.value, n = k.value;
2547
- G = e[1] - e[0] < n[1] - n[0] - 1e-12 ? [...e] : void 0;
2604
+ K = e[1] - e[0] < n[1] - n[0] - 1e-12 ? [...e] : void 0;
2548
2605
  }
2549
- function oe() {
2606
+ function ae() {
2550
2607
  if (t.displayMode === "independent") {
2551
2608
  let e = P.value;
2552
- P.value = C.value.map((t, n) => e[n] ?? K);
2609
+ P.value = C.value.map((t, n) => e[n] ?? q);
2553
2610
  }
2554
2611
  B(), R.value = [], f(() => {
2555
- if (t.displayMode === "independent" && q) {
2556
- let e = C.value.map(() => K);
2612
+ if (t.displayMode === "independent" && J) {
2613
+ let e = C.value.map(() => q);
2557
2614
  w.value.forEach((n) => {
2558
- let r = q?.[n.index];
2615
+ let r = J?.get(kr(n.seriesList.map((e) => e.id)));
2559
2616
  if (!r) return;
2560
2617
  let i = I(n), a = Er(r, i, [n.seriesList], t);
2561
2618
  e[n.index] = Dr(a, i, n.width);
2562
- }), P.value = e, q = void 0;
2563
- } else if (t.displayMode !== "independent" && G) {
2564
- let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Er(G, e, n, t);
2565
- A.value = Dr(r, e, T.value), G = void 0;
2619
+ }), P.value = e, J = void 0;
2620
+ } else if (t.displayMode !== "independent" && K) {
2621
+ let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Er(K, e, n, t);
2622
+ A.value = Dr(r, e, T.value), K = void 0;
2566
2623
  }
2567
2624
  H();
2568
2625
  });
@@ -2601,7 +2658,7 @@ function Nr(e) {
2601
2658
  }), O(j, () => {
2602
2659
  R.value = [];
2603
2660
  }), O(z, (e) => {
2604
- m.value = !1, e && (W(), te(), B(), L.closeContextMenu(), V());
2661
+ m.value = !1, e && (W(), ee(), B(), L.closeContextMenu(), V());
2605
2662
  }), O(() => S.value.map((e) => e.id).join("\0"), () => {
2606
2663
  if (t.hiddenSeriesIds !== void 0) return;
2607
2664
  let e = new Set(S.value.map((e) => e.id)), n = new Set(Array.from(N.value).filter((t) => e.has(t)));
@@ -2620,7 +2677,7 @@ function Nr(e) {
2620
2677
  let n = L.editorDraft.value;
2621
2678
  n?.mode === "edit" && !e.some((e) => e.id === n.annotation.id) && L.closeEditor();
2622
2679
  }, { deep: !0 });
2623
- function se() {
2680
+ function oe() {
2624
2681
  if (!d.value || !i.value) {
2625
2682
  c.value = 0, l.value = 0;
2626
2683
  return;
@@ -2633,22 +2690,22 @@ function Nr(e) {
2633
2690
  d,
2634
2691
  p
2635
2692
  ], async () => {
2636
- c.value = 0, l.value = 0, await f(), se();
2693
+ c.value = 0, l.value = 0, await f(), oe();
2637
2694
  }, { immediate: !0 }), g(() => {
2638
- window.addEventListener("keydown", ne), window.addEventListener("keyup", re), r.value && (a.value = new ResizeObserver(([e]) => {
2639
- o.value = Math.max(0, e?.contentRect.width ?? 0), s.value = Math.max(0, e?.contentRect.height ?? 0), f(se);
2695
+ window.addEventListener("keydown", te), window.addEventListener("keyup", ne), r.value && (a.value = new ResizeObserver(([e]) => {
2696
+ o.value = Math.max(0, e?.contentRect.width ?? 0), s.value = Math.max(0, e?.contentRect.height ?? 0), f(oe);
2640
2697
  }), a.value.observe(r.value));
2641
2698
  }), h(() => {
2642
- window.removeEventListener("keydown", ne), window.removeEventListener("keyup", re), ee(), a.value?.disconnect(), te(), R.value = [];
2699
+ window.removeEventListener("keydown", te), window.removeEventListener("keyup", ne), G(), a.value?.disconnect(), ee(), R.value = [];
2643
2700
  }), {
2644
- goToPage: ie,
2645
- handleBeforeDataReferenceChange: ae,
2646
- handleDataReferenceChange: oe
2701
+ goToPage: re,
2702
+ handleBeforeDataReferenceChange: ie,
2703
+ handleDataReferenceChange: ae
2647
2704
  };
2648
2705
  }
2649
2706
  //#endregion
2650
2707
  //#region src/components/core/useWaveformData.ts
2651
- function Pr(e) {
2708
+ function zr(e) {
2652
2709
  return ln(e).map(({ source: e, ...t }) => {
2653
2710
  let n = e.metrics(t.errorBar.visible);
2654
2711
  return {
@@ -2661,45 +2718,45 @@ function Pr(e) {
2661
2718
  };
2662
2719
  });
2663
2720
  }
2664
- function Fr(e, t, n) {
2665
- let r = C(Pr(e()));
2721
+ function Br(e, t, n) {
2722
+ let r = C(zr(e()));
2666
2723
  return O(e, (e) => {
2667
- t(), r.value = Pr(e), n();
2724
+ t(), r.value = zr(e), n();
2668
2725
  }), r;
2669
2726
  }
2670
2727
  //#endregion
2671
2728
  //#region wasm/pkg/waveform_sampling_wasm.js
2672
- function Ir(e, t) {
2673
- let n = Xr(e, $.__wbindgen_malloc), r = ni, i = Xr(t, $.__wbindgen_malloc), a = ni, o = $.calculate_range(n, r, i, a);
2674
- if (o[3]) throw Zr(o[2]);
2675
- var s = Vr(o[0], o[1]).slice();
2729
+ function Vr(e, t) {
2730
+ let n = ti(e, $.__wbindgen_malloc), r = si, i = ti(t, $.__wbindgen_malloc), a = si, o = $.calculate_range(n, r, i, a);
2731
+ if (o[3]) throw ni(o[2]);
2732
+ var s = Kr(o[0], o[1]).slice();
2676
2733
  return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
2677
2734
  }
2678
- function Lr(e, t, n, r) {
2679
- let i = Xr(e, $.__wbindgen_malloc), a = ni, o = Xr(t, $.__wbindgen_malloc), s = ni, c = $.find_visible_range(i, a, o, s, n, r);
2680
- if (c[3]) throw Zr(c[2]);
2681
- var l = Hr(c[0], c[1]).slice();
2735
+ function Hr(e, t, n, r) {
2736
+ let i = ti(e, $.__wbindgen_malloc), a = si, o = ti(t, $.__wbindgen_malloc), s = si, c = $.find_visible_range(i, a, o, s, n, r);
2737
+ if (c[3]) throw ni(c[2]);
2738
+ var l = qr(c[0], c[1]).slice();
2682
2739
  return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
2683
2740
  }
2684
- function Rr(e, t, n, r) {
2685
- let i = Xr(e, $.__wbindgen_malloc), a = ni, o = Xr(t, $.__wbindgen_malloc), s = ni, c = $.sample_aggregates(i, a, o, s, n, r);
2686
- if (c[3]) throw Zr(c[2]);
2687
- var l = Vr(c[0], c[1]).slice();
2741
+ function Ur(e, t, n, r) {
2742
+ let i = ti(e, $.__wbindgen_malloc), a = si, o = ti(t, $.__wbindgen_malloc), s = si, c = $.sample_aggregates(i, a, o, s, n, r);
2743
+ if (c[3]) throw ni(c[2]);
2744
+ var l = Kr(c[0], c[1]).slice();
2688
2745
  return $.__wbindgen_free(c[0], c[1] * 8, 8), l;
2689
2746
  }
2690
- function zr(e, t, n, r) {
2691
- let i = Xr(e, $.__wbindgen_malloc), a = ni, o = Xr(t, $.__wbindgen_malloc), s = ni, c = $.sample_indexes(i, a, o, s, n, r);
2692
- if (c[3]) throw Zr(c[2]);
2693
- var l = Hr(c[0], c[1]).slice();
2747
+ function Wr(e, t, n, r) {
2748
+ let i = ti(e, $.__wbindgen_malloc), a = si, o = ti(t, $.__wbindgen_malloc), s = si, c = $.sample_indexes(i, a, o, s, n, r);
2749
+ if (c[3]) throw ni(c[2]);
2750
+ var l = qr(c[0], c[1]).slice();
2694
2751
  return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
2695
2752
  }
2696
- function Br() {
2753
+ function Gr() {
2697
2754
  return {
2698
2755
  __proto__: null,
2699
2756
  "./waveform_sampling_wasm_bg.js": {
2700
2757
  __proto__: null,
2701
2758
  __wbindgen_cast_0000000000000001: function(e, t) {
2702
- return Gr(e, t);
2759
+ return Xr(e, t);
2703
2760
  },
2704
2761
  __wbindgen_init_externref_table: function() {
2705
2762
  let e = $.__wbindgen_externrefs, t = e.grow(4);
@@ -2708,52 +2765,52 @@ function Br() {
2708
2765
  }
2709
2766
  };
2710
2767
  }
2711
- function Vr(e, t) {
2712
- return e >>>= 0, Wr().subarray(e / 8, e / 8 + t);
2713
- }
2714
- function Hr(e, t) {
2715
- return e >>>= 0, qr().subarray(e / 4, e / 4 + t);
2716
- }
2717
- var Ur = null;
2718
- function Wr() {
2719
- return (Ur === null || Ur.byteLength === 0) && (Ur = new Float64Array($.memory.buffer)), Ur;
2768
+ function Kr(e, t) {
2769
+ return e >>>= 0, Yr().subarray(e / 8, e / 8 + t);
2720
2770
  }
2721
- function Gr(e, t) {
2722
- return e >>>= 0, ti(e, t);
2723
- }
2724
- var Kr = null;
2725
- function qr() {
2726
- return (Kr === null || Kr.byteLength === 0) && (Kr = new Uint32Array($.memory.buffer)), Kr;
2771
+ function qr(e, t) {
2772
+ return e >>>= 0, Qr().subarray(e / 4, e / 4 + t);
2727
2773
  }
2728
2774
  var Jr = null;
2729
2775
  function Yr() {
2730
- return (Jr === null || Jr.byteLength === 0) && (Jr = new Uint8Array($.memory.buffer)), Jr;
2776
+ return (Jr === null || Jr.byteLength === 0) && (Jr = new Float64Array($.memory.buffer)), Jr;
2731
2777
  }
2732
2778
  function Xr(e, t) {
2779
+ return e >>>= 0, oi(e, t);
2780
+ }
2781
+ var Zr = null;
2782
+ function Qr() {
2783
+ return (Zr === null || Zr.byteLength === 0) && (Zr = new Uint32Array($.memory.buffer)), Zr;
2784
+ }
2785
+ var $r = null;
2786
+ function ei() {
2787
+ return ($r === null || $r.byteLength === 0) && ($r = new Uint8Array($.memory.buffer)), $r;
2788
+ }
2789
+ function ti(e, t) {
2733
2790
  let n = t(e.length * 8, 8) >>> 0;
2734
- return Wr().set(e, n / 8), ni = e.length, n;
2791
+ return Yr().set(e, n / 8), si = e.length, n;
2735
2792
  }
2736
- function Zr(e) {
2793
+ function ni(e) {
2737
2794
  let t = $.__wbindgen_externrefs.get(e);
2738
2795
  return $.__externref_table_dealloc(e), t;
2739
2796
  }
2740
- var Qr = new TextDecoder("utf-8", {
2797
+ var ri = new TextDecoder("utf-8", {
2741
2798
  ignoreBOM: !0,
2742
2799
  fatal: !0
2743
2800
  });
2744
- Qr.decode();
2745
- var $r = 2146435072, ei = 0;
2746
- function ti(e, t) {
2747
- return ei += t, ei >= $r && (Qr = new TextDecoder("utf-8", {
2801
+ ri.decode();
2802
+ var ii = 2146435072, ai = 0;
2803
+ function oi(e, t) {
2804
+ return ai += t, ai >= ii && (ri = new TextDecoder("utf-8", {
2748
2805
  ignoreBOM: !0,
2749
2806
  fatal: !0
2750
- }), Qr.decode(), ei = t), Qr.decode(Yr().subarray(e, e + t));
2807
+ }), ri.decode(), ai = t), ri.decode(ei().subarray(e, e + t));
2751
2808
  }
2752
- var ni = 0, $;
2753
- function ri(e, t) {
2754
- return $ = e.exports, Ur = null, Kr = null, Jr = null, $.__wbindgen_start(), $;
2809
+ var si = 0, $;
2810
+ function ci(e, t) {
2811
+ return $ = e.exports, Jr = null, Zr = null, $r = null, $.__wbindgen_start(), $;
2755
2812
  }
2756
- async function ii(e, t) {
2813
+ async function li(e, t) {
2757
2814
  if (typeof Response == "function" && e instanceof Response) {
2758
2815
  if (typeof WebAssembly.instantiateStreaming == "function") try {
2759
2816
  return await WebAssembly.instantiateStreaming(e, t);
@@ -2779,17 +2836,17 @@ async function ii(e, t) {
2779
2836
  return !1;
2780
2837
  }
2781
2838
  }
2782
- async function ai(e) {
2839
+ async function ui(e) {
2783
2840
  if ($ !== void 0) return $;
2784
2841
  e !== void 0 && (Object.getPrototypeOf(e) === Object.prototype ? {module_or_path: e} = e : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), e === void 0 && (e = new URL("data:application/wasm;base64,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kkA7AAAgAkEEayECIAVB/6ziBEsNAAsLIABBCUsEQCACQQJrIgIgBkEGamogACAAQf//A3FB5ABuIgBB5ABsa0H//wNxQQF0LwDSkkA7AAALQQAgBCAAG0UEQCACQQFrIgIgBkEGamogAEEBdC0A05JAOgAACwJ/IAZBBmogAmohB0EAIQRBK0GAgMQAIAEoAggiA0GAgIABcSIAGyEIIANBgICABHFFRSEKAkBBCiACayILIABBFXZqIgAgAS8BDCIFSQRAAkACQCADQYCAgAhxRQRAIAUgAGshBUEAIQACQAJAAkAgA0EddkEDcUEBaw4DAAEAAgsgBSEADAELIAVB/v8DcUEBdiEACyADQf///wBxIQkgASgCBCEDIAEoAgAhAQNAIARB//8DcSAAQf//A3FPDQJBASECIARBAWohBCABIAkgAygCEBEBAEUNAAsMBAsgASABKQIIIgynQYCAgP95cUGwgICAAnI2AghBASECIAEoAgAiAyABKAIEIgkgCCAKECwNAyAFIABrQf//A3EhAANAIARB//8DcSAATw0CIARBAWohBCADQTAgCSgCEBEBAEUNAAsMAwtBASECIAEgAyAIIAoQLA0CIAEgByALIAMoAgwRAgANAkEAIQQgBSAAa0H//wNxIQADQCAEQf//A3EiBSAASSECIAAgBU0NAyAEQQFqIQQgASAJIAMoAhARAQBFDQALDAILIAMgByALIAkoAgwRAgANASABIAw3AghBAAwCC0EBIQIgASgCACIAIAEoAgQiASAIIAoQLA0AIAAgByALIAEoAgwRAgAhAgsgAgsgBkEQaiQAC4gCAQZ/IAAoAggiBCECAn9BASABQYABSQ0AGkECIAFBgBBJDQAaQQNBBCABQYCABEkbCyIGIAAoAgAgBGtLBH8gACAEIAYQHSAAKAIIBSACCyAAKAIEaiECAkAgAUGAAU8EQCABQT9xQYB/ciEFIAFBBnYhAyABQYAQSQRAIAIgBToAASACIANBwAFyOgAADAILIAFBDHYhByADQT9xQYB/ciEDIAFB//8DTQRAIAIgBToAAiACIAM6AAEgAiAHQeABcjoAAAwCCyACIAU6AAMgAiADOgACIAIgB0E/cUGAf3I6AAEgAiABQRJ2QXByOgAADAELIAIgAToAAAsgACAEIAZqNgIIQQALzwIBCH9BAEHo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gIACcSABQYCABElyDQBBgIAEIQYgAEGAgARxIAFBgIAISXINAEGAgAghBiAAQYCACHEgAUGAgBBJcg0AQYCAECEGIABBgIAQcSABQYCAIElyDQBBgIAgIQYgAEGAgCBxIAFBgIDAAElyDQBBgIDAACEGIABBgIDAAHEgAUGAgIABSXINAEGAgIABIQYgAEGAgIABcSABQYCAgAJJcg0AQYCAgAIhBiAAQYCAgAJxIAFBgICABElyDQBBgICABCEGIABBgICABHEgAUGAgIAISXINAEGAgIAIIQYgAEGAgIAIcSABQYCAgBBJcg0AQYCAgBAhBiAAQYCAgBBxIAFBgICAIElyDQBBgICAICEGIABBgICAIHEgAUGAgIDAAElyDQBBgICAwAAhBiAAQYCAgMAAcSABQYCAgIABSXINAEGAgICAASEGIABBgICAgAFxIAFBgICAgAJJcg0AQYCAgIACIQYgAEGAgICAAnEgAUGAgICABElyDQBBgICAgAQhBiAAQYCAgIAEcSABQQBOcg0AEEoACyAAIQEgACEDAkAgBmgiCEUNAAJAIAggC0kEQCAQIAhBGGxqIgEoAgBBgICAgHhHDQEMDAsgCCALQbyJwAAQJgALIAAgCHYiAyABKAIIIghJBEAgASgCFCIIIANLBEAgA0ECdCIIIAEoAhBqKAIAIQMgASgCBCAIaigCACEBDAILIAMgCEHcicAAECYACyADIAhBzInAABAmAAsgASAMTw0BIAcgDE8NAiAHIAEgDyABQQN0aisDACInIA8gB0EDdGorAwAiKGNFIAEgB08gJyAoYnJxGyEHIAMgDE8NAyAEIAxPDQQgBCADIA8gA0EDdGorAwAiJyAPIARBA3RqKwMAIihkRSADIARPICcgKGJycRshBCAAIAZqIgAgI0kNAAsCQAJAAkACQAJAIBZBAWsOBgMAAAECBAALQZyKwABBKEHEisAAED4ACyAFKAIUIgAEQCAFKAIQIABBAnRqQQRrKAIAIAdGDQkLIAUoAgwgAEYEQCAFQQxqECcLIAUoAhAgAEECdGogBzYCACAFIABBAWo2AhQMCAsgBSgCFCIABEAgBSgCECAAQQJ0akEEaygCACAERg0ICyAFKAIMIABGBEAgBUEMahAnCyAFKAIQIABBAnRqIAQ2AgAgBSAAQQFqNgIUDAcLIAUgBDYC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IQ4gAyEKIwBB8ABrIgckAAJ/AkAgBL0iEEL///////////8Ag0KAgICAgICA+P8AWg0AIAW9IhFC////////////AIMiD1AgEUIAUyIIIA9CAX1C/////////wdUcXIgD0KAgICAgICA+P8AUXIgD0KAgICAgICA+P8AVXIgD0KAgICAgICACH1CgICAgICAgPD/AFQgCHFyDQAgAUEDdCELQQAhCAJAA0AgCCALRg0BIAAgCGogCEEIaiEIKQMAQv///////////wCDQv/////////3/wBYDQALQcmIwABBLBA/rSEQIAdBGGohCUGAgICAeAwCCwJAIApFDQAgASAKRgRAIAFBAWohCSACIQgDQCAJQQFrIglBAkkNAiAIKAIAIQsgCyAIQQRqIggoAgBNDQALC0GciMAAQS0QP60hECAHQRhqIQlBgICAgHgMAgsCQCABRQRAQQghCwwBCyABQQN0IghBCBBLIgsEQCAIRQ0BIAsgACAI/AoAAAwBC0EIIAgQPQALAkACQCAKRQRAQYCAgIB4IQoMAQsgCkECdCIJQQQQSyIIRQ0BIAkEQCAIIAIgCfwKAAALIAitIAqtQiCGhCEPC0QAAAAAAADwPyAFoyEEIAdBADYCGCAHQRBqIQlBAAwCC0EEIAkQPQALQfWIwABBNhA/rSEQIAdBGGohCUGAgICAeAshCCAJIAg2AgACfyAHKAIYIghBgICAgHhGBEBBASEJIBCnDAELIAcgBygCEDYCaCAHQQQ2AmQgByAINgJgIAdBADYCXCAHQoCAgIDAADcCVCAHIAE2AlAgByALNgJMIAcgATYCSCAHIA83A0AgByAKNgI8IAdBgICAgHg2AjAgByAGNgIsIAdBADYCKCAHIAQ5AyAgByAQNwMYIAdBCGogB0EYahAXIAcoAgghCSAHKAIMCyEGIA4gCTYCACAOIAY2AgQgB0HwAGokACANKAIMIQogDSgCCCEGIAMEQCACIANBAnRBBBBHCyABBEAgACABQQN0QQgQRwsgDCAGQQFxIgA2AgggDCAKQQAgABs2AgQgDEEAIAogABs2AgAgDUEQaiQAIAwoAgAgDCgCBCAMKAIIIAxBEGokAAuBIAMmfwV8AX4jAEEQayIPJAAjAEFAaiIKJAAgCiAENgIoIAogAzYCJCAKIAI2AiAgCiABNgIcIAogADYC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ZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAASGNhbm5vdCBhY2Nlc3MgYSBUaHJlYWQgTG9jYWwgU3RvcmFnZSB2YWx1ZSBkdXJpbmcgb3IgYWZ0ZXIgZGVzdHJ1Y3Rpb246IMAAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3NoYXJlZC9zbWFsbHNvcnQucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3N0YWJsZS9xdWlja3NvcnQucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExOC9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy81OTgwNzYxNmUxZmEyNTQwNzI0YmZiYWMxNGQ3OTc2ZDdlNGEzODYwL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjExL3NyYy9kbG1hbGxvYy5ycwBzcmMvbGliLnJzAAAAAA4DEAAKAAAA0gAAABkAAAAOAxAACgAAANoAAAAaAAAADgMQAAoAAADaAAAAPQAAAA4DEAAKAAAAyQAAAB0AAAAOAxAACgAAAKoAAAAQAAAADgMQAAoAAACqAAAAIgAAAA4DEAAKAAAArQAAACIAAAAOAxAACgAAABcCAAAcAAAADgMQAAoAAAALAgAAJgAAAA4DEAAKAAAA8gEAACoAAAAOAxAACgAAAPgBAAAqAAAADgMQAAoAAAD+AQAAMgAAAA4DEAAKAAAAkgEAAA8AAAAOAxAACgAAAJIBAAAsAAAADgMQAAoAAACNAQAADwAAAA4DEAAKAAAAjQEAACwAAABzb3VyY2UgaW5kZXhlcyBtdXN0IGJlIGVtcHR5IG9yIG5vbmRlY3JlYXNpbmdzYW1wbGUgdmFsdWVzIG11c3QgYmUgZmluaXRlIGFuZCBhZGRyZXNzYWJsZXNhbXBsZSBtZXRhZGF0YSBtdXN0IGJlIGZpbml0ZSBhbmQgc2FtcGxlUmF0ZSBwb3NpdGl2ZQAOAxAACgAAABYBAAAkAAAADgMQAAoAAAAuAgAAMAAAAA4DEAAKAAAALwIAAB8AAAAOAxAACgAAAC8CAAA1AAAADgMQAAoAAADWAQAAIAAAAA4DEAAKAAAAsQEAAC0AAAAOAxAACgAAALIBAAAtAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZQ4DEAAKAAAAmgIAABYAAABzdHJhdGVneSBkb2VzIG5vdCByZXR1cm4gc291cmNlIGluZGV4ZXNzdHJhdGVneSBkb2VzIG5vdCByZXR1cm4gYWdncmVnYXRlIHZhbHVlc3JlZ2lzdGVyZWQgZGF0YXNldHMgbXVzdCBjb250YWluIGZpbml0ZSBjb29yZGluYXRlc3ggYW5kIHkgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aA4DEAAKAAAAdgEAABIAAAAOAxAACgAAAHMBAAA8AAAADgMQAAoAAABMAgAAHAAAAA4DEAAKAAAATwIAACwAAAAOAxAACgAAAFACAAAdAAAADgMQAAoAAABRAgAAHQAAAA4DEAAKAAAAUgIAACUAAAABAAAADgMQAAoAAACUAAAAEgAAAA4DEAAKAAAAggAAABAAAAAOAxAACgAAAIIAAAAiAAAADgMQAAoAAACFAAAAIgAAAA4DEAAKAAAAAQEAAB0AAAAOAxAACgAAABwDAAAlAAAADgMQAAoAAABJAAAAQwAAAA4DEAAKAAAALQMAAA4AAAAOAxAACgAAACYDAAAnAAAAZGF0YXNldCBoYW5kbGUgd2FzIG5vdCBmb3VuZA4DEAAKAAAAPwMAACUAAAAOAxAACgAAAAoDAAAlAAAADgMQAAoAAABRAwAAJQAAANoBEABPAAAA3wEAABkAAABtaWQgPiBsZW4AAAB6ARAAXwAAAE0AAAAfAAAAegEQAF8AAABHAAAAFwAAAA4DEAAKAAAAfwEAABoAAAAOAxAACgAAAPMAAAAWAAAADgMQAAoAAABJAAAAQwAAAA4DEAAKAAAASQAAAEMAAAAqAhAAZwAAAHwAAAARAAAAKgIQAGcAAACJAAAAEQAAAAUAAAAMAAAABAAAAAYAAAAHAAAACAAAAAAAAAAIAAAABAAAAAkAAAAKAAAACwAAAAwAAAANAAAAEAAAAAQAAAAOAAAADwAAABAAAAARAAAAbV3L1ixQ62N4QaZXcRuLuRWiXFU0VQfUU3itgVHwo/dhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAADjAhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAA4wIQACoAAAC3BAAADQAAAAAAAAAIAAAABAAAABIAAABBY2Nlc3NFcnJvcgAFAAAADAAAAAQAAAATAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAACSAhAAUAAAABwAAAAFAAAAfSB9Y2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZTAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5YXR0ZW1wdCB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciB3aXRoIGEgZGl2aXNvciBvZiB6ZXJvdXNlci1wcm92aWRlZCBjb21wYXJpc29uIGZ1bmN0aW9uIGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgYSB0b3RhbCBvcmRlcgAaARAAXwAAAFwDAAAFAAAAUmVmQ2VsbCBhbHJlYWR5IG11dGFibHkgYm9ycm93ZWRSZWZDZWxsIGFscmVhZHkgYm9ycm93ZWQAQfCVwAALAQgAQYCWwAALAQQAfAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuOTUuMCAoNTk4MDc2MTZlIDIwMjYtMDQtMTQpBndhbHJ1cwYwLjI2LjEMd2FzbS1iaW5kZ2VuEzAuMi4xMTggKDc1M2JiN2ZmNCkAaw90YXJnZXRfZmVhdHVyZXMGKw9tdXRhYmxlLWdsb2JhbHMrE25vbnRyYXBwaW5nLWZwdG9pbnQrC2J1bGstbWVtb3J5KwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVl", "" + import.meta.url));
2785
- let t = Br();
2842
+ let t = Gr();
2786
2843
  (typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
2787
- let { instance: n, module: r } = await ii(await e, t);
2788
- return ri(n, r);
2844
+ let { instance: n, module: r } = await li(await e, t);
2845
+ return ci(n, r);
2789
2846
  }
2790
2847
  //#endregion
2791
2848
  //#region src/core/wasmSampling.ts
2792
- var oi = {
2849
+ var di = {
2793
2850
  none: 0,
2794
2851
  peak: 1,
2795
2852
  lttb: 2,
@@ -2798,24 +2855,24 @@ var oi = {
2798
2855
  max: 5,
2799
2856
  minmax: 6,
2800
2857
  sum: 7
2801
- }, si;
2802
- function ci(e, t) {
2858
+ }, fi;
2859
+ function pi(e, t) {
2803
2860
  return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
2804
2861
  }
2805
- function li(e) {
2862
+ function mi(e) {
2806
2863
  if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
2807
2864
  }
2808
- function ui(e) {
2809
- return si ??= Promise.resolve(ai(e)).then(() => void 0), si;
2865
+ function hi(e) {
2866
+ return fi ??= Promise.resolve(ui(e)).then(() => void 0), fi;
2810
2867
  }
2811
- async function di(e) {
2812
- li(e), await ui();
2813
- let t = ci(e.targetPointCount, e.x.length), n = oi[e.strategy];
2868
+ async function gi(e) {
2869
+ mi(e), await hi();
2870
+ let t = pi(e.targetPointCount, e.x.length), n = di[e.strategy];
2814
2871
  if (e.strategy !== "average" && e.strategy !== "sum") return {
2815
2872
  kind: "source-indexes",
2816
- sourceIndexes: zr(e.x, e.y, n, t)
2873
+ sourceIndexes: Wr(e.x, e.y, n, t)
2817
2874
  };
2818
- let r = Rr(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
2875
+ let r = Ur(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
2819
2876
  for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
2820
2877
  return {
2821
2878
  kind: "aggregates",
@@ -2823,24 +2880,34 @@ async function di(e) {
2823
2880
  y: a
2824
2881
  };
2825
2882
  }
2826
- async function fi(e, t) {
2883
+ async function _i(e, t) {
2827
2884
  if (e.length !== t.length) throw Error("x and y must have the same length");
2828
- await ui();
2829
- let n = Ir(e, t);
2885
+ await hi();
2886
+ let n = Vr(e, t);
2830
2887
  return n.length === 4 ? {
2831
2888
  x: [n[0], n[1]],
2832
2889
  y: [n[2], n[3]]
2833
2890
  } : void 0;
2834
2891
  }
2835
- async function pi(e, t, n) {
2892
+ async function vi(e, t, n) {
2836
2893
  if (e.length !== t.length) throw Error("x and y must have the same length");
2837
- await ui();
2838
- let r = Lr(e, t, n[0], n[1]);
2894
+ await hi();
2895
+ let r = Hr(e, t, n[0], n[1]);
2839
2896
  return [r[0], r[1]];
2840
2897
  }
2841
2898
  //#endregion
2899
+ //#region src/components/core/trackPagination.ts
2900
+ var yi = (e, t) => t ? e.filter((e) => e.series.length > 0) : e, bi = (e, t, n, r, i) => {
2901
+ let a = t?.[i];
2902
+ if (a !== void 0) return a;
2903
+ if (e !== void 0) return n === 1 ? e : typeof e == "number" ? e + r : `${e}-${r + 1}`;
2904
+ }, xi = (e, t, n) => (r) => {
2905
+ let i = n(), a = i.findIndex((e) => e.id === r);
2906
+ return bi(e(), t(), i.length, a >= 0 ? a : 0, r);
2907
+ };
2908
+ //#endregion
2842
2909
  //#region src/components/core/useWaveformLayout.ts
2843
- function mi(e) {
2910
+ function Si(e) {
2844
2911
  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) => ({
2845
2912
  ...e,
2846
2913
  color: e.color ?? (t === 0 ? n.lineColor : Vt[t % Vt.length])
@@ -2863,44 +2930,44 @@ function mi(e) {
2863
2930
  yDomain: o.length ? ht(o) : [0, 1]
2864
2931
  };
2865
2932
  });
2866
- }), v = t(() => Tn(n.rendering)), y = t(() => Vn(_.value.length, g.value)), b = t(() => Hn(_.value, i.value, g.value)), x = t(() => {
2867
- let e = b.value.filter((e) => e.series.length > 0);
2868
- return g.value.fillIncompleteLastRow && e.length > 0 ? e : b.value;
2869
- }), S = t(() => {
2933
+ }), v = t(() => Tn(n.rendering)), y = t(() => yi(_.value, g.value.hideEmptyTracks)), b = t(() => Vn(y.value.length, g.value)), x = t(() => Hn(y.value, i.value, g.value)), S = t(() => {
2934
+ let e = x.value.filter((e) => e.series.length > 0);
2935
+ return g.value.fillIncompleteLastRow && e.length > 0 ? e : x.value;
2936
+ }), C = t(() => {
2870
2937
  let e = _.value.filter((e) => e.visibleSeries.length > 0).flatMap((e) => or(e, n.overlayMode, n.yDomain, n.yDomains)).map((e) => sr(e.domain, n.axes?.y?.nice !== !1, void 0, e.seriesList[0]?.unit, n.axes?.y?.splitNumber).tickTextWidth), t = Math.max(7, ...e), r = t + 7 + 4, i = -(7 + t + 0 + 12 / 2);
2871
2938
  return {
2872
2939
  tickClearance: r,
2873
2940
  fullClearance: t + 7 + 0 + 12 + 4,
2874
2941
  labelCenterX: i
2875
2942
  };
2876
- }), C = t(() => _.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), w = t(() => _.value.some((e) => e.visibleSeries.length > 0)), T = t(() => Math.max(Lt.left, C.value ? S.value.fullClearance : w.value ? S.value.tickClearance : 0)), E = t(() => cr(x.value.filter((e) => e.visibleSeries.length > 0), n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber, n.axes?.y?.nice !== !1)), D = t(() => n.overlayMode === "multi-axis" ? Math.max(T.value, E.value.clearance.left) : T.value), O = t(() => n.overlayMode === "multi-axis" ? Math.max(Lt.right, E.value.clearance.right) : Lt.right), k = t(() => Math.max(0, o.value - D.value - O.value)), A = t(() => {
2877
- let e = Un(n.displayMode), t = g.value.columnCount, r = t > 1, i = Math.max(e, S.value.fullClearance), a = Math.max(e, S.value.tickClearance), o = (k.value - i * Math.max(0, t - 1)) / t >= 120;
2943
+ }), w = t(() => _.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), T = t(() => _.value.some((e) => e.visibleSeries.length > 0)), E = t(() => Math.max(Lt.left, w.value ? C.value.fullClearance : T.value ? C.value.tickClearance : 0)), D = t(() => cr(S.value.filter((e) => e.visibleSeries.length > 0), n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber, n.axes?.y?.nice !== !1)), O = t(() => n.overlayMode === "multi-axis" ? Math.max(E.value, D.value.clearance.left) : E.value), k = t(() => n.overlayMode === "multi-axis" ? Math.max(Lt.right, D.value.clearance.right) : Lt.right), A = t(() => Math.max(0, o.value - O.value - k.value)), j = t(() => {
2944
+ let e = Un(n.displayMode), t = g.value.columnCount, r = t > 1, i = Math.max(e, C.value.fullClearance), a = Math.max(e, C.value.tickClearance), o = (A.value - i * Math.max(0, t - 1)) / t >= 120;
2878
2945
  return {
2879
- horizontalGap: n.overlayMode === "multi-axis" && r && w.value ? Math.max(e, E.value.clearance.left + E.value.clearance.right) : r && w.value ? C.value && o ? i : a : e,
2880
- hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && C.value && !o
2946
+ horizontalGap: n.overlayMode === "multi-axis" && r && T.value ? Math.max(e, D.value.clearance.left + D.value.clearance.right) : r && T.value ? w.value && o ? i : a : e,
2947
+ hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && w.value && !o
2881
2948
  };
2882
- }), j = t(() => h.value.length > 0), M = t(() => k.value > 0 && s.value > 0), N = t(() => n.xLabel ?? `时间(${n.timeUnit})`), P = t(() => n.interactionMode), F = t(() => P.value !== "annotation"), I = t(() => {
2949
+ }), M = t(() => h.value.length > 0), N = t(() => A.value > 0 && s.value > 0), P = t(() => n.xLabel ?? `时间(${n.timeUnit})`), F = t(() => n.interactionMode), I = t(() => F.value !== "annotation"), L = t(() => {
2883
2950
  let e = [];
2884
2951
  return _.value.forEach((t) => {
2885
2952
  t.visibleSeries.length && e.push(t.xDomain[0], t.xDomain[1]);
2886
2953
  }), ht(e);
2887
- }), L = t(() => {
2954
+ }), R = t(() => {
2888
2955
  let e = n.initialXDomain;
2889
- return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? Jn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0) : Jn(I.value, n.xDomainStrategy);
2890
- }), R = (e) => {
2956
+ return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? Jn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0) : Jn(L.value, n.xDomainStrategy);
2957
+ }), z = (e) => {
2891
2958
  let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
2892
2959
  return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ? Jn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0) : Jn(ht(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy);
2893
- }, z = t(() => l.value.rescaleX(U(L.value, [0, k.value])).domain()), B = t(() => Wn(k.value, s.value, g.value, n.displayMode, x.value.map(Boolean), A.value.horizontalGap).map((e, t) => ({
2960
+ }, B = t(() => l.value.rescaleX(U(R.value, [0, A.value])).domain()), V = t(() => Wn(A.value, s.value, g.value, n.displayMode, S.value.map(Boolean), j.value.horizontalGap).map((e, t) => ({
2894
2961
  ...e,
2895
- series: x.value[t]
2896
- }))), V = t(() => Xn({
2897
- cells: B.value,
2962
+ series: S.value[t]
2963
+ }))), H = t(() => Xn({
2964
+ cells: V.value,
2898
2965
  grid: g.value,
2899
2966
  displayMode: n.displayMode,
2900
2967
  overlayMode: n.overlayMode,
2901
2968
  independentTransforms: u.value,
2902
- sharedZoomDomain: z.value,
2903
- initialXDomain: n.initialXDomain ? L.value : void 0,
2969
+ sharedZoomDomain: B.value,
2970
+ initialXDomain: n.initialXDomain ? R.value : void 0,
2904
2971
  initialXDomains: n.initialXDomains,
2905
2972
  xDomainStrategy: n.xDomainStrategy,
2906
2973
  fixedYDomain: n.yDomain,
@@ -2915,39 +2982,40 @@ function mi(e) {
2915
2982
  yAxisNice: n.axes?.y?.nice,
2916
2983
  rendering: v.value,
2917
2984
  linePointOverrides: m?.value,
2918
- hideSecondaryLabels: c.value || A.value.hideSecondaryLabels,
2919
- yAxisLabelX: E.value.slots.find((e) => e.side === "left" && e.sideIndex === 0)?.labelOffset ?? S.value.labelCenterX,
2920
- yAxisSlots: n.overlayMode === "multi-axis" ? E.value.slots : void 0,
2921
- showCompactEmptyTracks: n.displayMode === "compact" && j.value
2922
- })), H = (e) => e.seriesList.map((t) => ({
2985
+ hideSecondaryLabels: c.value || j.value.hideSecondaryLabels,
2986
+ yAxisLabelX: D.value.slots.find((e) => e.side === "left" && e.sideIndex === 0)?.labelOffset ?? C.value.labelCenterX,
2987
+ yAxisSlots: n.overlayMode === "multi-axis" ? D.value.slots : void 0,
2988
+ showCompactEmptyTracks: n.displayMode === "compact" && M.value
2989
+ })), W = (e) => e.seriesList.map((t) => ({
2923
2990
  ...e,
2924
2991
  series: t,
2925
2992
  yScale: e.seriesPaths.find((e) => e.series.id === t.id)?.yScale ?? e.yScale
2926
- })), W = (e, t) => e.seriesPaths.find((e) => e.series.id === t)?.yScale ?? e.yScale, ee = t(() => V.value.flatMap(H));
2993
+ })), G = (e, t) => e.seriesPaths.find((e) => e.series.id === t)?.yScale ?? e.yScale, ee = t(() => H.value.flatMap(W));
2927
2994
  return {
2928
2995
  chartSeries: h,
2929
2996
  chartTracks: _,
2997
+ pageableTracks: y,
2930
2998
  renderingOptions: v,
2931
2999
  gridOptions: g,
2932
- pageCount: y,
2933
- pagedTracks: b,
2934
- resolvedChartLeftMargin: D,
2935
- innerWidth: k,
2936
- hasVisibleWaveformData: w,
2937
- hasWaveformData: j,
2938
- hasChartArea: M,
2939
- resolvedXLabel: N,
2940
- activeInteractionMode: P,
2941
- isZoomMode: F,
2942
- initialXDomain: L,
2943
- sharedZoomDomain: z,
2944
- resolveInitialTrackDomain: R,
2945
- gridCells: B,
2946
- trackLayouts: V,
2947
- annotationLayoutsForTrack: H,
2948
- resolveSeriesYScale: W,
3000
+ pageCount: b,
3001
+ pagedTracks: x,
3002
+ resolvedChartLeftMargin: O,
3003
+ innerWidth: A,
3004
+ hasVisibleWaveformData: T,
3005
+ hasWaveformData: M,
3006
+ hasChartArea: N,
3007
+ resolvedXLabel: P,
3008
+ activeInteractionMode: F,
3009
+ isZoomMode: I,
3010
+ initialXDomain: R,
3011
+ sharedZoomDomain: B,
3012
+ resolveInitialTrackDomain: z,
3013
+ gridCells: V,
3014
+ trackLayouts: H,
3015
+ annotationLayoutsForTrack: W,
3016
+ resolveSeriesYScale: G,
2949
3017
  annotationTrackLayouts: ee,
2950
- renderedAnnotations: t(() => n.annotationsVisible ? Me(n.annotations, ee.value, k.value, s.value) : []),
3018
+ renderedAnnotations: t(() => n.annotationsVisible ? Me(n.annotations, ee.value, A.value, s.value) : []),
2951
3019
  editorSeries: t(() => {
2952
3020
  let e = p.editorDraft.value?.annotation.seriesId, t = h.value.find((t) => t.id === e);
2953
3021
  return t ? {
@@ -2957,18 +3025,16 @@ function mi(e) {
2957
3025
  unit: t.unit
2958
3026
  } : void 0;
2959
3027
  }),
2960
- resolveFrameNumber: (e) => {
2961
- if (!(n.frameNumber === void 0 || n.frameNumber === null)) return _.value.length === 1 ? n.frameNumber : typeof n.frameNumber == "number" ? n.frameNumber + e : `${n.frameNumber}-${e + 1}`;
2962
- }
3028
+ resolveFrameNumber: xi(() => n.frameNumber, () => n.frameNumbers, () => _.value)
2963
3029
  };
2964
3030
  }
2965
- var hi = 1e-6;
2966
- function gi(e) {
3031
+ var Ci = 1e-6;
3032
+ function wi(e) {
2967
3033
  return Number.isFinite(e) ? Math.max(1, e) : 1;
2968
3034
  }
2969
- function _i({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
2970
- let i = gi(e), a = gi(t), o = gi(n), s = Number.isFinite(r) ? r : 0, c = s * Math.PI / 180, l = Math.abs(Math.cos(c)), u = Math.abs(Math.sin(c)), d = (s % 360 + 360) % 360;
2971
- if (!(d > hi && Math.abs(d - 360) > hi)) {
3035
+ function Ti({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
3036
+ let i = wi(e), a = wi(t), o = wi(n), s = Number.isFinite(r) ? r : 0, c = s * Math.PI / 180, l = Math.abs(Math.cos(c)), u = Math.abs(Math.sin(c)), d = (s % 360 + 360) % 360;
3037
+ if (!(d > Ci && Math.abs(d - 360) > Ci)) {
2972
3038
  let e = Math.max(1, Math.ceil(i / o)), t = o, n = a * e;
2973
3039
  return {
2974
3040
  textWidth: t,
@@ -2993,7 +3059,7 @@ function _i({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r
2993
3059
  }
2994
3060
  //#endregion
2995
3061
  //#region src/components/core/useWaveformPresentation.ts
2996
- function vi(e) {
3062
+ function Ei(e) {
2997
3063
  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(() => ({
2998
3064
  width: l.value === void 0 ? "100%" : `${l.value}px`,
2999
3065
  height: u.value === void 0 ? "100%" : `${u.value}px`
@@ -3038,7 +3104,7 @@ function vi(e) {
3038
3104
  maxWidth: O.value ? "none" : `${j.value}px`,
3039
3105
  whiteSpace: O.value ? "nowrap" : "normal",
3040
3106
  overflowWrap: O.value ? "normal" : "anywhere"
3041
- })), N = t(() => _i({
3107
+ })), N = t(() => Ti({
3042
3108
  naturalWidth: a.value || A.value,
3043
3109
  naturalHeight: o.value || E.value * 1.2,
3044
3110
  availableWidth: j.value,
@@ -3094,66 +3160,66 @@ function vi(e) {
3094
3160
  }
3095
3161
  //#endregion
3096
3162
  //#region src/core/samplingReferenceValues.ts
3097
- function yi(e, t) {
3163
+ function Di(e, t) {
3098
3164
  return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
3099
3165
  }
3100
- function bi(e, t, n, r) {
3166
+ function Oi(e, t, n, r) {
3101
3167
  let i = r - n;
3102
3168
  return {
3103
3169
  start: n + Math.floor(e * i / t),
3104
3170
  end: n + Math.floor((e + 1) * i / t)
3105
3171
  };
3106
3172
  }
3107
- function xi(e, t) {
3173
+ function ki(e, t) {
3108
3174
  e[e.length - 1] !== t && e.push(t);
3109
3175
  }
3110
- function Si(e, t, n) {
3176
+ function Ai(e, t, n) {
3111
3177
  if (e <= t) return Array.from({ length: e }, (e, t) => t);
3112
3178
  if (t === 1) return [0];
3113
3179
  if (t === 2) return [0, e - 1];
3114
3180
  let r = [0];
3115
- return n().forEach((e) => xi(r, e)), xi(r, e - 1), r;
3181
+ return n().forEach((e) => ki(r, e)), ki(r, e - 1), r;
3116
3182
  }
3117
- function Ci(e, t, n) {
3183
+ function ji(e, t, n) {
3118
3184
  let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
3119
- return Si(e.length, t, () => {
3185
+ return Ai(e.length, t, () => {
3120
3186
  if (!r) return [];
3121
3187
  let t = [];
3122
3188
  for (let i = 0; i < r; i += 1) {
3123
- let a = bi(i, r, 1, e.length - 1), o = a.start, s = a.start;
3189
+ let a = Oi(i, r, 1, e.length - 1), o = a.start, s = a.start;
3124
3190
  for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
3125
- n === "min" ? xi(t, o) : n === "max" ? xi(t, s) : o <= s ? (xi(t, o), xi(t, s)) : (xi(t, s), xi(t, o));
3191
+ n === "min" ? ki(t, o) : n === "max" ? ki(t, s) : o <= s ? (ki(t, o), ki(t, s)) : (ki(t, s), ki(t, o));
3126
3192
  }
3127
3193
  return t;
3128
3194
  });
3129
3195
  }
3130
- function wi(e, t) {
3196
+ function Mi(e, t) {
3131
3197
  let n = Math.floor((t - 2) / 4);
3132
- return Si(e.length, t, () => {
3198
+ return Ai(e.length, t, () => {
3133
3199
  if (!n) return [];
3134
3200
  let t = [];
3135
3201
  for (let r = 0; r < n; r += 1) {
3136
- let i = bi(r, n, 1, e.length - 1), a = i.start, o = i.start;
3202
+ let i = Oi(r, n, 1, e.length - 1), a = i.start, o = i.start;
3137
3203
  for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
3138
3204
  [
3139
3205
  i.start,
3140
3206
  a,
3141
3207
  o,
3142
3208
  i.end - 1
3143
- ].sort((e, t) => e - t).forEach((e) => xi(t, e));
3209
+ ].sort((e, t) => e - t).forEach((e) => ki(t, e));
3144
3210
  }
3145
3211
  return t;
3146
3212
  });
3147
3213
  }
3148
- function Ti(e, t, n) {
3149
- return Si(e.length, n, () => {
3214
+ function Ni(e, t, n) {
3215
+ return Ai(e.length, n, () => {
3150
3216
  let r = (e.length - 2) / (n - 2), i = [], a = 0;
3151
3217
  for (let o = 0; o < n - 2; o += 1) {
3152
3218
  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;
3153
3219
  for (let n = s; n < c; n += 1) l += e[n], u += t[n];
3154
3220
  let d = c - s;
3155
3221
  d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
3156
- let f = bi(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
3222
+ let f = Oi(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
3157
3223
  for (let n = f.start; n < f.end; n += 1) {
3158
3224
  let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
3159
3225
  r > m && (m = r, p = n);
@@ -3163,10 +3229,10 @@ function Ti(e, t, n) {
3163
3229
  return i;
3164
3230
  });
3165
3231
  }
3166
- function Ei(e, t, n, r) {
3167
- let i = yi(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
3232
+ function Pi(e, t, n, r) {
3233
+ let i = Di(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
3168
3234
  for (let n = 0; n < i; n += 1) {
3169
- let s = bi(n, i, 0, e.length);
3235
+ let s = Oi(n, i, 0, e.length);
3170
3236
  for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
3171
3237
  let c = s.end - s.start;
3172
3238
  a[n] /= c, r === "average" && (o[n] /= c);
@@ -3177,10 +3243,10 @@ function Ei(e, t, n, r) {
3177
3243
  y: o
3178
3244
  };
3179
3245
  }
3180
- function Di(e, t, n, r) {
3246
+ function Fi(e, t, n, r) {
3181
3247
  if (e.length !== t.length) throw Error("x and y must have the same length");
3182
- if (n === "average" || n === "sum") return Ei(e, t, r, n);
3183
- let i = yi(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? wi(t, i) : n === "lttb" ? Ti(e, t, i) : Ci(t, i, n);
3248
+ if (n === "average" || n === "sum") return Pi(e, t, r, n);
3249
+ let i = Di(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? Mi(t, i) : n === "lttb" ? Ni(e, t, i) : ji(t, i, n);
3184
3250
  return {
3185
3251
  kind: "source-indexes",
3186
3252
  sourceIndexes: Uint32Array.from(a)
@@ -3188,41 +3254,41 @@ function Di(e, t, n, r) {
3188
3254
  }
3189
3255
  //#endregion
3190
3256
  //#region src/core/workerSampling/javascriptBackend.ts
3191
- var Oi = {
3257
+ var Ii = {
3192
3258
  kind: "javascript",
3193
3259
  sample(e) {
3194
- return Di(e.x, e.y, e.strategy, e.targetPointCount);
3260
+ return Fi(e.x, e.y, e.strategy, e.targetPointCount);
3195
3261
  }
3196
- }, ki = 8 * 1024 * 1024;
3197
- function Ai(e, t) {
3262
+ }, Li = 8 * 1024 * 1024;
3263
+ function Ri(e, t) {
3198
3264
  return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
3199
3265
  }
3200
- function ji(e, t, n, r) {
3266
+ function zi(e, t, n, r) {
3201
3267
  let i = r - n;
3202
3268
  return {
3203
3269
  start: n + Math.floor(e * i / t),
3204
3270
  end: n + Math.floor((e + 1) * i / t)
3205
3271
  };
3206
3272
  }
3207
- function Mi(e, t) {
3273
+ function Bi(e, t) {
3208
3274
  e[e.length - 1] !== t && e.push(t);
3209
3275
  }
3210
- function Ni(e) {
3276
+ function Vi(e) {
3211
3277
  return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
3212
3278
  }
3213
- function Pi(e, t) {
3279
+ function Hi(e, t) {
3214
3280
  let n = 1;
3215
3281
  for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
3216
3282
  return n;
3217
3283
  }
3218
- var Fi = class {
3284
+ var Ui = class {
3219
3285
  points;
3220
3286
  extremaLayers = [];
3221
3287
  sumLayers = [];
3222
3288
  indexBytes = 0;
3223
3289
  maxBytes;
3224
3290
  constructor(e, t = {}) {
3225
- this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : ki;
3291
+ this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : Li;
3226
3292
  }
3227
3293
  get byteLength() {
3228
3294
  return this.indexBytes;
@@ -3231,7 +3297,7 @@ var Fi = class {
3231
3297
  this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
3232
3298
  }
3233
3299
  sample(e, t, n, r) {
3234
- 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 = Ai(r, o);
3300
+ 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 = Ri(r, o);
3235
3301
  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);
3236
3302
  }
3237
3303
  allIndexes(e, t) {
@@ -3251,24 +3317,24 @@ var Fi = class {
3251
3317
  if (i === 0) return this.indexes([e, t - 1]);
3252
3318
  let a = [e];
3253
3319
  for (let n = 0; n < i; n += 1) {
3254
- let o = ji(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
3320
+ let o = zi(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
3255
3321
  if (!s) return;
3256
- if (r === "min") Mi(a, s.minimum);
3257
- else if (r === "max") Mi(a, s.maximum);
3258
- else if (r === "minmax") s.minimum <= s.maximum ? (Mi(a, s.minimum), Mi(a, s.maximum)) : (Mi(a, s.maximum), Mi(a, s.minimum));
3322
+ if (r === "min") Bi(a, s.minimum);
3323
+ else if (r === "max") Bi(a, s.maximum);
3324
+ else if (r === "minmax") s.minimum <= s.maximum ? (Bi(a, s.minimum), Bi(a, s.maximum)) : (Bi(a, s.maximum), Bi(a, s.minimum));
3259
3325
  else for (let e of [
3260
3326
  o.start,
3261
3327
  s.minimum,
3262
3328
  s.maximum,
3263
3329
  o.end - 1
3264
- ].sort((e, t) => e - t)) Mi(a, e);
3330
+ ].sort((e, t) => e - t)) Bi(a, e);
3265
3331
  }
3266
- return Mi(a, t - 1), this.indexes(a);
3332
+ return Bi(a, t - 1), this.indexes(a);
3267
3333
  }
3268
3334
  aggregate(e, t, n, r) {
3269
3335
  let i = new Float64Array(n), a = new Float64Array(n);
3270
3336
  for (let o = 0; o < n; o += 1) {
3271
- let s = ji(o, n, e, t), c = this.querySum(s.start, s.end);
3337
+ let s = zi(o, n, e, t), c = this.querySum(s.start, s.end);
3272
3338
  if (!c || c.count === 0) return;
3273
3339
  i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
3274
3340
  }
@@ -3283,7 +3349,7 @@ var Fi = class {
3283
3349
  if (!this.ensureExtrema(n)) return;
3284
3350
  let r = e, i = e;
3285
3351
  for (let n = e; n < t;) {
3286
- let e = Pi(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;
3352
+ let e = Hi(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;
3287
3353
  this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
3288
3354
  }
3289
3355
  return {
@@ -3296,7 +3362,7 @@ var Fi = class {
3296
3362
  if (!this.ensureSum(n)) return;
3297
3363
  let r = 0, i = 0, a = 0;
3298
3364
  for (let n = e; n < t;) {
3299
- let e = Pi(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
3365
+ let e = Hi(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
3300
3366
  if (c) r += c.x[s], i += c.y[s], a += c.count[s];
3301
3367
  else {
3302
3368
  let e = this.points[n];
@@ -3317,7 +3383,7 @@ var Fi = class {
3317
3383
  minimumIndexes: new Uint32Array(e),
3318
3384
  maximumIndexes: new Uint32Array(e)
3319
3385
  };
3320
- if (!this.reserve(Ni(n))) return !1;
3386
+ if (!this.reserve(Vi(n))) return !1;
3321
3387
  let r = this.extremaLayers[t - 1];
3322
3388
  for (let t = 0; t < e; t += 1) {
3323
3389
  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;
@@ -3335,7 +3401,7 @@ var Fi = class {
3335
3401
  y: new Float64Array(e),
3336
3402
  count: new Uint32Array(e)
3337
3403
  };
3338
- if (!this.reserve(Ni(n))) return !1;
3404
+ if (!this.reserve(Vi(n))) return !1;
3339
3405
  let r = this.sumLayers[t - 1];
3340
3406
  for (let t = 0; t < e; t += 1) {
3341
3407
  let e = t * 2, i = e + 1;
@@ -3360,8 +3426,8 @@ var Fi = class {
3360
3426
  let n = this.points[e], r = this.points[t];
3361
3427
  return n.y > r.y || n.y === r.y && e < t;
3362
3428
  }
3363
- }, Ii = 1e3, Li = I((e) => e.x);
3364
- function Ri(e) {
3429
+ }, Wi = 1e3, Gi = I((e) => e.x);
3430
+ function Ki(e) {
3365
3431
  let t = [], n = !0, r = -Infinity;
3366
3432
  for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
3367
3433
  x: i.x,
@@ -3372,7 +3438,7 @@ function Ri(e) {
3372
3438
  }));
3373
3439
  return n || t.sort((e, t) => e.x - t.x), t;
3374
3440
  }
3375
- function zi(e, t) {
3441
+ function qi(e, t) {
3376
3442
  let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
3377
3443
  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);
3378
3444
  return {
@@ -3382,7 +3448,7 @@ function zi(e, t) {
3382
3448
  yDomain: e.length ? [i, a] : null
3383
3449
  };
3384
3450
  }
3385
- function Bi(e, t, n = e.length) {
3451
+ function Ji(e, t, n = e.length) {
3386
3452
  let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
3387
3453
  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]);
3388
3454
  return {
@@ -3392,39 +3458,39 @@ function Bi(e, t, n = e.length) {
3392
3458
  yDomain: e.length ? [a, o] : null
3393
3459
  };
3394
3460
  }
3395
- function Vi(e, t) {
3461
+ function Yi(e, t) {
3396
3462
  return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
3397
3463
  }
3398
- function Hi(e) {
3464
+ function Xi(e) {
3399
3465
  return e === "auto" ? "peak" : e;
3400
3466
  }
3401
- function Ui(e) {
3467
+ function Zi(e) {
3402
3468
  if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
3403
3469
  let t = Number.isFinite(e.plotWidth) ? Math.max(0, e.plotWidth) : 0, n = Number.isFinite(e.maxPointsPerPixel) ? Math.max(0, e.maxPointsPerPixel ?? 0) : 4;
3404
3470
  return Math.max(1, Math.floor(t * n));
3405
3471
  }
3406
- function Wi(e, t) {
3472
+ function Qi(e, t) {
3407
3473
  if (e.mode === "raw") return !0;
3408
3474
  if (e.mode !== "auto") return !1;
3409
- let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : Ii;
3475
+ let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : Wi;
3410
3476
  if (!e.previousSelectedMode) return t <= n;
3411
3477
  let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
3412
3478
  return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
3413
3479
  }
3414
- function Gi(e, t) {
3480
+ function $i(e, t) {
3415
3481
  let n = e[0], r = e.at(-1);
3416
- return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[Li.center(e, t)] : void 0;
3482
+ return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[Gi.center(e, t)] : void 0;
3417
3483
  }
3418
- function Ki(e) {
3484
+ function ea(e) {
3419
3485
  return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
3420
3486
  }
3421
- function qi(e, t) {
3487
+ function ta(e, t) {
3422
3488
  return e.kind === "aggregates" ? e : {
3423
3489
  kind: "source-indexes",
3424
3490
  sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
3425
3491
  };
3426
3492
  }
3427
- function Ji(e, t, n, r, i) {
3493
+ function na(e, t, n, r, i) {
3428
3494
  return [
3429
3495
  e.datasetId,
3430
3496
  e.revision,
@@ -3444,14 +3510,14 @@ function Ji(e, t, n, r, i) {
3444
3510
  e.errorBarMinSpacing ?? 0
3445
3511
  ].join("\0");
3446
3512
  }
3447
- function Yi(e, t, n, r, i, a, o, s) {
3513
+ function ra(e, t, n, r, i, a, o, s) {
3448
3514
  return {
3449
3515
  seriesId: e.seriesId,
3450
3516
  datasetId: e.datasetId,
3451
3517
  mode: e.mode,
3452
3518
  selectedMode: i,
3453
3519
  backend: r,
3454
- strategy: Hi(e.strategy),
3520
+ strategy: Xi(e.strategy),
3455
3521
  sourcePointCount: t,
3456
3522
  visiblePointCount: n,
3457
3523
  renderedPointCount: o,
@@ -3467,18 +3533,18 @@ function Yi(e, t, n, r, i, a, o, s) {
3467
3533
  }
3468
3534
  //#endregion
3469
3535
  //#region src/core/workerSampling/repositoryDataset.ts
3470
- function Xi(e) {
3536
+ function ia(e) {
3471
3537
  return e?.y.length ?? 0;
3472
3538
  }
3473
- function Zi(e, t) {
3539
+ function aa(e, t) {
3474
3540
  return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
3475
3541
  }
3476
- function Qi(e, t) {
3542
+ function oa(e, t) {
3477
3543
  let n = (t, n) => {
3478
- let r = 0, i = Xi(e);
3544
+ let r = 0, i = ia(e);
3479
3545
  for (; r < i;) {
3480
3546
  let a = r + Math.floor((i - r) / 2);
3481
- (n ? Zi(e, a) <= t : Zi(e, a) < t) ? r = a + 1 : i = a;
3547
+ (n ? aa(e, a) <= t : aa(e, a) < t) ? r = a + 1 : i = a;
3482
3548
  }
3483
3549
  return r;
3484
3550
  }, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
@@ -3487,13 +3553,13 @@ function Qi(e, t) {
3487
3553
  end: n(i, !0)
3488
3554
  };
3489
3555
  }
3490
- function $i(e, t, n) {
3491
- return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => Zi(e, t + r));
3556
+ function sa(e, t, n) {
3557
+ return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => aa(e, t + r));
3492
3558
  }
3493
- function ea(e) {
3559
+ function ca(e) {
3494
3560
  return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
3495
3561
  }
3496
- function ta(e, t) {
3562
+ function la(e, t) {
3497
3563
  let n = [], r = Math.min(e.length, t.length);
3498
3564
  for (let i = 0; i < r; i += 1) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push(i);
3499
3565
  return n.sort((t, n) => e[t] - e[n] || t - n), {
@@ -3501,14 +3567,14 @@ function ta(e, t) {
3501
3567
  y: Float64Array.from(n, (e) => t[e])
3502
3568
  };
3503
3569
  }
3504
- function na(e, t, n, r) {
3570
+ function ua(e, t, n, r) {
3505
3571
  if (t?.kind === "typed") {
3506
- let e = ta(t.x, t.y);
3572
+ let e = la(t.x, t.y);
3507
3573
  return {
3508
3574
  x: e.x,
3509
3575
  y: e.y,
3510
3576
  revision: n,
3511
- metrics: Bi(e.x, e.y, Math.max(t.x.length, t.y.length))
3577
+ metrics: Ji(e.x, e.y, Math.max(t.x.length, t.y.length))
3512
3578
  };
3513
3579
  }
3514
3580
  if (t?.kind === "samples") {
@@ -3542,35 +3608,35 @@ function na(e, t, n, r) {
3542
3608
  }
3543
3609
  };
3544
3610
  }
3545
- let i = Ri(e ?? t?.points ?? []);
3611
+ let i = Ki(e ?? t?.points ?? []);
3546
3612
  return {
3547
3613
  x: Float64Array.from(i, (e) => e.x),
3548
3614
  y: Float64Array.from(i, (e) => e.y),
3549
3615
  points: i,
3550
3616
  revision: n,
3551
- metrics: zi(i, e?.length ?? t?.points.length ?? 0),
3552
- index: new Fi(i, { maxBytes: r })
3617
+ metrics: qi(i, e?.length ?? t?.points.length ?? 0),
3618
+ index: new Ui(i, { maxBytes: r })
3553
3619
  };
3554
3620
  }
3555
- function ra(e, t, n) {
3556
- !ea(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));
3621
+ function da(e, t, n) {
3622
+ !ca(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));
3557
3623
  }
3558
- function ia(e, t) {
3559
- t.index?.dispose(), t.wasmDatasetHandle !== void 0 && ea(e) && e.disposeDataset(t.wasmDatasetHandle);
3624
+ function fa(e, t) {
3625
+ t.index?.dispose(), t.wasmDatasetHandle !== void 0 && ca(e) && e.disposeDataset(t.wasmDatasetHandle);
3560
3626
  }
3561
3627
  //#endregion
3562
3628
  //#region src/core/workerSampling/samplingCache.ts
3563
- var aa = 96, oa = 16 * 1024 * 1024;
3564
- function sa(e) {
3629
+ var pa = 96, ma = 16 * 1024 * 1024;
3630
+ function ha(e) {
3565
3631
  return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
3566
3632
  }
3567
- var ca = class {
3633
+ var ga = class {
3568
3634
  entries = /* @__PURE__ */ new Map();
3569
3635
  bytes = 0;
3570
3636
  maxEntries;
3571
3637
  maxBytes;
3572
3638
  constructor(e = {}) {
3573
- this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : aa, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : oa;
3639
+ this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : pa, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : ma;
3574
3640
  }
3575
3641
  get metrics() {
3576
3642
  return {
@@ -3585,7 +3651,7 @@ var ca = class {
3585
3651
  if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
3586
3652
  }
3587
3653
  set(e, t) {
3588
- let n = sa(t);
3654
+ let n = ha(t);
3589
3655
  if (n > this.maxBytes || this.maxEntries === 0) return;
3590
3656
  let r = this.entries.get(e);
3591
3657
  for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
@@ -3605,14 +3671,14 @@ var ca = class {
3605
3671
  clear() {
3606
3672
  this.entries.clear(), this.bytes = 0;
3607
3673
  }
3608
- }, la = class {
3674
+ }, _a = class {
3609
3675
  datasets = /* @__PURE__ */ new Map();
3610
3676
  javascriptBackend;
3611
3677
  cache;
3612
3678
  indexMaxBytes;
3613
3679
  wasmBackend;
3614
3680
  constructor(e = {}) {
3615
- this.javascriptBackend = e.javascriptBackend ?? Oi, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new ca({
3681
+ this.javascriptBackend = e.javascriptBackend ?? Ii, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new ga({
3616
3682
  maxEntries: e.cacheMaxEntries,
3617
3683
  maxBytes: e.cacheMaxBytes
3618
3684
  });
@@ -3625,9 +3691,9 @@ var ca = class {
3625
3691
  };
3626
3692
  }
3627
3693
  setWasmBackend(e) {
3628
- this.wasmBackend && this.wasmBackend !== e && ea(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
3694
+ this.wasmBackend && this.wasmBackend !== e && ca(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
3629
3695
  e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
3630
- })), this.wasmBackend = e, ea(e) && this.datasets.forEach((t) => ra(e, t, this.indexMaxBytes));
3696
+ })), this.wasmBackend = e, ca(e) && this.datasets.forEach((t) => da(e, t, this.indexMaxBytes));
3631
3697
  }
3632
3698
  handle(e) {
3633
3699
  switch (e.type) {
@@ -3643,15 +3709,15 @@ var ca = class {
3643
3709
  register(e, t, n, r) {
3644
3710
  let i = this.datasets.get(e);
3645
3711
  if (i) return this.datasetResponse(t, e, i, "stale-revision");
3646
- let a = na(n, r, 1, this.indexMaxBytes);
3647
- return ra(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
3712
+ let a = ua(n, r, 1, this.indexMaxBytes);
3713
+ return da(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
3648
3714
  }
3649
3715
  replace(e, t, n, r, i) {
3650
- let a = this.datasets.get(e), o = Vi(a, n);
3716
+ let a = this.datasets.get(e), o = Yi(a, n);
3651
3717
  if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
3652
- ia(this.wasmBackend, a), this.cache.deleteDataset(e);
3653
- let s = na(r, i, a.revision + 1, this.indexMaxBytes);
3654
- return ra(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
3718
+ fa(this.wasmBackend, a), this.cache.deleteDataset(e);
3719
+ let s = ua(r, i, a.revision + 1, this.indexMaxBytes);
3720
+ return da(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
3655
3721
  }
3656
3722
  sample(e) {
3657
3723
  return {
@@ -3661,28 +3727,28 @@ var ca = class {
3661
3727
  };
3662
3728
  }
3663
3729
  sampleSeries(e, t) {
3664
- let n = performance.now(), r = this.datasets.get(t.datasetId), i = Vi(r, t.revision);
3730
+ let n = performance.now(), r = this.datasets.get(t.datasetId), i = Yi(r, t.revision);
3665
3731
  if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
3666
- let a = Qi(r, t.xDomain), o = a.end - a.start;
3667
- if (Wi(t, o)) return this.sampleResponse(e, t, "ok", {
3732
+ let a = oa(r, t.xDomain), o = a.end - a.start;
3733
+ if (Qi(t, o)) return this.sampleResponse(e, t, "ok", {
3668
3734
  kind: "source-indexes",
3669
3735
  sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
3670
3736
  }, "raw", "raw", o, n, !1);
3671
3737
  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);
3672
3738
  if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
3673
- let u = Hi(t.strategy), d = Ui(t), f = Ji(t, a, u, d, l.kind), p = this.cache.get(f);
3739
+ let u = Xi(t.strategy), d = Zi(t), f = na(t, a, u, d, l.kind), p = this.cache.get(f);
3674
3740
  if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
3675
- let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && ea(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? qi(l.sample({
3676
- x: $i(r, a.start, a.end),
3741
+ let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && ca(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? ta(l.sample({
3742
+ x: sa(r, a.start, a.end),
3677
3743
  y: r.y.subarray(a.start, a.end),
3678
3744
  points: r.points?.slice(a.start, a.end) ?? [],
3679
3745
  strategy: u,
3680
3746
  targetPointCount: d
3681
3747
  }), a.start);
3682
- return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && ea(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
3748
+ return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && ca(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
3683
3749
  }
3684
3750
  sampleResponse(e, t, n, r, i, a, o, s, c) {
3685
- let l = Yi(t, Xi(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Ki(r), c);
3751
+ let l = ra(t, ia(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, ea(r), c);
3686
3752
  return l.requestId = e, {
3687
3753
  seriesId: t.seriesId,
3688
3754
  datasetId: t.datasetId,
@@ -3693,7 +3759,7 @@ var ca = class {
3693
3759
  };
3694
3760
  }
3695
3761
  findNearest(e, t, n, r) {
3696
- let i = this.datasets.get(e), a = Vi(i, n);
3762
+ let i = this.datasets.get(e), a = Yi(i, n);
3697
3763
  return a !== "ok" || !i ? {
3698
3764
  type: "find-nearest-point-response",
3699
3765
  requestId: t,
@@ -3706,12 +3772,12 @@ var ca = class {
3706
3772
  datasetId: e,
3707
3773
  revision: n,
3708
3774
  status: a,
3709
- point: i.points ? Gi(i.points, r) : (() => {
3710
- let e = Qi(i, [r, r]);
3711
- if (!Xi(i) || r < Zi(i, 0) || r > Zi(i, Xi(i) - 1)) return;
3712
- let t = Math.min(Xi(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - Zi(i, n)) < Math.abs(Zi(i, t) - r) ? n : t;
3713
- return Number.isFinite(r) && Xi(i) ? {
3714
- x: Zi(i, a),
3775
+ point: i.points ? $i(i.points, r) : (() => {
3776
+ let e = oa(i, [r, r]);
3777
+ if (!ia(i) || r < aa(i, 0) || r > aa(i, ia(i) - 1)) return;
3778
+ let t = Math.min(ia(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - aa(i, n)) < Math.abs(aa(i, t) - r) ? n : t;
3779
+ return Number.isFinite(r) && ia(i) ? {
3780
+ x: aa(i, a),
3715
3781
  y: i.y[a]
3716
3782
  } : void 0;
3717
3783
  })()
@@ -3719,15 +3785,15 @@ var ca = class {
3719
3785
  }
3720
3786
  metrics(e, t, n) {
3721
3787
  let r = this.datasets.get(e);
3722
- return this.datasetResponse(t, e, r, Vi(r, n));
3788
+ return this.datasetResponse(t, e, r, Yi(r, n));
3723
3789
  }
3724
3790
  dispose(e, t, n) {
3725
- let r = this.datasets.get(e), i = Vi(r, n);
3726
- return i === "ok" && r && (ia(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
3791
+ let r = this.datasets.get(e), i = Yi(r, n);
3792
+ return i === "ok" && r && (fa(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
3727
3793
  }
3728
3794
  disposeAll(e) {
3729
3795
  let t = [...this.datasets.keys()];
3730
- return this.datasets.forEach((e) => ia(this.wasmBackend, e)), ea(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
3796
+ return this.datasets.forEach((e) => fa(this.wasmBackend, e)), ca(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
3731
3797
  type: "dispose-all-response",
3732
3798
  requestId: e,
3733
3799
  disposedDatasetIds: t
@@ -3749,10 +3815,10 @@ var ca = class {
3749
3815
  };
3750
3816
  //#endregion
3751
3817
  //#region src/components/core/latestTaskScheduler.ts
3752
- function ua(e, t, n, r) {
3818
+ function va(e, t, n, r) {
3753
3819
  return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
3754
3820
  }
3755
- function da() {
3821
+ function ya() {
3756
3822
  let e = 0, t = !1, n, r = !1, i = {
3757
3823
  scheduled: 0,
3758
3824
  coalesced: 0,
@@ -3791,12 +3857,12 @@ function da() {
3791
3857
  }
3792
3858
  //#endregion
3793
3859
  //#region src/components/core/workerSamplingClient.ts
3794
- function fa(e) {
3860
+ function ba(e) {
3795
3861
  return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
3796
3862
  }
3797
- function pa() {
3863
+ function xa() {
3798
3864
  let e, t, n, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = () => {
3799
- t ??= new la();
3865
+ t ??= new _a();
3800
3866
  for (let [e, n] of i) {
3801
3867
  t.handle({
3802
3868
  type: "register-dataset",
@@ -3832,7 +3898,7 @@ function pa() {
3832
3898
  let t = a();
3833
3899
  e.forEach(({ request: e, resolve: n }) => n(t.handle(e)));
3834
3900
  }, c = (r) => {
3835
- t || (n = fa(r), e?.terminate(), e = void 0, s());
3901
+ t || (n = ba(r), e?.terminate(), e = void 0, s());
3836
3902
  };
3837
3903
  try {
3838
3904
  typeof Worker > "u" ? c() : (e = new Worker(new URL(
@@ -3869,20 +3935,20 @@ function pa() {
3869
3935
  }
3870
3936
  };
3871
3937
  }
3872
- function ma(e) {
3938
+ function Sa(e) {
3873
3939
  return e.type === "dataset-response";
3874
3940
  }
3875
3941
  //#endregion
3876
3942
  //#region src/components/core/useWaveformRenderSampling.ts
3877
- var ha = 120;
3878
- function ga(e, t) {
3943
+ var Ca = 120;
3944
+ function wa(e, t) {
3879
3945
  let n = e.output;
3880
3946
  if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
3881
3947
  x: e,
3882
3948
  y: n.y[t]
3883
3949
  })) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
3884
3950
  }
3885
- function _a(e, t) {
3951
+ function Ta(e, t) {
3886
3952
  let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
3887
3953
  return {
3888
3954
  seriesId: n.seriesId,
@@ -3904,7 +3970,7 @@ function _a(e, t) {
3904
3970
  maxPendingRequestCount: 0
3905
3971
  };
3906
3972
  }
3907
- function va(e) {
3973
+ function Ea(e) {
3908
3974
  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));
3909
3975
  if (i <= a) return t.pointsInRange(n, r);
3910
3976
  if (a === 1) return t.pointAt(n) ? [t.pointAt(n)] : [];
@@ -3915,7 +3981,7 @@ function va(e) {
3915
3981
  }
3916
3982
  return o;
3917
3983
  }
3918
- function ya(e, t, n, r) {
3984
+ function Da(e, t, n, r) {
3919
3985
  return {
3920
3986
  message: e,
3921
3987
  mode: t,
@@ -3923,8 +3989,8 @@ function ya(e, t, n, r) {
3923
3989
  seriesIds: r
3924
3990
  };
3925
3991
  }
3926
- function ba(e) {
3927
- let n = C(0), r, i = 0, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u = da(), d, f, p = !1, m = t(() => {
3992
+ function Oa(e) {
3993
+ let n = C(0), r, i = 0, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u = ya(), d, f, p = !1, m = t(() => {
3928
3994
  let t = e.renderingOptions.value.sampling;
3929
3995
  return e.sourceTrackLayouts.value.flatMap((n) => {
3930
3996
  let r = n.xScale.domain();
@@ -3989,13 +4055,13 @@ function ba(e) {
3989
4055
  revision: 0,
3990
4056
  dataset: t.source.toWorkerDataset()
3991
4057
  });
3992
- !u.isCurrent(n) || !ma(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
4058
+ !u.isCurrent(n) || !Sa(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
3993
4059
  }));
3994
4060
  }, x = async (t, n = !1) => {
3995
4061
  let o = m.value, c = { ...e.linePointOverrides.value }, l = [], d = [];
3996
4062
  if (o.forEach((e) => {
3997
- 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";
3998
- e.request.mode === "raw" || a ? (c[e.series.id] = e.source.pointsInRange(e.visibleRange.start, e.visibleRange.end), s.set(e.series.id, "raw"), d.push(_a(e, t))) : (c[e.series.id]?.length || (c[e.series.id] = va(e)), l.push({
4063
+ let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" && va(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
4064
+ e.request.mode === "raw" || a ? (c[e.series.id] = e.source.pointsInRange(e.visibleRange.start, e.visibleRange.end), s.set(e.series.id, "raw"), d.push(Ta(e, t))) : (c[e.series.id]?.length || (c[e.series.id] = Ea(e)), l.push({
3999
4065
  ...e,
4000
4066
  request: {
4001
4067
  ...e.request,
@@ -4007,7 +4073,7 @@ function ba(e) {
4007
4073
  e.linePointOverrides.value = c, v(d);
4008
4074
  return;
4009
4075
  }
4010
- if (e.linePointOverrides.value = c, r ??= pa(), await b(r, l, t), !u.isCurrent(t)) return;
4076
+ if (e.linePointOverrides.value = c, r ??= xa(), await b(r, l, t), !u.isCurrent(t)) return;
4011
4077
  let f = l.map((e) => ({
4012
4078
  ...e.request,
4013
4079
  revision: a.get(e.request.datasetId) ?? 1
@@ -4022,22 +4088,22 @@ function ba(e) {
4022
4088
  p = e;
4023
4089
  } catch (n) {
4024
4090
  if (!u.isCurrent(t)) return;
4025
- y(ya(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
4091
+ y(Da(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
4026
4092
  return;
4027
4093
  }
4028
4094
  if (!u.isCurrent(t)) return;
4029
4095
  let h = new Map(l.map((e) => [e.series.id, e.source]));
4030
4096
  p.results.forEach((e) => {
4031
- let t = h.get(e.seriesId), n = t ? ga(e, t) : void 0;
4032
- n && (e.status === "ok" || e.status === "wasm-unavailable") && (c[e.seriesId] = n), d.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && y(ya(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
4033
- }), p.workerError && y(ya(p.workerError, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), r.workerFailureReason && p.results.every((e) => e.status !== "wasm-unavailable") && y(ya(r.workerFailureReason, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), e.linePointOverrides.value = { ...c }, v(d);
4097
+ let t = h.get(e.seriesId), n = t ? wa(e, t) : void 0;
4098
+ n && (e.status === "ok" || e.status === "wasm-unavailable") && (c[e.seriesId] = n), d.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && y(Da(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
4099
+ }), p.workerError && y(Da(p.workerError, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), r.workerFailureReason && p.results.every((e) => e.status !== "wasm-unavailable") && y(Da(r.workerFailureReason, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), e.linePointOverrides.value = { ...c }, v(d);
4034
4100
  };
4035
4101
  return O(h, () => {
4036
4102
  f && clearTimeout(f);
4037
4103
  let t = p;
4038
4104
  p = !0, u.schedule((e) => x(e, t)), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (f = setTimeout(() => {
4039
4105
  f = void 0, u.schedule((e) => x(e, !1));
4040
- }, ha));
4106
+ }, Ca));
4041
4107
  }, { immediate: !0 }), O(e.preparedSeries, () => {
4042
4108
  u.cancelPending(), n.value += 1, e.linePointOverrides.value = {}, a.clear(), o.clear(), s.clear(), c.clear(), r?.dispose(), r = void 0;
4043
4109
  }, { flush: "sync" }), _(() => {
@@ -4046,11 +4112,11 @@ function ba(e) {
4046
4112
  }
4047
4113
  //#endregion
4048
4114
  //#region src/components/core/useWaveformChartController.ts
4049
- function xa(e, t) {
4115
+ function ka(e, t) {
4050
4116
  e.value = t instanceof Element ? t : void 0;
4051
4117
  }
4052
- function Sa(e, t) {
4053
- let n = b(), r = b(), i = b(), a = b(), o = b(0), s = b(0), c = b(0), l = b(0), u = b(0), f = C(K), p = C([]), m = b({}), h = b({}), g = S({
4118
+ function Aa(e, t) {
4119
+ let n = b(), r = b(), i = b(), a = b(), o = b(0), s = b(0), c = b(0), l = b(0), u = b(0), f = C(q), p = C([]), m = b({}), h = b({}), g = S({
4054
4120
  points: [],
4055
4121
  trackIndex: null,
4056
4122
  queryX: null,
@@ -4059,11 +4125,13 @@ function Sa(e, t) {
4059
4125
  x: 0,
4060
4126
  y: 0
4061
4127
  }
4062
- }), _ = b(!1), v = b(1), x = C(), w = le("waveform-clip"), E = b(new Set(e.defaultHiddenSeriesIds)), D = mt(), A = C({}), j = b([]), M = Ar();
4128
+ }), _ = b(!1), v = b(1), x = C(), w = ce("waveform-clip"), E = b(new Set(e.defaultHiddenSeriesIds)), D = mt(), A = C({}), j = b([]), M = Fr();
4063
4129
  O([() => e.yDomain, () => e.yDomains], () => {
4064
4130
  m.value = {}, h.value = {};
4065
4131
  }, { deep: !0 });
4066
- let N = C(null), P = b(!1), F = b(!1), I = () => void 0, L = () => void 0, R = Fr(() => e.data, () => I(), () => L()), z = vi({
4132
+ let N = C(null), P = b(!1), F = b(!1), I = () => void 0, L = () => void 0, R = () => void 0, z = Br(() => e.data, () => {
4133
+ R(), I();
4134
+ }, () => L()), B = Ei({
4067
4135
  props: e,
4068
4136
  observedWidth: o,
4069
4137
  observedHeight: s,
@@ -4071,110 +4139,112 @@ function Sa(e, t) {
4071
4139
  measuredTitleHeight: l,
4072
4140
  internalHiddenSeriesIds: E,
4073
4141
  paginationBandHeight: u
4074
- }), { chartWidth: B, chartHeight: V, isCleanView: H, isPresentationMode: U, hiddenSeriesIdSet: W, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = z, q = mi({
4142
+ }), { chartWidth: V, chartHeight: H, isCleanView: U, isPresentationMode: W, hiddenSeriesIdSet: G, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: K, innerHeight: J } = B, ie = Si({
4075
4143
  props: e,
4076
- preparedSeries: R,
4144
+ preparedSeries: z,
4077
4145
  currentPage: v,
4078
- hiddenSeriesIdSet: W,
4079
- chartWidth: B,
4080
- innerHeight: G,
4081
- isCleanView: H,
4146
+ hiddenSeriesIdSet: G,
4147
+ chartWidth: V,
4148
+ innerHeight: J,
4149
+ isCleanView: U,
4082
4150
  sharedTransform: f,
4083
4151
  independentTransforms: p,
4084
4152
  sharedYDomains: m,
4085
4153
  independentYDomains: h,
4086
4154
  annotationInteraction: d(D),
4087
4155
  linePointOverrides: A
4088
- }), { chartSeries: ae, chartTracks: oe, renderingOptions: se, trackLayouts: ce, gridOptions: ue, pageCount: de, pagedTracks: J, resolvedChartLeftMargin: fe, innerWidth: Y, hasChartArea: pe, activeInteractionMode: me, isZoomMode: he, initialXDomain: ge, sharedZoomDomain: _e, resolveInitialTrackDomain: ve, annotationLayoutsForTrack: ye, resolveSeriesYScale: be } = q;
4089
- ba({
4156
+ }), { chartSeries: ae, chartTracks: oe, renderingOptions: se, trackLayouts: le, gridOptions: ue, pageCount: Y, pagedTracks: de, resolvedChartLeftMargin: fe, innerWidth: pe, hasChartArea: me, activeInteractionMode: he, isZoomMode: ge, initialXDomain: _e, sharedZoomDomain: ve, resolveInitialTrackDomain: ye, annotationLayoutsForTrack: be, resolveSeriesYScale: xe } = ie;
4157
+ Oa({
4090
4158
  props: e,
4091
4159
  emit: t,
4092
4160
  instanceId: w,
4093
- preparedSeries: R,
4094
- sourceTrackLayouts: ce,
4161
+ preparedSeries: z,
4162
+ sourceTrackLayouts: le,
4095
4163
  renderingOptions: se,
4096
4164
  linePointOverrides: A
4097
4165
  }), k(() => {
4098
- u.value = ue.value.showPagination && de.value > 1 && B.value <= 520 ? 40 : 0;
4166
+ u.value = ue.value.showPagination && Y.value > 1 && V.value <= 520 ? 40 : 0;
4099
4167
  });
4100
- let xe = jr({
4168
+ let X = Ir({
4101
4169
  props: e,
4102
4170
  emit: t,
4103
4171
  svgElement: r,
4104
4172
  sharedOverlayElement: a,
4105
4173
  sharedTransform: f,
4106
4174
  independentTransforms: p,
4107
- trackLayouts: ce,
4108
- initialXDomain: ge,
4109
- sharedZoomDomain: _e,
4110
- innerWidth: Y,
4111
- innerHeight: G,
4112
- hasChartArea: pe,
4113
- isZoomMode: he,
4114
- isPresentationMode: U,
4115
- resolveInitialTrackDomain: ve,
4116
- cancelPendingHover: () => Ce.cancelPendingHover()
4117
- }), X = fr({
4175
+ trackLayouts: le,
4176
+ initialXDomain: _e,
4177
+ sharedZoomDomain: ve,
4178
+ innerWidth: pe,
4179
+ innerHeight: J,
4180
+ hasChartArea: me,
4181
+ isZoomMode: ge,
4182
+ isPresentationMode: W,
4183
+ resolveInitialTrackDomain: ye,
4184
+ cancelPendingHover: () => we.cancelPendingHover()
4185
+ });
4186
+ R = X.prepareForDataChange;
4187
+ let Se = fr({
4118
4188
  props: e,
4119
4189
  emit: t,
4120
4190
  container: n,
4121
4191
  chartSeries: ae,
4122
- hiddenSeriesIdSet: W,
4192
+ hiddenSeriesIdSet: G,
4123
4193
  internalHiddenSeriesIds: E,
4124
4194
  annotationInteraction: D,
4125
4195
  editorSeriesOptions: j,
4126
- trackLayouts: ce,
4127
- annotationLayoutsForTrack: ye,
4128
- resolveSeriesYScale: be,
4129
- chartWidth: B,
4130
- chartHeight: V,
4131
- innerWidth: Y,
4196
+ trackLayouts: le,
4197
+ annotationLayoutsForTrack: be,
4198
+ resolveSeriesYScale: xe,
4199
+ chartWidth: V,
4200
+ chartHeight: H,
4201
+ innerWidth: pe,
4132
4202
  resolvedChartLeftMargin: fe,
4133
4203
  titleAreaHeight: re,
4134
- chartTopMargin: ie,
4135
- activeInteractionMode: me,
4136
- isPresentationMode: U
4137
- }), Se = kr({
4204
+ chartTopMargin: K,
4205
+ activeInteractionMode: he,
4206
+ isPresentationMode: W
4207
+ }), Ce = Pr({
4138
4208
  props: e,
4139
4209
  emit: t,
4140
4210
  selection: N,
4141
4211
  spacePressed: P,
4142
- trackLayouts: ce,
4212
+ trackLayouts: le,
4143
4213
  chartTracks: oe,
4144
- initialXDomain: ge,
4145
- innerWidth: Y,
4146
- innerHeight: G,
4214
+ initialXDomain: _e,
4215
+ innerWidth: pe,
4216
+ innerHeight: J,
4147
4217
  sharedOverlayElement: a,
4148
4218
  sharedTransform: f,
4149
4219
  independentTransforms: p,
4150
4220
  sharedYDomains: m,
4151
4221
  independentYDomains: h,
4152
- isZoomMode: he,
4153
- isPresentationMode: U,
4222
+ isZoomMode: ge,
4223
+ isPresentationMode: W,
4154
4224
  editorSeriesOptions: j,
4155
- resolveInitialTrackDomain: ve,
4156
- canZoomTrack: xe.canZoomTrack,
4157
- canZoomSharedTracks: xe.canZoomSharedTracks,
4158
- configureZoom: xe.configureZoom,
4159
- cancelPendingZoom: xe.cancelPendingZoom,
4160
- clearHover: () => Ce.clearHover(),
4161
- resolveTrackAtPointer: X.resolveTrackAtPointer
4162
- }), Ce = pr({
4225
+ resolveInitialTrackDomain: ye,
4226
+ canZoomTrack: X.canZoomTrack,
4227
+ canZoomSharedTracks: X.canZoomSharedTracks,
4228
+ configureZoom: X.configureZoom,
4229
+ cancelPendingZoom: X.cancelPendingZoom,
4230
+ clearHover: () => we.clearHover(),
4231
+ resolveTrackAtPointer: Se.resolveTrackAtPointer
4232
+ }), we = pr({
4163
4233
  emit: t,
4164
4234
  hoverState: g,
4165
4235
  suppressHoverUntilMove: _,
4166
4236
  hoverThrottle: M,
4167
4237
  selection: N,
4168
- trackLayouts: ce,
4169
- innerWidth: Y,
4238
+ trackLayouts: le,
4239
+ innerWidth: pe,
4170
4240
  resolvedChartLeftMargin: fe,
4171
4241
  titleAreaHeight: re,
4172
- chartTopMargin: ie,
4242
+ chartTopMargin: K,
4173
4243
  sharedOverlayElement: a,
4174
- isPresentationMode: U,
4175
- updateViewportDrag: Se.updateViewportDrag,
4176
- resolveTrackAtPointer: X.resolveTrackAtPointer
4177
- }), we = Nr({
4244
+ isPresentationMode: W,
4245
+ updateViewportDrag: Ce.updateViewportDrag,
4246
+ resolveTrackAtPointer: Se.resolveTrackAtPointer
4247
+ }), Te = Rr({
4178
4248
  props: e,
4179
4249
  emit: t,
4180
4250
  container: n,
@@ -4190,41 +4260,41 @@ function Sa(e, t) {
4190
4260
  spacePressed: P,
4191
4261
  pointerInsideChart: F,
4192
4262
  currentPage: v,
4193
- pageCount: de,
4194
- pagedTracks: J,
4263
+ pageCount: Y,
4264
+ pagedTracks: de,
4195
4265
  gridOptions: ue,
4196
4266
  chartSeries: ae,
4197
4267
  chartTracks: oe,
4198
- trackLayouts: ce,
4199
- innerWidth: Y,
4200
- innerHeight: G,
4201
- sharedZoomDomain: _e,
4202
- initialXDomain: ge,
4268
+ trackLayouts: le,
4269
+ innerWidth: pe,
4270
+ innerHeight: J,
4271
+ sharedZoomDomain: ve,
4272
+ initialXDomain: _e,
4203
4273
  sharedTransform: f,
4204
- activeInteractionMode: me,
4205
- hiddenSeriesIdSet: W,
4274
+ activeInteractionMode: he,
4275
+ hiddenSeriesIdSet: G,
4206
4276
  internalHiddenSeriesIds: E,
4207
4277
  independentTransforms: p,
4208
4278
  independentYDomains: h,
4209
- resolveInitialTrackDomain: ve,
4279
+ resolveInitialTrackDomain: ye,
4210
4280
  annotationInteraction: D,
4211
4281
  editorSeriesOptions: j,
4212
- isPresentationMode: U,
4213
- clearHover: Ce.clearHover,
4214
- cancelAnnotation: X.cancelAnnotation,
4215
- configureZoom: xe.configureZoom,
4216
- resetViewport: Se.resetViewport,
4217
- cancelViewportDrag: Se.cancelViewportDrag,
4218
- cancelPendingHover: Ce.cancelPendingHover,
4219
- clearZoomBindings: xe.clearZoomBindings
4282
+ isPresentationMode: W,
4283
+ clearHover: we.clearHover,
4284
+ cancelAnnotation: Se.cancelAnnotation,
4285
+ configureZoom: X.configureZoom,
4286
+ resetViewport: Ce.resetViewport,
4287
+ cancelViewportDrag: Ce.cancelViewportDrag,
4288
+ cancelPendingHover: we.cancelPendingHover,
4289
+ clearZoomBindings: X.clearZoomBindings
4220
4290
  });
4221
- return I = we.handleBeforeDataReferenceChange, L = we.handleDataReferenceChange, y({
4291
+ return I = Te.handleBeforeDataReferenceChange, L = Te.handleDataReferenceChange, y({
4222
4292
  ...T(e),
4223
- ...z,
4224
- ...q,
4225
- ...X,
4293
+ ...B,
4294
+ ...ie,
4226
4295
  ...Se,
4227
4296
  ...Ce,
4297
+ ...we,
4228
4298
  margin: Lt,
4229
4299
  getPageSize: Bn,
4230
4300
  currentPage: v,
@@ -4236,35 +4306,35 @@ function Sa(e, t) {
4236
4306
  contextMenu: D.contextMenu,
4237
4307
  editorSeriesOptions: j,
4238
4308
  clipPathId: w,
4239
- goToPage: we.goToPage,
4240
- setContainer: (e) => xa(n, e),
4241
- setSvgElement: (e) => xa(r, e),
4242
- setTitleMeasureElement: (e) => xa(i, e),
4243
- setSharedOverlayElement: (e) => xa(a, e)
4309
+ goToPage: Te.goToPage,
4310
+ setContainer: (e) => ka(n, e),
4311
+ setSvgElement: (e) => ka(r, e),
4312
+ setTitleMeasureElement: (e) => ka(i, e),
4313
+ setSharedOverlayElement: (e) => ka(a, e)
4244
4314
  });
4245
4315
  }
4246
4316
  //#endregion
4247
4317
  //#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
4248
- var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4318
+ var ja = ["id"], Ma = { class: "waveform-annotation-editor__content" }, Na = {
4249
4319
  class: "waveform-annotation-editor__coordinates",
4250
4320
  "aria-label": "标注坐标"
4251
- }, Ea = ["aria-invalid"], Da = {
4321
+ }, Pa = ["aria-invalid"], Fa = {
4252
4322
  class: "waveform-annotation-editor__coordinate-value",
4253
4323
  "aria-hidden": "true"
4254
- }, Oa = ["id"], ka = {
4324
+ }, Ia = ["id"], La = {
4255
4325
  key: 0,
4256
4326
  class: "waveform-annotation-editor__series",
4257
4327
  "aria-label": "标注所属波形"
4258
- }, Aa = { class: "waveform-annotation-editor__series-label" }, ja = ["value"], Ma = ["value"], Na = { key: 1 }, Pa = { class: "waveform-annotation-editor__field" }, Fa = { class: "waveform-annotation-editor__label-row" }, Ia = ["maxlength"], La = { class: "waveform-annotation-editor__colors" }, Ra = {
4328
+ }, Ra = { class: "waveform-annotation-editor__series-label" }, za = ["value"], Ba = ["value"], Va = { key: 1 }, Ha = { class: "waveform-annotation-editor__field" }, Ua = { class: "waveform-annotation-editor__label-row" }, Wa = ["maxlength"], Ga = { class: "waveform-annotation-editor__colors" }, Ka = {
4259
4329
  class: "waveform-annotation-editor__color-field",
4260
4330
  title: "调整标注边框色和透明度"
4261
- }, za = {
4331
+ }, qa = {
4262
4332
  class: "waveform-annotation-editor__color-field",
4263
4333
  title: "调整标注文字色和透明度"
4264
- }, Ba = {
4334
+ }, Ja = {
4265
4335
  class: "waveform-annotation-editor__color-field",
4266
4336
  title: "调整标注背景色和透明度"
4267
- }, Va = /*#__PURE__*/ et(/* @__PURE__ */ l({
4337
+ }, Ya = /*#__PURE__*/ et(/* @__PURE__ */ l({
4268
4338
  __name: "WaveformAnnotationEditor",
4269
4339
  props: {
4270
4340
  annotation: {},
@@ -4284,7 +4354,7 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4284
4354
  let u = c(async () => typeof window > "u" ? {
4285
4355
  name: "WaveformColorPickerSsrFallback",
4286
4356
  render: () => null
4287
- } : (await import("vue3-colorpicker")).ColorPicker), d = o, p = l, h = b(), g = le("waveform-annotation-editor-title"), _ = b(""), y = b(""), S = b(!1), C = b(""), T = b(""), k = b(""), M = t(() => S.value && (!y.value.trim() || !Number.isFinite(Number(y.value))) ? "请输入有效的时间" : ""), N = t(() => S.value && (M.value || d.timeError) || ""), P = t(() => _.value.trim().length > 0 && y.value.trim().length > 0 && Number.isFinite(Number(y.value)) && !N.value), F = t(() => _.value.length), I = t(() => {
4357
+ } : (await import("vue3-colorpicker")).ColorPicker), d = o, p = l, h = b(), g = ce("waveform-annotation-editor-title"), _ = b(""), y = b(""), S = b(!1), C = b(""), T = b(""), k = b(""), M = t(() => S.value && (!y.value.trim() || !Number.isFinite(Number(y.value))) ? "请输入有效的时间" : ""), N = t(() => S.value && (M.value || d.timeError) || ""), P = t(() => _.value.trim().length > 0 && y.value.trim().length > 0 && Number.isFinite(Number(y.value)) && !N.value), F = t(() => _.value.length), I = t(() => {
4288
4358
  let e = d.seriesOptions?.find((e) => e.seriesId === d.annotation.seriesId);
4289
4359
  return e ? {
4290
4360
  id: e.seriesId,
@@ -4322,7 +4392,7 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4322
4392
  let t = e.target;
4323
4393
  t.value && p("series-change", t.value);
4324
4394
  }
4325
- return (t, o) => (v(), n(E(oe), {
4395
+ return (t, o) => (v(), n(E(ae), {
4326
4396
  visible: !0,
4327
4397
  width: 440,
4328
4398
  "mask-closable": !0,
@@ -4335,15 +4405,15 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4335
4405
  onCancel: o[4] ||= (e) => p("cancel"),
4336
4406
  onOk: B
4337
4407
  }, {
4338
- title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9, Ca)]),
4339
- default: A(() => [a("div", wa, [
4340
- a("div", Ta, [
4408
+ title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9, ja)]),
4409
+ default: A(() => [a("div", Ma, [
4410
+ a("div", Na, [
4341
4411
  a("label", {
4342
4412
  class: "waveform-annotation-editor__coordinate-input",
4343
4413
  "aria-invalid": !!N.value
4344
4414
  }, [
4345
4415
  o[5] ||= a("b", null, "X", -1),
4346
- s(E(ae), {
4416
+ s(E(ie), {
4347
4417
  value: y.value === "" ? void 0 : Number(y.value),
4348
4418
  controls: !0,
4349
4419
  step: .001,
@@ -4360,26 +4430,26 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4360
4430
  "aria-invalid",
4361
4431
  "aria-describedby"
4362
4432
  ]),
4363
- a("code", Da, w(y.value), 1)
4364
- ], 8, Ea),
4433
+ a("code", Fa, w(y.value), 1)
4434
+ ], 8, Pa),
4365
4435
  N.value ? (v(), i("p", {
4366
4436
  key: 0,
4367
4437
  id: `${E(g)}-time-error`,
4368
4438
  class: "waveform-annotation-editor__coordinate-error",
4369
4439
  role: "alert"
4370
- }, w(N.value), 9, Oa)) : r("", !0),
4440
+ }, w(N.value), 9, Ia)) : r("", !0),
4371
4441
  a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, w(E(Ot)(d.annotation.y)), 1)])
4372
4442
  ]),
4373
4443
  o[13] ||= a("p", {
4374
4444
  class: "waveform-annotation-editor__coordinate-hint",
4375
4445
  role: "note"
4376
4446
  }, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
4377
- I.value ? (v(), i("label", ka, [
4447
+ I.value ? (v(), i("label", La, [
4378
4448
  a("i", {
4379
4449
  style: m({ backgroundColor: I.value.color }),
4380
4450
  "aria-hidden": "true"
4381
4451
  }, null, 4),
4382
- a("span", Aa, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
4452
+ a("span", Ra, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
4383
4453
  d.seriesOptions?.length ? (v(), i("select", {
4384
4454
  key: 0,
4385
4455
  value: d.annotation.seriesId,
@@ -4388,9 +4458,9 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4388
4458
  }, [(v(!0), i(e, null, x(d.seriesOptions, (e) => (v(), i("option", {
4389
4459
  key: e.seriesId,
4390
4460
  value: e.seriesId
4391
- }, w(e.name) + w(e.unit ? ` (${e.unit})` : ""), 9, Ma))), 128))], 40, ja)) : I.value.unit ? (v(), i("code", Na, w(I.value.unit), 1)) : r("", !0)
4461
+ }, w(e.name) + w(e.unit ? ` (${e.unit})` : ""), 9, Ba))), 128))], 40, za)) : I.value.unit ? (v(), i("code", Va, w(I.value.unit), 1)) : r("", !0)
4392
4462
  ])) : r("", !0),
4393
- a("label", Pa, [a("span", Fa, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, w(F.value) + "/" + w(E(40)), 1)]), j(a("textarea", {
4463
+ a("label", Ha, [a("span", Ua, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, w(F.value) + "/" + w(E(40)), 1)]), j(a("textarea", {
4394
4464
  ref_key: "textarea",
4395
4465
  ref: h,
4396
4466
  "onUpdate:modelValue": o[0] ||= (e) => _.value = e,
@@ -4399,10 +4469,10 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4399
4469
  "aria-label": "标注文本",
4400
4470
  placeholder: "输入这处波形的说明",
4401
4471
  onKeydown: V
4402
- }, null, 40, Ia), [[D, _.value]])]),
4403
- a("fieldset", La, [
4472
+ }, null, 40, Wa), [[D, _.value]])]),
4473
+ a("fieldset", Ga, [
4404
4474
  o[12] ||= a("legend", null, "颜色与透明度", -1),
4405
- a("label", Ra, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
4475
+ a("label", Ka, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
4406
4476
  "pure-color": C.value,
4407
4477
  "onUpdate:pureColor": o[1] ||= (e) => C.value = e,
4408
4478
  "aria-label": "标注边框色",
@@ -4412,7 +4482,7 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4412
4482
  "disable-alpha": !1,
4413
4483
  "blur-close": !0
4414
4484
  }, null, 8, ["pure-color"])]),
4415
- a("label", za, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
4485
+ a("label", qa, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
4416
4486
  "pure-color": T.value,
4417
4487
  "onUpdate:pureColor": o[2] ||= (e) => T.value = e,
4418
4488
  "aria-label": "标注文字色",
@@ -4422,7 +4492,7 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4422
4492
  "disable-alpha": !1,
4423
4493
  "blur-close": !0
4424
4494
  }, null, 8, ["pure-color"])]),
4425
- a("label", Ba, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
4495
+ a("label", Ja, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
4426
4496
  "pure-color": k.value,
4427
4497
  "onUpdate:pureColor": o[3] ||= (e) => k.value = e,
4428
4498
  "aria-label": "标注背景色",
@@ -4437,13 +4507,13 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4437
4507
  _: 1
4438
4508
  }, 8, ["ok-button-props"]));
4439
4509
  }
4440
- }), [["__scopeId", "data-v-01ecd3a4"]]), Ha = { class: "waveform-tooltip__series-content" }, Ua = { class: "waveform-tooltip__series-label" }, Wa = {
4510
+ }), [["__scopeId", "data-v-01ecd3a4"]]), Xa = { class: "waveform-tooltip__series-content" }, Za = { class: "waveform-tooltip__series-label" }, Qa = {
4441
4511
  key: 0,
4442
4512
  class: "waveform-tooltip__value"
4443
- }, Ga = {
4513
+ }, $a = {
4444
4514
  key: 1,
4445
4515
  class: "waveform-tooltip__value waveform-tooltip__value--missing"
4446
- }, Ka = 12, qa = 8, Ja = 238, Ya = 560, Xa = 20, Za = 20, Qa = /*#__PURE__*/ et(/* @__PURE__ */ l({
4516
+ }, eo = 12, to = 8, no = 238, ro = 560, io = 20, ao = 20, oo = /*#__PURE__*/ et(/* @__PURE__ */ l({
4447
4517
  __name: "WaveformTooltip",
4448
4518
  props: {
4449
4519
  visible: { type: Boolean },
@@ -4457,7 +4527,7 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4457
4527
  setup(n) {
4458
4528
  let s = n;
4459
4529
  function c(e, t) {
4460
- let n = Math.max(1, t - Xa - 14), r = Math.max(1, Math.floor(n / 7.2));
4530
+ let n = Math.max(1, t - io - 14), r = Math.max(1, Math.floor(n / 7.2));
4461
4531
  return Math.max(1, Math.ceil([...e].length / r));
4462
4532
  }
4463
4533
  function l(e) {
@@ -4465,18 +4535,18 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4465
4535
  return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} ${t}`;
4466
4536
  }
4467
4537
  function u(e) {
4468
- return 16 + Za * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
4538
+ return 16 + ao * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
4469
4539
  }
4470
4540
  let d = t(() => {
4471
4541
  if (!s.visible || !s.hoveredPoint) return { display: "none" };
4472
- let e = s.position.x + Ka, t = s.position.x - Ka - Ja, n = s.containerWidth - qa - e, r = s.position.x - Ka - qa, i = Math.max(1, Math.min(Ya, s.containerWidth - qa * 2)), a = e + Ja <= s.containerWidth - qa ? {
4542
+ let e = s.position.x + eo, t = s.position.x - eo - no, n = s.containerWidth - to - e, r = s.position.x - eo - to, i = Math.max(1, Math.min(ro, s.containerWidth - to * 2)), a = e + no <= s.containerWidth - to ? {
4473
4543
  left: `${e}px`,
4474
- maxWidth: `${Math.min(Ya, n)}px`
4475
- } : t >= qa ? {
4476
- right: `${s.containerWidth - s.position.x + Ka}px`,
4477
- maxWidth: `${Math.min(Ya, r)}px`
4544
+ maxWidth: `${Math.min(ro, n)}px`
4545
+ } : t >= to ? {
4546
+ right: `${s.containerWidth - s.position.x + eo}px`,
4547
+ maxWidth: `${Math.min(ro, r)}px`
4478
4548
  } : {
4479
- left: `${qa}px`,
4549
+ left: `${to}px`,
4480
4550
  maxWidth: `${i}px`
4481
4551
  }, o = Number.parseFloat(a.maxWidth);
4482
4552
  return {
@@ -4491,9 +4561,9 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4491
4561
  }, [(v(!0), i(e, null, x(n.seriesPoints, (t) => (v(), i("span", {
4492
4562
  key: `${t.trackIndex}-${t.name}`,
4493
4563
  class: "waveform-tooltip__series waveform-chart__tooltip-series"
4494
- }, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", Ha, [a("span", Ua, [o(w(t.shotNo?.trim() || "未配置炮号") + ": " + w(t.name), 1), t.unit ? (v(), i(e, { key: 0 }, [o("(" + w(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (v(), i("span", Wa, "(x:" + w(E(Nt)(t.point.x, n.timeUnit)) + " y:" + w(E(Dt)(t.point.y)) + ")", 1)) : (v(), i("span", Ga, "无数据"))])]))), 128))], 4)) : r("", !0);
4564
+ }, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", Xa, [a("span", Za, [o(w(t.shotNo?.trim() || "未配置炮号") + ": " + w(t.name), 1), t.unit ? (v(), i(e, { key: 0 }, [o("(" + w(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (v(), i("span", Qa, "(x:" + w(E(Nt)(t.point.x, n.timeUnit)) + " y:" + w(E(Dt)(t.point.y)) + ")", 1)) : (v(), i("span", $a, "无数据"))])]))), 128))], 4)) : r("", !0);
4495
4565
  }
4496
- }), [["__scopeId", "data-v-1ae3316b"]]), $a = /* @__PURE__ */ l({
4566
+ }), [["__scopeId", "data-v-1ae3316b"]]), so = /* @__PURE__ */ l({
4497
4567
  __name: "WaveformHoverHost",
4498
4568
  props: {
4499
4569
  state: {},
@@ -4504,7 +4574,7 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4504
4574
  },
4505
4575
  setup(e) {
4506
4576
  let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
4507
- return (t, r) => (v(), n(Qa, {
4577
+ return (t, r) => (v(), n(oo, {
4508
4578
  visible: e.visible && i.value !== null,
4509
4579
  position: e.state.position,
4510
4580
  "time-unit": e.timeUnit,
@@ -4522,16 +4592,16 @@ var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
4522
4592
  "container-height"
4523
4593
  ]));
4524
4594
  }
4525
- }), eo = 13, to = 2, no = 14, ro = 8, io = 24, ao = {
4526
- circle: te,
4527
- square: re,
4528
- triangle: ie,
4529
- diamond: ne
4595
+ }), co = 13, lo = 2, uo = 14, fo = 8, po = 24, mo = {
4596
+ circle: ee,
4597
+ square: ne,
4598
+ triangle: re,
4599
+ diamond: te
4530
4600
  };
4531
- function oo(e, t = 48) {
4532
- return e === "none" ? null : ee().type(ao[e]).size(t)() ?? null;
4601
+ function ho(e, t = 48) {
4602
+ return e === "none" ? null : G().type(mo[e]).size(t)() ?? null;
4533
4603
  }
4534
- function so(e, t, n = 48) {
4604
+ function go(e, t, n = 48) {
4535
4605
  if (e === "none" || t.length === 0) return null;
4536
4606
  if (e === "circle") {
4537
4607
  let e = Math.sqrt(n / Math.PI);
@@ -4548,24 +4618,24 @@ function so(e, t, n = 48) {
4548
4618
  let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
4549
4619
  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("");
4550
4620
  }
4551
- function co(e) {
4621
+ function _o(e) {
4552
4622
  return e === "none" ? null : "M1 8H25";
4553
4623
  }
4554
- function lo(e) {
4624
+ function vo(e) {
4555
4625
  if (e === "dashed") return "8 5";
4556
4626
  if (e === "dash-dot") return "8 5 1.5 5";
4557
4627
  }
4558
- function uo(e) {
4559
- let t = (Number.isFinite(e) && e > 0 ? Math.min(e, io) : ro) / 2, n = eo - t, r = eo + t;
4628
+ function yo(e) {
4629
+ let t = (Number.isFinite(e) && e > 0 ? Math.min(e, po) : fo) / 2, n = co - t, r = co + t;
4560
4630
  return [
4561
- `M${n} ${to}H${r}`,
4562
- `M${eo} ${to}V${no}`,
4563
- `M${n} ${no}H${r}`
4631
+ `M${n} ${lo}H${r}`,
4632
+ `M${co} ${lo}V${uo}`,
4633
+ `M${n} ${uo}H${r}`
4564
4634
  ].join("");
4565
4635
  }
4566
4636
  //#endregion
4567
4637
  //#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
4568
- var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4638
+ var bo = ["clip-path"], xo = ["data-series-id", "data-series-name"], So = [
4569
4639
  "data-series-id",
4570
4640
  "data-series-name",
4571
4641
  "data-y-axis-index",
@@ -4574,11 +4644,11 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4574
4644
  "d",
4575
4645
  "stroke",
4576
4646
  "stroke-dasharray"
4577
- ], ho = ["data-series-id"], go = [
4647
+ ], Co = ["data-series-id"], wo = [
4578
4648
  "d",
4579
4649
  "stroke",
4580
4650
  "stroke-width"
4581
- ], _o = ["data-series-id", "data-point-type"], vo = ["d", "fill"], yo = /*#__PURE__*/ et(/* @__PURE__ */ l({
4651
+ ], To = ["data-series-id", "data-point-type"], Eo = ["d", "fill"], Do = /*#__PURE__*/ et(/* @__PURE__ */ l({
4582
4652
  __name: "WaveformSeriesLayer",
4583
4653
  props: {
4584
4654
  track: {},
@@ -4586,7 +4656,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4586
4656
  },
4587
4657
  setup(n) {
4588
4658
  let a = n, o = t(() => a.track.seriesPaths.map((e) => {
4589
- let t = so(e.series.pointType, e.pointRenderPoints.map((t) => ({
4659
+ let t = go(e.series.pointType, e.pointRenderPoints.map((t) => ({
4590
4660
  x: a.track.xScale(t.x),
4591
4661
  y: e.yScale(t.y)
4592
4662
  }))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
@@ -4623,8 +4693,8 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4623
4693
  "data-line-style": e.series.lineStyle,
4624
4694
  d: e.path,
4625
4695
  stroke: e.series.color,
4626
- "stroke-dasharray": E(lo)(e.series.lineStyle)
4627
- }, null, 8, mo)) : r("", !0),
4696
+ "stroke-dasharray": E(vo)(e.series.lineStyle)
4697
+ }, null, 8, So)) : r("", !0),
4628
4698
  e.series.errorBar.visible ? (v(), i("g", {
4629
4699
  key: 1,
4630
4700
  class: "waveform-track__error-bars waveform-chart__error-bars",
@@ -4635,7 +4705,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4635
4705
  d: e.errorBarPath,
4636
4706
  stroke: e.series.errorBar.color || e.series.color,
4637
4707
  "stroke-width": e.series.errorBar.width
4638
- }, null, 8, go)) : r("", !0)], 8, ho)) : r("", !0),
4708
+ }, null, 8, wo)) : r("", !0)], 8, Co)) : r("", !0),
4639
4709
  e.series.pointType === "none" ? r("", !0) : (v(), i("g", {
4640
4710
  key: 2,
4641
4711
  class: "waveform-track__points waveform-chart__points",
@@ -4646,28 +4716,28 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4646
4716
  class: "waveform-track__point waveform-chart__point",
4647
4717
  d: e.pointPath,
4648
4718
  fill: e.series.color
4649
- }, null, 8, vo)) : r("", !0)], 8, _o))
4650
- ], 8, po))), 128))], 8, fo)) : r("", !0);
4719
+ }, null, 8, Eo)) : r("", !0)], 8, To))
4720
+ ], 8, xo))), 128))], 8, bo)) : r("", !0);
4651
4721
  }
4652
- }), [["__scopeId", "data-v-42a3fd47"]]), bo = ["transform"], xo = ["transform"], So = {
4722
+ }), [["__scopeId", "data-v-42a3fd47"]]), Oo = ["transform"], ko = ["transform"], Ao = {
4653
4723
  class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
4654
4724
  x: "0",
4655
4725
  y: "7",
4656
4726
  dy: "0.71em",
4657
4727
  "text-anchor": "start"
4658
- }, Co = ["x"], wo = [
4728
+ }, jo = ["x"], Mo = [
4659
4729
  "data-y-axis-index",
4660
4730
  "data-y-axis-side",
4661
4731
  "transform"
4662
- ], To = { key: 2 }, Eo = [
4732
+ ], No = { key: 2 }, Po = [
4663
4733
  "x",
4664
4734
  "y",
4665
4735
  "width"
4666
- ], Do = ["fill", "transform"], Oo = ["data-y-axis-title-index"], ko = [
4736
+ ], Fo = ["fill", "transform"], Io = ["data-y-axis-title-index"], Lo = [
4667
4737
  "x",
4668
4738
  "y",
4669
4739
  "width"
4670
- ], Ao = ["fill", "transform"], jo = /* @__PURE__ */ l({
4740
+ ], Ro = ["fill", "transform"], zo = /* @__PURE__ */ l({
4671
4741
  __name: "WaveformTrackAxes",
4672
4742
  props: {
4673
4743
  track: {},
@@ -4727,7 +4797,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4727
4797
  ref: o,
4728
4798
  class: p(["waveform-track__axis waveform-track__axis--x waveform-chart__axis waveform-chart__axis--x", { "waveform-track__axis--line-hidden": t.axes?.x?.lineVisible === !1 }]),
4729
4799
  transform: `translate(0, ${t.track.height})`
4730
- }, null, 10, bo)) : r("", !0),
4800
+ }, null, 10, Oo)) : r("", !0),
4731
4801
  t.track.showXAxis ? (v(), i("g", {
4732
4802
  key: 1,
4733
4803
  class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
@@ -4735,13 +4805,13 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4735
4805
  "font-family": "sans-serif",
4736
4806
  "font-size": "10",
4737
4807
  "aria-hidden": "true"
4738
- }, [a("text", So, w(t.track.endpointLabels.start), 1), a("text", {
4808
+ }, [a("text", Ao, w(t.track.endpointLabels.start), 1), a("text", {
4739
4809
  class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
4740
4810
  x: t.track.width ?? t.innerWidth,
4741
4811
  y: "7",
4742
4812
  dy: "0.71em",
4743
4813
  "text-anchor": "end"
4744
- }, w(t.track.endpointLabels.end), 9, Co)], 8, xo)) : r("", !0),
4814
+ }, w(t.track.endpointLabels.end), 9, jo)], 8, ko)) : r("", !0),
4745
4815
  (v(!0), i(e, null, x(t.track.isEmpty ? [] : t.track.yAxes, (e) => (v(), i("g", {
4746
4816
  key: `y-axis-${t.track.index}-${e.index}`,
4747
4817
  ref_for: !0,
@@ -4750,21 +4820,21 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4750
4820
  "data-y-axis-index": e.index,
4751
4821
  "data-y-axis-side": e.side,
4752
4822
  transform: `translate(${e.x}, 0)`
4753
- }, null, 10, wo))), 128)),
4754
- !t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && t.track.series && c(t.track.series) && d(t.track.height, t.track.index) ? (v(), i("g", To, [a("rect", {
4823
+ }, null, 10, Mo))), 128)),
4824
+ !t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && t.track.series && c(t.track.series) && d(t.track.height, t.track.index) ? (v(), i("g", No, [a("rect", {
4755
4825
  class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
4756
4826
  x: t.track.yAxisLabelX - E(12) / 2,
4757
4827
  y: t.track.height / 2 - 40,
4758
4828
  width: E(12),
4759
4829
  height: "80",
4760
4830
  rx: "2"
4761
- }, null, 8, Eo), a("text", {
4831
+ }, null, 8, Po), a("text", {
4762
4832
  class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
4763
4833
  fill: t.track.series?.color,
4764
4834
  transform: `translate(${t.track.yAxisLabelX}, ${t.track.height / 2}) rotate(-90)`,
4765
4835
  "text-anchor": "middle",
4766
4836
  "dominant-baseline": "central"
4767
- }, w(t.track.series ? c(t.track.series) : ""), 9, Do)])) : r("", !0),
4837
+ }, w(t.track.series ? c(t.track.series) : ""), 9, Fo)])) : r("", !0),
4768
4838
  (v(!0), i(e, null, x(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (v(), i("g", {
4769
4839
  key: `y-axis-title-${t.track.index}-${e.index}`,
4770
4840
  class: "waveform-track__multi-axis-title",
@@ -4776,40 +4846,40 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4776
4846
  width: E(12),
4777
4847
  height: "80",
4778
4848
  rx: "2"
4779
- }, null, 8, ko), a("text", {
4849
+ }, null, 8, Lo), a("text", {
4780
4850
  class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
4781
4851
  fill: e.seriesList[0].color,
4782
4852
  transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
4783
4853
  "text-anchor": "middle",
4784
4854
  "dominant-baseline": "central"
4785
- }, w(c(e.seriesList[0])), 9, Ao)], 8, Oo))), 128))
4855
+ }, w(c(e.seriesList[0])), 9, Ro)], 8, Io))), 128))
4786
4856
  ], 64));
4787
4857
  }
4788
- }), Mo = [
4858
+ }), Bo = [
4789
4859
  "width",
4790
4860
  "height",
4791
4861
  "fill"
4792
- ], No = ["clip-path"], Po = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Fo = [
4862
+ ], Vo = ["clip-path"], Ho = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Uo = [
4793
4863
  "stroke",
4794
4864
  "x1",
4795
4865
  "x2",
4796
4866
  "y2"
4797
- ], Io = [
4867
+ ], Wo = [
4798
4868
  "stroke",
4799
4869
  "x2",
4800
4870
  "y1",
4801
4871
  "y2"
4802
- ], Lo = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Ro = [
4872
+ ], Go = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Ko = [
4803
4873
  "stroke",
4804
4874
  "x1",
4805
4875
  "x2",
4806
4876
  "y2"
4807
- ], zo = [
4877
+ ], qo = [
4808
4878
  "stroke",
4809
4879
  "x2",
4810
4880
  "y1",
4811
4881
  "y2"
4812
- ], Bo = ["clip-path"], Vo = [
4882
+ ], Jo = ["clip-path"], Yo = [
4813
4883
  "data-y-axis-index",
4814
4884
  "x2",
4815
4885
  "y1",
@@ -4817,7 +4887,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4817
4887
  "stroke",
4818
4888
  "stroke-width",
4819
4889
  "stroke-dasharray"
4820
- ], Ho = ["x", "y"], Uo = /* @__PURE__ */ l({
4890
+ ], Xo = ["x", "y"], Zo = /* @__PURE__ */ l({
4821
4891
  __name: "WaveformTrackBackdrop",
4822
4892
  props: {
4823
4893
  track: {},
@@ -4842,12 +4912,12 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4842
4912
  height: t.track.height,
4843
4913
  fill: t.frameStyle.backgroundColor,
4844
4914
  "aria-hidden": "true"
4845
- }, null, 8, Mo)) : r("", !0),
4915
+ }, null, 8, Bo)) : r("", !0),
4846
4916
  !t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (v(), i("g", {
4847
4917
  key: 1,
4848
4918
  "clip-path": `url(#${t.clipPathId}-${t.track.index})`,
4849
4919
  "aria-hidden": "true"
4850
- }, [a("g", Po, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
4920
+ }, [a("g", Ho, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
4851
4921
  key: `x-minor-${t.track.index}-${e}`,
4852
4922
  "data-grid-direction": "vertical",
4853
4923
  stroke: t.track.gridLines.verticalColor,
@@ -4855,7 +4925,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4855
4925
  x2: t.track.xScale(e),
4856
4926
  y1: "0",
4857
4927
  y2: t.track.height
4858
- }, null, 8, Fo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMinorTicks, (e) => (v(), i("line", {
4928
+ }, null, 8, Uo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMinorTicks, (e) => (v(), i("line", {
4859
4929
  key: `y-minor-${t.track.index}-${e}`,
4860
4930
  "data-grid-direction": "horizontal",
4861
4931
  stroke: t.track.gridLines.horizontalColor,
@@ -4863,7 +4933,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4863
4933
  x2: t.track.width ?? t.innerWidth,
4864
4934
  y1: t.track.yScale(e),
4865
4935
  y2: t.track.yScale(e)
4866
- }, null, 8, Io))), 128)) : r("", !0)]), a("g", Lo, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMajorTicks, (e) => (v(), i("line", {
4936
+ }, null, 8, Wo))), 128)) : r("", !0)]), a("g", Go, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMajorTicks, (e) => (v(), i("line", {
4867
4937
  key: `x-major-${t.track.index}-${e}`,
4868
4938
  "data-grid-direction": "vertical",
4869
4939
  stroke: t.track.gridLines.verticalColor,
@@ -4871,7 +4941,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4871
4941
  x2: t.track.xScale(e),
4872
4942
  y1: "0",
4873
4943
  y2: t.track.height
4874
- }, null, 8, Ro))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMajorTicks, (e) => (v(), i("line", {
4944
+ }, null, 8, Ko))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMajorTicks, (e) => (v(), i("line", {
4875
4945
  key: `y-major-${t.track.index}-${e}`,
4876
4946
  "data-grid-direction": "horizontal",
4877
4947
  stroke: t.track.gridLines.horizontalColor,
@@ -4879,7 +4949,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4879
4949
  x2: t.track.width ?? t.innerWidth,
4880
4950
  y1: t.track.yScale(e),
4881
4951
  y2: t.track.yScale(e)
4882
- }, null, 8, zo))), 128)) : r("", !0)])], 8, No)) : r("", !0),
4952
+ }, null, 8, qo))), 128)) : r("", !0)])], 8, Vo)) : r("", !0),
4883
4953
  !t.track.isEmpty && t.track.hasVisibleSeries && t.zeroLine.visible && !t.cleanView ? (v(), i("g", {
4884
4954
  key: 2,
4885
4955
  class: "waveform-track__zero-lines waveform-chart__zero-lines",
@@ -4896,7 +4966,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4896
4966
  stroke: t.zeroLine.color,
4897
4967
  "stroke-width": t.zeroLine.width,
4898
4968
  "stroke-dasharray": t.zeroLine.dash || void 0
4899
- }, null, 8, Vo))], 64))), 128))], 8, Bo)) : r("", !0),
4969
+ }, null, 8, Yo))], 64))), 128))], 8, Jo)) : r("", !0),
4900
4970
  !t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (v(), i("text", {
4901
4971
  key: 3,
4902
4972
  class: "waveform-track__watermark waveform-chart__watermark",
@@ -4906,10 +4976,10 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4906
4976
  "text-anchor": "middle",
4907
4977
  "dominant-baseline": "central",
4908
4978
  "aria-hidden": "true"
4909
- }, w(t.frameNumber), 13, Ho)) : r("", !0)
4979
+ }, w(t.frameNumber), 13, Xo)) : r("", !0)
4910
4980
  ], 64));
4911
4981
  }
4912
- }), Wo = [
4982
+ }), Qo = [
4913
4983
  "data-track-index",
4914
4984
  "data-track-id",
4915
4985
  "data-track-empty",
@@ -4919,19 +4989,19 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4919
4989
  "data-track-top",
4920
4990
  "data-track-height",
4921
4991
  "transform"
4922
- ], Go = [
4992
+ ], $o = [
4923
4993
  "width",
4924
4994
  "height",
4925
4995
  "stroke",
4926
4996
  "stroke-width",
4927
4997
  "stroke-dasharray",
4928
4998
  "stroke-linecap"
4929
- ], Ko = [
4999
+ ], es = [
4930
5000
  "data-interactive",
4931
5001
  "data-independent-overlay-index",
4932
5002
  "width",
4933
5003
  "height"
4934
- ], qo = ["x", "y"], Jo = /* @__PURE__ */ l({
5004
+ ], ts = ["x", "y"], ns = /* @__PURE__ */ l({
4935
5005
  __name: "WaveformTrack",
4936
5006
  props: {
4937
5007
  track: {},
@@ -4991,7 +5061,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
4991
5061
  "data-track-height": e.track.height,
4992
5062
  transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
4993
5063
  }, [
4994
- s(Uo, {
5064
+ s(Zo, {
4995
5065
  track: e.track,
4996
5066
  "clip-path-id": e.clipPathId,
4997
5067
  "inner-width": e.innerWidth,
@@ -5008,7 +5078,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5008
5078
  "frame-style",
5009
5079
  "zero-line"
5010
5080
  ]),
5011
- s(jo, {
5081
+ s(zo, {
5012
5082
  track: e.track,
5013
5083
  "inner-width": e.innerWidth,
5014
5084
  "clean-view": e.cleanView,
@@ -5034,8 +5104,8 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5034
5104
  "stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
5035
5105
  "stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
5036
5106
  "aria-hidden": "true"
5037
- }, null, 8, Go)),
5038
- s(yo, {
5107
+ }, null, 8, $o)),
5108
+ s(Do, {
5039
5109
  track: e.track,
5040
5110
  "clip-path-id": e.clipPathId
5041
5111
  }, null, 8, ["track", "clip-path-id"]),
@@ -5057,7 +5127,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5057
5127
  onPointerleave: n[4] ||= (e) => o("pointer-leave"),
5058
5128
  onClick: n[5] ||= (e) => o("click", e),
5059
5129
  onContextmenu: n[6] ||= (e) => o("contextmenu", e)
5060
- }, null, 42, Ko)) : r("", !0),
5130
+ }, null, 42, es)) : r("", !0),
5061
5131
  !e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (v(), i("text", {
5062
5132
  key: 2,
5063
5133
  class: "waveform-track__no-visible-series",
@@ -5065,33 +5135,33 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5065
5135
  y: e.track.height / 2,
5066
5136
  "text-anchor": "middle",
5067
5137
  "dominant-baseline": "central"
5068
- }, " 暂无可见曲线 ", 8, qo)) : r("", !0)
5069
- ], 10, Wo));
5138
+ }, " 暂无可见曲线 ", 8, ts)) : r("", !0)
5139
+ ], 10, Qo));
5070
5140
  }
5071
- }), Yo = [
5141
+ }), rs = [
5072
5142
  "width",
5073
5143
  "height",
5074
5144
  "data-position",
5075
5145
  "data-orientation"
5076
- ], Xo = [
5146
+ ], is = [
5077
5147
  "disabled",
5078
5148
  "aria-pressed",
5079
5149
  "aria-label",
5080
5150
  "onClick"
5081
- ], Zo = [
5151
+ ], as = [
5082
5152
  "data-line-type",
5083
5153
  "data-line-style",
5084
5154
  "data-point-type",
5085
5155
  "data-error-bar-visible"
5086
- ], Qo = [
5156
+ ], os = [
5087
5157
  "d",
5088
5158
  "stroke",
5089
5159
  "stroke-dasharray"
5090
- ], $o = [
5160
+ ], ss = [
5091
5161
  "d",
5092
5162
  "stroke",
5093
5163
  "stroke-width"
5094
- ], es = ["d", "fill"], ts = ["title"], ns = /*#__PURE__*/ et(/* @__PURE__ */ l({
5164
+ ], cs = ["d", "fill"], ls = ["title"], us = /*#__PURE__*/ et(/* @__PURE__ */ l({
5095
5165
  __name: "WaveformLegend",
5096
5166
  props: {
5097
5167
  series: {},
@@ -5149,45 +5219,45 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5149
5219
  "data-point-type": e.pointType,
5150
5220
  "data-error-bar-visible": e.errorBar.visible || void 0
5151
5221
  }, [
5152
- E(co)(e.lineType) ? (v(), i("path", {
5222
+ E(_o)(e.lineType) ? (v(), i("path", {
5153
5223
  key: 0,
5154
5224
  class: "waveform-legend__line",
5155
- d: E(co)(e.lineType) ?? void 0,
5225
+ d: E(_o)(e.lineType) ?? void 0,
5156
5226
  stroke: e.color,
5157
- "stroke-dasharray": E(lo)(e.lineStyle),
5227
+ "stroke-dasharray": E(vo)(e.lineStyle),
5158
5228
  "stroke-width": "1.5",
5159
5229
  fill: "none"
5160
- }, null, 8, Qo)) : r("", !0),
5230
+ }, null, 8, os)) : r("", !0),
5161
5231
  e.errorBar.visible ? (v(), i("path", {
5162
5232
  key: 1,
5163
5233
  class: "waveform-legend__error-bar",
5164
- d: E(uo)(e.errorBar.capWidth),
5234
+ d: E(yo)(e.errorBar.capWidth),
5165
5235
  stroke: e.errorBar.color || e.color,
5166
5236
  "stroke-width": e.errorBar.width,
5167
5237
  "stroke-linecap": "butt",
5168
5238
  fill: "none"
5169
- }, null, 8, $o)) : r("", !0),
5239
+ }, null, 8, ss)) : r("", !0),
5170
5240
  e.pointType === "none" ? r("", !0) : (v(), i("path", {
5171
5241
  key: 2,
5172
5242
  class: "waveform-legend__point",
5173
- d: E(oo)(e.pointType, 30) ?? void 0,
5243
+ d: E(ho)(e.pointType, 30) ?? void 0,
5174
5244
  fill: e.color,
5175
5245
  transform: "translate(13 8)"
5176
- }, null, 8, es))
5177
- ], 8, Zo)), a("span", {
5246
+ }, null, 8, cs))
5247
+ ], 8, as)), a("span", {
5178
5248
  class: "waveform-legend__label",
5179
5249
  title: e.name
5180
- }, w(e.name), 9, ts)], 10, Xo))), 128))], 6)], 2)], 8, Yo));
5250
+ }, w(e.name), 9, ls)], 10, is))), 128))], 6)], 2)], 8, rs));
5181
5251
  }
5182
- }), [["__scopeId", "data-v-2ae12e71"]]), rs = {
5252
+ }), [["__scopeId", "data-v-2ae12e71"]]), ds = {
5183
5253
  class: "waveform-chart__hover-layer",
5184
5254
  "pointer-events": "none",
5185
5255
  "aria-hidden": "true"
5186
- }, is = ["clip-path", "transform"], as = [
5256
+ }, fs = ["clip-path", "transform"], ps = [
5187
5257
  "x1",
5188
5258
  "x2",
5189
5259
  "y2"
5190
- ], os = /*#__PURE__*/ et(/* @__PURE__ */ l({
5260
+ ], ms = /*#__PURE__*/ et(/* @__PURE__ */ l({
5191
5261
  __name: "WaveformHoverLayer",
5192
5262
  props: {
5193
5263
  state: {},
@@ -5203,7 +5273,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5203
5273
  x: e.xScale(n)
5204
5274
  }] : [];
5205
5275
  }));
5206
- return (t, r) => (v(), i("g", rs, [(v(!0), i(e, null, x(o.value, (e) => (v(), i("g", {
5276
+ return (t, r) => (v(), i("g", ds, [(v(!0), i(e, null, x(o.value, (e) => (v(), i("g", {
5207
5277
  key: e.track.index,
5208
5278
  class: "waveform-track__crosshair waveform-chart__crosshair",
5209
5279
  "clip-path": `url(#${n.clipPathId}-${e.track.index})`,
@@ -5213,9 +5283,9 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5213
5283
  x2: e.x,
5214
5284
  y1: "0",
5215
5285
  y2: e.track.height
5216
- }, null, 8, as)], 8, is))), 128))]));
5286
+ }, null, 8, ps)], 8, fs))), 128))]));
5217
5287
  }
5218
- }), [["__scopeId", "data-v-54a5a37d"]]), ss = [
5288
+ }), [["__scopeId", "data-v-54a5a37d"]]), hs = [
5219
5289
  "data-display-mode",
5220
5290
  "data-interaction-mode",
5221
5291
  "data-presentation-mode",
@@ -5224,37 +5294,37 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5224
5294
  "data-plot-margin-top",
5225
5295
  "data-plot-margin-bottom",
5226
5296
  "data-title-area-height"
5227
- ], cs = [
5297
+ ], gs = [
5228
5298
  "role",
5229
5299
  "aria-level",
5230
5300
  "aria-hidden"
5231
- ], ls = ["data-title-scale", "data-title-wrapped"], us = [
5301
+ ], _s = ["data-title-scale", "data-title-wrapped"], vs = [
5232
5302
  "width",
5233
5303
  "height",
5234
5304
  "aria-label"
5235
- ], ds = ["id"], fs = ["width", "height"], ps = ["transform"], ms = {
5305
+ ], ys = ["id"], bs = ["width", "height"], xs = ["transform"], Ss = {
5236
5306
  key: 0,
5237
5307
  class: "waveform-chart__grid-slots",
5238
5308
  "aria-hidden": "true"
5239
- }, hs = ["transform"], gs = ["width", "height"], _s = ["width", "height"], vs = [
5309
+ }, Cs = ["transform"], ws = ["width", "height"], Ts = ["width", "height"], Es = [
5240
5310
  "x",
5241
5311
  "y",
5242
5312
  "width",
5243
5313
  "height"
5244
- ], ys = {
5314
+ ], Ds = {
5245
5315
  key: 4,
5246
5316
  class: "waveform-chart__legend-layer"
5247
- }, bs = [
5317
+ }, Os = [
5248
5318
  "data-legend-track-index",
5249
5319
  "data-legend-track-id",
5250
5320
  "transform"
5251
- ], xs = ["x", "y"], Ss = ["x", "y"], Cs = /* @__PURE__ */ l({
5321
+ ], ks = ["x", "y"], As = ["x", "y"], js = /* @__PURE__ */ l({
5252
5322
  __name: "WaveformChartView",
5253
5323
  props: { controller: {} },
5254
5324
  setup(t) {
5255
- let { displayMode: o, activeInteractionMode: c, isCleanView: l, isPresentationMode: u, selection: d, containerStyle: f, overlayMode: h, resolvedChartLeftMargin: g, titleAreaHeight: _, resolvedPlotMargin: y, pointerInsideChart: b, handleNativeContextMenu: S, titleAreaReserved: C, titleAreaStyle: D, titleVisible: O, titleMeasureStyle: k, resolvedTitleText: A, titleVisualStyle: j, titleTextStyle: M, titleLayout: N, chartWidth: P, drawingHeight: F, hasWaveformData: I, requestViewportReset: L, trackLayouts: R, clipPathId: z, chartTopMargin: B, gridCells: V, hasVisibleWaveformData: H, zoomable: U, isZoomMode: W, innerWidth: ee, innerHeight: te, handleSharedPointerMove: ne, beginSharedViewportDrag: re, finishViewportDrag: ie, cancelViewportDrag: G, handlePointerLeave: K, handleAnnotationClick: q, handleAnnotationContextMenu: ae, resolveFrameNumber: oe, frameStyle: ce, axes: le, resolvedZeroLine: ue, timeUnit: de, yLabel: J, handleIndependentPointerMove: fe, beginViewportDrag: Y, hoverState: pe, showTooltip: me, selectionBox: he, renderedAnnotations: ge, annotationsVisible: _e, handleExistingAnnotationContextMenu: ve, beginAnnotationDrag: ye, handleAnnotationMove: be, endAnnotationDrag: xe, resolveLegendPosition: X, resolveLegendOrientation: Se, legendBackgroundColor: Ce, legendInteractive: we, resolvedHiddenSeriesIds: Te, toggleSeriesVisibility: Ee, resolvedXLabel: De, xAxisTitleY: Oe, hasChartArea: ke, gridOptions: Ae, pageCount: je, currentPage: Me, getPageSize: Ne, chartTracks: Pe, goToPage: Fe, annotationInteraction: Ie, editorDraft: Le, contextMenu: Re, editorSeries: ze, editorSeriesOptions: Be, timeError: Ve, confirmAnnotation: He, cancelAnnotation: Ue, changeDraftSeries: We, changeDraftTime: Ge, editContextAnnotation: Ke, deleteContextAnnotation: qe, chartHeight: Je, setContainer: Ye, setSvgElement: Xe, setTitleMeasureElement: Ze, setSharedOverlayElement: Qe } = T(t.controller);
5325
+ let { displayMode: o, activeInteractionMode: c, isCleanView: l, isPresentationMode: u, selection: d, containerStyle: f, overlayMode: h, resolvedChartLeftMargin: g, titleAreaHeight: _, resolvedPlotMargin: y, pointerInsideChart: b, handleNativeContextMenu: S, titleAreaReserved: C, titleAreaStyle: D, titleVisible: O, titleMeasureStyle: k, resolvedTitleText: A, titleVisualStyle: j, titleTextStyle: M, titleLayout: N, chartWidth: P, drawingHeight: F, hasWaveformData: I, requestViewportReset: L, trackLayouts: R, clipPathId: z, chartTopMargin: B, gridCells: V, hasVisibleWaveformData: H, zoomable: U, isZoomMode: W, innerWidth: G, innerHeight: ee, handleSharedPointerMove: te, beginSharedViewportDrag: ne, finishViewportDrag: re, cancelViewportDrag: K, handlePointerLeave: q, handleAnnotationClick: J, handleAnnotationContextMenu: ie, resolveFrameNumber: ae, frameStyle: se, axes: ce, resolvedZeroLine: le, timeUnit: ue, yLabel: Y, handleIndependentPointerMove: de, beginViewportDrag: fe, hoverState: pe, showTooltip: me, selectionBox: he, renderedAnnotations: ge, annotationsVisible: _e, handleExistingAnnotationContextMenu: ve, beginAnnotationDrag: ye, handleAnnotationMove: be, endAnnotationDrag: xe, resolveLegendPosition: X, resolveLegendOrientation: Se, legendBackgroundColor: Ce, legendInteractive: we, resolvedHiddenSeriesIds: Te, toggleSeriesVisibility: Ee, resolvedXLabel: De, xAxisTitleY: Oe, hasChartArea: ke, gridOptions: Ae, pageCount: je, currentPage: Me, getPageSize: Ne, pageableTracks: Pe, goToPage: Fe, annotationInteraction: Ie, editorDraft: Le, contextMenu: Re, editorSeries: ze, editorSeriesOptions: Be, timeError: Ve, confirmAnnotation: He, cancelAnnotation: Ue, changeDraftSeries: We, changeDraftTime: Ge, editContextAnnotation: Ke, deleteContextAnnotation: qe, chartHeight: Je, setContainer: Ye, setSvgElement: Xe, setTitleMeasureElement: Ze, setSharedOverlayElement: Qe } = T(t.controller);
5256
5326
  function $e() {
5257
- b.value = !1, K.value();
5327
+ b.value = !1, q.value();
5258
5328
  }
5259
5329
  return (t, T) => (v(), i("div", {
5260
5330
  ref: E(Ye),
@@ -5301,7 +5371,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5301
5371
  style: m(E(M)),
5302
5372
  "data-title-scale": E(N).scale,
5303
5373
  "data-title-wrapped": E(N).wrapped || void 0
5304
- }, w(E(A)), 13, ls)], 4)) : r("", !0)], 12, cs)) : r("", !0),
5374
+ }, w(E(A)), 13, _s)], 4)) : r("", !0)], 12, gs)) : r("", !0),
5305
5375
  (v(), i("svg", {
5306
5376
  ref: E(Xe),
5307
5377
  class: "waveform-chart__svg",
@@ -5318,9 +5388,9 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5318
5388
  }, [a("rect", {
5319
5389
  width: e.width,
5320
5390
  height: e.height
5321
- }, null, 8, fs)], 8, ds))), 128))]),
5391
+ }, null, 8, bs)], 8, ys))), 128))]),
5322
5392
  a("g", { transform: `translate(${E(g)}, ${E(B)})` }, [
5323
- E(o) !== "compact" && !E(l) ? (v(), i("g", ms, [(v(!0), i(e, null, x(E(V), (e) => (v(), i("g", {
5393
+ E(o) !== "compact" && !E(l) ? (v(), i("g", Ss, [(v(!0), i(e, null, x(E(V), (e) => (v(), i("g", {
5324
5394
  key: `grid-slot-${e.slotIndex}`,
5325
5395
  transform: `translate(${e.left}, ${e.top})`
5326
5396
  }, [e.series ? r("", !0) : (v(), i("rect", {
@@ -5328,7 +5398,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5328
5398
  class: "waveform-chart__grid-slot-placeholder",
5329
5399
  width: e.width,
5330
5400
  height: e.cellHeight
5331
- }, null, 8, gs))], 8, hs))), 128))])) : r("", !0),
5401
+ }, null, 8, ws))], 8, Cs))), 128))])) : r("", !0),
5332
5402
  E(o) !== "independent" && E(R).length && E(H) ? (v(), i("rect", {
5333
5403
  key: 1,
5334
5404
  ref: E(Qe),
@@ -5336,39 +5406,39 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5336
5406
  "is-zoomable": !E(u) && E(U) && E(W),
5337
5407
  "is-annotating": !E(u) && E(c) === "annotation"
5338
5408
  }]),
5339
- width: E(ee),
5340
- height: E(te),
5341
- onPointermove: T[0] ||= (...e) => E(ne) && E(ne)(...e),
5342
- onPointerdown: T[1] ||= (...e) => E(re) && E(re)(...e),
5343
- onPointerup: T[2] ||= (...e) => E(ie) && E(ie)(...e),
5344
- onPointercancel: T[3] ||= (...e) => E(G) && E(G)(...e),
5345
- onPointerleave: T[4] ||= (...e) => E(K) && E(K)(...e),
5346
- onClick: T[5] ||= (...e) => E(q) && E(q)(...e),
5347
- onContextmenu: T[6] ||= (...e) => E(ae) && E(ae)(...e)
5348
- }, null, 42, _s)) : r("", !0),
5349
- (v(!0), i(e, null, x(E(R), (e) => (v(), n(E(Jo), {
5409
+ width: E(G),
5410
+ height: E(ee),
5411
+ onPointermove: T[0] ||= (...e) => E(te) && E(te)(...e),
5412
+ onPointerdown: T[1] ||= (...e) => E(ne) && E(ne)(...e),
5413
+ onPointerup: T[2] ||= (...e) => E(re) && E(re)(...e),
5414
+ onPointercancel: T[3] ||= (...e) => E(K) && E(K)(...e),
5415
+ onPointerleave: T[4] ||= (...e) => E(q) && E(q)(...e),
5416
+ onClick: T[5] ||= (...e) => E(J) && E(J)(...e),
5417
+ onContextmenu: T[6] ||= (...e) => E(ie) && E(ie)(...e)
5418
+ }, null, 42, Ts)) : r("", !0),
5419
+ (v(!0), i(e, null, x(E(R), (e) => (v(), n(E(ns), {
5350
5420
  key: `${e.index}-${e.id}`,
5351
5421
  track: e,
5352
5422
  "clip-path-id": E(z),
5353
- "inner-width": E(ee),
5423
+ "inner-width": E(G),
5354
5424
  zoomable: E(U),
5355
5425
  interactive: !E(u),
5356
5426
  "display-mode": E(o),
5357
5427
  "interaction-mode": E(c),
5358
- "frame-number": E(oe)(e.index),
5359
- "frame-style": E(ce),
5360
- axes: E(le),
5428
+ "frame-number": E(ae)(e.id),
5429
+ "frame-style": E(se),
5430
+ axes: E(ce),
5361
5431
  "clean-view": E(l),
5362
- "zero-line": E(ue),
5363
- "time-unit": E(de),
5364
- "y-label": E(J),
5365
- onPointerMove: (t) => E(fe)(t, e.index),
5366
- onPointerDown: (t) => E(Y)(t, e.index, !0),
5367
- onPointerUp: E(ie),
5368
- onPointerCancel: E(G),
5369
- onPointerLeave: E(K),
5370
- onClick: (t) => E(q)(t, e.index),
5371
- onContextmenu: (t) => E(ae)(t, e.index)
5432
+ "zero-line": E(le),
5433
+ "time-unit": E(ue),
5434
+ "y-label": E(Y),
5435
+ onPointerMove: (t) => E(de)(t, e.index),
5436
+ onPointerDown: (t) => E(fe)(t, e.index, !0),
5437
+ onPointerUp: E(re),
5438
+ onPointerCancel: E(K),
5439
+ onPointerLeave: E(q),
5440
+ onClick: (t) => E(J)(t, e.index),
5441
+ onContextmenu: (t) => E(ie)(t, e.index)
5372
5442
  }, null, 8, [
5373
5443
  "track",
5374
5444
  "clip-path-id",
@@ -5392,7 +5462,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5392
5462
  "onClick",
5393
5463
  "onContextmenu"
5394
5464
  ]))), 128)),
5395
- s(E(os), {
5465
+ s(E(ms), {
5396
5466
  state: E(pe),
5397
5467
  tracks: E(R),
5398
5468
  "clip-path-id": E(z),
@@ -5411,7 +5481,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5411
5481
  width: E(he).width,
5412
5482
  height: E(he).height,
5413
5483
  "aria-hidden": "true"
5414
- }, null, 8, vs)) : r("", !0),
5484
+ }, null, 8, Es)) : r("", !0),
5415
5485
  E(l) ? r("", !0) : (v(), n(E(tt), {
5416
5486
  key: 3,
5417
5487
  annotations: E(ge),
@@ -5430,13 +5500,13 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5430
5500
  "onMove",
5431
5501
  "onDragEnd"
5432
5502
  ])),
5433
- E(l) ? r("", !0) : (v(), i("g", ys, [(v(!0), i(e, null, x(E(R), (e) => (v(), i("g", {
5503
+ E(l) ? r("", !0) : (v(), i("g", Ds, [(v(!0), i(e, null, x(E(R), (e) => (v(), i("g", {
5434
5504
  key: `legend-${e.index}-${e.id}`,
5435
5505
  class: "waveform-chart__legend-track",
5436
5506
  "data-legend-track-index": e.index,
5437
5507
  "data-legend-track-id": e.id,
5438
5508
  transform: `translate(${e.left}, ${e.top})`
5439
- }, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(ns), {
5509
+ }, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(us), {
5440
5510
  key: 0,
5441
5511
  series: e.legendSeries,
5442
5512
  position: E(X)(e.id),
@@ -5444,7 +5514,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5444
5514
  "background-color": E(Ce),
5445
5515
  interactive: E(we),
5446
5516
  "hidden-series-ids": E(Te),
5447
- width: e.width ?? E(ee),
5517
+ width: e.width ?? E(G),
5448
5518
  height: e.height,
5449
5519
  onToggle: E(Ee)
5450
5520
  }, null, 8, [
@@ -5457,24 +5527,24 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5457
5527
  "width",
5458
5528
  "height",
5459
5529
  "onToggle"
5460
- ])) : r("", !0)], 8, bs))), 128))]))
5461
- ], 8, ps),
5530
+ ])) : r("", !0)], 8, Os))), 128))]))
5531
+ ], 8, xs),
5462
5532
  E(De) && !E(l) ? (v(), i("text", {
5463
5533
  key: 0,
5464
5534
  class: "waveform-chart__label waveform-chart__x-label",
5465
- x: E(g) + E(ee) / 2,
5535
+ x: E(g) + E(G) / 2,
5466
5536
  y: E(Oe),
5467
5537
  "text-anchor": "middle"
5468
- }, w(E(De)), 9, xs)) : r("", !0),
5538
+ }, w(E(De)), 9, ks)) : r("", !0),
5469
5539
  E(ke) && !E(I) ? (v(), i("text", {
5470
5540
  key: 1,
5471
5541
  class: "waveform-chart__empty",
5472
5542
  x: E(P) / 2,
5473
5543
  y: E(F) / 2,
5474
5544
  "text-anchor": "middle"
5475
- }, " 暂无有效波形数据 ", 8, Ss)) : r("", !0)
5476
- ], 40, us)),
5477
- E(Ae).showPagination && E(je) > 1 && !E(l) ? (v(), n(E(se), {
5545
+ }, " 暂无有效波形数据 ", 8, As)) : r("", !0)
5546
+ ], 40, vs)),
5547
+ E(Ae).showPagination && E(je) > 1 && !E(l) ? (v(), n(E(oe), {
5478
5548
  key: 1,
5479
5549
  class: "waveform-chart__pagination",
5480
5550
  "aria-label": "波形分页",
@@ -5490,13 +5560,13 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5490
5560
  "total",
5491
5561
  "onChange"
5492
5562
  ])) : r("", !0),
5493
- E(Le) && !E(l) && !E(u) ? (v(), n(Va, {
5563
+ E(Le) && !E(l) && !E(u) ? (v(), n(Ya, {
5494
5564
  key: 2,
5495
5565
  annotation: E(Le).annotation,
5496
5566
  mode: E(Le).mode,
5497
5567
  series: E(ze),
5498
5568
  "series-options": E(Be),
5499
- "time-unit": E(de),
5569
+ "time-unit": E(ue),
5500
5570
  "time-error": E(Ve),
5501
5571
  onConfirm: E(He),
5502
5572
  onCancel: E(Ue),
@@ -5532,10 +5602,10 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5532
5602
  "onDelete",
5533
5603
  "onClose"
5534
5604
  ])) : r("", !0),
5535
- s(E($a), {
5605
+ s(E(so), {
5536
5606
  state: E(pe),
5537
5607
  visible: E(me) && !E(u),
5538
- "time-unit": E(de),
5608
+ "time-unit": E(ue),
5539
5609
  "container-width": E(P),
5540
5610
  "container-height": E(Je)
5541
5611
  }, null, 8, [
@@ -5545,9 +5615,9 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5545
5615
  "container-width",
5546
5616
  "container-height"
5547
5617
  ])
5548
- ], 46, ss));
5618
+ ], 46, hs));
5549
5619
  }
5550
- }), ws = /* @__PURE__ */ l({
5620
+ }), Ms = /* @__PURE__ */ l({
5551
5621
  __name: "WaveformChart",
5552
5622
  props: {
5553
5623
  data: {},
@@ -5580,6 +5650,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5580
5650
  yDomains: {},
5581
5651
  timeUnit: { default: "ms" },
5582
5652
  frameNumber: { default: void 0 },
5653
+ frameNumbers: {},
5583
5654
  frameStyle: {},
5584
5655
  axes: {},
5585
5656
  annotations: { default: () => [] },
@@ -5614,6 +5685,7 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5614
5685
  },
5615
5686
  emits: [
5616
5687
  "point-hover",
5688
+ "zoom-intent",
5617
5689
  "zoom-change",
5618
5690
  "zoom-end",
5619
5691
  "zoom-reset",
@@ -5629,12 +5701,12 @@ var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
5629
5701
  "sampling-error"
5630
5702
  ],
5631
5703
  setup(e, { expose: t, emit: r }) {
5632
- let i = Sa(e, r);
5704
+ let i = Aa(e, r);
5633
5705
  return t({
5634
5706
  resetViewport: i.resetViewport,
5635
5707
  setViewportDomain: i.setViewportDomain
5636
- }), (e, t) => (v(), n(Cs, { controller: E(i) }, null, 8, ["controller"]));
5708
+ }), (e, t) => (v(), n(js, { controller: E(i) }, null, 8, ["controller"]));
5637
5709
  }
5638
5710
  });
5639
5711
  //#endregion
5640
- export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS, ws as WaveformChart, gt as buildMinorTicks, fi as calculateWasmRange, It as clamp, kt as displayTime, pi as findWasmVisibleRange, Mt as formatAxisTime, jt as formatEndpointTime, Nt as formatTooltipTime, ui as initializeWasmSampling, sn as normalizeWaveformData, un as normalizeWaveformSeries, ht as paddedDomain, pt as parseWaveformAnnotations, Ft as resolveTrackGeometry, Tn as resolveWaveformRenderingOptions, di as sampleWaveformWasm, Nn as selectRenderablePoints, ft as serializeWaveformAnnotations };
5712
+ export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS, Ms as WaveformChart, gt as buildMinorTicks, _i as calculateWasmRange, It as clamp, kt as displayTime, vi as findWasmVisibleRange, Mt as formatAxisTime, jt as formatEndpointTime, Nt as formatTooltipTime, hi as initializeWasmSampling, sn as normalizeWaveformData, un as normalizeWaveformSeries, ht as paddedDomain, pt as parseWaveformAnnotations, Ft as resolveTrackGeometry, Tn as resolveWaveformRenderingOptions, gi as sampleWaveformWasm, Nn as selectRenderablePoints, ft as serializeWaveformAnnotations };