waveform-analysis 0.1.66 → 0.1.67
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 +124 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +1059 -939
- package/dist/style.css +1 -1
- package/dist/types/components/WaveformChart.vue.d.ts +4 -0
- package/dist/types/components/core/grid.d.ts +1 -1
- package/dist/types/components/core/layout.d.ts +2 -2
- package/dist/types/components/core/pagination.d.ts +2 -0
- package/dist/types/components/core/title.d.ts +2 -1
- package/dist/types/components/core/trackLayoutBuilder.d.ts +4 -0
- package/dist/types/components/core/useWaveformChartController.d.ts +6 -0
- package/dist/types/components/core/useWaveformLayout.d.ts +1 -0
- package/dist/types/components/core/useWaveformPresentation.d.ts +1 -0
- package/dist/types/components/core/useWaveformYAxisLayout.d.ts +31 -0
- package/dist/types/components/core/waveformChartTypes.d.ts +9 -2
- package/dist/types/components/core/yAxisLayoutMetrics.d.ts +1 -1
- package/dist/types/components/data/types.d.ts +1 -1
- package/dist/types/components/interaction/interactionTarget.d.ts +1 -0
- package/dist/types/components/interaction/remoteViewport.d.ts +8 -0
- package/dist/types/components/interaction/useWaveformViewport.d.ts +1 -2
- package/dist/types/components/interaction/viewportDomain.d.ts +1 -2
- package/dist/types/components/interaction/viewportPan.d.ts +4 -0
- package/dist/types/components/rendering/WaveformLegend.vue.d.ts +2 -0
- package/dist/types/components/rendering/WaveformTrack.vue.d.ts +4 -0
- package/dist/types/components/rendering/WaveformTrackAxes.vue.d.ts +5 -1
- package/dist/types/data/recordedDampedWaveform.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/chart.d.ts +13 -0
- package/dist/types/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/WaveformChart.css +5 -0
- package/src/components/WaveformChart.vue +2 -0
- package/src/components/WaveformChartView.vue +14 -3
- package/src/components/core/grid.ts +4 -1
- package/src/components/core/layout.ts +16 -2
- package/src/components/core/pagination.ts +17 -0
- package/src/components/core/title.ts +7 -3
- package/src/components/core/trackLayoutBuilder.ts +14 -4
- package/src/components/core/useWaveformChartController.ts +17 -1
- package/src/components/core/useWaveformChartLifecycle.ts +10 -16
- package/src/components/core/useWaveformLayout.ts +35 -91
- package/src/components/core/useWaveformPresentation.ts +17 -3
- package/src/components/core/useWaveformYAxisLayout.ts +140 -0
- package/src/components/core/waveformChartTypes.ts +12 -0
- package/src/components/core/yAxisLayoutMetrics.ts +11 -2
- package/src/components/data/types.ts +3 -0
- package/src/components/interaction/interactionTarget.ts +10 -0
- package/src/components/interaction/remoteViewport.ts +53 -0
- package/src/components/interaction/useWaveformViewport.ts +17 -55
- package/src/components/interaction/useWaveformZoom.ts +7 -7
- package/src/components/interaction/viewportDomain.ts +10 -14
- package/src/components/interaction/viewportPan.ts +82 -0
- package/src/components/rendering/WaveformLegend.vue +10 -1
- package/src/components/rendering/WaveformTrack.vue +13 -2
- package/src/components/rendering/WaveformTrackAxes.vue +15 -4
- package/src/data/recordedDampedWaveform.ts +3 -0
- package/src/data/simulatedWaveforms.ts +12 -10
- package/src/index.ts +3 -0
- package/src/types/chart.ts +16 -0
- package/src/types/index.ts +3 -0
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, defineAsyncComponent as c, defineComponent as l, getCurrentInstance as u, markRaw as d, nextTick as f, normalizeClass as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, onScopeDispose as _, onUpdated as v, openBlock as y, reactive as b, ref as x, renderList as S, shallowReactive as C, shallowRef as w, toDisplayString as T, toRefs as E, unref as D, vModelText as O, watch as k, watchEffect as A, withCtx as j, withDirectives as M, withModifiers as N } from "vue";
|
|
2
|
-
import { axisBottom as P, axisLeft as F, axisRight as I, bisector as L, curveStep as R, curveStepAfter as z, curveStepBefore as B, extent as V, line as H, pointer as U, scaleLinear as W, select as G, symbol as
|
|
3
|
-
import { InputNumber as
|
|
2
|
+
import { axisBottom as P, axisLeft as F, axisRight as I, bisector as L, curveStep as R, curveStepAfter as z, curveStepBefore as B, extent as V, line as H, pointer as U, scaleLinear as W, select as G, symbol as K, symbolCircle as ee, symbolDiamond as te, symbolSquare as ne, symbolTriangle as re, tickStep as ie, zoom as ae, zoomIdentity as q, zoomTransform as oe } from "d3";
|
|
3
|
+
import { InputNumber as se, Modal as ce, Pagination as le } from "ant-design-vue";
|
|
4
4
|
//#region src/utils/waveformId.ts
|
|
5
|
-
var
|
|
6
|
-
function
|
|
5
|
+
var ue = 0;
|
|
6
|
+
function de(e = "waveform") {
|
|
7
7
|
let t = u();
|
|
8
|
-
return `${e}-${t ? `v${t.uid}` : `f${++
|
|
8
|
+
return `${e}-${t ? `v${t.uid}` : `f${++ue}`}`;
|
|
9
9
|
}
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/core/compactSamplePointSource.ts
|
|
12
|
-
function
|
|
12
|
+
function fe(e, t, n, r) {
|
|
13
13
|
let i = 0, a = e;
|
|
14
14
|
for (; i < a;) {
|
|
15
15
|
let e = i + Math.floor((a - i) / 2);
|
|
@@ -17,7 +17,7 @@ function de(e, t, n, r) {
|
|
|
17
17
|
}
|
|
18
18
|
return i;
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function pe(e, t, n, r) {
|
|
21
21
|
let i = (e) => n + (r?.[e] ?? e) / t, a = (t) => t < 0 || t >= e.length ? void 0 : {
|
|
22
22
|
x: i(t),
|
|
23
23
|
y: e[t]
|
|
@@ -33,15 +33,15 @@ function fe(e, t, n, r) {
|
|
|
33
33
|
visibleRange(t) {
|
|
34
34
|
let n = Math.min(t[0], t[1]), r = Math.max(t[0], t[1]);
|
|
35
35
|
return {
|
|
36
|
-
start:
|
|
37
|
-
end:
|
|
36
|
+
start: fe(e.length, i, n, !1),
|
|
37
|
+
end: fe(e.length, i, r, !0)
|
|
38
38
|
};
|
|
39
39
|
},
|
|
40
40
|
nearestPoint(t) {
|
|
41
41
|
if (!Number.isFinite(t) || !e.length) return;
|
|
42
42
|
if (t <= i(0)) return a(0);
|
|
43
43
|
if (t >= i(e.length - 1)) return a(e.length - 1);
|
|
44
|
-
let n =
|
|
44
|
+
let n = fe(e.length, i, t, !1), r = Math.max(0, n - 1);
|
|
45
45
|
return Math.abs(t - i(r)) < Math.abs(i(n) - t) ? a(r) : a(n);
|
|
46
46
|
},
|
|
47
47
|
metrics() {
|
|
@@ -68,17 +68,17 @@ function fe(e, t, n, r) {
|
|
|
68
68
|
}
|
|
69
69
|
//#endregion
|
|
70
70
|
//#region src/core/waveformPointSource.ts
|
|
71
|
-
function
|
|
71
|
+
function J(e) {
|
|
72
72
|
return typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : void 0;
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function me(e, t, n) {
|
|
75
75
|
let r = Math.max(0, Math.min(n, Math.floor(e)));
|
|
76
76
|
return {
|
|
77
77
|
start: r,
|
|
78
78
|
end: Math.max(r, Math.min(n, Math.floor(t)))
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
-
function
|
|
81
|
+
function Y(e, t, n) {
|
|
82
82
|
let r = 0, i = e;
|
|
83
83
|
for (; r < i;) {
|
|
84
84
|
let e = r + Math.floor((i - r) / 2);
|
|
@@ -99,7 +99,7 @@ function ge(e, t, n) {
|
|
|
99
99
|
for (let c = 0; c < e; c += 1) {
|
|
100
100
|
let e = t(c);
|
|
101
101
|
if (!e || (r = Math.min(r, e.x), i = Math.max(i, e.x), a = Math.min(a, e.y), o = Math.max(o, e.y), !n)) continue;
|
|
102
|
-
let l =
|
|
102
|
+
let l = J(e.lowerError) ?? J(e.error) ?? 0, u = J(e.upperError) ?? J(e.error) ?? 0;
|
|
103
103
|
s ||= l !== 0 || u !== 0, a = Math.min(a, e.y - l), o = Math.max(o, e.y + u);
|
|
104
104
|
}
|
|
105
105
|
return {
|
|
@@ -123,13 +123,13 @@ var _e = class {
|
|
|
123
123
|
return this.sourcePoints[e];
|
|
124
124
|
}
|
|
125
125
|
pointsInRange(e = 0, t = this.length) {
|
|
126
|
-
let n =
|
|
126
|
+
let n = me(e, t, this.length);
|
|
127
127
|
return this.sourcePoints.slice(n.start, n.end);
|
|
128
128
|
}
|
|
129
129
|
visibleRange(e) {
|
|
130
130
|
let t = Math.min(e[0], e[1]), n = Math.max(e[0], e[1]);
|
|
131
131
|
return {
|
|
132
|
-
start:
|
|
132
|
+
start: Y(this.length, (e) => this.sourcePoints[e].x, t),
|
|
133
133
|
end: he(this.length, (e) => this.sourcePoints[e].x, n)
|
|
134
134
|
};
|
|
135
135
|
}
|
|
@@ -138,7 +138,7 @@ var _e = class {
|
|
|
138
138
|
let t = this.sourcePoints[0], n = this.sourcePoints[this.length - 1];
|
|
139
139
|
if (e <= t.x) return t;
|
|
140
140
|
if (e >= n.x) return n;
|
|
141
|
-
let r =
|
|
141
|
+
let r = Y(this.length, (e) => this.sourcePoints[e].x, e), i = this.sourcePoints[Math.min(r, this.length - 1)], a = this.sourcePoints[Math.max(0, r - 1)];
|
|
142
142
|
return Math.abs(e - a.x) < Math.abs(i.x - e) ? a : i;
|
|
143
143
|
}
|
|
144
144
|
metrics(e = !1) {
|
|
@@ -165,7 +165,7 @@ var _e = class {
|
|
|
165
165
|
}
|
|
166
166
|
pointAt(e) {
|
|
167
167
|
if (e < 0 || e >= this.length) return;
|
|
168
|
-
let t =
|
|
168
|
+
let t = J(this.error?.[e]), n = J(this.lowerError?.[e]), r = J(this.upperError?.[e]);
|
|
169
169
|
return {
|
|
170
170
|
x: this.x[e],
|
|
171
171
|
y: this.y[e],
|
|
@@ -175,14 +175,14 @@ var _e = class {
|
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
177
|
pointsInRange(e = 0, t = this.length) {
|
|
178
|
-
let n =
|
|
178
|
+
let n = me(e, t, this.length), r = [];
|
|
179
179
|
for (let e = n.start; e < n.end; e += 1) r.push(this.pointAt(e));
|
|
180
180
|
return r;
|
|
181
181
|
}
|
|
182
182
|
visibleRange(e) {
|
|
183
183
|
let t = Math.min(e[0], e[1]), n = Math.max(e[0], e[1]);
|
|
184
184
|
return {
|
|
185
|
-
start:
|
|
185
|
+
start: Y(this.length, (e) => this.x[e], t),
|
|
186
186
|
end: he(this.length, (e) => this.x[e], n)
|
|
187
187
|
};
|
|
188
188
|
}
|
|
@@ -190,7 +190,7 @@ var _e = class {
|
|
|
190
190
|
if (!Number.isFinite(e) || !this.length) return;
|
|
191
191
|
if (e <= this.x[0]) return this.pointAt(0);
|
|
192
192
|
if (e >= this.x[this.length - 1]) return this.pointAt(this.length - 1);
|
|
193
|
-
let t =
|
|
193
|
+
let t = Y(this.length, (e) => this.x[e], e), n = Math.min(t, this.length - 1), r = Math.max(0, t - 1);
|
|
194
194
|
return Math.abs(e - this.x[r]) < Math.abs(this.x[n] - e) ? this.pointAt(r) : this.pointAt(n);
|
|
195
195
|
}
|
|
196
196
|
metrics(e = !1) {
|
|
@@ -198,7 +198,7 @@ var _e = class {
|
|
|
198
198
|
for (let o = 0; o < this.length; o += 1) {
|
|
199
199
|
let s = this.x[o], c = this.y[o];
|
|
200
200
|
if (t = Math.min(t, s), n = Math.max(n, s), r = Math.min(r, c), i = Math.max(i, c), !e) continue;
|
|
201
|
-
let l =
|
|
201
|
+
let l = J(this.lowerError?.[o]) ?? J(this.error?.[o]) ?? 0, u = J(this.upperError?.[o]) ?? J(this.error?.[o]) ?? 0;
|
|
202
202
|
a ||= l !== 0 || u !== 0, r = Math.min(r, c - l), i = Math.max(i, c + u);
|
|
203
203
|
}
|
|
204
204
|
return {
|
|
@@ -230,7 +230,7 @@ function be(e) {
|
|
|
230
230
|
return e.x instanceof Float64Array && t.every((t) => t === void 0 || ye(t) && t.length === e.x.length);
|
|
231
231
|
}
|
|
232
232
|
function xe(e) {
|
|
233
|
-
if (!ye(e.values) || !Number.isFinite(e.sampleRate) || e.sampleRate <= 0 || e.startTime !== void 0 && !Number.isFinite(e.startTime)) return
|
|
233
|
+
if (!ye(e.values) || !Number.isFinite(e.sampleRate) || e.sampleRate <= 0 || e.startTime !== void 0 && !Number.isFinite(e.startTime)) return pe(/* @__PURE__ */ new Float64Array(), 1, 0);
|
|
234
234
|
let t = e.startTime ?? 0, n = 0;
|
|
235
235
|
for (let t = 0; t < e.values.length; t += 1) n += +!!Number.isFinite(e.values[t]);
|
|
236
236
|
let r = e.values instanceof Float32Array ? new Float32Array(n) : new Float64Array(n), i = n === e.values.length ? void 0 : new Uint32Array(n);
|
|
@@ -238,7 +238,7 @@ function xe(e) {
|
|
|
238
238
|
let a = e.values[t];
|
|
239
239
|
Number.isFinite(a) && (r[n] = a, i && (i[n] = t), n += 1);
|
|
240
240
|
}
|
|
241
|
-
return
|
|
241
|
+
return pe(r, e.sampleRate, t, i);
|
|
242
242
|
}
|
|
243
243
|
function Se(e) {
|
|
244
244
|
if (!be(e)) return new ve(/* @__PURE__ */ new Float64Array(), /* @__PURE__ */ new Float64Array());
|
|
@@ -1458,34 +1458,34 @@ function Wn(e, t, n) {
|
|
|
1458
1458
|
function Gn(e) {
|
|
1459
1459
|
return e === "compact" ? 0 : e === "separated" ? 16 : 14;
|
|
1460
1460
|
}
|
|
1461
|
-
function Kn(e, t, n, r, i = [], a, o = !0) {
|
|
1462
|
-
let
|
|
1461
|
+
function Kn(e, t, n, r, i = [], a, o = !0, s = !1) {
|
|
1462
|
+
let c = Hn(n), l = i.filter(Boolean).length, u = n.fillIncompleteLastRow && l > 0 && l < c, d = u ? Math.ceil(l / n.columnCount) : n.rowCount, f = Gn(r), p = Number.isFinite(a) ? Math.max(0, a) : f, m = /* @__PURE__ */ new Set();
|
|
1463
1463
|
if (o) {
|
|
1464
|
-
if (r === "independent") for (let e = 0; e <
|
|
1465
|
-
else if (r === "compact")
|
|
1464
|
+
if (r === "independent") for (let e = 0; e < d; e += 1) m.add(e);
|
|
1465
|
+
else if (r === "compact") m.add(d - 1);
|
|
1466
1466
|
else for (let e = 0; e < n.columnCount; e += 1) for (let t = Hn(n) - 1; t >= 0; --t) if (t % n.columnCount === e && i[t]) {
|
|
1467
|
-
|
|
1467
|
+
m.add(Math.floor(t / n.columnCount));
|
|
1468
1468
|
break;
|
|
1469
1469
|
}
|
|
1470
1470
|
}
|
|
1471
|
-
let
|
|
1472
|
-
return Array.from({ length:
|
|
1473
|
-
let i = Math.floor(r / n.columnCount), a = r % n.columnCount, o =
|
|
1474
|
-
let n =
|
|
1475
|
-
return
|
|
1471
|
+
let h = Math.max(0, d - 1) * f, g = s && m.has(d - 1) ? 30 : 0, _ = m.size * 30 - g, v = Math.max(1, (t - h - _) / d);
|
|
1472
|
+
return Array.from({ length: u ? l : c }, (t, r) => {
|
|
1473
|
+
let i = Math.floor(r / n.columnCount), a = r % n.columnCount, o = u && i === d - 1 ? l - i * n.columnCount : n.columnCount, s = Math.max(0, o - 1) * p, c = Math.max(1, (e - s) / o), h = m.has(i) ? 30 : 0, g = v + h, _ = Array.from({ length: i }, (e, t) => {
|
|
1474
|
+
let n = m.has(t) ? 30 : 0;
|
|
1475
|
+
return v + n + f;
|
|
1476
1476
|
}).reduce((e, t) => e + t, 0);
|
|
1477
1477
|
return {
|
|
1478
1478
|
slotIndex: r,
|
|
1479
1479
|
row: i,
|
|
1480
1480
|
column: a,
|
|
1481
|
-
left: a * (
|
|
1482
|
-
top:
|
|
1483
|
-
width:
|
|
1484
|
-
height:
|
|
1485
|
-
plotHeight:
|
|
1486
|
-
cellHeight:
|
|
1481
|
+
left: a * (c + p),
|
|
1482
|
+
top: _,
|
|
1483
|
+
width: c,
|
|
1484
|
+
height: v,
|
|
1485
|
+
plotHeight: v,
|
|
1486
|
+
cellHeight: g,
|
|
1487
1487
|
xAxisBand: h,
|
|
1488
|
-
isLastRow: i ===
|
|
1488
|
+
isLastRow: i === d - 1
|
|
1489
1489
|
};
|
|
1490
1490
|
});
|
|
1491
1491
|
}
|
|
@@ -1511,7 +1511,7 @@ function Qn(e, t, n = !1) {
|
|
|
1511
1511
|
if (t.type === "integer-ms") {
|
|
1512
1512
|
let t = e[0] * Yn, n = e[1] * Yn;
|
|
1513
1513
|
if (!Number.isSafeInteger(Math.ceil(Math.abs(t))) || !Number.isSafeInteger(Math.ceil(Math.abs(n))) || n - t < 1) return [...e];
|
|
1514
|
-
let r = n - t >= Xn ? Math.max(10,
|
|
1514
|
+
let r = n - t >= Xn ? Math.max(10, ie(t, n, Jn) / 10) : 1;
|
|
1515
1515
|
return [Math.floor(t / r) * r / Yn, Math.ceil(n / r) * r / Yn];
|
|
1516
1516
|
}
|
|
1517
1517
|
if (t.type !== "nice") return [...e];
|
|
@@ -1582,9 +1582,9 @@ function dr(e, t, n) {
|
|
|
1582
1582
|
return cr(i ? Qn(i, r, !0) : Qn(e.xDomain, r), n);
|
|
1583
1583
|
}
|
|
1584
1584
|
function fr(e) {
|
|
1585
|
-
let t = e.cells.map((
|
|
1586
|
-
...
|
|
1587
|
-
hasSeries:
|
|
1585
|
+
let t = e.cells.map((t) => ({
|
|
1586
|
+
...t,
|
|
1587
|
+
hasSeries: e.useNonEmptyBottomTracks ? !!t.series?.series.length : !!t.series
|
|
1588
1588
|
})), n = qn(t, e.grid.columnCount), r = t.flatMap((t, r) => {
|
|
1589
1589
|
let i = !t.series || t.series.series.length === 0;
|
|
1590
1590
|
if (!t.series && (e.displayMode !== "compact" || !e.showCompactEmptyTracks)) return [];
|
|
@@ -1594,16 +1594,16 @@ function fr(e) {
|
|
|
1594
1594
|
visibleSeries: [],
|
|
1595
1595
|
xDomain: [0, 1],
|
|
1596
1596
|
yDomain: [0, 1]
|
|
1597
|
-
}, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? W(dr(a, s?.id ?? a.id, e), [0, t.width]) : W(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ??
|
|
1597
|
+
}, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? W(dr(a, s?.id ?? a.id, e), [0, t.width]) : W(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ?? q : q).rescaleX(c);
|
|
1598
1598
|
l.domain(lr(l.domain(), e));
|
|
1599
|
-
let u = Tr(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains, e.yDomains), d = {
|
|
1599
|
+
let u = Tr(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains, e.yDomains, e.yAxisUpperPaddingRatio), d = {
|
|
1600
1600
|
left: 0,
|
|
1601
1601
|
right: 0
|
|
1602
1602
|
}, f = {
|
|
1603
1603
|
left: 0,
|
|
1604
1604
|
right: 0
|
|
1605
1605
|
}, p = u.map((n) => {
|
|
1606
|
-
let r = d[n.side]++, i = vr(t.plotHeight, e.yAxisSplitNumber), a = yr(n.domain, i, e.yAxisNice !== !1), o = W(a.domain, [t.plotHeight, 0]), s = a.values, c = e.displayMode !== "compact" || t.row === 0 ? s : s.slice(0, -1), { tickTextWidth: l } = Er(o.domain(), !1, c, n.seriesList[0]?.unit, i), u = l + 7 + 0 + 20 + 4, p = e.yAxisSlots?.find((e) => e.side === n.side && e.sideIndex === r), m = p ? (n.side === "left" ? 0 : t.width) + p.axisOffset : n.side === "left" ? -f.left : t.width + f.right, h = l + 7 + 0 + 20 / 2, g = (p ? (n.side === "left" ? 0 : t.width) + p.labelOffset : m + (n.side === "left" ? -h : h)) - (n.side === "right" ? 10 : 0);
|
|
1606
|
+
let r = d[n.side]++, i = vr(t.plotHeight, e.yAxisSplitNumber), a = yr(n.domain, i, e.yAxisNice !== !1), o = W(a.domain, [t.plotHeight, 0]), s = a.values, c = e.displayMode !== "compact" || t.row === 0 ? s : s.slice(0, -1), { tickTextWidth: l } = Er(o.domain(), !1, c, e.showAxisUnits === !1 ? void 0 : n.seriesList[0]?.unit, i), u = l + 7 + 0 + 20 + 4, p = e.yAxisSlots?.find((e) => e.side === n.side && e.sideIndex === r), m = p ? (n.side === "left" ? 0 : t.width) + p.axisOffset : n.side === "left" ? -f.left : t.width + f.right, h = l + 7 + 0 + 20 / 2, g = (p ? (n.side === "left" ? 0 : t.width) + p.labelOffset : m + (n.side === "left" ? -h : h)) - (n.side === "right" && !e.compactYAxisLayout ? 10 : 0);
|
|
1607
1607
|
return p || (f[n.side] += u), {
|
|
1608
1608
|
index: n.index,
|
|
1609
1609
|
side: n.side,
|
|
@@ -1675,7 +1675,7 @@ function fr(e) {
|
|
|
1675
1675
|
showXAxis: (i || o) && (e.displayMode === "independent" || (e.displayMode === "compact" ? t.isLastRow ?? t.row === e.grid.rowCount - 1 : n.has(t.slotIndex)))
|
|
1676
1676
|
};
|
|
1677
1677
|
});
|
|
1678
|
-
return ir(r, e.yLabel), r;
|
|
1678
|
+
return e.compactYAxisLayout || ir(r, e.yLabel), r;
|
|
1679
1679
|
}
|
|
1680
1680
|
//#endregion
|
|
1681
1681
|
//#region src/components/core/layout.ts
|
|
@@ -1751,11 +1751,14 @@ function wr(e, t, n, r) {
|
|
|
1751
1751
|
} : e;
|
|
1752
1752
|
});
|
|
1753
1753
|
}
|
|
1754
|
-
function Tr(e, t, n, r, i) {
|
|
1755
|
-
let
|
|
1756
|
-
return wr(e, t, n, r).map((e) => !e.fixed &&
|
|
1754
|
+
function Tr(e, t, n, r, i, a = 0) {
|
|
1755
|
+
let o = i?.[e.id];
|
|
1756
|
+
return wr(e, t, n, r).map((e) => !e.fixed && o ? {
|
|
1757
|
+
...e,
|
|
1758
|
+
domain: o
|
|
1759
|
+
} : !e.fixed && Number.isFinite(a) && a > 0 ? {
|
|
1757
1760
|
...e,
|
|
1758
|
-
domain: a
|
|
1761
|
+
domain: [e.domain[0], e.domain[1] + (e.domain[1] - e.domain[0]) * a]
|
|
1759
1762
|
} : e);
|
|
1760
1763
|
}
|
|
1761
1764
|
function Er(e, t = !0, n, r, i = 5, a = !1) {
|
|
@@ -1765,36 +1768,36 @@ function Er(e, t = !0, n, r, i = 5, a = !1) {
|
|
|
1765
1768
|
} : yr(e, i, t), s = [o.values];
|
|
1766
1769
|
return a && o.values.length > 1 && s.push(o.values.slice(0, -1)), { tickTextWidth: Math.max(1, ...s.flatMap((e) => e.map((t) => br(t, o.domain, e, r).length))) * pr };
|
|
1767
1770
|
}
|
|
1768
|
-
function Dr(e, t, n, r, i, a = !0, o = !1, s) {
|
|
1769
|
-
let
|
|
1771
|
+
function Dr(e, t, n, r, i, a = !0, o = !1, s, c = 0, l = !0) {
|
|
1772
|
+
let u = /* @__PURE__ */ new Map();
|
|
1770
1773
|
e.forEach((e) => {
|
|
1771
|
-
let
|
|
1774
|
+
let d = {
|
|
1772
1775
|
left: 0,
|
|
1773
1776
|
right: 0
|
|
1774
1777
|
};
|
|
1775
|
-
Tr(e, t, n, r, s).forEach((e) => {
|
|
1776
|
-
let t =
|
|
1777
|
-
|
|
1778
|
+
Tr(e, t, n, r, s, c).forEach((e) => {
|
|
1779
|
+
let t = d[e.side]++, n = `${e.side}:${t}`, r = Er(e.domain, a, void 0, l ? e.seriesList[0]?.unit : void 0, i, o).tickTextWidth;
|
|
1780
|
+
u.set(n, Math.max(u.get(n) ?? pr, r));
|
|
1778
1781
|
});
|
|
1779
1782
|
});
|
|
1780
|
-
let
|
|
1783
|
+
let d = [], f = {
|
|
1781
1784
|
left: 0,
|
|
1782
1785
|
right: 0
|
|
1783
1786
|
};
|
|
1784
1787
|
return ["left", "right"].forEach((e) => {
|
|
1785
|
-
Array.from(
|
|
1786
|
-
let n =
|
|
1787
|
-
|
|
1788
|
+
Array.from(u.keys()).filter((t) => t.startsWith(`${e}:`)).map((t) => Number(t.slice(e.length + 1))).sort((e, t) => e - t).forEach((t) => {
|
|
1789
|
+
let n = u.get(`${e}:${t}`) ?? pr, r = e === "left" && f.left > 0 ? -f.left : f[e], i = r + (n + mr + gr + _r / 2) * (e === "left" ? -1 : 1), a = n + mr + gr + _r + hr;
|
|
1790
|
+
d.push({
|
|
1788
1791
|
side: e,
|
|
1789
1792
|
sideIndex: t,
|
|
1790
1793
|
axisOffset: r,
|
|
1791
1794
|
labelOffset: i,
|
|
1792
1795
|
clearance: a
|
|
1793
|
-
}),
|
|
1796
|
+
}), f[e] += a;
|
|
1794
1797
|
});
|
|
1795
1798
|
}), {
|
|
1796
|
-
slots:
|
|
1797
|
-
clearance:
|
|
1799
|
+
slots: d,
|
|
1800
|
+
clearance: f
|
|
1798
1801
|
};
|
|
1799
1802
|
}
|
|
1800
1803
|
function Or(e, t, n) {
|
|
@@ -2213,17 +2216,36 @@ function Gr(e, t, n, r) {
|
|
|
2213
2216
|
}
|
|
2214
2217
|
function Kr(e, t, n) {
|
|
2215
2218
|
let r = t[1] - t[0], i = e[1] - e[0];
|
|
2216
|
-
if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return
|
|
2219
|
+
if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return q;
|
|
2217
2220
|
let a = r / i, o = W(t, [0, n]);
|
|
2218
|
-
return
|
|
2221
|
+
return q.translate(-a * o(e[0]), 0).scale(a);
|
|
2219
2222
|
}
|
|
2220
2223
|
//#endregion
|
|
2221
|
-
//#region src/components/interaction/
|
|
2224
|
+
//#region src/components/interaction/remoteViewport.ts
|
|
2222
2225
|
function qr(e, t) {
|
|
2223
2226
|
let n = e[1] - e[0];
|
|
2224
2227
|
return n >= t[1] - t[0] ? [...t] : e[0] < t[0] ? [t[0], t[0] + n] : e[1] > t[1] ? [t[1] - n, t[1]] : e;
|
|
2225
2228
|
}
|
|
2226
2229
|
function Jr(e) {
|
|
2230
|
+
let t = e.panXDomain;
|
|
2231
|
+
return t && t.every(Number.isFinite) && t[0] < t[1] ? t : void 0;
|
|
2232
|
+
}
|
|
2233
|
+
function Yr(e, t, n, r) {
|
|
2234
|
+
let i = Jr(r);
|
|
2235
|
+
return i ? qr(e, i) : Gr(e, t, n, r);
|
|
2236
|
+
}
|
|
2237
|
+
function Xr(e, t, n, r) {
|
|
2238
|
+
let i = Jr(r);
|
|
2239
|
+
return i ? Gr(e, i, [], {
|
|
2240
|
+
...r,
|
|
2241
|
+
minVisiblePoints: 0,
|
|
2242
|
+
maxZoomScale: null,
|
|
2243
|
+
minZoomSpan: Ur(t, n, r)
|
|
2244
|
+
}) : Gr(e, t, n, r);
|
|
2245
|
+
}
|
|
2246
|
+
//#endregion
|
|
2247
|
+
//#region src/components/interaction/viewportDomain.ts
|
|
2248
|
+
function Zr(e) {
|
|
2227
2249
|
return (t, n) => {
|
|
2228
2250
|
if (!(!Number.isFinite(t[0]) || !Number.isFinite(t[1]) || t[0] === t[1])) {
|
|
2229
2251
|
if (e.cancelPendingZoom(), e.cancelViewportDrag(), e.props.displayMode === "independent") {
|
|
@@ -2231,11 +2253,11 @@ function Jr(e) {
|
|
|
2231
2253
|
r.forEach((n) => {
|
|
2232
2254
|
let r = e.trackLayouts.value.find((e) => e.index === n);
|
|
2233
2255
|
if (!r) return;
|
|
2234
|
-
let a = e.resolveInitialTrackDomain(r), o =
|
|
2256
|
+
let a = e.resolveInitialTrackDomain(r), o = Xr(t, a, [r.seriesList], e.props);
|
|
2235
2257
|
i[n] = Kr(o, a, r.width);
|
|
2236
2258
|
}), e.independentTransforms.value = i;
|
|
2237
2259
|
} else {
|
|
2238
|
-
let n = e.initialXDomain.value, r =
|
|
2260
|
+
let n = e.initialXDomain.value, r = Xr(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
|
|
2239
2261
|
e.sharedTransform.value = Kr(r, n, e.innerWidth.value);
|
|
2240
2262
|
}
|
|
2241
2263
|
e.clearHover(), e.editorSeriesOptions.value = [], f(e.configureZoom);
|
|
@@ -2243,15 +2265,35 @@ function Jr(e) {
|
|
|
2243
2265
|
};
|
|
2244
2266
|
}
|
|
2245
2267
|
//#endregion
|
|
2268
|
+
//#region src/components/interaction/viewportPan.ts
|
|
2269
|
+
function Qr(e) {
|
|
2270
|
+
let { props: t, emit: n, resolveInitialTrackDomain: r, initialXDomain: i, independentTransforms: a, sharedTransform: o, innerWidth: s, trackLayouts: c, chartTracks: l, independentYDomains: u, sharedYDomains: d } = e;
|
|
2271
|
+
return (e, f) => {
|
|
2272
|
+
let p = f.width || 1, m = f.height || 1, h = e.currentX - e.startX, g = e.currentY - e.startY, _ = e.xDomain[1] - e.xDomain[0], v = e.independent ? r(f) : i.value, y = Jr(t) ?? v, b = qr(ur(qr([e.xDomain[0] - h / p * _, e.xDomain[1] - h / p * _], y), t), y);
|
|
2273
|
+
if (e.independent) {
|
|
2274
|
+
let e = [...a.value];
|
|
2275
|
+
e[f.index] = Kr(b, v, p), a.value = e;
|
|
2276
|
+
} else o.value = Kr(b, v, s.value);
|
|
2277
|
+
if (Jr(t)) return n("zoom-change", b), b;
|
|
2278
|
+
let x = e.independent ? [f] : c.value.filter((e) => e.hasVisibleSeries), S = { ...u.value }, C = { ...d.value };
|
|
2279
|
+
return x.forEach((n) => {
|
|
2280
|
+
let r = l.value.find((e) => e.id === n.id);
|
|
2281
|
+
if (r && Yt(r, t.yDomain, t.yDomains)) return;
|
|
2282
|
+
let i = n.series?.trackId ?? n.series?.id ?? n.id, a = e.yDomains[i] ?? n.yScale.domain(), o = r?.yDomain ?? a, s = a[1] - a[0], c = qr([a[0] + g / m * s, a[1] + g / m * s], o);
|
|
2283
|
+
e.independent ? S[n.index] = c : C[i] = c;
|
|
2284
|
+
}), e.independent ? u.value = S : d.value = C, n("zoom-change", b), b;
|
|
2285
|
+
};
|
|
2286
|
+
}
|
|
2287
|
+
//#endregion
|
|
2246
2288
|
//#region src/components/interaction/zoomEventPayload.ts
|
|
2247
|
-
function
|
|
2289
|
+
function $r(e) {
|
|
2248
2290
|
return [...e].sort().join("\0");
|
|
2249
2291
|
}
|
|
2250
|
-
function
|
|
2251
|
-
let n =
|
|
2252
|
-
return e.find((e) =>
|
|
2292
|
+
function ei(e, t) {
|
|
2293
|
+
let n = $r(t);
|
|
2294
|
+
return e.find((e) => $r(e.seriesList.map((e) => e.id)) === n);
|
|
2253
2295
|
}
|
|
2254
|
-
function
|
|
2296
|
+
function ti(e, t, n, r) {
|
|
2255
2297
|
e("zoom-intent", r ? {
|
|
2256
2298
|
start: t[0],
|
|
2257
2299
|
end: t[1],
|
|
@@ -2264,9 +2306,9 @@ function Zr(e, t, n, r) {
|
|
|
2264
2306
|
gesture: "box"
|
|
2265
2307
|
});
|
|
2266
2308
|
}
|
|
2267
|
-
function
|
|
2309
|
+
function ni(e, t, n) {
|
|
2268
2310
|
for (let r of n) {
|
|
2269
|
-
let n =
|
|
2311
|
+
let n = ei(t, r);
|
|
2270
2312
|
if (!n) continue;
|
|
2271
2313
|
let i = n.xScale.domain(), a = n.yScale.domain();
|
|
2272
2314
|
e("zoom-end", {
|
|
@@ -2280,7 +2322,7 @@ function Qr(e, t, n) {
|
|
|
2280
2322
|
});
|
|
2281
2323
|
}
|
|
2282
2324
|
}
|
|
2283
|
-
function
|
|
2325
|
+
function ri(e, t, n) {
|
|
2284
2326
|
let r = n.filter((e) => e.hasVisibleSeries);
|
|
2285
2327
|
if (r.length === 1) {
|
|
2286
2328
|
let n = r[0]?.yScale.domain();
|
|
@@ -2302,7 +2344,7 @@ function $r(e, t, n) {
|
|
|
2302
2344
|
}
|
|
2303
2345
|
//#endregion
|
|
2304
2346
|
//#region src/components/interaction/useWaveformViewport.ts
|
|
2305
|
-
function
|
|
2347
|
+
function ii(e) {
|
|
2306
2348
|
let { props: n, emit: r, selection: i, spacePressed: a, trackLayouts: o, chartTracks: s, initialXDomain: c, innerWidth: l, innerHeight: u, sharedOverlayElement: d, sharedTransform: p, independentTransforms: m, sharedYDomains: h, independentYDomains: g, isZoomMode: _, isPresentationMode: v, editorSeriesOptions: y, resolveInitialTrackDomain: b, canZoomTrack: x, canZoomSharedTracks: S, configureZoom: C, cancelPendingZoom: T, clearHover: E, resolveTrackAtPointer: D } = e, O = w(), k = (e, t) => {
|
|
2307
2349
|
let n = O.value, r = t?.currentTarget;
|
|
2308
2350
|
Nr(n, e), r && r !== n && Nr(r, e);
|
|
@@ -2346,20 +2388,7 @@ function ei(e) {
|
|
|
2346
2388
|
if (!d.value) return;
|
|
2347
2389
|
let [t, n] = U(e, d.value), r = D(t, n), i = (r?.hasVisibleSeries ? r : void 0) ?? o.value.find((e) => e.hasVisibleSeries);
|
|
2348
2390
|
i && N(e, i.index, !1);
|
|
2349
|
-
}, F = (e,
|
|
2350
|
-
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 = ur(qr([e.xDomain[0] - u / i * f, e.xDomain[1] - u / i * f], _), n);
|
|
2351
|
-
if (e.independent) {
|
|
2352
|
-
let e = [...m.value];
|
|
2353
|
-
e[t.index] = Kr(v, _, i), m.value = e;
|
|
2354
|
-
} else p.value = Kr(v, _, l.value);
|
|
2355
|
-
let y = e.independent ? [t] : o.value.filter((e) => e.hasVisibleSeries), x = { ...g.value }, S = { ...h.value };
|
|
2356
|
-
y.forEach((t) => {
|
|
2357
|
-
let r = s.value.find((e) => e.id === t.id);
|
|
2358
|
-
if (r && Yt(r, n.yDomain, n.yDomains)) return;
|
|
2359
|
-
let i = t.series?.trackId ?? t.series?.id ?? t.id, o = e.yDomains[i] ?? t.yScale.domain(), c = r?.yDomain ?? o, l = o[1] - o[0], u = qr([o[0] + d / a * l, o[1] + d / a * l], c);
|
|
2360
|
-
e.independent ? x[t.index] = u : S[i] = u;
|
|
2361
|
-
}), e.independent ? g.value = x : h.value = S, r("zoom-change", v);
|
|
2362
|
-
}, I = (e) => {
|
|
2391
|
+
}, F = Qr(e), I = (e) => {
|
|
2363
2392
|
if (v.value) return;
|
|
2364
2393
|
let t = i.value, n = O.value;
|
|
2365
2394
|
if (!t || !n || e.pointerId !== t.pointerId) return;
|
|
@@ -2384,12 +2413,12 @@ function ei(e) {
|
|
|
2384
2413
|
if (!t || (e.independent ? !x(t) : !S())) return;
|
|
2385
2414
|
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));
|
|
2386
2415
|
if (s - a < 6) return;
|
|
2387
|
-
let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h =
|
|
2416
|
+
let u = e.independent ? b(t) : c.value, d = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h = Xr([t.xScale.invert(a), t.xScale.invert(s)], u, d, n);
|
|
2388
2417
|
if (e.independent) {
|
|
2389
2418
|
let e = [...m.value];
|
|
2390
2419
|
e[t.index] = Kr(h, u, t.width), m.value = e;
|
|
2391
2420
|
} else p.value = Kr(h, u, l.value);
|
|
2392
|
-
|
|
2421
|
+
ti(r, h, t, e.independent);
|
|
2393
2422
|
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()]));
|
|
2394
2423
|
if (r("zoom-change", h), e.independent) {
|
|
2395
2424
|
let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
|
|
@@ -2425,33 +2454,41 @@ function ei(e) {
|
|
|
2425
2454
|
}
|
|
2426
2455
|
let t = i.value;
|
|
2427
2456
|
if (!t || e.pointerId !== t.pointerId) return;
|
|
2428
|
-
let n = o.value.find((e) => e.index === t.trackIndex),
|
|
2429
|
-
if (!n || !
|
|
2457
|
+
let n = o.value.find((e) => e.index === t.trackIndex), a = O.value;
|
|
2458
|
+
if (!n || !a || !a.parentNode) {
|
|
2430
2459
|
A(t.pointerId, e);
|
|
2431
2460
|
return;
|
|
2432
2461
|
}
|
|
2433
|
-
let [
|
|
2462
|
+
let [s, c] = U(e, a), d = Math.max(0, Math.min(t.independent ? n.width : l.value, s)), p = Math.max(0, Math.min(t.independent ? n.height : u.value, c)), m = Lr(i.value, {
|
|
2434
2463
|
type: "finish",
|
|
2435
2464
|
pointerId: e.pointerId,
|
|
2436
2465
|
position: {
|
|
2437
|
-
currentX:
|
|
2438
|
-
currentY:
|
|
2466
|
+
currentX: d,
|
|
2467
|
+
currentY: p
|
|
2439
2468
|
}
|
|
2440
2469
|
}).completed;
|
|
2441
|
-
if (
|
|
2442
|
-
if (i.value = null, k(
|
|
2443
|
-
F(
|
|
2470
|
+
if (m) {
|
|
2471
|
+
if (i.value = null, k(m.pointerId, e), O.value = void 0, e.preventDefault(), m.kind === "pan") {
|
|
2472
|
+
let e = F(m, n);
|
|
2473
|
+
e.some((e, t) => Math.abs(e - m.xDomain[t]) > 1e-12) && r("pan-end", {
|
|
2474
|
+
start: e[0],
|
|
2475
|
+
end: e[1],
|
|
2476
|
+
...m.independent ? {
|
|
2477
|
+
trackIndex: n.index,
|
|
2478
|
+
seriesIds: n.seriesList.map((e) => e.id)
|
|
2479
|
+
} : {}
|
|
2480
|
+
}), f(C);
|
|
2444
2481
|
return;
|
|
2445
2482
|
}
|
|
2446
|
-
Math.abs(
|
|
2483
|
+
Math.abs(m.currentX - m.startX) >= 6 && R(m);
|
|
2447
2484
|
}
|
|
2448
2485
|
}, B = (e) => {
|
|
2449
2486
|
if (T(), L(), n.displayMode === "independent" && e !== void 0) {
|
|
2450
2487
|
let t = [...m.value];
|
|
2451
|
-
t[e] =
|
|
2488
|
+
t[e] = q, m.value = t;
|
|
2452
2489
|
let n = { ...g.value };
|
|
2453
2490
|
delete n[e], g.value = n;
|
|
2454
|
-
} else p.value =
|
|
2491
|
+
} else p.value = q, m.value = s.value.map(() => q), h.value = {}, g.value = {};
|
|
2455
2492
|
E(), y.value = [], f(C);
|
|
2456
2493
|
};
|
|
2457
2494
|
return {
|
|
@@ -2462,7 +2499,7 @@ function ei(e) {
|
|
|
2462
2499
|
finishViewportDrag: z,
|
|
2463
2500
|
cancelViewportDrag: L,
|
|
2464
2501
|
resetViewport: B,
|
|
2465
|
-
setViewportDomain:
|
|
2502
|
+
setViewportDomain: Zr({
|
|
2466
2503
|
props: n,
|
|
2467
2504
|
trackLayouts: o,
|
|
2468
2505
|
initialXDomain: c,
|
|
@@ -2494,7 +2531,7 @@ function ei(e) {
|
|
|
2494
2531
|
}
|
|
2495
2532
|
//#endregion
|
|
2496
2533
|
//#region src/components/utils/useAnimationFrameThrottle.ts
|
|
2497
|
-
function
|
|
2534
|
+
function ai() {
|
|
2498
2535
|
let e = null, t = null;
|
|
2499
2536
|
function n(n) {
|
|
2500
2537
|
t = n, e === null && (e = requestAnimationFrame(() => {
|
|
@@ -2523,8 +2560,8 @@ function ti() {
|
|
|
2523
2560
|
}
|
|
2524
2561
|
//#endregion
|
|
2525
2562
|
//#region src/components/interaction/useWaveformZoom.ts
|
|
2526
|
-
function
|
|
2527
|
-
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 =
|
|
2563
|
+
function oi(e) {
|
|
2564
|
+
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 = ai(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E, D = !1, O = 0, k = () => v.schedule(M), A = (e) => {
|
|
2528
2565
|
if (y || m.value) return;
|
|
2529
2566
|
g(), b = e.transform, x = "wheel", I();
|
|
2530
2567
|
let [r, i] = lr(e.transform.rescaleX(W(c.value, [0, u.value])).domain(), t);
|
|
@@ -2571,7 +2608,7 @@ function ni(e) {
|
|
|
2571
2608
|
if (!t) return;
|
|
2572
2609
|
if (i.get(e) === "wheel") {
|
|
2573
2610
|
let e = t.seriesList.map((e) => e.id);
|
|
2574
|
-
T.set(
|
|
2611
|
+
T.set($r(e), e);
|
|
2575
2612
|
}
|
|
2576
2613
|
let r = t.xScale.domain();
|
|
2577
2614
|
n("zoom-change", [r[0], r[1]]);
|
|
@@ -2579,14 +2616,14 @@ function ni(e) {
|
|
|
2579
2616
|
}
|
|
2580
2617
|
let N = () => {
|
|
2581
2618
|
if (t.displayMode === "independent") {
|
|
2582
|
-
|
|
2619
|
+
ni(n, s.value, T.values()), T.clear();
|
|
2583
2620
|
return;
|
|
2584
2621
|
}
|
|
2585
2622
|
if (S !== "wheel") {
|
|
2586
2623
|
S = null;
|
|
2587
2624
|
return;
|
|
2588
2625
|
}
|
|
2589
|
-
|
|
2626
|
+
ri(n, l.value, s.value), S = null;
|
|
2590
2627
|
}, P = () => {
|
|
2591
2628
|
v.flush(), M(), !(S === "wheel" || T.size) && N();
|
|
2592
2629
|
}, F = (e) => {
|
|
@@ -2608,16 +2645,16 @@ function ni(e) {
|
|
|
2608
2645
|
if (!Number.isFinite(r) || r <= 0) return Bt.MIN_SCALE;
|
|
2609
2646
|
let i = Ur(e, n, t);
|
|
2610
2647
|
return Math.max(Bt.MIN_SCALE, i > 0 ? r / i : Infinity);
|
|
2611
|
-
}, V = (e, n, r, i) => Kr(
|
|
2648
|
+
}, V = (e, n, r, i) => Kr(Xr(e.rescaleX(W(n, [0, r])).domain(), n, i, t), n, r), H = (e) => {
|
|
2612
2649
|
let n = Number(t.minVisiblePoints);
|
|
2613
2650
|
return jn(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
|
|
2614
2651
|
}, U = () => {
|
|
2615
2652
|
let e = s.value.filter((e) => e.hasVisibleSeries);
|
|
2616
2653
|
return e.length > 0 && e.every(H);
|
|
2617
|
-
},
|
|
2654
|
+
}, K = (e, t) => {
|
|
2618
2655
|
if (e.type !== "wheel") return !1;
|
|
2619
2656
|
let n = e.deltaY;
|
|
2620
|
-
return n < 0 ? t : n > 0 &&
|
|
2657
|
+
return n < 0 ? t : n > 0 && oe(e.currentTarget).k > Bt.MIN_SCALE;
|
|
2621
2658
|
};
|
|
2622
2659
|
return {
|
|
2623
2660
|
cancelPendingZoom: R,
|
|
@@ -2632,13 +2669,13 @@ function ni(e) {
|
|
|
2632
2669
|
s.value.forEach((t) => {
|
|
2633
2670
|
let n = r.value?.querySelector(`[data-independent-overlay-index="${t.index}"]`);
|
|
2634
2671
|
if (!n) return;
|
|
2635
|
-
let i = h(t), a = [t.seriesList], c =
|
|
2672
|
+
let i = h(t), a = [t.seriesList], c = ae().filter((e) => {
|
|
2636
2673
|
let n = s.value.find((e) => e.index === t.index) ?? t;
|
|
2637
|
-
return
|
|
2674
|
+
return K(e, H(n));
|
|
2638
2675
|
}).scaleExtent([1, B(i, a)]).constrain((e) => V(e, i, t.width, a)).extent([[0, 0], [t.width, t.height]]).translateExtent([[0, 0], [t.width, t.height]]).on("zoom", (e) => j(e, t.index)).on("end", () => F(e));
|
|
2639
2676
|
_.set(t.index, c), y = !0;
|
|
2640
2677
|
try {
|
|
2641
|
-
G(n).call(c).on("dblclick.zoom", null).call(c.transform, o.value[t.index] ??
|
|
2678
|
+
G(n).call(c).on("dblclick.zoom", null).call(c.transform, o.value[t.index] ?? q);
|
|
2642
2679
|
} finally {
|
|
2643
2680
|
y = !1;
|
|
2644
2681
|
}
|
|
@@ -2647,7 +2684,7 @@ function ni(e) {
|
|
|
2647
2684
|
}
|
|
2648
2685
|
let n = i.value;
|
|
2649
2686
|
if (!n) return;
|
|
2650
|
-
let l = s.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), g =
|
|
2687
|
+
let l = s.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), g = ae().filter((e) => K(e, U())).scaleExtent([1, B(c.value, l)]).constrain((e) => V(e, c.value, u.value, l)).extent([[0, 0], [u.value, d.value]]).translateExtent([[0, 0], [u.value, d.value]]).on("zoom", A).on("end", () => F(e));
|
|
2651
2688
|
_.set("shared", g), y = !0;
|
|
2652
2689
|
try {
|
|
2653
2690
|
G(n).call(g).on("dblclick.zoom", null).call(g.transform, a.value);
|
|
@@ -2659,52 +2696,62 @@ function ni(e) {
|
|
|
2659
2696
|
};
|
|
2660
2697
|
}
|
|
2661
2698
|
//#endregion
|
|
2662
|
-
//#region src/components/core/
|
|
2663
|
-
function
|
|
2699
|
+
//#region src/components/core/pagination.ts
|
|
2700
|
+
function si(e, t, n, r, i) {
|
|
2701
|
+
if (!e) return 0;
|
|
2702
|
+
if (t <= 520) return 40;
|
|
2703
|
+
let a = Math.min(n, 9) + 2, o = a * 32 + a * 8, s = r + Array.from(i).length * 18 / 2;
|
|
2704
|
+
return t - 10 - s - 8 >= o ? 16 : 40;
|
|
2705
|
+
}
|
|
2706
|
+
//#endregion
|
|
2707
|
+
//#region src/components/interaction/interactionTarget.ts
|
|
2708
|
+
function ci(e) {
|
|
2664
2709
|
return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
|
|
2665
2710
|
}
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2711
|
+
//#endregion
|
|
2712
|
+
//#region src/components/core/useWaveformChartLifecycle.ts
|
|
2713
|
+
function li(e) {
|
|
2714
|
+
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: O, sharedTransform: A, activeInteractionMode: j, hiddenSeriesIdSet: M, internalHiddenSeriesIds: N, independentTransforms: P, independentYDomains: F, resolveInitialTrackDomain: I, annotationInteraction: L, editorSeriesOptions: R, isPresentationMode: z, clearHover: B, cancelAnnotation: V, configureZoom: H, resetViewport: U, cancelViewportDrag: W, cancelPendingHover: G, clearZoomBindings: K } = e;
|
|
2715
|
+
function ee(e) {
|
|
2716
|
+
z.value || e.code !== "Space" || !t.pannable || !_.value || ci(e.target) || (m.value = !0, e.preventDefault());
|
|
2670
2717
|
}
|
|
2671
|
-
function
|
|
2718
|
+
function te(e) {
|
|
2672
2719
|
e.code === "Space" && (m.value = !1);
|
|
2673
2720
|
}
|
|
2674
|
-
function
|
|
2721
|
+
function ne(e) {
|
|
2675
2722
|
let r = Math.min(y.value, Math.max(1, Math.floor(e)));
|
|
2676
|
-
r !== v.value && (v.value = r, B(), L.closeContextMenu(), V(), t.displayMode === "independent" && (P.value = b.value.map(() =>
|
|
2723
|
+
r !== v.value && (v.value = r, B(), L.closeContextMenu(), V(), t.displayMode === "independent" && (P.value = b.value.map(() => q), F.value = {}), f(H), n("page-change", r, y.value));
|
|
2677
2724
|
}
|
|
2678
|
-
let
|
|
2679
|
-
function
|
|
2725
|
+
let re, ie;
|
|
2726
|
+
function ae() {
|
|
2680
2727
|
if (t.displayMode === "independent") {
|
|
2681
|
-
|
|
2682
|
-
let
|
|
2683
|
-
return t[1] -
|
|
2728
|
+
re = void 0, ie = new Map(w.value.flatMap((e) => {
|
|
2729
|
+
let n = e.xScale.domain(), r = I(e);
|
|
2730
|
+
return Jr(t) || n[1] - n[0] < r[1] - r[0] - 1e-12 ? [[$r(e.seriesList.map((e) => e.id)), n]] : [];
|
|
2684
2731
|
}));
|
|
2685
2732
|
return;
|
|
2686
2733
|
}
|
|
2687
|
-
|
|
2734
|
+
ie = void 0;
|
|
2688
2735
|
let e = D.value, n = O.value;
|
|
2689
|
-
|
|
2736
|
+
re = Jr(t) || e[1] - e[0] < n[1] - n[0] - 1e-12 ? [...e] : void 0;
|
|
2690
2737
|
}
|
|
2691
|
-
function
|
|
2738
|
+
function oe() {
|
|
2692
2739
|
if (t.displayMode === "independent") {
|
|
2693
2740
|
let e = P.value;
|
|
2694
|
-
P.value = C.value.map((t, n) => e[n] ??
|
|
2741
|
+
P.value = C.value.map((t, n) => e[n] ?? q);
|
|
2695
2742
|
}
|
|
2696
2743
|
B(), R.value = [], f(() => {
|
|
2697
|
-
if (t.displayMode === "independent" &&
|
|
2698
|
-
let e = C.value.map(() =>
|
|
2744
|
+
if (t.displayMode === "independent" && ie) {
|
|
2745
|
+
let e = C.value.map(() => q);
|
|
2699
2746
|
w.value.forEach((n) => {
|
|
2700
|
-
let r =
|
|
2747
|
+
let r = ie?.get($r(n.seriesList.map((e) => e.id)));
|
|
2701
2748
|
if (!r) return;
|
|
2702
|
-
let i = I(n), a =
|
|
2749
|
+
let i = I(n), a = Yr(r, i, [n.seriesList], t);
|
|
2703
2750
|
e[n.index] = Kr(a, i, n.width);
|
|
2704
|
-
}), P.value = e,
|
|
2705
|
-
} else if (t.displayMode !== "independent" &&
|
|
2706
|
-
let e = O.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r =
|
|
2707
|
-
A.value = Kr(r, e, T.value),
|
|
2751
|
+
}), P.value = e, ie = void 0;
|
|
2752
|
+
} else if (t.displayMode !== "independent" && re) {
|
|
2753
|
+
let e = O.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Yr(re, e, n, t);
|
|
2754
|
+
A.value = Kr(r, e, T.value), re = void 0;
|
|
2708
2755
|
}
|
|
2709
2756
|
H();
|
|
2710
2757
|
});
|
|
@@ -2747,7 +2794,7 @@ function ii(e) {
|
|
|
2747
2794
|
}), k(j, () => {
|
|
2748
2795
|
R.value = [];
|
|
2749
2796
|
}), k(z, (e) => {
|
|
2750
|
-
m.value = !1, e && (W(),
|
|
2797
|
+
m.value = !1, e && (W(), K(), B(), L.closeContextMenu(), V());
|
|
2751
2798
|
}), k(() => S.value.map((e) => e.id).join("\0"), () => {
|
|
2752
2799
|
if (t.hiddenSeriesIds !== void 0) return;
|
|
2753
2800
|
let e = new Set(S.value.map((e) => e.id)), n = new Set(Array.from(N.value).filter((t) => e.has(t)));
|
|
@@ -2766,7 +2813,7 @@ function ii(e) {
|
|
|
2766
2813
|
let n = L.editorDraft.value;
|
|
2767
2814
|
n?.mode === "edit" && !e.some((e) => e.id === n.annotation.id) && L.closeEditor();
|
|
2768
2815
|
}, { deep: !0 });
|
|
2769
|
-
function
|
|
2816
|
+
function se() {
|
|
2770
2817
|
if (!d.value || !i.value) {
|
|
2771
2818
|
c.value = 0, l.value = 0;
|
|
2772
2819
|
return;
|
|
@@ -2779,22 +2826,22 @@ function ii(e) {
|
|
|
2779
2826
|
d,
|
|
2780
2827
|
p
|
|
2781
2828
|
], async () => {
|
|
2782
|
-
c.value = 0, l.value = 0, await f(),
|
|
2829
|
+
c.value = 0, l.value = 0, await f(), se();
|
|
2783
2830
|
}, { immediate: !0 }), g(() => {
|
|
2784
|
-
window.addEventListener("keydown",
|
|
2785
|
-
o.value = Math.max(0, e?.contentRect.width ?? 0), s.value = Math.max(0, e?.contentRect.height ?? 0), f(
|
|
2831
|
+
window.addEventListener("keydown", ee), window.addEventListener("keyup", te), r.value && (a.value = new ResizeObserver(([e]) => {
|
|
2832
|
+
o.value = Math.max(0, e?.contentRect.width ?? 0), s.value = Math.max(0, e?.contentRect.height ?? 0), f(se);
|
|
2786
2833
|
}), a.value.observe(r.value));
|
|
2787
2834
|
}), h(() => {
|
|
2788
|
-
window.removeEventListener("keydown",
|
|
2835
|
+
window.removeEventListener("keydown", ee), window.removeEventListener("keyup", te), G(), a.value?.disconnect(), K(), R.value = [];
|
|
2789
2836
|
}), {
|
|
2790
|
-
goToPage:
|
|
2791
|
-
handleBeforeDataReferenceChange:
|
|
2792
|
-
handleDataReferenceChange:
|
|
2837
|
+
goToPage: ne,
|
|
2838
|
+
handleBeforeDataReferenceChange: ae,
|
|
2839
|
+
handleDataReferenceChange: oe
|
|
2793
2840
|
};
|
|
2794
2841
|
}
|
|
2795
2842
|
//#endregion
|
|
2796
2843
|
//#region src/components/core/useWaveformData.ts
|
|
2797
|
-
function
|
|
2844
|
+
function ui(e) {
|
|
2798
2845
|
return dn(e).map(({ source: e, ...t }) => {
|
|
2799
2846
|
let n = e.metrics(t.errorBar.visible);
|
|
2800
2847
|
return {
|
|
@@ -2807,45 +2854,45 @@ function ai(e) {
|
|
|
2807
2854
|
};
|
|
2808
2855
|
});
|
|
2809
2856
|
}
|
|
2810
|
-
function
|
|
2811
|
-
let r = w(
|
|
2857
|
+
function di(e, t, n) {
|
|
2858
|
+
let r = w(ui(e()));
|
|
2812
2859
|
return k(e, (e) => {
|
|
2813
|
-
t(), r.value =
|
|
2860
|
+
t(), r.value = ui(e), n();
|
|
2814
2861
|
}), r;
|
|
2815
2862
|
}
|
|
2816
2863
|
//#endregion
|
|
2817
2864
|
//#region wasm/pkg/waveform_sampling_wasm.js
|
|
2818
|
-
function
|
|
2819
|
-
let n =
|
|
2820
|
-
if (o[3]) throw
|
|
2821
|
-
var s =
|
|
2865
|
+
function fi(e, t) {
|
|
2866
|
+
let n = Ei(e, $.__wbindgen_malloc), r = Mi, i = Ei(t, $.__wbindgen_malloc), a = Mi, o = $.calculate_range(n, r, i, a);
|
|
2867
|
+
if (o[3]) throw Di(o[2]);
|
|
2868
|
+
var s = _i(o[0], o[1]).slice();
|
|
2822
2869
|
return $.__wbindgen_free(o[0], o[1] * 8, 8), s;
|
|
2823
2870
|
}
|
|
2824
|
-
function
|
|
2825
|
-
let i =
|
|
2826
|
-
if (c[3]) throw
|
|
2827
|
-
var l =
|
|
2871
|
+
function pi(e, t, n, r) {
|
|
2872
|
+
let i = Ei(e, $.__wbindgen_malloc), a = Mi, o = Ei(t, $.__wbindgen_malloc), s = Mi, c = $.find_visible_range(i, a, o, s, n, r);
|
|
2873
|
+
if (c[3]) throw Di(c[2]);
|
|
2874
|
+
var l = vi(c[0], c[1]).slice();
|
|
2828
2875
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2829
2876
|
}
|
|
2830
|
-
function
|
|
2831
|
-
let i =
|
|
2832
|
-
if (c[3]) throw
|
|
2833
|
-
var l =
|
|
2877
|
+
function mi(e, t, n, r) {
|
|
2878
|
+
let i = Ei(e, $.__wbindgen_malloc), a = Mi, o = Ei(t, $.__wbindgen_malloc), s = Mi, c = $.sample_aggregates(i, a, o, s, n, r);
|
|
2879
|
+
if (c[3]) throw Di(c[2]);
|
|
2880
|
+
var l = _i(c[0], c[1]).slice();
|
|
2834
2881
|
return $.__wbindgen_free(c[0], c[1] * 8, 8), l;
|
|
2835
2882
|
}
|
|
2836
|
-
function
|
|
2837
|
-
let i =
|
|
2838
|
-
if (c[3]) throw
|
|
2839
|
-
var l =
|
|
2883
|
+
function hi(e, t, n, r) {
|
|
2884
|
+
let i = Ei(e, $.__wbindgen_malloc), a = Mi, o = Ei(t, $.__wbindgen_malloc), s = Mi, c = $.sample_indexes(i, a, o, s, n, r);
|
|
2885
|
+
if (c[3]) throw Di(c[2]);
|
|
2886
|
+
var l = vi(c[0], c[1]).slice();
|
|
2840
2887
|
return $.__wbindgen_free(c[0], c[1] * 4, 4), l;
|
|
2841
2888
|
}
|
|
2842
|
-
function
|
|
2889
|
+
function gi() {
|
|
2843
2890
|
return {
|
|
2844
2891
|
__proto__: null,
|
|
2845
2892
|
"./waveform_sampling_wasm_bg.js": {
|
|
2846
2893
|
__proto__: null,
|
|
2847
2894
|
__wbindgen_cast_0000000000000001: function(e, t) {
|
|
2848
|
-
return
|
|
2895
|
+
return xi(e, t);
|
|
2849
2896
|
},
|
|
2850
2897
|
__wbindgen_init_externref_table: function() {
|
|
2851
2898
|
let e = $.__wbindgen_externrefs, t = e.grow(4);
|
|
@@ -2854,52 +2901,52 @@ function di() {
|
|
|
2854
2901
|
}
|
|
2855
2902
|
};
|
|
2856
2903
|
}
|
|
2857
|
-
function
|
|
2858
|
-
return e >>>= 0,
|
|
2859
|
-
}
|
|
2860
|
-
function pi(e, t) {
|
|
2861
|
-
return e >>>= 0, vi().subarray(e / 4, e / 4 + t);
|
|
2862
|
-
}
|
|
2863
|
-
var mi = null;
|
|
2864
|
-
function hi() {
|
|
2865
|
-
return (mi === null || mi.byteLength === 0) && (mi = new Float64Array($.memory.buffer)), mi;
|
|
2866
|
-
}
|
|
2867
|
-
function gi(e, t) {
|
|
2868
|
-
return e >>>= 0, Ei(e, t);
|
|
2904
|
+
function _i(e, t) {
|
|
2905
|
+
return e >>>= 0, bi().subarray(e / 8, e / 8 + t);
|
|
2869
2906
|
}
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
return (_i === null || _i.byteLength === 0) && (_i = new Uint32Array($.memory.buffer)), _i;
|
|
2907
|
+
function vi(e, t) {
|
|
2908
|
+
return e >>>= 0, Ci().subarray(e / 4, e / 4 + t);
|
|
2873
2909
|
}
|
|
2874
2910
|
var yi = null;
|
|
2875
2911
|
function bi() {
|
|
2876
|
-
return (yi === null || yi.byteLength === 0) && (yi = new
|
|
2912
|
+
return (yi === null || yi.byteLength === 0) && (yi = new Float64Array($.memory.buffer)), yi;
|
|
2877
2913
|
}
|
|
2878
2914
|
function xi(e, t) {
|
|
2915
|
+
return e >>>= 0, ji(e, t);
|
|
2916
|
+
}
|
|
2917
|
+
var Si = null;
|
|
2918
|
+
function Ci() {
|
|
2919
|
+
return (Si === null || Si.byteLength === 0) && (Si = new Uint32Array($.memory.buffer)), Si;
|
|
2920
|
+
}
|
|
2921
|
+
var wi = null;
|
|
2922
|
+
function Ti() {
|
|
2923
|
+
return (wi === null || wi.byteLength === 0) && (wi = new Uint8Array($.memory.buffer)), wi;
|
|
2924
|
+
}
|
|
2925
|
+
function Ei(e, t) {
|
|
2879
2926
|
let n = t(e.length * 8, 8) >>> 0;
|
|
2880
|
-
return
|
|
2927
|
+
return bi().set(e, n / 8), Mi = e.length, n;
|
|
2881
2928
|
}
|
|
2882
|
-
function
|
|
2929
|
+
function Di(e) {
|
|
2883
2930
|
let t = $.__wbindgen_externrefs.get(e);
|
|
2884
2931
|
return $.__externref_table_dealloc(e), t;
|
|
2885
2932
|
}
|
|
2886
|
-
var
|
|
2933
|
+
var Oi = new TextDecoder("utf-8", {
|
|
2887
2934
|
ignoreBOM: !0,
|
|
2888
2935
|
fatal: !0
|
|
2889
2936
|
});
|
|
2890
|
-
|
|
2891
|
-
var
|
|
2892
|
-
function
|
|
2893
|
-
return
|
|
2937
|
+
Oi.decode();
|
|
2938
|
+
var ki = 2146435072, Ai = 0;
|
|
2939
|
+
function ji(e, t) {
|
|
2940
|
+
return Ai += t, Ai >= ki && (Oi = new TextDecoder("utf-8", {
|
|
2894
2941
|
ignoreBOM: !0,
|
|
2895
2942
|
fatal: !0
|
|
2896
|
-
}),
|
|
2943
|
+
}), Oi.decode(), Ai = t), Oi.decode(Ti().subarray(e, e + t));
|
|
2897
2944
|
}
|
|
2898
|
-
var
|
|
2899
|
-
function
|
|
2900
|
-
return $ = e.exports,
|
|
2945
|
+
var Mi = 0, $;
|
|
2946
|
+
function Ni(e, t) {
|
|
2947
|
+
return $ = e.exports, yi = null, Si = null, wi = null, $.__wbindgen_start(), $;
|
|
2901
2948
|
}
|
|
2902
|
-
async function
|
|
2949
|
+
async function Pi(e, t) {
|
|
2903
2950
|
if (typeof Response == "function" && e instanceof Response) {
|
|
2904
2951
|
if (typeof WebAssembly.instantiateStreaming == "function") try {
|
|
2905
2952
|
return await WebAssembly.instantiateStreaming(e, t);
|
|
@@ -2925,17 +2972,17 @@ async function ki(e, t) {
|
|
|
2925
2972
|
return !1;
|
|
2926
2973
|
}
|
|
2927
2974
|
}
|
|
2928
|
-
async function
|
|
2975
|
+
async function Fi(e) {
|
|
2929
2976
|
if ($ !== void 0) return $;
|
|
2930
2977
|
e !== void 0 && (Object.getPrototypeOf(e) === Object.prototype ? {module_or_path: e} = e : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), e === void 0 && (e = new URL("data:application/wasm;base64,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kkA7AAAgAkEEayECIAVB/6ziBEsNAAsLIABBCUsEQCACQQJrIgIgBkEGamogACAAQf//A3FB5ABuIgBB5ABsa0H//wNxQQF0LwDSkkA7AAALQQAgBCAAG0UEQCACQQFrIgIgBkEGamogAEEBdC0A05JAOgAACwJ/IAZBBmogAmohB0EAIQRBK0GAgMQAIAEoAggiA0GAgIABcSIAGyEIIANBgICABHFFRSEKAkBBCiACayILIABBFXZqIgAgAS8BDCIFSQRAAkACQCADQYCAgAhxRQRAIAUgAGshBUEAIQACQAJAAkAgA0EddkEDcUEBaw4DAAEAAgsgBSEADAELIAVB/v8DcUEBdiEACyADQf///wBxIQkgASgCBCEDIAEoAgAhAQNAIARB//8DcSAAQf//A3FPDQJBASECIARBAWohBCABIAkgAygCEBEBAEUNAAsMBAsgASABKQIIIgynQYCAgP95cUGwgICAAnI2AghBASECIAEoAgAiAyABKAIEIgkgCCAKECwNAyAFIABrQf//A3EhAANAIARB//8DcSAATw0CIARBAWohBCADQTAgCSgCEBEBAEUNAAsMAwtBASECIAEgAyAIIAoQLA0CIAEgByALIAMoAgwRAgANAkEAIQQgBSAAa0H//wNxIQADQCAEQf//A3EiBSAASSECIAAgBU0NAyAEQQFqIQQgASAJIAMoAhARAQBFDQALDAILIAMgByALIAkoAgwRAgANASABIAw3AghBAAwCC0EBIQIgASgCACIAIAEoAgQiASAIIAoQLA0AIAAgByALIAEoAgwRAgAhAgsgAgsgBkEQaiQAC4gCAQZ/IAAoAggiBCECAn9BASABQYABSQ0AGkECIAFBgBBJDQAaQQNBBCABQYCABEkbCyIGIAAoAgAgBGtLBH8gACAEIAYQHSAAKAIIBSACCyAAKAIEaiECAkAgAUGAAU8EQCABQT9xQYB/ciEFIAFBBnYhAyABQYAQSQRAIAIgBToAASACIANBwAFyOgAADAILIAFBDHYhByADQT9xQYB/ciEDIAFB//8DTQRAIAIgBToAAiACIAM6AAEgAiAHQeABcjoAAAwCCyACIAU6AAMgAiADOgACIAIgB0E/cUGAf3I6AAEgAiABQRJ2QXByOgAADAELIAIgAToAAAsgACAEIAZqNgIIQQALzwIBCH9BAEHo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gIACcSABQYCABElyDQBBgIAEIQYgAEGAgARxIAFBgIAISXINAEGAgAghBiAAQYCACHEgAUGAgBBJcg0AQYCAECEGIABBgIAQcSABQYCAIElyDQBBgIAgIQYgAEGAgCBxIAFBgIDAAElyDQBBgIDAACEGIABBgIDAAHEgAUGAgIABSXINAEGAgIABIQYgAEGAgIABcSABQYCAgAJJcg0AQYCAgAIhBiAAQYCAgAJxIAFBgICABElyDQBBgICABCEGIABBgICABHEgAUGAgIAISXINAEGAgIAIIQYgAEGAgIAIcSABQYCAgBBJcg0AQYCAgBAhBiAAQYCAgBBxIAFBgICAIElyDQBBgICAICEGIABBgICAIHEgAUGAgIDAAElyDQBBgICAwAAhBiAAQYCAgMAAcSABQYCAgIABSXINAEGAgICAASEGIABBgICAgAFxIAFBgICAgAJJcg0AQYCAgIACIQYgAEGAgICAAnEgAUGAgICABElyDQBBgICAgAQhBiAAQYCAgIAEcSABQQBOcg0AEEoACyAAIQEgACEDAkAgBmgiCEUNAAJAIAggC0kEQCAQIAhBGGxqIgEoAgBBgICAgHhHDQEMDAsgCCALQbyJwAAQJgALIAAgCHYiAyABKAIIIghJBEAgASgCFCIIIANLBEAgA0ECdCIIIAEoAhBqKAIAIQMgASgCBCAIaigCACEBDAILIAMgCEHcicAAECYACyADIAhBzInAABAmAAsgASAMTw0BIAcgDE8NAiAHIAEgDyABQQN0aisDACInIA8gB0EDdGorAwAiKGNFIAEgB08gJyAoYnJxGyEHIAMgDE8NAyAEIAxPDQQgBCADIA8gA0EDdGorAwAiJyAPIARBA3RqKwMAIihkRSADIARPICcgKGJycRshBCAAIAZqIgAgI0kNAAsCQAJAAkACQAJAIBZBAWsOBgMAAAECBAALQZyKwABBKEHEisAAED4ACyAFKAIUIgAEQCAFKAIQIABBAnRqQQRrKAIAIAdGDQkLIAUoAgwgAEYEQCAFQQxqECcLIAUoAhAgAEECdGogBzYCACAFIABBAWo2AhQMCAsgBSgCFCIABEAgBSgCECAAQQJ0akEEaygCACAERg0ICyAFKAIMIABGBEAgBUEMahAnCyAFKAIQIABBAnRqIAQ2AgAgBSAAQQFqNgIUDAcLIAUgBDYC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IQ4gAyEKIwBB8ABrIgckAAJ/AkAgBL0iEEL///////////8Ag0KAgICAgICA+P8AWg0AIAW9IhFC////////////AIMiD1AgEUIAUyIIIA9CAX1C/////////wdUcXIgD0KAgICAgICA+P8AUXIgD0KAgICAgICA+P8AVXIgD0KAgICAgICACH1CgICAgICAgPD/AFQgCHFyDQAgAUEDdCELQQAhCAJAA0AgCCALRg0BIAAgCGogCEEIaiEIKQMAQv///////////wCDQv/////////3/wBYDQALQcmIwABBLBA/rSEQIAdBGGohCUGAgICAeAwCCwJAIApFDQAgASAKRgRAIAFBAWohCSACIQgDQCAJQQFrIglBAkkNAiAIKAIAIQsgCyAIQQRqIggoAgBNDQALC0GciMAAQS0QP60hECAHQRhqIQlBgICAgHgMAgsCQCABRQRAQQghCwwBCyABQQN0IghBCBBLIgsEQCAIRQ0BIAsgACAI/AoAAAwBC0EIIAgQPQALAkACQCAKRQRAQYCAgIB4IQoMAQsgCkECdCIJQQQQSyIIRQ0BIAkEQCAIIAIgCfwKAAALIAitIAqtQiCGhCEPC0QAAAAAAADwPyAFoyEEIAdBADYCGCAHQRBqIQlBAAwCC0EEIAkQPQALQfWIwABBNhA/rSEQIAdBGGohCUGAgICAeAshCCAJIAg2AgACfyAHKAIYIghBgICAgHhGBEBBASEJIBCnDAELIAcgBygCEDYCaCAHQQQ2AmQgByAINgJgIAdBADYCXCAHQoCAgIDAADcCVCAHIAE2AlAgByALNgJMIAcgATYCSCAHIA83A0AgByAKNgI8IAdBgICAgHg2AjAgByAGNgIsIAdBADYCKCAHIAQ5AyAgByAQNwMYIAdBCGogB0EYahAXIAcoAgghCSAHKAIMCyEGIA4gCTYCACAOIAY2AgQgB0HwAGokACANKAIMIQogDSgCCCEGIAMEQCACIANBAnRBBBBHCyABBEAgACABQQN0QQgQRwsgDCAGQQFxIgA2AgggDCAKQQAgABs2AgQgDEEAIAogABs2AgAgDUEQaiQAIAwoAgAgDCgCBCAMKAIIIAxBEGokAAuBIAMmfwV8AX4jAEEQayIPJAAjAEFAaiIKJAAgCiAENgIoIAogAzYCJCAKIAI2AiAgCiABNgIcIAogADYC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ZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAASGNhbm5vdCBhY2Nlc3MgYSBUaHJlYWQgTG9jYWwgU3RvcmFnZSB2YWx1ZSBkdXJpbmcgb3IgYWZ0ZXIgZGVzdHJ1Y3Rpb246IMAAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3NoYXJlZC9zbWFsbHNvcnQucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3N0YWJsZS9xdWlja3NvcnQucnMAL3J1c3RjLzU5ODA3NjE2ZTFmYTI1NDA3MjRiZmJhYzE0ZDc5NzZkN2U0YTM4NjAvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExOC9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy81OTgwNzYxNmUxZmEyNTQwNzI0YmZiYWMxNGQ3OTc2ZDdlNGEzODYwL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjExL3NyYy9kbG1hbGxvYy5ycwBzcmMvbGliLnJzAAAAAA4DEAAKAAAA0gAAABkAAAAOAxAACgAAANoAAAAaAAAADgMQAAoAAADaAAAAPQAAAA4DEAAKAAAAyQAAAB0AAAAOAxAACgAAAKoAAAAQAAAADgMQAAoAAACqAAAAIgAAAA4DEAAKAAAArQAAACIAAAAOAxAACgAAABcCAAAcAAAADgMQAAoAAAALAgAAJgAAAA4DEAAKAAAA8gEAACoAAAAOAxAACgAAAPgBAAAqAAAADgMQAAoAAAD+AQAAMgAAAA4DEAAKAAAAkgEAAA8AAAAOAxAACgAAAJIBAAAsAAAADgMQAAoAAACNAQAADwAAAA4DEAAKAAAAjQEAACwAAABzb3VyY2UgaW5kZXhlcyBtdXN0IGJlIGVtcHR5IG9yIG5vbmRlY3JlYXNpbmdzYW1wbGUgdmFsdWVzIG11c3QgYmUgZmluaXRlIGFuZCBhZGRyZXNzYWJsZXNhbXBsZSBtZXRhZGF0YSBtdXN0IGJlIGZpbml0ZSBhbmQgc2FtcGxlUmF0ZSBwb3NpdGl2ZQAOAxAACgAAABYBAAAkAAAADgMQAAoAAAAuAgAAMAAAAA4DEAAKAAAALwIAAB8AAAAOAxAACgAAAC8CAAA1AAAADgMQAAoAAADWAQAAIAAAAA4DEAAKAAAAsQEAAC0AAAAOAxAACgAAALIBAAAtAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZQ4DEAAKAAAAmgIAABYAAABzdHJhdGVneSBkb2VzIG5vdCByZXR1cm4gc291cmNlIGluZGV4ZXNzdHJhdGVneSBkb2VzIG5vdCByZXR1cm4gYWdncmVnYXRlIHZhbHVlc3JlZ2lzdGVyZWQgZGF0YXNldHMgbXVzdCBjb250YWluIGZpbml0ZSBjb29yZGluYXRlc3ggYW5kIHkgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aA4DEAAKAAAAdgEAABIAAAAOAxAACgAAAHMBAAA8AAAADgMQAAoAAABMAgAAHAAAAA4DEAAKAAAATwIAACwAAAAOAxAACgAAAFACAAAdAAAADgMQAAoAAABRAgAAHQAAAA4DEAAKAAAAUgIAACUAAAABAAAADgMQAAoAAACUAAAAEgAAAA4DEAAKAAAAggAAABAAAAAOAxAACgAAAIIAAAAiAAAADgMQAAoAAACFAAAAIgAAAA4DEAAKAAAAAQEAAB0AAAAOAxAACgAAABwDAAAlAAAADgMQAAoAAABJAAAAQwAAAA4DEAAKAAAALQMAAA4AAAAOAxAACgAAACYDAAAnAAAAZGF0YXNldCBoYW5kbGUgd2FzIG5vdCBmb3VuZA4DEAAKAAAAPwMAACUAAAAOAxAACgAAAAoDAAAlAAAADgMQAAoAAABRAwAAJQAAANoBEABPAAAA3wEAABkAAABtaWQgPiBsZW4AAAB6ARAAXwAAAE0AAAAfAAAAegEQAF8AAABHAAAAFwAAAA4DEAAKAAAAfwEAABoAAAAOAxAACgAAAPMAAAAWAAAADgMQAAoAAABJAAAAQwAAAA4DEAAKAAAASQAAAEMAAAAqAhAAZwAAAHwAAAARAAAAKgIQAGcAAACJAAAAEQAAAAUAAAAMAAAABAAAAAYAAAAHAAAACAAAAAAAAAAIAAAABAAAAAkAAAAKAAAACwAAAAwAAAANAAAAEAAAAAQAAAAOAAAADwAAABAAAAARAAAAbV3L1ixQ62N4QaZXcRuLuRWiXFU0VQfUU3itgVHwo/dhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAADjAhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAA4wIQACoAAAC3BAAADQAAAAAAAAAIAAAABAAAABIAAABBY2Nlc3NFcnJvcgAFAAAADAAAAAQAAAATAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAACSAhAAUAAAABwAAAAFAAAAfSB9Y2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZTAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5YXR0ZW1wdCB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciB3aXRoIGEgZGl2aXNvciBvZiB6ZXJvdXNlci1wcm92aWRlZCBjb21wYXJpc29uIGZ1bmN0aW9uIGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgYSB0b3RhbCBvcmRlcgAaARAAXwAAAFwDAAAFAAAAUmVmQ2VsbCBhbHJlYWR5IG11dGFibHkgYm9ycm93ZWRSZWZDZWxsIGFscmVhZHkgYm9ycm93ZWQAQfCVwAALAQgAQYCWwAALAQQAfAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuOTUuMCAoNTk4MDc2MTZlIDIwMjYtMDQtMTQpBndhbHJ1cwYwLjI2LjEMd2FzbS1iaW5kZ2VuEzAuMi4xMTggKDc1M2JiN2ZmNCkAaw90YXJnZXRfZmVhdHVyZXMGKw9tdXRhYmxlLWdsb2JhbHMrE25vbnRyYXBwaW5nLWZwdG9pbnQrC2J1bGstbWVtb3J5KwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVl", "" + import.meta.url));
|
|
2931
|
-
let t =
|
|
2978
|
+
let t = gi();
|
|
2932
2979
|
(typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e));
|
|
2933
|
-
let { instance: n, module: r } = await
|
|
2934
|
-
return
|
|
2980
|
+
let { instance: n, module: r } = await Pi(await e, t);
|
|
2981
|
+
return Ni(n, r);
|
|
2935
2982
|
}
|
|
2936
2983
|
//#endregion
|
|
2937
2984
|
//#region src/core/wasmSampling.ts
|
|
2938
|
-
var
|
|
2985
|
+
var Ii = {
|
|
2939
2986
|
none: 0,
|
|
2940
2987
|
peak: 1,
|
|
2941
2988
|
lttb: 2,
|
|
@@ -2944,24 +2991,24 @@ var ji = {
|
|
|
2944
2991
|
max: 5,
|
|
2945
2992
|
minmax: 6,
|
|
2946
2993
|
sum: 7
|
|
2947
|
-
},
|
|
2948
|
-
function
|
|
2994
|
+
}, Li;
|
|
2995
|
+
function Ri(e, t) {
|
|
2949
2996
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
2950
2997
|
}
|
|
2951
|
-
function
|
|
2998
|
+
function zi(e) {
|
|
2952
2999
|
if (e.x.length !== e.y.length) throw Error("x and y must have the same length");
|
|
2953
3000
|
}
|
|
2954
|
-
function
|
|
2955
|
-
return
|
|
3001
|
+
function Bi(e) {
|
|
3002
|
+
return Li ??= Promise.resolve(Fi(e)).then(() => void 0), Li;
|
|
2956
3003
|
}
|
|
2957
|
-
async function
|
|
2958
|
-
|
|
2959
|
-
let t =
|
|
3004
|
+
async function Vi(e) {
|
|
3005
|
+
zi(e), await Bi();
|
|
3006
|
+
let t = Ri(e.targetPointCount, e.x.length), n = Ii[e.strategy];
|
|
2960
3007
|
if (e.strategy !== "average" && e.strategy !== "sum") return {
|
|
2961
3008
|
kind: "source-indexes",
|
|
2962
|
-
sourceIndexes:
|
|
3009
|
+
sourceIndexes: hi(e.x, e.y, n, t)
|
|
2963
3010
|
};
|
|
2964
|
-
let r =
|
|
3011
|
+
let r = mi(e.x, e.y, n, t), i = new Float64Array(r.length / 2), a = new Float64Array(r.length / 2);
|
|
2965
3012
|
for (let e = 0; e < i.length; e += 1) i[e] = r[e * 2], a[e] = r[e * 2 + 1];
|
|
2966
3013
|
return {
|
|
2967
3014
|
kind: "aggregates",
|
|
@@ -2969,50 +3016,69 @@ async function Ii(e) {
|
|
|
2969
3016
|
y: a
|
|
2970
3017
|
};
|
|
2971
3018
|
}
|
|
2972
|
-
async function
|
|
3019
|
+
async function Hi(e, t) {
|
|
2973
3020
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2974
|
-
await
|
|
2975
|
-
let n =
|
|
3021
|
+
await Bi();
|
|
3022
|
+
let n = fi(e, t);
|
|
2976
3023
|
return n.length === 4 ? {
|
|
2977
3024
|
x: [n[0], n[1]],
|
|
2978
3025
|
y: [n[2], n[3]]
|
|
2979
3026
|
} : void 0;
|
|
2980
3027
|
}
|
|
2981
|
-
async function
|
|
3028
|
+
async function Ui(e, t, n) {
|
|
2982
3029
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
2983
|
-
await
|
|
2984
|
-
let r =
|
|
3030
|
+
await Bi();
|
|
3031
|
+
let r = pi(e, t, n[0], n[1]);
|
|
2985
3032
|
return [r[0], r[1]];
|
|
2986
3033
|
}
|
|
2987
3034
|
//#endregion
|
|
2988
3035
|
//#region src/components/core/trackPagination.ts
|
|
2989
|
-
var
|
|
3036
|
+
var Wi = (e, t) => t ? e.filter((e) => e.series.length > 0) : e, Gi = (e, t, n, r, i) => {
|
|
2990
3037
|
let a = t?.[i];
|
|
2991
3038
|
if (a !== void 0) return a;
|
|
2992
3039
|
if (e !== void 0) return n === 1 ? e : typeof e == "number" ? e + r : `${e}-${r + 1}`;
|
|
2993
|
-
},
|
|
3040
|
+
}, Ki = (e, t, n) => (r) => {
|
|
2994
3041
|
let i = n(), a = i.findIndex((e) => e.id === r);
|
|
2995
|
-
return
|
|
3042
|
+
return Gi(e(), t(), i.length, a >= 0 ? a : 0, r);
|
|
2996
3043
|
};
|
|
2997
3044
|
//#endregion
|
|
2998
3045
|
//#region src/components/core/yAxisLayoutMetrics.ts
|
|
2999
|
-
function
|
|
3046
|
+
function qi(e, t, n, r) {
|
|
3000
3047
|
return e === "independent" ? Object.fromEntries(t.flatMap((e, t) => {
|
|
3001
3048
|
let n = r[t];
|
|
3002
3049
|
return n ? [[e.id, n]] : [];
|
|
3003
3050
|
})) : n;
|
|
3004
3051
|
}
|
|
3005
|
-
function
|
|
3006
|
-
let
|
|
3052
|
+
function Ji(e, t, n, r, i, a, o, s, c = 0, l = !0) {
|
|
3053
|
+
let u = e.filter((e) => e.visibleSeries.length > 0).flatMap((e) => Tr(e, t, n, r, i, c)).map((e) => Er(e.domain, a, void 0, l ? e.seriesList[0]?.unit : void 0, o, s).tickTextWidth), d = Math.max(7, ...u), f = d + 7 + 4, p = -(7 + d + 0 + 20 / 2);
|
|
3007
3054
|
return {
|
|
3008
|
-
tickClearance:
|
|
3009
|
-
fullClearance:
|
|
3010
|
-
labelCenterX:
|
|
3055
|
+
tickClearance: f,
|
|
3056
|
+
fullClearance: d + 7 + 0 + 20 + 4,
|
|
3057
|
+
labelCenterX: p
|
|
3058
|
+
};
|
|
3059
|
+
}
|
|
3060
|
+
//#endregion
|
|
3061
|
+
//#region src/components/core/useWaveformYAxisLayout.ts
|
|
3062
|
+
function Yi(e) {
|
|
3063
|
+
let { props: n, chartTracks: r, layoutTracks: i, chartWidth: a, gridOptions: o, viewportYDomains: s, yAxisTickCount: c } = e, l = t(() => n.layoutPreset === "edge-compact"), u = t(() => !l.value || n.unitDisplayMode === "axis"), d = t(() => Ji(r.value, n.overlayMode, n.yDomain, n.yDomains, s.value, n.axes?.y?.nice !== !1, c.value, n.displayMode === "compact", n.axes?.y?.upperPaddingRatio, u.value)), f = t(() => r.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), p = t(() => r.value.some((e) => e.visibleSeries.length > 0)), m = t(() => Math.max(zt.left, f.value ? d.value.fullClearance : p.value ? d.value.tickClearance : 0)), h = t(() => Dr(i.value.filter((e) => e.visibleSeries.length > 0), n.overlayMode, n.yDomain, n.yDomains, c.value, n.axes?.y?.nice !== !1, n.displayMode === "compact", s.value, n.axes?.y?.upperPaddingRatio, u.value)), g = t(() => l.value ? zt.right + Math.max(0, _.value - 4) : n.overlayMode === "multi-axis" ? Math.max(m.value, h.value.clearance.left) : m.value), _ = t(() => p.value ? n.overlayMode === "multi-axis" || f.value ? h.value.clearance.left : d.value.tickClearance : 0), v = t(() => n.overlayMode === "multi-axis" ? Math.max(zt.right, h.value.clearance.right) : zt.right), y = t(() => Math.max(0, a.value - g.value - v.value));
|
|
3064
|
+
return {
|
|
3065
|
+
yAxisMetrics: d,
|
|
3066
|
+
yAxisSlots: h,
|
|
3067
|
+
resolvedChartLeftMargin: g,
|
|
3068
|
+
innerWidth: y,
|
|
3069
|
+
yAxisLayout: t(() => {
|
|
3070
|
+
let e = Gn(n.displayMode), t = o.value.columnCount, r = t > 1, i = Math.max(e, l.value ? h.value.clearance.left : d.value.fullClearance), a = Math.max(e, d.value.tickClearance), s = (y.value - i * Math.max(0, t - 1)) / t >= 120;
|
|
3071
|
+
return {
|
|
3072
|
+
horizontalGap: n.overlayMode === "multi-axis" && r && p.value ? Math.max(e, h.value.clearance.left + h.value.clearance.right) : r && p.value ? f.value && s ? i : a : e,
|
|
3073
|
+
hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && f.value && !s
|
|
3074
|
+
};
|
|
3075
|
+
}),
|
|
3076
|
+
hasVisibleWaveformData: p
|
|
3011
3077
|
};
|
|
3012
3078
|
}
|
|
3013
3079
|
//#endregion
|
|
3014
3080
|
//#region src/components/core/useWaveformLayout.ts
|
|
3015
|
-
function
|
|
3081
|
+
function Xi(e) {
|
|
3016
3082
|
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) => ({
|
|
3017
3083
|
...e,
|
|
3018
3084
|
color: e.color ?? (t === 0 ? n.lineColor : Ut[t % Ut.length])
|
|
@@ -3035,84 +3101,91 @@ function Wi(e) {
|
|
|
3035
3101
|
yDomain: o.length ? _t(o) : [0, 1]
|
|
3036
3102
|
};
|
|
3037
3103
|
});
|
|
3038
|
-
}), v = t(() => Dn(n.rendering)),
|
|
3039
|
-
let e =
|
|
3040
|
-
return g.value.fillIncompleteLastRow && e.length > 0 ? e :
|
|
3041
|
-
}),
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3104
|
+
}), v = t(() => n.unitDisplayMode === "legend-single-series" && !_.value.some((e) => e.series.length > 1)), y = t(() => Dn(n.rendering)), b = t(() => Wi(_.value, g.value.hideEmptyTracks)), x = t(() => Un(b.value.length, g.value)), S = t(() => Wn(b.value, i.value, g.value)), C = t(() => {
|
|
3105
|
+
let e = S.value.filter((e) => e.series.length > 0);
|
|
3106
|
+
return g.value.fillIncompleteLastRow && e.length > 0 ? e : S.value;
|
|
3107
|
+
}), w = t(() => vr(s.value, n.axes?.y?.splitNumber)), T = t(() => qi(n.displayMode, _.value, d.value, f.value)), { yAxisMetrics: E, yAxisSlots: D, resolvedChartLeftMargin: O, innerWidth: k, yAxisLayout: A, hasVisibleWaveformData: j } = Yi({
|
|
3108
|
+
props: n,
|
|
3109
|
+
chartTracks: _,
|
|
3110
|
+
layoutTracks: C,
|
|
3111
|
+
chartWidth: o,
|
|
3112
|
+
gridOptions: g,
|
|
3113
|
+
viewportYDomains: T,
|
|
3114
|
+
yAxisTickCount: w
|
|
3115
|
+
}), M = t(() => h.value.length > 0), N = t(() => k.value > 0 && s.value > 0), P = t(() => n.xLabel ?? `时间(${n.timeUnit})`), F = t(() => n.interactionMode), I = t(() => F.value !== "annotation"), L = t(() => {
|
|
3048
3116
|
let e = [];
|
|
3049
3117
|
return _.value.forEach((t) => {
|
|
3050
3118
|
t.visibleSeries.length && e.push(t.xDomain[0], t.xDomain[1]);
|
|
3051
3119
|
}), _t(e);
|
|
3052
|
-
}),
|
|
3120
|
+
}), R = t(() => {
|
|
3053
3121
|
let e = n.initialXDomain;
|
|
3054
|
-
return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? cr(Qn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0), n) : cr(Qn(
|
|
3055
|
-
}),
|
|
3122
|
+
return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? cr(Qn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0), n) : cr(Qn(L.value, n.xDomainStrategy), n);
|
|
3123
|
+
}), z = (e) => {
|
|
3056
3124
|
let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
|
|
3057
3125
|
return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ? cr(Qn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0), n) : cr(Qn(_t(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy), n);
|
|
3058
|
-
},
|
|
3126
|
+
}, B = t(() => lr(l.value.rescaleX(W(R.value, [0, k.value])).domain(), n)), V = t(() => Kn(k.value, s.value, g.value, n.displayMode, C.value.map((e) => n.layoutPreset === "edge-compact" ? e.series.length > 0 : !!e), A.value.horizontalGap, !0, n.layoutPreset === "edge-compact" && !c.value).map((e, t) => ({
|
|
3059
3127
|
...e,
|
|
3060
|
-
series:
|
|
3061
|
-
}))),
|
|
3062
|
-
cells:
|
|
3128
|
+
series: C.value[t]
|
|
3129
|
+
}))), H = t(() => fr({
|
|
3130
|
+
cells: V.value,
|
|
3063
3131
|
grid: g.value,
|
|
3132
|
+
useNonEmptyBottomTracks: n.layoutPreset === "edge-compact",
|
|
3133
|
+
compactYAxisLayout: n.layoutPreset === "edge-compact",
|
|
3134
|
+
showAxisUnits: n.layoutPreset !== "edge-compact" || n.unitDisplayMode === "axis",
|
|
3064
3135
|
displayMode: n.displayMode,
|
|
3065
3136
|
overlayMode: n.overlayMode,
|
|
3066
3137
|
independentTransforms: u.value,
|
|
3067
|
-
sharedZoomDomain:
|
|
3068
|
-
initialXDomain: n.initialXDomain ?
|
|
3138
|
+
sharedZoomDomain: B.value,
|
|
3139
|
+
initialXDomain: n.initialXDomain ? R.value : void 0,
|
|
3069
3140
|
initialXDomains: n.initialXDomains,
|
|
3070
3141
|
xDomainStrategy: n.xDomainStrategy,
|
|
3071
3142
|
integerZoom: n.integerZoom,
|
|
3072
3143
|
fixedYDomain: n.yDomain,
|
|
3073
3144
|
fixedYDomains: n.yDomains,
|
|
3074
|
-
yDomains:
|
|
3145
|
+
yDomains: T.value,
|
|
3075
3146
|
timeUnit: n.timeUnit,
|
|
3076
3147
|
xAxisLabelFormatter: n.axes?.x?.labelFormatter,
|
|
3077
3148
|
yAxisSplitNumber: n.axes?.y?.splitNumber,
|
|
3078
3149
|
yAxisNice: n.axes?.y?.nice,
|
|
3079
|
-
|
|
3150
|
+
yAxisUpperPaddingRatio: n.axes?.y?.upperPaddingRatio,
|
|
3151
|
+
rendering: y.value,
|
|
3080
3152
|
linePointOverrides: m?.value,
|
|
3081
|
-
hideSecondaryLabels: c.value ||
|
|
3153
|
+
hideSecondaryLabels: c.value || A.value.hideSecondaryLabels,
|
|
3082
3154
|
yLabel: n.yLabel,
|
|
3083
|
-
yAxisLabelX:
|
|
3084
|
-
yAxisSlots:
|
|
3085
|
-
showCompactEmptyTracks: n.displayMode === "compact" &&
|
|
3086
|
-
})),
|
|
3155
|
+
yAxisLabelX: D.value.slots.find((e) => e.side === "left" && e.sideIndex === 0)?.labelOffset ?? E.value.labelCenterX,
|
|
3156
|
+
yAxisSlots: D.value.slots,
|
|
3157
|
+
showCompactEmptyTracks: n.displayMode === "compact" && M.value
|
|
3158
|
+
})), U = (e) => e.seriesList.map((t) => ({
|
|
3087
3159
|
...e,
|
|
3088
3160
|
series: t,
|
|
3089
3161
|
yScale: e.seriesPaths.find((e) => e.series.id === t.id)?.yScale ?? e.yScale
|
|
3090
|
-
})),
|
|
3162
|
+
})), G = (e, t) => e.seriesPaths.find((e) => e.series.id === t)?.yScale ?? e.yScale, K = t(() => H.value.flatMap(U));
|
|
3091
3163
|
return {
|
|
3092
3164
|
chartSeries: h,
|
|
3093
3165
|
chartTracks: _,
|
|
3094
|
-
|
|
3095
|
-
|
|
3166
|
+
showLegendUnits: v,
|
|
3167
|
+
pageableTracks: b,
|
|
3168
|
+
renderingOptions: y,
|
|
3096
3169
|
gridOptions: g,
|
|
3097
|
-
pageCount:
|
|
3098
|
-
pagedTracks:
|
|
3099
|
-
resolvedChartLeftMargin:
|
|
3100
|
-
innerWidth:
|
|
3101
|
-
hasVisibleWaveformData:
|
|
3102
|
-
hasWaveformData:
|
|
3103
|
-
hasChartArea:
|
|
3104
|
-
resolvedXLabel:
|
|
3105
|
-
activeInteractionMode:
|
|
3106
|
-
isZoomMode:
|
|
3107
|
-
initialXDomain:
|
|
3108
|
-
sharedZoomDomain:
|
|
3109
|
-
resolveInitialTrackDomain:
|
|
3110
|
-
gridCells:
|
|
3111
|
-
trackLayouts:
|
|
3112
|
-
annotationLayoutsForTrack:
|
|
3113
|
-
resolveSeriesYScale:
|
|
3114
|
-
annotationTrackLayouts:
|
|
3115
|
-
renderedAnnotations: t(() => n.annotationsVisible ? Pe(n.annotations,
|
|
3170
|
+
pageCount: x,
|
|
3171
|
+
pagedTracks: S,
|
|
3172
|
+
resolvedChartLeftMargin: O,
|
|
3173
|
+
innerWidth: k,
|
|
3174
|
+
hasVisibleWaveformData: j,
|
|
3175
|
+
hasWaveformData: M,
|
|
3176
|
+
hasChartArea: N,
|
|
3177
|
+
resolvedXLabel: P,
|
|
3178
|
+
activeInteractionMode: F,
|
|
3179
|
+
isZoomMode: I,
|
|
3180
|
+
initialXDomain: R,
|
|
3181
|
+
sharedZoomDomain: B,
|
|
3182
|
+
resolveInitialTrackDomain: z,
|
|
3183
|
+
gridCells: V,
|
|
3184
|
+
trackLayouts: H,
|
|
3185
|
+
annotationLayoutsForTrack: U,
|
|
3186
|
+
resolveSeriesYScale: G,
|
|
3187
|
+
annotationTrackLayouts: K,
|
|
3188
|
+
renderedAnnotations: t(() => n.annotationsVisible ? Pe(n.annotations, K.value, k.value, s.value) : []),
|
|
3116
3189
|
editorSeries: t(() => {
|
|
3117
3190
|
let e = p.editorDraft.value?.annotation.seriesId, t = h.value.find((t) => t.id === e);
|
|
3118
3191
|
return t ? {
|
|
@@ -3122,41 +3195,41 @@ function Wi(e) {
|
|
|
3122
3195
|
unit: t.unit
|
|
3123
3196
|
} : void 0;
|
|
3124
3197
|
}),
|
|
3125
|
-
resolveFrameNumber:
|
|
3198
|
+
resolveFrameNumber: Ki(() => n.frameNumber, () => n.frameNumbers, () => _.value)
|
|
3126
3199
|
};
|
|
3127
3200
|
}
|
|
3128
|
-
var
|
|
3129
|
-
function
|
|
3201
|
+
var Zi = 1e-6;
|
|
3202
|
+
function Qi(e) {
|
|
3130
3203
|
return Number.isFinite(e) ? Math.max(1, e) : 1;
|
|
3131
3204
|
}
|
|
3132
|
-
function
|
|
3133
|
-
let i =
|
|
3134
|
-
if (!(
|
|
3135
|
-
let e = Math.max(1, Math.ceil(
|
|
3205
|
+
function $i({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r, edgeCompact: i = !1 }) {
|
|
3206
|
+
let a = i ? 8 : 18, o = i ? 0 : 44, s = Qi(e), c = Qi(t), l = Qi(n), u = Number.isFinite(r) ? r : 0, d = u * Math.PI / 180, f = Math.abs(Math.cos(d)), p = Math.abs(Math.sin(d)), m = (u % 360 + 360) % 360;
|
|
3207
|
+
if (!(m > Zi && Math.abs(m - 360) > Zi)) {
|
|
3208
|
+
let e = Math.max(1, Math.ceil(s / l)), t = l, n = c * e;
|
|
3136
3209
|
return {
|
|
3137
3210
|
textWidth: t,
|
|
3138
3211
|
textHeight: n,
|
|
3139
3212
|
visualWidth: t,
|
|
3140
3213
|
visualHeight: n,
|
|
3141
|
-
areaHeight: Math.max(
|
|
3214
|
+
areaHeight: Math.max(o, n + a),
|
|
3142
3215
|
scale: 1,
|
|
3143
3216
|
wrapped: e > 1
|
|
3144
3217
|
};
|
|
3145
3218
|
}
|
|
3146
|
-
let
|
|
3219
|
+
let h = 160 - a, g = s * f + c * p, _ = s * p + c * f, v = Math.min(1, l / g, h / _), y = g * v, b = _ * v;
|
|
3147
3220
|
return {
|
|
3148
|
-
textWidth:
|
|
3149
|
-
textHeight:
|
|
3150
|
-
visualWidth:
|
|
3151
|
-
visualHeight:
|
|
3152
|
-
areaHeight: Math.min(160, Math.max(
|
|
3153
|
-
scale:
|
|
3221
|
+
textWidth: s,
|
|
3222
|
+
textHeight: c,
|
|
3223
|
+
visualWidth: y,
|
|
3224
|
+
visualHeight: b,
|
|
3225
|
+
areaHeight: Math.min(160, Math.max(o, b + a)),
|
|
3226
|
+
scale: v,
|
|
3154
3227
|
wrapped: !1
|
|
3155
3228
|
};
|
|
3156
3229
|
}
|
|
3157
3230
|
//#endregion
|
|
3158
3231
|
//#region src/components/core/useWaveformPresentation.ts
|
|
3159
|
-
function
|
|
3232
|
+
function ea(e) {
|
|
3160
3233
|
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(() => ({
|
|
3161
3234
|
width: l.value === void 0 ? "100%" : `${l.value}px`,
|
|
3162
3235
|
height: u.value === void 0 ? "100%" : `${u.value}px`
|
|
@@ -3173,45 +3246,46 @@ function Ji(e) {
|
|
|
3173
3246
|
}), _ = t(() => n.legend.backgroundColor || "rgba(255, 255, 255, 0.7)"), v = t(() => n.legend.interactive === !0), y = t(() => n.hiddenSeriesIds === void 0 ? s.value : new Set(n.hiddenSeriesIds)), b = t(() => Array.from(y.value)), x = (e) => n.legend.trackPositions?.[e] ?? n.legend.position ?? "top-right", S = (e) => {
|
|
3174
3247
|
let t = n.legend.orientation ?? "auto";
|
|
3175
3248
|
return t === "auto" ? e === "top" || e === "bottom" ? "horizontal" : "vertical" : t;
|
|
3176
|
-
}, C = t(() => n.title?.text.trim() ?? ""),
|
|
3249
|
+
}, C = t(() => n.layoutPreset === "edge-compact"), w = t(() => n.title?.text.trim() ?? ""), T = t(() => !!n.title && n.title?.visible !== !1 && w.value.length > 0), E = t(() => T.value && !m.value), D = t(() => {
|
|
3177
3250
|
let e = n.title?.textStyle?.fontSize;
|
|
3178
3251
|
return Number.isFinite(e) && (e ?? 0) > 0 ? e : 14;
|
|
3179
|
-
}),
|
|
3252
|
+
}), O = t(() => {
|
|
3180
3253
|
let e = n.title?.textStyle?.rotation;
|
|
3181
3254
|
return Number.isFinite(e) ? e : 0;
|
|
3182
|
-
}),
|
|
3183
|
-
let e = (
|
|
3255
|
+
}), k = t(() => {
|
|
3256
|
+
let e = (O.value % 360 + 360) % 360;
|
|
3184
3257
|
return e > 1e-6 && Math.abs(e - 360) > 1e-6;
|
|
3185
|
-
}),
|
|
3258
|
+
}), A = t(() => ({
|
|
3186
3259
|
color: n.title?.textStyle?.color ?? "#1f2937",
|
|
3187
|
-
fontSize: `${
|
|
3260
|
+
fontSize: `${D.value}px`,
|
|
3188
3261
|
fontFamily: n.title?.textStyle?.fontFamily || "\"Microsoft YaHei\", \"微软雅黑\", sans-serif",
|
|
3189
3262
|
fontWeight: n.title?.textStyle?.fontWeight ?? 400,
|
|
3190
3263
|
fontStyle: n.title?.textStyle?.fontStyle ?? "normal",
|
|
3191
3264
|
textDecoration: n.title?.textStyle?.textDecoration ?? "none",
|
|
3192
3265
|
letterSpacing: n.title?.textStyle?.letterSpacing ?? "normal",
|
|
3193
3266
|
lineHeight: String(Ht)
|
|
3194
|
-
})),
|
|
3195
|
-
let e = Number.parseFloat(n.title?.textStyle?.letterSpacing ?? ""), t = Number.isFinite(e) ? Math.max(0,
|
|
3196
|
-
return Math.max(1,
|
|
3197
|
-
}),
|
|
3267
|
+
})), j = t(() => {
|
|
3268
|
+
let e = Number.parseFloat(n.title?.textStyle?.letterSpacing ?? ""), t = Number.isFinite(e) ? Math.max(0, w.value.length - 1) * e : 0;
|
|
3269
|
+
return Math.max(1, w.value.length * D.value * Vt + t);
|
|
3270
|
+
}), M = t(() => {
|
|
3198
3271
|
let e = d.value - 48;
|
|
3199
|
-
return e > 0 ? e :
|
|
3200
|
-
}),
|
|
3201
|
-
...
|
|
3272
|
+
return e > 0 ? e : j.value;
|
|
3273
|
+
}), N = t(() => ({
|
|
3274
|
+
...A.value,
|
|
3202
3275
|
width: "max-content",
|
|
3203
|
-
maxWidth:
|
|
3204
|
-
whiteSpace:
|
|
3205
|
-
overflowWrap:
|
|
3206
|
-
})),
|
|
3207
|
-
naturalWidth: a.value ||
|
|
3208
|
-
naturalHeight: o.value ||
|
|
3209
|
-
availableWidth:
|
|
3210
|
-
rotation:
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3276
|
+
maxWidth: k.value ? "none" : `${M.value}px`,
|
|
3277
|
+
whiteSpace: k.value ? "nowrap" : "normal",
|
|
3278
|
+
overflowWrap: k.value ? "normal" : "anywhere"
|
|
3279
|
+
})), P = t(() => $i({
|
|
3280
|
+
naturalWidth: C.value && !k.value && o.value > 0 ? Math.min(a.value || M.value, M.value) : a.value || j.value,
|
|
3281
|
+
naturalHeight: o.value || D.value * 1.2,
|
|
3282
|
+
availableWidth: M.value,
|
|
3283
|
+
rotation: O.value,
|
|
3284
|
+
edgeCompact: C.value
|
|
3285
|
+
})), F = t(() => T.value ? P.value.areaHeight : 0), I = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, L = t(() => ({
|
|
3286
|
+
top: I(n.plotMargin.top, zt.top),
|
|
3287
|
+
bottom: Math.max(C.value ? 44 : 0, I(n.plotMargin.bottom, zt.bottom))
|
|
3288
|
+
})), R = t(() => L.value.top), z = t(() => Math.max(0, f.value - F.value - c.value));
|
|
3215
3289
|
return {
|
|
3216
3290
|
fixedWidth: l,
|
|
3217
3291
|
fixedHeight: u,
|
|
@@ -3219,6 +3293,7 @@ function Ji(e) {
|
|
|
3219
3293
|
chartHeight: f,
|
|
3220
3294
|
containerStyle: p,
|
|
3221
3295
|
isCleanView: m,
|
|
3296
|
+
isEdgeCompact: C,
|
|
3222
3297
|
isPresentationMode: h,
|
|
3223
3298
|
resolvedZeroLine: g,
|
|
3224
3299
|
legendBackgroundColor: _,
|
|
@@ -3227,98 +3302,98 @@ function Ji(e) {
|
|
|
3227
3302
|
resolvedHiddenSeriesIds: b,
|
|
3228
3303
|
resolveLegendPosition: x,
|
|
3229
3304
|
resolveLegendOrientation: S,
|
|
3230
|
-
resolvedTitleText:
|
|
3231
|
-
titleAreaReserved:
|
|
3232
|
-
titleVisible:
|
|
3233
|
-
titleMeasureStyle:
|
|
3234
|
-
titleLayout:
|
|
3235
|
-
titleAreaHeight:
|
|
3236
|
-
resolvedPlotMargin:
|
|
3237
|
-
chartTopMargin:
|
|
3238
|
-
drawingHeight:
|
|
3239
|
-
xAxisTitleY: t(() => Math.max(0,
|
|
3240
|
-
innerHeight: t(() => Math.max(0,
|
|
3305
|
+
resolvedTitleText: w,
|
|
3306
|
+
titleAreaReserved: T,
|
|
3307
|
+
titleVisible: E,
|
|
3308
|
+
titleMeasureStyle: N,
|
|
3309
|
+
titleLayout: P,
|
|
3310
|
+
titleAreaHeight: F,
|
|
3311
|
+
resolvedPlotMargin: L,
|
|
3312
|
+
chartTopMargin: R,
|
|
3313
|
+
drawingHeight: z,
|
|
3314
|
+
xAxisTitleY: t(() => Math.max(0, z.value - 12 + (C.value ? 3 : 0))),
|
|
3315
|
+
innerHeight: t(() => Math.max(0, z.value - L.value.top - L.value.bottom)),
|
|
3241
3316
|
titleAreaStyle: t(() => ({
|
|
3242
|
-
height: `${
|
|
3317
|
+
height: `${F.value}px`,
|
|
3243
3318
|
justifyContent: n.title?.align === "left" ? "flex-start" : n.title?.align === "right" ? "flex-end" : "center"
|
|
3244
3319
|
})),
|
|
3245
3320
|
titleVisualStyle: t(() => ({
|
|
3246
|
-
width: `${
|
|
3247
|
-
height: `${
|
|
3321
|
+
width: `${P.value.visualWidth}px`,
|
|
3322
|
+
height: `${P.value.visualHeight}px`
|
|
3248
3323
|
})),
|
|
3249
3324
|
titleTextStyle: t(() => ({
|
|
3250
|
-
...
|
|
3251
|
-
width: `${
|
|
3252
|
-
minHeight: `${
|
|
3325
|
+
...A.value,
|
|
3326
|
+
width: `${P.value.textWidth}px`,
|
|
3327
|
+
minHeight: `${P.value.textHeight}px`,
|
|
3253
3328
|
textAlign: n.title?.align ?? "center",
|
|
3254
|
-
whiteSpace:
|
|
3255
|
-
overflowWrap:
|
|
3256
|
-
transform: `translate(-50%, -50%) rotate(${
|
|
3329
|
+
whiteSpace: k.value ? "nowrap" : "normal",
|
|
3330
|
+
overflowWrap: k.value ? "normal" : "anywhere",
|
|
3331
|
+
transform: `translate(-50%, -50%) rotate(${O.value}deg) scale(${P.value.scale})`
|
|
3257
3332
|
}))
|
|
3258
3333
|
};
|
|
3259
3334
|
}
|
|
3260
3335
|
//#endregion
|
|
3261
3336
|
//#region src/core/samplingReferenceValues.ts
|
|
3262
|
-
function
|
|
3337
|
+
function ta(e, t) {
|
|
3263
3338
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3264
3339
|
}
|
|
3265
|
-
function
|
|
3340
|
+
function na(e, t, n, r) {
|
|
3266
3341
|
let i = r - n;
|
|
3267
3342
|
return {
|
|
3268
3343
|
start: n + Math.floor(e * i / t),
|
|
3269
3344
|
end: n + Math.floor((e + 1) * i / t)
|
|
3270
3345
|
};
|
|
3271
3346
|
}
|
|
3272
|
-
function
|
|
3347
|
+
function ra(e, t) {
|
|
3273
3348
|
e[e.length - 1] !== t && e.push(t);
|
|
3274
3349
|
}
|
|
3275
|
-
function
|
|
3350
|
+
function ia(e, t, n) {
|
|
3276
3351
|
if (e <= t) return Array.from({ length: e }, (e, t) => t);
|
|
3277
3352
|
if (t === 1) return [0];
|
|
3278
3353
|
if (t === 2) return [0, e - 1];
|
|
3279
3354
|
let r = [0];
|
|
3280
|
-
return n().forEach((e) =>
|
|
3355
|
+
return n().forEach((e) => ra(r, e)), ra(r, e - 1), r;
|
|
3281
3356
|
}
|
|
3282
|
-
function
|
|
3357
|
+
function aa(e, t, n) {
|
|
3283
3358
|
let r = n === "minmax" ? Math.floor((t - 2) / 2) : Math.max(0, t - 2);
|
|
3284
|
-
return
|
|
3359
|
+
return ia(e.length, t, () => {
|
|
3285
3360
|
if (!r) return [];
|
|
3286
3361
|
let t = [];
|
|
3287
3362
|
for (let i = 0; i < r; i += 1) {
|
|
3288
|
-
let a =
|
|
3363
|
+
let a = na(i, r, 1, e.length - 1), o = a.start, s = a.start;
|
|
3289
3364
|
for (let t = a.start + 1; t < a.end; t += 1) e[t] < e[o] && (o = t), e[t] > e[s] && (s = t);
|
|
3290
|
-
n === "min" ?
|
|
3365
|
+
n === "min" ? ra(t, o) : n === "max" ? ra(t, s) : o <= s ? (ra(t, o), ra(t, s)) : (ra(t, s), ra(t, o));
|
|
3291
3366
|
}
|
|
3292
3367
|
return t;
|
|
3293
3368
|
});
|
|
3294
3369
|
}
|
|
3295
|
-
function
|
|
3370
|
+
function oa(e, t) {
|
|
3296
3371
|
let n = Math.floor((t - 2) / 4);
|
|
3297
|
-
return
|
|
3372
|
+
return ia(e.length, t, () => {
|
|
3298
3373
|
if (!n) return [];
|
|
3299
3374
|
let t = [];
|
|
3300
3375
|
for (let r = 0; r < n; r += 1) {
|
|
3301
|
-
let i =
|
|
3376
|
+
let i = na(r, n, 1, e.length - 1), a = i.start, o = i.start;
|
|
3302
3377
|
for (let t = i.start + 1; t < i.end; t += 1) e[t] < e[a] && (a = t), e[t] > e[o] && (o = t);
|
|
3303
3378
|
[
|
|
3304
3379
|
i.start,
|
|
3305
3380
|
a,
|
|
3306
3381
|
o,
|
|
3307
3382
|
i.end - 1
|
|
3308
|
-
].sort((e, t) => e - t).forEach((e) =>
|
|
3383
|
+
].sort((e, t) => e - t).forEach((e) => ra(t, e));
|
|
3309
3384
|
}
|
|
3310
3385
|
return t;
|
|
3311
3386
|
});
|
|
3312
3387
|
}
|
|
3313
|
-
function
|
|
3314
|
-
return
|
|
3388
|
+
function sa(e, t, n) {
|
|
3389
|
+
return ia(e.length, n, () => {
|
|
3315
3390
|
let r = (e.length - 2) / (n - 2), i = [], a = 0;
|
|
3316
3391
|
for (let o = 0; o < n - 2; o += 1) {
|
|
3317
3392
|
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;
|
|
3318
3393
|
for (let n = s; n < c; n += 1) l += e[n], u += t[n];
|
|
3319
3394
|
let d = c - s;
|
|
3320
3395
|
d ? (l /= d, u /= d) : (l = e[e.length - 1], u = t[t.length - 1]);
|
|
3321
|
-
let f =
|
|
3396
|
+
let f = na(o, n - 2, 1, e.length - 1), p = f.start, m = -1;
|
|
3322
3397
|
for (let n = f.start; n < f.end; n += 1) {
|
|
3323
3398
|
let r = Math.abs((e[a] - l) * (t[n] - t[a]) - (e[a] - e[n]) * (u - t[a]));
|
|
3324
3399
|
r > m && (m = r, p = n);
|
|
@@ -3328,10 +3403,10 @@ function ta(e, t, n) {
|
|
|
3328
3403
|
return i;
|
|
3329
3404
|
});
|
|
3330
3405
|
}
|
|
3331
|
-
function
|
|
3332
|
-
let i =
|
|
3406
|
+
function ca(e, t, n, r) {
|
|
3407
|
+
let i = ta(n, e.length), a = new Float64Array(i), o = new Float64Array(i);
|
|
3333
3408
|
for (let n = 0; n < i; n += 1) {
|
|
3334
|
-
let s =
|
|
3409
|
+
let s = na(n, i, 0, e.length);
|
|
3335
3410
|
for (let r = s.start; r < s.end; r += 1) a[n] += e[r], o[n] += t[r];
|
|
3336
3411
|
let c = s.end - s.start;
|
|
3337
3412
|
a[n] /= c, r === "average" && (o[n] /= c);
|
|
@@ -3342,10 +3417,10 @@ function na(e, t, n, r) {
|
|
|
3342
3417
|
y: o
|
|
3343
3418
|
};
|
|
3344
3419
|
}
|
|
3345
|
-
function
|
|
3420
|
+
function la(e, t, n, r) {
|
|
3346
3421
|
if (e.length !== t.length) throw Error("x and y must have the same length");
|
|
3347
|
-
if (n === "average" || n === "sum") return
|
|
3348
|
-
let i =
|
|
3422
|
+
if (n === "average" || n === "sum") return ca(e, t, r, n);
|
|
3423
|
+
let i = ta(r, e.length), a = n === "none" || e.length <= i ? Array.from({ length: e.length }, (e, t) => t) : n === "peak" ? oa(t, i) : n === "lttb" ? sa(e, t, i) : aa(t, i, n);
|
|
3349
3424
|
return {
|
|
3350
3425
|
kind: "source-indexes",
|
|
3351
3426
|
sourceIndexes: Uint32Array.from(a)
|
|
@@ -3353,41 +3428,41 @@ function ra(e, t, n, r) {
|
|
|
3353
3428
|
}
|
|
3354
3429
|
//#endregion
|
|
3355
3430
|
//#region src/core/workerSampling/javascriptBackend.ts
|
|
3356
|
-
var
|
|
3431
|
+
var ua = {
|
|
3357
3432
|
kind: "javascript",
|
|
3358
3433
|
sample(e) {
|
|
3359
|
-
return
|
|
3434
|
+
return la(e.x, e.y, e.strategy, e.targetPointCount);
|
|
3360
3435
|
}
|
|
3361
|
-
},
|
|
3362
|
-
function
|
|
3436
|
+
}, da = 8 * 1024 * 1024;
|
|
3437
|
+
function fa(e, t) {
|
|
3363
3438
|
return t === 0 ? 0 : Number.isFinite(e) ? Math.min(t, Math.max(1, Math.floor(e))) : t;
|
|
3364
3439
|
}
|
|
3365
|
-
function
|
|
3440
|
+
function pa(e, t, n, r) {
|
|
3366
3441
|
let i = r - n;
|
|
3367
3442
|
return {
|
|
3368
3443
|
start: n + Math.floor(e * i / t),
|
|
3369
3444
|
end: n + Math.floor((e + 1) * i / t)
|
|
3370
3445
|
};
|
|
3371
3446
|
}
|
|
3372
|
-
function
|
|
3447
|
+
function ma(e, t) {
|
|
3373
3448
|
e[e.length - 1] !== t && e.push(t);
|
|
3374
3449
|
}
|
|
3375
|
-
function
|
|
3450
|
+
function ha(e) {
|
|
3376
3451
|
return "minimumIndexes" in e ? e.minimumIndexes.byteLength + e.maximumIndexes.byteLength : e.x.byteLength + e.y.byteLength + e.count.byteLength;
|
|
3377
3452
|
}
|
|
3378
|
-
function
|
|
3453
|
+
function ga(e, t) {
|
|
3379
3454
|
let n = 1;
|
|
3380
3455
|
for (; n * 2 <= t && e % (n * 2) == 0;) n *= 2;
|
|
3381
3456
|
return n;
|
|
3382
3457
|
}
|
|
3383
|
-
var
|
|
3458
|
+
var _a = class {
|
|
3384
3459
|
points;
|
|
3385
3460
|
extremaLayers = [];
|
|
3386
3461
|
sumLayers = [];
|
|
3387
3462
|
indexBytes = 0;
|
|
3388
3463
|
maxBytes;
|
|
3389
3464
|
constructor(e, t = {}) {
|
|
3390
|
-
this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) :
|
|
3465
|
+
this.points = e, this.maxBytes = Number.isFinite(t.maxBytes) ? Math.max(0, Math.floor(t.maxBytes ?? 0)) : da;
|
|
3391
3466
|
}
|
|
3392
3467
|
get byteLength() {
|
|
3393
3468
|
return this.indexBytes;
|
|
@@ -3396,7 +3471,7 @@ var da = class {
|
|
|
3396
3471
|
this.extremaLayers.length = 0, this.sumLayers.length = 0, this.indexBytes = 0;
|
|
3397
3472
|
}
|
|
3398
3473
|
sample(e, t, n, r) {
|
|
3399
|
-
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 =
|
|
3474
|
+
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 = fa(r, o);
|
|
3400
3475
|
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);
|
|
3401
3476
|
}
|
|
3402
3477
|
allIndexes(e, t) {
|
|
@@ -3416,24 +3491,24 @@ var da = class {
|
|
|
3416
3491
|
if (i === 0) return this.indexes([e, t - 1]);
|
|
3417
3492
|
let a = [e];
|
|
3418
3493
|
for (let n = 0; n < i; n += 1) {
|
|
3419
|
-
let o =
|
|
3494
|
+
let o = pa(n, i, e + 1, t - 1), s = this.queryExtrema(o.start, o.end);
|
|
3420
3495
|
if (!s) return;
|
|
3421
|
-
if (r === "min")
|
|
3422
|
-
else if (r === "max")
|
|
3423
|
-
else if (r === "minmax") s.minimum <= s.maximum ? (
|
|
3496
|
+
if (r === "min") ma(a, s.minimum);
|
|
3497
|
+
else if (r === "max") ma(a, s.maximum);
|
|
3498
|
+
else if (r === "minmax") s.minimum <= s.maximum ? (ma(a, s.minimum), ma(a, s.maximum)) : (ma(a, s.maximum), ma(a, s.minimum));
|
|
3424
3499
|
else for (let e of [
|
|
3425
3500
|
o.start,
|
|
3426
3501
|
s.minimum,
|
|
3427
3502
|
s.maximum,
|
|
3428
3503
|
o.end - 1
|
|
3429
|
-
].sort((e, t) => e - t))
|
|
3504
|
+
].sort((e, t) => e - t)) ma(a, e);
|
|
3430
3505
|
}
|
|
3431
|
-
return
|
|
3506
|
+
return ma(a, t - 1), this.indexes(a);
|
|
3432
3507
|
}
|
|
3433
3508
|
aggregate(e, t, n, r) {
|
|
3434
3509
|
let i = new Float64Array(n), a = new Float64Array(n);
|
|
3435
3510
|
for (let o = 0; o < n; o += 1) {
|
|
3436
|
-
let s =
|
|
3511
|
+
let s = pa(o, n, e, t), c = this.querySum(s.start, s.end);
|
|
3437
3512
|
if (!c || c.count === 0) return;
|
|
3438
3513
|
i[o] = c.x / c.count, a[o] = r === "average" ? c.y / c.count : c.y;
|
|
3439
3514
|
}
|
|
@@ -3448,7 +3523,7 @@ var da = class {
|
|
|
3448
3523
|
if (!this.ensureExtrema(n)) return;
|
|
3449
3524
|
let r = e, i = e;
|
|
3450
3525
|
for (let n = e; n < t;) {
|
|
3451
|
-
let e =
|
|
3526
|
+
let e = ga(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;
|
|
3452
3527
|
this.isMinimum(c, r) && (r = c), this.isMaximum(l, i) && (i = l), n += e;
|
|
3453
3528
|
}
|
|
3454
3529
|
return {
|
|
@@ -3461,7 +3536,7 @@ var da = class {
|
|
|
3461
3536
|
if (!this.ensureSum(n)) return;
|
|
3462
3537
|
let r = 0, i = 0, a = 0;
|
|
3463
3538
|
for (let n = e; n < t;) {
|
|
3464
|
-
let e =
|
|
3539
|
+
let e = ga(n, t - n), o = Math.floor(Math.log2(e)), s = n / e, c = this.sumLayers[o];
|
|
3465
3540
|
if (c) r += c.x[s], i += c.y[s], a += c.count[s];
|
|
3466
3541
|
else {
|
|
3467
3542
|
let e = this.points[n];
|
|
@@ -3482,7 +3557,7 @@ var da = class {
|
|
|
3482
3557
|
minimumIndexes: new Uint32Array(e),
|
|
3483
3558
|
maximumIndexes: new Uint32Array(e)
|
|
3484
3559
|
};
|
|
3485
|
-
if (!this.reserve(
|
|
3560
|
+
if (!this.reserve(ha(n))) return !1;
|
|
3486
3561
|
let r = this.extremaLayers[t - 1];
|
|
3487
3562
|
for (let t = 0; t < e; t += 1) {
|
|
3488
3563
|
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;
|
|
@@ -3500,7 +3575,7 @@ var da = class {
|
|
|
3500
3575
|
y: new Float64Array(e),
|
|
3501
3576
|
count: new Uint32Array(e)
|
|
3502
3577
|
};
|
|
3503
|
-
if (!this.reserve(
|
|
3578
|
+
if (!this.reserve(ha(n))) return !1;
|
|
3504
3579
|
let r = this.sumLayers[t - 1];
|
|
3505
3580
|
for (let t = 0; t < e; t += 1) {
|
|
3506
3581
|
let e = t * 2, i = e + 1;
|
|
@@ -3525,8 +3600,8 @@ var da = class {
|
|
|
3525
3600
|
let n = this.points[e], r = this.points[t];
|
|
3526
3601
|
return n.y > r.y || n.y === r.y && e < t;
|
|
3527
3602
|
}
|
|
3528
|
-
},
|
|
3529
|
-
function
|
|
3603
|
+
}, va = 1e3, ya = L((e) => e.x);
|
|
3604
|
+
function ba(e) {
|
|
3530
3605
|
let t = [], n = !0, r = -Infinity;
|
|
3531
3606
|
for (let i of e) !Number.isFinite(i.x) || !Number.isFinite(i.y) || (i.x < r && (n = !1), r = i.x, t.push({
|
|
3532
3607
|
x: i.x,
|
|
@@ -3537,7 +3612,7 @@ function ma(e) {
|
|
|
3537
3612
|
}));
|
|
3538
3613
|
return n || t.sort((e, t) => e.x - t.x), t;
|
|
3539
3614
|
}
|
|
3540
|
-
function
|
|
3615
|
+
function xa(e, t) {
|
|
3541
3616
|
let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity;
|
|
3542
3617
|
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);
|
|
3543
3618
|
return {
|
|
@@ -3547,7 +3622,7 @@ function ha(e, t) {
|
|
|
3547
3622
|
yDomain: e.length ? [i, a] : null
|
|
3548
3623
|
};
|
|
3549
3624
|
}
|
|
3550
|
-
function
|
|
3625
|
+
function Sa(e, t, n = e.length) {
|
|
3551
3626
|
let r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
|
|
3552
3627
|
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]);
|
|
3553
3628
|
return {
|
|
@@ -3557,39 +3632,39 @@ function ga(e, t, n = e.length) {
|
|
|
3557
3632
|
yDomain: e.length ? [a, o] : null
|
|
3558
3633
|
};
|
|
3559
3634
|
}
|
|
3560
|
-
function
|
|
3635
|
+
function Ca(e, t) {
|
|
3561
3636
|
return e ? e.revision === t ? "ok" : "stale-revision" : "not-found";
|
|
3562
3637
|
}
|
|
3563
|
-
function
|
|
3638
|
+
function wa(e) {
|
|
3564
3639
|
return e === "auto" ? "peak" : e;
|
|
3565
3640
|
}
|
|
3566
|
-
function
|
|
3641
|
+
function Ta(e) {
|
|
3567
3642
|
if (Number.isFinite(e.maxPointCount) && (e.maxPointCount ?? 0) >= 1) return Math.floor(e.maxPointCount);
|
|
3568
3643
|
let t = Number.isFinite(e.plotWidth) ? Math.max(0, e.plotWidth) : 0, n = Number.isFinite(e.maxPointsPerPixel) ? Math.max(0, e.maxPointsPerPixel ?? 0) : 4;
|
|
3569
3644
|
return Math.max(1, Math.floor(t * n));
|
|
3570
3645
|
}
|
|
3571
|
-
function
|
|
3646
|
+
function Ea(e, t) {
|
|
3572
3647
|
if (e.mode === "raw") return !0;
|
|
3573
3648
|
if (e.mode !== "auto") return !1;
|
|
3574
|
-
let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) :
|
|
3649
|
+
let n = Number.isFinite(e.autoThreshold) ? Math.max(1, Math.floor(e.autoThreshold ?? 0)) : va;
|
|
3575
3650
|
if (!e.previousSelectedMode) return t <= n;
|
|
3576
3651
|
let r = Number.isFinite(e.autoHysteresis) ? Math.max(0, Math.floor(e.autoHysteresis ?? 0)) : 0;
|
|
3577
3652
|
return e.previousSelectedMode === "raw" ? t <= n + r : t <= Math.max(0, n - r);
|
|
3578
3653
|
}
|
|
3579
|
-
function
|
|
3654
|
+
function Da(e, t) {
|
|
3580
3655
|
let n = e[0], r = e.at(-1);
|
|
3581
|
-
return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[
|
|
3656
|
+
return Number.isFinite(t) && n && r && t >= n.x && t <= r.x ? e[ya.center(e, t)] : void 0;
|
|
3582
3657
|
}
|
|
3583
|
-
function
|
|
3658
|
+
function Oa(e) {
|
|
3584
3659
|
return e ? e.kind === "source-indexes" ? e.sourceIndexes.length : e.x.length : 0;
|
|
3585
3660
|
}
|
|
3586
|
-
function
|
|
3661
|
+
function ka(e, t) {
|
|
3587
3662
|
return e.kind === "aggregates" ? e : {
|
|
3588
3663
|
kind: "source-indexes",
|
|
3589
3664
|
sourceIndexes: Uint32Array.from(e.sourceIndexes, (e) => e + t)
|
|
3590
3665
|
};
|
|
3591
3666
|
}
|
|
3592
|
-
function
|
|
3667
|
+
function Aa(e, t, n, r, i) {
|
|
3593
3668
|
return [
|
|
3594
3669
|
e.datasetId,
|
|
3595
3670
|
e.revision,
|
|
@@ -3609,14 +3684,14 @@ function wa(e, t, n, r, i) {
|
|
|
3609
3684
|
e.errorBarMinSpacing ?? 0
|
|
3610
3685
|
].join("\0");
|
|
3611
3686
|
}
|
|
3612
|
-
function
|
|
3687
|
+
function ja(e, t, n, r, i, a, o, s) {
|
|
3613
3688
|
return {
|
|
3614
3689
|
seriesId: e.seriesId,
|
|
3615
3690
|
datasetId: e.datasetId,
|
|
3616
3691
|
mode: e.mode,
|
|
3617
3692
|
selectedMode: i,
|
|
3618
3693
|
backend: r,
|
|
3619
|
-
strategy:
|
|
3694
|
+
strategy: wa(e.strategy),
|
|
3620
3695
|
sourcePointCount: t,
|
|
3621
3696
|
visiblePointCount: n,
|
|
3622
3697
|
renderedPointCount: o,
|
|
@@ -3632,18 +3707,18 @@ function Ta(e, t, n, r, i, a, o, s) {
|
|
|
3632
3707
|
}
|
|
3633
3708
|
//#endregion
|
|
3634
3709
|
//#region src/core/workerSampling/repositoryDataset.ts
|
|
3635
|
-
function
|
|
3710
|
+
function Ma(e) {
|
|
3636
3711
|
return e?.y.length ?? 0;
|
|
3637
3712
|
}
|
|
3638
|
-
function
|
|
3713
|
+
function Na(e, t) {
|
|
3639
3714
|
return e.x ? e.x[t] : e.sampleStartTime + (e.sampleSourceIndexes?.[t] ?? t) / e.sampleRate;
|
|
3640
3715
|
}
|
|
3641
|
-
function
|
|
3716
|
+
function Pa(e, t) {
|
|
3642
3717
|
let n = (t, n) => {
|
|
3643
|
-
let r = 0, i =
|
|
3718
|
+
let r = 0, i = Ma(e);
|
|
3644
3719
|
for (; r < i;) {
|
|
3645
3720
|
let a = r + Math.floor((i - r) / 2);
|
|
3646
|
-
(n ?
|
|
3721
|
+
(n ? Na(e, a) <= t : Na(e, a) < t) ? r = a + 1 : i = a;
|
|
3647
3722
|
}
|
|
3648
3723
|
return r;
|
|
3649
3724
|
}, r = Math.min(t[0], t[1]), i = Math.max(t[0], t[1]);
|
|
@@ -3652,13 +3727,13 @@ function Oa(e, t) {
|
|
|
3652
3727
|
end: n(i, !0)
|
|
3653
3728
|
};
|
|
3654
3729
|
}
|
|
3655
|
-
function
|
|
3656
|
-
return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) =>
|
|
3730
|
+
function Fa(e, t, n) {
|
|
3731
|
+
return e.x ? e.x.subarray(t, n) : Float64Array.from({ length: n - t }, (n, r) => Na(e, t + r));
|
|
3657
3732
|
}
|
|
3658
|
-
function
|
|
3733
|
+
function Ia(e) {
|
|
3659
3734
|
return e?.kind === "wasm" && "registerDataset" in e && "disposeDataset" in e && "disposeAllDatasets" in e && "datasetIndexBytes" in e && "registerSamples" in e && "sampleDataset" in e;
|
|
3660
3735
|
}
|
|
3661
|
-
function
|
|
3736
|
+
function La(e, t) {
|
|
3662
3737
|
let n = [], r = Math.min(e.length, t.length);
|
|
3663
3738
|
for (let i = 0; i < r; i += 1) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push(i);
|
|
3664
3739
|
return n.sort((t, n) => e[t] - e[n] || t - n), {
|
|
@@ -3666,14 +3741,14 @@ function ja(e, t) {
|
|
|
3666
3741
|
y: Float64Array.from(n, (e) => t[e])
|
|
3667
3742
|
};
|
|
3668
3743
|
}
|
|
3669
|
-
function
|
|
3744
|
+
function Ra(e, t, n, r) {
|
|
3670
3745
|
if (t?.kind === "typed") {
|
|
3671
|
-
let e =
|
|
3746
|
+
let e = La(t.x, t.y);
|
|
3672
3747
|
return {
|
|
3673
3748
|
x: e.x,
|
|
3674
3749
|
y: e.y,
|
|
3675
3750
|
revision: n,
|
|
3676
|
-
metrics:
|
|
3751
|
+
metrics: Sa(e.x, e.y, Math.max(t.x.length, t.y.length))
|
|
3677
3752
|
};
|
|
3678
3753
|
}
|
|
3679
3754
|
if (t?.kind === "samples") {
|
|
@@ -3707,35 +3782,35 @@ function Ma(e, t, n, r) {
|
|
|
3707
3782
|
}
|
|
3708
3783
|
};
|
|
3709
3784
|
}
|
|
3710
|
-
let i =
|
|
3785
|
+
let i = ba(e ?? t?.points ?? []);
|
|
3711
3786
|
return {
|
|
3712
3787
|
x: Float64Array.from(i, (e) => e.x),
|
|
3713
3788
|
y: Float64Array.from(i, (e) => e.y),
|
|
3714
3789
|
points: i,
|
|
3715
3790
|
revision: n,
|
|
3716
|
-
metrics:
|
|
3717
|
-
index: new
|
|
3791
|
+
metrics: xa(i, e?.length ?? t?.points.length ?? 0),
|
|
3792
|
+
index: new _a(i, { maxBytes: r })
|
|
3718
3793
|
};
|
|
3719
3794
|
}
|
|
3720
|
-
function
|
|
3721
|
-
!
|
|
3795
|
+
function za(e, t, n) {
|
|
3796
|
+
!Ia(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));
|
|
3722
3797
|
}
|
|
3723
|
-
function
|
|
3724
|
-
t.index?.dispose(), t.wasmDatasetHandle !== void 0 &&
|
|
3798
|
+
function Ba(e, t) {
|
|
3799
|
+
t.index?.dispose(), t.wasmDatasetHandle !== void 0 && Ia(e) && e.disposeDataset(t.wasmDatasetHandle);
|
|
3725
3800
|
}
|
|
3726
3801
|
//#endregion
|
|
3727
3802
|
//#region src/core/workerSampling/samplingCache.ts
|
|
3728
|
-
var
|
|
3729
|
-
function
|
|
3803
|
+
var Va = 96, Ha = 16 * 1024 * 1024;
|
|
3804
|
+
function Ua(e) {
|
|
3730
3805
|
return e.kind === "source-indexes" ? e.sourceIndexes.byteLength : e.x.byteLength + e.y.byteLength;
|
|
3731
3806
|
}
|
|
3732
|
-
var
|
|
3807
|
+
var Wa = class {
|
|
3733
3808
|
entries = /* @__PURE__ */ new Map();
|
|
3734
3809
|
bytes = 0;
|
|
3735
3810
|
maxEntries;
|
|
3736
3811
|
maxBytes;
|
|
3737
3812
|
constructor(e = {}) {
|
|
3738
|
-
this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) :
|
|
3813
|
+
this.maxEntries = Number.isFinite(e.maxEntries) ? Math.max(0, Math.floor(e.maxEntries ?? 0)) : Va, this.maxBytes = Number.isFinite(e.maxBytes) ? Math.max(0, Math.floor(e.maxBytes ?? 0)) : Ha;
|
|
3739
3814
|
}
|
|
3740
3815
|
get metrics() {
|
|
3741
3816
|
return {
|
|
@@ -3750,7 +3825,7 @@ var Ra = class {
|
|
|
3750
3825
|
if (t) return this.entries.delete(e), this.entries.set(e, t), t.output;
|
|
3751
3826
|
}
|
|
3752
3827
|
set(e, t) {
|
|
3753
|
-
let n =
|
|
3828
|
+
let n = Ua(t);
|
|
3754
3829
|
if (n > this.maxBytes || this.maxEntries === 0) return;
|
|
3755
3830
|
let r = this.entries.get(e);
|
|
3756
3831
|
for (r && (this.bytes -= r.bytes, this.entries.delete(e)), this.entries.set(e, {
|
|
@@ -3770,14 +3845,14 @@ var Ra = class {
|
|
|
3770
3845
|
clear() {
|
|
3771
3846
|
this.entries.clear(), this.bytes = 0;
|
|
3772
3847
|
}
|
|
3773
|
-
},
|
|
3848
|
+
}, Ga = class {
|
|
3774
3849
|
datasets = /* @__PURE__ */ new Map();
|
|
3775
3850
|
javascriptBackend;
|
|
3776
3851
|
cache;
|
|
3777
3852
|
indexMaxBytes;
|
|
3778
3853
|
wasmBackend;
|
|
3779
3854
|
constructor(e = {}) {
|
|
3780
|
-
this.javascriptBackend = e.javascriptBackend ??
|
|
3855
|
+
this.javascriptBackend = e.javascriptBackend ?? ua, this.wasmBackend = e.wasmBackend, this.indexMaxBytes = e.indexMaxBytes, this.cache = new Wa({
|
|
3781
3856
|
maxEntries: e.cacheMaxEntries,
|
|
3782
3857
|
maxBytes: e.cacheMaxBytes
|
|
3783
3858
|
});
|
|
@@ -3790,9 +3865,9 @@ var Ra = class {
|
|
|
3790
3865
|
};
|
|
3791
3866
|
}
|
|
3792
3867
|
setWasmBackend(e) {
|
|
3793
|
-
this.wasmBackend && this.wasmBackend !== e &&
|
|
3868
|
+
this.wasmBackend && this.wasmBackend !== e && Ia(this.wasmBackend) && (this.wasmBackend.disposeAllDatasets(), this.datasets.forEach((e) => {
|
|
3794
3869
|
e.wasmDatasetHandle = void 0, e.wasmIndexBytes = void 0;
|
|
3795
|
-
})), this.wasmBackend = e,
|
|
3870
|
+
})), this.wasmBackend = e, Ia(e) && this.datasets.forEach((t) => za(e, t, this.indexMaxBytes));
|
|
3796
3871
|
}
|
|
3797
3872
|
handle(e) {
|
|
3798
3873
|
switch (e.type) {
|
|
@@ -3808,15 +3883,15 @@ var Ra = class {
|
|
|
3808
3883
|
register(e, t, n, r) {
|
|
3809
3884
|
let i = this.datasets.get(e);
|
|
3810
3885
|
if (i) return this.datasetResponse(t, e, i, "stale-revision");
|
|
3811
|
-
let a =
|
|
3812
|
-
return
|
|
3886
|
+
let a = Ra(n, r, 1, this.indexMaxBytes);
|
|
3887
|
+
return za(this.wasmBackend, a, this.indexMaxBytes), this.datasets.set(e, a), this.datasetResponse(t, e, a, "ok");
|
|
3813
3888
|
}
|
|
3814
3889
|
replace(e, t, n, r, i) {
|
|
3815
|
-
let a = this.datasets.get(e), o =
|
|
3890
|
+
let a = this.datasets.get(e), o = Ca(a, n);
|
|
3816
3891
|
if (o !== "ok" || !a) return this.datasetResponse(t, e, a, o);
|
|
3817
|
-
|
|
3818
|
-
let s =
|
|
3819
|
-
return
|
|
3892
|
+
Ba(this.wasmBackend, a), this.cache.deleteDataset(e);
|
|
3893
|
+
let s = Ra(r, i, a.revision + 1, this.indexMaxBytes);
|
|
3894
|
+
return za(this.wasmBackend, s, this.indexMaxBytes), this.datasets.set(e, s), this.datasetResponse(t, e, s, "ok");
|
|
3820
3895
|
}
|
|
3821
3896
|
sample(e) {
|
|
3822
3897
|
return {
|
|
@@ -3826,28 +3901,28 @@ var Ra = class {
|
|
|
3826
3901
|
};
|
|
3827
3902
|
}
|
|
3828
3903
|
sampleSeries(e, t) {
|
|
3829
|
-
let n = performance.now(), r = this.datasets.get(t.datasetId), i =
|
|
3904
|
+
let n = performance.now(), r = this.datasets.get(t.datasetId), i = Ca(r, t.revision);
|
|
3830
3905
|
if (i !== "ok" || !r) return this.sampleResponse(e, t, i, void 0, "unavailable", "sampled", 0, n, !1);
|
|
3831
|
-
let a =
|
|
3832
|
-
if (
|
|
3906
|
+
let a = Pa(r, t.xDomain), o = a.end - a.start;
|
|
3907
|
+
if (Ea(t, o)) return this.sampleResponse(e, t, "ok", {
|
|
3833
3908
|
kind: "source-indexes",
|
|
3834
3909
|
sourceIndexes: Uint32Array.from({ length: o }, (e, t) => a.start + t)
|
|
3835
3910
|
}, "raw", "raw", o, n, !1);
|
|
3836
3911
|
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);
|
|
3837
3912
|
if (!l) return this.sampleResponse(e, t, "wasm-unavailable", void 0, "unavailable", "sampled", o, n, !1);
|
|
3838
|
-
let u =
|
|
3913
|
+
let u = wa(t.strategy), d = Ta(t), f = Aa(t, a, u, d, l.kind), p = this.cache.get(f);
|
|
3839
3914
|
if (p) return this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", p, l.kind, "sampled", o, n, !0);
|
|
3840
|
-
let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 &&
|
|
3841
|
-
x:
|
|
3915
|
+
let m = (l.kind === "wasm" ? r.wasmDatasetHandle !== void 0 && Ia(l) ? l.sampleDataset(r.wasmDatasetHandle, a.start, a.end, u, d) : void 0 : r.index?.sample(a.start, a.end, u, d)) ?? ka(l.sample({
|
|
3916
|
+
x: Fa(r, a.start, a.end),
|
|
3842
3917
|
y: r.y.subarray(a.start, a.end),
|
|
3843
3918
|
points: r.points?.slice(a.start, a.end) ?? [],
|
|
3844
3919
|
strategy: u,
|
|
3845
3920
|
targetPointCount: d
|
|
3846
3921
|
}), a.start);
|
|
3847
|
-
return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 &&
|
|
3922
|
+
return this.cache.set(f, m), r.wasmDatasetHandle !== void 0 && Ia(l) && (r.wasmIndexBytes = l.datasetIndexBytes(r.wasmDatasetHandle)), this.sampleResponse(e, t, c ? "wasm-unavailable" : "ok", m, l.kind, "sampled", o, n, !1);
|
|
3848
3923
|
}
|
|
3849
3924
|
sampleResponse(e, t, n, r, i, a, o, s, c) {
|
|
3850
|
-
let l =
|
|
3925
|
+
let l = ja(t, Ma(this.datasets.get(t.datasetId)), o, i, a, performance.now() - s, Oa(r), c);
|
|
3851
3926
|
return l.requestId = e, {
|
|
3852
3927
|
seriesId: t.seriesId,
|
|
3853
3928
|
datasetId: t.datasetId,
|
|
@@ -3858,7 +3933,7 @@ var Ra = class {
|
|
|
3858
3933
|
};
|
|
3859
3934
|
}
|
|
3860
3935
|
findNearest(e, t, n, r) {
|
|
3861
|
-
let i = this.datasets.get(e), a =
|
|
3936
|
+
let i = this.datasets.get(e), a = Ca(i, n);
|
|
3862
3937
|
return a !== "ok" || !i ? {
|
|
3863
3938
|
type: "find-nearest-point-response",
|
|
3864
3939
|
requestId: t,
|
|
@@ -3871,12 +3946,12 @@ var Ra = class {
|
|
|
3871
3946
|
datasetId: e,
|
|
3872
3947
|
revision: n,
|
|
3873
3948
|
status: a,
|
|
3874
|
-
point: i.points ?
|
|
3875
|
-
let e =
|
|
3876
|
-
if (!
|
|
3877
|
-
let t = Math.min(
|
|
3878
|
-
return Number.isFinite(r) &&
|
|
3879
|
-
x:
|
|
3949
|
+
point: i.points ? Da(i.points, r) : (() => {
|
|
3950
|
+
let e = Pa(i, [r, r]);
|
|
3951
|
+
if (!Ma(i) || r < Na(i, 0) || r > Na(i, Ma(i) - 1)) return;
|
|
3952
|
+
let t = Math.min(Ma(i) - 1, e.start), n = Math.max(0, t - 1), a = Math.abs(r - Na(i, n)) < Math.abs(Na(i, t) - r) ? n : t;
|
|
3953
|
+
return Number.isFinite(r) && Ma(i) ? {
|
|
3954
|
+
x: Na(i, a),
|
|
3880
3955
|
y: i.y[a]
|
|
3881
3956
|
} : void 0;
|
|
3882
3957
|
})()
|
|
@@ -3884,15 +3959,15 @@ var Ra = class {
|
|
|
3884
3959
|
}
|
|
3885
3960
|
metrics(e, t, n) {
|
|
3886
3961
|
let r = this.datasets.get(e);
|
|
3887
|
-
return this.datasetResponse(t, e, r,
|
|
3962
|
+
return this.datasetResponse(t, e, r, Ca(r, n));
|
|
3888
3963
|
}
|
|
3889
3964
|
dispose(e, t, n) {
|
|
3890
|
-
let r = this.datasets.get(e), i =
|
|
3891
|
-
return i === "ok" && r && (
|
|
3965
|
+
let r = this.datasets.get(e), i = Ca(r, n);
|
|
3966
|
+
return i === "ok" && r && (Ba(this.wasmBackend, r), this.cache.deleteDataset(e), this.datasets.delete(e)), this.datasetResponse(t, e, r, i);
|
|
3892
3967
|
}
|
|
3893
3968
|
disposeAll(e) {
|
|
3894
3969
|
let t = [...this.datasets.keys()];
|
|
3895
|
-
return this.datasets.forEach((e) =>
|
|
3970
|
+
return this.datasets.forEach((e) => Ba(this.wasmBackend, e)), Ia(this.wasmBackend) && this.wasmBackend.disposeAllDatasets(), this.datasets.clear(), this.cache.clear(), {
|
|
3896
3971
|
type: "dispose-all-response",
|
|
3897
3972
|
requestId: e,
|
|
3898
3973
|
disposedDatasetIds: t
|
|
@@ -3914,10 +3989,10 @@ var Ra = class {
|
|
|
3914
3989
|
};
|
|
3915
3990
|
//#endregion
|
|
3916
3991
|
//#region src/components/core/latestTaskScheduler.ts
|
|
3917
|
-
function
|
|
3992
|
+
function Ka(e, t, n, r) {
|
|
3918
3993
|
return r ? r === "raw" ? e <= t + n ? "raw" : "sampled" : e <= Math.max(0, t - n) ? "raw" : "sampled" : e <= t ? "raw" : "sampled";
|
|
3919
3994
|
}
|
|
3920
|
-
function
|
|
3995
|
+
function qa() {
|
|
3921
3996
|
let e = 0, t = !1, n, r = !1, i = {
|
|
3922
3997
|
scheduled: 0,
|
|
3923
3998
|
coalesced: 0,
|
|
@@ -3956,12 +4031,12 @@ function Va() {
|
|
|
3956
4031
|
}
|
|
3957
4032
|
//#endregion
|
|
3958
4033
|
//#region src/components/core/workerSamplingClient.ts
|
|
3959
|
-
function
|
|
4034
|
+
function Ja(e) {
|
|
3960
4035
|
return e?.message || "Web Worker is unavailable; JavaScript sampling is being used.";
|
|
3961
4036
|
}
|
|
3962
|
-
function
|
|
4037
|
+
function Ya() {
|
|
3963
4038
|
let e, t, n, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = () => {
|
|
3964
|
-
t ??= new
|
|
4039
|
+
t ??= new Ga();
|
|
3965
4040
|
for (let [e, n] of i) {
|
|
3966
4041
|
t.handle({
|
|
3967
4042
|
type: "register-dataset",
|
|
@@ -3997,7 +4072,7 @@ function Ua() {
|
|
|
3997
4072
|
let t = a();
|
|
3998
4073
|
e.forEach(({ request: e, resolve: n }) => n(t.handle(e)));
|
|
3999
4074
|
}, c = (r) => {
|
|
4000
|
-
t || (n =
|
|
4075
|
+
t || (n = Ja(r), e?.terminate(), e = void 0, s());
|
|
4001
4076
|
};
|
|
4002
4077
|
try {
|
|
4003
4078
|
typeof Worker > "u" ? c() : (e = new Worker(new URL(
|
|
@@ -4034,20 +4109,20 @@ function Ua() {
|
|
|
4034
4109
|
}
|
|
4035
4110
|
};
|
|
4036
4111
|
}
|
|
4037
|
-
function
|
|
4112
|
+
function Xa(e) {
|
|
4038
4113
|
return e.type === "dataset-response";
|
|
4039
4114
|
}
|
|
4040
4115
|
//#endregion
|
|
4041
4116
|
//#region src/components/core/useWaveformRenderSampling.ts
|
|
4042
|
-
var
|
|
4043
|
-
function
|
|
4117
|
+
var Za = 120;
|
|
4118
|
+
function Qa(e, t) {
|
|
4044
4119
|
let n = e.output;
|
|
4045
4120
|
if (n) return n.kind === "aggregates" ? Array.from(n.x, (e, t) => ({
|
|
4046
4121
|
x: e,
|
|
4047
4122
|
y: n.y[t]
|
|
4048
4123
|
})) : Array.from(n.sourceIndexes, (e) => t.pointAt(e)).filter((e) => e !== void 0);
|
|
4049
4124
|
}
|
|
4050
|
-
function
|
|
4125
|
+
function $a(e, t) {
|
|
4051
4126
|
let n = e.request, r = e.visibleRange.end - e.visibleRange.start;
|
|
4052
4127
|
return {
|
|
4053
4128
|
seriesId: n.seriesId,
|
|
@@ -4069,7 +4144,7 @@ function qa(e, t) {
|
|
|
4069
4144
|
maxPendingRequestCount: 0
|
|
4070
4145
|
};
|
|
4071
4146
|
}
|
|
4072
|
-
function
|
|
4147
|
+
function eo(e) {
|
|
4073
4148
|
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));
|
|
4074
4149
|
if (i <= a) return t.pointsInRange(n, r);
|
|
4075
4150
|
if (a === 1) return t.pointAt(n) ? [t.pointAt(n)] : [];
|
|
@@ -4080,7 +4155,7 @@ function Ja(e) {
|
|
|
4080
4155
|
}
|
|
4081
4156
|
return o;
|
|
4082
4157
|
}
|
|
4083
|
-
function
|
|
4158
|
+
function to(e, t, n, r) {
|
|
4084
4159
|
return {
|
|
4085
4160
|
message: e,
|
|
4086
4161
|
mode: t,
|
|
@@ -4088,8 +4163,8 @@ function Ya(e, t, n, r) {
|
|
|
4088
4163
|
seriesIds: r
|
|
4089
4164
|
};
|
|
4090
4165
|
}
|
|
4091
|
-
function
|
|
4092
|
-
let n = w(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 =
|
|
4166
|
+
function no(e) {
|
|
4167
|
+
let n = w(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 = qa(), d, f, p = !1, m = t(() => {
|
|
4093
4168
|
let t = e.renderingOptions.value.sampling;
|
|
4094
4169
|
return e.sourceTrackLayouts.value.flatMap((n) => {
|
|
4095
4170
|
let r = n.xScale.domain();
|
|
@@ -4154,13 +4229,13 @@ function Xa(e) {
|
|
|
4154
4229
|
revision: 0,
|
|
4155
4230
|
dataset: t.source.toWorkerDataset()
|
|
4156
4231
|
});
|
|
4157
|
-
!u.isCurrent(n) || !
|
|
4232
|
+
!u.isCurrent(n) || !Xa(r) || r.status !== "ok" && r.status !== "stale-revision" || a.set(t.request.datasetId, r.revision);
|
|
4158
4233
|
}));
|
|
4159
4234
|
}, x = async (t, n = !1) => {
|
|
4160
4235
|
let o = m.value, c = { ...e.linePointOverrides.value }, l = [], d = [];
|
|
4161
4236
|
if (o.forEach((e) => {
|
|
4162
|
-
let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" &&
|
|
4163
|
-
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(
|
|
4237
|
+
let r = e.visibleRange.end - e.visibleRange.start, i = n ? s.get(e.series.id) : void 0, a = e.request.mode === "auto" && Ka(r, e.request.autoThreshold, e.request.autoHysteresis ?? 0, i) === "raw";
|
|
4238
|
+
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] = eo(e)), l.push({
|
|
4164
4239
|
...e,
|
|
4165
4240
|
request: {
|
|
4166
4241
|
...e.request,
|
|
@@ -4172,7 +4247,7 @@ function Xa(e) {
|
|
|
4172
4247
|
e.linePointOverrides.value = c, v(d);
|
|
4173
4248
|
return;
|
|
4174
4249
|
}
|
|
4175
|
-
if (e.linePointOverrides.value = c, r ??=
|
|
4250
|
+
if (e.linePointOverrides.value = c, r ??= Ya(), await b(r, l, t), !u.isCurrent(t)) return;
|
|
4176
4251
|
let f = l.map((e) => ({
|
|
4177
4252
|
...e.request,
|
|
4178
4253
|
revision: a.get(e.request.datasetId) ?? 1
|
|
@@ -4187,22 +4262,22 @@ function Xa(e) {
|
|
|
4187
4262
|
p = e;
|
|
4188
4263
|
} catch (n) {
|
|
4189
4264
|
if (!u.isCurrent(t)) return;
|
|
4190
|
-
y(
|
|
4265
|
+
y(to(n instanceof Error ? n.message : String(n), e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id)));
|
|
4191
4266
|
return;
|
|
4192
4267
|
}
|
|
4193
4268
|
if (!u.isCurrent(t)) return;
|
|
4194
4269
|
let h = new Map(l.map((e) => [e.series.id, e.source]));
|
|
4195
4270
|
p.results.forEach((e) => {
|
|
4196
|
-
let t = h.get(e.seriesId), n = t ?
|
|
4197
|
-
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(
|
|
4198
|
-
}), p.workerError && y(
|
|
4271
|
+
let t = h.get(e.seriesId), n = t ? Qa(e, t) : void 0;
|
|
4272
|
+
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(to(p.workerError ?? "WASM sampling is unavailable.", e.diagnostics.mode, e.diagnostics.backend === "javascript" ? "javascript" : "none", [e.seriesId]));
|
|
4273
|
+
}), p.workerError && y(to(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(to(r.workerFailureReason, e.renderingOptions.value.sampling.mode, "javascript", l.map((e) => e.series.id))), e.linePointOverrides.value = { ...c }, v(d);
|
|
4199
4274
|
};
|
|
4200
4275
|
return k(h, () => {
|
|
4201
4276
|
f && clearTimeout(f);
|
|
4202
4277
|
let t = p;
|
|
4203
4278
|
p = !0, u.schedule((e) => x(e, t)), t && e.renderingOptions.value.sampling.mode === "auto" && e.renderingOptions.value.sampling.autoHysteresis > 0 && (f = setTimeout(() => {
|
|
4204
4279
|
f = void 0, u.schedule((e) => x(e, !1));
|
|
4205
|
-
},
|
|
4280
|
+
}, Za));
|
|
4206
4281
|
}, { immediate: !0 }), k(e.preparedSeries, () => {
|
|
4207
4282
|
u.cancelPending(), n.value += 1, e.linePointOverrides.value = {}, a.clear(), o.clear(), s.clear(), c.clear(), r?.dispose(), r = void 0;
|
|
4208
4283
|
}, { flush: "sync" }), _(() => {
|
|
@@ -4211,11 +4286,11 @@ function Xa(e) {
|
|
|
4211
4286
|
}
|
|
4212
4287
|
//#endregion
|
|
4213
4288
|
//#region src/components/core/useWaveformChartController.ts
|
|
4214
|
-
function
|
|
4289
|
+
function ro(e, t) {
|
|
4215
4290
|
e.value = t instanceof Element ? t : void 0;
|
|
4216
4291
|
}
|
|
4217
|
-
function
|
|
4218
|
-
let
|
|
4292
|
+
function io(e, n) {
|
|
4293
|
+
let r = x(), i = x(), a = x(), o = x(), s = x(0), c = x(0), l = x(0), u = x(0), f = x(0), p = w(q), m = w([]), h = x({}), g = x({}), _ = C({
|
|
4219
4294
|
points: [],
|
|
4220
4295
|
trackIndex: null,
|
|
4221
4296
|
queryX: null,
|
|
@@ -4224,216 +4299,219 @@ function Qa(e, t) {
|
|
|
4224
4299
|
x: 0,
|
|
4225
4300
|
y: 0
|
|
4226
4301
|
}
|
|
4227
|
-
}),
|
|
4302
|
+
}), v = x(!1), y = x(1), S = w(), T = de("waveform-clip"), D = x(new Set(e.defaultHiddenSeriesIds)), O = gt(), j = w({}), M = x([]), N = ai();
|
|
4228
4303
|
k([() => e.yDomain, () => e.yDomains], () => {
|
|
4229
|
-
|
|
4304
|
+
h.value = {}, g.value = {};
|
|
4230
4305
|
}, { deep: !0 });
|
|
4231
|
-
let
|
|
4232
|
-
|
|
4233
|
-
}, () =>
|
|
4306
|
+
let P = w(null), F = x(!1), I = x(!1), L = () => void 0, R = () => void 0, z = () => void 0, B = di(() => e.data, () => {
|
|
4307
|
+
z(), L();
|
|
4308
|
+
}, () => R()), V = ea({
|
|
4234
4309
|
props: e,
|
|
4235
|
-
observedWidth:
|
|
4236
|
-
observedHeight:
|
|
4237
|
-
measuredTitleWidth:
|
|
4238
|
-
measuredTitleHeight:
|
|
4239
|
-
internalHiddenSeriesIds:
|
|
4240
|
-
paginationBandHeight:
|
|
4241
|
-
}), { chartWidth:
|
|
4310
|
+
observedWidth: s,
|
|
4311
|
+
observedHeight: c,
|
|
4312
|
+
measuredTitleWidth: l,
|
|
4313
|
+
measuredTitleHeight: u,
|
|
4314
|
+
internalHiddenSeriesIds: D,
|
|
4315
|
+
paginationBandHeight: f
|
|
4316
|
+
}), { chartWidth: H, chartHeight: U, isCleanView: W, isPresentationMode: G, hiddenSeriesIdSet: K, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: ae } = V, oe = Xi({
|
|
4242
4317
|
props: e,
|
|
4243
|
-
preparedSeries:
|
|
4244
|
-
currentPage:
|
|
4245
|
-
hiddenSeriesIdSet:
|
|
4246
|
-
chartWidth:
|
|
4247
|
-
innerHeight:
|
|
4248
|
-
isCleanView:
|
|
4249
|
-
sharedTransform:
|
|
4250
|
-
independentTransforms:
|
|
4251
|
-
sharedYDomains:
|
|
4252
|
-
independentYDomains:
|
|
4253
|
-
annotationInteraction: d(
|
|
4254
|
-
linePointOverrides:
|
|
4255
|
-
}), { chartSeries:
|
|
4256
|
-
|
|
4318
|
+
preparedSeries: B,
|
|
4319
|
+
currentPage: y,
|
|
4320
|
+
hiddenSeriesIdSet: K,
|
|
4321
|
+
chartWidth: H,
|
|
4322
|
+
innerHeight: ae,
|
|
4323
|
+
isCleanView: W,
|
|
4324
|
+
sharedTransform: p,
|
|
4325
|
+
independentTransforms: m,
|
|
4326
|
+
sharedYDomains: h,
|
|
4327
|
+
independentYDomains: g,
|
|
4328
|
+
annotationInteraction: d(O),
|
|
4329
|
+
linePointOverrides: j
|
|
4330
|
+
}), { chartSeries: se, chartTracks: ce, renderingOptions: le, trackLayouts: ue, gridOptions: fe, pageCount: pe, pagedTracks: J, resolvedChartLeftMargin: me, innerWidth: Y, hasChartArea: he, activeInteractionMode: ge, isZoomMode: _e, initialXDomain: ve, sharedZoomDomain: ye, resolveInitialTrackDomain: be, annotationLayoutsForTrack: xe, resolveSeriesYScale: Se } = oe;
|
|
4331
|
+
no({
|
|
4257
4332
|
props: e,
|
|
4258
|
-
emit:
|
|
4259
|
-
instanceId:
|
|
4260
|
-
preparedSeries:
|
|
4261
|
-
sourceTrackLayouts:
|
|
4262
|
-
renderingOptions:
|
|
4263
|
-
linePointOverrides:
|
|
4264
|
-
})
|
|
4265
|
-
|
|
4333
|
+
emit: n,
|
|
4334
|
+
instanceId: T,
|
|
4335
|
+
preparedSeries: B,
|
|
4336
|
+
sourceTrackLayouts: ue,
|
|
4337
|
+
renderingOptions: le,
|
|
4338
|
+
linePointOverrides: j
|
|
4339
|
+
});
|
|
4340
|
+
let Ce = t(() => fe.value.showPagination && pe.value > 1 && !W.value);
|
|
4341
|
+
A(() => {
|
|
4342
|
+
f.value = e.layoutPreset === "edge-compact" ? si(Ce.value, H.value, pe.value, me.value + Y.value / 2, oe.resolvedXLabel.value) : fe.value.showPagination && pe.value > 1 && H.value <= 520 ? 40 : 0;
|
|
4266
4343
|
});
|
|
4267
|
-
let
|
|
4344
|
+
let X = oi({
|
|
4268
4345
|
props: e,
|
|
4269
|
-
emit:
|
|
4270
|
-
svgElement:
|
|
4271
|
-
sharedOverlayElement:
|
|
4272
|
-
sharedTransform:
|
|
4273
|
-
independentTransforms:
|
|
4274
|
-
trackLayouts:
|
|
4275
|
-
initialXDomain:
|
|
4276
|
-
sharedZoomDomain:
|
|
4277
|
-
innerWidth:
|
|
4278
|
-
innerHeight:
|
|
4279
|
-
hasChartArea:
|
|
4280
|
-
isZoomMode:
|
|
4281
|
-
isPresentationMode:
|
|
4282
|
-
resolveInitialTrackDomain:
|
|
4283
|
-
cancelPendingHover: () =>
|
|
4346
|
+
emit: n,
|
|
4347
|
+
svgElement: i,
|
|
4348
|
+
sharedOverlayElement: o,
|
|
4349
|
+
sharedTransform: p,
|
|
4350
|
+
independentTransforms: m,
|
|
4351
|
+
trackLayouts: ue,
|
|
4352
|
+
initialXDomain: ve,
|
|
4353
|
+
sharedZoomDomain: ye,
|
|
4354
|
+
innerWidth: Y,
|
|
4355
|
+
innerHeight: ae,
|
|
4356
|
+
hasChartArea: he,
|
|
4357
|
+
isZoomMode: _e,
|
|
4358
|
+
isPresentationMode: G,
|
|
4359
|
+
resolveInitialTrackDomain: be,
|
|
4360
|
+
cancelPendingHover: () => Ee.cancelPendingHover()
|
|
4284
4361
|
});
|
|
4285
|
-
|
|
4286
|
-
let
|
|
4362
|
+
z = X.prepareForDataChange;
|
|
4363
|
+
let we = jr({
|
|
4287
4364
|
props: e,
|
|
4288
|
-
emit:
|
|
4289
|
-
container:
|
|
4290
|
-
chartSeries:
|
|
4291
|
-
hiddenSeriesIdSet:
|
|
4292
|
-
internalHiddenSeriesIds:
|
|
4293
|
-
annotationInteraction:
|
|
4294
|
-
editorSeriesOptions:
|
|
4295
|
-
trackLayouts:
|
|
4296
|
-
annotationLayoutsForTrack:
|
|
4297
|
-
resolveSeriesYScale:
|
|
4298
|
-
chartWidth:
|
|
4299
|
-
chartHeight:
|
|
4300
|
-
innerWidth:
|
|
4301
|
-
resolvedChartLeftMargin:
|
|
4365
|
+
emit: n,
|
|
4366
|
+
container: r,
|
|
4367
|
+
chartSeries: se,
|
|
4368
|
+
hiddenSeriesIdSet: K,
|
|
4369
|
+
internalHiddenSeriesIds: D,
|
|
4370
|
+
annotationInteraction: O,
|
|
4371
|
+
editorSeriesOptions: M,
|
|
4372
|
+
trackLayouts: ue,
|
|
4373
|
+
annotationLayoutsForTrack: xe,
|
|
4374
|
+
resolveSeriesYScale: Se,
|
|
4375
|
+
chartWidth: H,
|
|
4376
|
+
chartHeight: U,
|
|
4377
|
+
innerWidth: Y,
|
|
4378
|
+
resolvedChartLeftMargin: me,
|
|
4302
4379
|
titleAreaHeight: re,
|
|
4303
|
-
chartTopMargin:
|
|
4304
|
-
activeInteractionMode:
|
|
4305
|
-
isPresentationMode:
|
|
4306
|
-
}),
|
|
4380
|
+
chartTopMargin: ie,
|
|
4381
|
+
activeInteractionMode: ge,
|
|
4382
|
+
isPresentationMode: G
|
|
4383
|
+
}), Te = ii({
|
|
4307
4384
|
props: e,
|
|
4308
|
-
emit:
|
|
4309
|
-
selection:
|
|
4310
|
-
spacePressed:
|
|
4311
|
-
trackLayouts:
|
|
4312
|
-
chartTracks:
|
|
4313
|
-
initialXDomain:
|
|
4314
|
-
innerWidth:
|
|
4315
|
-
innerHeight:
|
|
4316
|
-
sharedOverlayElement:
|
|
4317
|
-
sharedTransform:
|
|
4318
|
-
independentTransforms:
|
|
4319
|
-
sharedYDomains:
|
|
4320
|
-
independentYDomains:
|
|
4321
|
-
isZoomMode:
|
|
4322
|
-
isPresentationMode:
|
|
4323
|
-
editorSeriesOptions:
|
|
4324
|
-
resolveInitialTrackDomain:
|
|
4325
|
-
canZoomTrack:
|
|
4326
|
-
canZoomSharedTracks:
|
|
4327
|
-
configureZoom:
|
|
4328
|
-
cancelPendingZoom:
|
|
4329
|
-
clearHover: () =>
|
|
4330
|
-
resolveTrackAtPointer:
|
|
4331
|
-
}),
|
|
4332
|
-
emit:
|
|
4333
|
-
hoverState:
|
|
4334
|
-
suppressHoverUntilMove:
|
|
4335
|
-
hoverThrottle:
|
|
4336
|
-
selection:
|
|
4337
|
-
trackLayouts:
|
|
4338
|
-
innerWidth:
|
|
4339
|
-
resolvedChartLeftMargin:
|
|
4385
|
+
emit: n,
|
|
4386
|
+
selection: P,
|
|
4387
|
+
spacePressed: F,
|
|
4388
|
+
trackLayouts: ue,
|
|
4389
|
+
chartTracks: ce,
|
|
4390
|
+
initialXDomain: ve,
|
|
4391
|
+
innerWidth: Y,
|
|
4392
|
+
innerHeight: ae,
|
|
4393
|
+
sharedOverlayElement: o,
|
|
4394
|
+
sharedTransform: p,
|
|
4395
|
+
independentTransforms: m,
|
|
4396
|
+
sharedYDomains: h,
|
|
4397
|
+
independentYDomains: g,
|
|
4398
|
+
isZoomMode: _e,
|
|
4399
|
+
isPresentationMode: G,
|
|
4400
|
+
editorSeriesOptions: M,
|
|
4401
|
+
resolveInitialTrackDomain: be,
|
|
4402
|
+
canZoomTrack: X.canZoomTrack,
|
|
4403
|
+
canZoomSharedTracks: X.canZoomSharedTracks,
|
|
4404
|
+
configureZoom: X.configureZoom,
|
|
4405
|
+
cancelPendingZoom: X.cancelPendingZoom,
|
|
4406
|
+
clearHover: () => Ee.clearHover(),
|
|
4407
|
+
resolveTrackAtPointer: we.resolveTrackAtPointer
|
|
4408
|
+
}), Ee = Mr({
|
|
4409
|
+
emit: n,
|
|
4410
|
+
hoverState: _,
|
|
4411
|
+
suppressHoverUntilMove: v,
|
|
4412
|
+
hoverThrottle: N,
|
|
4413
|
+
selection: P,
|
|
4414
|
+
trackLayouts: ue,
|
|
4415
|
+
innerWidth: Y,
|
|
4416
|
+
resolvedChartLeftMargin: me,
|
|
4340
4417
|
titleAreaHeight: re,
|
|
4341
|
-
chartTopMargin:
|
|
4342
|
-
sharedOverlayElement:
|
|
4343
|
-
isPresentationMode:
|
|
4344
|
-
updateViewportDrag:
|
|
4345
|
-
resolveTrackAtPointer:
|
|
4346
|
-
}),
|
|
4418
|
+
chartTopMargin: ie,
|
|
4419
|
+
sharedOverlayElement: o,
|
|
4420
|
+
isPresentationMode: G,
|
|
4421
|
+
updateViewportDrag: Te.updateViewportDrag,
|
|
4422
|
+
resolveTrackAtPointer: we.resolveTrackAtPointer
|
|
4423
|
+
}), De = li({
|
|
4347
4424
|
props: e,
|
|
4348
|
-
emit:
|
|
4349
|
-
container:
|
|
4350
|
-
titleMeasureElement:
|
|
4351
|
-
resizeObserver:
|
|
4352
|
-
observedWidth:
|
|
4353
|
-
observedHeight:
|
|
4354
|
-
measuredTitleWidth:
|
|
4355
|
-
measuredTitleHeight:
|
|
4425
|
+
emit: n,
|
|
4426
|
+
container: r,
|
|
4427
|
+
titleMeasureElement: a,
|
|
4428
|
+
resizeObserver: S,
|
|
4429
|
+
observedWidth: s,
|
|
4430
|
+
observedHeight: c,
|
|
4431
|
+
measuredTitleWidth: l,
|
|
4432
|
+
measuredTitleHeight: u,
|
|
4356
4433
|
resolvedTitleText: ee,
|
|
4357
4434
|
titleAreaReserved: te,
|
|
4358
4435
|
titleMeasureStyle: ne,
|
|
4359
|
-
spacePressed:
|
|
4360
|
-
pointerInsideChart:
|
|
4361
|
-
currentPage:
|
|
4362
|
-
pageCount:
|
|
4363
|
-
pagedTracks:
|
|
4364
|
-
gridOptions:
|
|
4365
|
-
chartSeries:
|
|
4366
|
-
chartTracks:
|
|
4367
|
-
trackLayouts:
|
|
4368
|
-
innerWidth:
|
|
4369
|
-
innerHeight:
|
|
4370
|
-
sharedZoomDomain:
|
|
4371
|
-
initialXDomain:
|
|
4372
|
-
sharedTransform:
|
|
4373
|
-
activeInteractionMode:
|
|
4374
|
-
hiddenSeriesIdSet:
|
|
4375
|
-
internalHiddenSeriesIds:
|
|
4376
|
-
independentTransforms:
|
|
4377
|
-
independentYDomains:
|
|
4378
|
-
resolveInitialTrackDomain:
|
|
4379
|
-
annotationInteraction:
|
|
4380
|
-
editorSeriesOptions:
|
|
4381
|
-
isPresentationMode:
|
|
4382
|
-
clearHover:
|
|
4383
|
-
cancelAnnotation:
|
|
4384
|
-
configureZoom:
|
|
4385
|
-
resetViewport:
|
|
4386
|
-
cancelViewportDrag:
|
|
4387
|
-
cancelPendingHover:
|
|
4388
|
-
clearZoomBindings:
|
|
4436
|
+
spacePressed: F,
|
|
4437
|
+
pointerInsideChart: I,
|
|
4438
|
+
currentPage: y,
|
|
4439
|
+
pageCount: pe,
|
|
4440
|
+
pagedTracks: J,
|
|
4441
|
+
gridOptions: fe,
|
|
4442
|
+
chartSeries: se,
|
|
4443
|
+
chartTracks: ce,
|
|
4444
|
+
trackLayouts: ue,
|
|
4445
|
+
innerWidth: Y,
|
|
4446
|
+
innerHeight: ae,
|
|
4447
|
+
sharedZoomDomain: ye,
|
|
4448
|
+
initialXDomain: ve,
|
|
4449
|
+
sharedTransform: p,
|
|
4450
|
+
activeInteractionMode: ge,
|
|
4451
|
+
hiddenSeriesIdSet: K,
|
|
4452
|
+
internalHiddenSeriesIds: D,
|
|
4453
|
+
independentTransforms: m,
|
|
4454
|
+
independentYDomains: g,
|
|
4455
|
+
resolveInitialTrackDomain: be,
|
|
4456
|
+
annotationInteraction: O,
|
|
4457
|
+
editorSeriesOptions: M,
|
|
4458
|
+
isPresentationMode: G,
|
|
4459
|
+
clearHover: Ee.clearHover,
|
|
4460
|
+
cancelAnnotation: we.cancelAnnotation,
|
|
4461
|
+
configureZoom: X.configureZoom,
|
|
4462
|
+
resetViewport: Te.resetViewport,
|
|
4463
|
+
cancelViewportDrag: Te.cancelViewportDrag,
|
|
4464
|
+
cancelPendingHover: Ee.cancelPendingHover,
|
|
4465
|
+
clearZoomBindings: X.clearZoomBindings
|
|
4389
4466
|
});
|
|
4390
|
-
return
|
|
4467
|
+
return L = De.handleBeforeDataReferenceChange, R = De.handleDataReferenceChange, b({
|
|
4391
4468
|
...E(e),
|
|
4392
|
-
...
|
|
4393
|
-
|
|
4394
|
-
...
|
|
4395
|
-
...X,
|
|
4469
|
+
...V,
|
|
4470
|
+
paginationVisible: Ce,
|
|
4471
|
+
...oe,
|
|
4396
4472
|
...we,
|
|
4473
|
+
...Te,
|
|
4474
|
+
...Ee,
|
|
4397
4475
|
margin: zt,
|
|
4398
4476
|
getPageSize: Hn,
|
|
4399
|
-
currentPage:
|
|
4400
|
-
selection:
|
|
4401
|
-
pointerInsideChart:
|
|
4402
|
-
hoverState:
|
|
4403
|
-
annotationInteraction:
|
|
4404
|
-
editorDraft:
|
|
4405
|
-
contextMenu:
|
|
4406
|
-
editorSeriesOptions:
|
|
4407
|
-
clipPathId:
|
|
4408
|
-
goToPage:
|
|
4409
|
-
setContainer: (e) =>
|
|
4410
|
-
setSvgElement: (e) =>
|
|
4411
|
-
setTitleMeasureElement: (e) =>
|
|
4412
|
-
setSharedOverlayElement: (e) =>
|
|
4477
|
+
currentPage: y,
|
|
4478
|
+
selection: P,
|
|
4479
|
+
pointerInsideChart: I,
|
|
4480
|
+
hoverState: _,
|
|
4481
|
+
annotationInteraction: O,
|
|
4482
|
+
editorDraft: O.editorDraft,
|
|
4483
|
+
contextMenu: O.contextMenu,
|
|
4484
|
+
editorSeriesOptions: M,
|
|
4485
|
+
clipPathId: T,
|
|
4486
|
+
goToPage: De.goToPage,
|
|
4487
|
+
setContainer: (e) => ro(r, e),
|
|
4488
|
+
setSvgElement: (e) => ro(i, e),
|
|
4489
|
+
setTitleMeasureElement: (e) => ro(a, e),
|
|
4490
|
+
setSharedOverlayElement: (e) => ro(o, e)
|
|
4413
4491
|
});
|
|
4414
4492
|
}
|
|
4415
4493
|
//#endregion
|
|
4416
4494
|
//#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
|
|
4417
|
-
var
|
|
4495
|
+
var ao = ["id"], oo = { class: "waveform-annotation-editor__content" }, so = {
|
|
4418
4496
|
class: "waveform-annotation-editor__coordinates",
|
|
4419
4497
|
"aria-label": "标注坐标"
|
|
4420
|
-
},
|
|
4498
|
+
}, co = ["aria-invalid"], lo = {
|
|
4421
4499
|
class: "waveform-annotation-editor__coordinate-value",
|
|
4422
4500
|
"aria-hidden": "true"
|
|
4423
|
-
},
|
|
4501
|
+
}, uo = ["id"], fo = {
|
|
4424
4502
|
key: 0,
|
|
4425
4503
|
class: "waveform-annotation-editor__series",
|
|
4426
4504
|
"aria-label": "标注所属波形"
|
|
4427
|
-
},
|
|
4505
|
+
}, po = { class: "waveform-annotation-editor__series-label" }, mo = ["value"], ho = ["value"], go = { key: 1 }, _o = { class: "waveform-annotation-editor__field" }, vo = { class: "waveform-annotation-editor__label-row" }, yo = ["maxlength"], bo = { class: "waveform-annotation-editor__colors" }, xo = {
|
|
4428
4506
|
class: "waveform-annotation-editor__color-field",
|
|
4429
4507
|
title: "调整标注边框色和透明度"
|
|
4430
|
-
},
|
|
4508
|
+
}, So = {
|
|
4431
4509
|
class: "waveform-annotation-editor__color-field",
|
|
4432
4510
|
title: "调整标注文字色和透明度"
|
|
4433
|
-
},
|
|
4511
|
+
}, Co = {
|
|
4434
4512
|
class: "waveform-annotation-editor__color-field",
|
|
4435
4513
|
title: "调整标注背景色和透明度"
|
|
4436
|
-
},
|
|
4514
|
+
}, wo = /*#__PURE__*/ nt(/* @__PURE__ */ l({
|
|
4437
4515
|
__name: "WaveformAnnotationEditor",
|
|
4438
4516
|
props: {
|
|
4439
4517
|
annotation: {},
|
|
@@ -4453,7 +4531,7 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4453
4531
|
let u = c(async () => typeof window > "u" ? {
|
|
4454
4532
|
name: "WaveformColorPickerSsrFallback",
|
|
4455
4533
|
render: () => null
|
|
4456
|
-
} : (await import("vue3-colorpicker")).ColorPicker), d = o, p = l, h = x(), g =
|
|
4534
|
+
} : (await import("vue3-colorpicker")).ColorPicker), d = o, p = l, h = x(), g = de("waveform-annotation-editor-title"), _ = x(""), v = x(""), b = x(!1), C = x(""), w = x(""), E = x(""), A = t(() => b.value && (!v.value.trim() || !Number.isFinite(Number(v.value))) ? "请输入有效的时间" : ""), N = t(() => b.value && (A.value || d.timeError) || ""), P = t(() => _.value.trim().length > 0 && v.value.trim().length > 0 && Number.isFinite(Number(v.value)) && !N.value), F = t(() => _.value.length), I = t(() => {
|
|
4457
4535
|
let e = d.seriesOptions?.find((e) => e.seriesId === d.annotation.seriesId);
|
|
4458
4536
|
return e ? {
|
|
4459
4537
|
id: e.seriesId,
|
|
@@ -4491,7 +4569,7 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4491
4569
|
let t = e.target;
|
|
4492
4570
|
t.value && p("series-change", t.value);
|
|
4493
4571
|
}
|
|
4494
|
-
return (t, o) => (y(), n(D(
|
|
4572
|
+
return (t, o) => (y(), n(D(ce), {
|
|
4495
4573
|
visible: !0,
|
|
4496
4574
|
width: 440,
|
|
4497
4575
|
"mask-closable": !0,
|
|
@@ -4504,15 +4582,15 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4504
4582
|
onCancel: o[4] ||= (e) => p("cancel"),
|
|
4505
4583
|
onOk: B
|
|
4506
4584
|
}, {
|
|
4507
|
-
title: j(() => [a("span", { id: D(g) }, T(d.mode === "add" ? "添加标注" : "编辑标注"), 9,
|
|
4508
|
-
default: j(() => [a("div",
|
|
4509
|
-
a("div",
|
|
4585
|
+
title: j(() => [a("span", { id: D(g) }, T(d.mode === "add" ? "添加标注" : "编辑标注"), 9, ao)]),
|
|
4586
|
+
default: j(() => [a("div", oo, [
|
|
4587
|
+
a("div", so, [
|
|
4510
4588
|
a("label", {
|
|
4511
4589
|
class: "waveform-annotation-editor__coordinate-input",
|
|
4512
4590
|
"aria-invalid": !!N.value
|
|
4513
4591
|
}, [
|
|
4514
4592
|
o[5] ||= a("b", null, "X", -1),
|
|
4515
|
-
s(D(
|
|
4593
|
+
s(D(se), {
|
|
4516
4594
|
value: v.value === "" ? void 0 : Number(v.value),
|
|
4517
4595
|
controls: !0,
|
|
4518
4596
|
step: .001,
|
|
@@ -4529,26 +4607,26 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4529
4607
|
"aria-invalid",
|
|
4530
4608
|
"aria-describedby"
|
|
4531
4609
|
]),
|
|
4532
|
-
a("code",
|
|
4533
|
-
], 8,
|
|
4610
|
+
a("code", lo, T(v.value), 1)
|
|
4611
|
+
], 8, co),
|
|
4534
4612
|
N.value ? (y(), i("p", {
|
|
4535
4613
|
key: 0,
|
|
4536
4614
|
id: `${D(g)}-time-error`,
|
|
4537
4615
|
class: "waveform-annotation-editor__coordinate-error",
|
|
4538
4616
|
role: "alert"
|
|
4539
|
-
}, T(N.value), 9,
|
|
4617
|
+
}, T(N.value), 9, uo)) : r("", !0),
|
|
4540
4618
|
a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, T(D(At)(d.annotation.y)), 1)])
|
|
4541
4619
|
]),
|
|
4542
4620
|
o[13] ||= a("p", {
|
|
4543
4621
|
class: "waveform-annotation-editor__coordinate-hint",
|
|
4544
4622
|
role: "note"
|
|
4545
4623
|
}, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
|
|
4546
|
-
I.value ? (y(), i("label",
|
|
4624
|
+
I.value ? (y(), i("label", fo, [
|
|
4547
4625
|
a("i", {
|
|
4548
4626
|
style: m({ backgroundColor: I.value.color }),
|
|
4549
4627
|
"aria-hidden": "true"
|
|
4550
4628
|
}, null, 4),
|
|
4551
|
-
a("span",
|
|
4629
|
+
a("span", po, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, T(I.value.name), 1)]),
|
|
4552
4630
|
d.seriesOptions?.length ? (y(), i("select", {
|
|
4553
4631
|
key: 0,
|
|
4554
4632
|
value: d.annotation.seriesId,
|
|
@@ -4557,9 +4635,9 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4557
4635
|
}, [(y(!0), i(e, null, S(d.seriesOptions, (e) => (y(), i("option", {
|
|
4558
4636
|
key: e.seriesId,
|
|
4559
4637
|
value: e.seriesId
|
|
4560
|
-
}, T(e.name) + T(e.unit ? ` (${e.unit})` : ""), 9,
|
|
4638
|
+
}, T(e.name) + T(e.unit ? ` (${e.unit})` : ""), 9, ho))), 128))], 40, mo)) : I.value.unit ? (y(), i("code", go, T(I.value.unit), 1)) : r("", !0)
|
|
4561
4639
|
])) : r("", !0),
|
|
4562
|
-
a("label",
|
|
4640
|
+
a("label", _o, [a("span", vo, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, T(F.value) + "/" + T(D(40)), 1)]), M(a("textarea", {
|
|
4563
4641
|
ref_key: "textarea",
|
|
4564
4642
|
ref: h,
|
|
4565
4643
|
"onUpdate:modelValue": o[0] ||= (e) => _.value = e,
|
|
@@ -4568,10 +4646,10 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4568
4646
|
"aria-label": "标注文本",
|
|
4569
4647
|
placeholder: "输入这处波形的说明",
|
|
4570
4648
|
onKeydown: V
|
|
4571
|
-
}, null, 40,
|
|
4572
|
-
a("fieldset",
|
|
4649
|
+
}, null, 40, yo), [[O, _.value]])]),
|
|
4650
|
+
a("fieldset", bo, [
|
|
4573
4651
|
o[12] ||= a("legend", null, "颜色与透明度", -1),
|
|
4574
|
-
a("label",
|
|
4652
|
+
a("label", xo, [o[9] ||= a("span", null, "边框色", -1), s(D(u), {
|
|
4575
4653
|
"pure-color": C.value,
|
|
4576
4654
|
"onUpdate:pureColor": o[1] ||= (e) => C.value = e,
|
|
4577
4655
|
"aria-label": "标注边框色",
|
|
@@ -4581,7 +4659,7 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4581
4659
|
"disable-alpha": !1,
|
|
4582
4660
|
"blur-close": !0
|
|
4583
4661
|
}, null, 8, ["pure-color"])]),
|
|
4584
|
-
a("label",
|
|
4662
|
+
a("label", So, [o[10] ||= a("span", null, "文字色", -1), s(D(u), {
|
|
4585
4663
|
"pure-color": w.value,
|
|
4586
4664
|
"onUpdate:pureColor": o[2] ||= (e) => w.value = e,
|
|
4587
4665
|
"aria-label": "标注文字色",
|
|
@@ -4591,7 +4669,7 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4591
4669
|
"disable-alpha": !1,
|
|
4592
4670
|
"blur-close": !0
|
|
4593
4671
|
}, null, 8, ["pure-color"])]),
|
|
4594
|
-
a("label",
|
|
4672
|
+
a("label", Co, [o[11] ||= a("span", null, "背景色", -1), s(D(u), {
|
|
4595
4673
|
"pure-color": E.value,
|
|
4596
4674
|
"onUpdate:pureColor": o[3] ||= (e) => E.value = e,
|
|
4597
4675
|
"aria-label": "标注背景色",
|
|
@@ -4606,13 +4684,13 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4606
4684
|
_: 1
|
|
4607
4685
|
}, 8, ["ok-button-props"]));
|
|
4608
4686
|
}
|
|
4609
|
-
}), [["__scopeId", "data-v-01ecd3a4"]]),
|
|
4687
|
+
}), [["__scopeId", "data-v-01ecd3a4"]]), To = { class: "waveform-tooltip__series-content" }, Eo = { class: "waveform-tooltip__series-label" }, Do = {
|
|
4610
4688
|
key: 0,
|
|
4611
4689
|
class: "waveform-tooltip__value"
|
|
4612
|
-
},
|
|
4690
|
+
}, Oo = {
|
|
4613
4691
|
key: 1,
|
|
4614
4692
|
class: "waveform-tooltip__value waveform-tooltip__value--missing"
|
|
4615
|
-
},
|
|
4693
|
+
}, ko = 12, Ao = 8, jo = 560, Mo = /*#__PURE__*/ nt(/* @__PURE__ */ l({
|
|
4616
4694
|
__name: "WaveformTooltip",
|
|
4617
4695
|
props: {
|
|
4618
4696
|
visible: { type: Boolean },
|
|
@@ -4642,12 +4720,12 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4642
4720
|
}, { flush: "post" }), v(u);
|
|
4643
4721
|
let d = t(() => {
|
|
4644
4722
|
if (!s.visible || !s.hoveredPoint) return { display: "none" };
|
|
4645
|
-
let e = s.position.x +
|
|
4723
|
+
let e = s.position.x + ko, t = s.position.x - ko - l.value.width, n = Math.max(1, Math.min(jo, s.containerWidth - Ao * 2));
|
|
4646
4724
|
return {
|
|
4647
|
-
...e + l.value.width <= s.containerWidth -
|
|
4725
|
+
...e + l.value.width <= s.containerWidth - Ao ? { left: `${e}px` } : t >= Ao ? { right: `${s.containerWidth - s.position.x + ko}px` } : { left: `${Ao}px` },
|
|
4648
4726
|
maxWidth: `${n}px`,
|
|
4649
4727
|
visibility: l.value.width > 0 ? "visible" : "hidden",
|
|
4650
|
-
top: `${Math.max(
|
|
4728
|
+
top: `${Math.max(Ao, Math.min(s.position.y - 18, s.containerHeight - l.value.height - Ao))}px`
|
|
4651
4729
|
};
|
|
4652
4730
|
});
|
|
4653
4731
|
return (t, s) => n.visible && n.hoveredPoint ? (y(), i("div", {
|
|
@@ -4659,9 +4737,9 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4659
4737
|
}, [(y(!0), i(e, null, S(n.seriesPoints, (t) => (y(), i("span", {
|
|
4660
4738
|
key: `${t.trackIndex}-${t.name}`,
|
|
4661
4739
|
class: "waveform-tooltip__series waveform-chart__tooltip-series"
|
|
4662
|
-
}, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span",
|
|
4740
|
+
}, [a("i", { style: m({ backgroundColor: t.color }) }, null, 4), a("span", To, [a("span", Eo, [o(T(t.shotNo?.trim() || "未配置炮号") + ": " + T(t.name), 1), t.unit ? (y(), i(e, { key: 0 }, [o("(" + T(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (y(), i("span", Do, "(x:" + T(D(Ft)(t.point.x, n.timeUnit)) + " y:" + T(D(kt)(t.point.y)) + ")", 1)) : (y(), i("span", Oo, "无数据"))])]))), 128))], 4)) : r("", !0);
|
|
4663
4741
|
}
|
|
4664
|
-
}), [["__scopeId", "data-v-0d0d1d3c"]]),
|
|
4742
|
+
}), [["__scopeId", "data-v-0d0d1d3c"]]), No = /* @__PURE__ */ l({
|
|
4665
4743
|
__name: "WaveformHoverHost",
|
|
4666
4744
|
props: {
|
|
4667
4745
|
state: {},
|
|
@@ -4672,7 +4750,7 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4672
4750
|
},
|
|
4673
4751
|
setup(e) {
|
|
4674
4752
|
let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
|
|
4675
|
-
return (t, r) => (y(), n(
|
|
4753
|
+
return (t, r) => (y(), n(Mo, {
|
|
4676
4754
|
visible: e.visible && i.value !== null,
|
|
4677
4755
|
position: e.state.position,
|
|
4678
4756
|
"time-unit": e.timeUnit,
|
|
@@ -4690,16 +4768,16 @@ var $a = ["id"], eo = { class: "waveform-annotation-editor__content" }, to = {
|
|
|
4690
4768
|
"container-height"
|
|
4691
4769
|
]));
|
|
4692
4770
|
}
|
|
4693
|
-
}),
|
|
4694
|
-
circle:
|
|
4695
|
-
square:
|
|
4696
|
-
triangle:
|
|
4697
|
-
diamond:
|
|
4771
|
+
}), Po = 13, Fo = 2, Io = 14, Lo = 8, Ro = 24, zo = {
|
|
4772
|
+
circle: ee,
|
|
4773
|
+
square: ne,
|
|
4774
|
+
triangle: re,
|
|
4775
|
+
diamond: te
|
|
4698
4776
|
};
|
|
4699
|
-
function
|
|
4700
|
-
return e === "none" ? null :
|
|
4777
|
+
function Bo(e, t = 48) {
|
|
4778
|
+
return e === "none" ? null : K().type(zo[e]).size(t)() ?? null;
|
|
4701
4779
|
}
|
|
4702
|
-
function
|
|
4780
|
+
function Vo(e, t, n = 48) {
|
|
4703
4781
|
if (e === "none" || t.length === 0) return null;
|
|
4704
4782
|
if (e === "circle") {
|
|
4705
4783
|
let e = Math.sqrt(n / Math.PI);
|
|
@@ -4716,24 +4794,24 @@ function Fo(e, t, n = 48) {
|
|
|
4716
4794
|
let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
|
|
4717
4795
|
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("");
|
|
4718
4796
|
}
|
|
4719
|
-
function
|
|
4797
|
+
function Ho(e) {
|
|
4720
4798
|
return e === "none" ? null : "M1 8H25";
|
|
4721
4799
|
}
|
|
4722
|
-
function
|
|
4800
|
+
function Uo(e) {
|
|
4723
4801
|
if (e === "dashed") return "8 5";
|
|
4724
4802
|
if (e === "dash-dot") return "8 5 1.5 5";
|
|
4725
4803
|
}
|
|
4726
|
-
function
|
|
4727
|
-
let t = (Number.isFinite(e) && e > 0 ? Math.min(e,
|
|
4804
|
+
function Wo(e) {
|
|
4805
|
+
let t = (Number.isFinite(e) && e > 0 ? Math.min(e, Ro) : Lo) / 2, n = Po - t, r = Po + t;
|
|
4728
4806
|
return [
|
|
4729
|
-
`M${n} ${
|
|
4730
|
-
`M${
|
|
4731
|
-
`M${n} ${
|
|
4807
|
+
`M${n} ${Fo}H${r}`,
|
|
4808
|
+
`M${Po} ${Fo}V${Io}`,
|
|
4809
|
+
`M${n} ${Io}H${r}`
|
|
4732
4810
|
].join("");
|
|
4733
4811
|
}
|
|
4734
4812
|
//#endregion
|
|
4735
4813
|
//#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
|
|
4736
|
-
var
|
|
4814
|
+
var Go = ["clip-path"], Ko = ["data-series-id", "data-series-name"], qo = [
|
|
4737
4815
|
"data-series-id",
|
|
4738
4816
|
"data-series-name",
|
|
4739
4817
|
"data-y-axis-index",
|
|
@@ -4742,11 +4820,11 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4742
4820
|
"d",
|
|
4743
4821
|
"stroke",
|
|
4744
4822
|
"stroke-dasharray"
|
|
4745
|
-
],
|
|
4823
|
+
], Jo = ["data-series-id"], Yo = [
|
|
4746
4824
|
"d",
|
|
4747
4825
|
"stroke",
|
|
4748
4826
|
"stroke-width"
|
|
4749
|
-
],
|
|
4827
|
+
], Xo = ["data-series-id", "data-point-type"], Zo = ["d", "fill"], Qo = /*#__PURE__*/ nt(/* @__PURE__ */ l({
|
|
4750
4828
|
__name: "WaveformSeriesLayer",
|
|
4751
4829
|
props: {
|
|
4752
4830
|
track: {},
|
|
@@ -4754,7 +4832,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4754
4832
|
},
|
|
4755
4833
|
setup(n) {
|
|
4756
4834
|
let a = n, o = t(() => a.track.seriesPaths.map((e) => {
|
|
4757
|
-
let t =
|
|
4835
|
+
let t = Vo(e.series.pointType, e.pointRenderPoints.map((t) => ({
|
|
4758
4836
|
x: a.track.xScale(t.x),
|
|
4759
4837
|
y: e.yScale(t.y)
|
|
4760
4838
|
}))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
|
|
@@ -4791,8 +4869,8 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4791
4869
|
"data-line-style": e.series.lineStyle,
|
|
4792
4870
|
d: e.path,
|
|
4793
4871
|
stroke: e.series.color,
|
|
4794
|
-
"stroke-dasharray": D(
|
|
4795
|
-
}, null, 8,
|
|
4872
|
+
"stroke-dasharray": D(Uo)(e.series.lineStyle)
|
|
4873
|
+
}, null, 8, qo)) : r("", !0),
|
|
4796
4874
|
e.series.errorBar.visible ? (y(), i("g", {
|
|
4797
4875
|
key: 1,
|
|
4798
4876
|
class: "waveform-track__error-bars waveform-chart__error-bars",
|
|
@@ -4803,7 +4881,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4803
4881
|
d: e.errorBarPath,
|
|
4804
4882
|
stroke: e.series.errorBar.color || e.series.color,
|
|
4805
4883
|
"stroke-width": e.series.errorBar.width
|
|
4806
|
-
}, null, 8,
|
|
4884
|
+
}, null, 8, Yo)) : r("", !0)], 8, Jo)) : r("", !0),
|
|
4807
4885
|
e.series.pointType === "none" ? r("", !0) : (y(), i("g", {
|
|
4808
4886
|
key: 2,
|
|
4809
4887
|
class: "waveform-track__points waveform-chart__points",
|
|
@@ -4814,10 +4892,10 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4814
4892
|
class: "waveform-track__point waveform-chart__point",
|
|
4815
4893
|
d: e.pointPath,
|
|
4816
4894
|
fill: e.series.color
|
|
4817
|
-
}, null, 8,
|
|
4818
|
-
], 8,
|
|
4895
|
+
}, null, 8, Zo)) : r("", !0)], 8, Xo))
|
|
4896
|
+
], 8, Ko))), 128))], 8, Go)) : r("", !0);
|
|
4819
4897
|
}
|
|
4820
|
-
}), [["__scopeId", "data-v-628502df"]]),
|
|
4898
|
+
}), [["__scopeId", "data-v-628502df"]]), $o = ["clip-path"], es = [
|
|
4821
4899
|
"data-y-axis-index",
|
|
4822
4900
|
"x2",
|
|
4823
4901
|
"y1",
|
|
@@ -4826,7 +4904,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4826
4904
|
"stroke-opacity",
|
|
4827
4905
|
"stroke-width",
|
|
4828
4906
|
"stroke-dasharray"
|
|
4829
|
-
],
|
|
4907
|
+
], ts = /* @__PURE__ */ l({
|
|
4830
4908
|
__name: "WaveformZeroLines",
|
|
4831
4909
|
props: {
|
|
4832
4910
|
track: {},
|
|
@@ -4859,27 +4937,27 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4859
4937
|
"stroke-opacity": t.zeroLine.opacity,
|
|
4860
4938
|
"stroke-width": t.zeroLine.width,
|
|
4861
4939
|
"stroke-dasharray": t.zeroLine.dash || void 0
|
|
4862
|
-
}, null, 8,
|
|
4940
|
+
}, null, 8, es))], 64))), 128))], 8, $o)) : r("", !0);
|
|
4863
4941
|
}
|
|
4864
|
-
}),
|
|
4942
|
+
}), ns = ["transform"], rs = ["transform"], is = {
|
|
4865
4943
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
|
|
4866
4944
|
x: "0",
|
|
4867
4945
|
y: "7",
|
|
4868
4946
|
dy: "0.71em",
|
|
4869
4947
|
"text-anchor": "start"
|
|
4870
|
-
},
|
|
4948
|
+
}, as = ["x"], os = [
|
|
4871
4949
|
"data-y-axis-index",
|
|
4872
4950
|
"data-y-axis-side",
|
|
4873
4951
|
"transform"
|
|
4874
|
-
],
|
|
4952
|
+
], ss = { key: 2 }, cs = [
|
|
4875
4953
|
"x",
|
|
4876
4954
|
"y",
|
|
4877
4955
|
"width"
|
|
4878
|
-
],
|
|
4956
|
+
], ls = ["fill", "transform"], us = ["data-y-axis-title-index"], ds = [
|
|
4879
4957
|
"x",
|
|
4880
4958
|
"y",
|
|
4881
4959
|
"width"
|
|
4882
|
-
],
|
|
4960
|
+
], fs = ["fill", "transform"], ps = /* @__PURE__ */ l({
|
|
4883
4961
|
__name: "WaveformTrackAxes",
|
|
4884
4962
|
props: {
|
|
4885
4963
|
track: {},
|
|
@@ -4887,7 +4965,12 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4887
4965
|
cleanView: { type: Boolean },
|
|
4888
4966
|
axes: {},
|
|
4889
4967
|
timeUnit: {},
|
|
4890
|
-
yLabel: {}
|
|
4968
|
+
yLabel: {},
|
|
4969
|
+
showUnits: {
|
|
4970
|
+
type: Boolean,
|
|
4971
|
+
default: !0
|
|
4972
|
+
},
|
|
4973
|
+
containYAxisEndpoints: { type: Boolean }
|
|
4891
4974
|
},
|
|
4892
4975
|
setup(t) {
|
|
4893
4976
|
let n = t, o = x(), s = x([]);
|
|
@@ -4908,10 +4991,10 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4908
4991
|
if (n.track.yAxes.forEach((e, t) => {
|
|
4909
4992
|
let r = s.value[t];
|
|
4910
4993
|
if (!r) return;
|
|
4911
|
-
let i = e.seriesList[0]?.unit, a = (e.side === "left" ? F(e.scale) : I(e.scale)).tickFormat((t) => br(Number(t), e.scale.domain(), e.tickValues, i)).tickSize(-4).tickPadding(7).tickSizeOuter(0).tickValues(e.tickValues), o = G(r);
|
|
4994
|
+
let i = n.showUnits ? e.seriesList[0]?.unit : void 0, a = (e.side === "left" ? F(e.scale) : I(e.scale)).tickFormat((t) => br(Number(t), e.scale.domain(), e.tickValues, i)).tickSize(-4).tickPadding(7).tickSizeOuter(0).tickValues(e.tickValues), o = G(r);
|
|
4912
4995
|
o.call(a);
|
|
4913
|
-
let c = Math.min(...e.tickValues);
|
|
4914
|
-
o.selectAll(".tick text").attr("y", null).attr("dy", (e) => e === c ? "0" : "0.32em").attr("dominant-baseline", (e) => e === c ? "text-after-edge" : null), o.selectAll("path.domain").attr("display", n.axes?.y?.lineVisible === !1 ? "none" : null);
|
|
4996
|
+
let c = Math.min(...e.tickValues), l = n.containYAxisEndpoints ? Math.max(...e.tickValues) : void 0;
|
|
4997
|
+
o.selectAll(".tick text").attr("y", null).attr("dy", (e) => e === c || e === l ? "0" : "0.32em").attr("dominant-baseline", (e) => e === c ? "text-after-edge" : e === l ? "text-before-edge" : null), o.selectAll("path.domain").attr("display", n.axes?.y?.lineVisible === !1 ? "none" : null);
|
|
4915
4998
|
}), !o.value) return;
|
|
4916
4999
|
let e = G(o.value);
|
|
4917
5000
|
e.call(P(n.track.xScale).tickValues(n.track.xAxisTickValues).tickFormat((e) => Mt(Number(e), n.track.xScale.domain(), n.timeUnit, "tick", n.axes?.x?.labelFormatter ?? n.track.xAxisLabelFormatter)).tickSize(-4).tickPadding(7).tickSizeOuter(0)), e.selectAll("path.domain").attr("display", n.axes?.x?.lineVisible === !1 ? "none" : null);
|
|
@@ -4924,6 +5007,8 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4924
5007
|
() => n.track.xAxisTickValues,
|
|
4925
5008
|
() => n.track.yAxisTickValues,
|
|
4926
5009
|
() => n.timeUnit,
|
|
5010
|
+
() => n.showUnits,
|
|
5011
|
+
() => n.containYAxisEndpoints,
|
|
4927
5012
|
() => n.axes?.x?.labelFormatter,
|
|
4928
5013
|
() => n.axes?.x?.lineVisible,
|
|
4929
5014
|
() => n.axes?.y?.lineVisible
|
|
@@ -4936,7 +5021,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4936
5021
|
ref: o,
|
|
4937
5022
|
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 }]),
|
|
4938
5023
|
transform: `translate(0, ${t.track.height})`
|
|
4939
|
-
}, null, 10,
|
|
5024
|
+
}, null, 10, ns)) : r("", !0),
|
|
4940
5025
|
t.track.showXAxis ? (y(), i("g", {
|
|
4941
5026
|
key: 1,
|
|
4942
5027
|
class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
|
|
@@ -4944,13 +5029,13 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4944
5029
|
"font-family": "sans-serif",
|
|
4945
5030
|
"font-size": "10",
|
|
4946
5031
|
"aria-hidden": "true"
|
|
4947
|
-
}, [a("text",
|
|
5032
|
+
}, [a("text", is, T(t.track.endpointLabels.start), 1), a("text", {
|
|
4948
5033
|
class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
|
|
4949
5034
|
x: t.track.width ?? t.innerWidth,
|
|
4950
5035
|
y: "7",
|
|
4951
5036
|
dy: "0.71em",
|
|
4952
5037
|
"text-anchor": "end"
|
|
4953
|
-
}, T(t.track.endpointLabels.end), 9,
|
|
5038
|
+
}, T(t.track.endpointLabels.end), 9, as)], 8, rs)) : r("", !0),
|
|
4954
5039
|
(y(!0), i(e, null, S(t.track.isEmpty ? [] : t.track.yAxes, (e) => (y(), i("g", {
|
|
4955
5040
|
key: `y-axis-${t.track.index}-${e.index}`,
|
|
4956
5041
|
ref_for: !0,
|
|
@@ -4959,21 +5044,21 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4959
5044
|
"data-y-axis-index": e.index,
|
|
4960
5045
|
"data-y-axis-side": e.side,
|
|
4961
5046
|
transform: `translate(${e.x}, 0)`
|
|
4962
|
-
}, null, 10,
|
|
4963
|
-
!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) ? (y(), i("g",
|
|
5047
|
+
}, null, 10, os))), 128)),
|
|
5048
|
+
!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) ? (y(), i("g", ss, [a("rect", {
|
|
4964
5049
|
class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
|
|
4965
5050
|
x: t.track.yAxes[0].labelX - D(20) / 2,
|
|
4966
5051
|
y: t.track.height / 2 - 40,
|
|
4967
5052
|
width: D(20),
|
|
4968
5053
|
height: "80",
|
|
4969
5054
|
rx: "2"
|
|
4970
|
-
}, null, 8,
|
|
5055
|
+
}, null, 8, cs), a("text", {
|
|
4971
5056
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4972
5057
|
fill: t.track.series?.color,
|
|
4973
5058
|
transform: `translate(${t.track.yAxes[0].labelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4974
5059
|
"text-anchor": "middle",
|
|
4975
5060
|
"dominant-baseline": "central"
|
|
4976
|
-
}, T(t.track.series ? c(t.track.series) : ""), 9,
|
|
5061
|
+
}, T(t.track.series ? c(t.track.series) : ""), 9, ls)])) : r("", !0),
|
|
4977
5062
|
(y(!0), i(e, null, S(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (y(), i("g", {
|
|
4978
5063
|
key: `y-axis-title-${t.track.index}-${e.index}`,
|
|
4979
5064
|
class: "waveform-track__multi-axis-title",
|
|
@@ -4985,40 +5070,40 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
4985
5070
|
width: D(20),
|
|
4986
5071
|
height: "80",
|
|
4987
5072
|
rx: "2"
|
|
4988
|
-
}, null, 8,
|
|
5073
|
+
}, null, 8, ds), a("text", {
|
|
4989
5074
|
class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
|
|
4990
5075
|
fill: e.seriesList[0].color,
|
|
4991
5076
|
transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
|
|
4992
5077
|
"text-anchor": "middle",
|
|
4993
5078
|
"dominant-baseline": "central"
|
|
4994
|
-
}, T(c(e.seriesList[0])), 9,
|
|
5079
|
+
}, T(c(e.seriesList[0])), 9, fs)], 8, us))), 128))
|
|
4995
5080
|
], 64));
|
|
4996
5081
|
}
|
|
4997
|
-
}),
|
|
5082
|
+
}), ms = [
|
|
4998
5083
|
"width",
|
|
4999
5084
|
"height",
|
|
5000
5085
|
"fill"
|
|
5001
|
-
],
|
|
5086
|
+
], hs = ["clip-path"], gs = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, _s = [
|
|
5002
5087
|
"stroke",
|
|
5003
5088
|
"x1",
|
|
5004
5089
|
"x2",
|
|
5005
5090
|
"y2"
|
|
5006
|
-
],
|
|
5091
|
+
], vs = [
|
|
5007
5092
|
"stroke",
|
|
5008
5093
|
"x2",
|
|
5009
5094
|
"y1",
|
|
5010
5095
|
"y2"
|
|
5011
|
-
],
|
|
5096
|
+
], ys = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, bs = [
|
|
5012
5097
|
"stroke",
|
|
5013
5098
|
"x1",
|
|
5014
5099
|
"x2",
|
|
5015
5100
|
"y2"
|
|
5016
|
-
],
|
|
5101
|
+
], xs = [
|
|
5017
5102
|
"stroke",
|
|
5018
5103
|
"x2",
|
|
5019
5104
|
"y1",
|
|
5020
5105
|
"y2"
|
|
5021
|
-
],
|
|
5106
|
+
], Ss = ["x", "y"], Cs = /* @__PURE__ */ l({
|
|
5022
5107
|
__name: "WaveformTrackBackdrop",
|
|
5023
5108
|
props: {
|
|
5024
5109
|
track: {},
|
|
@@ -5037,12 +5122,12 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5037
5122
|
height: t.track.height,
|
|
5038
5123
|
fill: t.frameStyle.backgroundColor,
|
|
5039
5124
|
"aria-hidden": "true"
|
|
5040
|
-
}, null, 8,
|
|
5125
|
+
}, null, 8, ms)) : r("", !0),
|
|
5041
5126
|
!t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (y(), i("g", {
|
|
5042
5127
|
key: 1,
|
|
5043
5128
|
"clip-path": `url(#${t.clipPathId}-${t.track.index})`,
|
|
5044
5129
|
"aria-hidden": "true"
|
|
5045
|
-
}, [a("g",
|
|
5130
|
+
}, [a("g", gs, [t.track.gridLines.vertical ? (y(!0), i(e, { key: 0 }, S(t.track.xMinorTicks, (e) => (y(), i("line", {
|
|
5046
5131
|
key: `x-minor-${t.track.index}-${e}`,
|
|
5047
5132
|
"data-grid-direction": "vertical",
|
|
5048
5133
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -5050,7 +5135,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5050
5135
|
x2: t.track.xScale(e),
|
|
5051
5136
|
y1: "0",
|
|
5052
5137
|
y2: t.track.height
|
|
5053
|
-
}, null, 8,
|
|
5138
|
+
}, null, 8, _s))), 128)) : r("", !0), t.track.gridLines.horizontal ? (y(!0), i(e, { key: 1 }, S(t.track.yMinorTicks, (e) => (y(), i("line", {
|
|
5054
5139
|
key: `y-minor-${t.track.index}-${e}`,
|
|
5055
5140
|
"data-grid-direction": "horizontal",
|
|
5056
5141
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -5058,7 +5143,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5058
5143
|
x2: t.track.width ?? t.innerWidth,
|
|
5059
5144
|
y1: t.track.yScale(e),
|
|
5060
5145
|
y2: t.track.yScale(e)
|
|
5061
|
-
}, null, 8,
|
|
5146
|
+
}, null, 8, vs))), 128)) : r("", !0)]), a("g", ys, [t.track.gridLines.vertical ? (y(!0), i(e, { key: 0 }, S(t.track.xMajorTicks, (e) => (y(), i("line", {
|
|
5062
5147
|
key: `x-major-${t.track.index}-${e}`,
|
|
5063
5148
|
"data-grid-direction": "vertical",
|
|
5064
5149
|
stroke: t.track.gridLines.verticalColor,
|
|
@@ -5066,7 +5151,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5066
5151
|
x2: t.track.xScale(e),
|
|
5067
5152
|
y1: "0",
|
|
5068
5153
|
y2: t.track.height
|
|
5069
|
-
}, null, 8,
|
|
5154
|
+
}, null, 8, bs))), 128)) : r("", !0), t.track.gridLines.horizontal ? (y(!0), i(e, { key: 1 }, S(t.track.yMajorTicks, (e) => (y(), i("line", {
|
|
5070
5155
|
key: `y-major-${t.track.index}-${e}`,
|
|
5071
5156
|
"data-grid-direction": "horizontal",
|
|
5072
5157
|
stroke: t.track.gridLines.horizontalColor,
|
|
@@ -5074,7 +5159,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5074
5159
|
x2: t.track.width ?? t.innerWidth,
|
|
5075
5160
|
y1: t.track.yScale(e),
|
|
5076
5161
|
y2: t.track.yScale(e)
|
|
5077
|
-
}, null, 8,
|
|
5162
|
+
}, null, 8, xs))), 128)) : r("", !0)])], 8, hs)) : r("", !0),
|
|
5078
5163
|
!t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (y(), i("text", {
|
|
5079
5164
|
key: 2,
|
|
5080
5165
|
class: "waveform-track__watermark waveform-chart__watermark",
|
|
@@ -5084,10 +5169,10 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5084
5169
|
"text-anchor": "middle",
|
|
5085
5170
|
"dominant-baseline": "central",
|
|
5086
5171
|
"aria-hidden": "true"
|
|
5087
|
-
}, T(t.frameNumber), 13,
|
|
5172
|
+
}, T(t.frameNumber), 13, Ss)) : r("", !0)
|
|
5088
5173
|
], 64));
|
|
5089
5174
|
}
|
|
5090
|
-
}),
|
|
5175
|
+
}), ws = [
|
|
5091
5176
|
"data-track-index",
|
|
5092
5177
|
"data-track-id",
|
|
5093
5178
|
"data-track-empty",
|
|
@@ -5097,19 +5182,21 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5097
5182
|
"data-track-top",
|
|
5098
5183
|
"data-track-height",
|
|
5099
5184
|
"transform"
|
|
5100
|
-
],
|
|
5185
|
+
], Ts = [
|
|
5186
|
+
"x",
|
|
5187
|
+
"y",
|
|
5101
5188
|
"width",
|
|
5102
5189
|
"height",
|
|
5103
5190
|
"stroke",
|
|
5104
5191
|
"stroke-width",
|
|
5105
5192
|
"stroke-dasharray",
|
|
5106
5193
|
"stroke-linecap"
|
|
5107
|
-
],
|
|
5194
|
+
], Es = [
|
|
5108
5195
|
"data-interactive",
|
|
5109
5196
|
"data-independent-overlay-index",
|
|
5110
5197
|
"width",
|
|
5111
5198
|
"height"
|
|
5112
|
-
],
|
|
5199
|
+
], Ds = ["x", "y"], Os = /* @__PURE__ */ l({
|
|
5113
5200
|
__name: "WaveformTrack",
|
|
5114
5201
|
props: {
|
|
5115
5202
|
track: {},
|
|
@@ -5127,6 +5214,12 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5127
5214
|
axes: {},
|
|
5128
5215
|
timeUnit: {},
|
|
5129
5216
|
yLabel: {},
|
|
5217
|
+
showAxisUnits: {
|
|
5218
|
+
type: Boolean,
|
|
5219
|
+
default: !0
|
|
5220
|
+
},
|
|
5221
|
+
containYAxisEndpoints: { type: Boolean },
|
|
5222
|
+
containFrameStroke: { type: Boolean },
|
|
5130
5223
|
cleanView: {
|
|
5131
5224
|
type: Boolean,
|
|
5132
5225
|
default: !1
|
|
@@ -5158,7 +5251,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5158
5251
|
borderStyle: a.frameStyle?.borderStyle === "dashed" || a.frameStyle?.borderStyle === "dotted" ? a.frameStyle.borderStyle : "solid",
|
|
5159
5252
|
backgroundColor: a.frameStyle?.backgroundColor || "transparent"
|
|
5160
5253
|
};
|
|
5161
|
-
});
|
|
5254
|
+
}), l = t(() => a.containFrameStroke ? c.value.borderWidth / 2 : 0);
|
|
5162
5255
|
return (t, n) => (y(), i("g", {
|
|
5163
5256
|
class: p(["waveform-track waveform-chart__track", { "waveform-track--empty waveform-chart__track--empty": e.track.isEmpty }]),
|
|
5164
5257
|
"data-track-index": e.track.index,
|
|
@@ -5171,7 +5264,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5171
5264
|
"data-track-height": e.track.height,
|
|
5172
5265
|
transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
|
|
5173
5266
|
}, [
|
|
5174
|
-
s(
|
|
5267
|
+
s(Cs, {
|
|
5175
5268
|
track: e.track,
|
|
5176
5269
|
"clip-path-id": e.clipPathId,
|
|
5177
5270
|
"inner-width": e.innerWidth,
|
|
@@ -5186,38 +5279,44 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5186
5279
|
"frame-number",
|
|
5187
5280
|
"frame-style"
|
|
5188
5281
|
]),
|
|
5189
|
-
s(
|
|
5282
|
+
s(ps, {
|
|
5190
5283
|
track: e.track,
|
|
5191
5284
|
"inner-width": e.innerWidth,
|
|
5192
5285
|
"clean-view": e.cleanView,
|
|
5193
5286
|
axes: e.axes,
|
|
5194
5287
|
"time-unit": e.timeUnit,
|
|
5195
|
-
"y-label": e.yLabel
|
|
5288
|
+
"y-label": e.yLabel,
|
|
5289
|
+
"show-units": e.showAxisUnits,
|
|
5290
|
+
"contain-y-axis-endpoints": e.containYAxisEndpoints
|
|
5196
5291
|
}, null, 8, [
|
|
5197
5292
|
"track",
|
|
5198
5293
|
"inner-width",
|
|
5199
5294
|
"clean-view",
|
|
5200
5295
|
"axes",
|
|
5201
5296
|
"time-unit",
|
|
5202
|
-
"y-label"
|
|
5297
|
+
"y-label",
|
|
5298
|
+
"show-units",
|
|
5299
|
+
"contain-y-axis-endpoints"
|
|
5203
5300
|
]),
|
|
5204
5301
|
e.track.isEmpty ? r("", !0) : (y(), i("rect", {
|
|
5205
5302
|
key: 0,
|
|
5206
5303
|
class: "waveform-track__plot-frame waveform-chart__plot-frame",
|
|
5207
|
-
|
|
5208
|
-
|
|
5304
|
+
x: e.containFrameStroke ? l.value : void 0,
|
|
5305
|
+
y: e.containFrameStroke ? l.value : void 0,
|
|
5306
|
+
width: Math.max(0, (e.track.width ?? e.innerWidth) - l.value * 2),
|
|
5307
|
+
height: Math.max(0, e.track.height - l.value * 2),
|
|
5209
5308
|
fill: "none",
|
|
5210
5309
|
stroke: c.value.borderColor,
|
|
5211
5310
|
"stroke-width": c.value.borderWidth,
|
|
5212
5311
|
"stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
|
|
5213
5312
|
"stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
|
|
5214
5313
|
"aria-hidden": "true"
|
|
5215
|
-
}, null, 8,
|
|
5216
|
-
s(
|
|
5314
|
+
}, null, 8, Ts)),
|
|
5315
|
+
s(Qo, {
|
|
5217
5316
|
track: e.track,
|
|
5218
5317
|
"clip-path-id": e.clipPathId
|
|
5219
5318
|
}, null, 8, ["track", "clip-path-id"]),
|
|
5220
|
-
s(
|
|
5319
|
+
s(ts, {
|
|
5221
5320
|
track: e.track,
|
|
5222
5321
|
"clip-path-id": e.clipPathId,
|
|
5223
5322
|
"inner-width": e.innerWidth,
|
|
@@ -5248,7 +5347,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5248
5347
|
onPointerleave: n[4] ||= (e) => o("pointer-leave"),
|
|
5249
5348
|
onClick: n[5] ||= (e) => o("click", e),
|
|
5250
5349
|
onContextmenu: n[6] ||= (e) => o("contextmenu", e)
|
|
5251
|
-
}, null, 42,
|
|
5350
|
+
}, null, 42, Es)) : r("", !0),
|
|
5252
5351
|
!e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (y(), i("text", {
|
|
5253
5352
|
key: 2,
|
|
5254
5353
|
class: "waveform-track__no-visible-series",
|
|
@@ -5256,33 +5355,33 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5256
5355
|
y: e.track.height / 2,
|
|
5257
5356
|
"text-anchor": "middle",
|
|
5258
5357
|
"dominant-baseline": "central"
|
|
5259
|
-
}, " 暂无可见曲线 ", 8,
|
|
5260
|
-
], 10,
|
|
5358
|
+
}, " 暂无可见曲线 ", 8, Ds)) : r("", !0)
|
|
5359
|
+
], 10, ws));
|
|
5261
5360
|
}
|
|
5262
|
-
}),
|
|
5361
|
+
}), ks = [
|
|
5263
5362
|
"width",
|
|
5264
5363
|
"height",
|
|
5265
5364
|
"data-position",
|
|
5266
5365
|
"data-orientation"
|
|
5267
|
-
],
|
|
5366
|
+
], As = [
|
|
5268
5367
|
"disabled",
|
|
5269
5368
|
"aria-pressed",
|
|
5270
5369
|
"aria-label",
|
|
5271
5370
|
"onClick"
|
|
5272
|
-
],
|
|
5371
|
+
], js = [
|
|
5273
5372
|
"data-line-type",
|
|
5274
5373
|
"data-line-style",
|
|
5275
5374
|
"data-point-type",
|
|
5276
5375
|
"data-error-bar-visible"
|
|
5277
|
-
],
|
|
5376
|
+
], Ms = [
|
|
5278
5377
|
"d",
|
|
5279
5378
|
"stroke",
|
|
5280
5379
|
"stroke-dasharray"
|
|
5281
|
-
],
|
|
5380
|
+
], Ns = [
|
|
5282
5381
|
"d",
|
|
5283
5382
|
"stroke",
|
|
5284
5383
|
"stroke-width"
|
|
5285
|
-
],
|
|
5384
|
+
], Ps = ["d", "fill"], Fs = ["title"], Is = /*#__PURE__*/ nt(/* @__PURE__ */ l({
|
|
5286
5385
|
__name: "WaveformLegend",
|
|
5287
5386
|
props: {
|
|
5288
5387
|
series: {},
|
|
@@ -5295,15 +5394,23 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5295
5394
|
type: Boolean,
|
|
5296
5395
|
default: !1
|
|
5297
5396
|
},
|
|
5397
|
+
showUnits: {
|
|
5398
|
+
type: Boolean,
|
|
5399
|
+
default: !1
|
|
5400
|
+
},
|
|
5298
5401
|
hiddenSeriesIds: { default: () => [] }
|
|
5299
5402
|
},
|
|
5300
5403
|
emits: ["toggle"],
|
|
5301
5404
|
setup(n, { emit: o }) {
|
|
5302
5405
|
let s = n, c = o, l = t(() => new Set(s.hiddenSeriesIds));
|
|
5303
5406
|
function u(e) {
|
|
5304
|
-
|
|
5407
|
+
let t = e.unit?.trim();
|
|
5408
|
+
return s.showUnits && t && t !== "--" ? `${e.name} (${t})` : e.name;
|
|
5305
5409
|
}
|
|
5306
5410
|
function d(e) {
|
|
5411
|
+
return l.value.has(e);
|
|
5412
|
+
}
|
|
5413
|
+
function f(e) {
|
|
5307
5414
|
s.interactive && c("toggle", e);
|
|
5308
5415
|
}
|
|
5309
5416
|
return (t, o) => (y(), i("foreignObject", {
|
|
@@ -5324,13 +5431,13 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5324
5431
|
role: "list"
|
|
5325
5432
|
}, [(y(!0), i(e, null, S(n.series, (e) => (y(), i("button", {
|
|
5326
5433
|
key: e.id,
|
|
5327
|
-
class: p(["waveform-legend__item waveform-chart__legend-item", { "is-hidden":
|
|
5434
|
+
class: p(["waveform-legend__item waveform-chart__legend-item", { "is-hidden": d(e.id) }]),
|
|
5328
5435
|
type: "button",
|
|
5329
5436
|
role: "listitem",
|
|
5330
5437
|
disabled: !n.interactive,
|
|
5331
|
-
"aria-pressed": n.interactive ? !
|
|
5332
|
-
"aria-label": n.interactive ? `${
|
|
5333
|
-
onClick: N((t) =>
|
|
5438
|
+
"aria-pressed": n.interactive ? !d(e.id) : void 0,
|
|
5439
|
+
"aria-label": n.interactive ? `${d(e.id) ? "显示" : "隐藏"}曲线 ${e.name}` : void 0,
|
|
5440
|
+
onClick: N((t) => f(e.id), ["stop"])
|
|
5334
5441
|
}, [(y(), i("svg", {
|
|
5335
5442
|
class: "waveform-legend__swatch",
|
|
5336
5443
|
viewBox: "0 0 26 16",
|
|
@@ -5340,45 +5447,45 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5340
5447
|
"data-point-type": e.pointType,
|
|
5341
5448
|
"data-error-bar-visible": e.errorBar.visible || void 0
|
|
5342
5449
|
}, [
|
|
5343
|
-
D(
|
|
5450
|
+
D(Ho)(e.lineType) ? (y(), i("path", {
|
|
5344
5451
|
key: 0,
|
|
5345
5452
|
class: "waveform-legend__line",
|
|
5346
|
-
d: D(
|
|
5453
|
+
d: D(Ho)(e.lineType) ?? void 0,
|
|
5347
5454
|
stroke: e.color,
|
|
5348
|
-
"stroke-dasharray": D(
|
|
5455
|
+
"stroke-dasharray": D(Uo)(e.lineStyle),
|
|
5349
5456
|
"stroke-width": "1",
|
|
5350
5457
|
fill: "none"
|
|
5351
|
-
}, null, 8,
|
|
5458
|
+
}, null, 8, Ms)) : r("", !0),
|
|
5352
5459
|
e.errorBar.visible ? (y(), i("path", {
|
|
5353
5460
|
key: 1,
|
|
5354
5461
|
class: "waveform-legend__error-bar",
|
|
5355
|
-
d: D(
|
|
5462
|
+
d: D(Wo)(e.errorBar.capWidth),
|
|
5356
5463
|
stroke: e.errorBar.color || e.color,
|
|
5357
5464
|
"stroke-width": e.errorBar.width,
|
|
5358
5465
|
"stroke-linecap": "butt",
|
|
5359
5466
|
fill: "none"
|
|
5360
|
-
}, null, 8,
|
|
5467
|
+
}, null, 8, Ns)) : r("", !0),
|
|
5361
5468
|
e.pointType === "none" ? r("", !0) : (y(), i("path", {
|
|
5362
5469
|
key: 2,
|
|
5363
5470
|
class: "waveform-legend__point",
|
|
5364
|
-
d: D(
|
|
5471
|
+
d: D(Bo)(e.pointType, 30) ?? void 0,
|
|
5365
5472
|
fill: e.color,
|
|
5366
5473
|
transform: "translate(13 8)"
|
|
5367
|
-
}, null, 8,
|
|
5368
|
-
], 8,
|
|
5474
|
+
}, null, 8, Ps))
|
|
5475
|
+
], 8, js)), a("span", {
|
|
5369
5476
|
class: "waveform-legend__label",
|
|
5370
|
-
title: e
|
|
5371
|
-
}, T(e
|
|
5477
|
+
title: u(e)
|
|
5478
|
+
}, T(u(e)), 9, Fs)], 10, As))), 128))], 6)], 2)], 8, ks));
|
|
5372
5479
|
}
|
|
5373
|
-
}), [["__scopeId", "data-v-
|
|
5480
|
+
}), [["__scopeId", "data-v-d5958f86"]]), Ls = {
|
|
5374
5481
|
class: "waveform-chart__hover-layer",
|
|
5375
5482
|
"pointer-events": "none",
|
|
5376
5483
|
"aria-hidden": "true"
|
|
5377
|
-
},
|
|
5484
|
+
}, Rs = ["clip-path", "transform"], zs = [
|
|
5378
5485
|
"x1",
|
|
5379
5486
|
"x2",
|
|
5380
5487
|
"y2"
|
|
5381
|
-
],
|
|
5488
|
+
], Bs = /*#__PURE__*/ nt(/* @__PURE__ */ l({
|
|
5382
5489
|
__name: "WaveformHoverLayer",
|
|
5383
5490
|
props: {
|
|
5384
5491
|
state: {},
|
|
@@ -5394,7 +5501,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5394
5501
|
x: e.xScale(n)
|
|
5395
5502
|
}] : [];
|
|
5396
5503
|
}));
|
|
5397
|
-
return (t, r) => (y(), i("g",
|
|
5504
|
+
return (t, r) => (y(), i("g", Ls, [(y(!0), i(e, null, S(o.value, (e) => (y(), i("g", {
|
|
5398
5505
|
key: e.track.index,
|
|
5399
5506
|
class: "waveform-track__crosshair waveform-chart__crosshair",
|
|
5400
5507
|
"clip-path": `url(#${n.clipPathId}-${e.track.index})`,
|
|
@@ -5404,9 +5511,9 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5404
5511
|
x2: e.x,
|
|
5405
5512
|
y1: "0",
|
|
5406
5513
|
y2: e.track.height
|
|
5407
|
-
}, null, 8,
|
|
5514
|
+
}, null, 8, zs)], 8, Rs))), 128))]));
|
|
5408
5515
|
}
|
|
5409
|
-
}), [["__scopeId", "data-v-54a5a37d"]]),
|
|
5516
|
+
}), [["__scopeId", "data-v-54a5a37d"]]), Vs = [
|
|
5410
5517
|
"data-display-mode",
|
|
5411
5518
|
"data-interaction-mode",
|
|
5412
5519
|
"data-presentation-mode",
|
|
@@ -5415,103 +5522,104 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5415
5522
|
"data-plot-margin-top",
|
|
5416
5523
|
"data-plot-margin-bottom",
|
|
5417
5524
|
"data-title-area-height"
|
|
5418
|
-
],
|
|
5525
|
+
], Hs = [
|
|
5419
5526
|
"role",
|
|
5420
5527
|
"aria-level",
|
|
5421
5528
|
"aria-hidden"
|
|
5422
|
-
],
|
|
5529
|
+
], Us = ["data-title-scale", "data-title-wrapped"], Ws = [
|
|
5423
5530
|
"width",
|
|
5424
5531
|
"height",
|
|
5425
5532
|
"aria-label"
|
|
5426
|
-
],
|
|
5533
|
+
], Gs = ["id"], Ks = ["width", "height"], qs = ["transform"], Js = {
|
|
5427
5534
|
key: 0,
|
|
5428
5535
|
class: "waveform-chart__grid-slots",
|
|
5429
5536
|
"aria-hidden": "true"
|
|
5430
|
-
},
|
|
5537
|
+
}, Ys = ["transform"], Xs = ["width", "height"], Zs = ["width", "height"], Qs = [
|
|
5431
5538
|
"x",
|
|
5432
5539
|
"y",
|
|
5433
5540
|
"width",
|
|
5434
5541
|
"height"
|
|
5435
|
-
],
|
|
5542
|
+
], $s = {
|
|
5436
5543
|
key: 4,
|
|
5437
5544
|
class: "waveform-chart__legend-layer"
|
|
5438
|
-
},
|
|
5545
|
+
}, ec = [
|
|
5439
5546
|
"data-legend-track-index",
|
|
5440
5547
|
"data-legend-track-id",
|
|
5441
5548
|
"transform"
|
|
5442
|
-
],
|
|
5549
|
+
], tc = ["x", "y"], nc = ["x", "y"], rc = /* @__PURE__ */ l({
|
|
5443
5550
|
__name: "WaveformChartView",
|
|
5444
5551
|
props: { controller: {} },
|
|
5445
5552
|
setup(t) {
|
|
5446
|
-
let { displayMode: o, activeInteractionMode: c, isCleanView: l,
|
|
5447
|
-
function
|
|
5448
|
-
|
|
5553
|
+
let { displayMode: o, activeInteractionMode: c, isCleanView: l, isEdgeCompact: u, paginationVisible: d, isPresentationMode: f, selection: h, containerStyle: g, overlayMode: _, unitDisplayMode: v, showLegendUnits: b, resolvedChartLeftMargin: x, titleAreaHeight: C, resolvedPlotMargin: w, pointerInsideChart: O, handleNativeContextMenu: k, titleAreaReserved: A, titleAreaStyle: j, titleVisible: M, titleMeasureStyle: N, resolvedTitleText: P, titleVisualStyle: F, titleTextStyle: I, titleLayout: L, chartWidth: R, drawingHeight: z, hasWaveformData: B, requestViewportReset: V, trackLayouts: H, clipPathId: U, chartTopMargin: W, gridCells: G, hasVisibleWaveformData: K, zoomable: ee, isZoomMode: te, innerWidth: ne, innerHeight: re, handleSharedPointerMove: ie, beginSharedViewportDrag: ae, finishViewportDrag: q, cancelViewportDrag: oe, handlePointerLeave: se, handleAnnotationClick: ce, handleAnnotationContextMenu: ue, resolveFrameNumber: de, frameStyle: fe, axes: pe, resolvedZeroLine: J, timeUnit: me, yLabel: Y, handleIndependentPointerMove: he, beginViewportDrag: ge, hoverState: _e, showTooltip: ve, selectionBox: ye, renderedAnnotations: be, annotationsVisible: xe, handleExistingAnnotationContextMenu: Se, beginAnnotationDrag: Ce, handleAnnotationMove: X, endAnnotationDrag: we, resolveLegendPosition: Te, resolveLegendOrientation: Ee, legendBackgroundColor: De, legendInteractive: Oe, resolvedHiddenSeriesIds: ke, toggleSeriesVisibility: Ae, resolvedXLabel: je, xAxisTitleY: Me, hasChartArea: Ne, gridOptions: Pe, currentPage: Fe, getPageSize: Ie, pageableTracks: Le, goToPage: Re, annotationInteraction: ze, editorDraft: Be, contextMenu: Ve, editorSeries: He, editorSeriesOptions: Ue, timeError: We, confirmAnnotation: Ge, cancelAnnotation: Ke, changeDraftSeries: qe, changeDraftTime: Je, editContextAnnotation: Ye, deleteContextAnnotation: Xe, chartHeight: Ze, setContainer: Qe, setSvgElement: $e, setTitleMeasureElement: et, setSharedOverlayElement: tt } = E(t.controller);
|
|
5554
|
+
function nt() {
|
|
5555
|
+
O.value = !1, se.value();
|
|
5449
5556
|
}
|
|
5450
5557
|
return (t, E) => (y(), i("div", {
|
|
5451
|
-
ref: D(
|
|
5558
|
+
ref: D(Qe),
|
|
5452
5559
|
class: p(["waveform-chart", [
|
|
5453
5560
|
`waveform-chart--${D(o)}`,
|
|
5454
5561
|
`waveform-chart--interaction-${D(c)}`,
|
|
5455
5562
|
{
|
|
5456
5563
|
"waveform-chart--clean": D(l),
|
|
5457
|
-
"waveform-chart--
|
|
5458
|
-
"waveform-chart--
|
|
5564
|
+
"waveform-chart--edge-compact": D(u),
|
|
5565
|
+
"waveform-chart--presentation": D(f),
|
|
5566
|
+
"waveform-chart--panning": D(h)?.kind === "pan"
|
|
5459
5567
|
}
|
|
5460
5568
|
]]),
|
|
5461
|
-
style: m(D(
|
|
5569
|
+
style: m(D(g)),
|
|
5462
5570
|
"data-display-mode": D(o),
|
|
5463
5571
|
"data-interaction-mode": D(c),
|
|
5464
|
-
"data-presentation-mode": D(
|
|
5465
|
-
"data-overlay-mode": D(
|
|
5466
|
-
"data-chart-left-margin": D(
|
|
5467
|
-
"data-plot-margin-top": D(
|
|
5468
|
-
"data-plot-margin-bottom": D(
|
|
5469
|
-
"data-title-area-height": D(
|
|
5470
|
-
onPointerenter: E[8] ||= (e) =>
|
|
5471
|
-
onPointerleave:
|
|
5472
|
-
onContextmenuCapture: E[9] ||= (...e) => D(
|
|
5572
|
+
"data-presentation-mode": D(f),
|
|
5573
|
+
"data-overlay-mode": D(_),
|
|
5574
|
+
"data-chart-left-margin": D(x),
|
|
5575
|
+
"data-plot-margin-top": D(w).top,
|
|
5576
|
+
"data-plot-margin-bottom": D(w).bottom,
|
|
5577
|
+
"data-title-area-height": D(C),
|
|
5578
|
+
onPointerenter: E[8] ||= (e) => O.value = !0,
|
|
5579
|
+
onPointerleave: nt,
|
|
5580
|
+
onContextmenuCapture: E[9] ||= (...e) => D(k) && D(k)(...e)
|
|
5473
5581
|
}, [
|
|
5474
|
-
D(
|
|
5582
|
+
D(A) ? (y(), i("div", {
|
|
5475
5583
|
key: 0,
|
|
5476
5584
|
class: "waveform-chart__title-area",
|
|
5477
|
-
style: m(D(
|
|
5478
|
-
role: D(
|
|
5479
|
-
"aria-level": D(
|
|
5585
|
+
style: m(D(j)),
|
|
5586
|
+
role: D(M) ? "heading" : void 0,
|
|
5587
|
+
"aria-level": D(M) ? 2 : void 0,
|
|
5480
5588
|
"aria-hidden": D(l) || void 0
|
|
5481
5589
|
}, [a("span", {
|
|
5482
|
-
ref: D(
|
|
5590
|
+
ref: D(et),
|
|
5483
5591
|
class: "waveform-chart__title-measure",
|
|
5484
|
-
style: m(D(
|
|
5592
|
+
style: m(D(N)),
|
|
5485
5593
|
"aria-hidden": "true"
|
|
5486
|
-
}, T(D(
|
|
5594
|
+
}, T(D(P)), 5), D(M) ? (y(), i("span", {
|
|
5487
5595
|
key: 0,
|
|
5488
5596
|
class: "waveform-chart__title-visual",
|
|
5489
|
-
style: m(D(
|
|
5597
|
+
style: m(D(F))
|
|
5490
5598
|
}, [a("span", {
|
|
5491
5599
|
class: "waveform-chart__title-text",
|
|
5492
|
-
style: m(D(
|
|
5493
|
-
"data-title-scale": D(
|
|
5494
|
-
"data-title-wrapped": D(
|
|
5495
|
-
}, T(D(
|
|
5600
|
+
style: m(D(I)),
|
|
5601
|
+
"data-title-scale": D(L).scale,
|
|
5602
|
+
"data-title-wrapped": D(L).wrapped || void 0
|
|
5603
|
+
}, T(D(P)), 13, Us)], 4)) : r("", !0)], 12, Hs)) : r("", !0),
|
|
5496
5604
|
(y(), i("svg", {
|
|
5497
|
-
ref: D(
|
|
5605
|
+
ref: D($e),
|
|
5498
5606
|
class: "waveform-chart__svg",
|
|
5499
|
-
width: D(
|
|
5500
|
-
height: D(
|
|
5607
|
+
width: D(R),
|
|
5608
|
+
height: D(z),
|
|
5501
5609
|
role: "img",
|
|
5502
|
-
"aria-label": D(
|
|
5503
|
-
onDblclick: E[7] ||= (...e) => D(
|
|
5610
|
+
"aria-label": D(B) ? "波形折线图" : "暂无波形数据",
|
|
5611
|
+
onDblclick: E[7] ||= (...e) => D(V) && D(V)(...e)
|
|
5504
5612
|
}, [
|
|
5505
|
-
a("defs", null, [(y(!0), i(e, null, S(D(
|
|
5506
|
-
id: `${D(
|
|
5507
|
-
key: `${D(
|
|
5613
|
+
a("defs", null, [(y(!0), i(e, null, S(D(H), (e) => (y(), i("clipPath", {
|
|
5614
|
+
id: `${D(U)}-${e.index}`,
|
|
5615
|
+
key: `${D(U)}-${e.index}`,
|
|
5508
5616
|
clipPathUnits: "userSpaceOnUse"
|
|
5509
5617
|
}, [a("rect", {
|
|
5510
5618
|
width: e.width,
|
|
5511
5619
|
height: e.height
|
|
5512
|
-
}, null, 8,
|
|
5513
|
-
a("g", { transform: `translate(${D(
|
|
5514
|
-
D(o) !== "compact" && !D(l) ? (y(), i("g",
|
|
5620
|
+
}, null, 8, Ks)], 8, Gs))), 128))]),
|
|
5621
|
+
a("g", { transform: `translate(${D(x)}, ${D(W)})` }, [
|
|
5622
|
+
D(o) !== "compact" && !D(l) ? (y(), i("g", Js, [(y(!0), i(e, null, S(D(G), (e) => (y(), i("g", {
|
|
5515
5623
|
key: `grid-slot-${e.slotIndex}`,
|
|
5516
5624
|
transform: `translate(${e.left}, ${e.top})`
|
|
5517
5625
|
}, [e.series ? r("", !0) : (y(), i("rect", {
|
|
@@ -5519,47 +5627,50 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5519
5627
|
class: "waveform-chart__grid-slot-placeholder",
|
|
5520
5628
|
width: e.width,
|
|
5521
5629
|
height: e.cellHeight
|
|
5522
|
-
}, null, 8,
|
|
5523
|
-
D(o) !== "independent" && D(
|
|
5630
|
+
}, null, 8, Xs))], 8, Ys))), 128))])) : r("", !0),
|
|
5631
|
+
D(o) !== "independent" && D(H).length && D(K) ? (y(), i("rect", {
|
|
5524
5632
|
key: 1,
|
|
5525
|
-
ref: D(
|
|
5633
|
+
ref: D(tt),
|
|
5526
5634
|
class: p(["waveform-chart__overlay waveform-chart__overlay--shared", {
|
|
5527
|
-
"is-zoomable": !D(
|
|
5528
|
-
"is-annotating": !D(
|
|
5635
|
+
"is-zoomable": !D(f) && D(ee) && D(te),
|
|
5636
|
+
"is-annotating": !D(f) && D(c) === "annotation"
|
|
5529
5637
|
}]),
|
|
5530
|
-
width: D(
|
|
5531
|
-
height: D(
|
|
5532
|
-
onPointermove: E[0] ||= (...e) => D(
|
|
5533
|
-
onPointerdown: E[1] ||= (...e) => D(
|
|
5534
|
-
onPointerup: E[2] ||= (...e) => D(
|
|
5535
|
-
onPointercancel: E[3] ||= (...e) => D(
|
|
5536
|
-
onPointerleave: E[4] ||= (...e) => D(
|
|
5537
|
-
onClick: E[5] ||= (...e) => D(
|
|
5538
|
-
onContextmenu: E[6] ||= (...e) => D(
|
|
5539
|
-
}, null, 42,
|
|
5540
|
-
(y(!0), i(e, null, S(D(
|
|
5638
|
+
width: D(ne),
|
|
5639
|
+
height: D(re),
|
|
5640
|
+
onPointermove: E[0] ||= (...e) => D(ie) && D(ie)(...e),
|
|
5641
|
+
onPointerdown: E[1] ||= (...e) => D(ae) && D(ae)(...e),
|
|
5642
|
+
onPointerup: E[2] ||= (...e) => D(q) && D(q)(...e),
|
|
5643
|
+
onPointercancel: E[3] ||= (...e) => D(oe) && D(oe)(...e),
|
|
5644
|
+
onPointerleave: E[4] ||= (...e) => D(se) && D(se)(...e),
|
|
5645
|
+
onClick: E[5] ||= (...e) => D(ce) && D(ce)(...e),
|
|
5646
|
+
onContextmenu: E[6] ||= (...e) => D(ue) && D(ue)(...e)
|
|
5647
|
+
}, null, 42, Zs)) : r("", !0),
|
|
5648
|
+
(y(!0), i(e, null, S(D(H), (e) => (y(), n(D(Os), {
|
|
5541
5649
|
key: `${e.index}-${e.id}`,
|
|
5542
5650
|
track: e,
|
|
5543
|
-
"clip-path-id": D(
|
|
5544
|
-
"inner-width": D(
|
|
5545
|
-
zoomable: D(
|
|
5546
|
-
interactive: !D(
|
|
5651
|
+
"clip-path-id": D(U),
|
|
5652
|
+
"inner-width": D(ne),
|
|
5653
|
+
zoomable: D(ee),
|
|
5654
|
+
interactive: !D(f),
|
|
5547
5655
|
"display-mode": D(o),
|
|
5548
5656
|
"interaction-mode": D(c),
|
|
5549
|
-
"frame-number": D(
|
|
5550
|
-
"frame-style": D(
|
|
5551
|
-
axes: D(
|
|
5657
|
+
"frame-number": D(de)(e.id),
|
|
5658
|
+
"frame-style": D(fe),
|
|
5659
|
+
axes: D(pe),
|
|
5660
|
+
"show-axis-units": D(v) === "axis",
|
|
5661
|
+
"contain-y-axis-endpoints": D(u),
|
|
5662
|
+
"contain-frame-stroke": D(u),
|
|
5552
5663
|
"clean-view": D(l),
|
|
5553
|
-
"zero-line": D(
|
|
5554
|
-
"time-unit": D(
|
|
5555
|
-
"y-label": D(
|
|
5556
|
-
onPointerMove: (t) => D(
|
|
5557
|
-
onPointerDown: (t) => D(
|
|
5558
|
-
onPointerUp: D(
|
|
5559
|
-
onPointerCancel: D(
|
|
5560
|
-
onPointerLeave: D(
|
|
5561
|
-
onClick: (t) => D(
|
|
5562
|
-
onContextmenu: (t) => D(
|
|
5664
|
+
"zero-line": D(J),
|
|
5665
|
+
"time-unit": D(me),
|
|
5666
|
+
"y-label": D(Y),
|
|
5667
|
+
onPointerMove: (t) => D(he)(t, e.index),
|
|
5668
|
+
onPointerDown: (t) => D(ge)(t, e.index, !0),
|
|
5669
|
+
onPointerUp: D(q),
|
|
5670
|
+
onPointerCancel: D(oe),
|
|
5671
|
+
onPointerLeave: D(se),
|
|
5672
|
+
onClick: (t) => D(ce)(t, e.index),
|
|
5673
|
+
onContextmenu: (t) => D(ue)(t, e.index)
|
|
5563
5674
|
}, null, 8, [
|
|
5564
5675
|
"track",
|
|
5565
5676
|
"clip-path-id",
|
|
@@ -5571,6 +5682,9 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5571
5682
|
"frame-number",
|
|
5572
5683
|
"frame-style",
|
|
5573
5684
|
"axes",
|
|
5685
|
+
"show-axis-units",
|
|
5686
|
+
"contain-y-axis-endpoints",
|
|
5687
|
+
"contain-frame-stroke",
|
|
5574
5688
|
"clean-view",
|
|
5575
5689
|
"zero-line",
|
|
5576
5690
|
"time-unit",
|
|
@@ -5583,35 +5697,35 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5583
5697
|
"onClick",
|
|
5584
5698
|
"onContextmenu"
|
|
5585
5699
|
]))), 128)),
|
|
5586
|
-
s(D(
|
|
5587
|
-
state: D(
|
|
5588
|
-
tracks: D(
|
|
5589
|
-
"clip-path-id": D(
|
|
5590
|
-
visible: D(
|
|
5700
|
+
s(D(Bs), {
|
|
5701
|
+
state: D(_e),
|
|
5702
|
+
tracks: D(H),
|
|
5703
|
+
"clip-path-id": D(U),
|
|
5704
|
+
visible: D(ve) && !D(f)
|
|
5591
5705
|
}, null, 8, [
|
|
5592
5706
|
"state",
|
|
5593
5707
|
"tracks",
|
|
5594
5708
|
"clip-path-id",
|
|
5595
5709
|
"visible"
|
|
5596
5710
|
]),
|
|
5597
|
-
D(
|
|
5711
|
+
D(ye) && D(h)?.kind === "box" ? (y(), i("rect", {
|
|
5598
5712
|
key: 2,
|
|
5599
5713
|
class: "waveform-chart__zoom-selection",
|
|
5600
|
-
x: D(
|
|
5601
|
-
y: D(
|
|
5602
|
-
width: D(
|
|
5603
|
-
height: D(
|
|
5714
|
+
x: D(ye).x,
|
|
5715
|
+
y: D(ye).y,
|
|
5716
|
+
width: D(ye).width,
|
|
5717
|
+
height: D(ye).height,
|
|
5604
5718
|
"aria-hidden": "true"
|
|
5605
|
-
}, null, 8,
|
|
5719
|
+
}, null, 8, Qs)) : r("", !0),
|
|
5606
5720
|
D(l) ? r("", !0) : (y(), n(D(rt), {
|
|
5607
5721
|
key: 3,
|
|
5608
|
-
annotations: D(
|
|
5609
|
-
visible: D(
|
|
5610
|
-
interactive: !D(
|
|
5611
|
-
onContextmenu: D(
|
|
5612
|
-
onDragStart: D(
|
|
5613
|
-
onMove: D(
|
|
5614
|
-
onDragEnd: D(
|
|
5722
|
+
annotations: D(be),
|
|
5723
|
+
visible: D(xe),
|
|
5724
|
+
interactive: !D(f),
|
|
5725
|
+
onContextmenu: D(Se),
|
|
5726
|
+
onDragStart: D(Ce),
|
|
5727
|
+
onMove: D(X),
|
|
5728
|
+
onDragEnd: D(we)
|
|
5615
5729
|
}, null, 8, [
|
|
5616
5730
|
"annotations",
|
|
5617
5731
|
"visible",
|
|
@@ -5621,25 +5735,27 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5621
5735
|
"onMove",
|
|
5622
5736
|
"onDragEnd"
|
|
5623
5737
|
])),
|
|
5624
|
-
D(l) ? r("", !0) : (y(), i("g",
|
|
5738
|
+
D(l) ? r("", !0) : (y(), i("g", $s, [(y(!0), i(e, null, S(D(H), (e) => (y(), i("g", {
|
|
5625
5739
|
key: `legend-${e.index}-${e.id}`,
|
|
5626
5740
|
class: "waveform-chart__legend-track",
|
|
5627
5741
|
"data-legend-track-index": e.index,
|
|
5628
5742
|
"data-legend-track-id": e.id,
|
|
5629
5743
|
transform: `translate(${e.left}, ${e.top})`
|
|
5630
|
-
}, [!e.isEmpty && e.legendSeries.length > 1 ? (y(), n(D(
|
|
5744
|
+
}, [!e.isEmpty && (e.legendSeries.length > 1 || D(v) === "legend-single-series") ? (y(), n(D(Is), {
|
|
5631
5745
|
key: 0,
|
|
5632
5746
|
series: e.legendSeries,
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5747
|
+
"show-units": D(b),
|
|
5748
|
+
position: D(Te)(e.id),
|
|
5749
|
+
orientation: D(Ee)(D(Te)(e.id)),
|
|
5750
|
+
"background-color": D(De),
|
|
5751
|
+
interactive: D(Oe),
|
|
5752
|
+
"hidden-series-ids": D(ke),
|
|
5753
|
+
width: e.width ?? D(ne),
|
|
5639
5754
|
height: e.height,
|
|
5640
|
-
onToggle: D(
|
|
5755
|
+
onToggle: D(Ae)
|
|
5641
5756
|
}, null, 8, [
|
|
5642
5757
|
"series",
|
|
5758
|
+
"show-units",
|
|
5643
5759
|
"position",
|
|
5644
5760
|
"orientation",
|
|
5645
5761
|
"background-color",
|
|
@@ -5648,51 +5764,51 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5648
5764
|
"width",
|
|
5649
5765
|
"height",
|
|
5650
5766
|
"onToggle"
|
|
5651
|
-
])) : r("", !0)], 8,
|
|
5652
|
-
], 8,
|
|
5653
|
-
D(
|
|
5767
|
+
])) : r("", !0)], 8, ec))), 128))]))
|
|
5768
|
+
], 8, qs),
|
|
5769
|
+
D(je) && !D(l) ? (y(), i("text", {
|
|
5654
5770
|
key: 0,
|
|
5655
5771
|
class: "waveform-chart__label waveform-chart__x-label",
|
|
5656
|
-
x: D(
|
|
5657
|
-
y: D(
|
|
5772
|
+
x: D(x) + D(ne) / 2,
|
|
5773
|
+
y: D(Me),
|
|
5658
5774
|
"text-anchor": "middle"
|
|
5659
|
-
}, T(D(
|
|
5660
|
-
D(
|
|
5775
|
+
}, T(D(je)), 9, tc)) : r("", !0),
|
|
5776
|
+
D(Ne) && !D(B) ? (y(), i("text", {
|
|
5661
5777
|
key: 1,
|
|
5662
5778
|
class: "waveform-chart__empty",
|
|
5663
|
-
x: D(
|
|
5664
|
-
y: D(
|
|
5779
|
+
x: D(R) / 2,
|
|
5780
|
+
y: D(z) / 2,
|
|
5665
5781
|
"text-anchor": "middle"
|
|
5666
|
-
}, " 暂无有效波形数据 ", 8,
|
|
5667
|
-
], 40,
|
|
5668
|
-
D(
|
|
5782
|
+
}, " 暂无有效波形数据 ", 8, nc)) : r("", !0)
|
|
5783
|
+
], 40, Ws)),
|
|
5784
|
+
D(d) ? (y(), n(D(le), {
|
|
5669
5785
|
key: 1,
|
|
5670
5786
|
class: "waveform-chart__pagination",
|
|
5671
5787
|
"aria-label": "波形分页",
|
|
5672
|
-
current: D(
|
|
5673
|
-
"page-size": D(
|
|
5674
|
-
total: D(
|
|
5788
|
+
current: D(Fe),
|
|
5789
|
+
"page-size": D(Ie)(D(Pe)),
|
|
5790
|
+
total: D(Le).length,
|
|
5675
5791
|
"show-size-changer": !1,
|
|
5676
5792
|
"show-quick-jumper": !1,
|
|
5677
|
-
onChange: D(
|
|
5793
|
+
onChange: D(Re)
|
|
5678
5794
|
}, null, 8, [
|
|
5679
5795
|
"current",
|
|
5680
5796
|
"page-size",
|
|
5681
5797
|
"total",
|
|
5682
5798
|
"onChange"
|
|
5683
5799
|
])) : r("", !0),
|
|
5684
|
-
D(
|
|
5800
|
+
D(Be) && !D(l) && !D(f) ? (y(), n(wo, {
|
|
5685
5801
|
key: 2,
|
|
5686
|
-
annotation: D(
|
|
5687
|
-
mode: D(
|
|
5688
|
-
series: D(
|
|
5689
|
-
"series-options": D(
|
|
5690
|
-
"time-unit": D(
|
|
5691
|
-
"time-error": D(
|
|
5692
|
-
onConfirm: D(
|
|
5693
|
-
onCancel: D(
|
|
5694
|
-
onSeriesChange: D(
|
|
5695
|
-
onTimeChange: D(
|
|
5802
|
+
annotation: D(Be).annotation,
|
|
5803
|
+
mode: D(Be).mode,
|
|
5804
|
+
series: D(He),
|
|
5805
|
+
"series-options": D(Ue),
|
|
5806
|
+
"time-unit": D(me),
|
|
5807
|
+
"time-error": D(We),
|
|
5808
|
+
onConfirm: D(Ge),
|
|
5809
|
+
onCancel: D(Ke),
|
|
5810
|
+
onSeriesChange: D(qe),
|
|
5811
|
+
onTimeChange: D(Je)
|
|
5696
5812
|
}, null, 8, [
|
|
5697
5813
|
"annotation",
|
|
5698
5814
|
"mode",
|
|
@@ -5705,15 +5821,15 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5705
5821
|
"onSeriesChange",
|
|
5706
5822
|
"onTimeChange"
|
|
5707
5823
|
])) : r("", !0),
|
|
5708
|
-
!D(l) && !D(
|
|
5824
|
+
!D(l) && !D(f) ? (y(), n(D(it), {
|
|
5709
5825
|
key: 3,
|
|
5710
|
-
visible: D(
|
|
5711
|
-
x: D(
|
|
5712
|
-
y: D(
|
|
5713
|
-
"can-edit": !!D(
|
|
5714
|
-
onEdit: D(
|
|
5715
|
-
onDelete: D(
|
|
5716
|
-
onClose: D(
|
|
5826
|
+
visible: D(Ve) !== null,
|
|
5827
|
+
x: D(Ve)?.x || 0,
|
|
5828
|
+
y: D(Ve)?.y || 0,
|
|
5829
|
+
"can-edit": !!D(Ve)?.annotationId,
|
|
5830
|
+
onEdit: D(Ye),
|
|
5831
|
+
onDelete: D(Xe),
|
|
5832
|
+
onClose: D(ze).closeContextMenu
|
|
5717
5833
|
}, null, 8, [
|
|
5718
5834
|
"visible",
|
|
5719
5835
|
"x",
|
|
@@ -5723,12 +5839,12 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5723
5839
|
"onDelete",
|
|
5724
5840
|
"onClose"
|
|
5725
5841
|
])) : r("", !0),
|
|
5726
|
-
s(D(
|
|
5727
|
-
state: D(
|
|
5728
|
-
visible: D(
|
|
5729
|
-
"time-unit": D(
|
|
5730
|
-
"container-width": D(
|
|
5731
|
-
"container-height": D(
|
|
5842
|
+
s(D(No), {
|
|
5843
|
+
state: D(_e),
|
|
5844
|
+
visible: D(ve) && !D(f),
|
|
5845
|
+
"time-unit": D(me),
|
|
5846
|
+
"container-width": D(R),
|
|
5847
|
+
"container-height": D(Ze)
|
|
5732
5848
|
}, null, 8, [
|
|
5733
5849
|
"state",
|
|
5734
5850
|
"visible",
|
|
@@ -5736,14 +5852,16 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5736
5852
|
"container-width",
|
|
5737
5853
|
"container-height"
|
|
5738
5854
|
])
|
|
5739
|
-
], 46,
|
|
5855
|
+
], 46, Vs));
|
|
5740
5856
|
}
|
|
5741
|
-
}),
|
|
5857
|
+
}), ic = /* @__PURE__ */ l({
|
|
5742
5858
|
__name: "WaveformChart",
|
|
5743
5859
|
props: {
|
|
5744
5860
|
data: {},
|
|
5745
5861
|
displayMode: { default: "independent" },
|
|
5746
5862
|
overlayMode: { default: "single-axis" },
|
|
5863
|
+
unitDisplayMode: { default: "axis" },
|
|
5864
|
+
layoutPreset: { default: "default" },
|
|
5747
5865
|
width: {},
|
|
5748
5866
|
height: {},
|
|
5749
5867
|
xLabel: {},
|
|
@@ -5765,6 +5883,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5765
5883
|
type: Boolean,
|
|
5766
5884
|
default: !1
|
|
5767
5885
|
},
|
|
5886
|
+
panXDomain: {},
|
|
5768
5887
|
minZoomSpan: {},
|
|
5769
5888
|
minVisiblePoints: { default: 0 },
|
|
5770
5889
|
maxZoomScale: {},
|
|
@@ -5813,6 +5932,7 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5813
5932
|
"zoom-intent",
|
|
5814
5933
|
"zoom-change",
|
|
5815
5934
|
"zoom-end",
|
|
5935
|
+
"pan-end",
|
|
5816
5936
|
"zoom-reset",
|
|
5817
5937
|
"update:annotations",
|
|
5818
5938
|
"update:hidden-series-ids",
|
|
@@ -5826,12 +5946,12 @@ var zo = ["clip-path"], Bo = ["data-series-id", "data-series-name"], Vo = [
|
|
|
5826
5946
|
"sampling-error"
|
|
5827
5947
|
],
|
|
5828
5948
|
setup(e, { expose: t, emit: r }) {
|
|
5829
|
-
let i =
|
|
5949
|
+
let i = io(e, r);
|
|
5830
5950
|
return t({
|
|
5831
5951
|
resetViewport: i.resetViewport,
|
|
5832
5952
|
setViewportDomain: i.setViewportDomain
|
|
5833
|
-
}), (e, t) => (y(), n(
|
|
5953
|
+
}), (e, t) => (y(), n(rc, { controller: D(i) }, null, 8, ["controller"]));
|
|
5834
5954
|
}
|
|
5835
5955
|
});
|
|
5836
5956
|
//#endregion
|
|
5837
|
-
export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS,
|
|
5957
|
+
export { Q as DEFAULT_WAVEFORM_RENDERING_OPTIONS, ic as WaveformChart, vt as buildMinorTicks, Hi as calculateWasmRange, Rt as clamp, jt as displayTime, Ui as findWasmVisibleRange, Pt as formatAxisTime, Nt as formatEndpointTime, Ft as formatTooltipTime, Bi as initializeWasmSampling, ln as normalizeWaveformData, fn as normalizeWaveformSeries, _t as paddedDomain, ht as parseWaveformAnnotations, Lt as resolveTrackGeometry, Dn as resolveWaveformRenderingOptions, Vi as sampleWaveformWasm, Fn as selectRenderablePoints, mt as serializeWaveformAnnotations };
|