waveform-analysis 0.1.55 → 0.1.58

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 (29) hide show
  1. package/README.md +3 -1
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +565 -539
  4. package/dist/types/components/core/grid.d.ts +3 -0
  5. package/dist/types/components/core/layout.d.ts +18 -0
  6. package/dist/types/components/core/trackLayoutBuilder.d.ts +2 -0
  7. package/dist/types/components/core/trackPagination.d.ts +4 -0
  8. package/dist/types/components/core/useWaveformChartController.d.ts +3 -1
  9. package/dist/types/components/core/useWaveformLayout.d.ts +2 -1
  10. package/dist/types/components/core/waveformChartTypes.d.ts +2 -0
  11. package/dist/types/components/core/yAxisConstants.d.ts +1 -0
  12. package/package.json +1 -1
  13. package/src/App.test.ts +2 -1
  14. package/src/components/WaveformChartView.vue +3 -3
  15. package/src/components/core/grid.test.ts +3 -0
  16. package/src/components/core/grid.ts +4 -0
  17. package/src/components/core/layout.test.ts +1 -1
  18. package/src/components/core/layout.ts +63 -0
  19. package/src/components/core/trackLayoutBuilder.ts +24 -4
  20. package/src/components/core/trackPagination.ts +40 -0
  21. package/src/components/core/useWaveformLayout.ts +28 -31
  22. package/src/components/core/waveformChartTypes.ts +2 -0
  23. package/src/components/core/yAxisConstants.ts +1 -0
  24. package/src/components/core/yAxisSlotLayout.test.ts +129 -0
  25. package/src/components/waveformChartCases/layoutAndDomains.test.ts +3 -5
  26. package/src/components/waveformChartCases/multiAxisLabelAlignment.test.ts +61 -0
  27. package/src/components/waveformChartCases/trackOrder.test.ts +62 -0
  28. package/src/data/simulatedWaveforms.test.ts +4 -4
  29. package/src/data/simulatedWaveforms.ts +12 -0
package/dist/index.js CHANGED
@@ -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
  }
@@ -1534,31 +1535,34 @@ function Xn(e) {
1534
1535
  } : e), f = {
1535
1536
  left: 0,
1536
1537
  right: 0
1537
- }, p = d.map((n) => {
1538
- let r = nr(t.plotHeight, e.yAxisSplitNumber), i = Math.max(1, r - 1), a = U(n.domain, [t.plotHeight, 0]);
1539
- e.yAxisNice !== !1 && a.nice(i);
1540
- let [o, s] = a.domain(), c = Array.from({ length: r }, (e, t) => o + (s - o) * t / (r - 1)), l = e.displayMode !== "compact" || t.row === 0 ? c : c.slice(0, -1), { tickTextWidth: u } = sr(a.domain(), !1, l, n.seriesList[0]?.unit, r), d = u + 7 + 0 + 12 + 4, p = n.side === "left" ? -f.left : t.width + f.right, m = u + 7 + 0 + 12 / 2, h = p + (n.side === "left" ? -m : m);
1541
- return f[n.side] += d, {
1538
+ }, p = {
1539
+ left: 0,
1540
+ right: 0
1541
+ }, m = d.map((n) => {
1542
+ let r = f[n.side]++, i = nr(t.plotHeight, e.yAxisSplitNumber), a = Math.max(1, i - 1), o = U(n.domain, [t.plotHeight, 0]);
1543
+ e.yAxisNice !== !1 && o.nice(a);
1544
+ let [s, c] = o.domain(), l = Array.from({ length: i }, (e, t) => s + (c - s) * t / (i - 1)), u = e.displayMode !== "compact" || t.row === 0 ? l : l.slice(0, -1), { tickTextWidth: d } = sr(o.domain(), !1, u, n.seriesList[0]?.unit, i), m = d + 7 + 0 + 12 + 4, h = e.yAxisSlots?.find((e) => e.side === n.side && e.sideIndex === r), g = h ? (n.side === "left" ? 0 : t.width) + h.axisOffset : n.side === "left" ? -p.left : t.width + p.right, _ = d + 7 + 0 + 12 / 2, v = (h ? (n.side === "left" ? 0 : t.width) + h.labelOffset : g + (n.side === "left" ? -_ : _)) - (n.side === "right" ? 10 : 0);
1545
+ return h || (p[n.side] += m), {
1542
1546
  index: n.index,
1543
1547
  side: n.side,
1544
- x: p,
1545
- labelX: h,
1546
- scale: a,
1547
- majorTicks: c,
1548
- minorTicks: gt(c, 2),
1549
- tickValues: l,
1548
+ x: g,
1549
+ labelX: v,
1550
+ scale: o,
1551
+ majorTicks: l,
1552
+ minorTicks: gt(l, 2),
1553
+ tickValues: u,
1550
1554
  seriesList: n.seriesList
1551
1555
  };
1552
- }), m = U(a.yDomain, [t.plotHeight, 0]);
1553
- e.yAxisNice !== !1 && m.nice();
1554
- let h = p[0]?.scale ?? m, g = l.ticks(Math.max(2, Math.floor(t.width / 100))), _ = p[0]?.majorTicks ?? [], v = p[0]?.tickValues ?? [], y = l.domain(), b = {
1555
- start: At(y[0], y, e.timeUnit, "start", e.xAxisLabelFormatter),
1556
- end: At(y[1], y, e.timeUnit, "end", e.xAxisLabelFormatter)
1557
- }, x = b.start.length * 7 + 10, S = b.end.length * 7 + 10, C = g.filter((e) => {
1556
+ }), h = U(a.yDomain, [t.plotHeight, 0]);
1557
+ e.yAxisNice !== !1 && h.nice();
1558
+ let g = m[0]?.scale ?? h, _ = l.ticks(Math.max(2, Math.floor(t.width / 100))), v = m[0]?.majorTicks ?? [], y = m[0]?.tickValues ?? [], b = l.domain(), x = {
1559
+ start: At(b[0], b, e.timeUnit, "start", e.xAxisLabelFormatter),
1560
+ end: At(b[1], b, e.timeUnit, "end", e.xAxisLabelFormatter)
1561
+ }, S = x.start.length * 7 + 10, C = x.end.length * 7 + 10, w = _.filter((e) => {
1558
1562
  let n = l(e);
1559
- return n > x && n < t.width - S;
1560
- }), w = a.visibleSeries.map((n) => {
1561
- let r = p.find((e) => e.seriesList.some((e) => e.id === n.id)), a = r?.scale ?? h, o = In(n.points, y, t.width, e.rendering, {
1563
+ return n > S && n < t.width - C;
1564
+ }), T = a.visibleSeries.map((n) => {
1565
+ let r = m.find((e) => e.seriesList.some((e) => e.id === n.id)), a = r?.scale ?? g, o = In(n.points, b, t.width, e.rendering, {
1562
1566
  lineVisible: !i && n.lineType !== "none",
1563
1567
  linePointOverride: e.linePointOverrides?.[n.id],
1564
1568
  pointVisible: n.pointType !== "none",
@@ -1590,17 +1594,17 @@ function Xn(e) {
1590
1594
  width: t.width,
1591
1595
  height: t.plotHeight,
1592
1596
  xScale: l,
1593
- yScale: h,
1594
- yAxes: p,
1595
- xMajorTicks: g,
1596
- xMinorTicks: gt(g, 3, y),
1597
- yMajorTicks: _,
1598
- yMinorTicks: p[0]?.minorTicks ?? [],
1599
- yAxisTickValues: v,
1600
- xAxisTickValues: C,
1601
- endpointLabels: b,
1602
- path: w[0]?.path ?? null,
1603
- seriesPaths: w,
1597
+ yScale: g,
1598
+ yAxes: m,
1599
+ xMajorTicks: _,
1600
+ xMinorTicks: gt(_, 3, b),
1601
+ yMajorTicks: v,
1602
+ yMinorTicks: m[0]?.minorTicks ?? [],
1603
+ yAxisTickValues: y,
1604
+ xAxisTickValues: w,
1605
+ endpointLabels: x,
1606
+ path: T[0]?.path ?? null,
1607
+ seriesPaths: T,
1604
1608
  gridLines: e.grid.trackLines[a.id] ?? {
1605
1609
  horizontal: !0,
1606
1610
  vertical: !0
@@ -1677,19 +1681,39 @@ function sr(e, t = !0, n, r, i = 10) {
1677
1681
  unit: r
1678
1682
  }).length)) * Zn };
1679
1683
  }
1680
- function cr(e, t, n = !0) {
1681
- return sr(e.domain, n, void 0, e.seriesList[0]?.unit, t).tickTextWidth + Qn + er + tr + $n;
1682
- }
1683
- function lr(e, t, n = !0) {
1684
- return sr(e.domain, n, void 0, e.seriesList[0]?.unit, t).tickTextWidth + Qn + $n;
1685
- }
1686
- function ur(e, t, n, r, i, a = !0) {
1687
- return or(e, t, n, r).reduce((n, r) => (n[r.side] += t === "multi-axis" || e.visibleSeries.length === 1 ? cr(r, i, a) : lr(r, i, a), n), {
1684
+ function cr(e, t, n, r, i, a = !0) {
1685
+ let o = /* @__PURE__ */ new Map();
1686
+ e.forEach((e) => {
1687
+ let s = {
1688
+ left: 0,
1689
+ right: 0
1690
+ };
1691
+ or(e, t, n, r).forEach((e) => {
1692
+ let t = s[e.side]++, n = `${e.side}:${t}`, r = sr(e.domain, a, void 0, e.seriesList[0]?.unit, i).tickTextWidth;
1693
+ o.set(n, Math.max(o.get(n) ?? Zn, r));
1694
+ });
1695
+ });
1696
+ let s = [], c = {
1688
1697
  left: 0,
1689
1698
  right: 0
1690
- });
1699
+ };
1700
+ return ["left", "right"].forEach((e) => {
1701
+ Array.from(o.keys()).filter((t) => t.startsWith(`${e}:`)).map((t) => Number(t.slice(e.length + 1))).sort((e, t) => e - t).forEach((t) => {
1702
+ let n = o.get(`${e}:${t}`) ?? Zn, r = e === "left" && c.left > 0 ? -c.left : c[e], i = r + (n + Qn + er + tr / 2) * (e === "left" ? -1 : 1), a = n + Qn + er + tr + $n;
1703
+ s.push({
1704
+ side: e,
1705
+ sideIndex: t,
1706
+ axisOffset: r,
1707
+ labelOffset: i,
1708
+ clearance: a
1709
+ }), c[e] += a;
1710
+ });
1711
+ }), {
1712
+ slots: s,
1713
+ clearance: c
1714
+ };
1691
1715
  }
1692
- function dr(e, t, n) {
1716
+ function lr(e, t, n) {
1693
1717
  let r = (e) => {
1694
1718
  let r = t < e.left ? e.left - t : t > e.left + e.width ? t - e.left - e.width : 0;
1695
1719
  return n < e.top ? e.top - n : n > e.top + e.height ? n - (e.top + e.height) : r;
@@ -1708,11 +1732,11 @@ function dr(e, t, n) {
1708
1732
  }
1709
1733
  //#endregion
1710
1734
  //#region src/components/annotation/useWaveformChartAnnotations.ts
1711
- var fr = 0;
1712
- function pr() {
1713
- return fr += 1, typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `annotation-${Date.now()}-${fr}`;
1735
+ var ur = 0;
1736
+ function dr() {
1737
+ return ur += 1, typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `annotation-${Date.now()}-${ur}`;
1714
1738
  }
1715
- function mr(e) {
1739
+ function fr(e) {
1716
1740
  let { props: t, emit: n, container: r, chartSeries: i, hiddenSeriesIdSet: a, internalHiddenSeriesIds: o, annotationInteraction: s, editorSeriesOptions: c, trackLayouts: l, annotationLayoutsForTrack: u, resolveSeriesYScale: d, chartWidth: f, chartHeight: p, innerWidth: m, resolvedChartLeftMargin: h, titleAreaHeight: g, chartTopMargin: _, activeInteractionMode: v, isPresentationMode: y } = e, x = b("");
1717
1741
  function S(e) {
1718
1742
  if (!i.value.some((t) => t.id === e)) return;
@@ -1745,7 +1769,7 @@ function mr(e) {
1745
1769
  };
1746
1770
  }
1747
1771
  function T(e, t, n) {
1748
- x.value = "", s.openCreate(e, pr, t), c.value = n;
1772
+ x.value = "", s.openCreate(e, dr, t), c.value = n;
1749
1773
  let r = s.editorDraft.value, i = l.value.find((t) => t.index === e.trackIndex)?.seriesList.find((t) => t.id === e.seriesId);
1750
1774
  r?.mode === "add" && (r.annotation.style = {
1751
1775
  borderColor: i?.color || "#1677ff",
@@ -1805,7 +1829,7 @@ function mr(e) {
1805
1829
  let e = l.value[n];
1806
1830
  return e?.hasVisibleSeries ? e : void 0;
1807
1831
  }
1808
- return dr(l.value.filter((e) => e.hasVisibleSeries), e, t);
1832
+ return lr(l.value.filter((e) => e.hasVisibleSeries), e, t);
1809
1833
  }
1810
1834
  function A(e, t) {
1811
1835
  let n = e.currentTarget;
@@ -1896,7 +1920,7 @@ function mr(e) {
1896
1920
  }
1897
1921
  //#endregion
1898
1922
  //#region src/components/interaction/useWaveformHover.ts
1899
- function hr(e) {
1923
+ function pr(e) {
1900
1924
  let { emit: t, hoverState: n, suppressHoverUntilMove: r, hoverThrottle: i, selection: a, trackLayouts: o, innerWidth: s, resolvedChartLeftMargin: c, titleAreaHeight: l, chartTopMargin: u, sharedOverlayElement: d, isPresentationMode: f, updateViewportDrag: p, resolveTrackAtPointer: m } = e, h = () => i.cancel(), g = (e) => i.schedule(e), _ = (e) => n.points.length === e.length && e.every((e, t) => {
1901
1925
  let r = n.points[t];
1902
1926
  return r?.id === e.id && r.trackIndex === e.trackIndex && r.point === e.point;
@@ -1981,14 +2005,14 @@ function hr(e) {
1981
2005
  }
1982
2006
  //#endregion
1983
2007
  //#region src/components/interaction/pointerCapture.ts
1984
- function gr(e, t) {
2008
+ function mr(e, t) {
1985
2009
  try {
1986
2010
  e?.releasePointerCapture?.(t);
1987
2011
  } catch {}
1988
2012
  }
1989
2013
  //#endregion
1990
2014
  //#region src/components/interaction/viewportInteractionState.ts
1991
- function _r(e) {
2015
+ function hr(e) {
1992
2016
  return {
1993
2017
  ...e,
1994
2018
  currentX: e.startX,
@@ -1997,37 +2021,37 @@ function _r(e) {
1997
2021
  yDomains: Object.fromEntries(Object.entries(e.yDomains).map(([e, t]) => [e, [...t]]))
1998
2022
  };
1999
2023
  }
2000
- function vr(e, t) {
2024
+ function gr(e, t) {
2001
2025
  return {
2002
2026
  ...e,
2003
2027
  ...t
2004
2028
  };
2005
2029
  }
2006
- function yr(e) {
2030
+ function _r(e) {
2007
2031
  return {
2008
2032
  state: e,
2009
2033
  accepted: !1,
2010
2034
  completed: null
2011
2035
  };
2012
2036
  }
2013
- function br(e, t) {
2037
+ function vr(e, t) {
2014
2038
  switch (t.type) {
2015
- case "begin": return e ? yr(e) : {
2016
- state: _r(t.gesture),
2039
+ case "begin": return e ? _r(e) : {
2040
+ state: hr(t.gesture),
2017
2041
  accepted: !0,
2018
2042
  completed: null
2019
2043
  };
2020
- case "move": return !e || e.pointerId !== t.pointerId ? yr(e) : {
2021
- state: vr(e, t.position),
2044
+ case "move": return !e || e.pointerId !== t.pointerId ? _r(e) : {
2045
+ state: gr(e, t.position),
2022
2046
  accepted: !0,
2023
2047
  completed: null
2024
2048
  };
2025
- case "finish": return !e || e.pointerId !== t.pointerId ? yr(e) : {
2049
+ case "finish": return !e || e.pointerId !== t.pointerId ? _r(e) : {
2026
2050
  state: null,
2027
2051
  accepted: !0,
2028
- completed: vr(e, t.position)
2052
+ completed: gr(e, t.position)
2029
2053
  };
2030
- case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ? yr(e) : {
2054
+ case "cancel": return !e || t.pointerId !== void 0 && e.pointerId !== t.pointerId ? _r(e) : {
2031
2055
  state: null,
2032
2056
  accepted: !0,
2033
2057
  completed: null
@@ -2041,15 +2065,15 @@ function br(e, t) {
2041
2065
  }
2042
2066
  //#endregion
2043
2067
  //#region src/components/interaction/zoomConstraints.ts
2044
- var xr = /* @__PURE__ */ new WeakMap();
2045
- function Sr(e) {
2068
+ var yr = /* @__PURE__ */ new WeakMap();
2069
+ function br(e) {
2046
2070
  return e[0] <= e[1] ? [...e] : [e[1], e[0]];
2047
2071
  }
2048
- function Cr(e) {
2072
+ function xr(e) {
2049
2073
  return Number.isFinite(e) && (e ?? 0) > 0 ? Math.ceil(e) : 0;
2050
2074
  }
2051
- function wr(e, t) {
2052
- let n = `${t[0]}\u0000${t[1]}`, r = xr.get(e)?.get(n);
2075
+ function Sr(e, t) {
2076
+ let n = `${t[0]}\u0000${t[1]}`, r = yr.get(e)?.get(n);
2053
2077
  if (r) return r;
2054
2078
  let i = /* @__PURE__ */ new Set();
2055
2079
  for (let n of e) {
@@ -2059,14 +2083,14 @@ function wr(e, t) {
2059
2083
  r.x >= t[0] && r.x <= t[1] && i.add(r.x);
2060
2084
  }
2061
2085
  }
2062
- let a = Array.from(i).sort((e, t) => e - t), o = xr.get(e) ?? /* @__PURE__ */ new Map();
2063
- return o.set(n, a), xr.set(e, o), a;
2086
+ let a = Array.from(i).sort((e, t) => e - t), o = yr.get(e) ?? /* @__PURE__ */ new Map();
2087
+ return o.set(n, a), yr.set(e, o), a;
2064
2088
  }
2065
- function Tr(e, t, n) {
2089
+ function Cr(e, t, n) {
2066
2090
  if (n <= 1) return 0;
2067
2091
  let r = 0;
2068
2092
  for (let i of e) {
2069
- let e = wr(i, t);
2093
+ let e = Sr(i, t);
2070
2094
  if (e.length < n) return t[1] - t[0];
2071
2095
  let a = Infinity;
2072
2096
  for (let t = 0; t + n <= e.length; t += 1) a = Math.min(a, e[t + n - 1] - e[t]);
@@ -2075,17 +2099,17 @@ function Tr(e, t, n) {
2075
2099
  }
2076
2100
  return r;
2077
2101
  }
2078
- function Er(e, t, n) {
2079
- let r = Sr(e), i = r[1] - r[0];
2102
+ function wr(e, t, n) {
2103
+ let r = br(e), i = r[1] - r[0];
2080
2104
  if (!Number.isFinite(i) || i <= 0) return 0;
2081
- let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o = Cr(n.minVisiblePoints), s = Tr(t, r, o), c = Number(n.maxZoomScale), l = Number.isFinite(c) && c >= Rt.MIN_SCALE ? i / c : n.maxZoomScale !== null && a === 0 && o === 0 ? i / Rt.DEFAULT_MAX_SCALE : 0;
2105
+ let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o = xr(n.minVisiblePoints), s = Cr(t, r, o), c = Number(n.maxZoomScale), l = Number.isFinite(c) && c >= Rt.MIN_SCALE ? i / c : n.maxZoomScale !== null && a === 0 && o === 0 ? i / Rt.DEFAULT_MAX_SCALE : 0;
2082
2106
  return Math.max(a, s, l);
2083
2107
  }
2084
- function Dr(e, t, n, r) {
2108
+ function Tr(e, t, n, r) {
2085
2109
  if (r <= 0) return e;
2086
2110
  let i = 2 ** -52 * Math.max(1, Math.abs(t[0]), Math.abs(t[1])) * 16, a = e;
2087
2111
  for (let e of n) {
2088
- let n = wr(e, t);
2112
+ let n = Sr(e, t);
2089
2113
  if (n.length < r) return [...t];
2090
2114
  if (n.filter((e) => e >= a[0] && e <= a[1]).length >= r) continue;
2091
2115
  let o, s = Infinity, c = Infinity, l = (a[0] + a[1]) / 2;
@@ -2097,13 +2121,13 @@ function Dr(e, t, n, r) {
2097
2121
  }
2098
2122
  return a;
2099
2123
  }
2100
- function Or(e, t, n, r) {
2101
- let i = Sr(t), a = i[1] - i[0];
2124
+ function Er(e, t, n, r) {
2125
+ let i = br(t), a = i[1] - i[0];
2102
2126
  if (!Number.isFinite(a) || a <= 0 || Math.abs(e[1] - e[0]) >= a * .999999999999) return i;
2103
- let o = Dr([Math.max(i[0], Math.min(e[0], e[1])), Math.min(i[1], Math.max(e[0], e[1]))], i, n, Cr(r.minVisiblePoints)), s = Er(i, n, r), c = Math.max(s, Math.min(a, o[1] - o[0])), l = (o[0] + o[1]) / 2, u = Math.max(i[0], Math.min(l - c / 2, i[1] - c));
2127
+ let o = Tr([Math.max(i[0], Math.min(e[0], e[1])), Math.min(i[1], Math.max(e[0], e[1]))], i, n, xr(r.minVisiblePoints)), s = wr(i, n, r), c = Math.max(s, Math.min(a, o[1] - o[0])), l = (o[0] + o[1]) / 2, u = Math.max(i[0], Math.min(l - c / 2, i[1] - c));
2104
2128
  return [u, u + c];
2105
2129
  }
2106
- function kr(e, t, n) {
2130
+ function Dr(e, t, n) {
2107
2131
  let r = t[1] - t[0], i = e[1] - e[0];
2108
2132
  if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return K;
2109
2133
  let a = r / i, o = U(t, [0, n]);
@@ -2111,7 +2135,7 @@ function kr(e, t, n) {
2111
2135
  }
2112
2136
  //#endregion
2113
2137
  //#region src/components/interaction/viewportDomain.ts
2114
- function Ar(e) {
2138
+ function Or(e) {
2115
2139
  return (t, n) => {
2116
2140
  if (!(!Number.isFinite(t[0]) || !Number.isFinite(t[1]) || t[0] === t[1])) {
2117
2141
  if (e.cancelPendingZoom(), e.cancelViewportDrag(), e.props.displayMode === "independent") {
@@ -2119,12 +2143,12 @@ function Ar(e) {
2119
2143
  r.forEach((n) => {
2120
2144
  let r = e.trackLayouts.value.find((e) => e.index === n);
2121
2145
  if (!r) return;
2122
- let a = e.resolveInitialTrackDomain(r), o = Or(t, a, [r.seriesList], e.props);
2123
- i[n] = kr(o, a, r.width);
2146
+ let a = e.resolveInitialTrackDomain(r), o = Er(t, a, [r.seriesList], e.props);
2147
+ i[n] = Dr(o, a, r.width);
2124
2148
  }), e.independentTransforms.value = i;
2125
2149
  } else {
2126
- let n = e.initialXDomain.value, r = Or(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
2127
- e.sharedTransform.value = kr(r, n, e.innerWidth.value);
2150
+ let n = e.initialXDomain.value, r = Er(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
2151
+ e.sharedTransform.value = Dr(r, n, e.innerWidth.value);
2128
2152
  }
2129
2153
  e.clearHover(), e.editorSeriesOptions.value = [], f(e.configureZoom);
2130
2154
  }
@@ -2132,13 +2156,13 @@ function Ar(e) {
2132
2156
  }
2133
2157
  //#endregion
2134
2158
  //#region src/components/interaction/useWaveformViewport.ts
2135
- function jr(e) {
2159
+ function kr(e) {
2136
2160
  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) => {
2137
2161
  let n = O.value, r = t?.currentTarget;
2138
- gr(n, e), r && r !== n && gr(r, e);
2162
+ mr(n, e), r && r !== n && mr(r, e);
2139
2163
  }, A = (e, t) => {
2140
2164
  let n = i.value;
2141
- !n || n.pointerId !== e || (k(e, t), i.value = br(i.value, {
2165
+ !n || n.pointerId !== e || (k(e, t), i.value = vr(i.value, {
2142
2166
  type: "cancel",
2143
2167
  pointerId: e
2144
2168
  }).state, O.value = void 0);
@@ -2161,7 +2185,7 @@ function jr(e) {
2161
2185
  if (!n.zoomable && !s || !_.value || e.button !== 0) return;
2162
2186
  let c = e.currentTarget, d = o.value.find((e) => e.index === t);
2163
2187
  if (!d) return;
2164
- let [f, p] = H(e, c), m = Math.max(0, Math.min(r ? d.width : l.value, f)), h = Math.max(0, Math.min(r ? d.height : u.value, p)), g = br(i.value, {
2188
+ let [f, p] = H(e, c), m = Math.max(0, Math.min(r ? d.width : l.value, f)), h = Math.max(0, Math.min(r ? d.height : u.value, p)), g = vr(i.value, {
2165
2189
  type: "begin",
2166
2190
  gesture: {
2167
2191
  trackIndex: t,
@@ -2183,8 +2207,8 @@ function jr(e) {
2183
2207
  let i = t.width || 1, a = t.height || 1, u = e.currentX - e.startX, d = e.currentY - e.startY, f = e.xDomain[1] - e.xDomain[0], _ = e.independent ? b(t) : c.value, v = M([e.xDomain[0] - u / i * f, e.xDomain[1] - u / i * f], _);
2184
2208
  if (e.independent) {
2185
2209
  let e = [...m.value];
2186
- e[t.index] = kr(v, _, i), m.value = e;
2187
- } else p.value = kr(v, _, l.value);
2210
+ e[t.index] = Dr(v, _, i), m.value = e;
2211
+ } else p.value = Dr(v, _, l.value);
2188
2212
  let y = e.independent ? [t] : o.value.filter((e) => e.hasVisibleSeries), x = { ...g.value }, S = { ...h.value };
2189
2213
  y.forEach((t) => {
2190
2214
  let r = s.value.find((e) => e.id === t.id);
@@ -2198,7 +2222,7 @@ function jr(e) {
2198
2222
  if (!t || !n || e.pointerId !== t.pointerId) return;
2199
2223
  let r = o.value.find((e) => e.index === t.trackIndex);
2200
2224
  if (!r) return;
2201
- let [a, s] = H(e, n), c = Math.max(0, Math.min(t.independent ? r.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? r.height : u.value, s)), f = br(i.value, {
2225
+ let [a, s] = H(e, n), c = Math.max(0, Math.min(t.independent ? r.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? r.height : u.value, s)), f = vr(i.value, {
2202
2226
  type: "move",
2203
2227
  pointerId: e.pointerId,
2204
2228
  position: {
@@ -2217,11 +2241,11 @@ function jr(e) {
2217
2241
  if (!t || (e.independent ? !x(t) : !S())) return;
2218
2242
  let i = e.independent ? 0 : t.left, a = Math.max(0, Math.min(t.width, Math.min(e.startX, e.currentX) - i)), s = Math.max(0, Math.min(t.width, Math.max(e.startX, e.currentX) - i));
2219
2243
  if (s - a < 6) return;
2220
- let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h = Or([t.xScale.invert(a), t.xScale.invert(s)], u, d, n);
2244
+ let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h = Er([t.xScale.invert(a), t.xScale.invert(s)], u, d, n);
2221
2245
  if (e.independent) {
2222
2246
  let e = [...m.value];
2223
- e[t.index] = kr(h, u, t.width), m.value = e;
2224
- } else p.value = kr(h, u, l.value);
2247
+ e[t.index] = Dr(h, u, t.width), m.value = e;
2248
+ } else p.value = Dr(h, u, l.value);
2225
2249
  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()]));
2226
2250
  if (r("zoom-change", h), e.independent) {
2227
2251
  let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
@@ -2262,7 +2286,7 @@ function jr(e) {
2262
2286
  A(t.pointerId, e);
2263
2287
  return;
2264
2288
  }
2265
- let [a, s] = H(e, r), c = Math.max(0, Math.min(t.independent ? n.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? n.height : u.value, s)), p = br(i.value, {
2289
+ let [a, s] = H(e, r), c = Math.max(0, Math.min(t.independent ? n.width : l.value, a)), d = Math.max(0, Math.min(t.independent ? n.height : u.value, s)), p = vr(i.value, {
2266
2290
  type: "finish",
2267
2291
  pointerId: e.pointerId,
2268
2292
  position: {
@@ -2294,7 +2318,7 @@ function jr(e) {
2294
2318
  finishViewportDrag: B,
2295
2319
  cancelViewportDrag: R,
2296
2320
  resetViewport: V,
2297
- setViewportDomain: Ar({
2321
+ setViewportDomain: Or({
2298
2322
  props: n,
2299
2323
  trackLayouts: o,
2300
2324
  initialXDomain: c,
@@ -2326,7 +2350,7 @@ function jr(e) {
2326
2350
  }
2327
2351
  //#endregion
2328
2352
  //#region src/components/utils/useAnimationFrameThrottle.ts
2329
- function Mr() {
2353
+ function Ar() {
2330
2354
  let e = null, t = null;
2331
2355
  function n(n) {
2332
2356
  t = n, e === null && (e = requestAnimationFrame(() => {
@@ -2355,8 +2379,8 @@ function Mr() {
2355
2379
  }
2356
2380
  //#endregion
2357
2381
  //#region src/components/interaction/useWaveformZoom.ts
2358
- function Nr(e) {
2359
- let { props: t, emit: n, svgElement: r, sharedOverlayElement: i, sharedTransform: a, independentTransforms: o, trackLayouts: s, initialXDomain: c, sharedZoomDomain: l, innerWidth: u, innerHeight: d, hasChartArea: f, isZoomMode: p, isPresentationMode: m, resolveInitialTrackDomain: h, cancelPendingHover: g } = e, _ = /* @__PURE__ */ new Map(), v = Mr(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Set(), D, O = () => v.schedule(j), k = (e) => {
2382
+ function jr(e) {
2383
+ 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) => {
2360
2384
  y || m.value || (g(), b = e.transform, x = "wheel", O(), P());
2361
2385
  }, A = (e, t) => {
2362
2386
  y || m.value || (g(), C.set(t, e.transform), w.set(t, "wheel"), O(), P());
@@ -2444,9 +2468,9 @@ function Nr(e) {
2444
2468
  }, L = (e, n) => {
2445
2469
  let r = Math.abs(e[1] - e[0]);
2446
2470
  if (!Number.isFinite(r) || r <= 0) return Rt.MIN_SCALE;
2447
- let i = Er(e, n, t);
2471
+ let i = wr(e, n, t);
2448
2472
  return Math.max(Rt.MIN_SCALE, i > 0 ? r / i : Infinity);
2449
- }, R = (e, n, r, i) => kr(Or(e.rescaleX(U(n, [0, r])).domain(), n, i, t), n, r), z = (e) => {
2473
+ }, R = (e, n, r, i) => Dr(Er(e.rescaleX(U(n, [0, r])).domain(), n, i, t), n, r), z = (e) => {
2450
2474
  let n = Number(t.minVisiblePoints);
2451
2475
  return kn(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
2452
2476
  }, B = () => {
@@ -2495,13 +2519,13 @@ function Nr(e) {
2495
2519
  }
2496
2520
  //#endregion
2497
2521
  //#region src/components/core/useWaveformChartLifecycle.ts
2498
- function Pr(e) {
2522
+ function Mr(e) {
2499
2523
  return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
2500
2524
  }
2501
- function Fr(e) {
2525
+ function Nr(e) {
2502
2526
  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;
2503
2527
  function ne(e) {
2504
- z.value || e.code !== "Space" || !t.pannable || !_.value || Pr(e.target) || (m.value = !0, e.preventDefault());
2528
+ z.value || e.code !== "Space" || !t.pannable || !_.value || Mr(e.target) || (m.value = !0, e.preventDefault());
2505
2529
  }
2506
2530
  function re(e) {
2507
2531
  e.code === "Space" && (m.value = !1);
@@ -2534,12 +2558,12 @@ function Fr(e) {
2534
2558
  w.value.forEach((n) => {
2535
2559
  let r = q?.[n.index];
2536
2560
  if (!r) return;
2537
- let i = I(n), a = Or(r, i, [n.seriesList], t);
2538
- e[n.index] = kr(a, i, n.width);
2561
+ let i = I(n), a = Er(r, i, [n.seriesList], t);
2562
+ e[n.index] = Dr(a, i, n.width);
2539
2563
  }), P.value = e, q = void 0;
2540
2564
  } else if (t.displayMode !== "independent" && G) {
2541
- let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Or(G, e, n, t);
2542
- A.value = kr(r, e, T.value), G = void 0;
2565
+ let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Er(G, e, n, t);
2566
+ A.value = Dr(r, e, T.value), G = void 0;
2543
2567
  }
2544
2568
  H();
2545
2569
  });
@@ -2625,7 +2649,7 @@ function Fr(e) {
2625
2649
  }
2626
2650
  //#endregion
2627
2651
  //#region src/components/core/useWaveformData.ts
2628
- function Ir(e) {
2652
+ function Pr(e) {
2629
2653
  return ln(e).map(({ source: e, ...t }) => {
2630
2654
  let n = e.metrics(t.errorBar.visible);
2631
2655
  return {
@@ -2638,45 +2662,45 @@ function Ir(e) {
2638
2662
  };
2639
2663
  });
2640
2664
  }
2641
- function Lr(e, t, n) {
2642
- let r = C(Ir(e()));
2665
+ function Fr(e, t, n) {
2666
+ let r = C(Pr(e()));
2643
2667
  return O(e, (e) => {
2644
- t(), r.value = Ir(e), n();
2668
+ t(), r.value = Pr(e), n();
2645
2669
  }), r;
2646
2670
  }
2647
2671
  //#endregion
2648
2672
  //#region wasm/pkg/waveform_sampling_wasm.js
2649
- function Rr(e, t) {
2650
- let n = Qr(e, $.__wbindgen_malloc), r = ii, i = Qr(t, $.__wbindgen_malloc), a = ii, o = $.calculate_range(n, r, i, a);
2651
- if (o[3]) throw $r(o[2]);
2652
- var s = Ur(o[0], o[1]).slice();
2673
+ function Ir(e, t) {
2674
+ let n = Xr(e, $.__wbindgen_malloc), r = ni, i = Xr(t, $.__wbindgen_malloc), a = ni, o = $.calculate_range(n, r, i, a);
2675
+ if (o[3]) throw Zr(o[2]);
2676
+ var s = Vr(o[0], o[1]).slice();
2653
2677
  return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
2654
2678
  }
2655
- function zr(e, t, n, r) {
2656
- let i = Qr(e, $.__wbindgen_malloc), a = ii, o = Qr(t, $.__wbindgen_malloc), s = ii, c = $.find_visible_range(i, a, o, s, n, r);
2657
- if (c[3]) throw $r(c[2]);
2658
- var l = Wr(c[0], c[1]).slice();
2679
+ function Lr(e, t, n, r) {
2680
+ 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);
2681
+ if (c[3]) throw Zr(c[2]);
2682
+ var l = Hr(c[0], c[1]).slice();
2659
2683
  return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
2660
2684
  }
2661
- function Br(e, t, n, r) {
2662
- let i = Qr(e, $.__wbindgen_malloc), a = ii, o = Qr(t, $.__wbindgen_malloc), s = ii, c = $.sample_aggregates(i, a, o, s, n, r);
2663
- if (c[3]) throw $r(c[2]);
2664
- var l = Ur(c[0], c[1]).slice();
2685
+ function Rr(e, t, n, r) {
2686
+ let i = Xr(e, $.__wbindgen_malloc), a = ni, o = Xr(t, $.__wbindgen_malloc), s = ni, c = $.sample_aggregates(i, a, o, s, n, r);
2687
+ if (c[3]) throw Zr(c[2]);
2688
+ var l = Vr(c[0], c[1]).slice();
2665
2689
  return $.__wbindgen_free(c[0], c[1] * 8, 8), l;
2666
2690
  }
2667
- function Vr(e, t, n, r) {
2668
- let i = Qr(e, $.__wbindgen_malloc), a = ii, o = Qr(t, $.__wbindgen_malloc), s = ii, c = $.sample_indexes(i, a, o, s, n, r);
2669
- if (c[3]) throw $r(c[2]);
2670
- var l = Wr(c[0], c[1]).slice();
2691
+ function zr(e, t, n, r) {
2692
+ let i = Xr(e, $.__wbindgen_malloc), a = ni, o = Xr(t, $.__wbindgen_malloc), s = ni, c = $.sample_indexes(i, a, o, s, n, r);
2693
+ if (c[3]) throw Zr(c[2]);
2694
+ var l = Hr(c[0], c[1]).slice();
2671
2695
  return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
2672
2696
  }
2673
- function Hr() {
2697
+ function Br() {
2674
2698
  return {
2675
2699
  __proto__: null,
2676
2700
  "./waveform_sampling_wasm_bg.js": {
2677
2701
  __proto__: null,
2678
2702
  __wbindgen_cast_0000000000000001: function(e, t) {
2679
- return qr(e, t);
2703
+ return Gr(e, t);
2680
2704
  },
2681
2705
  __wbindgen_init_externref_table: function() {
2682
2706
  let e = $.__wbindgen_externrefs, t = e.grow(4);
@@ -2685,52 +2709,52 @@ function Hr() {
2685
2709
  }
2686
2710
  };
2687
2711
  }
2688
- function Ur(e, t) {
2689
- return e >>>= 0, Kr().subarray(e / 8, e / 8 + t);
2712
+ function Vr(e, t) {
2713
+ return e >>>= 0, Wr().subarray(e / 8, e / 8 + t);
2690
2714
  }
2691
- function Wr(e, t) {
2692
- return e >>>= 0, Yr().subarray(e / 4, e / 4 + t);
2715
+ function Hr(e, t) {
2716
+ return e >>>= 0, qr().subarray(e / 4, e / 4 + t);
2693
2717
  }
2694
- var Gr = null;
2695
- function Kr() {
2696
- return (Gr === null || Gr.byteLength === 0) && (Gr = new Float64Array($.memory.buffer)), Gr;
2718
+ var Ur = null;
2719
+ function Wr() {
2720
+ return (Ur === null || Ur.byteLength === 0) && (Ur = new Float64Array($.memory.buffer)), Ur;
2697
2721
  }
2698
- function qr(e, t) {
2699
- return e >>>= 0, ri(e, t);
2722
+ function Gr(e, t) {
2723
+ return e >>>= 0, ti(e, t);
2724
+ }
2725
+ var Kr = null;
2726
+ function qr() {
2727
+ return (Kr === null || Kr.byteLength === 0) && (Kr = new Uint32Array($.memory.buffer)), Kr;
2700
2728
  }
2701
2729
  var Jr = null;
2702
2730
  function Yr() {
2703
- return (Jr === null || Jr.byteLength === 0) && (Jr = new Uint32Array($.memory.buffer)), Jr;
2704
- }
2705
- var Xr = null;
2706
- function Zr() {
2707
- return (Xr === null || Xr.byteLength === 0) && (Xr = new Uint8Array($.memory.buffer)), Xr;
2731
+ return (Jr === null || Jr.byteLength === 0) && (Jr = new Uint8Array($.memory.buffer)), Jr;
2708
2732
  }
2709
- function Qr(e, t) {
2733
+ function Xr(e, t) {
2710
2734
  let n = t(e.length * 8, 8) >>> 0;
2711
- return Kr().set(e, n / 8), ii = e.length, n;
2735
+ return Wr().set(e, n / 8), ni = e.length, n;
2712
2736
  }
2713
- function $r(e) {
2737
+ function Zr(e) {
2714
2738
  let t = $.__wbindgen_externrefs.get(e);
2715
2739
  return $.__externref_table_dealloc(e), t;
2716
2740
  }
2717
- var ei = new TextDecoder("utf-8", {
2741
+ var Qr = new TextDecoder("utf-8", {
2718
2742
  ignoreBOM: !0,
2719
2743
  fatal: !0
2720
2744
  });
2721
- ei.decode();
2722
- var ti = 2146435072, ni = 0;
2723
- function ri(e, t) {
2724
- return ni += t, ni >= ti && (ei = new TextDecoder("utf-8", {
2745
+ Qr.decode();
2746
+ var $r = 2146435072, ei = 0;
2747
+ function ti(e, t) {
2748
+ return ei += t, ei >= $r && (Qr = new TextDecoder("utf-8", {
2725
2749
  ignoreBOM: !0,
2726
2750
  fatal: !0
2727
- }), ei.decode(), ni = t), ei.decode(Zr().subarray(e, e + t));
2751
+ }), Qr.decode(), ei = t), Qr.decode(Yr().subarray(e, e + t));
2728
2752
  }
2729
- var ii = 0, $;
2730
- function ai(e, t) {
2731
- return $ = e.exports, Gr = null, Jr = null, Xr = null, $.__wbindgen_start(), $;
2753
+ var ni = 0, $;
2754
+ function ri(e, t) {
2755
+ return $ = e.exports, Ur = null, Kr = null, Jr = null, $.__wbindgen_start(), $;
2732
2756
  }
2733
- async function oi(e, t) {
2757
+ async function ii(e, t) {
2734
2758
  if (typeof Response == "function" && e instanceof Response) {
2735
2759
  if (typeof WebAssembly.instantiateStreaming == "function") try {
2736
2760
  return await WebAssembly.instantiateStreaming(e, t);
@@ -2756,17 +2780,17 @@ async function oi(e, t) {
2756
2780
  return !1;
2757
2781
  }
2758
2782
  }
2759
- async function si(e) {
2783
+ async function ai(e) {
2760
2784
  if ($ !== void 0) return $;
2761
2785
  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));
2762
- let t = Hr();
2786
+ let t = Br();
2763
2787
  (typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
2764
- let { instance: n, module: r } = await oi(await e, t);
2765
- return ai(n, r);
2788
+ let { instance: n, module: r } = await ii(await e, t);
2789
+ return ri(n, r);
2766
2790
  }
2767
2791
  //#endregion
2768
2792
  //#region src/core/wasmSampling.ts
2769
- var ci = {
2793
+ var oi = {
2770
2794
  none: 0,
2771
2795
  peak: 1,
2772
2796
  lttb: 2,
@@ -2775,24 +2799,24 @@ var ci = {
2775
2799
  max: 5,
2776
2800
  minmax: 6,
2777
2801
  sum: 7
2778
- }, li;
2779
- function ui(e, t) {
2802
+ }, si;
2803
+ function ci(e, t) {
2780
2804
  return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
2781
2805
  }
2782
- function di(e) {
2806
+ function li(e) {
2783
2807
  if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
2784
2808
  }
2785
- function fi(e) {
2786
- return li ??= Promise.resolve(si(e)).then(() => void 0), li;
2809
+ function ui(e) {
2810
+ return si ??= Promise.resolve(ai(e)).then(() => void 0), si;
2787
2811
  }
2788
- async function pi(e) {
2789
- di(e), await fi();
2790
- let t = ui(e.targetPointCount, e.x.length), n = ci[e.strategy];
2812
+ async function di(e) {
2813
+ li(e), await ui();
2814
+ let t = ci(e.targetPointCount, e.x.length), n = oi[e.strategy];
2791
2815
  if (e.strategy !== "average" && e.strategy !== "sum") return {
2792
2816
  kind: "source-indexes",
2793
- sourceIndexes: Vr(e.x, e.y, n, t)
2817
+ sourceIndexes: zr(e.x, e.y, n, t)
2794
2818
  };
2795
- let r = Br(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
2819
+ let r = Rr(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
2796
2820
  for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
2797
2821
  return {
2798
2822
  kind: "aggregates",
@@ -2800,24 +2824,34 @@ async function pi(e) {
2800
2824
  y: a
2801
2825
  };
2802
2826
  }
2803
- async function mi(e, t) {
2827
+ async function fi(e, t) {
2804
2828
  if (e.length !== t.length) throw Error("x and y must have the same length");
2805
- await fi();
2806
- let n = Rr(e, t);
2829
+ await ui();
2830
+ let n = Ir(e, t);
2807
2831
  return n.length === 4 ? {
2808
2832
  x: [n[0], n[1]],
2809
2833
  y: [n[2], n[3]]
2810
2834
  } : void 0;
2811
2835
  }
2812
- async function hi(e, t, n) {
2836
+ async function pi(e, t, n) {
2813
2837
  if (e.length !== t.length) throw Error("x and y must have the same length");
2814
- await fi();
2815
- let r = zr(e, t, n[0], n[1]);
2838
+ await ui();
2839
+ let r = Lr(e, t, n[0], n[1]);
2816
2840
  return [r[0], r[1]];
2817
2841
  }
2818
2842
  //#endregion
2843
+ //#region src/components/core/trackPagination.ts
2844
+ var mi = (e, t) => t ? e.filter((e) => e.series.length > 0) : e, hi = (e, t, n, r, i) => {
2845
+ let a = t?.[i];
2846
+ if (a !== void 0) return a;
2847
+ if (e !== void 0) return n === 1 ? e : typeof e == "number" ? e + r : `${e}-${r + 1}`;
2848
+ }, gi = (e, t, n) => (r) => {
2849
+ let i = n(), a = i.findIndex((e) => e.id === r);
2850
+ return hi(e(), t(), i.length, a >= 0 ? a : 0, r);
2851
+ };
2852
+ //#endregion
2819
2853
  //#region src/components/core/useWaveformLayout.ts
2820
- function gi(e) {
2854
+ function _i(e) {
2821
2855
  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) => ({
2822
2856
  ...e,
2823
2857
  color: e.color ?? (t === 0 ? n.lineColor : Vt[t % Vt.length])
@@ -2840,53 +2874,44 @@ function gi(e) {
2840
2874
  yDomain: o.length ? ht(o) : [0, 1]
2841
2875
  };
2842
2876
  });
2843
- }), v = t(() => Tn(n.rendering)), y = t(() => Vn(_.value.length, g.value)), b = t(() => Hn(_.value, i.value, g.value)), x = t(() => {
2844
- let e = b.value.filter((e) => e.series.length > 0);
2845
- return g.value.fillIncompleteLastRow && e.length > 0 ? e : b.value;
2846
- }), S = t(() => {
2877
+ }), v = t(() => Tn(n.rendering)), y = t(() => mi(_.value, g.value.hideEmptyTracks)), b = t(() => Vn(y.value.length, g.value)), x = t(() => Hn(y.value, i.value, g.value)), S = t(() => {
2878
+ let e = x.value.filter((e) => e.series.length > 0);
2879
+ return g.value.fillIncompleteLastRow && e.length > 0 ? e : x.value;
2880
+ }), C = t(() => {
2847
2881
  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);
2848
2882
  return {
2849
2883
  tickClearance: r,
2850
2884
  fullClearance: t + 7 + 0 + 12 + 4,
2851
2885
  labelCenterX: i
2852
2886
  };
2853
- }), C = t(() => _.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), w = t(() => _.value.some((e) => e.visibleSeries.length > 0)), T = t(() => Math.max(Lt.left, C.value ? S.value.fullClearance : w.value ? S.value.tickClearance : 0)), E = t(() => _.value.reduce((e, t) => {
2854
- let r = ur(t, n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber, n.axes?.y?.nice !== !1);
2887
+ }), 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(() => {
2888
+ 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;
2855
2889
  return {
2856
- left: Math.max(e.left, r.left),
2857
- right: Math.max(e.right, r.right)
2890
+ 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,
2891
+ hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && w.value && !o
2858
2892
  };
2859
- }, {
2860
- left: 0,
2861
- right: 0
2862
- })), D = t(() => n.overlayMode === "multi-axis" ? Math.max(T.value, E.value.left) : T.value), O = t(() => n.overlayMode === "multi-axis" ? Math.max(Lt.right, E.value.right) : Lt.right), k = t(() => Math.max(0, o.value - D.value - O.value)), A = t(() => {
2863
- 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;
2864
- return {
2865
- horizontalGap: n.overlayMode === "multi-axis" && r && w.value ? Math.max(e, E.value.left + E.value.right) : r && w.value ? C.value && o ? i : a : e,
2866
- hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && C.value && !o
2867
- };
2868
- }), 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(() => {
2893
+ }), 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(() => {
2869
2894
  let e = [];
2870
2895
  return _.value.forEach((t) => {
2871
2896
  t.visibleSeries.length && e.push(t.xDomain[0], t.xDomain[1]);
2872
2897
  }), ht(e);
2873
- }), L = t(() => {
2898
+ }), R = t(() => {
2874
2899
  let e = n.initialXDomain;
2875
- 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);
2876
- }), R = (e) => {
2900
+ 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);
2901
+ }), z = (e) => {
2877
2902
  let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
2878
2903
  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);
2879
- }, 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) => ({
2904
+ }, 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) => ({
2880
2905
  ...e,
2881
- series: x.value[t]
2882
- }))), V = t(() => Xn({
2883
- cells: B.value,
2906
+ series: S.value[t]
2907
+ }))), H = t(() => Xn({
2908
+ cells: V.value,
2884
2909
  grid: g.value,
2885
2910
  displayMode: n.displayMode,
2886
2911
  overlayMode: n.overlayMode,
2887
2912
  independentTransforms: u.value,
2888
- sharedZoomDomain: z.value,
2889
- initialXDomain: n.initialXDomain ? L.value : void 0,
2913
+ sharedZoomDomain: B.value,
2914
+ initialXDomain: n.initialXDomain ? R.value : void 0,
2890
2915
  initialXDomains: n.initialXDomains,
2891
2916
  xDomainStrategy: n.xDomainStrategy,
2892
2917
  fixedYDomain: n.yDomain,
@@ -2901,38 +2926,40 @@ function gi(e) {
2901
2926
  yAxisNice: n.axes?.y?.nice,
2902
2927
  rendering: v.value,
2903
2928
  linePointOverrides: m?.value,
2904
- hideSecondaryLabels: c.value || A.value.hideSecondaryLabels,
2905
- yAxisLabelX: S.value.labelCenterX,
2906
- showCompactEmptyTracks: n.displayMode === "compact" && j.value
2907
- })), H = (e) => e.seriesList.map((t) => ({
2929
+ hideSecondaryLabels: c.value || j.value.hideSecondaryLabels,
2930
+ yAxisLabelX: D.value.slots.find((e) => e.side === "left" && e.sideIndex === 0)?.labelOffset ?? C.value.labelCenterX,
2931
+ yAxisSlots: n.overlayMode === "multi-axis" ? D.value.slots : void 0,
2932
+ showCompactEmptyTracks: n.displayMode === "compact" && M.value
2933
+ })), W = (e) => e.seriesList.map((t) => ({
2908
2934
  ...e,
2909
2935
  series: t,
2910
2936
  yScale: e.seriesPaths.find((e) => e.series.id === t.id)?.yScale ?? e.yScale
2911
- })), W = (e, t) => e.seriesPaths.find((e) => e.series.id === t)?.yScale ?? e.yScale, ee = t(() => V.value.flatMap(H));
2937
+ })), ee = (e, t) => e.seriesPaths.find((e) => e.series.id === t)?.yScale ?? e.yScale, te = t(() => H.value.flatMap(W));
2912
2938
  return {
2913
2939
  chartSeries: h,
2914
2940
  chartTracks: _,
2941
+ pageableTracks: y,
2915
2942
  renderingOptions: v,
2916
2943
  gridOptions: g,
2917
- pageCount: y,
2918
- pagedTracks: b,
2919
- resolvedChartLeftMargin: D,
2920
- innerWidth: k,
2921
- hasVisibleWaveformData: w,
2922
- hasWaveformData: j,
2923
- hasChartArea: M,
2924
- resolvedXLabel: N,
2925
- activeInteractionMode: P,
2926
- isZoomMode: F,
2927
- initialXDomain: L,
2928
- sharedZoomDomain: z,
2929
- resolveInitialTrackDomain: R,
2930
- gridCells: B,
2931
- trackLayouts: V,
2932
- annotationLayoutsForTrack: H,
2933
- resolveSeriesYScale: W,
2934
- annotationTrackLayouts: ee,
2935
- renderedAnnotations: t(() => n.annotationsVisible ? Me(n.annotations, ee.value, k.value, s.value) : []),
2944
+ pageCount: b,
2945
+ pagedTracks: x,
2946
+ resolvedChartLeftMargin: O,
2947
+ innerWidth: A,
2948
+ hasVisibleWaveformData: T,
2949
+ hasWaveformData: M,
2950
+ hasChartArea: N,
2951
+ resolvedXLabel: P,
2952
+ activeInteractionMode: F,
2953
+ isZoomMode: I,
2954
+ initialXDomain: R,
2955
+ sharedZoomDomain: B,
2956
+ resolveInitialTrackDomain: z,
2957
+ gridCells: V,
2958
+ trackLayouts: H,
2959
+ annotationLayoutsForTrack: W,
2960
+ resolveSeriesYScale: ee,
2961
+ annotationTrackLayouts: te,
2962
+ renderedAnnotations: t(() => n.annotationsVisible ? Me(n.annotations, te.value, A.value, s.value) : []),
2936
2963
  editorSeries: t(() => {
2937
2964
  let e = p.editorDraft.value?.annotation.seriesId, t = h.value.find((t) => t.id === e);
2938
2965
  return t ? {
@@ -2942,18 +2969,16 @@ function gi(e) {
2942
2969
  unit: t.unit
2943
2970
  } : void 0;
2944
2971
  }),
2945
- resolveFrameNumber: (e) => {
2946
- 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}`;
2947
- }
2972
+ resolveFrameNumber: gi(() => n.frameNumber, () => n.frameNumbers, () => _.value)
2948
2973
  };
2949
2974
  }
2950
- var _i = 1e-6;
2951
- function vi(e) {
2975
+ var vi = 1e-6;
2976
+ function yi(e) {
2952
2977
  return Number.isFinite(e) ? Math.max(1, e) : 1;
2953
2978
  }
2954
- function yi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
2955
- let i = vi(e), a = vi(t), o = vi(n), s = Number.isFinite(r) ? r : 0, c = s * Math.PI / 180, l = Math.abs(Math.cos(c)), u = Math.abs(Math.sin(c)), d = (s % 360 + 360) % 360;
2956
- if (!(d > _i && Math.abs(d - 360) > _i)) {
2979
+ function bi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
2980
+ let i = yi(e), a = yi(t), o = yi(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;
2981
+ if (!(d > vi && Math.abs(d - 360) > vi)) {
2957
2982
  let e = Math.max(1, Math.ceil(i / o)), t = o, n = a * e;
2958
2983
  return {
2959
2984
  textWidth: t,
@@ -2978,7 +3003,7 @@ function yi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r
2978
3003
  }
2979
3004
  //#endregion
2980
3005
  //#region src/components/core/useWaveformPresentation.ts
2981
- function bi(e) {
3006
+ function xi(e) {
2982
3007
  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(() => ({
2983
3008
  width: l.value === void 0 ? "100%" : `${l.value}px`,
2984
3009
  height: u.value === void 0 ? "100%" : `${u.value}px`
@@ -3023,7 +3048,7 @@ function bi(e) {
3023
3048
  maxWidth: O.value ? "none" : `${j.value}px`,
3024
3049
  whiteSpace: O.value ? "nowrap" : "normal",
3025
3050
  overflowWrap: O.value ? "normal" : "anywhere"
3026
- })), N = t(() => yi({
3051
+ })), N = t(() => bi({
3027
3052
  naturalWidth: a.value || A.value,
3028
3053
  naturalHeight: o.value || E.value * 1.2,
3029
3054
  availableWidth: j.value,
@@ -3079,66 +3104,66 @@ function bi(e) {
3079
3104
  }
3080
3105
  //#endregion
3081
3106
  //#region src/core/samplingReferenceValues.ts
3082
- function xi(e, t) {
3107
+ function Si(e, t) {
3083
3108
  return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
3084
3109
  }
3085
- function Si(e, t, n, r) {
3110
+ function Ci(e, t, n, r) {
3086
3111
  let i = r - n;
3087
3112
  return {
3088
3113
  start: n + Math.floor(e * i / t),
3089
3114
  end: n + Math.floor((e + 1) * i / t)
3090
3115
  };
3091
3116
  }
3092
- function Ci(e, t) {
3117
+ function wi(e, t) {
3093
3118
  e[e.length - 1] !== t && e.push(t);
3094
3119
  }
3095
- function wi(e, t, n) {
3120
+ function Ti(e, t, n) {
3096
3121
  if (e <= t) return Array.from({ length: e }, (e, t) => t);
3097
3122
  if (t === 1) return [0];
3098
3123
  if (t === 2) return [0, e - 1];
3099
3124
  let r = [0];
3100
- return n().forEach((e) => Ci(r, e)), Ci(r, e - 1), r;
3125
+ return n().forEach((e) => wi(r, e)), wi(r, e - 1), r;
3101
3126
  }
3102
- function Ti(e, t, n) {
3127
+ function Ei(e, t, n) {
3103
3128
  let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
3104
- return wi(e.length, t, () => {
3129
+ return Ti(e.length, t, () => {
3105
3130
  if (!r) return [];
3106
3131
  let t = [];
3107
3132
  for (let i = 0; i < r; i += 1) {
3108
- let a = Si(i, r, 1, e.length - 1), o = a.start, s = a.start;
3133
+ let a = Ci(i, r, 1, e.length - 1), o = a.start, s = a.start;
3109
3134
  for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
3110
- n === "min" ? Ci(t, o) : n === "max" ? Ci(t, s) : o <= s ? (Ci(t, o), Ci(t, s)) : (Ci(t, s), Ci(t, o));
3135
+ n === "min" ? wi(t, o) : n === "max" ? wi(t, s) : o <= s ? (wi(t, o), wi(t, s)) : (wi(t, s), wi(t, o));
3111
3136
  }
3112
3137
  return t;
3113
3138
  });
3114
3139
  }
3115
- function Ei(e, t) {
3140
+ function Di(e, t) {
3116
3141
  let n = Math.floor((t - 2) / 4);
3117
- return wi(e.length, t, () => {
3142
+ return Ti(e.length, t, () => {
3118
3143
  if (!n) return [];
3119
3144
  let t = [];
3120
3145
  for (let r = 0; r < n; r += 1) {
3121
- let i = Si(r, n, 1, e.length - 1), a = i.start, o = i.start;
3146
+ let i = Ci(r, n, 1, e.length - 1), a = i.start, o = i.start;
3122
3147
  for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
3123
3148
  [
3124
3149
  i.start,
3125
3150
  a,
3126
3151
  o,
3127
3152
  i.end - 1
3128
- ].sort((e, t) => e - t).forEach((e) => Ci(t, e));
3153
+ ].sort((e, t) => e - t).forEach((e) => wi(t, e));
3129
3154
  }
3130
3155
  return t;
3131
3156
  });
3132
3157
  }
3133
- function Di(e, t, n) {
3134
- return wi(e.length, n, () => {
3158
+ function Oi(e, t, n) {
3159
+ return Ti(e.length, n, () => {
3135
3160
  let r = (e.length - 2) / (n - 2), i = [], a = 0;
3136
3161
  for (let o = 0; o < n - 2; o += 1) {
3137
3162
  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;
3138
3163
  for (let n = s; n < c; n += 1) l += e[n], u += t[n];
3139
3164
  let d = c - s;
3140
3165
  d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
3141
- let f = Si(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
3166
+ let f = Ci(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
3142
3167
  for (let n = f.start; n < f.end; n += 1) {
3143
3168
  let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
3144
3169
  r > m && (m = r, p = n);
@@ -3148,10 +3173,10 @@ function Di(e, t, n) {
3148
3173
  return i;
3149
3174
  });
3150
3175
  }
3151
- function Oi(e, t, n, r) {
3152
- let i = xi(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
3176
+ function ki(e, t, n, r) {
3177
+ let i = Si(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
3153
3178
  for (let n = 0; n < i; n += 1) {
3154
- let s = Si(n, i, 0, e.length);
3179
+ let s = Ci(n, i, 0, e.length);
3155
3180
  for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
3156
3181
  let c = s.end - s.start;
3157
3182
  a[n] /= c, r === "average" && (o[n] /= c);
@@ -3162,10 +3187,10 @@ function Oi(e, t, n, r) {
3162
3187
  y: o
3163
3188
  };
3164
3189
  }
3165
- function ki(e, t, n, r) {
3190
+ function Ai(e, t, n, r) {
3166
3191
  if (e.length !== t.length) throw Error("x and y must have the same length");
3167
- if (n === "average" || n === "sum") return Oi(e, t, r, n);
3168
- let i = xi(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? Ei(t, i) : n === "lttb" ? Di(e, t, i) : Ti(t, i, n);
3192
+ if (n === "average" || n === "sum") return ki(e, t, r, n);
3193
+ let i = Si(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? Di(t, i) : n === "lttb" ? Oi(e, t, i) : Ei(t, i, n);
3169
3194
  return {
3170
3195
  kind: "source-indexes",
3171
3196
  sourceIndexes: Uint32Array.from(a)
@@ -3173,41 +3198,41 @@ function ki(e, t, n, r) {
3173
3198
  }
3174
3199
  //#endregion
3175
3200
  //#region src/core/workerSampling/javascriptBackend.ts
3176
- var Ai = {
3201
+ var ji = {
3177
3202
  kind: "javascript",
3178
3203
  sample(e) {
3179
- return ki(e.x, e.y, e.strategy, e.targetPointCount);
3204
+ return Ai(e.x, e.y, e.strategy, e.targetPointCount);
3180
3205
  }
3181
- }, ji = 8 * 1024 * 1024;
3182
- function Mi(e, t) {
3206
+ }, Mi = 8 * 1024 * 1024;
3207
+ function Ni(e, t) {
3183
3208
  return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
3184
3209
  }
3185
- function Ni(e, t, n, r) {
3210
+ function Pi(e, t, n, r) {
3186
3211
  let i = r - n;
3187
3212
  return {
3188
3213
  start: n + Math.floor(e * i / t),
3189
3214
  end: n + Math.floor((e + 1) * i / t)
3190
3215
  };
3191
3216
  }
3192
- function Pi(e, t) {
3217
+ function Fi(e, t) {
3193
3218
  e[e.length - 1] !== t && e.push(t);
3194
3219
  }
3195
- function Fi(e) {
3220
+ function Ii(e) {
3196
3221
  return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
3197
3222
  }
3198
- function Ii(e, t) {
3223
+ function Li(e, t) {
3199
3224
  let n = 1;
3200
3225
  for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
3201
3226
  return n;
3202
3227
  }
3203
- var Li = class {
3228
+ var Ri = class {
3204
3229
  points;
3205
3230
  extremaLayers = [];
3206
3231
  sumLayers = [];
3207
3232
  indexBytes = 0;
3208
3233
  maxBytes;
3209
3234
  constructor(e, t = {}) {
3210
- this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : ji;
3235
+ this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : Mi;
3211
3236
  }
3212
3237
  get byteLength() {
3213
3238
  return this.indexBytes;
@@ -3216,7 +3241,7 @@ var Li = class {
3216
3241
  this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
3217
3242
  }
3218
3243
  sample(e, t, n, r) {
3219
- let i = Math.max(0, Math.min(this.points.length, Math.floor(e))), a = Math.max(i, Math.min(this.points.length, Math.floor(t))), o = a - i, s = Mi(r, o);
3244
+ 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 = Ni(r, o);
3220
3245
  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);
3221
3246
  }
3222
3247
  allIndexes(e, t) {
@@ -3236,24 +3261,24 @@ var Li = class {
3236
3261
  if (i === 0) return this.indexes([e, t - 1]);
3237
3262
  let a = [e];
3238
3263
  for (let n = 0; n < i; n += 1) {
3239
- let o = Ni(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
3264
+ let o = Pi(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
3240
3265
  if (!s) return;
3241
- if (r === "min") Pi(a, s.minimum);
3242
- else if (r === "max") Pi(a, s.maximum);
3243
- else if (r === "minmax") s.minimum <= s.maximum ? (Pi(a, s.minimum), Pi(a, s.maximum)) : (Pi(a, s.maximum), Pi(a, s.minimum));
3266
+ if (r === "min") Fi(a, s.minimum);
3267
+ else if (r === "max") Fi(a, s.maximum);
3268
+ else if (r === "minmax") s.minimum <= s.maximum ? (Fi(a, s.minimum), Fi(a, s.maximum)) : (Fi(a, s.maximum), Fi(a, s.minimum));
3244
3269
  else for (let e of [
3245
3270
  o.start,
3246
3271
  s.minimum,
3247
3272
  s.maximum,
3248
3273
  o.end - 1
3249
- ].sort((e, t) => e - t)) Pi(a, e);
3274
+ ].sort((e, t) => e - t)) Fi(a, e);
3250
3275
  }
3251
- return Pi(a, t - 1), this.indexes(a);
3276
+ return Fi(a, t - 1), this.indexes(a);
3252
3277
  }
3253
3278
  aggregate(e, t, n, r) {
3254
3279
  let i = new Float64Array(n), a = new Float64Array(n);
3255
3280
  for (let o = 0; o < n; o += 1) {
3256
- let s = Ni(o, n, e, t), c = this.querySum(s.start, s.end);
3281
+ let s = Pi(o, n, e, t), c = this.querySum(s.start, s.end);
3257
3282
  if (!c || c.count === 0) return;
3258
3283
  i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
3259
3284
  }
@@ -3268,7 +3293,7 @@ var Li = class {
3268
3293
  if (!this.ensureExtrema(n)) return;
3269
3294
  let r = e, i = e;
3270
3295
  for (let n = e; n < t;) {
3271
- let e = Ii(n, t - n), a = Math.floor(Math.log2(e)), o = n / e, s = this.extremaLayers[a], c = s ? s.minimumIndexes[o] : n, l = s ? s.maximumIndexes[o] : n;
3296
+ let e = Li(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;
3272
3297
  this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
3273
3298
  }
3274
3299
  return {
@@ -3281,7 +3306,7 @@ var Li = class {
3281
3306
  if (!this.ensureSum(n)) return;
3282
3307
  let r = 0, i = 0, a = 0;
3283
3308
  for (let n = e; n < t;) {
3284
- let e = Ii(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
3309
+ let e = Li(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
3285
3310
  if (c) r += c.x[s], i += c.y[s], a += c.count[s];
3286
3311
  else {
3287
3312
  let e = this.points[n];
@@ -3302,7 +3327,7 @@ var Li = class {
3302
3327
  minimumIndexes: new Uint32Array(e),
3303
3328
  maximumIndexes: new Uint32Array(e)
3304
3329
  };
3305
- if (!this.reserve(Fi(n))) return !1;
3330
+ if (!this.reserve(Ii(n))) return !1;
3306
3331
  let r = this.extremaLayers[t - 1];
3307
3332
  for (let t = 0; t < e; t += 1) {
3308
3333
  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;
@@ -3320,7 +3345,7 @@ var Li = class {
3320
3345
  y: new Float64Array(e),
3321
3346
  count: new Uint32Array(e)
3322
3347
  };
3323
- if (!this.reserve(Fi(n))) return !1;
3348
+ if (!this.reserve(Ii(n))) return !1;
3324
3349
  let r = this.sumLayers[t - 1];
3325
3350
  for (let t = 0; t < e; t += 1) {
3326
3351
  let e = t * 2, i = e + 1;
@@ -3345,8 +3370,8 @@ var Li = class {
3345
3370
  let n = this.points[e], r = this.points[t];
3346
3371
  return n.y > r.y || n.y === r.y && e < t;
3347
3372
  }
3348
- }, Ri = 1e3, zi = I((e) => e.x);
3349
- function Bi(e) {
3373
+ }, zi = 1e3, Bi = I((e) => e.x);
3374
+ function Vi(e) {
3350
3375
  let t = [], n = !0, r = -Infinity;
3351
3376
  for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
3352
3377
  x: i.x,
@@ -3357,7 +3382,7 @@ function Bi(e) {
3357
3382
  }));
3358
3383
  return n || t.sort((e, t) => e.x - t.x), t;
3359
3384
  }
3360
- function Vi(e, t) {
3385
+ function Hi(e, t) {
3361
3386
  let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
3362
3387
  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);
3363
3388
  return {
@@ -3367,7 +3392,7 @@ function Vi(e, t) {
3367
3392
  yDomain: e.length ? [i, a] : null
3368
3393
  };
3369
3394
  }
3370
- function Hi(e, t, n = e.length) {
3395
+ function Ui(e, t, n = e.length) {
3371
3396
  let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
3372
3397
  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]);
3373
3398
  return {
@@ -3377,39 +3402,39 @@ function Hi(e, t, n = e.length) {
3377
3402
  yDomain: e.length ? [a, o] : null
3378
3403
  };
3379
3404
  }
3380
- function Ui(e, t) {
3405
+ function Wi(e, t) {
3381
3406
  return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
3382
3407
  }
3383
- function Wi(e) {
3408
+ function Gi(e) {
3384
3409
  return e === "auto" ? "peak" : e;
3385
3410
  }
3386
- function Gi(e) {
3411
+ function Ki(e) {
3387
3412
  if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
3388
3413
  let t = Number.isFinite(e.plotWidth) ? Math.max(0, e.plotWidth) : 0, n = Number.isFinite(e.maxPointsPerPixel) ? Math.max(0, e.maxPointsPerPixel ?? 0) : 4;
3389
3414
  return Math.max(1, Math.floor(t * n));
3390
3415
  }
3391
- function Ki(e, t) {
3416
+ function qi(e, t) {
3392
3417
  if (e.mode === "raw") return !0;
3393
3418
  if (e.mode !== "auto") return !1;
3394
- let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : Ri;
3419
+ let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : zi;
3395
3420
  if (!e.previousSelectedMode) return t <= n;
3396
3421
  let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
3397
3422
  return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
3398
3423
  }
3399
- function qi(e, t) {
3424
+ function Ji(e, t) {
3400
3425
  let n = e[0], r = e.at(-1);
3401
- return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[zi.center(e, t)] : void 0;
3426
+ return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[Bi.center(e, t)] : void 0;
3402
3427
  }
3403
- function Ji(e) {
3428
+ function Yi(e) {
3404
3429
  return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
3405
3430
  }
3406
- function Yi(e, t) {
3431
+ function Xi(e, t) {
3407
3432
  return e.kind === "aggregates" ? e : {
3408
3433
  kind: "source-indexes",
3409
3434
  sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
3410
3435
  };
3411
3436
  }
3412
- function Xi(e, t, n, r, i) {
3437
+ function Zi(e, t, n, r, i) {
3413
3438
  return [
3414
3439
  e.datasetId,
3415
3440
  e.revision,
@@ -3429,14 +3454,14 @@ function Xi(e, t, n, r, i) {
3429
3454
  e.errorBarMinSpacing ?? 0
3430
3455
  ].join("\0");
3431
3456
  }
3432
- function Zi(e, t, n, r, i, a, o, s) {
3457
+ function Qi(e, t, n, r, i, a, o, s) {
3433
3458
  return {
3434
3459
  seriesId: e.seriesId,
3435
3460
  datasetId: e.datasetId,
3436
3461
  mode: e.mode,
3437
3462
  selectedMode: i,
3438
3463
  backend: r,
3439
- strategy: Wi(e.strategy),
3464
+ strategy: Gi(e.strategy),
3440
3465
  sourcePointCount: t,
3441
3466
  visiblePointCount: n,
3442
3467
  renderedPointCount: o,
@@ -3452,18 +3477,18 @@ function Zi(e, t, n, r, i, a, o, s) {
3452
3477
  }
3453
3478
  //#endregion
3454
3479
  //#region src/core/workerSampling/repositoryDataset.ts
3455
- function Qi(e) {
3480
+ function $i(e) {
3456
3481
  return e?.y.length ?? 0;
3457
3482
  }
3458
- function $i(e, t) {
3483
+ function ea(e, t) {
3459
3484
  return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
3460
3485
  }
3461
- function ea(e, t) {
3486
+ function ta(e, t) {
3462
3487
  let n = (t, n) => {
3463
- let r = 0, i = Qi(e);
3488
+ let r = 0, i = $i(e);
3464
3489
  for (; r < i;) {
3465
3490
  let a = r + Math.floor((i - r) / 2);
3466
- (n ? $i(e, a) <= t : $i(e, a) < t) ? r = a + 1 : i = a;
3491
+ (n ? ea(e, a) <= t : ea(e, a) < t) ? r = a + 1 : i = a;
3467
3492
  }
3468
3493
  return r;
3469
3494
  }, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
@@ -3472,13 +3497,13 @@ function ea(e, t) {
3472
3497
  end: n(i, !0)
3473
3498
  };
3474
3499
  }
3475
- function ta(e, t, n) {
3476
- return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => $i(e, t + r));
3500
+ function na(e, t, n) {
3501
+ return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => ea(e, t + r));
3477
3502
  }
3478
- function na(e) {
3503
+ function ra(e) {
3479
3504
  return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
3480
3505
  }
3481
- function ra(e, t) {
3506
+ function ia(e, t) {
3482
3507
  let n = [], r = Math.min(e.length, t.length);
3483
3508
  for (let i = 0; i < r; i += 1) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push(i);
3484
3509
  return n.sort((t, n) => e[t] - e[n] || t - n), {
@@ -3486,14 +3511,14 @@ function ra(e, t) {
3486
3511
  y: Float64Array.from(n, (e) => t[e])
3487
3512
  };
3488
3513
  }
3489
- function ia(e, t, n, r) {
3514
+ function aa(e, t, n, r) {
3490
3515
  if (t?.kind === "typed") {
3491
- let e = ra(t.x, t.y);
3516
+ let e = ia(t.x, t.y);
3492
3517
  return {
3493
3518
  x: e.x,
3494
3519
  y: e.y,
3495
3520
  revision: n,
3496
- metrics: Hi(e.x, e.y, Math.max(t.x.length, t.y.length))
3521
+ metrics: Ui(e.x, e.y, Math.max(t.x.length, t.y.length))
3497
3522
  };
3498
3523
  }
3499
3524
  if (t?.kind === "samples") {
@@ -3527,35 +3552,35 @@ function ia(e, t, n, r) {
3527
3552
  }
3528
3553
  };
3529
3554
  }
3530
- let i = Bi(e ?? t?.points ?? []);
3555
+ let i = Vi(e ?? t?.points ?? []);
3531
3556
  return {
3532
3557
  x: Float64Array.from(i, (e) => e.x),
3533
3558
  y: Float64Array.from(i, (e) => e.y),
3534
3559
  points: i,
3535
3560
  revision: n,
3536
- metrics: Vi(i, e?.length ?? t?.points.length ?? 0),
3537
- index: new Li(i, { maxBytes: r })
3561
+ metrics: Hi(i, e?.length ?? t?.points.length ?? 0),
3562
+ index: new Ri(i, { maxBytes: r })
3538
3563
  };
3539
3564
  }
3540
- function aa(e, t, n) {
3541
- !na(e) || t.wasmDatasetHandle !== void 0 || (t.wasmDatasetHandle = t.x ? e.registerDataset(t.x, t.y, n) : e.registerSamples(t.y, t.sampleSourceIndexes, t.sampleStartTime, t.sampleRate, n), t.wasmIndexBytes = e.datasetIndexBytes(t.wasmDatasetHandle));
3565
+ function oa(e, t, n) {
3566
+ !ra(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));
3542
3567
  }
3543
- function oa(e, t) {
3544
- t.index?.dispose(), t.wasmDatasetHandle !== void 0 && na(e) && e.disposeDataset(t.wasmDatasetHandle);
3568
+ function sa(e, t) {
3569
+ t.index?.dispose(), t.wasmDatasetHandle !== void 0 && ra(e) && e.disposeDataset(t.wasmDatasetHandle);
3545
3570
  }
3546
3571
  //#endregion
3547
3572
  //#region src/core/workerSampling/samplingCache.ts
3548
- var sa = 96, ca = 16 * 1024 * 1024;
3549
- function la(e) {
3573
+ var ca = 96, la = 16 * 1024 * 1024;
3574
+ function ua(e) {
3550
3575
  return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
3551
3576
  }
3552
- var ua = class {
3577
+ var da = class {
3553
3578
  entries = /* @__PURE__ */ new Map();
3554
3579
  bytes = 0;
3555
3580
  maxEntries;
3556
3581
  maxBytes;
3557
3582
  constructor(e = {}) {
3558
- this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : sa, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : ca;
3583
+ this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : ca, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : la;
3559
3584
  }
3560
3585
  get metrics() {
3561
3586
  return {
@@ -3570,7 +3595,7 @@ var ua = class {
3570
3595
  if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
3571
3596
  }
3572
3597
  set(e, t) {
3573
- let n = la(t);
3598
+ let n = ua(t);
3574
3599
  if (n > this.maxBytes || this.maxEntries === 0) return;
3575
3600
  let r = this.entries.get(e);
3576
3601
  for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
@@ -3590,14 +3615,14 @@ var ua = class {
3590
3615
  clear() {
3591
3616
  this.entries.clear(), this.bytes = 0;
3592
3617
  }
3593
- }, da = class {
3618
+ }, fa = class {
3594
3619
  datasets = /* @__PURE__ */ new Map();
3595
3620
  javascriptBackend;
3596
3621
  cache;
3597
3622
  indexMaxBytes;
3598
3623
  wasmBackend;
3599
3624
  constructor(e = {}) {
3600
- this.javascriptBackend = e.javascriptBackend ?? Ai, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new ua({
3625
+ this.javascriptBackend = e.javascriptBackend ?? ji, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new da({
3601
3626
  maxEntries: e.cacheMaxEntries,
3602
3627
  maxBytes: e.cacheMaxBytes
3603
3628
  });
@@ -3610,9 +3635,9 @@ var ua = class {
3610
3635
  };
3611
3636
  }
3612
3637
  setWasmBackend(e) {
3613
- this.wasmBackend && this.wasmBackend !== e && na(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
3638
+ this.wasmBackend && this.wasmBackend !== e && ra(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
3614
3639
  e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
3615
- })), this.wasmBackend = e, na(e) && this.datasets.forEach((t) => aa(e, t, this.indexMaxBytes));
3640
+ })), this.wasmBackend = e, ra(e) && this.datasets.forEach((t) => oa(e, t, this.indexMaxBytes));
3616
3641
  }
3617
3642
  handle(e) {
3618
3643
  switch (e.type) {
@@ -3628,15 +3653,15 @@ var ua = class {
3628
3653
  register(e, t, n, r) {
3629
3654
  let i = this.datasets.get(e);
3630
3655
  if (i) return this.datasetResponse(t, e, i, "stale-revision");
3631
- let a = ia(n, r, 1, this.indexMaxBytes);
3632
- return aa(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
3656
+ let a = aa(n, r, 1, this.indexMaxBytes);
3657
+ return oa(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
3633
3658
  }
3634
3659
  replace(e, t, n, r, i) {
3635
- let a = this.datasets.get(e), o = Ui(a, n);
3660
+ let a = this.datasets.get(e), o = Wi(a, n);
3636
3661
  if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
3637
- oa(this.wasmBackend, a), this.cache.deleteDataset(e);
3638
- let s = ia(r, i, a.revision + 1, this.indexMaxBytes);
3639
- return aa(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
3662
+ sa(this.wasmBackend, a), this.cache.deleteDataset(e);
3663
+ let s = aa(r, i, a.revision + 1, this.indexMaxBytes);
3664
+ return oa(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
3640
3665
  }
3641
3666
  sample(e) {
3642
3667
  return {
@@ -3646,28 +3671,28 @@ var ua = class {
3646
3671
  };
3647
3672
  }
3648
3673
  sampleSeries(e, t) {
3649
- let n = performance.now(), r = this.datasets.get(t.datasetId), i = Ui(r, t.revision);
3674
+ let n = performance.now(), r = this.datasets.get(t.datasetId), i = Wi(r, t.revision);
3650
3675
  if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
3651
- let a = ea(r, t.xDomain), o = a.end - a.start;
3652
- if (Ki(t, o)) return this.sampleResponse(e, t, "ok", {
3676
+ let a = ta(r, t.xDomain), o = a.end - a.start;
3677
+ if (qi(t, o)) return this.sampleResponse(e, t, "ok", {
3653
3678
  kind: "source-indexes",
3654
3679
  sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
3655
3680
  }, "raw", "raw", o, n, !1);
3656
3681
  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);
3657
3682
  if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
3658
- let u = Wi(t.strategy), d = Gi(t), f = Xi(t, a, u, d, l.kind), p = this.cache.get(f);
3683
+ let u = Gi(t.strategy), d = Ki(t), f = Zi(t, a, u, d, l.kind), p = this.cache.get(f);
3659
3684
  if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
3660
- let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && na(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? Yi(l.sample({
3661
- x: ta(r, a.start, a.end),
3685
+ let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && ra(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? Xi(l.sample({
3686
+ x: na(r, a.start, a.end),
3662
3687
  y: r.y.subarray(a.start, a.end),
3663
3688
  points: r.points?.slice(a.start, a.end) ?? [],
3664
3689
  strategy: u,
3665
3690
  targetPointCount: d
3666
3691
  }), a.start);
3667
- return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && na(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
3692
+ return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && ra(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
3668
3693
  }
3669
3694
  sampleResponse(e, t, n, r, i, a, o, s, c) {
3670
- let l = Zi(t, Qi(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Ji(r), c);
3695
+ let l = Qi(t, $i(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Yi(r), c);
3671
3696
  return l.requestId = e, {
3672
3697
  seriesId: t.seriesId,
3673
3698
  datasetId: t.datasetId,
@@ -3678,7 +3703,7 @@ var ua = class {
3678
3703
  };
3679
3704
  }
3680
3705
  findNearest(e, t, n, r) {
3681
- let i = this.datasets.get(e), a = Ui(i, n);
3706
+ let i = this.datasets.get(e), a = Wi(i, n);
3682
3707
  return a !== "ok" || !i ? {
3683
3708
  type: "find-nearest-point-response",
3684
3709
  requestId: t,
@@ -3691,12 +3716,12 @@ var ua = class {
3691
3716
  datasetId: e,
3692
3717
  revision: n,
3693
3718
  status: a,
3694
- point: i.points ? qi(i.points, r) : (() => {
3695
- let e = ea(i, [r, r]);
3696
- if (!Qi(i) || r < $i(i, 0) || r > $i(i, Qi(i) - 1)) return;
3697
- let t = Math.min(Qi(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - $i(i, n)) < Math.abs($i(i, t) - r) ? n : t;
3698
- return Number.isFinite(r) && Qi(i) ? {
3699
- x: $i(i, a),
3719
+ point: i.points ? Ji(i.points, r) : (() => {
3720
+ let e = ta(i, [r, r]);
3721
+ if (!$i(i) || r < ea(i, 0) || r > ea(i, $i(i) - 1)) return;
3722
+ let t = Math.min($i(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - ea(i, n)) < Math.abs(ea(i, t) - r) ? n : t;
3723
+ return Number.isFinite(r) && $i(i) ? {
3724
+ x: ea(i, a),
3700
3725
  y: i.y[a]
3701
3726
  } : void 0;
3702
3727
  })()
@@ -3704,15 +3729,15 @@ var ua = class {
3704
3729
  }
3705
3730
  metrics(e, t, n) {
3706
3731
  let r = this.datasets.get(e);
3707
- return this.datasetResponse(t, e, r, Ui(r, n));
3732
+ return this.datasetResponse(t, e, r, Wi(r, n));
3708
3733
  }
3709
3734
  dispose(e, t, n) {
3710
- let r = this.datasets.get(e), i = Ui(r, n);
3711
- return i === "ok" && r && (oa(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
3735
+ let r = this.datasets.get(e), i = Wi(r, n);
3736
+ return i === "ok" && r && (sa(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
3712
3737
  }
3713
3738
  disposeAll(e) {
3714
3739
  let t = [...this.datasets.keys()];
3715
- return this.datasets.forEach((e) => oa(this.wasmBackend, e)), na(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
3740
+ return this.datasets.forEach((e) => sa(this.wasmBackend, e)), ra(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
3716
3741
  type: "dispose-all-response",
3717
3742
  requestId: e,
3718
3743
  disposedDatasetIds: t
@@ -3734,10 +3759,10 @@ var ua = class {
3734
3759
  };
3735
3760
  //#endregion
3736
3761
  //#region src/components/core/latestTaskScheduler.ts
3737
- function fa(e, t, n, r) {
3762
+ function pa(e, t, n, r) {
3738
3763
  return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
3739
3764
  }
3740
- function pa() {
3765
+ function ma() {
3741
3766
  let e = 0, t = !1, n, r = !1, i = {
3742
3767
  scheduled: 0,
3743
3768
  coalesced: 0,
@@ -3776,12 +3801,12 @@ function pa() {
3776
3801
  }
3777
3802
  //#endregion
3778
3803
  //#region src/components/core/workerSamplingClient.ts
3779
- function ma(e) {
3804
+ function ha(e) {
3780
3805
  return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
3781
3806
  }
3782
- function ha() {
3807
+ function ga() {
3783
3808
  let e, t, n, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = () => {
3784
- t ??= new da();
3809
+ t ??= new fa();
3785
3810
  for (let [e, n] of i) {
3786
3811
  t.handle({
3787
3812
  type: "register-dataset",
@@ -3817,7 +3842,7 @@ function ha() {
3817
3842
  let t = a();
3818
3843
  e.forEach(({ request: e, resolve: n }) => n(t.handle(e)));
3819
3844
  }, c = (r) => {
3820
- t || (n = ma(r), e?.terminate(), e = void 0, s());
3845
+ t || (n = ha(r), e?.terminate(), e = void 0, s());
3821
3846
  };
3822
3847
  try {
3823
3848
  typeof Worker > "u" ? c() : (e = new Worker(new URL(
@@ -3854,20 +3879,20 @@ function ha() {
3854
3879
  }
3855
3880
  };
3856
3881
  }
3857
- function ga(e) {
3882
+ function _a(e) {
3858
3883
  return e.type === "dataset-response";
3859
3884
  }
3860
3885
  //#endregion
3861
3886
  //#region src/components/core/useWaveformRenderSampling.ts
3862
- var _a = 120;
3863
- function va(e, t) {
3887
+ var va = 120;
3888
+ function ya(e, t) {
3864
3889
  let n = e.output;
3865
3890
  if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
3866
3891
  x: e,
3867
3892
  y: n.y[t]
3868
3893
  })) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
3869
3894
  }
3870
- function ya(e, t) {
3895
+ function ba(e, t) {
3871
3896
  let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
3872
3897
  return {
3873
3898
  seriesId: n.seriesId,
@@ -3889,7 +3914,7 @@ function ya(e, t) {
3889
3914
  maxPendingRequestCount: 0
3890
3915
  };
3891
3916
  }
3892
- function ba(e) {
3917
+ function xa(e) {
3893
3918
  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));
3894
3919
  if (i <= a) return t.pointsInRange(n, r);
3895
3920
  if (a === 1) return t.pointAt(n) ? [t.pointAt(n)] : [];
@@ -3900,7 +3925,7 @@ function ba(e) {
3900
3925
  }
3901
3926
  return o;
3902
3927
  }
3903
- function xa(e, t, n, r) {
3928
+ function Sa(e, t, n, r) {
3904
3929
  return {
3905
3930
  message: e,
3906
3931
  mode: t,
@@ -3908,8 +3933,8 @@ function xa(e, t, n, r) {
3908
3933
  seriesIds: r
3909
3934
  };
3910
3935
  }
3911
- function Sa(e) {
3912
- let n = C(0), r, i = 0, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u = pa(), d, f, p = !1, m = t(() => {
3936
+ function Ca(e) {
3937
+ 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 = ma(), d, f, p = !1, m = t(() => {
3913
3938
  let t = e.renderingOptions.value.sampling;
3914
3939
  return e.sourceTrackLayouts.value.flatMap((n) => {
3915
3940
  let r = n.xScale.domain();
@@ -3974,13 +3999,13 @@ function Sa(e) {
3974
3999
  revision: 0,
3975
4000
  dataset: t.source.toWorkerDataset()
3976
4001
  });
3977
- !u.isCurrent(n) || !ga(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
4002
+ !u.isCurrent(n) || !_a(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
3978
4003
  }));
3979
4004
  }, x = async (t, n = !1) => {
3980
4005
  let o = m.value, c = { ...e.linePointOverrides.value }, l = [], d = [];
3981
4006
  if (o.forEach((e) => {
3982
- let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" && fa(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
3983
- e.request.mode === "raw" || a ? (c[e.series.id] = e.source.pointsInRange(e.visibleRange.start, e.visibleRange.end), s.set(e.series.id, "raw"), d.push(ya(e, t))) : (c[e.series.id]?.length || (c[e.series.id] = ba(e)), l.push({
4007
+ let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" && pa(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
4008
+ 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(ba(e, t))) : (c[e.series.id]?.length || (c[e.series.id] = xa(e)), l.push({
3984
4009
  ...e,
3985
4010
  request: {
3986
4011
  ...e.request,
@@ -3992,7 +4017,7 @@ function Sa(e) {
3992
4017
  e.linePointOverrides.value = c, v(d);
3993
4018
  return;
3994
4019
  }
3995
- if (e.linePointOverrides.value = c, r ??= ha(), await b(r, l, t), !u.isCurrent(t)) return;
4020
+ if (e.linePointOverrides.value = c, r ??= ga(), await b(r, l, t), !u.isCurrent(t)) return;
3996
4021
  let f = l.map((e) => ({
3997
4022
  ...e.request,
3998
4023
  revision: a.get(e.request.datasetId) ?? 1
@@ -4007,22 +4032,22 @@ function Sa(e) {
4007
4032
  p = e;
4008
4033
  } catch (n) {
4009
4034
  if (!u.isCurrent(t)) return;
4010
- y(xa(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
4035
+ y(Sa(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
4011
4036
  return;
4012
4037
  }
4013
4038
  if (!u.isCurrent(t)) return;
4014
4039
  let h = new Map(l.map((e) => [e.series.id, e.source]));
4015
4040
  p.results.forEach((e) => {
4016
- let t = h.get(e.seriesId), n = t ? va(e, t) : void 0;
4017
- n && (e.status === "ok" || e.status === "wasm-unavailable") && (c[e.seriesId] = n), d.push(e.diagnostics), s.set(e.seriesId, e.diagnostics.selectedMode), e.status === "wasm-unavailable" && y(xa(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
4018
- }), p.workerError && y(xa(p.workerError, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), r.workerFailureReason && p.results.every((e) => e.status !== "wasm-unavailable") && y(xa(r.workerFailureReason, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), e.linePointOverrides.value = { ...c }, v(d);
4041
+ let t = h.get(e.seriesId), n = t ? ya(e, t) : void 0;
4042
+ 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(Sa(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
4043
+ }), p.workerError && y(Sa(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(Sa(r.workerFailureReason, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), e.linePointOverrides.value = { ...c }, v(d);
4019
4044
  };
4020
4045
  return O(h, () => {
4021
4046
  f && clearTimeout(f);
4022
4047
  let t = p;
4023
4048
  p = !0, u.schedule((e) => x(e, t)), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (f = setTimeout(() => {
4024
4049
  f = void 0, u.schedule((e) => x(e, !1));
4025
- }, _a));
4050
+ }, va));
4026
4051
  }, { immediate: !0 }), O(e.preparedSeries, () => {
4027
4052
  u.cancelPending(), n.value += 1, e.linePointOverrides.value = {}, a.clear(), o.clear(), s.clear(), c.clear(), r?.dispose(), r = void 0;
4028
4053
  }, { flush: "sync" }), _(() => {
@@ -4031,10 +4056,10 @@ function Sa(e) {
4031
4056
  }
4032
4057
  //#endregion
4033
4058
  //#region src/components/core/useWaveformChartController.ts
4034
- function Ca(e, t) {
4059
+ function wa(e, t) {
4035
4060
  e.value = t instanceof Element ? t : void 0;
4036
4061
  }
4037
- function wa(e, t) {
4062
+ function Ta(e, t) {
4038
4063
  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({
4039
4064
  points: [],
4040
4065
  trackIndex: null,
@@ -4044,11 +4069,11 @@ function wa(e, t) {
4044
4069
  x: 0,
4045
4070
  y: 0
4046
4071
  }
4047
- }), _ = b(!1), v = b(1), x = C(), w = le("waveform-clip"), E = b(new Set(e.defaultHiddenSeriesIds)), D = mt(), A = C({}), j = b([]), M = Mr();
4072
+ }), _ = 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();
4048
4073
  O([() => e.yDomain, () => e.yDomains], () => {
4049
4074
  m.value = {}, h.value = {};
4050
4075
  }, { deep: !0 });
4051
- let N = C(null), P = b(!1), F = b(!1), I = () => void 0, L = () => void 0, R = Lr(() => e.data, () => I(), () => L()), z = bi({
4076
+ let N = C(null), P = b(!1), F = b(!1), I = () => void 0, L = () => void 0, R = Fr(() => e.data, () => I(), () => L()), z = xi({
4052
4077
  props: e,
4053
4078
  observedWidth: o,
4054
4079
  observedHeight: s,
@@ -4056,7 +4081,7 @@ function wa(e, t) {
4056
4081
  measuredTitleHeight: l,
4057
4082
  internalHiddenSeriesIds: E,
4058
4083
  paginationBandHeight: u
4059
- }), { chartWidth: B, chartHeight: V, isCleanView: H, isPresentationMode: U, hiddenSeriesIdSet: W, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = z, q = gi({
4084
+ }), { chartWidth: B, chartHeight: V, isCleanView: H, isPresentationMode: U, hiddenSeriesIdSet: W, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = z, q = _i({
4060
4085
  props: e,
4061
4086
  preparedSeries: R,
4062
4087
  currentPage: v,
@@ -4071,7 +4096,7 @@ function wa(e, t) {
4071
4096
  annotationInteraction: d(D),
4072
4097
  linePointOverrides: A
4073
4098
  }), { 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;
4074
- Sa({
4099
+ Ca({
4075
4100
  props: e,
4076
4101
  emit: t,
4077
4102
  instanceId: w,
@@ -4082,7 +4107,7 @@ function wa(e, t) {
4082
4107
  }), k(() => {
4083
4108
  u.value = ue.value.showPagination && de.value > 1 && B.value <= 520 ? 40 : 0;
4084
4109
  });
4085
- let xe = Nr({
4110
+ let xe = jr({
4086
4111
  props: e,
4087
4112
  emit: t,
4088
4113
  svgElement: r,
@@ -4099,7 +4124,7 @@ function wa(e, t) {
4099
4124
  isPresentationMode: U,
4100
4125
  resolveInitialTrackDomain: ve,
4101
4126
  cancelPendingHover: () => Ce.cancelPendingHover()
4102
- }), X = mr({
4127
+ }), X = fr({
4103
4128
  props: e,
4104
4129
  emit: t,
4105
4130
  container: n,
@@ -4119,7 +4144,7 @@ function wa(e, t) {
4119
4144
  chartTopMargin: ie,
4120
4145
  activeInteractionMode: me,
4121
4146
  isPresentationMode: U
4122
- }), Se = jr({
4147
+ }), Se = kr({
4123
4148
  props: e,
4124
4149
  emit: t,
4125
4150
  selection: N,
@@ -4144,7 +4169,7 @@ function wa(e, t) {
4144
4169
  cancelPendingZoom: xe.cancelPendingZoom,
4145
4170
  clearHover: () => Ce.clearHover(),
4146
4171
  resolveTrackAtPointer: X.resolveTrackAtPointer
4147
- }), Ce = hr({
4172
+ }), Ce = pr({
4148
4173
  emit: t,
4149
4174
  hoverState: g,
4150
4175
  suppressHoverUntilMove: _,
@@ -4159,7 +4184,7 @@ function wa(e, t) {
4159
4184
  isPresentationMode: U,
4160
4185
  updateViewportDrag: Se.updateViewportDrag,
4161
4186
  resolveTrackAtPointer: X.resolveTrackAtPointer
4162
- }), we = Fr({
4187
+ }), we = Nr({
4163
4188
  props: e,
4164
4189
  emit: t,
4165
4190
  container: n,
@@ -4222,34 +4247,34 @@ function wa(e, t) {
4222
4247
  editorSeriesOptions: j,
4223
4248
  clipPathId: w,
4224
4249
  goToPage: we.goToPage,
4225
- setContainer: (e) => Ca(n, e),
4226
- setSvgElement: (e) => Ca(r, e),
4227
- setTitleMeasureElement: (e) => Ca(i, e),
4228
- setSharedOverlayElement: (e) => Ca(a, e)
4250
+ setContainer: (e) => wa(n, e),
4251
+ setSvgElement: (e) => wa(r, e),
4252
+ setTitleMeasureElement: (e) => wa(i, e),
4253
+ setSharedOverlayElement: (e) => wa(a, e)
4229
4254
  });
4230
4255
  }
4231
4256
  //#endregion
4232
4257
  //#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
4233
- var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4258
+ var Ea = ["id"], Da = { class: "waveform-annotation-editor__content" }, Oa = {
4234
4259
  class: "waveform-annotation-editor__coordinates",
4235
4260
  "aria-label": "标注坐标"
4236
- }, Oa = ["aria-invalid"], ka = {
4261
+ }, ka = ["aria-invalid"], Aa = {
4237
4262
  class: "waveform-annotation-editor__coordinate-value",
4238
4263
  "aria-hidden": "true"
4239
- }, Aa = ["id"], ja = {
4264
+ }, ja = ["id"], Ma = {
4240
4265
  key: 0,
4241
4266
  class: "waveform-annotation-editor__series",
4242
4267
  "aria-label": "标注所属波形"
4243
- }, Ma = { class: "waveform-annotation-editor__series-label" }, Na = ["value"], Pa = ["value"], Fa = { key: 1 }, Ia = { class: "waveform-annotation-editor__field" }, La = { class: "waveform-annotation-editor__label-row" }, Ra = ["maxlength"], za = { class: "waveform-annotation-editor__colors" }, Ba = {
4268
+ }, Na = { class: "waveform-annotation-editor__series-label" }, Pa = ["value"], Fa = ["value"], Ia = { key: 1 }, La = { class: "waveform-annotation-editor__field" }, Ra = { class: "waveform-annotation-editor__label-row" }, za = ["maxlength"], Ba = { class: "waveform-annotation-editor__colors" }, Va = {
4244
4269
  class: "waveform-annotation-editor__color-field",
4245
4270
  title: "调整标注边框色和透明度"
4246
- }, Va = {
4271
+ }, Ha = {
4247
4272
  class: "waveform-annotation-editor__color-field",
4248
4273
  title: "调整标注文字色和透明度"
4249
- }, Ha = {
4274
+ }, Ua = {
4250
4275
  class: "waveform-annotation-editor__color-field",
4251
4276
  title: "调整标注背景色和透明度"
4252
- }, Ua = /*#__PURE__*/ et(/* @__PURE__ */ l({
4277
+ }, Wa = /*#__PURE__*/ et(/* @__PURE__ */ l({
4253
4278
  __name: "WaveformAnnotationEditor",
4254
4279
  props: {
4255
4280
  annotation: {},
@@ -4320,9 +4345,9 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4320
4345
  onCancel: o[4] ||= (e) => p("cancel"),
4321
4346
  onOk: B
4322
4347
  }, {
4323
- title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9, Ta)]),
4324
- default: A(() => [a("div", Ea, [
4325
- a("div", Da, [
4348
+ title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9, Ea)]),
4349
+ default: A(() => [a("div", Da, [
4350
+ a("div", Oa, [
4326
4351
  a("label", {
4327
4352
  class: "waveform-annotation-editor__coordinate-input",
4328
4353
  "aria-invalid": !!N.value
@@ -4345,26 +4370,26 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4345
4370
  "aria-invalid",
4346
4371
  "aria-describedby"
4347
4372
  ]),
4348
- a("code", ka, w(y.value), 1)
4349
- ], 8, Oa),
4373
+ a("code", Aa, w(y.value), 1)
4374
+ ], 8, ka),
4350
4375
  N.value ? (v(), i("p", {
4351
4376
  key: 0,
4352
4377
  id: `${E(g)}-time-error`,
4353
4378
  class: "waveform-annotation-editor__coordinate-error",
4354
4379
  role: "alert"
4355
- }, w(N.value), 9, Aa)) : r("", !0),
4380
+ }, w(N.value), 9, ja)) : r("", !0),
4356
4381
  a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, w(E(Ot)(d.annotation.y)), 1)])
4357
4382
  ]),
4358
4383
  o[13] ||= a("p", {
4359
4384
  class: "waveform-annotation-editor__coordinate-hint",
4360
4385
  role: "note"
4361
4386
  }, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
4362
- I.value ? (v(), i("label", ja, [
4387
+ I.value ? (v(), i("label", Ma, [
4363
4388
  a("i", {
4364
4389
  style: m({ backgroundColor: I.value.color }),
4365
4390
  "aria-hidden": "true"
4366
4391
  }, null, 4),
4367
- a("span", Ma, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
4392
+ a("span", Na, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
4368
4393
  d.seriesOptions?.length ? (v(), i("select", {
4369
4394
  key: 0,
4370
4395
  value: d.annotation.seriesId,
@@ -4373,9 +4398,9 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4373
4398
  }, [(v(!0), i(e, null, x(d.seriesOptions, (e) => (v(), i("option", {
4374
4399
  key: e.seriesId,
4375
4400
  value: e.seriesId
4376
- }, w(e.name) + w(e.unit ? ` (${e.unit})` : ""), 9, Pa))), 128))], 40, Na)) : I.value.unit ? (v(), i("code", Fa, w(I.value.unit), 1)) : r("", !0)
4401
+ }, w(e.name) + w(e.unit ? ` (${e.unit})` : ""), 9, Fa))), 128))], 40, Pa)) : I.value.unit ? (v(), i("code", Ia, w(I.value.unit), 1)) : r("", !0)
4377
4402
  ])) : r("", !0),
4378
- a("label", Ia, [a("span", La, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, w(F.value) + "/" + w(E(40)), 1)]), j(a("textarea", {
4403
+ a("label", La, [a("span", Ra, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, w(F.value) + "/" + w(E(40)), 1)]), j(a("textarea", {
4379
4404
  ref_key: "textarea",
4380
4405
  ref: h,
4381
4406
  "onUpdate:modelValue": o[0] ||= (e) => _.value = e,
@@ -4384,10 +4409,10 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4384
4409
  "aria-label": "标注文本",
4385
4410
  placeholder: "输入这处波形的说明",
4386
4411
  onKeydown: V
4387
- }, null, 40, Ra), [[D, _.value]])]),
4388
- a("fieldset", za, [
4412
+ }, null, 40, za), [[D, _.value]])]),
4413
+ a("fieldset", Ba, [
4389
4414
  o[12] ||= a("legend", null, "颜色与透明度", -1),
4390
- a("label", Ba, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
4415
+ a("label", Va, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
4391
4416
  "pure-color": C.value,
4392
4417
  "onUpdate:pureColor": o[1] ||= (e) => C.value = e,
4393
4418
  "aria-label": "标注边框色",
@@ -4397,7 +4422,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4397
4422
  "disable-alpha": !1,
4398
4423
  "blur-close": !0
4399
4424
  }, null, 8, ["pure-color"])]),
4400
- a("label", Va, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
4425
+ a("label", Ha, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
4401
4426
  "pure-color": T.value,
4402
4427
  "onUpdate:pureColor": o[2] ||= (e) => T.value = e,
4403
4428
  "aria-label": "标注文字色",
@@ -4407,7 +4432,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4407
4432
  "disable-alpha": !1,
4408
4433
  "blur-close": !0
4409
4434
  }, null, 8, ["pure-color"])]),
4410
- a("label", Ha, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
4435
+ a("label", Ua, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
4411
4436
  "pure-color": k.value,
4412
4437
  "onUpdate:pureColor": o[3] ||= (e) => k.value = e,
4413
4438
  "aria-label": "标注背景色",
@@ -4422,13 +4447,13 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4422
4447
  _: 1
4423
4448
  }, 8, ["ok-button-props"]));
4424
4449
  }
4425
- }), [["__scopeId", "data-v-01ecd3a4"]]), Wa = { class: "waveform-tooltip__series-content" }, Ga = { class: "waveform-tooltip__series-label" }, Ka = {
4450
+ }), [["__scopeId", "data-v-01ecd3a4"]]), Ga = { class: "waveform-tooltip__series-content" }, Ka = { class: "waveform-tooltip__series-label" }, qa = {
4426
4451
  key: 0,
4427
4452
  class: "waveform-tooltip__value"
4428
- }, qa = {
4453
+ }, Ja = {
4429
4454
  key: 1,
4430
4455
  class: "waveform-tooltip__value waveform-tooltip__value--missing"
4431
- }, Ja = 12, Ya = 8, Xa = 238, Za = 560, Qa = 20, $a = 20, eo = /*#__PURE__*/ et(/* @__PURE__ */ l({
4456
+ }, Ya = 12, Xa = 8, Za = 238, Qa = 560, $a = 20, eo = 20, to = /*#__PURE__*/ et(/* @__PURE__ */ l({
4432
4457
  __name: "WaveformTooltip",
4433
4458
  props: {
4434
4459
  visible: { type: Boolean },
@@ -4442,7 +4467,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4442
4467
  setup(n) {
4443
4468
  let s = n;
4444
4469
  function c(e, t) {
4445
- let n = Math.max(1, t - Qa - 14), r = Math.max(1, Math.floor(n / 7.2));
4470
+ let n = Math.max(1, t - $a - 14), r = Math.max(1, Math.floor(n / 7.2));
4446
4471
  return Math.max(1, Math.ceil([...e].length / r));
4447
4472
  }
4448
4473
  function l(e) {
@@ -4450,18 +4475,18 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4450
4475
  return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} ${t}`;
4451
4476
  }
4452
4477
  function u(e) {
4453
- return 16 + $a * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
4478
+ return 16 + eo * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
4454
4479
  }
4455
4480
  let d = t(() => {
4456
4481
  if (!s.visible || !s.hoveredPoint) return { display: "none" };
4457
- let e = s.position.x + Ja, t = s.position.x - Ja - Xa, n = s.containerWidth - Ya - e, r = s.position.x - Ja - Ya, i = Math.max(1, Math.min(Za, s.containerWidth - Ya * 2)), a = e + Xa <= s.containerWidth - Ya ? {
4482
+ let e = s.position.x + Ya, t = s.position.x - Ya - Za, n = s.containerWidth - Xa - e, r = s.position.x - Ya - Xa, i = Math.max(1, Math.min(Qa, s.containerWidth - Xa * 2)), a = e + Za <= s.containerWidth - Xa ? {
4458
4483
  left: `${e}px`,
4459
- maxWidth: `${Math.min(Za, n)}px`
4460
- } : t >= Ya ? {
4461
- right: `${s.containerWidth - s.position.x + Ja}px`,
4462
- maxWidth: `${Math.min(Za, r)}px`
4484
+ maxWidth: `${Math.min(Qa, n)}px`
4485
+ } : t >= Xa ? {
4486
+ right: `${s.containerWidth - s.position.x + Ya}px`,
4487
+ maxWidth: `${Math.min(Qa, r)}px`
4463
4488
  } : {
4464
- left: `${Ya}px`,
4489
+ left: `${Xa}px`,
4465
4490
  maxWidth: `${i}px`
4466
4491
  }, o = Number.parseFloat(a.maxWidth);
4467
4492
  return {
@@ -4476,9 +4501,9 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4476
4501
  }, [(v(!0), i(e, null, x(n.seriesPoints, (t) => (v(), i("span", {
4477
4502
  key: `${t.trackIndex}-${t.name}`,
4478
4503
  class: "waveform-tooltip__series waveform-chart__tooltip-series"
4479
- }, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", Wa, [a("span", Ga, [o(w(t.shotNo?.trim() || "未配置炮号") + ": " + w(t.name), 1), t.unit ? (v(), i(e, { key: 0 }, [o("(" + w(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (v(), i("span", Ka, "(x:" + w(E(Nt)(t.point.x, n.timeUnit)) + " y:" + w(E(Dt)(t.point.y)) + ")", 1)) : (v(), i("span", qa, "无数据"))])]))), 128))], 4)) : r("", !0);
4504
+ }, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", Ga, [a("span", Ka, [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", Ja, "无数据"))])]))), 128))], 4)) : r("", !0);
4480
4505
  }
4481
- }), [["__scopeId", "data-v-1ae3316b"]]), to = /* @__PURE__ */ l({
4506
+ }), [["__scopeId", "data-v-1ae3316b"]]), no = /* @__PURE__ */ l({
4482
4507
  __name: "WaveformHoverHost",
4483
4508
  props: {
4484
4509
  state: {},
@@ -4489,7 +4514,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4489
4514
  },
4490
4515
  setup(e) {
4491
4516
  let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
4492
- return (t, r) => (v(), n(eo, {
4517
+ return (t, r) => (v(), n(to, {
4493
4518
  visible: e.visible && i.value !== null,
4494
4519
  position: e.state.position,
4495
4520
  "time-unit": e.timeUnit,
@@ -4507,16 +4532,16 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
4507
4532
  "container-height"
4508
4533
  ]));
4509
4534
  }
4510
- }), no = 13, ro = 2, io = 14, ao = 8, oo = 24, so = {
4535
+ }), ro = 13, io = 2, ao = 14, oo = 8, so = 24, co = {
4511
4536
  circle: te,
4512
4537
  square: re,
4513
4538
  triangle: ie,
4514
4539
  diamond: ne
4515
4540
  };
4516
- function co(e, t = 48) {
4517
- return e === "none" ? null : ee().type(so[e]).size(t)() ?? null;
4541
+ function lo(e, t = 48) {
4542
+ return e === "none" ? null : ee().type(co[e]).size(t)() ?? null;
4518
4543
  }
4519
- function lo(e, t, n = 48) {
4544
+ function uo(e, t, n = 48) {
4520
4545
  if (e === "none" || t.length === 0) return null;
4521
4546
  if (e === "circle") {
4522
4547
  let e = Math.sqrt(n / Math.PI);
@@ -4533,24 +4558,24 @@ function lo(e, t, n = 48) {
4533
4558
  let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
4534
4559
  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("");
4535
4560
  }
4536
- function uo(e) {
4561
+ function fo(e) {
4537
4562
  return e === "none" ? null : "M1 8H25";
4538
4563
  }
4539
- function fo(e) {
4564
+ function po(e) {
4540
4565
  if (e === "dashed") return "8 5";
4541
4566
  if (e === "dash-dot") return "8 5 1.5 5";
4542
4567
  }
4543
- function po(e) {
4544
- let t = (Number.isFinite(e) && e > 0 ? Math.min(e, oo) : ao) / 2, n = no - t, r = no + t;
4568
+ function mo(e) {
4569
+ let t = (Number.isFinite(e) && e > 0 ? Math.min(e, so) : oo) / 2, n = ro - t, r = ro + t;
4545
4570
  return [
4546
- `M${n} ${ro}H${r}`,
4547
- `M${no} ${ro}V${io}`,
4548
- `M${n} ${io}H${r}`
4571
+ `M${n} ${io}H${r}`,
4572
+ `M${ro} ${io}V${ao}`,
4573
+ `M${n} ${ao}H${r}`
4549
4574
  ].join("");
4550
4575
  }
4551
4576
  //#endregion
4552
4577
  //#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
4553
- var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4578
+ var ho = ["clip-path"], go = ["data-series-id", "data-series-name"], _o = [
4554
4579
  "data-series-id",
4555
4580
  "data-series-name",
4556
4581
  "data-y-axis-index",
@@ -4559,11 +4584,11 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4559
4584
  "d",
4560
4585
  "stroke",
4561
4586
  "stroke-dasharray"
4562
- ], _o = ["data-series-id"], vo = [
4587
+ ], vo = ["data-series-id"], yo = [
4563
4588
  "d",
4564
4589
  "stroke",
4565
4590
  "stroke-width"
4566
- ], yo = ["data-series-id", "data-point-type"], bo = ["d", "fill"], xo = /*#__PURE__*/ et(/* @__PURE__ */ l({
4591
+ ], bo = ["data-series-id", "data-point-type"], xo = ["d", "fill"], So = /*#__PURE__*/ et(/* @__PURE__ */ l({
4567
4592
  __name: "WaveformSeriesLayer",
4568
4593
  props: {
4569
4594
  track: {},
@@ -4571,7 +4596,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4571
4596
  },
4572
4597
  setup(n) {
4573
4598
  let a = n, o = t(() => a.track.seriesPaths.map((e) => {
4574
- let t = lo(e.series.pointType, e.pointRenderPoints.map((t) => ({
4599
+ let t = uo(e.series.pointType, e.pointRenderPoints.map((t) => ({
4575
4600
  x: a.track.xScale(t.x),
4576
4601
  y: e.yScale(t.y)
4577
4602
  }))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
@@ -4608,8 +4633,8 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4608
4633
  "data-line-style": e.series.lineStyle,
4609
4634
  d: e.path,
4610
4635
  stroke: e.series.color,
4611
- "stroke-dasharray": E(fo)(e.series.lineStyle)
4612
- }, null, 8, go)) : r("", !0),
4636
+ "stroke-dasharray": E(po)(e.series.lineStyle)
4637
+ }, null, 8, _o)) : r("", !0),
4613
4638
  e.series.errorBar.visible ? (v(), i("g", {
4614
4639
  key: 1,
4615
4640
  class: "waveform-track__error-bars waveform-chart__error-bars",
@@ -4620,7 +4645,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4620
4645
  d: e.errorBarPath,
4621
4646
  stroke: e.series.errorBar.color || e.series.color,
4622
4647
  "stroke-width": e.series.errorBar.width
4623
- }, null, 8, vo)) : r("", !0)], 8, _o)) : r("", !0),
4648
+ }, null, 8, yo)) : r("", !0)], 8, vo)) : r("", !0),
4624
4649
  e.series.pointType === "none" ? r("", !0) : (v(), i("g", {
4625
4650
  key: 2,
4626
4651
  class: "waveform-track__points waveform-chart__points",
@@ -4631,28 +4656,28 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4631
4656
  class: "waveform-track__point waveform-chart__point",
4632
4657
  d: e.pointPath,
4633
4658
  fill: e.series.color
4634
- }, null, 8, bo)) : r("", !0)], 8, yo))
4635
- ], 8, ho))), 128))], 8, mo)) : r("", !0);
4659
+ }, null, 8, xo)) : r("", !0)], 8, bo))
4660
+ ], 8, go))), 128))], 8, ho)) : r("", !0);
4636
4661
  }
4637
- }), [["__scopeId", "data-v-42a3fd47"]]), So = ["transform"], Co = ["transform"], wo = {
4662
+ }), [["__scopeId", "data-v-42a3fd47"]]), Co = ["transform"], wo = ["transform"], To = {
4638
4663
  class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
4639
4664
  x: "0",
4640
4665
  y: "7",
4641
4666
  dy: "0.71em",
4642
4667
  "text-anchor": "start"
4643
- }, To = ["x"], Eo = [
4668
+ }, Eo = ["x"], Do = [
4644
4669
  "data-y-axis-index",
4645
4670
  "data-y-axis-side",
4646
4671
  "transform"
4647
- ], Do = { key: 2 }, Oo = [
4672
+ ], Oo = { key: 2 }, ko = [
4648
4673
  "x",
4649
4674
  "y",
4650
4675
  "width"
4651
- ], ko = ["fill", "transform"], Ao = ["data-y-axis-title-index"], jo = [
4676
+ ], Ao = ["fill", "transform"], jo = ["data-y-axis-title-index"], Mo = [
4652
4677
  "x",
4653
4678
  "y",
4654
4679
  "width"
4655
- ], Mo = ["fill", "transform"], No = /* @__PURE__ */ l({
4680
+ ], No = ["fill", "transform"], Po = /* @__PURE__ */ l({
4656
4681
  __name: "WaveformTrackAxes",
4657
4682
  props: {
4658
4683
  track: {},
@@ -4712,7 +4737,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4712
4737
  ref: o,
4713
4738
  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 }]),
4714
4739
  transform: `translate(0, ${t.track.height})`
4715
- }, null, 10, So)) : r("", !0),
4740
+ }, null, 10, Co)) : r("", !0),
4716
4741
  t.track.showXAxis ? (v(), i("g", {
4717
4742
  key: 1,
4718
4743
  class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
@@ -4720,13 +4745,13 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4720
4745
  "font-family": "sans-serif",
4721
4746
  "font-size": "10",
4722
4747
  "aria-hidden": "true"
4723
- }, [a("text", wo, w(t.track.endpointLabels.start), 1), a("text", {
4748
+ }, [a("text", To, w(t.track.endpointLabels.start), 1), a("text", {
4724
4749
  class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
4725
4750
  x: t.track.width ?? t.innerWidth,
4726
4751
  y: "7",
4727
4752
  dy: "0.71em",
4728
4753
  "text-anchor": "end"
4729
- }, w(t.track.endpointLabels.end), 9, To)], 8, Co)) : r("", !0),
4754
+ }, w(t.track.endpointLabels.end), 9, Eo)], 8, wo)) : r("", !0),
4730
4755
  (v(!0), i(e, null, x(t.track.isEmpty ? [] : t.track.yAxes, (e) => (v(), i("g", {
4731
4756
  key: `y-axis-${t.track.index}-${e.index}`,
4732
4757
  ref_for: !0,
@@ -4735,21 +4760,21 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4735
4760
  "data-y-axis-index": e.index,
4736
4761
  "data-y-axis-side": e.side,
4737
4762
  transform: `translate(${e.x}, 0)`
4738
- }, null, 10, Eo))), 128)),
4739
- !t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && t.track.series && c(t.track.series) && d(t.track.height, t.track.index) ? (v(), i("g", Do, [a("rect", {
4763
+ }, null, 10, Do))), 128)),
4764
+ !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", Oo, [a("rect", {
4740
4765
  class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
4741
4766
  x: t.track.yAxisLabelX - E(12) / 2,
4742
4767
  y: t.track.height / 2 - 40,
4743
4768
  width: E(12),
4744
4769
  height: "80",
4745
4770
  rx: "2"
4746
- }, null, 8, Oo), a("text", {
4771
+ }, null, 8, ko), a("text", {
4747
4772
  class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
4748
4773
  fill: t.track.series?.color,
4749
4774
  transform: `translate(${t.track.yAxisLabelX}, ${t.track.height / 2}) rotate(-90)`,
4750
4775
  "text-anchor": "middle",
4751
4776
  "dominant-baseline": "central"
4752
- }, w(t.track.series ? c(t.track.series) : ""), 9, ko)])) : r("", !0),
4777
+ }, w(t.track.series ? c(t.track.series) : ""), 9, Ao)])) : r("", !0),
4753
4778
  (v(!0), i(e, null, x(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (v(), i("g", {
4754
4779
  key: `y-axis-title-${t.track.index}-${e.index}`,
4755
4780
  class: "waveform-track__multi-axis-title",
@@ -4761,40 +4786,40 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4761
4786
  width: E(12),
4762
4787
  height: "80",
4763
4788
  rx: "2"
4764
- }, null, 8, jo), a("text", {
4789
+ }, null, 8, Mo), a("text", {
4765
4790
  class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
4766
4791
  fill: e.seriesList[0].color,
4767
4792
  transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
4768
4793
  "text-anchor": "middle",
4769
4794
  "dominant-baseline": "central"
4770
- }, w(c(e.seriesList[0])), 9, Mo)], 8, Ao))), 128))
4795
+ }, w(c(e.seriesList[0])), 9, No)], 8, jo))), 128))
4771
4796
  ], 64));
4772
4797
  }
4773
- }), Po = [
4798
+ }), Fo = [
4774
4799
  "width",
4775
4800
  "height",
4776
4801
  "fill"
4777
- ], Fo = ["clip-path"], Io = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Lo = [
4802
+ ], Io = ["clip-path"], Lo = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Ro = [
4778
4803
  "stroke",
4779
4804
  "x1",
4780
4805
  "x2",
4781
4806
  "y2"
4782
- ], Ro = [
4807
+ ], zo = [
4783
4808
  "stroke",
4784
4809
  "x2",
4785
4810
  "y1",
4786
4811
  "y2"
4787
- ], zo = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Bo = [
4812
+ ], Bo = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Vo = [
4788
4813
  "stroke",
4789
4814
  "x1",
4790
4815
  "x2",
4791
4816
  "y2"
4792
- ], Vo = [
4817
+ ], Ho = [
4793
4818
  "stroke",
4794
4819
  "x2",
4795
4820
  "y1",
4796
4821
  "y2"
4797
- ], Ho = ["clip-path"], Uo = [
4822
+ ], Uo = ["clip-path"], Wo = [
4798
4823
  "data-y-axis-index",
4799
4824
  "x2",
4800
4825
  "y1",
@@ -4802,7 +4827,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4802
4827
  "stroke",
4803
4828
  "stroke-width",
4804
4829
  "stroke-dasharray"
4805
- ], Wo = ["x", "y"], Go = /* @__PURE__ */ l({
4830
+ ], Go = ["x", "y"], Ko = /* @__PURE__ */ l({
4806
4831
  __name: "WaveformTrackBackdrop",
4807
4832
  props: {
4808
4833
  track: {},
@@ -4827,12 +4852,12 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4827
4852
  height: t.track.height,
4828
4853
  fill: t.frameStyle.backgroundColor,
4829
4854
  "aria-hidden": "true"
4830
- }, null, 8, Po)) : r("", !0),
4855
+ }, null, 8, Fo)) : r("", !0),
4831
4856
  !t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (v(), i("g", {
4832
4857
  key: 1,
4833
4858
  "clip-path": `url(#${t.clipPathId}-${t.track.index})`,
4834
4859
  "aria-hidden": "true"
4835
- }, [a("g", Io, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
4860
+ }, [a("g", Lo, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
4836
4861
  key: `x-minor-${t.track.index}-${e}`,
4837
4862
  "data-grid-direction": "vertical",
4838
4863
  stroke: t.track.gridLines.verticalColor,
@@ -4840,7 +4865,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4840
4865
  x2: t.track.xScale(e),
4841
4866
  y1: "0",
4842
4867
  y2: t.track.height
4843
- }, null, 8, Lo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMinorTicks, (e) => (v(), i("line", {
4868
+ }, null, 8, Ro))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMinorTicks, (e) => (v(), i("line", {
4844
4869
  key: `y-minor-${t.track.index}-${e}`,
4845
4870
  "data-grid-direction": "horizontal",
4846
4871
  stroke: t.track.gridLines.horizontalColor,
@@ -4848,7 +4873,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4848
4873
  x2: t.track.width ?? t.innerWidth,
4849
4874
  y1: t.track.yScale(e),
4850
4875
  y2: t.track.yScale(e)
4851
- }, null, 8, Ro))), 128)) : r("", !0)]), a("g", zo, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMajorTicks, (e) => (v(), i("line", {
4876
+ }, null, 8, zo))), 128)) : r("", !0)]), a("g", Bo, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMajorTicks, (e) => (v(), i("line", {
4852
4877
  key: `x-major-${t.track.index}-${e}`,
4853
4878
  "data-grid-direction": "vertical",
4854
4879
  stroke: t.track.gridLines.verticalColor,
@@ -4856,7 +4881,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4856
4881
  x2: t.track.xScale(e),
4857
4882
  y1: "0",
4858
4883
  y2: t.track.height
4859
- }, null, 8, Bo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMajorTicks, (e) => (v(), i("line", {
4884
+ }, null, 8, Vo))), 128)) : r("", !0), t.track.gridLines.horizontal ? (v(!0), i(e, { key: 1 }, x(t.track.yMajorTicks, (e) => (v(), i("line", {
4860
4885
  key: `y-major-${t.track.index}-${e}`,
4861
4886
  "data-grid-direction": "horizontal",
4862
4887
  stroke: t.track.gridLines.horizontalColor,
@@ -4864,7 +4889,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4864
4889
  x2: t.track.width ?? t.innerWidth,
4865
4890
  y1: t.track.yScale(e),
4866
4891
  y2: t.track.yScale(e)
4867
- }, null, 8, Vo))), 128)) : r("", !0)])], 8, Fo)) : r("", !0),
4892
+ }, null, 8, Ho))), 128)) : r("", !0)])], 8, Io)) : r("", !0),
4868
4893
  !t.track.isEmpty && t.track.hasVisibleSeries && t.zeroLine.visible && !t.cleanView ? (v(), i("g", {
4869
4894
  key: 2,
4870
4895
  class: "waveform-track__zero-lines waveform-chart__zero-lines",
@@ -4881,7 +4906,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4881
4906
  stroke: t.zeroLine.color,
4882
4907
  "stroke-width": t.zeroLine.width,
4883
4908
  "stroke-dasharray": t.zeroLine.dash || void 0
4884
- }, null, 8, Uo))], 64))), 128))], 8, Ho)) : r("", !0),
4909
+ }, null, 8, Wo))], 64))), 128))], 8, Uo)) : r("", !0),
4885
4910
  !t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (v(), i("text", {
4886
4911
  key: 3,
4887
4912
  class: "waveform-track__watermark waveform-chart__watermark",
@@ -4891,10 +4916,10 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4891
4916
  "text-anchor": "middle",
4892
4917
  "dominant-baseline": "central",
4893
4918
  "aria-hidden": "true"
4894
- }, w(t.frameNumber), 13, Wo)) : r("", !0)
4919
+ }, w(t.frameNumber), 13, Go)) : r("", !0)
4895
4920
  ], 64));
4896
4921
  }
4897
- }), Ko = [
4922
+ }), qo = [
4898
4923
  "data-track-index",
4899
4924
  "data-track-id",
4900
4925
  "data-track-empty",
@@ -4904,19 +4929,19 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4904
4929
  "data-track-top",
4905
4930
  "data-track-height",
4906
4931
  "transform"
4907
- ], qo = [
4932
+ ], Jo = [
4908
4933
  "width",
4909
4934
  "height",
4910
4935
  "stroke",
4911
4936
  "stroke-width",
4912
4937
  "stroke-dasharray",
4913
4938
  "stroke-linecap"
4914
- ], Jo = [
4939
+ ], Yo = [
4915
4940
  "data-interactive",
4916
4941
  "data-independent-overlay-index",
4917
4942
  "width",
4918
4943
  "height"
4919
- ], Yo = ["x", "y"], Xo = /* @__PURE__ */ l({
4944
+ ], Xo = ["x", "y"], Zo = /* @__PURE__ */ l({
4920
4945
  __name: "WaveformTrack",
4921
4946
  props: {
4922
4947
  track: {},
@@ -4976,7 +5001,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4976
5001
  "data-track-height": e.track.height,
4977
5002
  transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
4978
5003
  }, [
4979
- s(Go, {
5004
+ s(Ko, {
4980
5005
  track: e.track,
4981
5006
  "clip-path-id": e.clipPathId,
4982
5007
  "inner-width": e.innerWidth,
@@ -4993,7 +5018,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
4993
5018
  "frame-style",
4994
5019
  "zero-line"
4995
5020
  ]),
4996
- s(No, {
5021
+ s(Po, {
4997
5022
  track: e.track,
4998
5023
  "inner-width": e.innerWidth,
4999
5024
  "clean-view": e.cleanView,
@@ -5019,8 +5044,8 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5019
5044
  "stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
5020
5045
  "stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
5021
5046
  "aria-hidden": "true"
5022
- }, null, 8, qo)),
5023
- s(xo, {
5047
+ }, null, 8, Jo)),
5048
+ s(So, {
5024
5049
  track: e.track,
5025
5050
  "clip-path-id": e.clipPathId
5026
5051
  }, null, 8, ["track", "clip-path-id"]),
@@ -5042,7 +5067,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5042
5067
  onPointerleave: n[4] ||= (e) => o("pointer-leave"),
5043
5068
  onClick: n[5] ||= (e) => o("click", e),
5044
5069
  onContextmenu: n[6] ||= (e) => o("contextmenu", e)
5045
- }, null, 42, Jo)) : r("", !0),
5070
+ }, null, 42, Yo)) : r("", !0),
5046
5071
  !e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (v(), i("text", {
5047
5072
  key: 2,
5048
5073
  class: "waveform-track__no-visible-series",
@@ -5050,33 +5075,33 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5050
5075
  y: e.track.height / 2,
5051
5076
  "text-anchor": "middle",
5052
5077
  "dominant-baseline": "central"
5053
- }, " 暂无可见曲线 ", 8, Yo)) : r("", !0)
5054
- ], 10, Ko));
5078
+ }, " 暂无可见曲线 ", 8, Xo)) : r("", !0)
5079
+ ], 10, qo));
5055
5080
  }
5056
- }), Zo = [
5081
+ }), Qo = [
5057
5082
  "width",
5058
5083
  "height",
5059
5084
  "data-position",
5060
5085
  "data-orientation"
5061
- ], Qo = [
5086
+ ], $o = [
5062
5087
  "disabled",
5063
5088
  "aria-pressed",
5064
5089
  "aria-label",
5065
5090
  "onClick"
5066
- ], $o = [
5091
+ ], es = [
5067
5092
  "data-line-type",
5068
5093
  "data-line-style",
5069
5094
  "data-point-type",
5070
5095
  "data-error-bar-visible"
5071
- ], es = [
5096
+ ], ts = [
5072
5097
  "d",
5073
5098
  "stroke",
5074
5099
  "stroke-dasharray"
5075
- ], ts = [
5100
+ ], ns = [
5076
5101
  "d",
5077
5102
  "stroke",
5078
5103
  "stroke-width"
5079
- ], ns = ["d", "fill"], rs = ["title"], is = /*#__PURE__*/ et(/* @__PURE__ */ l({
5104
+ ], rs = ["d", "fill"], is = ["title"], as = /*#__PURE__*/ et(/* @__PURE__ */ l({
5080
5105
  __name: "WaveformLegend",
5081
5106
  props: {
5082
5107
  series: {},
@@ -5134,45 +5159,45 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5134
5159
  "data-point-type": e.pointType,
5135
5160
  "data-error-bar-visible": e.errorBar.visible || void 0
5136
5161
  }, [
5137
- E(uo)(e.lineType) ? (v(), i("path", {
5162
+ E(fo)(e.lineType) ? (v(), i("path", {
5138
5163
  key: 0,
5139
5164
  class: "waveform-legend__line",
5140
- d: E(uo)(e.lineType) ?? void 0,
5165
+ d: E(fo)(e.lineType) ?? void 0,
5141
5166
  stroke: e.color,
5142
- "stroke-dasharray": E(fo)(e.lineStyle),
5167
+ "stroke-dasharray": E(po)(e.lineStyle),
5143
5168
  "stroke-width": "1.5",
5144
5169
  fill: "none"
5145
- }, null, 8, es)) : r("", !0),
5170
+ }, null, 8, ts)) : r("", !0),
5146
5171
  e.errorBar.visible ? (v(), i("path", {
5147
5172
  key: 1,
5148
5173
  class: "waveform-legend__error-bar",
5149
- d: E(po)(e.errorBar.capWidth),
5174
+ d: E(mo)(e.errorBar.capWidth),
5150
5175
  stroke: e.errorBar.color || e.color,
5151
5176
  "stroke-width": e.errorBar.width,
5152
5177
  "stroke-linecap": "butt",
5153
5178
  fill: "none"
5154
- }, null, 8, ts)) : r("", !0),
5179
+ }, null, 8, ns)) : r("", !0),
5155
5180
  e.pointType === "none" ? r("", !0) : (v(), i("path", {
5156
5181
  key: 2,
5157
5182
  class: "waveform-legend__point",
5158
- d: E(co)(e.pointType, 30) ?? void 0,
5183
+ d: E(lo)(e.pointType, 30) ?? void 0,
5159
5184
  fill: e.color,
5160
5185
  transform: "translate(13 8)"
5161
- }, null, 8, ns))
5162
- ], 8, $o)), a("span", {
5186
+ }, null, 8, rs))
5187
+ ], 8, es)), a("span", {
5163
5188
  class: "waveform-legend__label",
5164
5189
  title: e.name
5165
- }, w(e.name), 9, rs)], 10, Qo))), 128))], 6)], 2)], 8, Zo));
5190
+ }, w(e.name), 9, is)], 10, $o))), 128))], 6)], 2)], 8, Qo));
5166
5191
  }
5167
- }), [["__scopeId", "data-v-2ae12e71"]]), as = {
5192
+ }), [["__scopeId", "data-v-2ae12e71"]]), os = {
5168
5193
  class: "waveform-chart__hover-layer",
5169
5194
  "pointer-events": "none",
5170
5195
  "aria-hidden": "true"
5171
- }, os = ["clip-path", "transform"], ss = [
5196
+ }, ss = ["clip-path", "transform"], cs = [
5172
5197
  "x1",
5173
5198
  "x2",
5174
5199
  "y2"
5175
- ], cs = /*#__PURE__*/ et(/* @__PURE__ */ l({
5200
+ ], ls = /*#__PURE__*/ et(/* @__PURE__ */ l({
5176
5201
  __name: "WaveformHoverLayer",
5177
5202
  props: {
5178
5203
  state: {},
@@ -5188,7 +5213,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5188
5213
  x: e.xScale(n)
5189
5214
  }] : [];
5190
5215
  }));
5191
- return (t, r) => (v(), i("g", as, [(v(!0), i(e, null, x(o.value, (e) => (v(), i("g", {
5216
+ return (t, r) => (v(), i("g", os, [(v(!0), i(e, null, x(o.value, (e) => (v(), i("g", {
5192
5217
  key: e.track.index,
5193
5218
  class: "waveform-track__crosshair waveform-chart__crosshair",
5194
5219
  "clip-path": `url(#${n.clipPathId}-${e.track.index})`,
@@ -5198,9 +5223,9 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5198
5223
  x2: e.x,
5199
5224
  y1: "0",
5200
5225
  y2: e.track.height
5201
- }, null, 8, ss)], 8, os))), 128))]));
5226
+ }, null, 8, cs)], 8, ss))), 128))]));
5202
5227
  }
5203
- }), [["__scopeId", "data-v-54a5a37d"]]), ls = [
5228
+ }), [["__scopeId", "data-v-54a5a37d"]]), us = [
5204
5229
  "data-display-mode",
5205
5230
  "data-interaction-mode",
5206
5231
  "data-presentation-mode",
@@ -5209,35 +5234,35 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5209
5234
  "data-plot-margin-top",
5210
5235
  "data-plot-margin-bottom",
5211
5236
  "data-title-area-height"
5212
- ], us = [
5237
+ ], ds = [
5213
5238
  "role",
5214
5239
  "aria-level",
5215
5240
  "aria-hidden"
5216
- ], ds = ["data-title-scale", "data-title-wrapped"], fs = [
5241
+ ], fs = ["data-title-scale", "data-title-wrapped"], ps = [
5217
5242
  "width",
5218
5243
  "height",
5219
5244
  "aria-label"
5220
- ], ps = ["id"], ms = ["width", "height"], hs = ["transform"], gs = {
5245
+ ], ms = ["id"], hs = ["width", "height"], gs = ["transform"], _s = {
5221
5246
  key: 0,
5222
5247
  class: "waveform-chart__grid-slots",
5223
5248
  "aria-hidden": "true"
5224
- }, _s = ["transform"], vs = ["width", "height"], ys = ["width", "height"], bs = [
5249
+ }, vs = ["transform"], ys = ["width", "height"], bs = ["width", "height"], xs = [
5225
5250
  "x",
5226
5251
  "y",
5227
5252
  "width",
5228
5253
  "height"
5229
- ], xs = {
5254
+ ], Ss = {
5230
5255
  key: 4,
5231
5256
  class: "waveform-chart__legend-layer"
5232
- }, Ss = [
5257
+ }, Cs = [
5233
5258
  "data-legend-track-index",
5234
5259
  "data-legend-track-id",
5235
5260
  "transform"
5236
- ], Cs = ["x", "y"], ws = ["x", "y"], Ts = /* @__PURE__ */ l({
5261
+ ], ws = ["x", "y"], Ts = ["x", "y"], Es = /* @__PURE__ */ l({
5237
5262
  __name: "WaveformChartView",
5238
5263
  props: { controller: {} },
5239
5264
  setup(t) {
5240
- 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);
5265
+ 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, 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);
5241
5266
  function $e() {
5242
5267
  b.value = !1, K.value();
5243
5268
  }
@@ -5286,7 +5311,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5286
5311
  style: m(E(M)),
5287
5312
  "data-title-scale": E(N).scale,
5288
5313
  "data-title-wrapped": E(N).wrapped || void 0
5289
- }, w(E(A)), 13, ds)], 4)) : r("", !0)], 12, us)) : r("", !0),
5314
+ }, w(E(A)), 13, fs)], 4)) : r("", !0)], 12, ds)) : r("", !0),
5290
5315
  (v(), i("svg", {
5291
5316
  ref: E(Xe),
5292
5317
  class: "waveform-chart__svg",
@@ -5303,9 +5328,9 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5303
5328
  }, [a("rect", {
5304
5329
  width: e.width,
5305
5330
  height: e.height
5306
- }, null, 8, ms)], 8, ps))), 128))]),
5331
+ }, null, 8, hs)], 8, ms))), 128))]),
5307
5332
  a("g", { transform: `translate(${E(g)}, ${E(B)})` }, [
5308
- E(o) !== "compact" && !E(l) ? (v(), i("g", gs, [(v(!0), i(e, null, x(E(V), (e) => (v(), i("g", {
5333
+ E(o) !== "compact" && !E(l) ? (v(), i("g", _s, [(v(!0), i(e, null, x(E(V), (e) => (v(), i("g", {
5309
5334
  key: `grid-slot-${e.slotIndex}`,
5310
5335
  transform: `translate(${e.left}, ${e.top})`
5311
5336
  }, [e.series ? r("", !0) : (v(), i("rect", {
@@ -5313,7 +5338,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5313
5338
  class: "waveform-chart__grid-slot-placeholder",
5314
5339
  width: e.width,
5315
5340
  height: e.cellHeight
5316
- }, null, 8, vs))], 8, _s))), 128))])) : r("", !0),
5341
+ }, null, 8, ys))], 8, vs))), 128))])) : r("", !0),
5317
5342
  E(o) !== "independent" && E(R).length && E(H) ? (v(), i("rect", {
5318
5343
  key: 1,
5319
5344
  ref: E(Qe),
@@ -5330,8 +5355,8 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5330
5355
  onPointerleave: T[4] ||= (...e) => E(K) && E(K)(...e),
5331
5356
  onClick: T[5] ||= (...e) => E(q) && E(q)(...e),
5332
5357
  onContextmenu: T[6] ||= (...e) => E(ae) && E(ae)(...e)
5333
- }, null, 42, ys)) : r("", !0),
5334
- (v(!0), i(e, null, x(E(R), (e) => (v(), n(E(Xo), {
5358
+ }, null, 42, bs)) : r("", !0),
5359
+ (v(!0), i(e, null, x(E(R), (e) => (v(), n(E(Zo), {
5335
5360
  key: `${e.index}-${e.id}`,
5336
5361
  track: e,
5337
5362
  "clip-path-id": E(z),
@@ -5340,7 +5365,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5340
5365
  interactive: !E(u),
5341
5366
  "display-mode": E(o),
5342
5367
  "interaction-mode": E(c),
5343
- "frame-number": E(oe)(e.index),
5368
+ "frame-number": E(oe)(e.id),
5344
5369
  "frame-style": E(ce),
5345
5370
  axes: E(le),
5346
5371
  "clean-view": E(l),
@@ -5377,7 +5402,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5377
5402
  "onClick",
5378
5403
  "onContextmenu"
5379
5404
  ]))), 128)),
5380
- s(E(cs), {
5405
+ s(E(ls), {
5381
5406
  state: E(pe),
5382
5407
  tracks: E(R),
5383
5408
  "clip-path-id": E(z),
@@ -5396,7 +5421,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5396
5421
  width: E(he).width,
5397
5422
  height: E(he).height,
5398
5423
  "aria-hidden": "true"
5399
- }, null, 8, bs)) : r("", !0),
5424
+ }, null, 8, xs)) : r("", !0),
5400
5425
  E(l) ? r("", !0) : (v(), n(E(tt), {
5401
5426
  key: 3,
5402
5427
  annotations: E(ge),
@@ -5415,13 +5440,13 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5415
5440
  "onMove",
5416
5441
  "onDragEnd"
5417
5442
  ])),
5418
- E(l) ? r("", !0) : (v(), i("g", xs, [(v(!0), i(e, null, x(E(R), (e) => (v(), i("g", {
5443
+ E(l) ? r("", !0) : (v(), i("g", Ss, [(v(!0), i(e, null, x(E(R), (e) => (v(), i("g", {
5419
5444
  key: `legend-${e.index}-${e.id}`,
5420
5445
  class: "waveform-chart__legend-track",
5421
5446
  "data-legend-track-index": e.index,
5422
5447
  "data-legend-track-id": e.id,
5423
5448
  transform: `translate(${e.left}, ${e.top})`
5424
- }, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(is), {
5449
+ }, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(as), {
5425
5450
  key: 0,
5426
5451
  series: e.legendSeries,
5427
5452
  position: E(X)(e.id),
@@ -5442,23 +5467,23 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5442
5467
  "width",
5443
5468
  "height",
5444
5469
  "onToggle"
5445
- ])) : r("", !0)], 8, Ss))), 128))]))
5446
- ], 8, hs),
5470
+ ])) : r("", !0)], 8, Cs))), 128))]))
5471
+ ], 8, gs),
5447
5472
  E(De) && !E(l) ? (v(), i("text", {
5448
5473
  key: 0,
5449
5474
  class: "waveform-chart__label waveform-chart__x-label",
5450
5475
  x: E(g) + E(ee) / 2,
5451
5476
  y: E(Oe),
5452
5477
  "text-anchor": "middle"
5453
- }, w(E(De)), 9, Cs)) : r("", !0),
5478
+ }, w(E(De)), 9, ws)) : r("", !0),
5454
5479
  E(ke) && !E(I) ? (v(), i("text", {
5455
5480
  key: 1,
5456
5481
  class: "waveform-chart__empty",
5457
5482
  x: E(P) / 2,
5458
5483
  y: E(F) / 2,
5459
5484
  "text-anchor": "middle"
5460
- }, " 暂无有效波形数据 ", 8, ws)) : r("", !0)
5461
- ], 40, fs)),
5485
+ }, " 暂无有效波形数据 ", 8, Ts)) : r("", !0)
5486
+ ], 40, ps)),
5462
5487
  E(Ae).showPagination && E(je) > 1 && !E(l) ? (v(), n(E(se), {
5463
5488
  key: 1,
5464
5489
  class: "waveform-chart__pagination",
@@ -5475,7 +5500,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5475
5500
  "total",
5476
5501
  "onChange"
5477
5502
  ])) : r("", !0),
5478
- E(Le) && !E(l) && !E(u) ? (v(), n(Ua, {
5503
+ E(Le) && !E(l) && !E(u) ? (v(), n(Wa, {
5479
5504
  key: 2,
5480
5505
  annotation: E(Le).annotation,
5481
5506
  mode: E(Le).mode,
@@ -5517,7 +5542,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5517
5542
  "onDelete",
5518
5543
  "onClose"
5519
5544
  ])) : r("", !0),
5520
- s(E(to), {
5545
+ s(E(no), {
5521
5546
  state: E(pe),
5522
5547
  visible: E(me) && !E(u),
5523
5548
  "time-unit": E(de),
@@ -5530,9 +5555,9 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5530
5555
  "container-width",
5531
5556
  "container-height"
5532
5557
  ])
5533
- ], 46, ls));
5558
+ ], 46, us));
5534
5559
  }
5535
- }), Es = /* @__PURE__ */ l({
5560
+ }), Ds = /* @__PURE__ */ l({
5536
5561
  __name: "WaveformChart",
5537
5562
  props: {
5538
5563
  data: {},
@@ -5565,6 +5590,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5565
5590
  yDomains: {},
5566
5591
  timeUnit: { default: "ms" },
5567
5592
  frameNumber: { default: void 0 },
5593
+ frameNumbers: {},
5568
5594
  frameStyle: {},
5569
5595
  axes: {},
5570
5596
  annotations: { default: () => [] },
@@ -5614,12 +5640,12 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
5614
5640
  "sampling-error"
5615
5641
  ],
5616
5642
  setup(e, { expose: t, emit: r }) {
5617
- let i = wa(e, r);
5643
+ let i = Ta(e, r);
5618
5644
  return t({
5619
5645
  resetViewport: i.resetViewport,
5620
5646
  setViewportDomain: i.setViewportDomain
5621
- }), (e, t) => (v(), n(Ts, { controller: E(i) }, null, 8, ["controller"]));
5647
+ }), (e, t) => (v(), n(Es, { controller: E(i) }, null, 8, ["controller"]));
5622
5648
  }
5623
5649
  });
5624
5650
  //#endregion
5625
- export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS, Es as WaveformChart, gt as buildMinorTicks, mi as calculateWasmRange, It as clamp, kt as displayTime, hi as findWasmVisibleRange, Mt as formatAxisTime, jt as formatEndpointTime, Nt as formatTooltipTime, fi as initializeWasmSampling, sn as normalizeWaveformData, un as normalizeWaveformSeries, ht as paddedDomain, pt as parseWaveformAnnotations, Ft as resolveTrackGeometry, Tn as resolveWaveformRenderingOptions, pi as sampleWaveformWasm, Nn as selectRenderablePoints, ft as serializeWaveformAnnotations };
5651
+ export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS, Ds 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 };