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