waveform-analysis 0.1.54 → 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/README.md +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +537 -507
- package/dist/style.css +1 -1
- 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/types.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/types.ts +2 -0
- package/src/components/core/useWaveformChartController.ts +1 -0
- 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/interaction/useWaveformHover.ts +43 -6
- package/src/components/rendering/WaveformHoverLayer.vue +3 -2
- package/src/components/waveformChartCases/incompleteDataHover.test.ts +143 -55
- 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,14 +1919,14 @@ 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;
|
|
1903
|
-
}), v = (e, r, i, a) => {
|
|
1904
|
-
f.value || (_(e) || (n.points = e), n.trackIndex = r, n.queryX = i, n.
|
|
1926
|
+
}), v = (e, r, i, a, o) => {
|
|
1927
|
+
f.value || (_(e) || (n.points = e), n.trackIndex = r, n.queryX = i, n.crosshairXByTrack = a, n.position = o, t("point-hover", n.points.find((e) => e.point)?.point ?? null));
|
|
1905
1928
|
}, y = () => {
|
|
1906
|
-
h(), n.points = [], n.trackIndex = null, n.queryX = null, t("point-hover", null);
|
|
1929
|
+
h(), n.points = [], n.trackIndex = null, n.queryX = null, n.crosshairXByTrack = {}, t("point-hover", null);
|
|
1907
1930
|
}, b = () => {
|
|
1908
1931
|
f.value || y();
|
|
1909
1932
|
}, x = (e, t, n) => ({
|
|
@@ -1920,7 +1943,15 @@ function hr(e) {
|
|
|
1920
1943
|
r.value = !e, y();
|
|
1921
1944
|
}, w = () => r.value ? (r.value = !1, y(), !0) : !1, T = (e, t) => {
|
|
1922
1945
|
let n = e.source ?? X(e.points), r = n.pointAt(0), i = n.pointAt(n.length - 1);
|
|
1923
|
-
if (!(!r || !i
|
|
1946
|
+
if (!(!r || !i)) return t <= r.x ? r : t >= i.x ? i : n.nearestPoint(t);
|
|
1947
|
+
}, E = (e, t) => {
|
|
1948
|
+
let n, r = -Infinity;
|
|
1949
|
+
if (e.seriesList.forEach((e) => {
|
|
1950
|
+
let t = e.source ?? X(e.points), i = t.pointAt(0), a = t.pointAt(t.length - 1);
|
|
1951
|
+
if (!i || !a) return;
|
|
1952
|
+
let o = a.x - i.x;
|
|
1953
|
+
o > r && (r = o, n = [i.x, a.x]);
|
|
1954
|
+
}), n) return Math.max(n[0], Math.min(n[1], t));
|
|
1924
1955
|
};
|
|
1925
1956
|
return {
|
|
1926
1957
|
cancelPendingHover: h,
|
|
@@ -1941,8 +1972,8 @@ function hr(e) {
|
|
|
1941
1972
|
!d || !d.hasVisibleSeries || g(() => {
|
|
1942
1973
|
let e = o.value[t];
|
|
1943
1974
|
if (!e || !e.hasVisibleSeries || e !== d) return;
|
|
1944
|
-
let n = d.xScale.invert(Math.max(0, Math.min(s.value, r))), a = d.seriesList.map((e) => x(e, t, T(e, n) ?? null));
|
|
1945
|
-
v(a, t, n, {
|
|
1975
|
+
let n = d.xScale.invert(Math.max(0, Math.min(s.value, r))), a = d.seriesList.map((e) => x(e, t, T(e, n) ?? null)), f = E(d, n);
|
|
1976
|
+
v(a, t, n, f === void 0 ? {} : { [t]: f }, {
|
|
1946
1977
|
x: c.value + d.left + r,
|
|
1947
1978
|
y: l.value + u.value + d.top + i
|
|
1948
1979
|
});
|
|
@@ -1959,8 +1990,11 @@ function hr(e) {
|
|
|
1959
1990
|
g(() => {
|
|
1960
1991
|
let e = m(t, n), r = (e?.hasVisibleSeries ? e : void 0) ?? o.value.find((e) => e.hasVisibleSeries);
|
|
1961
1992
|
if (!r) return;
|
|
1962
|
-
let i = Math.max(0, Math.min(r.width, t - r.left)), a = r.xScale.invert(i), s = o.value.flatMap((e) => e.seriesList.map((t) => x(t, e.index, T(t, a) ?? null)))
|
|
1963
|
-
|
|
1993
|
+
let i = Math.max(0, Math.min(r.width, t - r.left)), a = r.xScale.invert(i), s = o.value.flatMap((e) => e.seriesList.map((t) => x(t, e.index, T(t, a) ?? null))), d = Object.fromEntries(o.value.flatMap((e) => {
|
|
1994
|
+
let t = E(e, a);
|
|
1995
|
+
return t === void 0 ? [] : [[e.index, t]];
|
|
1996
|
+
}));
|
|
1997
|
+
v(s, null, a, d, {
|
|
1964
1998
|
x: c.value + t,
|
|
1965
1999
|
y: l.value + u.value + n
|
|
1966
2000
|
});
|
|
@@ -1970,14 +2004,14 @@ function hr(e) {
|
|
|
1970
2004
|
}
|
|
1971
2005
|
//#endregion
|
|
1972
2006
|
//#region src/components/interaction/pointerCapture.ts
|
|
1973
|
-
function
|
|
2007
|
+
function mr(e, t) {
|
|
1974
2008
|
try {
|
|
1975
2009
|
e?.releasePointerCapture?.(t);
|
|
1976
2010
|
} catch {}
|
|
1977
2011
|
}
|
|
1978
2012
|
//#endregion
|
|
1979
2013
|
//#region src/components/interaction/viewportInteractionState.ts
|
|
1980
|
-
function
|
|
2014
|
+
function hr(e) {
|
|
1981
2015
|
return {
|
|
1982
2016
|
...e,
|
|
1983
2017
|
currentX: e.startX,
|
|
@@ -1986,37 +2020,37 @@ function _r(e) {
|
|
|
1986
2020
|
yDomains: Object.fromEntries(Object.entries(e.yDomains).map(([e, t]) => [e, [...t]]))
|
|
1987
2021
|
};
|
|
1988
2022
|
}
|
|
1989
|
-
function
|
|
2023
|
+
function gr(e, t) {
|
|
1990
2024
|
return {
|
|
1991
2025
|
...e,
|
|
1992
2026
|
...t
|
|
1993
2027
|
};
|
|
1994
2028
|
}
|
|
1995
|
-
function
|
|
2029
|
+
function _r(e) {
|
|
1996
2030
|
return {
|
|
1997
2031
|
state: e,
|
|
1998
2032
|
accepted: !1,
|
|
1999
2033
|
completed: null
|
|
2000
2034
|
};
|
|
2001
2035
|
}
|
|
2002
|
-
function
|
|
2036
|
+
function vr(e, t) {
|
|
2003
2037
|
switch (t.type) {
|
|
2004
|
-
case "begin": return e ?
|
|
2005
|
-
state:
|
|
2038
|
+
case "begin": return e ? _r(e) : {
|
|
2039
|
+
state: hr(t.gesture),
|
|
2006
2040
|
accepted: !0,
|
|
2007
2041
|
completed: null
|
|
2008
2042
|
};
|
|
2009
|
-
case "move": return !e || e.pointerId !== t.pointerId ?
|
|
2010
|
-
state:
|
|
2043
|
+
case "move": return !e || e.pointerId !== t.pointerId ? _r(e) : {
|
|
2044
|
+
state: gr(e, t.position),
|
|
2011
2045
|
accepted: !0,
|
|
2012
2046
|
completed: null
|
|
2013
2047
|
};
|
|
2014
|
-
case "finish": return !e || e.pointerId !== t.pointerId ?
|
|
2048
|
+
case "finish": return !e || e.pointerId !== t.pointerId ? _r(e) : {
|
|
2015
2049
|
state: null,
|
|
2016
2050
|
accepted: !0,
|
|
2017
|
-
completed:
|
|
2051
|
+
completed: gr(e, t.position)
|
|
2018
2052
|
};
|
|
2019
|
-
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) : {
|
|
2020
2054
|
state: null,
|
|
2021
2055
|
accepted: !0,
|
|
2022
2056
|
completed: null
|
|
@@ -2030,15 +2064,15 @@ function br(e, t) {
|
|
|
2030
2064
|
}
|
|
2031
2065
|
//#endregion
|
|
2032
2066
|
//#region src/components/interaction/zoomConstraints.ts
|
|
2033
|
-
var
|
|
2034
|
-
function
|
|
2067
|
+
var yr = /* @__PURE__ */ new WeakMap();
|
|
2068
|
+
function br(e) {
|
|
2035
2069
|
return e[0] <= e[1] ? [...e] : [e[1], e[0]];
|
|
2036
2070
|
}
|
|
2037
|
-
function
|
|
2071
|
+
function xr(e) {
|
|
2038
2072
|
return Number.isFinite(e) && (e ?? 0) > 0 ? Math.ceil(e) : 0;
|
|
2039
2073
|
}
|
|
2040
|
-
function
|
|
2041
|
-
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);
|
|
2042
2076
|
if (r) return r;
|
|
2043
2077
|
let i = /* @__PURE__ */ new Set();
|
|
2044
2078
|
for (let n of e) {
|
|
@@ -2048,14 +2082,14 @@ function wr(e, t) {
|
|
|
2048
2082
|
r.x >= t[0] && r.x <= t[1] && i.add(r.x);
|
|
2049
2083
|
}
|
|
2050
2084
|
}
|
|
2051
|
-
let a = Array.from(i).sort((e, t) => e - t), o =
|
|
2052
|
-
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;
|
|
2053
2087
|
}
|
|
2054
|
-
function
|
|
2088
|
+
function Cr(e, t, n) {
|
|
2055
2089
|
if (n <= 1) return 0;
|
|
2056
2090
|
let r = 0;
|
|
2057
2091
|
for (let i of e) {
|
|
2058
|
-
let e =
|
|
2092
|
+
let e = Sr(i, t);
|
|
2059
2093
|
if (e.length < n) return t[1] - t[0];
|
|
2060
2094
|
let a = Infinity;
|
|
2061
2095
|
for (let t = 0; t + n <= e.length; t += 1) a = Math.min(a, e[t + n - 1] - e[t]);
|
|
@@ -2064,17 +2098,17 @@ function Tr(e, t, n) {
|
|
|
2064
2098
|
}
|
|
2065
2099
|
return r;
|
|
2066
2100
|
}
|
|
2067
|
-
function
|
|
2068
|
-
let r =
|
|
2101
|
+
function wr(e, t, n) {
|
|
2102
|
+
let r = br(e), i = r[1] - r[0];
|
|
2069
2103
|
if (!Number.isFinite(i) || i <= 0) return 0;
|
|
2070
|
-
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;
|
|
2071
2105
|
return Math.max(a, s, l);
|
|
2072
2106
|
}
|
|
2073
|
-
function
|
|
2107
|
+
function Tr(e, t, n, r) {
|
|
2074
2108
|
if (r <= 0) return e;
|
|
2075
2109
|
let i = 2 ** -52 * Math.max(1, Math.abs(t[0]), Math.abs(t[1])) * 16, a = e;
|
|
2076
2110
|
for (let e of n) {
|
|
2077
|
-
let n =
|
|
2111
|
+
let n = Sr(e, t);
|
|
2078
2112
|
if (n.length < r) return [...t];
|
|
2079
2113
|
if (n.filter((e) => e >= a[0] && e <= a[1]).length >= r) continue;
|
|
2080
2114
|
let o, s = Infinity, c = Infinity, l = (a[0] + a[1]) / 2;
|
|
@@ -2086,13 +2120,13 @@ function Dr(e, t, n, r) {
|
|
|
2086
2120
|
}
|
|
2087
2121
|
return a;
|
|
2088
2122
|
}
|
|
2089
|
-
function
|
|
2090
|
-
let i =
|
|
2123
|
+
function Er(e, t, n, r) {
|
|
2124
|
+
let i = br(t), a = i[1] - i[0];
|
|
2091
2125
|
if (!Number.isFinite(a) || a <= 0 || Math.abs(e[1] - e[0]) >= a * .999999999999) return i;
|
|
2092
|
-
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));
|
|
2093
2127
|
return [u, u + c];
|
|
2094
2128
|
}
|
|
2095
|
-
function
|
|
2129
|
+
function Dr(e, t, n) {
|
|
2096
2130
|
let r = t[1] - t[0], i = e[1] - e[0];
|
|
2097
2131
|
if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return K;
|
|
2098
2132
|
let a = r / i, o = U(t, [0, n]);
|
|
@@ -2100,7 +2134,7 @@ function kr(e, t, n) {
|
|
|
2100
2134
|
}
|
|
2101
2135
|
//#endregion
|
|
2102
2136
|
//#region src/components/interaction/viewportDomain.ts
|
|
2103
|
-
function
|
|
2137
|
+
function Or(e) {
|
|
2104
2138
|
return (t, n) => {
|
|
2105
2139
|
if (!(!Number.isFinite(t[0]) || !Number.isFinite(t[1]) || t[0] === t[1])) {
|
|
2106
2140
|
if (e.cancelPendingZoom(), e.cancelViewportDrag(), e.props.displayMode === "independent") {
|
|
@@ -2108,12 +2142,12 @@ function Ar(e) {
|
|
|
2108
2142
|
r.forEach((n) => {
|
|
2109
2143
|
let r = e.trackLayouts.value.find((e) => e.index === n);
|
|
2110
2144
|
if (!r) return;
|
|
2111
|
-
let a = e.resolveInitialTrackDomain(r), o =
|
|
2112
|
-
i[n] =
|
|
2145
|
+
let a = e.resolveInitialTrackDomain(r), o = Er(t, a, [r.seriesList], e.props);
|
|
2146
|
+
i[n] = Dr(o, a, r.width);
|
|
2113
2147
|
}), e.independentTransforms.value = i;
|
|
2114
2148
|
} else {
|
|
2115
|
-
let n = e.initialXDomain.value, r =
|
|
2116
|
-
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);
|
|
2117
2151
|
}
|
|
2118
2152
|
e.clearHover(), e.editorSeriesOptions.value = [], f(e.configureZoom);
|
|
2119
2153
|
}
|
|
@@ -2121,13 +2155,13 @@ function Ar(e) {
|
|
|
2121
2155
|
}
|
|
2122
2156
|
//#endregion
|
|
2123
2157
|
//#region src/components/interaction/useWaveformViewport.ts
|
|
2124
|
-
function
|
|
2158
|
+
function kr(e) {
|
|
2125
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) => {
|
|
2126
2160
|
let n = O.value, r = t?.currentTarget;
|
|
2127
|
-
|
|
2161
|
+
mr(n, e), r && r !== n && mr(r, e);
|
|
2128
2162
|
}, A = (e, t) => {
|
|
2129
2163
|
let n = i.value;
|
|
2130
|
-
!n || n.pointerId !== e || (k(e, t), i.value =
|
|
2164
|
+
!n || n.pointerId !== e || (k(e, t), i.value = vr(i.value, {
|
|
2131
2165
|
type: "cancel",
|
|
2132
2166
|
pointerId: e
|
|
2133
2167
|
}).state, O.value = void 0);
|
|
@@ -2150,7 +2184,7 @@ function jr(e) {
|
|
|
2150
2184
|
if (!n.zoomable && !s || !_.value || e.button !== 0) return;
|
|
2151
2185
|
let c = e.currentTarget, d = o.value.find((e) => e.index === t);
|
|
2152
2186
|
if (!d) return;
|
|
2153
|
-
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, {
|
|
2154
2188
|
type: "begin",
|
|
2155
2189
|
gesture: {
|
|
2156
2190
|
trackIndex: t,
|
|
@@ -2172,8 +2206,8 @@ function jr(e) {
|
|
|
2172
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], _);
|
|
2173
2207
|
if (e.independent) {
|
|
2174
2208
|
let e = [...m.value];
|
|
2175
|
-
e[t.index] =
|
|
2176
|
-
} else p.value =
|
|
2209
|
+
e[t.index] = Dr(v, _, i), m.value = e;
|
|
2210
|
+
} else p.value = Dr(v, _, l.value);
|
|
2177
2211
|
let y = e.independent ? [t] : o.value.filter((e) => e.hasVisibleSeries), x = { ...g.value }, S = { ...h.value };
|
|
2178
2212
|
y.forEach((t) => {
|
|
2179
2213
|
let r = s.value.find((e) => e.id === t.id);
|
|
@@ -2187,7 +2221,7 @@ function jr(e) {
|
|
|
2187
2221
|
if (!t || !n || e.pointerId !== t.pointerId) return;
|
|
2188
2222
|
let r = o.value.find((e) => e.index === t.trackIndex);
|
|
2189
2223
|
if (!r) return;
|
|
2190
|
-
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, {
|
|
2191
2225
|
type: "move",
|
|
2192
2226
|
pointerId: e.pointerId,
|
|
2193
2227
|
position: {
|
|
@@ -2206,11 +2240,11 @@ function jr(e) {
|
|
|
2206
2240
|
if (!t || (e.independent ? !x(t) : !S())) return;
|
|
2207
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));
|
|
2208
2242
|
if (s - a < 6) return;
|
|
2209
|
-
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);
|
|
2210
2244
|
if (e.independent) {
|
|
2211
2245
|
let e = [...m.value];
|
|
2212
|
-
e[t.index] =
|
|
2213
|
-
} else p.value =
|
|
2246
|
+
e[t.index] = Dr(h, u, t.width), m.value = e;
|
|
2247
|
+
} else p.value = Dr(h, u, l.value);
|
|
2214
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()]));
|
|
2215
2249
|
if (r("zoom-change", h), e.independent) {
|
|
2216
2250
|
let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
|
|
@@ -2251,7 +2285,7 @@ function jr(e) {
|
|
|
2251
2285
|
A(t.pointerId, e);
|
|
2252
2286
|
return;
|
|
2253
2287
|
}
|
|
2254
|
-
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, {
|
|
2255
2289
|
type: "finish",
|
|
2256
2290
|
pointerId: e.pointerId,
|
|
2257
2291
|
position: {
|
|
@@ -2283,7 +2317,7 @@ function jr(e) {
|
|
|
2283
2317
|
finishViewportDrag: B,
|
|
2284
2318
|
cancelViewportDrag: R,
|
|
2285
2319
|
resetViewport: V,
|
|
2286
|
-
setViewportDomain:
|
|
2320
|
+
setViewportDomain: Or({
|
|
2287
2321
|
props: n,
|
|
2288
2322
|
trackLayouts: o,
|
|
2289
2323
|
initialXDomain: c,
|
|
@@ -2315,7 +2349,7 @@ function jr(e) {
|
|
|
2315
2349
|
}
|
|
2316
2350
|
//#endregion
|
|
2317
2351
|
//#region src/components/utils/useAnimationFrameThrottle.ts
|
|
2318
|
-
function
|
|
2352
|
+
function Ar() {
|
|
2319
2353
|
let e = null, t = null;
|
|
2320
2354
|
function n(n) {
|
|
2321
2355
|
t = n, e === null && (e = requestAnimationFrame(() => {
|
|
@@ -2344,8 +2378,8 @@ function Mr() {
|
|
|
2344
2378
|
}
|
|
2345
2379
|
//#endregion
|
|
2346
2380
|
//#region src/components/interaction/useWaveformZoom.ts
|
|
2347
|
-
function
|
|
2348
|
-
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) => {
|
|
2349
2383
|
y || m.value || (g(), b = e.transform, x = "wheel", O(), P());
|
|
2350
2384
|
}, A = (e, t) => {
|
|
2351
2385
|
y || m.value || (g(), C.set(t, e.transform), w.set(t, "wheel"), O(), P());
|
|
@@ -2433,9 +2467,9 @@ function Nr(e) {
|
|
|
2433
2467
|
}, L = (e, n) => {
|
|
2434
2468
|
let r = Math.abs(e[1] - e[0]);
|
|
2435
2469
|
if (!Number.isFinite(r) || r <= 0) return Rt.MIN_SCALE;
|
|
2436
|
-
let i =
|
|
2470
|
+
let i = wr(e, n, t);
|
|
2437
2471
|
return Math.max(Rt.MIN_SCALE, i > 0 ? r / i : Infinity);
|
|
2438
|
-
}, 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) => {
|
|
2439
2473
|
let n = Number(t.minVisiblePoints);
|
|
2440
2474
|
return kn(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
|
|
2441
2475
|
}, B = () => {
|
|
@@ -2484,13 +2518,13 @@ function Nr(e) {
|
|
|
2484
2518
|
}
|
|
2485
2519
|
//#endregion
|
|
2486
2520
|
//#region src/components/core/useWaveformChartLifecycle.ts
|
|
2487
|
-
function
|
|
2521
|
+
function Mr(e) {
|
|
2488
2522
|
return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
|
|
2489
2523
|
}
|
|
2490
|
-
function
|
|
2524
|
+
function Nr(e) {
|
|
2491
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;
|
|
2492
2526
|
function ne(e) {
|
|
2493
|
-
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());
|
|
2494
2528
|
}
|
|
2495
2529
|
function re(e) {
|
|
2496
2530
|
e.code === "Space" && (m.value = !1);
|
|
@@ -2523,12 +2557,12 @@ function Fr(e) {
|
|
|
2523
2557
|
w.value.forEach((n) => {
|
|
2524
2558
|
let r = q?.[n.index];
|
|
2525
2559
|
if (!r) return;
|
|
2526
|
-
let i = I(n), a =
|
|
2527
|
-
e[n.index] =
|
|
2560
|
+
let i = I(n), a = Er(r, i, [n.seriesList], t);
|
|
2561
|
+
e[n.index] = Dr(a, i, n.width);
|
|
2528
2562
|
}), P.value = e, q = void 0;
|
|
2529
2563
|
} else if (t.displayMode !== "independent" && G) {
|
|
2530
|
-
let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r =
|
|
2531
|
-
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;
|
|
2532
2566
|
}
|
|
2533
2567
|
H();
|
|
2534
2568
|
});
|
|
@@ -2614,7 +2648,7 @@ function Fr(e) {
|
|
|
2614
2648
|
}
|
|
2615
2649
|
//#endregion
|
|
2616
2650
|
//#region src/components/core/useWaveformData.ts
|
|
2617
|
-
function
|
|
2651
|
+
function Pr(e) {
|
|
2618
2652
|
return ln(e).map(({ source: e, ...t }) => {
|
|
2619
2653
|
let n = e.metrics(t.errorBar.visible);
|
|
2620
2654
|
return {
|
|
@@ -2627,45 +2661,45 @@ function Ir(e) {
|
|
|
2627
2661
|
};
|
|
2628
2662
|
});
|
|
2629
2663
|
}
|
|
2630
|
-
function
|
|
2631
|
-
let r = C(
|
|
2664
|
+
function Fr(e, t, n) {
|
|
2665
|
+
let r = C(Pr(e()));
|
|
2632
2666
|
return O(e, (e) => {
|
|
2633
|
-
t(), r.value =
|
|
2667
|
+
t(), r.value = Pr(e), n();
|
|
2634
2668
|
}), r;
|
|
2635
2669
|
}
|
|
2636
2670
|
//#endregion
|
|
2637
2671
|
//#region wasm/pkg/waveform_sampling_wasm.js
|
|
2638
|
-
function
|
|
2639
|
-
let n =
|
|
2640
|
-
if (o[3]) throw
|
|
2641
|
-
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();
|
|
2642
2676
|
return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
|
|
2643
2677
|
}
|
|
2644
|
-
function
|
|
2645
|
-
let i =
|
|
2646
|
-
if (c[3]) throw
|
|
2647
|
-
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();
|
|
2648
2682
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2649
2683
|
}
|
|
2650
|
-
function
|
|
2651
|
-
let i =
|
|
2652
|
-
if (c[3]) throw
|
|
2653
|
-
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();
|
|
2654
2688
|
return $.__wbindgen_free(c[0], c[1] * 8, 8), l;
|
|
2655
2689
|
}
|
|
2656
|
-
function
|
|
2657
|
-
let i =
|
|
2658
|
-
if (c[3]) throw
|
|
2659
|
-
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();
|
|
2660
2694
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2661
2695
|
}
|
|
2662
|
-
function
|
|
2696
|
+
function Br() {
|
|
2663
2697
|
return {
|
|
2664
2698
|
__proto__: null,
|
|
2665
2699
|
"./waveform_sampling_wasm_bg.js": {
|
|
2666
2700
|
__proto__: null,
|
|
2667
2701
|
__wbindgen_cast_0000000000000001: function(e, t) {
|
|
2668
|
-
return
|
|
2702
|
+
return Gr(e, t);
|
|
2669
2703
|
},
|
|
2670
2704
|
__wbindgen_init_externref_table: function() {
|
|
2671
2705
|
let e = $.__wbindgen_externrefs, t = e.grow(4);
|
|
@@ -2674,52 +2708,52 @@ function Hr() {
|
|
|
2674
2708
|
}
|
|
2675
2709
|
};
|
|
2676
2710
|
}
|
|
2677
|
-
function
|
|
2678
|
-
return e >>>= 0,
|
|
2711
|
+
function Vr(e, t) {
|
|
2712
|
+
return e >>>= 0, Wr().subarray(e / 8, e / 8 + t);
|
|
2679
2713
|
}
|
|
2680
|
-
function
|
|
2681
|
-
return e >>>= 0,
|
|
2714
|
+
function Hr(e, t) {
|
|
2715
|
+
return e >>>= 0, qr().subarray(e / 4, e / 4 + t);
|
|
2682
2716
|
}
|
|
2683
|
-
var
|
|
2684
|
-
function
|
|
2685
|
-
return (
|
|
2717
|
+
var Ur = null;
|
|
2718
|
+
function Wr() {
|
|
2719
|
+
return (Ur === null || Ur.byteLength === 0) && (Ur = new Float64Array($.memory.buffer)), Ur;
|
|
2686
2720
|
}
|
|
2687
|
-
function
|
|
2688
|
-
return e >>>= 0,
|
|
2721
|
+
function Gr(e, t) {
|
|
2722
|
+
return e >>>= 0, ti(e, t);
|
|
2723
|
+
}
|
|
2724
|
+
var Kr = null;
|
|
2725
|
+
function qr() {
|
|
2726
|
+
return (Kr === null || Kr.byteLength === 0) && (Kr = new Uint32Array($.memory.buffer)), Kr;
|
|
2689
2727
|
}
|
|
2690
2728
|
var Jr = null;
|
|
2691
2729
|
function Yr() {
|
|
2692
|
-
return (Jr === null || Jr.byteLength === 0) && (Jr = new
|
|
2693
|
-
}
|
|
2694
|
-
var Xr = null;
|
|
2695
|
-
function Zr() {
|
|
2696
|
-
return (Xr === null || Xr.byteLength === 0) && (Xr = new Uint8Array($.memory.buffer)), Xr;
|
|
2730
|
+
return (Jr === null || Jr.byteLength === 0) && (Jr = new Uint8Array($.memory.buffer)), Jr;
|
|
2697
2731
|
}
|
|
2698
|
-
function
|
|
2732
|
+
function Xr(e, t) {
|
|
2699
2733
|
let n = t(e.length * 8, 8) >>> 0;
|
|
2700
|
-
return
|
|
2734
|
+
return Wr().set(e, n / 8), ni = e.length, n;
|
|
2701
2735
|
}
|
|
2702
|
-
function
|
|
2736
|
+
function Zr(e) {
|
|
2703
2737
|
let t = $.__wbindgen_externrefs.get(e);
|
|
2704
2738
|
return $.__externref_table_dealloc(e), t;
|
|
2705
2739
|
}
|
|
2706
|
-
var
|
|
2740
|
+
var Qr = new TextDecoder("utf-8", {
|
|
2707
2741
|
ignoreBOM: !0,
|
|
2708
2742
|
fatal: !0
|
|
2709
2743
|
});
|
|
2710
|
-
|
|
2711
|
-
var
|
|
2712
|
-
function
|
|
2713
|
-
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", {
|
|
2714
2748
|
ignoreBOM: !0,
|
|
2715
2749
|
fatal: !0
|
|
2716
|
-
}),
|
|
2750
|
+
}), Qr.decode(), ei = t), Qr.decode(Yr().subarray(e, e + t));
|
|
2717
2751
|
}
|
|
2718
|
-
var
|
|
2719
|
-
function
|
|
2720
|
-
return $ = e.exports,
|
|
2752
|
+
var ni = 0, $;
|
|
2753
|
+
function ri(e, t) {
|
|
2754
|
+
return $ = e.exports, Ur = null, Kr = null, Jr = null, $.__wbindgen_start(), $;
|
|
2721
2755
|
}
|
|
2722
|
-
async function
|
|
2756
|
+
async function ii(e, t) {
|
|
2723
2757
|
if (typeof Response == "function" && e instanceof Response) {
|
|
2724
2758
|
if (typeof WebAssembly.instantiateStreaming == "function") try {
|
|
2725
2759
|
return await WebAssembly.instantiateStreaming(e, t);
|
|
@@ -2745,17 +2779,17 @@ async function oi(e, t) {
|
|
|
2745
2779
|
return !1;
|
|
2746
2780
|
}
|
|
2747
2781
|
}
|
|
2748
|
-
async function
|
|
2782
|
+
async function ai(e) {
|
|
2749
2783
|
if ($ !== void 0) return $;
|
|
2750
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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gIACcSABQYCABElyDQBBgIAEIQYgAEGAgARxIAFBgIAISXINAEGAgAghBiAAQYCACHEgAUGAgBBJcg0AQYCAECEGIABBgIAQcSABQYCAIElyDQBBgIAgIQYgAEGAgCBxIAFBgIDAAElyDQBBgIDAACEGIABBgIDAAHEgAUGAgIABSXINAEGAgIABIQYgAEGAgIABcSABQYCAgAJJcg0AQYCAgAIhBiAAQYCAgAJxIAFBgICABElyDQBBgICABCEGIABBgICABHEgAUGAgIAISXINAEGAgIAIIQYgAEGAgIAIcSABQYCAgBBJcg0AQYCAgBAhBiAAQYCAgBBxIAFBgICAIElyDQBBgICAICEGIABBgICAIHEgAUGAgIDAAElyDQBBgICAwAAhBiAAQYCAgMAAcSABQYCAgIABSXINAEGAgICAASEGIABBgICAgAFxIAFBgICAgAJJcg0AQYCAgIACIQYgAEGAgICAAnEgAUGAgICABElyDQBBgICAgAQhBiAAQYCAgIAEcSABQQBOcg0AEEoACyAAIQEgACEDAkAgBmgiCEUNAAJAIAggC0kEQCAQIAhBGGxqIgEoAgBBgICAgHhHDQEMDAsgCCALQbyJwAAQJgALIAAgCHYiAyABKAIIIghJBEAgASgCFCIIIANLBEAgA0ECdCIIIAEoAhBqKAIAIQMgASgCBCAIaigCACEBDAILIAMgCEHcicAAECYACyADIAhBzInAABAmAAsgASAMTw0BIAcgDE8NAiAHIAEgDyABQQN0aisDACInIA8gB0EDdGorAwAiKGNFIAEgB08gJyAoYnJxGyEHIAMgDE8NAyAEIAxPDQQgBCADIA8gA0EDdGorAwAiJyAPIARBA3RqKwMAIihkRSADIARPICcgKGJycRshBCAAIAZqIgAgI0kNAAsCQAJAAkACQAJAIBZBAWsOBgMAAAECBAALQZyKwABBKEHEisAAED4ACyAFKAIUIgAEQCAFKAIQIABBAnRqQQRrKAIAIAdGDQkLIAUoAgwgAEYEQCAFQQxqECcLIAUoAhAgAEECdGogBzYCACAFIABBAWo2AhQMCAsgBSgCFCIABEAgBSgCECAAQQJ0akEEaygCACAERg0ICyAFKAIMIABGBEAgBUEMahAnCyAFKAIQIABBAnRqIAQ2AgAgBSAAQQFqNgIUDAcLIAUgBDYCCCAFIAI2AiQgBSAHNgIYAkAgAiAHTQRAIAIhASAHIQIMAQsgBSAHNgIkIAUgAjYCGCAHIQELIA4gImohAAJAIAIgBE0EQCACIQEgBCECDAELIAUgAjYCCCAFQRhqIQMgASAESwR/IAUgATYCGCAFQSRqBSADCyAENgIAIAUoAhghAQsCQCAAIAJPBEAgAiEDIAAhAgwBCwJ/IAVBCGogACABTw0AGiAFIAE2AgggBUEYaiAFKAIkIgEgAE0NABogBSABNgIYIAVBJGoLIAA2AgAgBSgCCCEDIAUoAhghAQsgBUEMaiIAIAUoAiQQJSAAIAEQJSAAIAMQJSAAIAIQJQwGCyAEIAdJDQQCQAJAIAUoAhQiAARAIAUoAhAgAEECdGpBBGsoAgAgB0YNAQsgBSgCDCAARgRAIAVBDGoQJyAFKAIQIABBAnRqIAc2AgAgBSAAQQFqIgA2AhQMAQsgBSgCECAAQQJ0aiAHNgIAIAUgAEEBaiIANgIUQQAhASAARQ0BCyAAIQEgBSgCECAAQQJ0akEEaygCACAERg0GCyAFKAIMIAFGBEAgBUEMahAnCyAFKAIQIAFBAnRqIAQ2AgAgBSABQQFqNgIUDAULIAEgDEH8h8AAECYACyAHIAxBjIjAABAmAAsgAyAMQdyHwAAQJgALIAQgDEHsh8AAECYACwJAAkAgBSgCFCIABEAgBSgCECAAQQJ0akEEaygCACAERg0BCyAFKAIMIABGBEAgBUEMahAnIAUoAhAgAEECdGogBDYCACAFIABBAWoiADYCFAwBCyAFKAIQIABBAnRqIAQ2AgAgBSAAQQFqIgA2AhRBACEBIABFDQELIAAhASAFKAIQIABBAnRqQQRrKAIAIAdGDQELIAUoAgwgAUYEQCAFQQxqECcLIAUoAhAgAUECdGogBzYCACAFIAFBAWo2AhQLIBggGUcNAAsgBUEMaiAUQQFrECUgDSAFKAIUNgIIIA0gBSkCDDcCAAwGC0HUisAAQScQPyEAIA1BgICAgHg2AgAgDSAANgIEDAULIAUgFDYCLCAFIA42AiggBSAJNgIkIAVBGGohB0EAIQAjAEEgayICJAAgBUEkaiIJKAIIIgEgCSgCBGsiA0EAIAEgA08bIgFBGGwhBAJAAkAgAUHVqtUqSw0AQQghAyAEBEBBCCEAIARBCBBLIgNFDQEgASEACyACQQA2AhAgAiADNgIMIAIgADYCCCACQQA2AhggAiACQRBqNgIUIAIgAzYCHCAJIAJBFGoQEyAHIAIoAhA2AgggByACKQIINwIAIAJBIGokAAwBCyAAIAQQPQALIA0gBSgCHCIAIAUoAiAgFiATEAMgBSgCGCIBBEAgACABQRhsQQgQRwsgBSgCDCIARQ0EIAUoAhAgAEECdEEEEEcMBAsgCCAAQeyJwAAQJgALQQAhAyACQQAgAiAUTRsiB0ECdCIAQQQQSyIBBEAgAkEDcSEGIA4gFGtBfE0EQCACQXxxIQQgASEAA0AgACADIA5qIgI2AgAgAEEMaiACQQNqNgIAIABBCGogAkECajYCACAAQQRqIAJBAWo2AgAgAEEQaiEAIAQgA0EEaiIDRw0ACyAGRQ0CIAMgDmohDgsgAyAGaiABIANBAnRqIQADQCAAIA42AgAgAEEEaiEAIA5BAWohDiAGQQFrIgYNAAshAwwBC0EEIAAQPQALIA0gAzYCCCANIAE2AgQgDSAHNgIADAELIAUgCTYCDCAFIA42AhAgBSAUNgIUQQAhAyACQQAgAiAUTRsiAEEYbCECIABB1arVKksNAUEIIQEgAgRAQQghAyACQQgQSyIBRQ0CIAAhAwsgBUEANgIgIAUgATYCHCAFIAM2AhggBUEANgIoIAUgBUEgajYCJCAFIAE2AiwgBUEMaiAFQSRqEBMgBSgCGCEAIA0gBSgCHCIBIAUoAiAgFiATEAMgAEUNACABIABBGGxBCBBHCyAFQTBqJAAMAQsgAyACED0ACyASIBIoAgBBAWo2AgAgFygCBCIAQYGAgIB4Rg0CIBcpAggLNwIEIB8gADYCACAXQRBqJAAMAgtBmI7AABA3AAsQNgALAkACQAJ/IAooAgwiAEGAgICAeEYEQEEBIQFBACEAQQAhAiAKKAIQDAELIAooAhAhAQJAIAooAhQiAiAATwRAIAEhAAwBCyAAQQJ0IQMgAkUEQEEEIQAgASADQQQQRwwBCyABIANBBCACQQJ0IgEQRCIARQ0CC0EAIQFBAAshAyARIAE2AgwgESADNgIIIBEgAjYCBCARIAA2AgAgCkFAayQADAELQQQgARA9AAsgESgCACARKAIEIBEoAgggESgCDCARQRBqJAAL4wYCCH8DfiMAQRBrIgwkACMAQRBrIg0kACANQQhqIQ4gAyEKIwBB8ABrIgckAAJ/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));
|
|
2751
|
-
let t =
|
|
2785
|
+
let t = Br();
|
|
2752
2786
|
(typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
|
|
2753
|
-
let { instance: n, module: r } = await
|
|
2754
|
-
return
|
|
2787
|
+
let { instance: n, module: r } = await ii(await e, t);
|
|
2788
|
+
return ri(n, r);
|
|
2755
2789
|
}
|
|
2756
2790
|
//#endregion
|
|
2757
2791
|
//#region src/core/wasmSampling.ts
|
|
2758
|
-
var
|
|
2792
|
+
var oi = {
|
|
2759
2793
|
none: 0,
|
|
2760
2794
|
peak: 1,
|
|
2761
2795
|
lttb: 2,
|
|
@@ -2764,24 +2798,24 @@ var ci = {
|
|
|
2764
2798
|
max: 5,
|
|
2765
2799
|
minmax: 6,
|
|
2766
2800
|
sum: 7
|
|
2767
|
-
},
|
|
2768
|
-
function
|
|
2801
|
+
}, si;
|
|
2802
|
+
function ci(e, t) {
|
|
2769
2803
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
2770
2804
|
}
|
|
2771
|
-
function
|
|
2805
|
+
function li(e) {
|
|
2772
2806
|
if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
|
|
2773
2807
|
}
|
|
2774
|
-
function
|
|
2775
|
-
return
|
|
2808
|
+
function ui(e) {
|
|
2809
|
+
return si ??= Promise.resolve(ai(e)).then(() => void 0), si;
|
|
2776
2810
|
}
|
|
2777
|
-
async function
|
|
2778
|
-
|
|
2779
|
-
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];
|
|
2780
2814
|
if (e.strategy !== "average" && e.strategy !== "sum") return {
|
|
2781
2815
|
kind: "source-indexes",
|
|
2782
|
-
sourceIndexes:
|
|
2816
|
+
sourceIndexes: zr(e.x, e.y, n, t)
|
|
2783
2817
|
};
|
|
2784
|
-
let r =
|
|
2818
|
+
let r = Rr(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
|
|
2785
2819
|
for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
|
|
2786
2820
|
return {
|
|
2787
2821
|
kind: "aggregates",
|
|
@@ -2789,24 +2823,24 @@ async function pi(e) {
|
|
|
2789
2823
|
y: a
|
|
2790
2824
|
};
|
|
2791
2825
|
}
|
|
2792
|
-
async function
|
|
2826
|
+
async function fi(e, t) {
|
|
2793
2827
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2794
|
-
await
|
|
2795
|
-
let n =
|
|
2828
|
+
await ui();
|
|
2829
|
+
let n = Ir(e, t);
|
|
2796
2830
|
return n.length === 4 ? {
|
|
2797
2831
|
x: [n[0], n[1]],
|
|
2798
2832
|
y: [n[2], n[3]]
|
|
2799
2833
|
} : void 0;
|
|
2800
2834
|
}
|
|
2801
|
-
async function
|
|
2835
|
+
async function pi(e, t, n) {
|
|
2802
2836
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2803
|
-
await
|
|
2804
|
-
let r =
|
|
2837
|
+
await ui();
|
|
2838
|
+
let r = Lr(e, t, n[0], n[1]);
|
|
2805
2839
|
return [r[0], r[1]];
|
|
2806
2840
|
}
|
|
2807
2841
|
//#endregion
|
|
2808
2842
|
//#region src/components/core/useWaveformLayout.ts
|
|
2809
|
-
function
|
|
2843
|
+
function mi(e) {
|
|
2810
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) => ({
|
|
2811
2845
|
...e,
|
|
2812
2846
|
color: e.color ?? (t === 0 ? n.lineColor : Vt[t % Vt.length])
|
|
@@ -2839,19 +2873,10 @@ function gi(e) {
|
|
|
2839
2873
|
fullClearance: t + 7 + 0 + 12 + 4,
|
|
2840
2874
|
labelCenterX: i
|
|
2841
2875
|
};
|
|
2842
|
-
}), 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(() =>
|
|
2843
|
-
let r = ur(t, n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber, n.axes?.y?.nice !== !1);
|
|
2844
|
-
return {
|
|
2845
|
-
left: Math.max(e.left, r.left),
|
|
2846
|
-
right: Math.max(e.right, r.right)
|
|
2847
|
-
};
|
|
2848
|
-
}, {
|
|
2849
|
-
left: 0,
|
|
2850
|
-
right: 0
|
|
2851
|
-
})), 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(() => {
|
|
2852
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;
|
|
2853
2878
|
return {
|
|
2854
|
-
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,
|
|
2855
2880
|
hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && C.value && !o
|
|
2856
2881
|
};
|
|
2857
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(() => {
|
|
@@ -2891,7 +2916,8 @@ function gi(e) {
|
|
|
2891
2916
|
rendering: v.value,
|
|
2892
2917
|
linePointOverrides: m?.value,
|
|
2893
2918
|
hideSecondaryLabels: c.value || A.value.hideSecondaryLabels,
|
|
2894
|
-
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,
|
|
2895
2921
|
showCompactEmptyTracks: n.displayMode === "compact" && j.value
|
|
2896
2922
|
})), H = (e) => e.seriesList.map((t) => ({
|
|
2897
2923
|
...e,
|
|
@@ -2936,13 +2962,13 @@ function gi(e) {
|
|
|
2936
2962
|
}
|
|
2937
2963
|
};
|
|
2938
2964
|
}
|
|
2939
|
-
var
|
|
2940
|
-
function
|
|
2965
|
+
var hi = 1e-6;
|
|
2966
|
+
function gi(e) {
|
|
2941
2967
|
return Number.isFinite(e) ? Math.max(1, e) : 1;
|
|
2942
2968
|
}
|
|
2943
|
-
function
|
|
2944
|
-
let i =
|
|
2945
|
-
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)) {
|
|
2946
2972
|
let e = Math.max(1, Math.ceil(i / o)), t = o, n = a * e;
|
|
2947
2973
|
return {
|
|
2948
2974
|
textWidth: t,
|
|
@@ -2967,7 +2993,7 @@ function yi({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r
|
|
|
2967
2993
|
}
|
|
2968
2994
|
//#endregion
|
|
2969
2995
|
//#region src/components/core/useWaveformPresentation.ts
|
|
2970
|
-
function
|
|
2996
|
+
function vi(e) {
|
|
2971
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(() => ({
|
|
2972
2998
|
width: l.value === void 0 ? "100%" : `${l.value}px`,
|
|
2973
2999
|
height: u.value === void 0 ? "100%" : `${u.value}px`
|
|
@@ -3012,7 +3038,7 @@ function bi(e) {
|
|
|
3012
3038
|
maxWidth: O.value ? "none" : `${j.value}px`,
|
|
3013
3039
|
whiteSpace: O.value ? "nowrap" : "normal",
|
|
3014
3040
|
overflowWrap: O.value ? "normal" : "anywhere"
|
|
3015
|
-
})), N = t(() =>
|
|
3041
|
+
})), N = t(() => _i({
|
|
3016
3042
|
naturalWidth: a.value || A.value,
|
|
3017
3043
|
naturalHeight: o.value || E.value * 1.2,
|
|
3018
3044
|
availableWidth: j.value,
|
|
@@ -3068,66 +3094,66 @@ function bi(e) {
|
|
|
3068
3094
|
}
|
|
3069
3095
|
//#endregion
|
|
3070
3096
|
//#region src/core/samplingReferenceValues.ts
|
|
3071
|
-
function
|
|
3097
|
+
function yi(e, t) {
|
|
3072
3098
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3073
3099
|
}
|
|
3074
|
-
function
|
|
3100
|
+
function bi(e, t, n, r) {
|
|
3075
3101
|
let i = r - n;
|
|
3076
3102
|
return {
|
|
3077
3103
|
start: n + Math.floor(e * i / t),
|
|
3078
3104
|
end: n + Math.floor((e + 1) * i / t)
|
|
3079
3105
|
};
|
|
3080
3106
|
}
|
|
3081
|
-
function
|
|
3107
|
+
function xi(e, t) {
|
|
3082
3108
|
e[e.length - 1] !== t && e.push(t);
|
|
3083
3109
|
}
|
|
3084
|
-
function
|
|
3110
|
+
function Si(e, t, n) {
|
|
3085
3111
|
if (e <= t) return Array.from({ length: e }, (e, t) => t);
|
|
3086
3112
|
if (t === 1) return [0];
|
|
3087
3113
|
if (t === 2) return [0, e - 1];
|
|
3088
3114
|
let r = [0];
|
|
3089
|
-
return n().forEach((e) =>
|
|
3115
|
+
return n().forEach((e) => xi(r, e)), xi(r, e - 1), r;
|
|
3090
3116
|
}
|
|
3091
|
-
function
|
|
3117
|
+
function Ci(e, t, n) {
|
|
3092
3118
|
let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
|
|
3093
|
-
return
|
|
3119
|
+
return Si(e.length, t, () => {
|
|
3094
3120
|
if (!r) return [];
|
|
3095
3121
|
let t = [];
|
|
3096
3122
|
for (let i = 0; i < r; i += 1) {
|
|
3097
|
-
let a =
|
|
3123
|
+
let a = bi(i, r, 1, e.length - 1), o = a.start, s = a.start;
|
|
3098
3124
|
for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
|
|
3099
|
-
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));
|
|
3100
3126
|
}
|
|
3101
3127
|
return t;
|
|
3102
3128
|
});
|
|
3103
3129
|
}
|
|
3104
|
-
function
|
|
3130
|
+
function wi(e, t) {
|
|
3105
3131
|
let n = Math.floor((t - 2) / 4);
|
|
3106
|
-
return
|
|
3132
|
+
return Si(e.length, t, () => {
|
|
3107
3133
|
if (!n) return [];
|
|
3108
3134
|
let t = [];
|
|
3109
3135
|
for (let r = 0; r < n; r += 1) {
|
|
3110
|
-
let i =
|
|
3136
|
+
let i = bi(r, n, 1, e.length - 1), a = i.start, o = i.start;
|
|
3111
3137
|
for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
|
|
3112
3138
|
[
|
|
3113
3139
|
i.start,
|
|
3114
3140
|
a,
|
|
3115
3141
|
o,
|
|
3116
3142
|
i.end - 1
|
|
3117
|
-
].sort((e, t) => e - t).forEach((e) =>
|
|
3143
|
+
].sort((e, t) => e - t).forEach((e) => xi(t, e));
|
|
3118
3144
|
}
|
|
3119
3145
|
return t;
|
|
3120
3146
|
});
|
|
3121
3147
|
}
|
|
3122
|
-
function
|
|
3123
|
-
return
|
|
3148
|
+
function Ti(e, t, n) {
|
|
3149
|
+
return Si(e.length, n, () => {
|
|
3124
3150
|
let r = (e.length - 2) / (n - 2), i = [], a = 0;
|
|
3125
3151
|
for (let o = 0; o < n - 2; o += 1) {
|
|
3126
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;
|
|
3127
3153
|
for (let n = s; n < c; n += 1) l += e[n], u += t[n];
|
|
3128
3154
|
let d = c - s;
|
|
3129
3155
|
d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
|
|
3130
|
-
let f =
|
|
3156
|
+
let f = bi(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
|
|
3131
3157
|
for (let n = f.start; n < f.end; n += 1) {
|
|
3132
3158
|
let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
|
|
3133
3159
|
r > m && (m = r, p = n);
|
|
@@ -3137,10 +3163,10 @@ function Di(e, t, n) {
|
|
|
3137
3163
|
return i;
|
|
3138
3164
|
});
|
|
3139
3165
|
}
|
|
3140
|
-
function
|
|
3141
|
-
let i =
|
|
3166
|
+
function Ei(e, t, n, r) {
|
|
3167
|
+
let i = yi(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
|
|
3142
3168
|
for (let n = 0; n < i; n += 1) {
|
|
3143
|
-
let s =
|
|
3169
|
+
let s = bi(n, i, 0, e.length);
|
|
3144
3170
|
for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
|
|
3145
3171
|
let c = s.end - s.start;
|
|
3146
3172
|
a[n] /= c, r === "average" && (o[n] /= c);
|
|
@@ -3151,10 +3177,10 @@ function Oi(e, t, n, r) {
|
|
|
3151
3177
|
y: o
|
|
3152
3178
|
};
|
|
3153
3179
|
}
|
|
3154
|
-
function
|
|
3180
|
+
function Di(e, t, n, r) {
|
|
3155
3181
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
3156
|
-
if (n === "average" || n === "sum") return
|
|
3157
|
-
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);
|
|
3158
3184
|
return {
|
|
3159
3185
|
kind: "source-indexes",
|
|
3160
3186
|
sourceIndexes: Uint32Array.from(a)
|
|
@@ -3162,41 +3188,41 @@ function ki(e, t, n, r) {
|
|
|
3162
3188
|
}
|
|
3163
3189
|
//#endregion
|
|
3164
3190
|
//#region src/core/workerSampling/javascriptBackend.ts
|
|
3165
|
-
var
|
|
3191
|
+
var Oi = {
|
|
3166
3192
|
kind: "javascript",
|
|
3167
3193
|
sample(e) {
|
|
3168
|
-
return
|
|
3194
|
+
return Di(e.x, e.y, e.strategy, e.targetPointCount);
|
|
3169
3195
|
}
|
|
3170
|
-
},
|
|
3171
|
-
function
|
|
3196
|
+
}, ki = 8 * 1024 * 1024;
|
|
3197
|
+
function Ai(e, t) {
|
|
3172
3198
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3173
3199
|
}
|
|
3174
|
-
function
|
|
3200
|
+
function ji(e, t, n, r) {
|
|
3175
3201
|
let i = r - n;
|
|
3176
3202
|
return {
|
|
3177
3203
|
start: n + Math.floor(e * i / t),
|
|
3178
3204
|
end: n + Math.floor((e + 1) * i / t)
|
|
3179
3205
|
};
|
|
3180
3206
|
}
|
|
3181
|
-
function
|
|
3207
|
+
function Mi(e, t) {
|
|
3182
3208
|
e[e.length - 1] !== t && e.push(t);
|
|
3183
3209
|
}
|
|
3184
|
-
function
|
|
3210
|
+
function Ni(e) {
|
|
3185
3211
|
return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
|
|
3186
3212
|
}
|
|
3187
|
-
function
|
|
3213
|
+
function Pi(e, t) {
|
|
3188
3214
|
let n = 1;
|
|
3189
3215
|
for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
|
|
3190
3216
|
return n;
|
|
3191
3217
|
}
|
|
3192
|
-
var
|
|
3218
|
+
var Fi = class {
|
|
3193
3219
|
points;
|
|
3194
3220
|
extremaLayers = [];
|
|
3195
3221
|
sumLayers = [];
|
|
3196
3222
|
indexBytes = 0;
|
|
3197
3223
|
maxBytes;
|
|
3198
3224
|
constructor(e, t = {}) {
|
|
3199
|
-
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;
|
|
3200
3226
|
}
|
|
3201
3227
|
get byteLength() {
|
|
3202
3228
|
return this.indexBytes;
|
|
@@ -3205,7 +3231,7 @@ var Li = class {
|
|
|
3205
3231
|
this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
|
|
3206
3232
|
}
|
|
3207
3233
|
sample(e, t, n, r) {
|
|
3208
|
-
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);
|
|
3209
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);
|
|
3210
3236
|
}
|
|
3211
3237
|
allIndexes(e, t) {
|
|
@@ -3225,24 +3251,24 @@ var Li = class {
|
|
|
3225
3251
|
if (i === 0) return this.indexes([e, t - 1]);
|
|
3226
3252
|
let a = [e];
|
|
3227
3253
|
for (let n = 0; n < i; n += 1) {
|
|
3228
|
-
let o =
|
|
3254
|
+
let o = ji(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
|
|
3229
3255
|
if (!s) return;
|
|
3230
|
-
if (r === "min")
|
|
3231
|
-
else if (r === "max")
|
|
3232
|
-
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));
|
|
3233
3259
|
else for (let e of [
|
|
3234
3260
|
o.start,
|
|
3235
3261
|
s.minimum,
|
|
3236
3262
|
s.maximum,
|
|
3237
3263
|
o.end - 1
|
|
3238
|
-
].sort((e, t) => e - t))
|
|
3264
|
+
].sort((e, t) => e - t)) Mi(a, e);
|
|
3239
3265
|
}
|
|
3240
|
-
return
|
|
3266
|
+
return Mi(a, t - 1), this.indexes(a);
|
|
3241
3267
|
}
|
|
3242
3268
|
aggregate(e, t, n, r) {
|
|
3243
3269
|
let i = new Float64Array(n), a = new Float64Array(n);
|
|
3244
3270
|
for (let o = 0; o < n; o += 1) {
|
|
3245
|
-
let s =
|
|
3271
|
+
let s = ji(o, n, e, t), c = this.querySum(s.start, s.end);
|
|
3246
3272
|
if (!c || c.count === 0) return;
|
|
3247
3273
|
i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
|
|
3248
3274
|
}
|
|
@@ -3257,7 +3283,7 @@ var Li = class {
|
|
|
3257
3283
|
if (!this.ensureExtrema(n)) return;
|
|
3258
3284
|
let r = e, i = e;
|
|
3259
3285
|
for (let n = e; n < t;) {
|
|
3260
|
-
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;
|
|
3261
3287
|
this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
|
|
3262
3288
|
}
|
|
3263
3289
|
return {
|
|
@@ -3270,7 +3296,7 @@ var Li = class {
|
|
|
3270
3296
|
if (!this.ensureSum(n)) return;
|
|
3271
3297
|
let r = 0, i = 0, a = 0;
|
|
3272
3298
|
for (let n = e; n < t;) {
|
|
3273
|
-
let e =
|
|
3299
|
+
let e = Pi(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
|
|
3274
3300
|
if (c) r += c.x[s], i += c.y[s], a += c.count[s];
|
|
3275
3301
|
else {
|
|
3276
3302
|
let e = this.points[n];
|
|
@@ -3291,7 +3317,7 @@ var Li = class {
|
|
|
3291
3317
|
minimumIndexes: new Uint32Array(e),
|
|
3292
3318
|
maximumIndexes: new Uint32Array(e)
|
|
3293
3319
|
};
|
|
3294
|
-
if (!this.reserve(
|
|
3320
|
+
if (!this.reserve(Ni(n))) return !1;
|
|
3295
3321
|
let r = this.extremaLayers[t - 1];
|
|
3296
3322
|
for (let t = 0; t < e; t += 1) {
|
|
3297
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;
|
|
@@ -3309,7 +3335,7 @@ var Li = class {
|
|
|
3309
3335
|
y: new Float64Array(e),
|
|
3310
3336
|
count: new Uint32Array(e)
|
|
3311
3337
|
};
|
|
3312
|
-
if (!this.reserve(
|
|
3338
|
+
if (!this.reserve(Ni(n))) return !1;
|
|
3313
3339
|
let r = this.sumLayers[t - 1];
|
|
3314
3340
|
for (let t = 0; t < e; t += 1) {
|
|
3315
3341
|
let e = t * 2, i = e + 1;
|
|
@@ -3334,8 +3360,8 @@ var Li = class {
|
|
|
3334
3360
|
let n = this.points[e], r = this.points[t];
|
|
3335
3361
|
return n.y > r.y || n.y === r.y && e < t;
|
|
3336
3362
|
}
|
|
3337
|
-
},
|
|
3338
|
-
function
|
|
3363
|
+
}, Ii = 1e3, Li = I((e) => e.x);
|
|
3364
|
+
function Ri(e) {
|
|
3339
3365
|
let t = [], n = !0, r = -Infinity;
|
|
3340
3366
|
for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
|
|
3341
3367
|
x: i.x,
|
|
@@ -3346,7 +3372,7 @@ function Bi(e) {
|
|
|
3346
3372
|
}));
|
|
3347
3373
|
return n || t.sort((e, t) => e.x - t.x), t;
|
|
3348
3374
|
}
|
|
3349
|
-
function
|
|
3375
|
+
function zi(e, t) {
|
|
3350
3376
|
let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
|
|
3351
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);
|
|
3352
3378
|
return {
|
|
@@ -3356,7 +3382,7 @@ function Vi(e, t) {
|
|
|
3356
3382
|
yDomain: e.length ? [i, a] : null
|
|
3357
3383
|
};
|
|
3358
3384
|
}
|
|
3359
|
-
function
|
|
3385
|
+
function Bi(e, t, n = e.length) {
|
|
3360
3386
|
let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
|
|
3361
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]);
|
|
3362
3388
|
return {
|
|
@@ -3366,39 +3392,39 @@ function Hi(e, t, n = e.length) {
|
|
|
3366
3392
|
yDomain: e.length ? [a, o] : null
|
|
3367
3393
|
};
|
|
3368
3394
|
}
|
|
3369
|
-
function
|
|
3395
|
+
function Vi(e, t) {
|
|
3370
3396
|
return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
|
|
3371
3397
|
}
|
|
3372
|
-
function
|
|
3398
|
+
function Hi(e) {
|
|
3373
3399
|
return e === "auto" ? "peak" : e;
|
|
3374
3400
|
}
|
|
3375
|
-
function
|
|
3401
|
+
function Ui(e) {
|
|
3376
3402
|
if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
|
|
3377
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;
|
|
3378
3404
|
return Math.max(1, Math.floor(t * n));
|
|
3379
3405
|
}
|
|
3380
|
-
function
|
|
3406
|
+
function Wi(e, t) {
|
|
3381
3407
|
if (e.mode === "raw") return !0;
|
|
3382
3408
|
if (e.mode !== "auto") return !1;
|
|
3383
|
-
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;
|
|
3384
3410
|
if (!e.previousSelectedMode) return t <= n;
|
|
3385
3411
|
let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
|
|
3386
3412
|
return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
|
|
3387
3413
|
}
|
|
3388
|
-
function
|
|
3414
|
+
function Gi(e, t) {
|
|
3389
3415
|
let n = e[0], r = e.at(-1);
|
|
3390
|
-
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;
|
|
3391
3417
|
}
|
|
3392
|
-
function
|
|
3418
|
+
function Ki(e) {
|
|
3393
3419
|
return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
|
|
3394
3420
|
}
|
|
3395
|
-
function
|
|
3421
|
+
function qi(e, t) {
|
|
3396
3422
|
return e.kind === "aggregates" ? e : {
|
|
3397
3423
|
kind: "source-indexes",
|
|
3398
3424
|
sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
|
|
3399
3425
|
};
|
|
3400
3426
|
}
|
|
3401
|
-
function
|
|
3427
|
+
function Ji(e, t, n, r, i) {
|
|
3402
3428
|
return [
|
|
3403
3429
|
e.datasetId,
|
|
3404
3430
|
e.revision,
|
|
@@ -3418,14 +3444,14 @@ function Xi(e, t, n, r, i) {
|
|
|
3418
3444
|
e.errorBarMinSpacing ?? 0
|
|
3419
3445
|
].join("\0");
|
|
3420
3446
|
}
|
|
3421
|
-
function
|
|
3447
|
+
function Yi(e, t, n, r, i, a, o, s) {
|
|
3422
3448
|
return {
|
|
3423
3449
|
seriesId: e.seriesId,
|
|
3424
3450
|
datasetId: e.datasetId,
|
|
3425
3451
|
mode: e.mode,
|
|
3426
3452
|
selectedMode: i,
|
|
3427
3453
|
backend: r,
|
|
3428
|
-
strategy:
|
|
3454
|
+
strategy: Hi(e.strategy),
|
|
3429
3455
|
sourcePointCount: t,
|
|
3430
3456
|
visiblePointCount: n,
|
|
3431
3457
|
renderedPointCount: o,
|
|
@@ -3441,18 +3467,18 @@ function Zi(e, t, n, r, i, a, o, s) {
|
|
|
3441
3467
|
}
|
|
3442
3468
|
//#endregion
|
|
3443
3469
|
//#region src/core/workerSampling/repositoryDataset.ts
|
|
3444
|
-
function
|
|
3470
|
+
function Xi(e) {
|
|
3445
3471
|
return e?.y.length ?? 0;
|
|
3446
3472
|
}
|
|
3447
|
-
function
|
|
3473
|
+
function Zi(e, t) {
|
|
3448
3474
|
return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
|
|
3449
3475
|
}
|
|
3450
|
-
function
|
|
3476
|
+
function Qi(e, t) {
|
|
3451
3477
|
let n = (t, n) => {
|
|
3452
|
-
let r = 0, i =
|
|
3478
|
+
let r = 0, i = Xi(e);
|
|
3453
3479
|
for (; r < i;) {
|
|
3454
3480
|
let a = r + Math.floor((i - r) / 2);
|
|
3455
|
-
(n ?
|
|
3481
|
+
(n ? Zi(e, a) <= t : Zi(e, a) < t) ? r = a + 1 : i = a;
|
|
3456
3482
|
}
|
|
3457
3483
|
return r;
|
|
3458
3484
|
}, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
|
|
@@ -3461,13 +3487,13 @@ function ea(e, t) {
|
|
|
3461
3487
|
end: n(i, !0)
|
|
3462
3488
|
};
|
|
3463
3489
|
}
|
|
3464
|
-
function
|
|
3465
|
-
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));
|
|
3466
3492
|
}
|
|
3467
|
-
function
|
|
3493
|
+
function ea(e) {
|
|
3468
3494
|
return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
|
|
3469
3495
|
}
|
|
3470
|
-
function
|
|
3496
|
+
function ta(e, t) {
|
|
3471
3497
|
let n = [], r = Math.min(e.length, t.length);
|
|
3472
3498
|
for (let i = 0; i < r; i += 1) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push(i);
|
|
3473
3499
|
return n.sort((t, n) => e[t] - e[n] || t - n), {
|
|
@@ -3475,14 +3501,14 @@ function ra(e, t) {
|
|
|
3475
3501
|
y: Float64Array.from(n, (e) => t[e])
|
|
3476
3502
|
};
|
|
3477
3503
|
}
|
|
3478
|
-
function
|
|
3504
|
+
function na(e, t, n, r) {
|
|
3479
3505
|
if (t?.kind === "typed") {
|
|
3480
|
-
let e =
|
|
3506
|
+
let e = ta(t.x, t.y);
|
|
3481
3507
|
return {
|
|
3482
3508
|
x: e.x,
|
|
3483
3509
|
y: e.y,
|
|
3484
3510
|
revision: n,
|
|
3485
|
-
metrics:
|
|
3511
|
+
metrics: Bi(e.x, e.y, Math.max(t.x.length, t.y.length))
|
|
3486
3512
|
};
|
|
3487
3513
|
}
|
|
3488
3514
|
if (t?.kind === "samples") {
|
|
@@ -3516,35 +3542,35 @@ function ia(e, t, n, r) {
|
|
|
3516
3542
|
}
|
|
3517
3543
|
};
|
|
3518
3544
|
}
|
|
3519
|
-
let i =
|
|
3545
|
+
let i = Ri(e ?? t?.points ?? []);
|
|
3520
3546
|
return {
|
|
3521
3547
|
x: Float64Array.from(i, (e) => e.x),
|
|
3522
3548
|
y: Float64Array.from(i, (e) => e.y),
|
|
3523
3549
|
points: i,
|
|
3524
3550
|
revision: n,
|
|
3525
|
-
metrics:
|
|
3526
|
-
index: new
|
|
3551
|
+
metrics: zi(i, e?.length ?? t?.points.length ?? 0),
|
|
3552
|
+
index: new Fi(i, { maxBytes: r })
|
|
3527
3553
|
};
|
|
3528
3554
|
}
|
|
3529
|
-
function
|
|
3530
|
-
!
|
|
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));
|
|
3531
3557
|
}
|
|
3532
|
-
function
|
|
3533
|
-
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);
|
|
3534
3560
|
}
|
|
3535
3561
|
//#endregion
|
|
3536
3562
|
//#region src/core/workerSampling/samplingCache.ts
|
|
3537
|
-
var
|
|
3538
|
-
function
|
|
3563
|
+
var aa = 96, oa = 16 * 1024 * 1024;
|
|
3564
|
+
function sa(e) {
|
|
3539
3565
|
return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
|
|
3540
3566
|
}
|
|
3541
|
-
var
|
|
3567
|
+
var ca = class {
|
|
3542
3568
|
entries = /* @__PURE__ */ new Map();
|
|
3543
3569
|
bytes = 0;
|
|
3544
3570
|
maxEntries;
|
|
3545
3571
|
maxBytes;
|
|
3546
3572
|
constructor(e = {}) {
|
|
3547
|
-
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;
|
|
3548
3574
|
}
|
|
3549
3575
|
get metrics() {
|
|
3550
3576
|
return {
|
|
@@ -3559,7 +3585,7 @@ var ua = class {
|
|
|
3559
3585
|
if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
|
|
3560
3586
|
}
|
|
3561
3587
|
set(e, t) {
|
|
3562
|
-
let n =
|
|
3588
|
+
let n = sa(t);
|
|
3563
3589
|
if (n > this.maxBytes || this.maxEntries === 0) return;
|
|
3564
3590
|
let r = this.entries.get(e);
|
|
3565
3591
|
for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
|
|
@@ -3579,14 +3605,14 @@ var ua = class {
|
|
|
3579
3605
|
clear() {
|
|
3580
3606
|
this.entries.clear(), this.bytes = 0;
|
|
3581
3607
|
}
|
|
3582
|
-
},
|
|
3608
|
+
}, la = class {
|
|
3583
3609
|
datasets = /* @__PURE__ */ new Map();
|
|
3584
3610
|
javascriptBackend;
|
|
3585
3611
|
cache;
|
|
3586
3612
|
indexMaxBytes;
|
|
3587
3613
|
wasmBackend;
|
|
3588
3614
|
constructor(e = {}) {
|
|
3589
|
-
this.javascriptBackend = e.javascriptBackend ??
|
|
3615
|
+
this.javascriptBackend = e.javascriptBackend ?? Oi, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new ca({
|
|
3590
3616
|
maxEntries: e.cacheMaxEntries,
|
|
3591
3617
|
maxBytes: e.cacheMaxBytes
|
|
3592
3618
|
});
|
|
@@ -3599,9 +3625,9 @@ var ua = class {
|
|
|
3599
3625
|
};
|
|
3600
3626
|
}
|
|
3601
3627
|
setWasmBackend(e) {
|
|
3602
|
-
this.wasmBackend && this.wasmBackend !== e &&
|
|
3628
|
+
this.wasmBackend && this.wasmBackend !== e && ea(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
|
|
3603
3629
|
e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
|
|
3604
|
-
})), this.wasmBackend = e,
|
|
3630
|
+
})), this.wasmBackend = e, ea(e) && this.datasets.forEach((t) => ra(e, t, this.indexMaxBytes));
|
|
3605
3631
|
}
|
|
3606
3632
|
handle(e) {
|
|
3607
3633
|
switch (e.type) {
|
|
@@ -3617,15 +3643,15 @@ var ua = class {
|
|
|
3617
3643
|
register(e, t, n, r) {
|
|
3618
3644
|
let i = this.datasets.get(e);
|
|
3619
3645
|
if (i) return this.datasetResponse(t, e, i, "stale-revision");
|
|
3620
|
-
let a =
|
|
3621
|
-
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");
|
|
3622
3648
|
}
|
|
3623
3649
|
replace(e, t, n, r, i) {
|
|
3624
|
-
let a = this.datasets.get(e), o =
|
|
3650
|
+
let a = this.datasets.get(e), o = Vi(a, n);
|
|
3625
3651
|
if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
|
|
3626
|
-
|
|
3627
|
-
let s =
|
|
3628
|
-
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");
|
|
3629
3655
|
}
|
|
3630
3656
|
sample(e) {
|
|
3631
3657
|
return {
|
|
@@ -3635,28 +3661,28 @@ var ua = class {
|
|
|
3635
3661
|
};
|
|
3636
3662
|
}
|
|
3637
3663
|
sampleSeries(e, t) {
|
|
3638
|
-
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);
|
|
3639
3665
|
if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
|
|
3640
|
-
let a =
|
|
3641
|
-
if (
|
|
3666
|
+
let a = Qi(r, t.xDomain), o = a.end - a.start;
|
|
3667
|
+
if (Wi(t, o)) return this.sampleResponse(e, t, "ok", {
|
|
3642
3668
|
kind: "source-indexes",
|
|
3643
3669
|
sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
|
|
3644
3670
|
}, "raw", "raw", o, n, !1);
|
|
3645
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);
|
|
3646
3672
|
if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
|
|
3647
|
-
let u =
|
|
3673
|
+
let u = Hi(t.strategy), d = Ui(t), f = Ji(t, a, u, d, l.kind), p = this.cache.get(f);
|
|
3648
3674
|
if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
|
|
3649
|
-
let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 &&
|
|
3650
|
-
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),
|
|
3651
3677
|
y: r.y.subarray(a.start, a.end),
|
|
3652
3678
|
points: r.points?.slice(a.start, a.end) ?? [],
|
|
3653
3679
|
strategy: u,
|
|
3654
3680
|
targetPointCount: d
|
|
3655
3681
|
}), a.start);
|
|
3656
|
-
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);
|
|
3657
3683
|
}
|
|
3658
3684
|
sampleResponse(e, t, n, r, i, a, o, s, c) {
|
|
3659
|
-
let l =
|
|
3685
|
+
let l = Yi(t, Xi(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Ki(r), c);
|
|
3660
3686
|
return l.requestId = e, {
|
|
3661
3687
|
seriesId: t.seriesId,
|
|
3662
3688
|
datasetId: t.datasetId,
|
|
@@ -3667,7 +3693,7 @@ var ua = class {
|
|
|
3667
3693
|
};
|
|
3668
3694
|
}
|
|
3669
3695
|
findNearest(e, t, n, r) {
|
|
3670
|
-
let i = this.datasets.get(e), a =
|
|
3696
|
+
let i = this.datasets.get(e), a = Vi(i, n);
|
|
3671
3697
|
return a !== "ok" || !i ? {
|
|
3672
3698
|
type: "find-nearest-point-response",
|
|
3673
3699
|
requestId: t,
|
|
@@ -3680,12 +3706,12 @@ var ua = class {
|
|
|
3680
3706
|
datasetId: e,
|
|
3681
3707
|
revision: n,
|
|
3682
3708
|
status: a,
|
|
3683
|
-
point: i.points ?
|
|
3684
|
-
let e =
|
|
3685
|
-
if (!
|
|
3686
|
-
let t = Math.min(
|
|
3687
|
-
return Number.isFinite(r) &&
|
|
3688
|
-
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),
|
|
3689
3715
|
y: i.y[a]
|
|
3690
3716
|
} : void 0;
|
|
3691
3717
|
})()
|
|
@@ -3693,15 +3719,15 @@ var ua = class {
|
|
|
3693
3719
|
}
|
|
3694
3720
|
metrics(e, t, n) {
|
|
3695
3721
|
let r = this.datasets.get(e);
|
|
3696
|
-
return this.datasetResponse(t, e, r,
|
|
3722
|
+
return this.datasetResponse(t, e, r, Vi(r, n));
|
|
3697
3723
|
}
|
|
3698
3724
|
dispose(e, t, n) {
|
|
3699
|
-
let r = this.datasets.get(e), i =
|
|
3700
|
-
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);
|
|
3701
3727
|
}
|
|
3702
3728
|
disposeAll(e) {
|
|
3703
3729
|
let t = [...this.datasets.keys()];
|
|
3704
|
-
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(), {
|
|
3705
3731
|
type: "dispose-all-response",
|
|
3706
3732
|
requestId: e,
|
|
3707
3733
|
disposedDatasetIds: t
|
|
@@ -3723,10 +3749,10 @@ var ua = class {
|
|
|
3723
3749
|
};
|
|
3724
3750
|
//#endregion
|
|
3725
3751
|
//#region src/components/core/latestTaskScheduler.ts
|
|
3726
|
-
function
|
|
3752
|
+
function ua(e, t, n, r) {
|
|
3727
3753
|
return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
|
|
3728
3754
|
}
|
|
3729
|
-
function
|
|
3755
|
+
function da() {
|
|
3730
3756
|
let e = 0, t = !1, n, r = !1, i = {
|
|
3731
3757
|
scheduled: 0,
|
|
3732
3758
|
coalesced: 0,
|
|
@@ -3765,12 +3791,12 @@ function pa() {
|
|
|
3765
3791
|
}
|
|
3766
3792
|
//#endregion
|
|
3767
3793
|
//#region src/components/core/workerSamplingClient.ts
|
|
3768
|
-
function
|
|
3794
|
+
function fa(e) {
|
|
3769
3795
|
return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
|
|
3770
3796
|
}
|
|
3771
|
-
function
|
|
3797
|
+
function pa() {
|
|
3772
3798
|
let e, t, n, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = () => {
|
|
3773
|
-
t ??= new
|
|
3799
|
+
t ??= new la();
|
|
3774
3800
|
for (let [e, n] of i) {
|
|
3775
3801
|
t.handle({
|
|
3776
3802
|
type: "register-dataset",
|
|
@@ -3806,7 +3832,7 @@ function ha() {
|
|
|
3806
3832
|
let t = a();
|
|
3807
3833
|
e.forEach(({ request: e, resolve: n }) => n(t.handle(e)));
|
|
3808
3834
|
}, c = (r) => {
|
|
3809
|
-
t || (n =
|
|
3835
|
+
t || (n = fa(r), e?.terminate(), e = void 0, s());
|
|
3810
3836
|
};
|
|
3811
3837
|
try {
|
|
3812
3838
|
typeof Worker > "u" ? c() : (e = new Worker(new URL(
|
|
@@ -3843,20 +3869,20 @@ function ha() {
|
|
|
3843
3869
|
}
|
|
3844
3870
|
};
|
|
3845
3871
|
}
|
|
3846
|
-
function
|
|
3872
|
+
function ma(e) {
|
|
3847
3873
|
return e.type === "dataset-response";
|
|
3848
3874
|
}
|
|
3849
3875
|
//#endregion
|
|
3850
3876
|
//#region src/components/core/useWaveformRenderSampling.ts
|
|
3851
|
-
var
|
|
3852
|
-
function
|
|
3877
|
+
var ha = 120;
|
|
3878
|
+
function ga(e, t) {
|
|
3853
3879
|
let n = e.output;
|
|
3854
3880
|
if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
|
|
3855
3881
|
x: e,
|
|
3856
3882
|
y: n.y[t]
|
|
3857
3883
|
})) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
|
|
3858
3884
|
}
|
|
3859
|
-
function
|
|
3885
|
+
function _a(e, t) {
|
|
3860
3886
|
let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
|
|
3861
3887
|
return {
|
|
3862
3888
|
seriesId: n.seriesId,
|
|
@@ -3878,7 +3904,7 @@ function ya(e, t) {
|
|
|
3878
3904
|
maxPendingRequestCount: 0
|
|
3879
3905
|
};
|
|
3880
3906
|
}
|
|
3881
|
-
function
|
|
3907
|
+
function va(e) {
|
|
3882
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));
|
|
3883
3909
|
if (i <= a) return t.pointsInRange(n, r);
|
|
3884
3910
|
if (a === 1) return t.pointAt(n) ? [t.pointAt(n)] : [];
|
|
@@ -3889,7 +3915,7 @@ function ba(e) {
|
|
|
3889
3915
|
}
|
|
3890
3916
|
return o;
|
|
3891
3917
|
}
|
|
3892
|
-
function
|
|
3918
|
+
function ya(e, t, n, r) {
|
|
3893
3919
|
return {
|
|
3894
3920
|
message: e,
|
|
3895
3921
|
mode: t,
|
|
@@ -3897,8 +3923,8 @@ function xa(e, t, n, r) {
|
|
|
3897
3923
|
seriesIds: r
|
|
3898
3924
|
};
|
|
3899
3925
|
}
|
|
3900
|
-
function
|
|
3901
|
-
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(() => {
|
|
3902
3928
|
let t = e.renderingOptions.value.sampling;
|
|
3903
3929
|
return e.sourceTrackLayouts.value.flatMap((n) => {
|
|
3904
3930
|
let r = n.xScale.domain();
|
|
@@ -3963,13 +3989,13 @@ function Sa(e) {
|
|
|
3963
3989
|
revision: 0,
|
|
3964
3990
|
dataset: t.source.toWorkerDataset()
|
|
3965
3991
|
});
|
|
3966
|
-
!u.isCurrent(n) || !
|
|
3992
|
+
!u.isCurrent(n) || !ma(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
|
|
3967
3993
|
}));
|
|
3968
3994
|
}, x = async (t, n = !1) => {
|
|
3969
3995
|
let o = m.value, c = { ...e.linePointOverrides.value }, l = [], d = [];
|
|
3970
3996
|
if (o.forEach((e) => {
|
|
3971
|
-
let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" &&
|
|
3972
|
-
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({
|
|
3973
3999
|
...e,
|
|
3974
4000
|
request: {
|
|
3975
4001
|
...e.request,
|
|
@@ -3981,7 +4007,7 @@ function Sa(e) {
|
|
|
3981
4007
|
e.linePointOverrides.value = c, v(d);
|
|
3982
4008
|
return;
|
|
3983
4009
|
}
|
|
3984
|
-
if (e.linePointOverrides.value = c, r ??=
|
|
4010
|
+
if (e.linePointOverrides.value = c, r ??= pa(), await b(r, l, t), !u.isCurrent(t)) return;
|
|
3985
4011
|
let f = l.map((e) => ({
|
|
3986
4012
|
...e.request,
|
|
3987
4013
|
revision: a.get(e.request.datasetId) ?? 1
|
|
@@ -3996,22 +4022,22 @@ function Sa(e) {
|
|
|
3996
4022
|
p = e;
|
|
3997
4023
|
} catch (n) {
|
|
3998
4024
|
if (!u.isCurrent(t)) return;
|
|
3999
|
-
y(
|
|
4025
|
+
y(ya(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
|
|
4000
4026
|
return;
|
|
4001
4027
|
}
|
|
4002
4028
|
if (!u.isCurrent(t)) return;
|
|
4003
4029
|
let h = new Map(l.map((e) => [e.series.id, e.source]));
|
|
4004
4030
|
p.results.forEach((e) => {
|
|
4005
|
-
let t = h.get(e.seriesId), n = t ?
|
|
4006
|
-
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(
|
|
4007
|
-
}), 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);
|
|
4008
4034
|
};
|
|
4009
4035
|
return O(h, () => {
|
|
4010
4036
|
f && clearTimeout(f);
|
|
4011
4037
|
let t = p;
|
|
4012
4038
|
p = !0, u.schedule((e) => x(e, t)), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (f = setTimeout(() => {
|
|
4013
4039
|
f = void 0, u.schedule((e) => x(e, !1));
|
|
4014
|
-
},
|
|
4040
|
+
}, ha));
|
|
4015
4041
|
}, { immediate: !0 }), O(e.preparedSeries, () => {
|
|
4016
4042
|
u.cancelPending(), n.value += 1, e.linePointOverrides.value = {}, a.clear(), o.clear(), s.clear(), c.clear(), r?.dispose(), r = void 0;
|
|
4017
4043
|
}, { flush: "sync" }), _(() => {
|
|
@@ -4020,23 +4046,24 @@ function Sa(e) {
|
|
|
4020
4046
|
}
|
|
4021
4047
|
//#endregion
|
|
4022
4048
|
//#region src/components/core/useWaveformChartController.ts
|
|
4023
|
-
function
|
|
4049
|
+
function xa(e, t) {
|
|
4024
4050
|
e.value = t instanceof Element ? t : void 0;
|
|
4025
4051
|
}
|
|
4026
|
-
function
|
|
4052
|
+
function Sa(e, t) {
|
|
4027
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({
|
|
4028
4054
|
points: [],
|
|
4029
4055
|
trackIndex: null,
|
|
4030
4056
|
queryX: null,
|
|
4057
|
+
crosshairXByTrack: {},
|
|
4031
4058
|
position: {
|
|
4032
4059
|
x: 0,
|
|
4033
4060
|
y: 0
|
|
4034
4061
|
}
|
|
4035
|
-
}), _ = 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();
|
|
4036
4063
|
O([() => e.yDomain, () => e.yDomains], () => {
|
|
4037
4064
|
m.value = {}, h.value = {};
|
|
4038
4065
|
}, { deep: !0 });
|
|
4039
|
-
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({
|
|
4040
4067
|
props: e,
|
|
4041
4068
|
observedWidth: o,
|
|
4042
4069
|
observedHeight: s,
|
|
@@ -4044,7 +4071,7 @@ function wa(e, t) {
|
|
|
4044
4071
|
measuredTitleHeight: l,
|
|
4045
4072
|
internalHiddenSeriesIds: E,
|
|
4046
4073
|
paginationBandHeight: u
|
|
4047
|
-
}), { 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({
|
|
4048
4075
|
props: e,
|
|
4049
4076
|
preparedSeries: R,
|
|
4050
4077
|
currentPage: v,
|
|
@@ -4059,7 +4086,7 @@ function wa(e, t) {
|
|
|
4059
4086
|
annotationInteraction: d(D),
|
|
4060
4087
|
linePointOverrides: A
|
|
4061
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;
|
|
4062
|
-
|
|
4089
|
+
ba({
|
|
4063
4090
|
props: e,
|
|
4064
4091
|
emit: t,
|
|
4065
4092
|
instanceId: w,
|
|
@@ -4070,7 +4097,7 @@ function wa(e, t) {
|
|
|
4070
4097
|
}), k(() => {
|
|
4071
4098
|
u.value = ue.value.showPagination && de.value > 1 && B.value <= 520 ? 40 : 0;
|
|
4072
4099
|
});
|
|
4073
|
-
let xe =
|
|
4100
|
+
let xe = jr({
|
|
4074
4101
|
props: e,
|
|
4075
4102
|
emit: t,
|
|
4076
4103
|
svgElement: r,
|
|
@@ -4087,7 +4114,7 @@ function wa(e, t) {
|
|
|
4087
4114
|
isPresentationMode: U,
|
|
4088
4115
|
resolveInitialTrackDomain: ve,
|
|
4089
4116
|
cancelPendingHover: () => Ce.cancelPendingHover()
|
|
4090
|
-
}), X =
|
|
4117
|
+
}), X = fr({
|
|
4091
4118
|
props: e,
|
|
4092
4119
|
emit: t,
|
|
4093
4120
|
container: n,
|
|
@@ -4107,7 +4134,7 @@ function wa(e, t) {
|
|
|
4107
4134
|
chartTopMargin: ie,
|
|
4108
4135
|
activeInteractionMode: me,
|
|
4109
4136
|
isPresentationMode: U
|
|
4110
|
-
}), Se =
|
|
4137
|
+
}), Se = kr({
|
|
4111
4138
|
props: e,
|
|
4112
4139
|
emit: t,
|
|
4113
4140
|
selection: N,
|
|
@@ -4132,7 +4159,7 @@ function wa(e, t) {
|
|
|
4132
4159
|
cancelPendingZoom: xe.cancelPendingZoom,
|
|
4133
4160
|
clearHover: () => Ce.clearHover(),
|
|
4134
4161
|
resolveTrackAtPointer: X.resolveTrackAtPointer
|
|
4135
|
-
}), Ce =
|
|
4162
|
+
}), Ce = pr({
|
|
4136
4163
|
emit: t,
|
|
4137
4164
|
hoverState: g,
|
|
4138
4165
|
suppressHoverUntilMove: _,
|
|
@@ -4147,7 +4174,7 @@ function wa(e, t) {
|
|
|
4147
4174
|
isPresentationMode: U,
|
|
4148
4175
|
updateViewportDrag: Se.updateViewportDrag,
|
|
4149
4176
|
resolveTrackAtPointer: X.resolveTrackAtPointer
|
|
4150
|
-
}), we =
|
|
4177
|
+
}), we = Nr({
|
|
4151
4178
|
props: e,
|
|
4152
4179
|
emit: t,
|
|
4153
4180
|
container: n,
|
|
@@ -4210,34 +4237,34 @@ function wa(e, t) {
|
|
|
4210
4237
|
editorSeriesOptions: j,
|
|
4211
4238
|
clipPathId: w,
|
|
4212
4239
|
goToPage: we.goToPage,
|
|
4213
|
-
setContainer: (e) =>
|
|
4214
|
-
setSvgElement: (e) =>
|
|
4215
|
-
setTitleMeasureElement: (e) =>
|
|
4216
|
-
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)
|
|
4217
4244
|
});
|
|
4218
4245
|
}
|
|
4219
4246
|
//#endregion
|
|
4220
4247
|
//#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
|
|
4221
|
-
var
|
|
4248
|
+
var Ca = ["id"], wa = { class: "waveform-annotation-editor__content" }, Ta = {
|
|
4222
4249
|
class: "waveform-annotation-editor__coordinates",
|
|
4223
4250
|
"aria-label": "标注坐标"
|
|
4224
|
-
},
|
|
4251
|
+
}, Ea = ["aria-invalid"], Da = {
|
|
4225
4252
|
class: "waveform-annotation-editor__coordinate-value",
|
|
4226
4253
|
"aria-hidden": "true"
|
|
4227
|
-
},
|
|
4254
|
+
}, Oa = ["id"], ka = {
|
|
4228
4255
|
key: 0,
|
|
4229
4256
|
class: "waveform-annotation-editor__series",
|
|
4230
4257
|
"aria-label": "标注所属波形"
|
|
4231
|
-
},
|
|
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 = {
|
|
4232
4259
|
class: "waveform-annotation-editor__color-field",
|
|
4233
4260
|
title: "调整标注边框色和透明度"
|
|
4234
|
-
},
|
|
4261
|
+
}, za = {
|
|
4235
4262
|
class: "waveform-annotation-editor__color-field",
|
|
4236
4263
|
title: "调整标注文字色和透明度"
|
|
4237
|
-
},
|
|
4264
|
+
}, Ba = {
|
|
4238
4265
|
class: "waveform-annotation-editor__color-field",
|
|
4239
4266
|
title: "调整标注背景色和透明度"
|
|
4240
|
-
},
|
|
4267
|
+
}, Va = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4241
4268
|
__name: "WaveformAnnotationEditor",
|
|
4242
4269
|
props: {
|
|
4243
4270
|
annotation: {},
|
|
@@ -4308,9 +4335,9 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4308
4335
|
onCancel: o[4] ||= (e) => p("cancel"),
|
|
4309
4336
|
onOk: B
|
|
4310
4337
|
}, {
|
|
4311
|
-
title: A(() => [a("span", { id: E(g) }, w(d.mode === "add" ? "添加标注" : "编辑标注"), 9,
|
|
4312
|
-
default: A(() => [a("div",
|
|
4313
|
-
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, [
|
|
4314
4341
|
a("label", {
|
|
4315
4342
|
class: "waveform-annotation-editor__coordinate-input",
|
|
4316
4343
|
"aria-invalid": !!N.value
|
|
@@ -4333,26 +4360,26 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4333
4360
|
"aria-invalid",
|
|
4334
4361
|
"aria-describedby"
|
|
4335
4362
|
]),
|
|
4336
|
-
a("code",
|
|
4337
|
-
], 8,
|
|
4363
|
+
a("code", Da, w(y.value), 1)
|
|
4364
|
+
], 8, Ea),
|
|
4338
4365
|
N.value ? (v(), i("p", {
|
|
4339
4366
|
key: 0,
|
|
4340
4367
|
id: `${E(g)}-time-error`,
|
|
4341
4368
|
class: "waveform-annotation-editor__coordinate-error",
|
|
4342
4369
|
role: "alert"
|
|
4343
|
-
}, w(N.value), 9,
|
|
4370
|
+
}, w(N.value), 9, Oa)) : r("", !0),
|
|
4344
4371
|
a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, w(E(Ot)(d.annotation.y)), 1)])
|
|
4345
4372
|
]),
|
|
4346
4373
|
o[13] ||= a("p", {
|
|
4347
4374
|
class: "waveform-annotation-editor__coordinate-hint",
|
|
4348
4375
|
role: "note"
|
|
4349
4376
|
}, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
|
|
4350
|
-
I.value ? (v(), i("label",
|
|
4377
|
+
I.value ? (v(), i("label", ka, [
|
|
4351
4378
|
a("i", {
|
|
4352
4379
|
style: m({ backgroundColor: I.value.color }),
|
|
4353
4380
|
"aria-hidden": "true"
|
|
4354
4381
|
}, null, 4),
|
|
4355
|
-
a("span",
|
|
4382
|
+
a("span", Aa, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, w(I.value.name), 1)]),
|
|
4356
4383
|
d.seriesOptions?.length ? (v(), i("select", {
|
|
4357
4384
|
key: 0,
|
|
4358
4385
|
value: d.annotation.seriesId,
|
|
@@ -4361,9 +4388,9 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4361
4388
|
}, [(v(!0), i(e, null, x(d.seriesOptions, (e) => (v(), i("option", {
|
|
4362
4389
|
key: e.seriesId,
|
|
4363
4390
|
value: e.seriesId
|
|
4364
|
-
}, 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)
|
|
4365
4392
|
])) : r("", !0),
|
|
4366
|
-
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", {
|
|
4367
4394
|
ref_key: "textarea",
|
|
4368
4395
|
ref: h,
|
|
4369
4396
|
"onUpdate:modelValue": o[0] ||= (e) => _.value = e,
|
|
@@ -4372,10 +4399,10 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4372
4399
|
"aria-label": "标注文本",
|
|
4373
4400
|
placeholder: "输入这处波形的说明",
|
|
4374
4401
|
onKeydown: V
|
|
4375
|
-
}, null, 40,
|
|
4376
|
-
a("fieldset",
|
|
4402
|
+
}, null, 40, Ia), [[D, _.value]])]),
|
|
4403
|
+
a("fieldset", La, [
|
|
4377
4404
|
o[12] ||= a("legend", null, "颜色与透明度", -1),
|
|
4378
|
-
a("label",
|
|
4405
|
+
a("label", Ra, [o[9] ||= a("span", null, "边框色", -1), s(E(u), {
|
|
4379
4406
|
"pure-color": C.value,
|
|
4380
4407
|
"onUpdate:pureColor": o[1] ||= (e) => C.value = e,
|
|
4381
4408
|
"aria-label": "标注边框色",
|
|
@@ -4385,7 +4412,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4385
4412
|
"disable-alpha": !1,
|
|
4386
4413
|
"blur-close": !0
|
|
4387
4414
|
}, null, 8, ["pure-color"])]),
|
|
4388
|
-
a("label",
|
|
4415
|
+
a("label", za, [o[10] ||= a("span", null, "文字色", -1), s(E(u), {
|
|
4389
4416
|
"pure-color": T.value,
|
|
4390
4417
|
"onUpdate:pureColor": o[2] ||= (e) => T.value = e,
|
|
4391
4418
|
"aria-label": "标注文字色",
|
|
@@ -4395,7 +4422,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4395
4422
|
"disable-alpha": !1,
|
|
4396
4423
|
"blur-close": !0
|
|
4397
4424
|
}, null, 8, ["pure-color"])]),
|
|
4398
|
-
a("label",
|
|
4425
|
+
a("label", Ba, [o[11] ||= a("span", null, "背景色", -1), s(E(u), {
|
|
4399
4426
|
"pure-color": k.value,
|
|
4400
4427
|
"onUpdate:pureColor": o[3] ||= (e) => k.value = e,
|
|
4401
4428
|
"aria-label": "标注背景色",
|
|
@@ -4410,13 +4437,13 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4410
4437
|
_: 1
|
|
4411
4438
|
}, 8, ["ok-button-props"]));
|
|
4412
4439
|
}
|
|
4413
|
-
}), [["__scopeId", "data-v-01ecd3a4"]]),
|
|
4440
|
+
}), [["__scopeId", "data-v-01ecd3a4"]]), Ha = { class: "waveform-tooltip__series-content" }, Ua = { class: "waveform-tooltip__series-label" }, Wa = {
|
|
4414
4441
|
key: 0,
|
|
4415
4442
|
class: "waveform-tooltip__value"
|
|
4416
|
-
},
|
|
4443
|
+
}, Ga = {
|
|
4417
4444
|
key: 1,
|
|
4418
4445
|
class: "waveform-tooltip__value waveform-tooltip__value--missing"
|
|
4419
|
-
},
|
|
4446
|
+
}, Ka = 12, qa = 8, Ja = 238, Ya = 560, Xa = 20, Za = 20, Qa = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4420
4447
|
__name: "WaveformTooltip",
|
|
4421
4448
|
props: {
|
|
4422
4449
|
visible: { type: Boolean },
|
|
@@ -4430,7 +4457,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4430
4457
|
setup(n) {
|
|
4431
4458
|
let s = n;
|
|
4432
4459
|
function c(e, t) {
|
|
4433
|
-
let n = Math.max(1, t -
|
|
4460
|
+
let n = Math.max(1, t - Xa - 14), r = Math.max(1, Math.floor(n / 7.2));
|
|
4434
4461
|
return Math.max(1, Math.ceil([...e].length / r));
|
|
4435
4462
|
}
|
|
4436
4463
|
function l(e) {
|
|
@@ -4438,18 +4465,18 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4438
4465
|
return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} ${t}`;
|
|
4439
4466
|
}
|
|
4440
4467
|
function u(e) {
|
|
4441
|
-
return 16 +
|
|
4468
|
+
return 16 + Za * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
|
|
4442
4469
|
}
|
|
4443
4470
|
let d = t(() => {
|
|
4444
4471
|
if (!s.visible || !s.hoveredPoint) return { display: "none" };
|
|
4445
|
-
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 ? {
|
|
4446
4473
|
left: `${e}px`,
|
|
4447
|
-
maxWidth: `${Math.min(
|
|
4448
|
-
} : t >=
|
|
4449
|
-
right: `${s.containerWidth - s.position.x +
|
|
4450
|
-
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`
|
|
4451
4478
|
} : {
|
|
4452
|
-
left: `${
|
|
4479
|
+
left: `${qa}px`,
|
|
4453
4480
|
maxWidth: `${i}px`
|
|
4454
4481
|
}, o = Number.parseFloat(a.maxWidth);
|
|
4455
4482
|
return {
|
|
@@ -4464,9 +4491,9 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4464
4491
|
}, [(v(!0), i(e, null, x(n.seriesPoints, (t) => (v(), i("span", {
|
|
4465
4492
|
key: `${t.trackIndex}-${t.name}`,
|
|
4466
4493
|
class: "waveform-tooltip__series waveform-chart__tooltip-series"
|
|
4467
|
-
}, [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);
|
|
4468
4495
|
}
|
|
4469
|
-
}), [["__scopeId", "data-v-1ae3316b"]]),
|
|
4496
|
+
}), [["__scopeId", "data-v-1ae3316b"]]), $a = /* @__PURE__ */ l({
|
|
4470
4497
|
__name: "WaveformHoverHost",
|
|
4471
4498
|
props: {
|
|
4472
4499
|
state: {},
|
|
@@ -4477,7 +4504,7 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4477
4504
|
},
|
|
4478
4505
|
setup(e) {
|
|
4479
4506
|
let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
|
|
4480
|
-
return (t, r) => (v(), n(
|
|
4507
|
+
return (t, r) => (v(), n(Qa, {
|
|
4481
4508
|
visible: e.visible && i.value !== null,
|
|
4482
4509
|
position: e.state.position,
|
|
4483
4510
|
"time-unit": e.timeUnit,
|
|
@@ -4495,16 +4522,16 @@ var Ta = ["id"], Ea = { class: "waveform-annotation-editor__content" }, Da = {
|
|
|
4495
4522
|
"container-height"
|
|
4496
4523
|
]));
|
|
4497
4524
|
}
|
|
4498
|
-
}),
|
|
4525
|
+
}), eo = 13, to = 2, no = 14, ro = 8, io = 24, ao = {
|
|
4499
4526
|
circle: te,
|
|
4500
4527
|
square: re,
|
|
4501
4528
|
triangle: ie,
|
|
4502
4529
|
diamond: ne
|
|
4503
4530
|
};
|
|
4504
|
-
function
|
|
4505
|
-
return e === "none" ? null : ee().type(
|
|
4531
|
+
function oo(e, t = 48) {
|
|
4532
|
+
return e === "none" ? null : ee().type(ao[e]).size(t)() ?? null;
|
|
4506
4533
|
}
|
|
4507
|
-
function
|
|
4534
|
+
function so(e, t, n = 48) {
|
|
4508
4535
|
if (e === "none" || t.length === 0) return null;
|
|
4509
4536
|
if (e === "circle") {
|
|
4510
4537
|
let e = Math.sqrt(n / Math.PI);
|
|
@@ -4521,24 +4548,24 @@ function lo(e, t, n = 48) {
|
|
|
4521
4548
|
let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
|
|
4522
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("");
|
|
4523
4550
|
}
|
|
4524
|
-
function
|
|
4551
|
+
function co(e) {
|
|
4525
4552
|
return e === "none" ? null : "M1 8H25";
|
|
4526
4553
|
}
|
|
4527
|
-
function
|
|
4554
|
+
function lo(e) {
|
|
4528
4555
|
if (e === "dashed") return "8 5";
|
|
4529
4556
|
if (e === "dash-dot") return "8 5 1.5 5";
|
|
4530
4557
|
}
|
|
4531
|
-
function
|
|
4532
|
-
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;
|
|
4533
4560
|
return [
|
|
4534
|
-
`M${n} ${
|
|
4535
|
-
`M${
|
|
4536
|
-
`M${n} ${
|
|
4561
|
+
`M${n} ${to}H${r}`,
|
|
4562
|
+
`M${eo} ${to}V${no}`,
|
|
4563
|
+
`M${n} ${no}H${r}`
|
|
4537
4564
|
].join("");
|
|
4538
4565
|
}
|
|
4539
4566
|
//#endregion
|
|
4540
4567
|
//#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
|
|
4541
|
-
var
|
|
4568
|
+
var fo = ["clip-path"], po = ["data-series-id", "data-series-name"], mo = [
|
|
4542
4569
|
"data-series-id",
|
|
4543
4570
|
"data-series-name",
|
|
4544
4571
|
"data-y-axis-index",
|
|
@@ -4547,11 +4574,11 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4547
4574
|
"d",
|
|
4548
4575
|
"stroke",
|
|
4549
4576
|
"stroke-dasharray"
|
|
4550
|
-
],
|
|
4577
|
+
], ho = ["data-series-id"], go = [
|
|
4551
4578
|
"d",
|
|
4552
4579
|
"stroke",
|
|
4553
4580
|
"stroke-width"
|
|
4554
|
-
],
|
|
4581
|
+
], _o = ["data-series-id", "data-point-type"], vo = ["d", "fill"], yo = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
4555
4582
|
__name: "WaveformSeriesLayer",
|
|
4556
4583
|
props: {
|
|
4557
4584
|
track: {},
|
|
@@ -4559,7 +4586,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4559
4586
|
},
|
|
4560
4587
|
setup(n) {
|
|
4561
4588
|
let a = n, o = t(() => a.track.seriesPaths.map((e) => {
|
|
4562
|
-
let t =
|
|
4589
|
+
let t = so(e.series.pointType, e.pointRenderPoints.map((t) => ({
|
|
4563
4590
|
x: a.track.xScale(t.x),
|
|
4564
4591
|
y: e.yScale(t.y)
|
|
4565
4592
|
}))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
|
|
@@ -4596,8 +4623,8 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4596
4623
|
"data-line-style": e.series.lineStyle,
|
|
4597
4624
|
d: e.path,
|
|
4598
4625
|
stroke: e.series.color,
|
|
4599
|
-
"stroke-dasharray": E(
|
|
4600
|
-
}, null, 8,
|
|
4626
|
+
"stroke-dasharray": E(lo)(e.series.lineStyle)
|
|
4627
|
+
}, null, 8, mo)) : r("", !0),
|
|
4601
4628
|
e.series.errorBar.visible ? (v(), i("g", {
|
|
4602
4629
|
key: 1,
|
|
4603
4630
|
class: "waveform-track__error-bars waveform-chart__error-bars",
|
|
@@ -4608,7 +4635,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4608
4635
|
d: e.errorBarPath,
|
|
4609
4636
|
stroke: e.series.errorBar.color || e.series.color,
|
|
4610
4637
|
"stroke-width": e.series.errorBar.width
|
|
4611
|
-
}, null, 8,
|
|
4638
|
+
}, null, 8, go)) : r("", !0)], 8, ho)) : r("", !0),
|
|
4612
4639
|
e.series.pointType === "none" ? r("", !0) : (v(), i("g", {
|
|
4613
4640
|
key: 2,
|
|
4614
4641
|
class: "waveform-track__points waveform-chart__points",
|
|
@@ -4619,28 +4646,28 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4619
4646
|
class: "waveform-track__point waveform-chart__point",
|
|
4620
4647
|
d: e.pointPath,
|
|
4621
4648
|
fill: e.series.color
|
|
4622
|
-
}, null, 8,
|
|
4623
|
-
], 8,
|
|
4649
|
+
}, null, 8, vo)) : r("", !0)], 8, _o))
|
|
4650
|
+
], 8, po))), 128))], 8, fo)) : r("", !0);
|
|
4624
4651
|
}
|
|
4625
|
-
}), [["__scopeId", "data-v-42a3fd47"]]),
|
|
4652
|
+
}), [["__scopeId", "data-v-42a3fd47"]]), bo = ["transform"], xo = ["transform"], So = {
|
|
4626
4653
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
|
|
4627
4654
|
x: "0",
|
|
4628
4655
|
y: "7",
|
|
4629
4656
|
dy: "0.71em",
|
|
4630
4657
|
"text-anchor": "start"
|
|
4631
|
-
},
|
|
4658
|
+
}, Co = ["x"], wo = [
|
|
4632
4659
|
"data-y-axis-index",
|
|
4633
4660
|
"data-y-axis-side",
|
|
4634
4661
|
"transform"
|
|
4635
|
-
],
|
|
4662
|
+
], To = { key: 2 }, Eo = [
|
|
4636
4663
|
"x",
|
|
4637
4664
|
"y",
|
|
4638
4665
|
"width"
|
|
4639
|
-
],
|
|
4666
|
+
], Do = ["fill", "transform"], Oo = ["data-y-axis-title-index"], ko = [
|
|
4640
4667
|
"x",
|
|
4641
4668
|
"y",
|
|
4642
4669
|
"width"
|
|
4643
|
-
],
|
|
4670
|
+
], Ao = ["fill", "transform"], jo = /* @__PURE__ */ l({
|
|
4644
4671
|
__name: "WaveformTrackAxes",
|
|
4645
4672
|
props: {
|
|
4646
4673
|
track: {},
|
|
@@ -4700,7 +4727,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4700
4727
|
ref: o,
|
|
4701
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 }]),
|
|
4702
4729
|
transform: `translate(0, ${t.track.height})`
|
|
4703
|
-
}, null, 10,
|
|
4730
|
+
}, null, 10, bo)) : r("", !0),
|
|
4704
4731
|
t.track.showXAxis ? (v(), i("g", {
|
|
4705
4732
|
key: 1,
|
|
4706
4733
|
class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
|
|
@@ -4708,13 +4735,13 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4708
4735
|
"font-family": "sans-serif",
|
|
4709
4736
|
"font-size": "10",
|
|
4710
4737
|
"aria-hidden": "true"
|
|
4711
|
-
}, [a("text",
|
|
4738
|
+
}, [a("text", So, w(t.track.endpointLabels.start), 1), a("text", {
|
|
4712
4739
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
|
|
4713
4740
|
x: t.track.width ?? t.innerWidth,
|
|
4714
4741
|
y: "7",
|
|
4715
4742
|
dy: "0.71em",
|
|
4716
4743
|
"text-anchor": "end"
|
|
4717
|
-
}, w(t.track.endpointLabels.end), 9,
|
|
4744
|
+
}, w(t.track.endpointLabels.end), 9, Co)], 8, xo)) : r("", !0),
|
|
4718
4745
|
(v(!0), i(e, null, x(t.track.isEmpty ? [] : t.track.yAxes, (e) => (v(), i("g", {
|
|
4719
4746
|
key: `y-axis-${t.track.index}-${e.index}`,
|
|
4720
4747
|
ref_for: !0,
|
|
@@ -4723,21 +4750,21 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4723
4750
|
"data-y-axis-index": e.index,
|
|
4724
4751
|
"data-y-axis-side": e.side,
|
|
4725
4752
|
transform: `translate(${e.x}, 0)`
|
|
4726
|
-
}, null, 10,
|
|
4727
|
-
!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", {
|
|
4728
4755
|
class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
|
|
4729
4756
|
x: t.track.yAxisLabelX - E(12) / 2,
|
|
4730
4757
|
y: t.track.height / 2 - 40,
|
|
4731
4758
|
width: E(12),
|
|
4732
4759
|
height: "80",
|
|
4733
4760
|
rx: "2"
|
|
4734
|
-
}, null, 8,
|
|
4761
|
+
}, null, 8, Eo), a("text", {
|
|
4735
4762
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4736
4763
|
fill: t.track.series?.color,
|
|
4737
4764
|
transform: `translate(${t.track.yAxisLabelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4738
4765
|
"text-anchor": "middle",
|
|
4739
4766
|
"dominant-baseline": "central"
|
|
4740
|
-
}, w(t.track.series ? c(t.track.series) : ""), 9,
|
|
4767
|
+
}, w(t.track.series ? c(t.track.series) : ""), 9, Do)])) : r("", !0),
|
|
4741
4768
|
(v(!0), i(e, null, x(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (v(), i("g", {
|
|
4742
4769
|
key: `y-axis-title-${t.track.index}-${e.index}`,
|
|
4743
4770
|
class: "waveform-track__multi-axis-title",
|
|
@@ -4749,40 +4776,40 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4749
4776
|
width: E(12),
|
|
4750
4777
|
height: "80",
|
|
4751
4778
|
rx: "2"
|
|
4752
|
-
}, null, 8,
|
|
4779
|
+
}, null, 8, ko), a("text", {
|
|
4753
4780
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4754
4781
|
fill: e.seriesList[0].color,
|
|
4755
4782
|
transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4756
4783
|
"text-anchor": "middle",
|
|
4757
4784
|
"dominant-baseline": "central"
|
|
4758
|
-
}, w(c(e.seriesList[0])), 9,
|
|
4785
|
+
}, w(c(e.seriesList[0])), 9, Ao)], 8, Oo))), 128))
|
|
4759
4786
|
], 64));
|
|
4760
4787
|
}
|
|
4761
|
-
}),
|
|
4788
|
+
}), Mo = [
|
|
4762
4789
|
"width",
|
|
4763
4790
|
"height",
|
|
4764
4791
|
"fill"
|
|
4765
|
-
],
|
|
4792
|
+
], No = ["clip-path"], Po = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, Fo = [
|
|
4766
4793
|
"stroke",
|
|
4767
4794
|
"x1",
|
|
4768
4795
|
"x2",
|
|
4769
4796
|
"y2"
|
|
4770
|
-
],
|
|
4797
|
+
], Io = [
|
|
4771
4798
|
"stroke",
|
|
4772
4799
|
"x2",
|
|
4773
4800
|
"y1",
|
|
4774
4801
|
"y2"
|
|
4775
|
-
],
|
|
4802
|
+
], Lo = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Ro = [
|
|
4776
4803
|
"stroke",
|
|
4777
4804
|
"x1",
|
|
4778
4805
|
"x2",
|
|
4779
4806
|
"y2"
|
|
4780
|
-
],
|
|
4807
|
+
], zo = [
|
|
4781
4808
|
"stroke",
|
|
4782
4809
|
"x2",
|
|
4783
4810
|
"y1",
|
|
4784
4811
|
"y2"
|
|
4785
|
-
],
|
|
4812
|
+
], Bo = ["clip-path"], Vo = [
|
|
4786
4813
|
"data-y-axis-index",
|
|
4787
4814
|
"x2",
|
|
4788
4815
|
"y1",
|
|
@@ -4790,7 +4817,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4790
4817
|
"stroke",
|
|
4791
4818
|
"stroke-width",
|
|
4792
4819
|
"stroke-dasharray"
|
|
4793
|
-
],
|
|
4820
|
+
], Ho = ["x", "y"], Uo = /* @__PURE__ */ l({
|
|
4794
4821
|
__name: "WaveformTrackBackdrop",
|
|
4795
4822
|
props: {
|
|
4796
4823
|
track: {},
|
|
@@ -4815,12 +4842,12 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4815
4842
|
height: t.track.height,
|
|
4816
4843
|
fill: t.frameStyle.backgroundColor,
|
|
4817
4844
|
"aria-hidden": "true"
|
|
4818
|
-
}, null, 8,
|
|
4845
|
+
}, null, 8, Mo)) : r("", !0),
|
|
4819
4846
|
!t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (v(), i("g", {
|
|
4820
4847
|
key: 1,
|
|
4821
4848
|
"clip-path": `url(#${t.clipPathId}-${t.track.index})`,
|
|
4822
4849
|
"aria-hidden": "true"
|
|
4823
|
-
}, [a("g",
|
|
4850
|
+
}, [a("g", Po, [t.track.gridLines.vertical ? (v(!0), i(e, { key: 0 }, x(t.track.xMinorTicks, (e) => (v(), i("line", {
|
|
4824
4851
|
key: `x-minor-${t.track.index}-${e}`,
|
|
4825
4852
|
"data-grid-direction": "vertical",
|
|
4826
4853
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -4828,7 +4855,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4828
4855
|
x2: t.track.xScale(e),
|
|
4829
4856
|
y1: "0",
|
|
4830
4857
|
y2: t.track.height
|
|
4831
|
-
}, 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", {
|
|
4832
4859
|
key: `y-minor-${t.track.index}-${e}`,
|
|
4833
4860
|
"data-grid-direction": "horizontal",
|
|
4834
4861
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -4836,7 +4863,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4836
4863
|
x2: t.track.width ?? t.innerWidth,
|
|
4837
4864
|
y1: t.track.yScale(e),
|
|
4838
4865
|
y2: t.track.yScale(e)
|
|
4839
|
-
}, 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", {
|
|
4840
4867
|
key: `x-major-${t.track.index}-${e}`,
|
|
4841
4868
|
"data-grid-direction": "vertical",
|
|
4842
4869
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -4844,7 +4871,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4844
4871
|
x2: t.track.xScale(e),
|
|
4845
4872
|
y1: "0",
|
|
4846
4873
|
y2: t.track.height
|
|
4847
|
-
}, 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", {
|
|
4848
4875
|
key: `y-major-${t.track.index}-${e}`,
|
|
4849
4876
|
"data-grid-direction": "horizontal",
|
|
4850
4877
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -4852,7 +4879,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4852
4879
|
x2: t.track.width ?? t.innerWidth,
|
|
4853
4880
|
y1: t.track.yScale(e),
|
|
4854
4881
|
y2: t.track.yScale(e)
|
|
4855
|
-
}, null, 8,
|
|
4882
|
+
}, null, 8, zo))), 128)) : r("", !0)])], 8, No)) : r("", !0),
|
|
4856
4883
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.zeroLine.visible && !t.cleanView ? (v(), i("g", {
|
|
4857
4884
|
key: 2,
|
|
4858
4885
|
class: "waveform-track__zero-lines waveform-chart__zero-lines",
|
|
@@ -4869,7 +4896,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4869
4896
|
stroke: t.zeroLine.color,
|
|
4870
4897
|
"stroke-width": t.zeroLine.width,
|
|
4871
4898
|
"stroke-dasharray": t.zeroLine.dash || void 0
|
|
4872
|
-
}, null, 8,
|
|
4899
|
+
}, null, 8, Vo))], 64))), 128))], 8, Bo)) : r("", !0),
|
|
4873
4900
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (v(), i("text", {
|
|
4874
4901
|
key: 3,
|
|
4875
4902
|
class: "waveform-track__watermark waveform-chart__watermark",
|
|
@@ -4879,10 +4906,10 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4879
4906
|
"text-anchor": "middle",
|
|
4880
4907
|
"dominant-baseline": "central",
|
|
4881
4908
|
"aria-hidden": "true"
|
|
4882
|
-
}, w(t.frameNumber), 13,
|
|
4909
|
+
}, w(t.frameNumber), 13, Ho)) : r("", !0)
|
|
4883
4910
|
], 64));
|
|
4884
4911
|
}
|
|
4885
|
-
}),
|
|
4912
|
+
}), Wo = [
|
|
4886
4913
|
"data-track-index",
|
|
4887
4914
|
"data-track-id",
|
|
4888
4915
|
"data-track-empty",
|
|
@@ -4892,19 +4919,19 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4892
4919
|
"data-track-top",
|
|
4893
4920
|
"data-track-height",
|
|
4894
4921
|
"transform"
|
|
4895
|
-
],
|
|
4922
|
+
], Go = [
|
|
4896
4923
|
"width",
|
|
4897
4924
|
"height",
|
|
4898
4925
|
"stroke",
|
|
4899
4926
|
"stroke-width",
|
|
4900
4927
|
"stroke-dasharray",
|
|
4901
4928
|
"stroke-linecap"
|
|
4902
|
-
],
|
|
4929
|
+
], Ko = [
|
|
4903
4930
|
"data-interactive",
|
|
4904
4931
|
"data-independent-overlay-index",
|
|
4905
4932
|
"width",
|
|
4906
4933
|
"height"
|
|
4907
|
-
],
|
|
4934
|
+
], qo = ["x", "y"], Jo = /* @__PURE__ */ l({
|
|
4908
4935
|
__name: "WaveformTrack",
|
|
4909
4936
|
props: {
|
|
4910
4937
|
track: {},
|
|
@@ -4964,7 +4991,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4964
4991
|
"data-track-height": e.track.height,
|
|
4965
4992
|
transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
|
|
4966
4993
|
}, [
|
|
4967
|
-
s(
|
|
4994
|
+
s(Uo, {
|
|
4968
4995
|
track: e.track,
|
|
4969
4996
|
"clip-path-id": e.clipPathId,
|
|
4970
4997
|
"inner-width": e.innerWidth,
|
|
@@ -4981,7 +5008,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
4981
5008
|
"frame-style",
|
|
4982
5009
|
"zero-line"
|
|
4983
5010
|
]),
|
|
4984
|
-
s(
|
|
5011
|
+
s(jo, {
|
|
4985
5012
|
track: e.track,
|
|
4986
5013
|
"inner-width": e.innerWidth,
|
|
4987
5014
|
"clean-view": e.cleanView,
|
|
@@ -5007,8 +5034,8 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5007
5034
|
"stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
|
|
5008
5035
|
"stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
|
|
5009
5036
|
"aria-hidden": "true"
|
|
5010
|
-
}, null, 8,
|
|
5011
|
-
s(
|
|
5037
|
+
}, null, 8, Go)),
|
|
5038
|
+
s(yo, {
|
|
5012
5039
|
track: e.track,
|
|
5013
5040
|
"clip-path-id": e.clipPathId
|
|
5014
5041
|
}, null, 8, ["track", "clip-path-id"]),
|
|
@@ -5030,7 +5057,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5030
5057
|
onPointerleave: n[4] ||= (e) => o("pointer-leave"),
|
|
5031
5058
|
onClick: n[5] ||= (e) => o("click", e),
|
|
5032
5059
|
onContextmenu: n[6] ||= (e) => o("contextmenu", e)
|
|
5033
|
-
}, null, 42,
|
|
5060
|
+
}, null, 42, Ko)) : r("", !0),
|
|
5034
5061
|
!e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (v(), i("text", {
|
|
5035
5062
|
key: 2,
|
|
5036
5063
|
class: "waveform-track__no-visible-series",
|
|
@@ -5038,33 +5065,33 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5038
5065
|
y: e.track.height / 2,
|
|
5039
5066
|
"text-anchor": "middle",
|
|
5040
5067
|
"dominant-baseline": "central"
|
|
5041
|
-
}, " 暂无可见曲线 ", 8,
|
|
5042
|
-
], 10,
|
|
5068
|
+
}, " 暂无可见曲线 ", 8, qo)) : r("", !0)
|
|
5069
|
+
], 10, Wo));
|
|
5043
5070
|
}
|
|
5044
|
-
}),
|
|
5071
|
+
}), Yo = [
|
|
5045
5072
|
"width",
|
|
5046
5073
|
"height",
|
|
5047
5074
|
"data-position",
|
|
5048
5075
|
"data-orientation"
|
|
5049
|
-
],
|
|
5076
|
+
], Xo = [
|
|
5050
5077
|
"disabled",
|
|
5051
5078
|
"aria-pressed",
|
|
5052
5079
|
"aria-label",
|
|
5053
5080
|
"onClick"
|
|
5054
|
-
],
|
|
5081
|
+
], Zo = [
|
|
5055
5082
|
"data-line-type",
|
|
5056
5083
|
"data-line-style",
|
|
5057
5084
|
"data-point-type",
|
|
5058
5085
|
"data-error-bar-visible"
|
|
5059
|
-
],
|
|
5086
|
+
], Qo = [
|
|
5060
5087
|
"d",
|
|
5061
5088
|
"stroke",
|
|
5062
5089
|
"stroke-dasharray"
|
|
5063
|
-
],
|
|
5090
|
+
], $o = [
|
|
5064
5091
|
"d",
|
|
5065
5092
|
"stroke",
|
|
5066
5093
|
"stroke-width"
|
|
5067
|
-
],
|
|
5094
|
+
], es = ["d", "fill"], ts = ["title"], ns = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
5068
5095
|
__name: "WaveformLegend",
|
|
5069
5096
|
props: {
|
|
5070
5097
|
series: {},
|
|
@@ -5122,45 +5149,45 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5122
5149
|
"data-point-type": e.pointType,
|
|
5123
5150
|
"data-error-bar-visible": e.errorBar.visible || void 0
|
|
5124
5151
|
}, [
|
|
5125
|
-
E(
|
|
5152
|
+
E(co)(e.lineType) ? (v(), i("path", {
|
|
5126
5153
|
key: 0,
|
|
5127
5154
|
class: "waveform-legend__line",
|
|
5128
|
-
d: E(
|
|
5155
|
+
d: E(co)(e.lineType) ?? void 0,
|
|
5129
5156
|
stroke: e.color,
|
|
5130
|
-
"stroke-dasharray": E(
|
|
5157
|
+
"stroke-dasharray": E(lo)(e.lineStyle),
|
|
5131
5158
|
"stroke-width": "1.5",
|
|
5132
5159
|
fill: "none"
|
|
5133
|
-
}, null, 8,
|
|
5160
|
+
}, null, 8, Qo)) : r("", !0),
|
|
5134
5161
|
e.errorBar.visible ? (v(), i("path", {
|
|
5135
5162
|
key: 1,
|
|
5136
5163
|
class: "waveform-legend__error-bar",
|
|
5137
|
-
d: E(
|
|
5164
|
+
d: E(uo)(e.errorBar.capWidth),
|
|
5138
5165
|
stroke: e.errorBar.color || e.color,
|
|
5139
5166
|
"stroke-width": e.errorBar.width,
|
|
5140
5167
|
"stroke-linecap": "butt",
|
|
5141
5168
|
fill: "none"
|
|
5142
|
-
}, null, 8,
|
|
5169
|
+
}, null, 8, $o)) : r("", !0),
|
|
5143
5170
|
e.pointType === "none" ? r("", !0) : (v(), i("path", {
|
|
5144
5171
|
key: 2,
|
|
5145
5172
|
class: "waveform-legend__point",
|
|
5146
|
-
d: E(
|
|
5173
|
+
d: E(oo)(e.pointType, 30) ?? void 0,
|
|
5147
5174
|
fill: e.color,
|
|
5148
5175
|
transform: "translate(13 8)"
|
|
5149
|
-
}, null, 8,
|
|
5150
|
-
], 8,
|
|
5176
|
+
}, null, 8, es))
|
|
5177
|
+
], 8, Zo)), a("span", {
|
|
5151
5178
|
class: "waveform-legend__label",
|
|
5152
5179
|
title: e.name
|
|
5153
|
-
}, w(e.name), 9,
|
|
5180
|
+
}, w(e.name), 9, ts)], 10, Xo))), 128))], 6)], 2)], 8, Yo));
|
|
5154
5181
|
}
|
|
5155
|
-
}), [["__scopeId", "data-v-2ae12e71"]]),
|
|
5182
|
+
}), [["__scopeId", "data-v-2ae12e71"]]), rs = {
|
|
5156
5183
|
class: "waveform-chart__hover-layer",
|
|
5157
5184
|
"pointer-events": "none",
|
|
5158
5185
|
"aria-hidden": "true"
|
|
5159
|
-
},
|
|
5186
|
+
}, is = ["clip-path", "transform"], as = [
|
|
5160
5187
|
"x1",
|
|
5161
5188
|
"x2",
|
|
5162
5189
|
"y2"
|
|
5163
|
-
],
|
|
5190
|
+
], os = /*#__PURE__*/ et(/* @__PURE__ */ l({
|
|
5164
5191
|
__name: "WaveformHoverLayer",
|
|
5165
5192
|
props: {
|
|
5166
5193
|
state: {},
|
|
@@ -5169,11 +5196,14 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5169
5196
|
visible: { type: Boolean }
|
|
5170
5197
|
},
|
|
5171
5198
|
setup(n) {
|
|
5172
|
-
let r = n, o = t(() => !r.visible || r.state.queryX === null ? [] : r.tracks.flatMap((e) =>
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5176
|
-
|
|
5199
|
+
let r = n, o = t(() => !r.visible || r.state.queryX === null ? [] : r.tracks.flatMap((e) => {
|
|
5200
|
+
let t = r.state.trackIndex === null || r.state.trackIndex === e.index, n = r.state.crosshairXByTrack[e.index];
|
|
5201
|
+
return t && !e.isEmpty && e.hasVisibleSeries && n !== void 0 ? [{
|
|
5202
|
+
track: e,
|
|
5203
|
+
x: e.xScale(n)
|
|
5204
|
+
}] : [];
|
|
5205
|
+
}));
|
|
5206
|
+
return (t, r) => (v(), i("g", rs, [(v(!0), i(e, null, x(o.value, (e) => (v(), i("g", {
|
|
5177
5207
|
key: e.track.index,
|
|
5178
5208
|
class: "waveform-track__crosshair waveform-chart__crosshair",
|
|
5179
5209
|
"clip-path": `url(#${n.clipPathId}-${e.track.index})`,
|
|
@@ -5183,9 +5213,9 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5183
5213
|
x2: e.x,
|
|
5184
5214
|
y1: "0",
|
|
5185
5215
|
y2: e.track.height
|
|
5186
|
-
}, null, 8,
|
|
5216
|
+
}, null, 8, as)], 8, is))), 128))]));
|
|
5187
5217
|
}
|
|
5188
|
-
}), [["__scopeId", "data-v-
|
|
5218
|
+
}), [["__scopeId", "data-v-54a5a37d"]]), ss = [
|
|
5189
5219
|
"data-display-mode",
|
|
5190
5220
|
"data-interaction-mode",
|
|
5191
5221
|
"data-presentation-mode",
|
|
@@ -5194,31 +5224,31 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5194
5224
|
"data-plot-margin-top",
|
|
5195
5225
|
"data-plot-margin-bottom",
|
|
5196
5226
|
"data-title-area-height"
|
|
5197
|
-
],
|
|
5227
|
+
], cs = [
|
|
5198
5228
|
"role",
|
|
5199
5229
|
"aria-level",
|
|
5200
5230
|
"aria-hidden"
|
|
5201
|
-
],
|
|
5231
|
+
], ls = ["data-title-scale", "data-title-wrapped"], us = [
|
|
5202
5232
|
"width",
|
|
5203
5233
|
"height",
|
|
5204
5234
|
"aria-label"
|
|
5205
|
-
],
|
|
5235
|
+
], ds = ["id"], fs = ["width", "height"], ps = ["transform"], ms = {
|
|
5206
5236
|
key: 0,
|
|
5207
5237
|
class: "waveform-chart__grid-slots",
|
|
5208
5238
|
"aria-hidden": "true"
|
|
5209
|
-
},
|
|
5239
|
+
}, hs = ["transform"], gs = ["width", "height"], _s = ["width", "height"], vs = [
|
|
5210
5240
|
"x",
|
|
5211
5241
|
"y",
|
|
5212
5242
|
"width",
|
|
5213
5243
|
"height"
|
|
5214
|
-
],
|
|
5244
|
+
], ys = {
|
|
5215
5245
|
key: 4,
|
|
5216
5246
|
class: "waveform-chart__legend-layer"
|
|
5217
|
-
},
|
|
5247
|
+
}, bs = [
|
|
5218
5248
|
"data-legend-track-index",
|
|
5219
5249
|
"data-legend-track-id",
|
|
5220
5250
|
"transform"
|
|
5221
|
-
],
|
|
5251
|
+
], xs = ["x", "y"], Ss = ["x", "y"], Cs = /* @__PURE__ */ l({
|
|
5222
5252
|
__name: "WaveformChartView",
|
|
5223
5253
|
props: { controller: {} },
|
|
5224
5254
|
setup(t) {
|
|
@@ -5271,7 +5301,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5271
5301
|
style: m(E(M)),
|
|
5272
5302
|
"data-title-scale": E(N).scale,
|
|
5273
5303
|
"data-title-wrapped": E(N).wrapped || void 0
|
|
5274
|
-
}, w(E(A)), 13,
|
|
5304
|
+
}, w(E(A)), 13, ls)], 4)) : r("", !0)], 12, cs)) : r("", !0),
|
|
5275
5305
|
(v(), i("svg", {
|
|
5276
5306
|
ref: E(Xe),
|
|
5277
5307
|
class: "waveform-chart__svg",
|
|
@@ -5288,9 +5318,9 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5288
5318
|
}, [a("rect", {
|
|
5289
5319
|
width: e.width,
|
|
5290
5320
|
height: e.height
|
|
5291
|
-
}, null, 8,
|
|
5321
|
+
}, null, 8, fs)], 8, ds))), 128))]),
|
|
5292
5322
|
a("g", { transform: `translate(${E(g)}, ${E(B)})` }, [
|
|
5293
|
-
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", {
|
|
5294
5324
|
key: `grid-slot-${e.slotIndex}`,
|
|
5295
5325
|
transform: `translate(${e.left}, ${e.top})`
|
|
5296
5326
|
}, [e.series ? r("", !0) : (v(), i("rect", {
|
|
@@ -5298,7 +5328,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5298
5328
|
class: "waveform-chart__grid-slot-placeholder",
|
|
5299
5329
|
width: e.width,
|
|
5300
5330
|
height: e.cellHeight
|
|
5301
|
-
}, null, 8,
|
|
5331
|
+
}, null, 8, gs))], 8, hs))), 128))])) : r("", !0),
|
|
5302
5332
|
E(o) !== "independent" && E(R).length && E(H) ? (v(), i("rect", {
|
|
5303
5333
|
key: 1,
|
|
5304
5334
|
ref: E(Qe),
|
|
@@ -5315,8 +5345,8 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5315
5345
|
onPointerleave: T[4] ||= (...e) => E(K) && E(K)(...e),
|
|
5316
5346
|
onClick: T[5] ||= (...e) => E(q) && E(q)(...e),
|
|
5317
5347
|
onContextmenu: T[6] ||= (...e) => E(ae) && E(ae)(...e)
|
|
5318
|
-
}, null, 42,
|
|
5319
|
-
(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), {
|
|
5320
5350
|
key: `${e.index}-${e.id}`,
|
|
5321
5351
|
track: e,
|
|
5322
5352
|
"clip-path-id": E(z),
|
|
@@ -5362,7 +5392,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5362
5392
|
"onClick",
|
|
5363
5393
|
"onContextmenu"
|
|
5364
5394
|
]))), 128)),
|
|
5365
|
-
s(E(
|
|
5395
|
+
s(E(os), {
|
|
5366
5396
|
state: E(pe),
|
|
5367
5397
|
tracks: E(R),
|
|
5368
5398
|
"clip-path-id": E(z),
|
|
@@ -5381,7 +5411,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5381
5411
|
width: E(he).width,
|
|
5382
5412
|
height: E(he).height,
|
|
5383
5413
|
"aria-hidden": "true"
|
|
5384
|
-
}, null, 8,
|
|
5414
|
+
}, null, 8, vs)) : r("", !0),
|
|
5385
5415
|
E(l) ? r("", !0) : (v(), n(E(tt), {
|
|
5386
5416
|
key: 3,
|
|
5387
5417
|
annotations: E(ge),
|
|
@@ -5400,13 +5430,13 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5400
5430
|
"onMove",
|
|
5401
5431
|
"onDragEnd"
|
|
5402
5432
|
])),
|
|
5403
|
-
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", {
|
|
5404
5434
|
key: `legend-${e.index}-${e.id}`,
|
|
5405
5435
|
class: "waveform-chart__legend-track",
|
|
5406
5436
|
"data-legend-track-index": e.index,
|
|
5407
5437
|
"data-legend-track-id": e.id,
|
|
5408
5438
|
transform: `translate(${e.left}, ${e.top})`
|
|
5409
|
-
}, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(
|
|
5439
|
+
}, [!e.isEmpty && e.legendSeries.length > 1 ? (v(), n(E(ns), {
|
|
5410
5440
|
key: 0,
|
|
5411
5441
|
series: e.legendSeries,
|
|
5412
5442
|
position: E(X)(e.id),
|
|
@@ -5427,23 +5457,23 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5427
5457
|
"width",
|
|
5428
5458
|
"height",
|
|
5429
5459
|
"onToggle"
|
|
5430
|
-
])) : r("", !0)], 8,
|
|
5431
|
-
], 8,
|
|
5460
|
+
])) : r("", !0)], 8, bs))), 128))]))
|
|
5461
|
+
], 8, ps),
|
|
5432
5462
|
E(De) && !E(l) ? (v(), i("text", {
|
|
5433
5463
|
key: 0,
|
|
5434
5464
|
class: "waveform-chart__label waveform-chart__x-label",
|
|
5435
5465
|
x: E(g) + E(ee) / 2,
|
|
5436
5466
|
y: E(Oe),
|
|
5437
5467
|
"text-anchor": "middle"
|
|
5438
|
-
}, w(E(De)), 9,
|
|
5468
|
+
}, w(E(De)), 9, xs)) : r("", !0),
|
|
5439
5469
|
E(ke) && !E(I) ? (v(), i("text", {
|
|
5440
5470
|
key: 1,
|
|
5441
5471
|
class: "waveform-chart__empty",
|
|
5442
5472
|
x: E(P) / 2,
|
|
5443
5473
|
y: E(F) / 2,
|
|
5444
5474
|
"text-anchor": "middle"
|
|
5445
|
-
}, " 暂无有效波形数据 ", 8,
|
|
5446
|
-
], 40,
|
|
5475
|
+
}, " 暂无有效波形数据 ", 8, Ss)) : r("", !0)
|
|
5476
|
+
], 40, us)),
|
|
5447
5477
|
E(Ae).showPagination && E(je) > 1 && !E(l) ? (v(), n(E(se), {
|
|
5448
5478
|
key: 1,
|
|
5449
5479
|
class: "waveform-chart__pagination",
|
|
@@ -5460,7 +5490,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5460
5490
|
"total",
|
|
5461
5491
|
"onChange"
|
|
5462
5492
|
])) : r("", !0),
|
|
5463
|
-
E(Le) && !E(l) && !E(u) ? (v(), n(
|
|
5493
|
+
E(Le) && !E(l) && !E(u) ? (v(), n(Va, {
|
|
5464
5494
|
key: 2,
|
|
5465
5495
|
annotation: E(Le).annotation,
|
|
5466
5496
|
mode: E(Le).mode,
|
|
@@ -5502,7 +5532,7 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5502
5532
|
"onDelete",
|
|
5503
5533
|
"onClose"
|
|
5504
5534
|
])) : r("", !0),
|
|
5505
|
-
s(E(
|
|
5535
|
+
s(E($a), {
|
|
5506
5536
|
state: E(pe),
|
|
5507
5537
|
visible: E(me) && !E(u),
|
|
5508
5538
|
"time-unit": E(de),
|
|
@@ -5515,9 +5545,9 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5515
5545
|
"container-width",
|
|
5516
5546
|
"container-height"
|
|
5517
5547
|
])
|
|
5518
|
-
], 46,
|
|
5548
|
+
], 46, ss));
|
|
5519
5549
|
}
|
|
5520
|
-
}),
|
|
5550
|
+
}), ws = /* @__PURE__ */ l({
|
|
5521
5551
|
__name: "WaveformChart",
|
|
5522
5552
|
props: {
|
|
5523
5553
|
data: {},
|
|
@@ -5599,12 +5629,12 @@ var mo = ["clip-path"], ho = ["data-series-id", "data-series-name"], go = [
|
|
|
5599
5629
|
"sampling-error"
|
|
5600
5630
|
],
|
|
5601
5631
|
setup(e, { expose: t, emit: r }) {
|
|
5602
|
-
let i =
|
|
5632
|
+
let i = Sa(e, r);
|
|
5603
5633
|
return t({
|
|
5604
5634
|
resetViewport: i.resetViewport,
|
|
5605
5635
|
setViewportDomain: i.setViewportDomain
|
|
5606
|
-
}), (e, t) => (v(), n(
|
|
5636
|
+
}), (e, t) => (v(), n(Cs, { controller: E(i) }, null, 8, ["controller"]));
|
|
5607
5637
|
}
|
|
5608
5638
|
});
|
|
5609
5639
|
//#endregion
|
|
5610
|
-
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 };
|