waveform-analysis 0.1.43 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +37 -30
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +456 -461
  4. package/dist/style.css +1 -1
  5. package/dist/types/components/core/constants.d.ts +2 -2
  6. package/dist/types/components/core/grid.d.ts +3 -0
  7. package/dist/types/components/core/types.d.ts +4 -2
  8. package/dist/types/components/core/yAxisConstants.d.ts +2 -2
  9. package/dist/types/components/interaction/WaveformTooltip.vue.d.ts +1 -1
  10. package/dist/types/components/interaction/useWaveformViewport.d.ts +2 -1
  11. package/package.json +1 -1
  12. package/src/App.test.ts +2 -7
  13. package/src/components/WaveformChart.css +1 -1
  14. package/src/components/WaveformChartView.vue +2 -2
  15. package/src/components/core/constants.ts +3 -3
  16. package/src/components/core/grid.test.ts +13 -1
  17. package/src/components/core/grid.ts +14 -4
  18. package/src/components/core/layout.test.ts +3 -3
  19. package/src/components/core/layout.ts +2 -2
  20. package/src/components/core/trackLayoutBuilder.ts +14 -23
  21. package/src/components/core/types.ts +4 -2
  22. package/src/components/core/useWaveformChartController.ts +1 -0
  23. package/src/components/core/useWaveformLayout.ts +12 -6
  24. package/src/components/core/yAxisConstants.ts +2 -2
  25. package/src/components/interaction/WaveformHoverHost.vue +3 -1
  26. package/src/components/interaction/WaveformTooltip.test.ts +23 -0
  27. package/src/components/interaction/WaveformTooltip.vue +9 -6
  28. package/src/components/interaction/useWaveformHover.ts +21 -15
  29. package/src/components/interaction/useWaveformViewport.ts +20 -15
  30. package/src/components/interaction/useWaveformZoom.ts +1 -1
  31. package/src/components/rendering/WaveformHoverLayer.vue +5 -11
  32. package/src/components/rendering/WaveformTrack.vue +1 -0
  33. package/src/components/rendering/WaveformTrackAxes.vue +8 -6
  34. package/src/components/waveformChartCases/dataLifecycle.test.ts +1 -1
  35. package/src/components/waveformChartCases/frameGridAndFormatting.test.ts +10 -0
  36. package/src/components/waveformChartCases/incompleteDataHover.test.ts +67 -0
  37. package/src/components/waveformChartCases/layoutAndDomains.test.ts +5 -5
  38. package/src/components/waveformChartCases/legendVisibility.test.ts +1 -1
  39. package/src/components/waveformChartCases/multiAxisAndPagination.test.ts +50 -1
  40. package/src/components/waveformChartCases/trackOrder.test.ts +131 -0
  41. package/src/data/simulatedWaveforms.test.ts +7 -2
  42. package/src/data/simulatedWaveforms.ts +12 -7
package/dist/index.js CHANGED
@@ -621,14 +621,14 @@ function Ye() {
621
621
  }
622
622
  //#endregion
623
623
  //#region src/utils/domain.ts
624
- function Xe(e) {
624
+ function $(e) {
625
625
  if (e.length === 0) return [0, 1];
626
626
  let [t = 0, n = 1] = R(e);
627
627
  if (t !== n) return [t, n];
628
628
  let r = Math.abs(t) * .05 || .5;
629
629
  return [t - r, n + r];
630
630
  }
631
- function Ze(e, t = 5, n) {
631
+ function Xe(e, t = 5, n) {
632
632
  let r = e;
633
633
  if (n && e.length >= 2) {
634
634
  let t = e[0], n = e[1], i = e[e.length - 1], a = e[e.length - 2];
@@ -650,71 +650,71 @@ function Ze(e, t = 5, n) {
650
650
  }
651
651
  //#endregion
652
652
  //#region src/utils/formatters.ts
653
- var Qe = .001, $e = 1e3, et = new Intl.NumberFormat("zh-CN", { maximumFractionDigits: 4 }), tt = new Intl.NumberFormat("zh-CN", { maximumFractionDigits: 4 });
654
- function nt(e, t) {
653
+ var Ze = .001, Qe = 1e3, $e = new Intl.NumberFormat("zh-CN", { maximumFractionDigits: 4 }), et = new Intl.NumberFormat("zh-CN", { maximumFractionDigits: 4 });
654
+ function tt(e, t) {
655
655
  let n = e.toFixed(Math.max(0, t));
656
656
  return /^-0(?:\.0+)?$/.test(n) ? n.slice(1) : n;
657
657
  }
658
- function rt(e) {
659
- return Number.isFinite(e) && (e >= $e || e > 0 && e < Qe);
658
+ function nt(e) {
659
+ return Number.isFinite(e) && (e >= Qe || e > 0 && e < Ze);
660
660
  }
661
- function it(e, t) {
661
+ function rt(e, t) {
662
662
  if (typeof e != "number" || typeof t != "number") return null;
663
663
  let n = Math.max(Math.abs(e), Math.abs(t));
664
- return rt(n) ? Math.floor(Math.log10(n)) : null;
664
+ return nt(n) ? Math.floor(Math.log10(n)) : null;
665
665
  }
666
- function at(e) {
666
+ function it(e) {
667
667
  return `E${e >= 0 ? "+" : "-"}${Math.abs(e).toString().padStart(2, "0")}`;
668
668
  }
669
- function ot(e) {
669
+ function at(e) {
670
670
  if (Object.is(e, -0)) return "0";
671
- let t = e === 0 ? 0 : Number(e.toPrecision(5)), n = et.format(t);
671
+ let t = e === 0 ? 0 : Number(e.toPrecision(5)), n = $e.format(t);
672
672
  return n === "-0" ? "0" : n;
673
673
  }
674
- function st(e, t = {}) {
674
+ function ot(e, t = {}) {
675
675
  if (!Number.isFinite(e)) return String(e);
676
- let n = it(t.axisMin, t.axisMax), r = ot(n === null ? e : e / 10 ** n);
676
+ let n = rt(t.axisMin, t.axisMax), r = at(n === null ? e : e / 10 ** n);
677
677
  if (e !== (t.topTickValue ?? t.axisMax)) return r;
678
678
  let i = t.unit?.trim(), a = i ? `(${i}) ` : "";
679
- return `${n === null ? "" : `${at(n)} `}${a}${r}`;
679
+ return `${n === null ? "" : `${it(n)} `}${a}${r}`;
680
680
  }
681
- function ct(e) {
682
- return Number.isFinite(e) ? Object.is(e, -0) ? "0" : tt.format(e) : String(e);
681
+ function st(e) {
682
+ return Number.isFinite(e) ? Object.is(e, -0) ? "0" : et.format(e) : String(e);
683
683
  }
684
- function lt(e) {
684
+ function ct(e) {
685
685
  if (!Number.isFinite(e)) return String(e);
686
686
  if (Object.is(e, -0)) return "0";
687
687
  let [t, n] = e.toExponential().split("e"), r = Number(n), i = t.startsWith("-"), a = t.replace("-", "").replace(".", ""), o = r + 1, s;
688
688
  return s = o <= 0 ? `0.${"0".repeat(Math.abs(o))}${a}` : o >= a.length ? `${a}${"0".repeat(o - a.length)}` : `${a.slice(0, o)}.${a.slice(o)}`, `${i ? "-" : ""}${s}`;
689
689
  }
690
- function ut(e, t) {
690
+ function lt(e, t) {
691
691
  return t === "ms" ? e * 1e3 : e;
692
692
  }
693
- function dt(e, t, n, r, i) {
694
- let a = ut(e, n);
693
+ function ut(e, t, n, r, i) {
694
+ let a = lt(e, n);
695
695
  return i ? i(a, {
696
696
  kind: r,
697
697
  rawValue: e,
698
698
  timeUnit: n,
699
699
  domain: [t[0], t[1]],
700
- displayDomain: [ut(t[0], n), ut(t[1], n)]
701
- }) : lt(a);
700
+ displayDomain: [lt(t[0], n), lt(t[1], n)]
701
+ }) : ct(a);
702
+ }
703
+ function dt(e, t, n) {
704
+ return ut(e, t, n, "end");
702
705
  }
703
706
  function ft(e, t, n) {
704
- return dt(e, t, n, "end");
707
+ return ut(e, n ?? [e, e], t, "tick");
705
708
  }
706
- function pt(e, t, n) {
707
- return dt(e, n ?? [e, e], t, "tick");
709
+ function pt(e, t) {
710
+ return st(lt(e, t));
708
711
  }
709
712
  function mt(e, t) {
710
- return ct(ut(e, t));
711
- }
712
- function ht(e, t) {
713
- return Number.isFinite(e) ? nt(ut(e, t), 3) : String(e);
713
+ return Number.isFinite(e) ? tt(lt(e, t), 3) : String(e);
714
714
  }
715
715
  //#endregion
716
716
  //#region src/utils/geometry.ts
717
- function gt(e, t, n) {
717
+ function ht(e, t, n) {
718
718
  if (e <= 0) return {
719
719
  gap: 0,
720
720
  axisBand: 0,
@@ -727,55 +727,55 @@ function gt(e, t, n) {
727
727
  height: Math.max(1, (n - (e - 1) * (c + l)) / e)
728
728
  };
729
729
  }
730
- function _t(e, t, n) {
730
+ function gt(e, t, n) {
731
731
  return Math.min(Math.max(e, t), n);
732
732
  }
733
733
  //#endregion
734
734
  //#region src/components/core/constants.ts
735
- var vt = {
735
+ var _t = {
736
736
  top: 18,
737
737
  right: 24,
738
738
  bottom: 52,
739
- left: 64
740
- }, yt = {
739
+ left: 80
740
+ }, vt = {
741
741
  DEFAULT_MAX_SCALE: 40,
742
742
  MIN_SCALE: 1
743
- }, bt = .62, xt = 1.2, St = /* @__PURE__ */ "#0960bd.#ff7f0e.#2ca02c.#d62728.#9467bd.#8c564b.#e377c2.#7f7f7f.#bcbd22.#17becf.#005f73.#0a9396.#ae2012.#bb3e03.#ca6702.#ee9b00.#9b2226.#3a0ca3.#4361ee.#4895ef.#560bad.#7209b7.#b5179e.#f72585.#006d77.#2f3e46.#354f52.#52796f.#800f2f.#31572c".split("."), Ct = {
743
+ }, yt = .62, bt = 1.2, xt = /* @__PURE__ */ "#0960bd.#ff7f0e.#2ca02c.#d62728.#9467bd.#8c564b.#e377c2.#7f7f7f.#bcbd22.#17becf.#005f73.#0a9396.#ae2012.#bb3e03.#ca6702.#ee9b00.#9b2226.#3a0ca3.#4361ee.#4895ef.#560bad.#7209b7.#b5179e.#f72585.#006d77.#2f3e46.#354f52.#52796f.#800f2f.#31572c".split("."), St = {
744
744
  WIDTH: 1.5,
745
745
  CAP_WIDTH: 8
746
- }, wt = {
746
+ }, Ct = {
747
747
  COLOR: "#98a2b3",
748
748
  WIDTH: 1,
749
749
  DASH: "6 4"
750
750
  };
751
751
  //#endregion
752
752
  //#region src/components/core/yDomain.ts
753
- function Tt(e) {
753
+ function wt(e) {
754
754
  if (!(!e || !Number.isFinite(e[0]) || !Number.isFinite(e[1]) || e[0] === e[1])) return e[0] < e[1] ? [e[0], e[1]] : [e[1], e[0]];
755
755
  }
756
- function Et(e, t) {
757
- return Tt(t?.[e.id]);
756
+ function Tt(e, t) {
757
+ return wt(t?.[e.id]);
758
758
  }
759
- function Dt(e, t, n) {
760
- return Tt(n?.[e.id]) ?? Tt(t);
759
+ function Et(e, t, n) {
760
+ return wt(n?.[e.id]) ?? wt(t);
761
761
  }
762
- function Ot(e, t, n) {
763
- return !!(Et(e, n) || e.visibleSeries.some((e) => Dt(e, t, n)));
762
+ function Dt(e, t, n) {
763
+ return !!(Tt(e, n) || e.visibleSeries.some((e) => Et(e, t, n)));
764
764
  }
765
- function kt(e) {
765
+ function Ot(e) {
766
766
  return [Math.min(...e.map((e) => e[0])), Math.max(...e.map((e) => e[1]))];
767
767
  }
768
768
  //#endregion
769
769
  //#region src/core/data.ts
770
- var At = Ct.WIDTH, jt = Ct.CAP_WIDTH;
771
- function Mt(e) {
770
+ var kt = St.WIDTH, At = St.CAP_WIDTH;
771
+ function jt(e) {
772
772
  return e === "dashed" || e === "dash-dot" ? e : "solid";
773
773
  }
774
- function Nt(e) {
774
+ function Mt(e) {
775
775
  return typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : void 0;
776
776
  }
777
- function Pt(e) {
778
- let t = Nt(e.error), n = Nt(e.lowerError), r = Nt(e.upperError);
777
+ function Nt(e) {
778
+ let t = Mt(e.error), n = Mt(e.lowerError), r = Mt(e.upperError);
779
779
  return {
780
780
  x: e.x,
781
781
  y: e.y,
@@ -784,14 +784,14 @@ function Pt(e) {
784
784
  ...r === void 0 ? {} : { upperError: r }
785
785
  };
786
786
  }
787
- function Ft(e) {
788
- let t = Nt(e.error) ?? 0;
787
+ function Pt(e) {
788
+ let t = Mt(e.error) ?? 0;
789
789
  return {
790
- lower: Nt(e.lowerError) ?? t,
791
- upper: Nt(e.upperError) ?? t
790
+ lower: Mt(e.lowerError) ?? t,
791
+ upper: Mt(e.upperError) ?? t
792
792
  };
793
793
  }
794
- function It(e) {
794
+ function Ft(e) {
795
795
  if (e.kind === "samples") {
796
796
  if (!Number.isFinite(e.sampleRate) || e.sampleRate <= 0) return [];
797
797
  let t = Number.isFinite(e.startTime) ? e.startTime ?? 0 : 0, n = [];
@@ -807,14 +807,14 @@ function It(e) {
807
807
  let t = [], n = -Infinity, r = !0;
808
808
  for (let i of e.points) {
809
809
  if (!Number.isFinite(i.x) || !Number.isFinite(i.y)) continue;
810
- let e = Pt(i);
810
+ let e = Nt(i);
811
811
  e.x < n && (r = !1), n = e.x, t.push(e);
812
812
  }
813
813
  return r || t.sort((e, t) => e.x - t.x), t;
814
814
  }
815
- function Lt(e) {
815
+ function It(e) {
816
816
  if (e.kind !== "series") {
817
- let t = It(e);
817
+ let t = Ft(e);
818
818
  return t.length > 0 ? [{
819
819
  id: "series-0",
820
820
  name: "",
@@ -823,8 +823,8 @@ function Lt(e) {
823
823
  pointType: "none",
824
824
  errorBar: {
825
825
  visible: !1,
826
- width: At,
827
- capWidth: jt
826
+ width: kt,
827
+ capWidth: At
828
828
  },
829
829
  points: t
830
830
  }] : [];
@@ -834,7 +834,7 @@ function Lt(e) {
834
834
  let r = e.id?.trim() || `series-${n}`, i = r, a = 1;
835
835
  for (; t.has(i);) i = `${r}-${a}`, a++;
836
836
  t.add(i);
837
- let o = e.lineType ?? "linear", s = Mt(e.lineStyle), c = e.pointType ?? "none", l = e.errorBar?.visible === !0, u = o === "none" && c === "none" && !l ? "linear" : o, d = Number(e.errorBar?.width), f = Number(e.errorBar?.capWidth);
837
+ let o = e.lineType ?? "linear", s = jt(e.lineStyle), c = e.pointType ?? "none", l = e.errorBar?.visible === !0, u = o === "none" && c === "none" && !l ? "linear" : o, d = Number(e.errorBar?.width), f = Number(e.errorBar?.capWidth);
838
838
  return {
839
839
  id: i,
840
840
  shotNo: e.shotNo?.trim() || void 0,
@@ -848,29 +848,29 @@ function Lt(e) {
848
848
  errorBar: {
849
849
  visible: l,
850
850
  color: e.errorBar?.color,
851
- width: Number.isFinite(d) && d > 0 ? d : At,
852
- capWidth: Number.isFinite(f) && f > 0 ? f : jt
851
+ width: Number.isFinite(d) && d > 0 ? d : kt,
852
+ capWidth: Number.isFinite(f) && f > 0 ? f : At
853
853
  },
854
- points: It(e.data)
854
+ points: Ft(e.data)
855
855
  };
856
856
  }).filter((e) => e.points.length > 0);
857
857
  }
858
858
  //#endregion
859
859
  //#region src/core/renderingStrategies.ts
860
- function Rt(e, t) {
860
+ function Lt(e, t) {
861
861
  return {
862
862
  start: Math.max(0, e.start - 1),
863
863
  end: Math.min(t, e.end + 1)
864
864
  };
865
865
  }
866
- function zt(e, t) {
866
+ function Rt(e, t) {
867
867
  t && e[e.length - 1] !== t && e.push(t);
868
868
  }
869
- var Bt = (e) => {
870
- let { start: t, end: n } = Rt(e.range, e.points.length);
869
+ var zt = (e) => {
870
+ let { start: t, end: n } = Lt(e.range, e.points.length);
871
871
  return e.points.slice(t, n);
872
- }, Vt = (e) => {
873
- let { points: t, range: n, domain: r, width: i, options: a } = e, { start: o, end: s } = Rt(n, t.length);
872
+ }, Bt = (e) => {
873
+ let { points: t, range: n, domain: r, width: i, options: a } = e, { start: o, end: s } = Lt(n, t.length);
874
874
  if (s - o <= 0) return [];
875
875
  let c = Math.min(r[0], r[1]), l = Math.max(r[0], r[1]), u = Math.max(4, Math.floor(i * a.maxPointsPerPixel)), d = Math.max(1, Math.floor(u / 4)), f = [], p = l - c || 1, m = Array.from({ length: 4 }, () => -1), h = -1, g = -1, _ = -1, v = -1, y = -1, b = (e, t) => {
876
876
  if (e < 0) return t;
@@ -885,9 +885,9 @@ var Bt = (e) => {
885
885
  for (; n >= 0 && m[n] > e;) m[n + 1] = m[n], --n;
886
886
  m[n + 1] = e;
887
887
  }
888
- for (let n = 0; n < e; n += 1) zt(f, t[m[n]]);
888
+ for (let n = 0; n < e; n += 1) Rt(f, t[m[n]]);
889
889
  };
890
- zt(f, t[o]);
890
+ Rt(f, t[o]);
891
891
  for (let e = n.start; e < n.end; e += 1) {
892
892
  let n = t[e], r = Math.min(d - 1, Math.max(0, Math.floor((n.x - c) / p * d)));
893
893
  if (r !== h) {
@@ -896,53 +896,53 @@ var Bt = (e) => {
896
896
  }
897
897
  _ = e, n.y < t[v].y && (v = e), n.y > t[y].y && (y = e);
898
898
  }
899
- return x(), zt(f, t[s - 1]), f;
899
+ return x(), Rt(f, t[s - 1]), f;
900
900
  };
901
- function Ht(e) {
901
+ function Vt(e) {
902
902
  let t = Math.max(4, Math.floor(e.width * e.options.maxPointsPerPixel));
903
- return !e.options.downsample || e.visibleCount <= e.options.downsampleThreshold || e.visibleCount <= t ? Bt : Vt;
903
+ return !e.options.downsample || e.visibleCount <= e.options.downsampleThreshold || e.visibleCount <= t ? zt : Bt;
904
904
  }
905
905
  //#endregion
906
906
  //#region src/core/renderingOptions.ts
907
- var Ut = {
907
+ var Ht = {
908
908
  downsample: !0,
909
909
  downsampleThreshold: 2e3,
910
910
  maxPointsPerPixel: 4,
911
911
  pointMinSpacing: 10,
912
912
  errorBarMinSpacing: 12
913
913
  };
914
- function Wt(e) {
914
+ function Ut(e) {
915
915
  let t = Number(e?.downsampleThreshold), n = Number(e?.maxPointsPerPixel), r = Number(e?.pointMinSpacing), i = Number(e?.errorBarMinSpacing);
916
916
  return {
917
- downsample: e?.downsample ?? Ut.downsample,
918
- downsampleThreshold: Number.isFinite(t) && t >= 2 ? Math.floor(t) : Ut.downsampleThreshold,
919
- maxPointsPerPixel: Number.isFinite(n) && n > 0 ? n : Ut.maxPointsPerPixel,
920
- pointMinSpacing: Number.isFinite(r) && r >= 0 ? r : Ut.pointMinSpacing,
921
- errorBarMinSpacing: Number.isFinite(i) && i >= 0 ? i : Ut.errorBarMinSpacing
917
+ downsample: e?.downsample ?? Ht.downsample,
918
+ downsampleThreshold: Number.isFinite(t) && t >= 2 ? Math.floor(t) : Ht.downsampleThreshold,
919
+ maxPointsPerPixel: Number.isFinite(n) && n > 0 ? n : Ht.maxPointsPerPixel,
920
+ pointMinSpacing: Number.isFinite(r) && r >= 0 ? r : Ht.pointMinSpacing,
921
+ errorBarMinSpacing: Number.isFinite(i) && i >= 0 ? i : Ht.errorBarMinSpacing
922
922
  };
923
923
  }
924
924
  //#endregion
925
925
  //#region src/core/rendering.ts
926
- var Gt = P((e) => e.x), Kt = () => !0;
927
- function qt(e, t) {
926
+ var Wt = P((e) => e.x), Gt = () => !0;
927
+ function Kt(e, t) {
928
928
  let n = Math.min(t[0], t[1]), r = Math.max(t[0], t[1]);
929
929
  return {
930
- start: Gt.left(e, n),
931
- end: Gt.right(e, r)
930
+ start: Wt.left(e, n),
931
+ end: Wt.right(e, r)
932
932
  };
933
933
  }
934
- function Jt(e, t, n) {
934
+ function qt(e, t, n) {
935
935
  if (!Number.isFinite(n) || n <= 0) return !0;
936
936
  let r = Math.ceil(n), i = /* @__PURE__ */ new Set();
937
937
  for (let n of e) {
938
- let e = qt(n.points, t);
938
+ let e = Kt(n.points, t);
939
939
  for (let t = e.start; t < e.end; t += 1) if (i.add(n.points[t].x), i.size >= r) return !0;
940
940
  }
941
941
  return !1;
942
942
  }
943
- function Yt(e, t, n, r, i) {
943
+ function Jt(e, t, n, r, i) {
944
944
  let a = Math.max(0, t.start - 1), o = Math.min(e.length, t.end + 1) - a;
945
- return o <= 0 ? [] : Ht({
945
+ return o <= 0 ? [] : Vt({
946
946
  visibleCount: o,
947
947
  width: r,
948
948
  options: i
@@ -954,12 +954,12 @@ function Yt(e, t, n, r, i) {
954
954
  options: i
955
955
  });
956
956
  }
957
- function Xt(e, t, n, r) {
958
- return !e.length || n <= 0 ? [] : Yt(e, qt(e, t), t, n, r);
957
+ function Yt(e, t, n, r) {
958
+ return !e.length || n <= 0 ? [] : Jt(e, Kt(e, t), t, n, r);
959
959
  }
960
- function Zt(e, t, n, r, i, a, o, s) {
960
+ function Xt(e, t, n, r, i, a, o, s) {
961
961
  if (!a || i === 0) {
962
- if (o === Kt) return e.slice(t.start, t.end);
962
+ if (o === Gt) return e.slice(t.start, t.end);
963
963
  let n = [];
964
964
  for (let r = t.start; r < t.end; r += 1) o(e[r]) && n.push(e[r]);
965
965
  return n;
@@ -992,34 +992,38 @@ function Zt(e, t, n, r, i, a, o, s) {
992
992
  let w = (f ?? []).map((e, t) => m?.[t] ?? e).filter((e) => e !== void 0);
993
993
  return v && w[0] !== v && w.unshift(v), y && w.at(-1) !== y && w.push(y), w;
994
994
  }
995
- function Qt(e) {
996
- let { lower: t, upper: n } = Ft(e);
995
+ function Zt(e) {
996
+ let { lower: t, upper: n } = Pt(e);
997
997
  return t !== 0 || n !== 0;
998
998
  }
999
- function $t(e, t, n, r, i) {
999
+ function Qt(e, t, n, r, i) {
1000
1000
  if (!e.length || n <= 0) return {
1001
1001
  linePoints: [],
1002
1002
  pointRenderPoints: [],
1003
1003
  errorBarRenderPoints: []
1004
1004
  };
1005
- let a = qt(e, t), o = i.lineVisible ? Yt(e, a, t, n, r) : [], s = i.errorBarVisible && i.hasErrorPoints;
1005
+ let a = Kt(e, t), o = i.lineVisible ? Jt(e, a, t, n, r) : [], s = i.errorBarVisible && i.hasErrorPoints;
1006
1006
  if (i.pointVisible && s) {
1007
- let i = Zt(e, a, t, n, Math.max(r.pointMinSpacing, r.errorBarMinSpacing), r.downsample, Kt, Qt);
1007
+ let i = Xt(e, a, t, n, Math.max(r.pointMinSpacing, r.errorBarMinSpacing), r.downsample, Gt, Zt);
1008
1008
  return {
1009
1009
  linePoints: o,
1010
1010
  pointRenderPoints: i,
1011
- errorBarRenderPoints: i.filter(Qt)
1011
+ errorBarRenderPoints: i.filter(Zt)
1012
1012
  };
1013
1013
  }
1014
1014
  return {
1015
1015
  linePoints: o,
1016
- pointRenderPoints: i.pointVisible ? Zt(e, a, t, n, r.pointMinSpacing, r.downsample, Kt) : [],
1017
- errorBarRenderPoints: s ? Zt(e, a, t, n, r.errorBarMinSpacing, r.downsample, Qt) : []
1016
+ pointRenderPoints: i.pointVisible ? Xt(e, a, t, n, r.pointMinSpacing, r.downsample, Gt) : [],
1017
+ errorBarRenderPoints: s ? Xt(e, a, t, n, r.errorBarMinSpacing, r.downsample, Zt) : []
1018
1018
  };
1019
1019
  }
1020
- var en = (e, t) => {
1020
+ var $t = (e, t) => {
1021
1021
  let n = typeof e == "number" ? e : Number(e);
1022
1022
  return Number.isFinite(n) ? Math.min(10, Math.max(1, Math.floor(n))) : t;
1023
+ }, en = (e) => {
1024
+ if (!Array.isArray(e)) return [];
1025
+ let t = e.filter((e) => typeof e == "string").map((e) => e.trim()).filter(Boolean);
1026
+ return Array.from(new Set(t));
1023
1027
  };
1024
1028
  function tn(e) {
1025
1029
  let t = Object.fromEntries(Object.entries(e?.trackLines ?? {}).map(([e, t]) => [e, {
@@ -1029,10 +1033,11 @@ function tn(e) {
1029
1033
  verticalColor: typeof t?.verticalColor == "string" && t.verticalColor.trim() ? t.verticalColor : void 0
1030
1034
  }]));
1031
1035
  return {
1032
- rowCount: en(e?.rowCount, 2),
1033
- columnCount: en(e?.columnCount, 1),
1036
+ rowCount: $t(e?.rowCount, 2),
1037
+ columnCount: $t(e?.columnCount, 1),
1034
1038
  showPagination: e?.showPagination ?? !0,
1035
1039
  fillIncompleteLastRow: e?.fillIncompleteLastRow ?? !1,
1040
+ trackOrder: en(e?.trackOrder),
1036
1041
  trackLines: t
1037
1042
  };
1038
1043
  }
@@ -1114,64 +1119,48 @@ function pn(e) {
1114
1119
  hasSeries: !!e.series
1115
1120
  })), n = cn(t, e.grid.columnCount);
1116
1121
  return t.flatMap((t, r) => {
1117
- let i = !t.series;
1118
- if (i && (e.displayMode !== "compact" || !e.showCompactEmptyTracks)) return [];
1119
- let a = {
1122
+ let i = !t.series || t.series.series.length === 0;
1123
+ if (!t.series && (e.displayMode !== "compact" || !e.showCompactEmptyTracks)) return [];
1124
+ let a = t.series ?? {
1120
1125
  id: `empty-grid-slot-${t.slotIndex}`,
1121
- name: "",
1122
- color: "transparent",
1123
- lineType: "linear",
1124
- lineStyle: "solid",
1125
- pointType: "none",
1126
- errorBar: {
1127
- visible: !1,
1128
- width: 1.5,
1129
- capWidth: 8
1130
- },
1131
- points: [],
1126
+ series: [],
1127
+ visibleSeries: [],
1132
1128
  xDomain: [0, 1],
1133
- yDomain: [0, 1],
1134
- hasErrorPoints: !1
1135
- }, o = t.series ?? {
1136
- id: a.id,
1137
- series: [a],
1138
- visibleSeries: [a],
1139
- xDomain: a.xDomain,
1140
- yDomain: a.yDomain
1141
- }, s = !i && o.visibleSeries.length > 0, c = o.visibleSeries[0] ?? o.series[0] ?? a, l = e.displayMode === "independent" ? V(fn(o, c.id, e), [0, t.width]) : V(e.sharedZoomDomain, [0, t.width]), u = (e.displayMode === "independent" ? e.independentTransforms[r] ?? W : W).rescaleX(l), d = e.yDomains?.[o.id], f = Cn(o, e.overlayMode, e.fixedYDomain, e.fixedYDomains).map((e) => !e.fixed && d ? {
1129
+ yDomain: [0, 1]
1130
+ }, o = !i && a.visibleSeries.length > 0, s = a.visibleSeries[0] ?? a.series[0] ?? null, c = e.displayMode === "independent" ? V(fn(a, s?.id ?? a.id, e), [0, t.width]) : V(e.sharedZoomDomain, [0, t.width]), l = (e.displayMode === "independent" ? e.independentTransforms[r] ?? W : W).rescaleX(c), u = e.yDomains?.[a.id], d = Cn(a, e.overlayMode, e.fixedYDomain, e.fixedYDomains).map((e) => !e.fixed && u ? {
1142
1131
  ...e,
1143
- domain: d
1144
- } : e), p = {
1132
+ domain: u
1133
+ } : e), f = {
1145
1134
  left: 0,
1146
1135
  right: 0
1147
- }, m = f.map((n) => {
1136
+ }, p = d.map((n) => {
1148
1137
  let r = yn(t.plotHeight, e.yAxisSplitNumber), i = Math.max(1, r - 1), a = V(n.domain, [t.plotHeight, 0]);
1149
1138
  a.nice(i);
1150
- let [o, s] = a.domain(), c = Array.from({ length: r }, (e, t) => o + (s - o) * t / (r - 1)), l = e.displayMode !== "compact" || t.row === 0 ? c : c.slice(0, -1), { tickTextWidth: u } = wn(a.domain(), !1, l, n.seriesList[0]?.unit, r), d = u + 7 + 6 + 24 + 4, f = n.side === "left" ? -p.left : t.width + p.right, m = u + 7 + 6 + 24 / 2, h = f + (n.side === "left" ? -m : m);
1151
- return p[n.side] += d, {
1139
+ let [o, s] = a.domain(), c = Array.from({ length: r }, (e, t) => o + (s - o) * t / (r - 1)), l = e.displayMode !== "compact" || t.row === 0 ? c : c.slice(0, -1), { tickTextWidth: u } = wn(a.domain(), !1, l, n.seriesList[0]?.unit, r), d = u + 7 + 0 + 12 + 4, p = n.side === "left" ? -f.left : t.width + f.right, m = u + 7 + 0 + 12 / 2, h = p + (n.side === "left" ? -m : m);
1140
+ return f[n.side] += d, {
1152
1141
  index: n.index,
1153
1142
  side: n.side,
1154
- x: f,
1143
+ x: p,
1155
1144
  labelX: h,
1156
1145
  scale: a,
1157
1146
  majorTicks: c,
1158
- minorTicks: Ze(c),
1147
+ minorTicks: Xe(c, 2),
1159
1148
  tickValues: l,
1160
1149
  seriesList: n.seriesList
1161
1150
  };
1162
- }), h = m[0]?.scale ?? V(o.yDomain, [t.plotHeight, 0]).nice(), g = u.ticks(Math.max(2, Math.floor(t.width / 100))), _ = m[0]?.majorTicks ?? [], v = m[0]?.tickValues ?? [], y = u.domain(), b = {
1163
- start: dt(y[0], y, e.timeUnit, "start", e.xAxisLabelFormatter),
1164
- end: dt(y[1], y, e.timeUnit, "end", e.xAxisLabelFormatter)
1165
- }, x = b.start.length * 7 + 10, S = b.end.length * 7 + 10, C = g.filter((e) => {
1166
- let n = u(e);
1167
- return n > x && n < t.width - S;
1168
- }), w = o.visibleSeries.map((n) => {
1169
- let r = m.find((e) => e.seriesList.some((e) => e.id === n.id)), a = r?.scale ?? h, o = $t(n.points, y, t.width, e.rendering, {
1151
+ }), m = p[0]?.scale ?? V(a.yDomain, [t.plotHeight, 0]).nice(), h = l.ticks(Math.max(2, Math.floor(t.width / 100))), g = p[0]?.majorTicks ?? [], _ = p[0]?.tickValues ?? [], v = l.domain(), y = {
1152
+ start: ut(v[0], v, e.timeUnit, "start", e.xAxisLabelFormatter),
1153
+ end: ut(v[1], v, e.timeUnit, "end", e.xAxisLabelFormatter)
1154
+ }, b = y.start.length * 7 + 10, x = y.end.length * 7 + 10, S = h.filter((e) => {
1155
+ let n = l(e);
1156
+ return n > b && n < t.width - x;
1157
+ }), C = a.visibleSeries.map((n) => {
1158
+ let r = p.find((e) => e.seriesList.some((e) => e.id === n.id)), a = r?.scale ?? m, o = Qt(n.points, v, t.width, e.rendering, {
1170
1159
  lineVisible: !i && n.lineType !== "none",
1171
1160
  pointVisible: n.pointType !== "none",
1172
1161
  errorBarVisible: n.errorBar.visible,
1173
1162
  hasErrorPoints: n.hasErrorPoints
1174
- }), s = z().x((e) => u(e.x)).y((e) => a(e.y));
1163
+ }), s = z().x((e) => l(e.x)).y((e) => a(e.y));
1175
1164
  return n.lineType === "step-start" && s.curve(L), n.lineType === "step-middle" && s.curve(F), (n.lineType === "step-end" || n.lineType === "step-after") && s.curve(I), {
1176
1165
  series: n,
1177
1166
  path: o.linePoints.length ? s(o.linePoints) : null,
@@ -1182,13 +1171,13 @@ function pn(e) {
1182
1171
  };
1183
1172
  });
1184
1173
  return {
1185
- id: o.id,
1174
+ id: a.id,
1186
1175
  index: r,
1187
- series: c,
1188
- seriesList: o.visibleSeries,
1189
- legendSeries: o.series,
1176
+ series: s,
1177
+ seriesList: a.visibleSeries,
1178
+ legendSeries: a.series,
1190
1179
  isEmpty: i,
1191
- hasVisibleSeries: s,
1180
+ hasVisibleSeries: o,
1192
1181
  column: t.column,
1193
1182
  showYAxisLabel: !e.hideSecondaryLabels || t.column === 0,
1194
1183
  yAxisLabelX: e.yAxisLabelX,
@@ -1196,29 +1185,29 @@ function pn(e) {
1196
1185
  top: t.top,
1197
1186
  width: t.width,
1198
1187
  height: t.plotHeight,
1199
- xScale: u,
1200
- yScale: h,
1201
- yAxes: m,
1202
- xMajorTicks: g,
1203
- xMinorTicks: Ze(g, 5, y),
1204
- yMajorTicks: _,
1205
- yMinorTicks: m[0]?.minorTicks ?? [],
1206
- yAxisTickValues: v,
1207
- xAxisTickValues: C,
1208
- endpointLabels: b,
1209
- path: w[0]?.path ?? null,
1210
- seriesPaths: w,
1211
- gridLines: e.grid.trackLines[o.id] ?? {
1188
+ xScale: l,
1189
+ yScale: m,
1190
+ yAxes: p,
1191
+ xMajorTicks: h,
1192
+ xMinorTicks: Xe(h, 3, v),
1193
+ yMajorTicks: g,
1194
+ yMinorTicks: p[0]?.minorTicks ?? [],
1195
+ yAxisTickValues: _,
1196
+ xAxisTickValues: S,
1197
+ endpointLabels: y,
1198
+ path: C[0]?.path ?? null,
1199
+ seriesPaths: C,
1200
+ gridLines: e.grid.trackLines[a.id] ?? {
1212
1201
  horizontal: !0,
1213
1202
  vertical: !0
1214
1203
  },
1215
- showXAxis: (i || s) && (e.displayMode === "independent" || (e.displayMode === "compact" ? t.isLastRow ?? t.row === e.grid.rowCount - 1 : n.has(t.slotIndex)))
1204
+ showXAxis: (i || o) && (e.displayMode === "independent" || (e.displayMode === "compact" ? t.isLastRow ?? t.row === e.grid.rowCount - 1 : n.has(t.slotIndex)))
1216
1205
  };
1217
1206
  });
1218
1207
  }
1219
1208
  //#endregion
1220
1209
  //#region src/components/core/layout.ts
1221
- var mn = 7, hn = 7, gn = 4, _n = 6, vn = 24;
1210
+ var mn = 7, hn = 7, gn = 4, _n = 0, vn = 12;
1222
1211
  function yn(e, t) {
1223
1212
  return typeof t == "number" && Number.isFinite(t) ? Math.max(2, Math.floor(t)) : 5;
1224
1213
  }
@@ -1253,22 +1242,22 @@ function Sn(e, t) {
1253
1242
  if (t === "single-axis") n.domain = e.yDomain;
1254
1243
  else {
1255
1244
  let t = n.seriesList.flatMap((e) => e.yDomain);
1256
- n.domain = t.length > 0 ? Xe(t) : e.yDomain;
1245
+ n.domain = t.length > 0 ? $(t) : e.yDomain;
1257
1246
  }
1258
1247
  }), n.set(t, o), o;
1259
1248
  }
1260
1249
  function Cn(e, t, n, r) {
1261
- let i = Et(e, r);
1250
+ let i = Tt(e, r);
1262
1251
  return Sn(e, t).map((e) => {
1263
1252
  if (i) return {
1264
1253
  ...e,
1265
1254
  domain: i,
1266
1255
  fixed: !0
1267
1256
  };
1268
- let t = e.seriesList.map((e) => Dt(e, n, r) ?? e.yDomain), a = e.seriesList.some((e) => Dt(e, n, r));
1257
+ let t = e.seriesList.map((e) => Et(e, n, r) ?? e.yDomain), a = e.seriesList.some((e) => Et(e, n, r));
1269
1258
  return a ? {
1270
1259
  ...e,
1271
- domain: kt(t),
1260
+ domain: Ot(t),
1272
1261
  fixed: a
1273
1262
  } : e;
1274
1263
  });
@@ -1277,7 +1266,7 @@ function wn(e, t = !0, n, r, i = 10) {
1277
1266
  let a = typeof i == "number" && Number.isFinite(i) ? Math.max(2, Math.floor(i)) : 10, o = V(e, [1, 0]);
1278
1267
  t && o.nice(a);
1279
1268
  let [s, c] = o.domain(), l = n ?? o.ticks(a), u = Math.max(...l);
1280
- return { tickTextWidth: Math.max(1, ...l.map((e) => st(e, {
1269
+ return { tickTextWidth: Math.max(1, ...l.map((e) => ot(e, {
1281
1270
  axisMin: s,
1282
1271
  axisMax: c,
1283
1272
  topTickValue: u,
@@ -1509,10 +1498,10 @@ function Nn(e) {
1509
1498
  let { emit: t, hoverState: n, suppressHoverUntilMove: r, hoverThrottle: i, selection: a, trackLayouts: o, innerWidth: s, resolvedChartLeftMargin: c, titleAreaHeight: l, chartTopMargin: u, sharedOverlayElement: d, isPresentationMode: f, updateViewportDrag: p, resolveTrackAtPointer: m } = e, h = () => i.cancel(), g = (e) => i.schedule(e), _ = (e) => n.points.length === e.length && e.every((e, t) => {
1510
1499
  let r = n.points[t];
1511
1500
  return r?.id === e.id && r.trackIndex === e.trackIndex && r.point === e.point;
1512
- }), v = (e, r, i) => {
1513
- f.value || (_(e) || (n.points = e), n.trackIndex = r, n.position = i, t("point-hover", n.points[0]?.point ?? null));
1501
+ }), v = (e, r, i, a) => {
1502
+ f.value || (_(e) || (n.points = e), n.trackIndex = r, n.queryX = i, n.position = a, t("point-hover", n.points.find((e) => e.point)?.point ?? null));
1514
1503
  }, y = () => {
1515
- h(), n.points = [], n.trackIndex = null, t("point-hover", null);
1504
+ h(), n.points = [], n.trackIndex = null, n.queryX = null, t("point-hover", null);
1516
1505
  }, b = () => {
1517
1506
  f.value || y();
1518
1507
  }, x = (e, t, n) => ({
@@ -1527,7 +1516,10 @@ function Nn(e) {
1527
1516
  r.value = !0, y();
1528
1517
  }, C = (e = !1) => {
1529
1518
  r.value = !e, y();
1530
- }, w = () => r.value ? (r.value = !1, y(), !0) : !1, T = (e, t) => e.points[Mn.center(e.points, t)];
1519
+ }, w = () => r.value ? (r.value = !1, y(), !0) : !1, T = (e, t) => {
1520
+ let n = e.points[0], r = e.points.at(-1);
1521
+ if (!(!n || !r || t < n.x || t > r.x)) return e.points[Mn.center(e.points, t)];
1522
+ };
1531
1523
  return {
1532
1524
  cancelPendingHover: h,
1533
1525
  clearHover: y,
@@ -1547,11 +1539,8 @@ function Nn(e) {
1547
1539
  !d || !d.hasVisibleSeries || g(() => {
1548
1540
  let e = o.value[t];
1549
1541
  if (!e || !e.hasVisibleSeries || e !== d) return;
1550
- let n = d.xScale.invert(Math.max(0, Math.min(s.value, r))), a = d.seriesList.flatMap((e) => {
1551
- let r = T(e, n);
1552
- return r ? [x(e, t, r)] : [];
1553
- });
1554
- v(a, t, {
1542
+ let n = d.xScale.invert(Math.max(0, Math.min(s.value, r))), a = d.seriesList.map((e) => x(e, t, T(e, n) ?? null));
1543
+ v(a, t, n, {
1555
1544
  x: c.value + d.left + r,
1556
1545
  y: l.value + u.value + d.top + i
1557
1546
  });
@@ -1566,13 +1555,10 @@ function Nn(e) {
1566
1555
  if (w() || !d.value || !o.value.length) return;
1567
1556
  let [t, n] = B(e, d.value);
1568
1557
  g(() => {
1569
- let e = m(t, n) ?? o.value.find((e) => e.hasVisibleSeries);
1570
- if (!e) return;
1571
- let r = Math.max(0, Math.min(e.width, t - e.left)), i = e.xScale.invert(r), a = o.value.flatMap((e) => e.seriesList.flatMap((t) => {
1572
- let n = T(t, i);
1573
- return n ? [x(t, e.index, n)] : [];
1574
- }));
1575
- v(a, null, {
1558
+ let e = m(t, n), r = (e?.hasVisibleSeries ? e : void 0) ?? o.value.find((e) => e.hasVisibleSeries);
1559
+ if (!r) return;
1560
+ let i = Math.max(0, Math.min(r.width, t - r.left)), a = r.xScale.invert(i), s = o.value.flatMap((e) => e.seriesList.map((t) => x(t, e.index, T(t, a) ?? null)));
1561
+ v(s, null, a, {
1576
1562
  x: c.value + t,
1577
1563
  y: l.value + u.value + n
1578
1564
  });
@@ -1674,7 +1660,7 @@ function Wn(e, t, n) {
1674
1660
  let r = Bn(e), i = r[1] - r[0];
1675
1661
  if (!Number.isFinite(i) || i <= 0) return 0;
1676
1662
  let a = Number.isFinite(n.minZoomSpan) && (n.minZoomSpan ?? 0) > 0 ? Math.min(i, n.minZoomSpan) : 0, o = Vn(n.minVisiblePoints), s = Un(t, r, o);
1677
- return a > 0 || o > 0 ? Math.max(a, s) : i / yt.DEFAULT_MAX_SCALE;
1663
+ return a > 0 || o > 0 ? Math.max(a, s) : i / vt.DEFAULT_MAX_SCALE;
1678
1664
  }
1679
1665
  function Gn(e, t, n, r) {
1680
1666
  if (r <= 0) return e;
@@ -1698,7 +1684,7 @@ function Kn(e, t, n, r) {
1698
1684
  let o = Gn([Math.max(i[0], Math.min(e[0], e[1])), Math.min(i[1], Math.max(e[0], e[1]))], i, n, Vn(r.minVisiblePoints)), s = Wn(i, n, r), c = Math.max(s, Math.min(a, o[1] - o[0])), l = (o[0] + o[1]) / 2, u = Math.max(i[0], Math.min(l - c / 2, i[1] - c));
1699
1685
  return [u, u + c];
1700
1686
  }
1701
- function $(e, t, n) {
1687
+ function qn(e, t, n) {
1702
1688
  let r = t[1] - t[0], i = e[1] - e[0];
1703
1689
  if (!Number.isFinite(r) || !Number.isFinite(i) || r <= 0 || i <= 0) return W;
1704
1690
  let a = r / i, o = V(t, [0, n]);
@@ -1706,7 +1692,7 @@ function $(e, t, n) {
1706
1692
  }
1707
1693
  //#endregion
1708
1694
  //#region src/components/interaction/viewportDomain.ts
1709
- function qn(e) {
1695
+ function Jn(e) {
1710
1696
  return (t, n) => {
1711
1697
  if (!(!Number.isFinite(t[0]) || !Number.isFinite(t[1]) || t[0] === t[1])) {
1712
1698
  if (e.cancelPendingZoom(), e.cancelViewportDrag(), e.props.displayMode === "independent") {
@@ -1715,11 +1701,11 @@ function qn(e) {
1715
1701
  let r = e.trackLayouts.value.find((e) => e.index === n);
1716
1702
  if (!r) return;
1717
1703
  let a = e.resolveInitialTrackDomain(r), o = Kn(t, a, [r.seriesList], e.props);
1718
- i[n] = $(o, a, r.width);
1704
+ i[n] = qn(o, a, r.width);
1719
1705
  }), e.independentTransforms.value = i;
1720
1706
  } else {
1721
1707
  let n = e.initialXDomain.value, r = Kn(t, n, e.trackLayouts.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), e.props);
1722
- e.sharedTransform.value = $(r, n, e.innerWidth.value);
1708
+ e.sharedTransform.value = qn(r, n, e.innerWidth.value);
1723
1709
  }
1724
1710
  e.clearHover(), e.editorSeriesOptions.value = [], d(e.configureZoom);
1725
1711
  }
@@ -1727,7 +1713,7 @@ function qn(e) {
1727
1713
  }
1728
1714
  //#endregion
1729
1715
  //#region src/components/interaction/useWaveformViewport.ts
1730
- function Jn(e) {
1716
+ function Yn(e) {
1731
1717
  let { props: n, emit: r, selection: i, spacePressed: a, trackLayouts: o, chartTracks: s, initialXDomain: c, innerWidth: l, innerHeight: u, sharedOverlayElement: f, sharedTransform: p, independentTransforms: m, sharedYDomains: h, independentYDomains: g, isZoomMode: _, isPresentationMode: v, editorSeriesOptions: y, resolveInitialTrackDomain: b, canZoomTrack: S, canZoomSharedTracks: C, configureZoom: w, cancelPendingZoom: T, clearHover: E, resolveTrackAtPointer: D } = e, O = x(), k = (e, t) => {
1732
1718
  let n = O.value, r = t?.currentTarget;
1733
1719
  Pn(n, e), r && r !== n && Pn(r, e);
@@ -1750,7 +1736,7 @@ function Jn(e) {
1750
1736
  }), M = (e, t) => {
1751
1737
  let n = e[1] - e[0];
1752
1738
  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;
1753
- }, N = () => Object.fromEntries(o.value.map((e) => [e.series.trackId ?? e.series.id, e.yScale.domain()])), P = (e, t, r) => {
1739
+ }, N = () => Object.fromEntries(o.value.filter((e) => e.hasVisibleSeries).map((e) => [e.series?.trackId ?? e.series?.id ?? e.id, e.yScale.domain()])), P = (e, t, r) => {
1754
1740
  if (v.value) return;
1755
1741
  let s = n.pannable && a.value;
1756
1742
  if (!n.zoomable && !s || !_.value || e.button !== 0) return;
@@ -1772,19 +1758,19 @@ function Jn(e) {
1772
1758
  g.accepted && (i.value = g.state, O.value = c, c.setPointerCapture?.(e.pointerId), E(), e.preventDefault());
1773
1759
  }, F = (e) => {
1774
1760
  if (!f.value) return;
1775
- let [t, n] = B(e, f.value), r = D(t, n) ?? o.value.find((e) => e.hasVisibleSeries);
1776
- r && P(e, r.index, !1);
1761
+ let [t, n] = B(e, f.value), r = D(t, n), i = (r?.hasVisibleSeries ? r : void 0) ?? o.value.find((e) => e.hasVisibleSeries);
1762
+ i && P(e, i.index, !1);
1777
1763
  }, I = (e, t) => {
1778
1764
  let i = t.width || 1, a = t.height || 1, u = e.currentX - e.startX, d = e.currentY - e.startY, f = e.xDomain[1] - e.xDomain[0], _ = e.independent ? b(t) : c.value, v = M([e.xDomain[0] - u / i * f, e.xDomain[1] - u / i * f], _);
1779
1765
  if (e.independent) {
1780
1766
  let e = [...m.value];
1781
- e[t.index] = $(v, _, i), m.value = e;
1782
- } else p.value = $(v, _, l.value);
1783
- let y = e.independent ? [t] : o.value, x = { ...g.value }, S = { ...h.value };
1767
+ e[t.index] = qn(v, _, i), m.value = e;
1768
+ } else p.value = qn(v, _, l.value);
1769
+ let y = e.independent ? [t] : o.value.filter((e) => e.hasVisibleSeries), x = { ...g.value }, S = { ...h.value };
1784
1770
  y.forEach((t) => {
1785
1771
  let r = s.value.find((e) => e.id === t.id);
1786
- if (r && Ot(r, n.yDomain, n.yDomains)) return;
1787
- let i = t.series.trackId ?? t.series.id, o = e.yDomains[i] ?? t.yScale.domain(), c = r?.yDomain ?? o, l = o[1] - o[0], u = M([o[0] + d / a * l, o[1] + d / a * l], c);
1772
+ if (r && Dt(r, n.yDomain, n.yDomains)) return;
1773
+ 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 = M([o[0] + d / a * l, o[1] + d / a * l], c);
1788
1774
  e.independent ? x[t.index] = u : S[i] = u;
1789
1775
  }), e.independent ? g.value = x : h.value = S, r("zoom-change", v);
1790
1776
  }, L = (e) => {
@@ -1815,11 +1801,11 @@ function Jn(e) {
1815
1801
  let u = e.independent ? b(t) : c.value, f = e.independent ? [t.seriesList] : o.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), h = Kn([t.xScale.invert(a), t.xScale.invert(s)], u, f, n);
1816
1802
  if (e.independent) {
1817
1803
  let e = [...m.value];
1818
- e[t.index] = $(h, u, t.width), m.value = e;
1819
- } else p.value = $(h, u, l.value);
1820
- let g = e.independent ? [t] : o.value, _ = Object.fromEntries(g.map((e) => [e.series.trackId ?? e.series.id, e.yScale.domain()]));
1804
+ e[t.index] = qn(h, u, t.width), m.value = e;
1805
+ } else p.value = qn(h, u, l.value);
1806
+ 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()]));
1821
1807
  if (r("zoom-change", h), e.independent) {
1822
- let e = _[t.series.trackId ?? t.series.id];
1808
+ let e = _[t.series?.trackId ?? t.series?.id ?? t.id];
1823
1809
  r("zoom-end", {
1824
1810
  start: h[0],
1825
1811
  end: h[1],
@@ -1889,7 +1875,7 @@ function Jn(e) {
1889
1875
  finishViewportDrag: V,
1890
1876
  cancelViewportDrag: R,
1891
1877
  resetViewport: H,
1892
- setViewportDomain: qn({
1878
+ setViewportDomain: Jn({
1893
1879
  props: n,
1894
1880
  trackLayouts: o,
1895
1881
  initialXDomain: c,
@@ -1921,7 +1907,7 @@ function Jn(e) {
1921
1907
  }
1922
1908
  //#endregion
1923
1909
  //#region src/components/utils/useAnimationFrameThrottle.ts
1924
- function Yn() {
1910
+ function Xn() {
1925
1911
  let e = null, t = null;
1926
1912
  function n(n) {
1927
1913
  t = n, e === null && (e = requestAnimationFrame(() => {
@@ -1950,8 +1936,8 @@ function Yn() {
1950
1936
  }
1951
1937
  //#endregion
1952
1938
  //#region src/components/interaction/useWaveformZoom.ts
1953
- function Xn(e) {
1954
- 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 = Yn(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Set(), D, O = () => v.schedule(j), k = (e) => {
1939
+ function Zn(e) {
1940
+ 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 = Xn(), y = !1, b = null, x = null, S = null, C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Set(), D, O = () => v.schedule(j), k = (e) => {
1955
1941
  y || m.value || (g(), b = e.transform, x = "wheel", O(), P());
1956
1942
  }, A = (e, t) => {
1957
1943
  y || m.value || (g(), C.set(t, e.transform), w.set(t, "wheel"), O(), P());
@@ -2020,7 +2006,7 @@ function Xn(e) {
2020
2006
  } else n("zoom-end", {
2021
2007
  start: e[0],
2022
2008
  end: e[1],
2023
- yRanges: Object.fromEntries(r.map((e) => [e.series.trackId ?? e.series.id, e.yScale.domain()])),
2009
+ yRanges: Object.fromEntries(r.map((e) => [e.series?.trackId ?? e.series?.id ?? e.id, e.yScale.domain()])),
2024
2010
  gesture: "wheel"
2025
2011
  });
2026
2012
  S = null;
@@ -2038,19 +2024,19 @@ function Xn(e) {
2038
2024
  F(), r.value?.querySelectorAll(".waveform-chart__overlay").forEach((e) => H(e).on(".zoom", null)), _.clear();
2039
2025
  }, L = (e, n) => {
2040
2026
  let r = Math.abs(e[1] - e[0]);
2041
- if (!Number.isFinite(r) || r <= 0) return yt.MIN_SCALE;
2027
+ if (!Number.isFinite(r) || r <= 0) return vt.MIN_SCALE;
2042
2028
  let i = Wn(e, n, t);
2043
- return Math.max(yt.MIN_SCALE, i > 0 ? r / i : yt.DEFAULT_MAX_SCALE);
2044
- }, R = (e, n, r, i) => $(Kn(e.rescaleX(V(n, [0, r])).domain(), n, i, t), n, r), z = (e) => {
2029
+ return Math.max(vt.MIN_SCALE, i > 0 ? r / i : vt.DEFAULT_MAX_SCALE);
2030
+ }, R = (e, n, r, i) => qn(Kn(e.rescaleX(V(n, [0, r])).domain(), n, i, t), n, r), z = (e) => {
2045
2031
  let n = Number(t.minVisiblePoints);
2046
- return Jt(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
2032
+ return qt(e.seriesList, e.xScale.domain(), Number.isFinite(n) && n > 0 ? Math.ceil(n) + 1 : n);
2047
2033
  }, B = () => {
2048
2034
  let e = s.value.filter((e) => e.hasVisibleSeries);
2049
2035
  return e.length > 0 && e.every(z);
2050
2036
  }, U = (e, t) => {
2051
2037
  if (e.type !== "wheel") return !1;
2052
2038
  let n = e.deltaY;
2053
- return n < 0 ? t : n > 0 && G(e.currentTarget).k > yt.MIN_SCALE;
2039
+ return n < 0 ? t : n > 0 && G(e.currentTarget).k > vt.MIN_SCALE;
2054
2040
  };
2055
2041
  return {
2056
2042
  cancelPendingZoom: F,
@@ -2090,13 +2076,13 @@ function Xn(e) {
2090
2076
  }
2091
2077
  //#endregion
2092
2078
  //#region src/components/core/useWaveformChartLifecycle.ts
2093
- function Zn(e) {
2079
+ function Qn(e) {
2094
2080
  return e instanceof Element && !!e.closest("button, input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])");
2095
2081
  }
2096
- function Qn(e) {
2082
+ function $n(e) {
2097
2083
  let { props: t, emit: n, container: r, titleMeasureElement: i, resizeObserver: a, observedWidth: o, observedHeight: s, measuredTitleWidth: c, measuredTitleHeight: l, resolvedTitleText: u, titleAreaReserved: f, titleMeasureStyle: p, spacePressed: g, pointerInsideChart: _, currentPage: v, pageCount: y, pagedTracks: b, gridOptions: x, chartSeries: S, chartTracks: C, trackLayouts: w, innerWidth: T, innerHeight: D, sharedZoomDomain: O, initialXDomain: k, sharedTransform: A, activeInteractionMode: j, hiddenSeriesIdSet: M, internalHiddenSeriesIds: N, independentTransforms: P, independentYDomains: F, resolveInitialTrackDomain: I, annotationInteraction: L, editorSeriesOptions: R, isPresentationMode: z, clearHover: B, cancelAnnotation: V, configureZoom: H, resetViewport: U, cancelViewportDrag: ee, cancelPendingHover: te, clearZoomBindings: ne } = e;
2098
2084
  function re(e) {
2099
- z.value || e.code !== "Space" || !t.pannable || !_.value || Zn(e.target) || (g.value = !0, e.preventDefault());
2085
+ z.value || e.code !== "Space" || !t.pannable || !_.value || Qn(e.target) || (g.value = !0, e.preventDefault());
2100
2086
  }
2101
2087
  function ie(e) {
2102
2088
  e.code === "Space" && (g.value = !1);
@@ -2130,11 +2116,11 @@ function Qn(e) {
2130
2116
  let r = q?.[n.index];
2131
2117
  if (!r) return;
2132
2118
  let i = I(n), a = Kn(r, i, [n.seriesList], t);
2133
- e[n.index] = $(a, i, n.width);
2119
+ e[n.index] = qn(a, i, n.width);
2134
2120
  }), P.value = e, q = void 0;
2135
2121
  } else if (t.displayMode !== "independent" && K) {
2136
2122
  let e = k.value, n = w.value.filter((e) => e.hasVisibleSeries).map((e) => e.seriesList), r = Kn(K, e, n, t);
2137
- A.value = $(r, e, T.value), K = void 0;
2123
+ A.value = qn(r, e, T.value), K = void 0;
2138
2124
  }
2139
2125
  H();
2140
2126
  });
@@ -2219,64 +2205,66 @@ function Qn(e) {
2219
2205
  }
2220
2206
  //#endregion
2221
2207
  //#region src/components/core/useWaveformData.ts
2222
- function $n(e, t = !1) {
2208
+ function er(e, t = !1) {
2223
2209
  let n = Infinity, r = -Infinity, i = Infinity, a = -Infinity, o = !1;
2224
2210
  for (let s of e) if (s.x < n && (n = s.x), s.x > r && (r = s.x), s.y < i && (i = s.y), s.y > a && (a = s.y), t) {
2225
- let e = Ft(s);
2211
+ let e = Pt(s);
2226
2212
  (e.lower !== 0 || e.upper !== 0) && (o = !0), i = Math.min(i, s.y - e.lower), a = Math.max(a, s.y + e.upper);
2227
2213
  }
2228
2214
  return {
2229
- xDomain: Xe(Number.isFinite(n) ? [n, r] : []),
2230
- yDomain: Xe(Number.isFinite(i) ? [i, a] : []),
2215
+ xDomain: $(Number.isFinite(n) ? [n, r] : []),
2216
+ yDomain: $(Number.isFinite(i) ? [i, a] : []),
2231
2217
  hasErrorPoints: o
2232
2218
  };
2233
2219
  }
2234
- function er(e) {
2235
- return Lt(e).map((e) => {
2236
- let t = $n(e.points, e.errorBar.visible);
2220
+ function tr(e) {
2221
+ return It(e).map((e) => {
2222
+ let t = er(e.points, e.errorBar.visible);
2237
2223
  return {
2238
2224
  ...e,
2239
2225
  ...t
2240
2226
  };
2241
2227
  });
2242
2228
  }
2243
- function tr(e, t, n) {
2244
- let r = x(er(e()));
2229
+ function nr(e, t, n) {
2230
+ let r = x(tr(e()));
2245
2231
  return E(e, (e) => {
2246
- t(), r.value = er(e), n();
2232
+ t(), r.value = tr(e), n();
2247
2233
  }), r;
2248
2234
  }
2249
2235
  //#endregion
2250
2236
  //#region src/components/core/useWaveformLayout.ts
2251
- function nr(e) {
2237
+ function rr(e) {
2252
2238
  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 } = e, m = t(() => r.value.map((e, t) => ({
2253
2239
  ...e,
2254
- color: e.color ?? (t === 0 ? n.lineColor : St[t % St.length])
2255
- }))), h = t(() => {
2240
+ color: e.color ?? (t === 0 ? n.lineColor : xt[t % xt.length])
2241
+ }))), h = t(() => tn(n.grid)), g = t(() => {
2256
2242
  let e = /* @__PURE__ */ new Map();
2257
- return m.value.forEach((t) => {
2243
+ m.value.forEach((t) => {
2258
2244
  let n = t.trackId || t.id, r = e.get(n);
2259
2245
  r ? r.push(t) : e.set(n, [t]);
2260
- }), Array.from(e, ([e, t]) => {
2261
- let n = t.filter((e) => !a.value.has(e.id)), r = [], i = [];
2262
- return n.forEach((e) => {
2263
- r.push(e.xDomain[0], e.xDomain[1]), i.push(e.yDomain[0], e.yDomain[1]);
2246
+ });
2247
+ let t = h.value.trackOrder ?? [];
2248
+ return [...t, ...Array.from(e.keys()).filter((e) => !t.includes(e))].map((t) => {
2249
+ let n = e.get(t) ?? [], r = n.filter((e) => !a.value.has(e.id)), i = [], o = [];
2250
+ return r.forEach((e) => {
2251
+ i.push(e.xDomain[0], e.xDomain[1]), o.push(e.yDomain[0], e.yDomain[1]);
2264
2252
  }), {
2265
- id: e,
2266
- series: t,
2267
- visibleSeries: n,
2268
- xDomain: Xe(r),
2269
- yDomain: Xe(i)
2253
+ id: t,
2254
+ series: n,
2255
+ visibleSeries: r,
2256
+ xDomain: i.length ? $(i) : [0, 1],
2257
+ yDomain: o.length ? $(o) : [0, 1]
2270
2258
  };
2271
2259
  });
2272
- }), g = t(() => tn(n.grid)), _ = t(() => Wt(n.rendering)), v = t(() => rn(h.value.length, g.value)), y = t(() => an(h.value, i.value, g.value)), b = t(() => {
2273
- let e = h.value.filter((e) => e.visibleSeries.length > 0).flatMap((e) => Cn(e, n.overlayMode, n.yDomain, n.yDomains)).map((e) => wn(e.domain, !0, void 0, e.seriesList[0]?.unit, n.axes?.y?.splitNumber).tickTextWidth), t = Math.max(7, ...e), r = t + 7 + 4, i = -(7 + t + 6 + 24 / 2);
2260
+ }), _ = t(() => Ut(n.rendering)), v = t(() => rn(g.value.length, h.value)), y = t(() => an(g.value, i.value, h.value)), b = t(() => {
2261
+ let e = g.value.filter((e) => e.visibleSeries.length > 0).flatMap((e) => Cn(e, n.overlayMode, n.yDomain, n.yDomains)).map((e) => wn(e.domain, !0, void 0, e.seriesList[0]?.unit, n.axes?.y?.splitNumber).tickTextWidth), t = Math.max(7, ...e), r = t + 7 + 4, i = -(7 + t + 0 + 12 / 2);
2274
2262
  return {
2275
2263
  tickClearance: r,
2276
- fullClearance: t + 7 + 6 + 24 + 4,
2264
+ fullClearance: t + 7 + 0 + 12 + 4,
2277
2265
  labelCenterX: i
2278
2266
  };
2279
- }), x = t(() => h.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), S = t(() => h.value.some((e) => e.visibleSeries.length > 0)), C = t(() => Math.max(vt.left, x.value ? b.value.fullClearance : S.value ? b.value.tickClearance : 0)), w = t(() => h.value.reduce((e, t) => {
2267
+ }), x = t(() => g.value.some((e) => e.visibleSeries.length === 1 && !!(e.visibleSeries[0]?.name.trim() || n.yLabel))), S = t(() => g.value.some((e) => e.visibleSeries.length > 0)), C = t(() => Math.max(_t.left, x.value ? b.value.fullClearance : S.value ? b.value.tickClearance : 0)), w = t(() => g.value.reduce((e, t) => {
2280
2268
  let r = Dn(t, n.overlayMode, n.yDomain, n.yDomains, n.axes?.y?.splitNumber);
2281
2269
  return {
2282
2270
  left: Math.max(e.left, r.left),
@@ -2285,29 +2273,29 @@ function nr(e) {
2285
2273
  }, {
2286
2274
  left: 0,
2287
2275
  right: 0
2288
- })), T = t(() => n.overlayMode === "multi-axis" ? Math.max(C.value, w.value.left) : C.value), E = t(() => n.overlayMode === "multi-axis" ? Math.max(vt.right, w.value.right) : vt.right), D = t(() => Math.max(0, o.value - T.value - E.value)), O = t(() => {
2289
- let e = on(n.displayMode), t = g.value.columnCount, r = t > 1, i = Math.max(e, b.value.fullClearance), a = Math.max(e, b.value.tickClearance), o = (D.value - i * Math.max(0, t - 1)) / t >= 120;
2276
+ })), T = t(() => n.overlayMode === "multi-axis" ? Math.max(C.value, w.value.left) : C.value), E = t(() => n.overlayMode === "multi-axis" ? Math.max(_t.right, w.value.right) : _t.right), D = t(() => Math.max(0, o.value - T.value - E.value)), O = t(() => {
2277
+ let e = on(n.displayMode), t = h.value.columnCount, r = t > 1, i = Math.max(e, b.value.fullClearance), a = Math.max(e, b.value.tickClearance), o = (D.value - i * Math.max(0, t - 1)) / t >= 120;
2290
2278
  return {
2291
2279
  horizontalGap: n.overlayMode === "multi-axis" && r && S.value ? Math.max(e, w.value.left + w.value.right) : r && S.value ? x.value && o ? i : a : e,
2292
2280
  hideSecondaryLabels: n.overlayMode !== "multi-axis" && r && x.value && !o
2293
2281
  };
2294
2282
  }), k = t(() => m.value.length > 0), A = t(() => D.value > 0 && s.value > 0), j = t(() => n.xLabel ?? `时间(${n.timeUnit})`), M = t(() => n.interactionMode), N = t(() => M.value === "zoom" || M.value === void 0), P = t(() => {
2295
2283
  let e = [];
2296
- return h.value.forEach((t) => {
2284
+ return g.value.forEach((t) => {
2297
2285
  t.visibleSeries.length && e.push(t.xDomain[0], t.xDomain[1]);
2298
- }), Xe(e);
2286
+ }), $(e);
2299
2287
  }), F = t(() => {
2300
2288
  let e = n.initialXDomain;
2301
2289
  return e && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1] ? dn(e[0] < e[1] ? e : [e[1], e[0]], n.xDomainStrategy, !0) : dn(P.value, n.xDomainStrategy);
2302
2290
  }), I = (e) => {
2303
- let t = n.initialXDomains?.[e.series.trackId ?? e.series.id] ?? n.initialXDomains?.[e.series.id] ?? n.initialXDomain;
2304
- return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ? dn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0) : dn(Xe(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy);
2305
- }, L = t(() => l.value.rescaleX(V(F.value, [0, D.value])).domain()), R = t(() => sn(D.value, s.value, g.value, n.displayMode, y.value.map(Boolean), O.value.horizontalGap).map((e, t) => ({
2291
+ let t = n.initialXDomains?.[e.series?.trackId ?? e.series?.id ?? e.id] ?? (e.series ? n.initialXDomains?.[e.series.id] : void 0) ?? n.initialXDomain;
2292
+ return t && Number.isFinite(t[0]) && Number.isFinite(t[1]) && t[0] !== t[1] ? dn(t[0] < t[1] ? t : [t[1], t[0]], n.xDomainStrategy, !0) : dn($(e.seriesList.flatMap((e) => e.xDomain)), n.xDomainStrategy);
2293
+ }, L = t(() => l.value.rescaleX(V(F.value, [0, D.value])).domain()), R = t(() => sn(D.value, s.value, h.value, n.displayMode, y.value.map(Boolean), O.value.horizontalGap).map((e, t) => ({
2306
2294
  ...e,
2307
2295
  series: y.value[t]
2308
2296
  }))), z = t(() => pn({
2309
2297
  cells: R.value,
2310
- grid: g.value,
2298
+ grid: h.value,
2311
2299
  displayMode: n.displayMode,
2312
2300
  overlayMode: n.overlayMode,
2313
2301
  independentTransforms: u.value,
@@ -2317,7 +2305,7 @@ function nr(e) {
2317
2305
  xDomainStrategy: n.xDomainStrategy,
2318
2306
  fixedYDomain: n.yDomain,
2319
2307
  fixedYDomains: n.yDomains,
2320
- yDomains: n.displayMode === "independent" ? Object.fromEntries(h.value.flatMap((e, t) => {
2308
+ yDomains: n.displayMode === "independent" ? Object.fromEntries(g.value.flatMap((e, t) => {
2321
2309
  let n = f.value[t];
2322
2310
  return n ? [[e.id, n]] : [];
2323
2311
  })) : d.value,
@@ -2335,8 +2323,8 @@ function nr(e) {
2335
2323
  })), H = (e, t) => e.seriesPaths.find((e) => e.series.id === t)?.yScale ?? e.yScale, U = t(() => z.value.flatMap(B));
2336
2324
  return {
2337
2325
  chartSeries: m,
2338
- chartTracks: h,
2339
- gridOptions: g,
2326
+ chartTracks: g,
2327
+ gridOptions: h,
2340
2328
  pageCount: v,
2341
2329
  pagedTracks: y,
2342
2330
  resolvedChartLeftMargin: T,
@@ -2366,17 +2354,17 @@ function nr(e) {
2366
2354
  } : void 0;
2367
2355
  }),
2368
2356
  resolveFrameNumber: (e) => {
2369
- if (!(n.frameNumber === void 0 || n.frameNumber === null)) return h.value.length === 1 ? n.frameNumber : typeof n.frameNumber == "number" ? n.frameNumber + e : `${n.frameNumber}-${e + 1}`;
2357
+ if (!(n.frameNumber === void 0 || n.frameNumber === null)) return g.value.length === 1 ? n.frameNumber : typeof n.frameNumber == "number" ? n.frameNumber + e : `${n.frameNumber}-${e + 1}`;
2370
2358
  }
2371
2359
  };
2372
2360
  }
2373
- var rr = 1e-6;
2374
- function ir(e) {
2361
+ var ir = 1e-6;
2362
+ function ar(e) {
2375
2363
  return Number.isFinite(e) ? Math.max(1, e) : 1;
2376
2364
  }
2377
- function ar({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
2378
- let i = ir(e), a = ir(t), o = ir(n), s = Number.isFinite(r) ? r : 0, c = s * Math.PI / 180, l = Math.abs(Math.cos(c)), u = Math.abs(Math.sin(c)), d = (s % 360 + 360) % 360;
2379
- if (!(d > rr && Math.abs(d - 360) > rr)) {
2365
+ function or({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r }) {
2366
+ let i = ar(e), a = ar(t), o = ar(n), s = Number.isFinite(r) ? r : 0, c = s * Math.PI / 180, l = Math.abs(Math.cos(c)), u = Math.abs(Math.sin(c)), d = (s % 360 + 360) % 360;
2367
+ if (!(d > ir && Math.abs(d - 360) > ir)) {
2380
2368
  let e = Math.max(1, Math.ceil(i / o)), t = o, n = a * e;
2381
2369
  return {
2382
2370
  textWidth: t,
@@ -2401,7 +2389,7 @@ function ar({ naturalWidth: e, naturalHeight: t, availableWidth: n, rotation: r
2401
2389
  }
2402
2390
  //#endregion
2403
2391
  //#region src/components/core/useWaveformPresentation.ts
2404
- function or(e) {
2392
+ function sr(e) {
2405
2393
  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(() => ({
2406
2394
  width: l.value === void 0 ? "100%" : `${l.value}px`,
2407
2395
  height: u.value === void 0 ? "100%" : `${u.value}px`
@@ -2409,9 +2397,9 @@ function or(e) {
2409
2397
  let e = n.zeroLine.width;
2410
2398
  return {
2411
2399
  visible: n.zeroLine.visible === !0,
2412
- color: n.zeroLine.color || wt.COLOR,
2413
- width: typeof e == "number" && Number.isFinite(e) && e > 0 ? e : wt.WIDTH,
2414
- dash: n.zeroLine.dash ?? wt.DASH
2400
+ color: n.zeroLine.color || Ct.COLOR,
2401
+ width: typeof e == "number" && Number.isFinite(e) && e > 0 ? e : Ct.WIDTH,
2402
+ dash: n.zeroLine.dash ?? Ct.DASH
2415
2403
  };
2416
2404
  }), _ = 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) => {
2417
2405
  let t = n.legend.orientation ?? "auto";
@@ -2433,10 +2421,10 @@ function or(e) {
2433
2421
  fontStyle: n.title?.textStyle?.fontStyle ?? "normal",
2434
2422
  textDecoration: n.title?.textStyle?.textDecoration ?? "none",
2435
2423
  letterSpacing: n.title?.textStyle?.letterSpacing ?? "normal",
2436
- lineHeight: String(xt)
2424
+ lineHeight: String(bt)
2437
2425
  })), A = t(() => {
2438
2426
  let e = Number.parseFloat(n.title?.textStyle?.letterSpacing ?? ""), t = Number.isFinite(e) ? Math.max(0, C.value.length - 1) * e : 0;
2439
- return Math.max(1, C.value.length * E.value * bt + t);
2427
+ return Math.max(1, C.value.length * E.value * yt + t);
2440
2428
  }), j = t(() => {
2441
2429
  let e = d.value - 48;
2442
2430
  return e > 0 ? e : A.value;
@@ -2446,14 +2434,14 @@ function or(e) {
2446
2434
  maxWidth: O.value ? "none" : `${j.value}px`,
2447
2435
  whiteSpace: O.value ? "nowrap" : "normal",
2448
2436
  overflowWrap: O.value ? "normal" : "anywhere"
2449
- })), N = t(() => ar({
2437
+ })), N = t(() => or({
2450
2438
  naturalWidth: a.value || A.value,
2451
2439
  naturalHeight: o.value || E.value * 1.2,
2452
2440
  availableWidth: j.value,
2453
2441
  rotation: D.value
2454
2442
  })), P = t(() => w.value ? N.value.areaHeight : 0), F = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, I = t(() => ({
2455
- top: F(n.plotMargin.top, vt.top),
2456
- bottom: F(n.plotMargin.bottom, vt.bottom)
2443
+ top: F(n.plotMargin.top, _t.top),
2444
+ bottom: F(n.plotMargin.bottom, _t.bottom)
2457
2445
  })), L = t(() => I.value.top), R = t(() => Math.max(0, f.value - P.value - c.value));
2458
2446
  return {
2459
2447
  fixedWidth: l,
@@ -2502,22 +2490,23 @@ function or(e) {
2502
2490
  }
2503
2491
  //#endregion
2504
2492
  //#region src/components/core/useWaveformChartController.ts
2505
- function sr(e, t) {
2493
+ function cr(e, t) {
2506
2494
  e.value = t instanceof Element ? t : void 0;
2507
2495
  }
2508
- function cr(e, t) {
2496
+ function lr(e, t) {
2509
2497
  let n = v(), r = v(), i = v(), a = v(), o = v(0), s = v(0), c = v(0), l = v(0), d = v(0), f = x(W), p = x([]), m = v({}), h = v({}), g = b({
2510
2498
  points: [],
2511
2499
  trackIndex: null,
2500
+ queryX: null,
2512
2501
  position: {
2513
2502
  x: 0,
2514
2503
  y: 0
2515
2504
  }
2516
- }), y = v(!1), S = v(1), w = x(), T = se("waveform-clip"), O = v(new Set(e.defaultHiddenSeriesIds)), k = Ye(), A = v([]), j = Yn();
2505
+ }), y = v(!1), S = v(1), w = x(), T = se("waveform-clip"), O = v(new Set(e.defaultHiddenSeriesIds)), k = Ye(), A = v([]), j = Xn();
2517
2506
  E([() => e.yDomain, () => e.yDomains], () => {
2518
2507
  m.value = {}, h.value = {};
2519
2508
  }, { deep: !0 });
2520
- let M = x(null), N = v(!1), P = v(!1), F = () => void 0, I = () => void 0, L = tr(() => e.data, () => F(), () => I()), R = or({
2509
+ let M = x(null), N = v(!1), P = v(!1), F = () => void 0, I = () => void 0, L = nr(() => e.data, () => F(), () => I()), R = sr({
2521
2510
  props: e,
2522
2511
  observedWidth: o,
2523
2512
  observedHeight: s,
@@ -2525,7 +2514,7 @@ function cr(e, t) {
2525
2514
  measuredTitleHeight: l,
2526
2515
  internalHiddenSeriesIds: O,
2527
2516
  paginationBandHeight: d
2528
- }), { chartWidth: z, chartHeight: B, isCleanView: V, isPresentationMode: H, hiddenSeriesIdSet: U, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = R, K = nr({
2517
+ }), { chartWidth: z, chartHeight: B, isCleanView: V, isPresentationMode: H, hiddenSeriesIdSet: U, resolvedTitleText: ee, titleAreaReserved: te, titleMeasureStyle: ne, titleAreaHeight: re, chartTopMargin: ie, innerHeight: G } = R, K = rr({
2529
2518
  props: e,
2530
2519
  preparedSeries: L,
2531
2520
  currentPage: S,
@@ -2542,7 +2531,7 @@ function cr(e, t) {
2542
2531
  D(() => {
2543
2532
  d.value = oe.value.showPagination && ce.value > 1 && z.value <= 520 ? 40 : 0;
2544
2533
  });
2545
- let ye = Xn({
2534
+ let ye = Zn({
2546
2535
  props: e,
2547
2536
  emit: t,
2548
2537
  svgElement: r,
@@ -2579,7 +2568,7 @@ function cr(e, t) {
2579
2568
  chartTopMargin: ie,
2580
2569
  activeInteractionMode: pe,
2581
2570
  isPresentationMode: H
2582
- }), xe = Jn({
2571
+ }), xe = Yn({
2583
2572
  props: e,
2584
2573
  emit: t,
2585
2574
  selection: M,
@@ -2619,7 +2608,7 @@ function cr(e, t) {
2619
2608
  isPresentationMode: H,
2620
2609
  updateViewportDrag: xe.updateViewportDrag,
2621
2610
  resolveTrackAtPointer: be.resolveTrackAtPointer
2622
- }), Z = Qn({
2611
+ }), Z = $n({
2623
2612
  props: e,
2624
2613
  emit: t,
2625
2614
  container: n,
@@ -2670,7 +2659,7 @@ function cr(e, t) {
2670
2659
  ...be,
2671
2660
  ...xe,
2672
2661
  ...X,
2673
- margin: vt,
2662
+ margin: _t,
2674
2663
  getPageSize: nn,
2675
2664
  currentPage: S,
2676
2665
  selection: M,
@@ -2682,34 +2671,34 @@ function cr(e, t) {
2682
2671
  editorSeriesOptions: A,
2683
2672
  clipPathId: T,
2684
2673
  goToPage: Z.goToPage,
2685
- setContainer: (e) => sr(n, e),
2686
- setSvgElement: (e) => sr(r, e),
2687
- setTitleMeasureElement: (e) => sr(i, e),
2688
- setSharedOverlayElement: (e) => sr(a, e)
2674
+ setContainer: (e) => cr(n, e),
2675
+ setSvgElement: (e) => cr(r, e),
2676
+ setTitleMeasureElement: (e) => cr(i, e),
2677
+ setSharedOverlayElement: (e) => cr(a, e)
2689
2678
  });
2690
2679
  }
2691
2680
  //#endregion
2692
2681
  //#region src/components/annotation/WaveformAnnotationEditor.vue?vue&type=script&setup=true&lang.ts
2693
- var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2682
+ var ur = ["id"], dr = { class: "waveform-annotation-editor__content" }, fr = {
2694
2683
  class: "waveform-annotation-editor__coordinates",
2695
2684
  "aria-label": "标注坐标"
2696
- }, fr = ["aria-invalid"], pr = {
2685
+ }, pr = ["aria-invalid"], mr = {
2697
2686
  class: "waveform-annotation-editor__coordinate-value",
2698
2687
  "aria-hidden": "true"
2699
- }, mr = ["id"], hr = {
2688
+ }, hr = ["id"], gr = {
2700
2689
  key: 0,
2701
2690
  class: "waveform-annotation-editor__series",
2702
2691
  "aria-label": "标注所属波形"
2703
- }, gr = { class: "waveform-annotation-editor__series-label" }, _r = ["value"], vr = ["value"], yr = { key: 1 }, br = { class: "waveform-annotation-editor__field" }, xr = { class: "waveform-annotation-editor__label-row" }, Sr = ["maxlength"], Cr = { class: "waveform-annotation-editor__colors" }, wr = {
2692
+ }, _r = { class: "waveform-annotation-editor__series-label" }, vr = ["value"], yr = ["value"], br = { key: 1 }, xr = { class: "waveform-annotation-editor__field" }, Sr = { class: "waveform-annotation-editor__label-row" }, Cr = ["maxlength"], wr = { class: "waveform-annotation-editor__colors" }, Tr = {
2704
2693
  class: "waveform-annotation-editor__color-field",
2705
2694
  title: "调整标注边框色和透明度"
2706
- }, Tr = {
2695
+ }, Er = {
2707
2696
  class: "waveform-annotation-editor__color-field",
2708
2697
  title: "调整标注文字色和透明度"
2709
- }, Er = {
2698
+ }, Dr = {
2710
2699
  class: "waveform-annotation-editor__color-field",
2711
2700
  title: "调整标注背景色和透明度"
2712
- }, Dr = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
2701
+ }, Or = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
2713
2702
  __name: "WaveformAnnotationEditor",
2714
2703
  props: {
2715
2704
  annotation: {},
@@ -2737,7 +2726,7 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2737
2726
  });
2738
2727
  function F() {
2739
2728
  let e = we(l.annotation.style);
2740
- h.value = l.annotation.text, _.value = ht(l.annotation.x, l.timeUnit), b.value = !1, x.value = e.borderColor, C.value = e.textColor, D.value = e.backgroundColor, d(() => f.value?.focus());
2729
+ h.value = l.annotation.text, _.value = mt(l.annotation.x, l.timeUnit), b.value = !1, x.value = e.borderColor, C.value = e.textColor, D.value = e.backgroundColor, d(() => f.value?.focus());
2741
2730
  }
2742
2731
  E(() => l.annotation.id, F, { immediate: !0 });
2743
2732
  function I(e) {
@@ -2777,9 +2766,9 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2777
2766
  onCancel: o[4] ||= (e) => u("cancel"),
2778
2767
  onOk: R
2779
2768
  }, {
2780
- title: O(() => [a("span", { id: w(m) }, S(l.mode === "add" ? "添加标注" : "编辑标注"), 9, lr)]),
2781
- default: O(() => [a("div", ur, [
2782
- a("div", dr, [
2769
+ title: O(() => [a("span", { id: w(m) }, S(l.mode === "add" ? "添加标注" : "编辑标注"), 9, ur)]),
2770
+ default: O(() => [a("div", dr, [
2771
+ a("div", fr, [
2783
2772
  a("label", {
2784
2773
  class: "waveform-annotation-editor__coordinate-input",
2785
2774
  "aria-invalid": !!j.value
@@ -2802,26 +2791,26 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2802
2791
  "aria-invalid",
2803
2792
  "aria-describedby"
2804
2793
  ]),
2805
- a("code", pr, S(_.value), 1)
2806
- ], 8, fr),
2794
+ a("code", mr, S(_.value), 1)
2795
+ ], 8, pr),
2807
2796
  j.value ? (g(), i("p", {
2808
2797
  key: 0,
2809
2798
  id: `${w(m)}-time-error`,
2810
2799
  class: "waveform-annotation-editor__coordinate-error",
2811
2800
  role: "alert"
2812
- }, S(j.value), 9, mr)) : r("", !0),
2813
- a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, S(w(lt)(l.annotation.y)), 1)])
2801
+ }, S(j.value), 9, hr)) : r("", !0),
2802
+ a("span", null, [o[6] ||= a("b", null, "Y", -1), a("code", null, S(w(ct)(l.annotation.y)), 1)])
2814
2803
  ]),
2815
2804
  o[13] ||= a("p", {
2816
2805
  class: "waveform-annotation-editor__coordinate-hint",
2817
2806
  role: "note"
2818
2807
  }, " 修改 X 轴后失焦时会自动吸附最近的采样点 ", -1),
2819
- P.value ? (g(), i("label", hr, [
2808
+ P.value ? (g(), i("label", gr, [
2820
2809
  a("i", {
2821
2810
  style: p({ backgroundColor: P.value.color }),
2822
2811
  "aria-hidden": "true"
2823
2812
  }, null, 4),
2824
- a("span", gr, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, S(P.value.name), 1)]),
2813
+ a("span", _r, [o[7] ||= a("small", null, "标注波形", -1), a("b", null, S(P.value.name), 1)]),
2825
2814
  l.seriesOptions?.length ? (g(), i("select", {
2826
2815
  key: 0,
2827
2816
  value: l.annotation.seriesId,
@@ -2830,9 +2819,9 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2830
2819
  }, [(g(!0), i(e, null, y(l.seriesOptions, (e) => (g(), i("option", {
2831
2820
  key: e.seriesId,
2832
2821
  value: e.seriesId
2833
- }, S(e.name) + S(e.unit ? ` (${e.unit})` : ""), 9, vr))), 128))], 40, _r)) : P.value.unit ? (g(), i("code", yr, S(P.value.unit), 1)) : r("", !0)
2822
+ }, S(e.name) + S(e.unit ? ` (${e.unit})` : ""), 9, yr))), 128))], 40, vr)) : P.value.unit ? (g(), i("code", br, S(P.value.unit), 1)) : r("", !0)
2834
2823
  ])) : r("", !0),
2835
- a("label", br, [a("span", xr, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, S(N.value) + "/" + S(w(40)), 1)]), k(a("textarea", {
2824
+ a("label", xr, [a("span", Sr, [o[8] ||= a("b", null, "标注文本", -1), a("small", null, S(N.value) + "/" + S(w(40)), 1)]), k(a("textarea", {
2836
2825
  ref_key: "textarea",
2837
2826
  ref: f,
2838
2827
  "onUpdate:modelValue": o[0] ||= (e) => h.value = e,
@@ -2841,10 +2830,10 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2841
2830
  "aria-label": "标注文本",
2842
2831
  placeholder: "输入这处波形的说明",
2843
2832
  onKeydown: z
2844
- }, null, 40, Sr), [[T, h.value]])]),
2845
- a("fieldset", Cr, [
2833
+ }, null, 40, Cr), [[T, h.value]])]),
2834
+ a("fieldset", wr, [
2846
2835
  o[12] ||= a("legend", null, "颜色与透明度", -1),
2847
- a("label", wr, [o[9] ||= a("span", null, "边框色", -1), s(w(J), {
2836
+ a("label", Tr, [o[9] ||= a("span", null, "边框色", -1), s(w(J), {
2848
2837
  "pure-color": x.value,
2849
2838
  "onUpdate:pureColor": o[1] ||= (e) => x.value = e,
2850
2839
  "aria-label": "标注边框色",
@@ -2854,7 +2843,7 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2854
2843
  "disable-alpha": !1,
2855
2844
  "blur-close": !0
2856
2845
  }, null, 8, ["pure-color"])]),
2857
- a("label", Tr, [o[10] ||= a("span", null, "文字色", -1), s(w(J), {
2846
+ a("label", Er, [o[10] ||= a("span", null, "文字色", -1), s(w(J), {
2858
2847
  "pure-color": C.value,
2859
2848
  "onUpdate:pureColor": o[2] ||= (e) => C.value = e,
2860
2849
  "aria-label": "标注文字色",
@@ -2864,7 +2853,7 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2864
2853
  "disable-alpha": !1,
2865
2854
  "blur-close": !0
2866
2855
  }, null, 8, ["pure-color"])]),
2867
- a("label", Er, [o[11] ||= a("span", null, "背景色", -1), s(w(J), {
2856
+ a("label", Dr, [o[11] ||= a("span", null, "背景色", -1), s(w(J), {
2868
2857
  "pure-color": D.value,
2869
2858
  "onUpdate:pureColor": o[3] ||= (e) => D.value = e,
2870
2859
  "aria-label": "标注背景色",
@@ -2879,7 +2868,13 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2879
2868
  _: 1
2880
2869
  }, 8, ["ok-button-props"]));
2881
2870
  }
2882
- }), [["__scopeId", "data-v-42466cf9"]]), Or = { class: "waveform-tooltip__series-content" }, kr = { class: "waveform-tooltip__series-label" }, Ar = { class: "waveform-tooltip__value" }, jr = 12, Mr = 8, Nr = 238, Pr = 560, Fr = 20, Ir = 20, Lr = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
2871
+ }), [["__scopeId", "data-v-42466cf9"]]), kr = { class: "waveform-tooltip__series-content" }, Ar = { class: "waveform-tooltip__series-label" }, jr = {
2872
+ key: 0,
2873
+ class: "waveform-tooltip__value"
2874
+ }, Mr = {
2875
+ key: 1,
2876
+ class: "waveform-tooltip__value waveform-tooltip__value--missing"
2877
+ }, Nr = 12, Pr = 8, Fr = 238, Ir = 560, Lr = 20, Rr = 20, zr = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
2883
2878
  __name: "WaveformTooltip",
2884
2879
  props: {
2885
2880
  visible: { type: Boolean },
@@ -2893,26 +2888,26 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2893
2888
  setup(n) {
2894
2889
  let s = n;
2895
2890
  function c(e, t) {
2896
- let n = Math.max(1, t - Fr - 14), r = Math.max(1, Math.floor(n / 7.2));
2891
+ let n = Math.max(1, t - Lr - 14), r = Math.max(1, Math.floor(n / 7.2));
2897
2892
  return Math.max(1, Math.ceil([...e].length / r));
2898
2893
  }
2899
2894
  function l(e) {
2900
- let t = mt(s.hoveredPoint?.x ?? e.point.x, s.timeUnit);
2901
- return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} (x:${t} y:${ct(e.point.y)})`;
2895
+ let t = e.point ? `(x:${pt(e.point.x, s.timeUnit)} y:${st(e.point.y)})` : "无数据";
2896
+ return `${e.shotNo?.trim() || "未配置炮号"}: ${e.name}${e.unit ? `(${e.unit})` : ""} ${t}`;
2902
2897
  }
2903
2898
  function u(e) {
2904
- return 16 + Ir * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
2899
+ return 16 + Rr * s.seriesPoints.reduce((t, n) => t + c(l(n), e), 0) + 5;
2905
2900
  }
2906
2901
  let d = t(() => {
2907
2902
  if (!s.visible || !s.hoveredPoint) return { display: "none" };
2908
- let e = s.position.x + jr, t = s.position.x - jr - Nr, n = s.containerWidth - Mr - e, r = s.position.x - jr - Mr, i = Math.max(1, Math.min(Pr, s.containerWidth - Mr * 2)), a = e + Nr <= s.containerWidth - Mr ? {
2903
+ let e = s.position.x + Nr, t = s.position.x - Nr - Fr, n = s.containerWidth - Pr - e, r = s.position.x - Nr - Pr, i = Math.max(1, Math.min(Ir, s.containerWidth - Pr * 2)), a = e + Fr <= s.containerWidth - Pr ? {
2909
2904
  left: `${e}px`,
2910
- maxWidth: `${Math.min(Pr, n)}px`
2911
- } : t >= Mr ? {
2912
- right: `${s.containerWidth - s.position.x + jr}px`,
2913
- maxWidth: `${Math.min(Pr, r)}px`
2905
+ maxWidth: `${Math.min(Ir, n)}px`
2906
+ } : t >= Pr ? {
2907
+ right: `${s.containerWidth - s.position.x + Nr}px`,
2908
+ maxWidth: `${Math.min(Ir, r)}px`
2914
2909
  } : {
2915
- left: `${Mr}px`,
2910
+ left: `${Pr}px`,
2916
2911
  maxWidth: `${i}px`
2917
2912
  }, o = Number.parseFloat(a.maxWidth);
2918
2913
  return {
@@ -2927,9 +2922,9 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2927
2922
  }, [(g(!0), i(e, null, y(n.seriesPoints, (t) => (g(), i("span", {
2928
2923
  key: `${t.trackIndex}-${t.name}`,
2929
2924
  class: "waveform-tooltip__series waveform-chart__tooltip-series"
2930
- }, [a("i", { style: p({ backgroundColor: t.color }) }, null, 4), a("span", Or, [a("span", kr, [o(S(t.shotNo?.trim() || "未配置炮号") + ": " + S(t.name), 1), t.unit ? (g(), i(e, { key: 0 }, [o("(" + S(t.unit) + ")", 1)], 64)) : r("", !0)]), a("span", Ar, "(x:" + S(w(mt)(n.hoveredPoint.x, n.timeUnit)) + " y:" + S(w(ct)(t.point.y)) + ")", 1)])]))), 128))], 4)) : r("", !0);
2925
+ }, [a("i", { style: p({ backgroundColor: t.color }) }, null, 4), a("span", kr, [a("span", Ar, [o(S(t.shotNo?.trim() || "未配置炮号") + ": " + S(t.name), 1), t.unit ? (g(), i(e, { key: 0 }, [o("(" + S(t.unit) + ")", 1)], 64)) : r("", !0)]), t.point ? (g(), i("span", jr, "(x:" + S(w(pt)(t.point.x, n.timeUnit)) + " y:" + S(w(st)(t.point.y)) + ")", 1)) : (g(), i("span", Mr, "无数据"))])]))), 128))], 4)) : r("", !0);
2931
2926
  }
2932
- }), [["__scopeId", "data-v-1f55d6c8"]]), Rr = /* @__PURE__ */ c({
2927
+ }), [["__scopeId", "data-v-b9ed144d"]]), Br = /* @__PURE__ */ c({
2933
2928
  __name: "WaveformHoverHost",
2934
2929
  props: {
2935
2930
  state: {},
@@ -2939,8 +2934,8 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2939
2934
  containerHeight: {}
2940
2935
  },
2941
2936
  setup(e) {
2942
- let r = e, i = t(() => r.state.points[0]?.point ?? null);
2943
- return (t, r) => (g(), n(Lr, {
2937
+ let r = e, i = t(() => r.state.points.find((e) => e.point)?.point ?? null);
2938
+ return (t, r) => (g(), n(zr, {
2944
2939
  visible: e.visible && i.value !== null,
2945
2940
  position: e.state.position,
2946
2941
  "time-unit": e.timeUnit,
@@ -2958,16 +2953,16 @@ var lr = ["id"], ur = { class: "waveform-annotation-editor__content" }, dr = {
2958
2953
  "container-height"
2959
2954
  ]));
2960
2955
  }
2961
- }), zr = 13, Br = 2, Vr = 14, Hr = 8, Ur = 24, Wr = {
2956
+ }), Vr = 13, Hr = 2, Ur = 14, Wr = 8, Gr = 24, Kr = {
2962
2957
  circle: ee,
2963
2958
  square: ne,
2964
2959
  triangle: re,
2965
2960
  diamond: te
2966
2961
  };
2967
- function Gr(e, t = 48) {
2968
- return e === "none" ? null : U().type(Wr[e]).size(t)() ?? null;
2962
+ function qr(e, t = 48) {
2963
+ return e === "none" ? null : U().type(Kr[e]).size(t)() ?? null;
2969
2964
  }
2970
- function Kr(e, t, n = 48) {
2965
+ function Jr(e, t, n = 48) {
2971
2966
  if (e === "none" || t.length === 0) return null;
2972
2967
  if (e === "circle") {
2973
2968
  let e = Math.sqrt(n / Math.PI);
@@ -2984,24 +2979,24 @@ function Kr(e, t, n = 48) {
2984
2979
  let r = Math.sqrt(n / (2 * Math.tan(Math.PI / 6))), i = r * Math.tan(Math.PI / 6);
2985
2980
  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("");
2986
2981
  }
2987
- function qr(e) {
2982
+ function Yr(e) {
2988
2983
  return e === "none" ? null : "M1 8H25";
2989
2984
  }
2990
- function Jr(e) {
2985
+ function Xr(e) {
2991
2986
  if (e === "dashed") return "8 5";
2992
2987
  if (e === "dash-dot") return "8 5 1.5 5";
2993
2988
  }
2994
- function Yr(e) {
2995
- let t = (Number.isFinite(e) && e > 0 ? Math.min(e, Ur) : Hr) / 2, n = zr - t, r = zr + t;
2989
+ function Zr(e) {
2990
+ let t = (Number.isFinite(e) && e > 0 ? Math.min(e, Gr) : Wr) / 2, n = Vr - t, r = Vr + t;
2996
2991
  return [
2997
- `M${n} ${Br}H${r}`,
2998
- `M${zr} ${Br}V${Vr}`,
2999
- `M${n} ${Vr}H${r}`
2992
+ `M${n} ${Hr}H${r}`,
2993
+ `M${Vr} ${Hr}V${Ur}`,
2994
+ `M${n} ${Ur}H${r}`
3000
2995
  ].join("");
3001
2996
  }
3002
2997
  //#endregion
3003
2998
  //#region src/components/rendering/WaveformSeriesLayer.vue?vue&type=script&setup=true&lang.ts
3004
- var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
2999
+ var Qr = ["clip-path"], $r = ["data-series-id", "data-series-name"], ei = [
3005
3000
  "data-series-id",
3006
3001
  "data-series-name",
3007
3002
  "data-y-axis-index",
@@ -3010,11 +3005,11 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3010
3005
  "d",
3011
3006
  "stroke",
3012
3007
  "stroke-dasharray"
3013
- ], $r = ["data-series-id"], ei = [
3008
+ ], ti = ["data-series-id"], ni = [
3014
3009
  "d",
3015
3010
  "stroke",
3016
3011
  "stroke-width"
3017
- ], ti = ["data-series-id", "data-point-type"], ni = ["d", "fill"], ri = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
3012
+ ], ri = ["data-series-id", "data-point-type"], ii = ["d", "fill"], ai = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
3018
3013
  __name: "WaveformSeriesLayer",
3019
3014
  props: {
3020
3015
  track: {},
@@ -3022,11 +3017,11 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3022
3017
  },
3023
3018
  setup(n) {
3024
3019
  let a = n, o = t(() => a.track.seriesPaths.map((e) => {
3025
- let t = Kr(e.series.pointType, e.pointRenderPoints.map((t) => ({
3020
+ let t = Jr(e.series.pointType, e.pointRenderPoints.map((t) => ({
3026
3021
  x: a.track.xScale(t.x),
3027
3022
  y: e.yScale(t.y)
3028
3023
  }))), n = e.series.errorBar.capWidth / 2, r = e.errorBarRenderPoints.map((t) => {
3029
- let { lower: r, upper: i } = Ft(t), o = a.track.xScale(t.x), s = e.yScale(t.y - r), c = e.yScale(t.y + i);
3024
+ let { lower: r, upper: i } = Pt(t), o = a.track.xScale(t.x), s = e.yScale(t.y - r), c = e.yScale(t.y + i);
3030
3025
  return [
3031
3026
  `M${o - n},${s}H${o + n}`,
3032
3027
  `M${o},${s}V${c}`,
@@ -3059,8 +3054,8 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3059
3054
  "data-line-style": e.series.lineStyle,
3060
3055
  d: e.path,
3061
3056
  stroke: e.series.color,
3062
- "stroke-dasharray": w(Jr)(e.series.lineStyle)
3063
- }, null, 8, Qr)) : r("", !0),
3057
+ "stroke-dasharray": w(Xr)(e.series.lineStyle)
3058
+ }, null, 8, ei)) : r("", !0),
3064
3059
  e.series.errorBar.visible ? (g(), i("g", {
3065
3060
  key: 1,
3066
3061
  class: "waveform-track__error-bars waveform-chart__error-bars",
@@ -3071,7 +3066,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3071
3066
  d: e.errorBarPath,
3072
3067
  stroke: e.series.errorBar.color || e.series.color,
3073
3068
  "stroke-width": e.series.errorBar.width
3074
- }, null, 8, ei)) : r("", !0)], 8, $r)) : r("", !0),
3069
+ }, null, 8, ni)) : r("", !0)], 8, ti)) : r("", !0),
3075
3070
  e.series.pointType === "none" ? r("", !0) : (g(), i("g", {
3076
3071
  key: 2,
3077
3072
  class: "waveform-track__points waveform-chart__points",
@@ -3082,20 +3077,28 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3082
3077
  class: "waveform-track__point waveform-chart__point",
3083
3078
  d: e.pointPath,
3084
3079
  fill: e.series.color
3085
- }, null, 8, ni)) : r("", !0)], 8, ti))
3086
- ], 8, Zr))), 128))], 8, Xr)) : r("", !0);
3080
+ }, null, 8, ii)) : r("", !0)], 8, ri))
3081
+ ], 8, $r))), 128))], 8, Qr)) : r("", !0);
3087
3082
  }
3088
- }), [["__scopeId", "data-v-42a3fd47"]]), ii = ["transform"], ai = ["transform"], oi = {
3083
+ }), [["__scopeId", "data-v-42a3fd47"]]), oi = ["transform"], si = ["transform"], ci = {
3089
3084
  class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--start waveform-chart__axis-endpoint waveform-chart__axis-endpoint--start",
3090
3085
  x: "0",
3091
3086
  y: "7",
3092
3087
  dy: "0.71em",
3093
3088
  "text-anchor": "start"
3094
- }, si = ["x"], ci = [
3089
+ }, li = ["x"], ui = [
3095
3090
  "data-y-axis-index",
3096
3091
  "data-y-axis-side",
3097
3092
  "transform"
3098
- ], li = { key: 2 }, ui = ["x", "y"], di = ["fill", "transform"], fi = ["data-y-axis-title-index"], pi = ["x", "y"], mi = ["fill", "transform"], hi = /* @__PURE__ */ c({
3093
+ ], di = { key: 2 }, fi = [
3094
+ "x",
3095
+ "y",
3096
+ "width"
3097
+ ], pi = ["fill", "transform"], mi = ["data-y-axis-title-index"], hi = [
3098
+ "x",
3099
+ "y",
3100
+ "width"
3101
+ ], gi = ["fill", "transform"], _i = /* @__PURE__ */ c({
3099
3102
  __name: "WaveformTrackAxes",
3100
3103
  props: {
3101
3104
  track: {},
@@ -3124,7 +3127,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3124
3127
  if (n.track.yAxes.forEach((e, t) => {
3125
3128
  let r = s.value[t];
3126
3129
  if (!r) return;
3127
- let [i, a] = e.scale.domain(), o = Math.max(...e.tickValues), c = e.seriesList[0]?.unit, l = (e.side === "left" ? M(e.scale) : N(e.scale)).tickFormat((e) => st(Number(e), {
3130
+ let [i, a] = e.scale.domain(), o = Math.max(...e.tickValues), c = e.seriesList[0]?.unit, l = (e.side === "left" ? M(e.scale) : N(e.scale)).tickFormat((e) => ot(Number(e), {
3128
3131
  axisMin: i,
3129
3132
  axisMax: a,
3130
3133
  topTickValue: o,
@@ -3133,7 +3136,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3133
3136
  u.call(l), u.selectAll("path.domain").attr("display", n.axes?.y?.lineVisible === !1 ? "none" : null);
3134
3137
  }), !o.value) return;
3135
3138
  let e = H(o.value);
3136
- e.call(j(n.track.xScale).tickValues(n.track.xAxisTickValues).tickFormat((e) => dt(Number(e), n.track.xScale.domain(), n.timeUnit, "tick", n.axes?.x?.labelFormatter)).tickSize(-4).tickPadding(7).tickSizeOuter(0)), e.selectAll("path.domain").attr("display", n.axes?.x?.lineVisible === !1 ? "none" : null);
3139
+ e.call(j(n.track.xScale).tickValues(n.track.xAxisTickValues).tickFormat((e) => ut(Number(e), n.track.xScale.domain(), n.timeUnit, "tick", n.axes?.x?.labelFormatter)).tickSize(-4).tickPadding(7).tickSizeOuter(0)), e.selectAll("path.domain").attr("display", n.axes?.x?.lineVisible === !1 ? "none" : null);
3137
3140
  }
3138
3141
  return h(async () => {
3139
3142
  await d(), m();
@@ -3155,7 +3158,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3155
3158
  ref: o,
3156
3159
  class: f(["waveform-track__axis waveform-track__axis--x waveform-chart__axis waveform-chart__axis--x", { "waveform-track__axis--line-hidden": t.axes?.x?.lineVisible === !1 }]),
3157
3160
  transform: `translate(0, ${t.track.height})`
3158
- }, null, 10, ii)) : r("", !0),
3161
+ }, null, 10, oi)) : r("", !0),
3159
3162
  t.track.showXAxis ? (g(), i("g", {
3160
3163
  key: 1,
3161
3164
  class: "waveform-track__axis-endpoints waveform-chart__axis-endpoints",
@@ -3163,13 +3166,13 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3163
3166
  "font-family": "sans-serif",
3164
3167
  "font-size": "10",
3165
3168
  "aria-hidden": "true"
3166
- }, [a("text", oi, S(t.track.endpointLabels.start), 1), a("text", {
3169
+ }, [a("text", ci, S(t.track.endpointLabels.start), 1), a("text", {
3167
3170
  class: "waveform-track__axis-endpoint waveform-track__axis-endpoint--end waveform-chart__axis-endpoint waveform-chart__axis-endpoint--end",
3168
3171
  x: t.track.width ?? t.innerWidth,
3169
3172
  y: "7",
3170
3173
  dy: "0.71em",
3171
3174
  "text-anchor": "end"
3172
- }, S(t.track.endpointLabels.end), 9, si)], 8, ai)) : r("", !0),
3175
+ }, S(t.track.endpointLabels.end), 9, li)], 8, si)) : r("", !0),
3173
3176
  (g(!0), i(e, null, y(t.track.isEmpty ? [] : t.track.yAxes, (e) => (g(), i("g", {
3174
3177
  key: `y-axis-${t.track.index}-${e.index}`,
3175
3178
  ref_for: !0,
@@ -3178,66 +3181,66 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3178
3181
  "data-y-axis-index": e.index,
3179
3182
  "data-y-axis-side": e.side,
3180
3183
  transform: `translate(${e.x}, 0)`
3181
- }, null, 10, ci))), 128)),
3182
- !t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && c(t.track.series) && p(t.track.height, t.track.index) ? (g(), i("g", li, [a("rect", {
3184
+ }, null, 10, ui))), 128)),
3185
+ !t.cleanView && !t.track.isEmpty && t.track.hasVisibleSeries && t.track.seriesList.length === 1 && t.track.showYAxisLabel && t.track.series && c(t.track.series) && p(t.track.height, t.track.index) ? (g(), i("g", di, [a("rect", {
3183
3186
  class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
3184
- x: t.track.yAxisLabelX - 12,
3187
+ x: t.track.yAxisLabelX - w(12) / 2,
3185
3188
  y: t.track.height / 2 - 40,
3186
- width: "24",
3189
+ width: w(12),
3187
3190
  height: "80",
3188
3191
  rx: "2"
3189
- }, null, 8, ui), a("text", {
3192
+ }, null, 8, fi), a("text", {
3190
3193
  class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
3191
- fill: t.track.series.color,
3194
+ fill: t.track.series?.color,
3192
3195
  transform: `translate(${t.track.yAxisLabelX}, ${t.track.height / 2}) rotate(-90)`,
3193
3196
  "text-anchor": "middle",
3194
3197
  "dominant-baseline": "central"
3195
- }, S(c(t.track.series)), 9, di)])) : r("", !0),
3198
+ }, S(t.track.series ? c(t.track.series) : ""), 9, pi)])) : r("", !0),
3196
3199
  (g(!0), i(e, null, y(!t.cleanView && t.track.yAxes.length > 1 ? t.track.yAxes.filter(l) : [], (e) => (g(), i("g", {
3197
3200
  key: `y-axis-title-${t.track.index}-${e.index}`,
3198
3201
  class: "waveform-track__multi-axis-title",
3199
3202
  "data-y-axis-title-index": e.index
3200
3203
  }, [a("rect", {
3201
3204
  class: "waveform-track__y-axis-label-bg waveform-chart__y-axis-label-bg",
3202
- x: e.labelX - 12,
3205
+ x: e.labelX - w(12) / 2,
3203
3206
  y: t.track.height / 2 - 40,
3204
- width: "24",
3207
+ width: w(12),
3205
3208
  height: "80",
3206
3209
  rx: "2"
3207
- }, null, 8, pi), a("text", {
3210
+ }, null, 8, hi), a("text", {
3208
3211
  class: "waveform-track__y-axis-label waveform-chart__y-axis-label",
3209
3212
  fill: e.seriesList[0].color,
3210
3213
  transform: `translate(${e.labelX}, ${t.track.height / 2}) rotate(-90)`,
3211
3214
  "text-anchor": "middle",
3212
3215
  "dominant-baseline": "central"
3213
- }, S(c(e.seriesList[0])), 9, mi)], 8, fi))), 128))
3216
+ }, S(c(e.seriesList[0])), 9, gi)], 8, mi))), 128))
3214
3217
  ], 64));
3215
3218
  }
3216
- }), gi = [
3219
+ }), vi = [
3217
3220
  "width",
3218
3221
  "height",
3219
3222
  "fill"
3220
- ], _i = ["clip-path"], vi = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, yi = [
3223
+ ], yi = ["clip-path"], bi = { class: "waveform-track__grid waveform-track__grid--minor waveform-chart__grid waveform-chart__grid--minor" }, xi = [
3221
3224
  "stroke",
3222
3225
  "x1",
3223
3226
  "x2",
3224
3227
  "y2"
3225
- ], bi = [
3228
+ ], Si = [
3226
3229
  "stroke",
3227
3230
  "x2",
3228
3231
  "y1",
3229
3232
  "y2"
3230
- ], xi = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, Si = [
3233
+ ], Ci = { class: "waveform-track__grid waveform-track__grid--major waveform-chart__grid waveform-chart__grid--major" }, wi = [
3231
3234
  "stroke",
3232
3235
  "x1",
3233
3236
  "x2",
3234
3237
  "y2"
3235
- ], Ci = [
3238
+ ], Ti = [
3236
3239
  "stroke",
3237
3240
  "x2",
3238
3241
  "y1",
3239
3242
  "y2"
3240
- ], wi = ["clip-path"], Ti = [
3243
+ ], Ei = ["clip-path"], Di = [
3241
3244
  "data-y-axis-index",
3242
3245
  "x2",
3243
3246
  "y1",
@@ -3245,7 +3248,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3245
3248
  "stroke",
3246
3249
  "stroke-width",
3247
3250
  "stroke-dasharray"
3248
- ], Ei = ["x", "y"], Di = /* @__PURE__ */ c({
3251
+ ], Oi = ["x", "y"], ki = /* @__PURE__ */ c({
3249
3252
  __name: "WaveformTrackBackdrop",
3250
3253
  props: {
3251
3254
  track: {},
@@ -3270,12 +3273,12 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3270
3273
  height: t.track.height,
3271
3274
  fill: t.frameStyle.backgroundColor,
3272
3275
  "aria-hidden": "true"
3273
- }, null, 8, gi)) : r("", !0),
3276
+ }, null, 8, vi)) : r("", !0),
3274
3277
  !t.track.isEmpty && t.track.hasVisibleSeries && !t.cleanView ? (g(), i("g", {
3275
3278
  key: 1,
3276
3279
  "clip-path": `url(#${t.clipPathId}-${t.track.index})`,
3277
3280
  "aria-hidden": "true"
3278
- }, [a("g", vi, [t.track.gridLines.vertical ? (g(!0), i(e, { key: 0 }, y(t.track.xMinorTicks, (e) => (g(), i("line", {
3281
+ }, [a("g", bi, [t.track.gridLines.vertical ? (g(!0), i(e, { key: 0 }, y(t.track.xMinorTicks, (e) => (g(), i("line", {
3279
3282
  key: `x-minor-${t.track.index}-${e}`,
3280
3283
  "data-grid-direction": "vertical",
3281
3284
  stroke: t.track.gridLines.verticalColor,
@@ -3283,7 +3286,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3283
3286
  x2: t.track.xScale(e),
3284
3287
  y1: "0",
3285
3288
  y2: t.track.height
3286
- }, null, 8, yi))), 128)) : r("", !0), t.track.gridLines.horizontal ? (g(!0), i(e, { key: 1 }, y(t.track.yMinorTicks, (e) => (g(), i("line", {
3289
+ }, null, 8, xi))), 128)) : r("", !0), t.track.gridLines.horizontal ? (g(!0), i(e, { key: 1 }, y(t.track.yMinorTicks, (e) => (g(), i("line", {
3287
3290
  key: `y-minor-${t.track.index}-${e}`,
3288
3291
  "data-grid-direction": "horizontal",
3289
3292
  stroke: t.track.gridLines.horizontalColor,
@@ -3291,7 +3294,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3291
3294
  x2: t.track.width ?? t.innerWidth,
3292
3295
  y1: t.track.yScale(e),
3293
3296
  y2: t.track.yScale(e)
3294
- }, null, 8, bi))), 128)) : r("", !0)]), a("g", xi, [t.track.gridLines.vertical ? (g(!0), i(e, { key: 0 }, y(t.track.xMajorTicks, (e) => (g(), i("line", {
3297
+ }, null, 8, Si))), 128)) : r("", !0)]), a("g", Ci, [t.track.gridLines.vertical ? (g(!0), i(e, { key: 0 }, y(t.track.xMajorTicks, (e) => (g(), i("line", {
3295
3298
  key: `x-major-${t.track.index}-${e}`,
3296
3299
  "data-grid-direction": "vertical",
3297
3300
  stroke: t.track.gridLines.verticalColor,
@@ -3299,7 +3302,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3299
3302
  x2: t.track.xScale(e),
3300
3303
  y1: "0",
3301
3304
  y2: t.track.height
3302
- }, null, 8, Si))), 128)) : r("", !0), t.track.gridLines.horizontal ? (g(!0), i(e, { key: 1 }, y(t.track.yMajorTicks, (e) => (g(), i("line", {
3305
+ }, null, 8, wi))), 128)) : r("", !0), t.track.gridLines.horizontal ? (g(!0), i(e, { key: 1 }, y(t.track.yMajorTicks, (e) => (g(), i("line", {
3303
3306
  key: `y-major-${t.track.index}-${e}`,
3304
3307
  "data-grid-direction": "horizontal",
3305
3308
  stroke: t.track.gridLines.horizontalColor,
@@ -3307,7 +3310,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3307
3310
  x2: t.track.width ?? t.innerWidth,
3308
3311
  y1: t.track.yScale(e),
3309
3312
  y2: t.track.yScale(e)
3310
- }, null, 8, Ci))), 128)) : r("", !0)])], 8, _i)) : r("", !0),
3313
+ }, null, 8, Ti))), 128)) : r("", !0)])], 8, yi)) : r("", !0),
3311
3314
  !t.track.isEmpty && t.track.hasVisibleSeries && t.zeroLine.visible && !t.cleanView ? (g(), i("g", {
3312
3315
  key: 2,
3313
3316
  class: "waveform-track__zero-lines waveform-chart__zero-lines",
@@ -3324,7 +3327,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3324
3327
  stroke: t.zeroLine.color,
3325
3328
  "stroke-width": t.zeroLine.width,
3326
3329
  "stroke-dasharray": t.zeroLine.dash || void 0
3327
- }, null, 8, Ti))], 64))), 128))], 8, wi)) : r("", !0),
3330
+ }, null, 8, Di))], 64))), 128))], 8, Ei)) : r("", !0),
3328
3331
  !t.track.isEmpty && t.track.hasVisibleSeries && t.frameNumber !== void 0 && !t.cleanView ? (g(), i("text", {
3329
3332
  key: 3,
3330
3333
  class: "waveform-track__watermark waveform-chart__watermark",
@@ -3334,11 +3337,12 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3334
3337
  "text-anchor": "middle",
3335
3338
  "dominant-baseline": "central",
3336
3339
  "aria-hidden": "true"
3337
- }, S(t.frameNumber), 13, Ei)) : r("", !0)
3340
+ }, S(t.frameNumber), 13, Oi)) : r("", !0)
3338
3341
  ], 64));
3339
3342
  }
3340
- }), Oi = [
3343
+ }), Ai = [
3341
3344
  "data-track-index",
3345
+ "data-track-id",
3342
3346
  "data-track-empty",
3343
3347
  "data-track-left",
3344
3348
  "data-track-width",
@@ -3346,19 +3350,19 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3346
3350
  "data-track-top",
3347
3351
  "data-track-height",
3348
3352
  "transform"
3349
- ], ki = [
3353
+ ], ji = [
3350
3354
  "width",
3351
3355
  "height",
3352
3356
  "stroke",
3353
3357
  "stroke-width",
3354
3358
  "stroke-dasharray",
3355
3359
  "stroke-linecap"
3356
- ], Ai = [
3360
+ ], Mi = [
3357
3361
  "data-interactive",
3358
3362
  "data-independent-overlay-index",
3359
3363
  "width",
3360
3364
  "height"
3361
- ], ji = ["x", "y"], Mi = /* @__PURE__ */ c({
3365
+ ], Ni = ["x", "y"], Pi = /* @__PURE__ */ c({
3362
3366
  __name: "WaveformTrack",
3363
3367
  props: {
3364
3368
  track: {},
@@ -3409,6 +3413,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3409
3413
  return (t, n) => (g(), i("g", {
3410
3414
  class: f(["waveform-track waveform-chart__track", { "waveform-track--empty waveform-chart__track--empty": e.track.isEmpty }]),
3411
3415
  "data-track-index": e.track.index,
3416
+ "data-track-id": e.track.id,
3412
3417
  "data-track-empty": e.track.isEmpty || void 0,
3413
3418
  "data-track-left": e.track.left,
3414
3419
  "data-track-width": e.track.width,
@@ -3417,7 +3422,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3417
3422
  "data-track-height": e.track.height,
3418
3423
  transform: `translate(${e.track.left ?? 0}, ${e.track.top})`
3419
3424
  }, [
3420
- s(Di, {
3425
+ s(ki, {
3421
3426
  track: e.track,
3422
3427
  "clip-path-id": e.clipPathId,
3423
3428
  "inner-width": e.innerWidth,
@@ -3434,7 +3439,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3434
3439
  "frame-style",
3435
3440
  "zero-line"
3436
3441
  ]),
3437
- s(hi, {
3442
+ s(_i, {
3438
3443
  track: e.track,
3439
3444
  "inner-width": e.innerWidth,
3440
3445
  "clean-view": e.cleanView,
@@ -3460,8 +3465,8 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3460
3465
  "stroke-dasharray": c.value.borderStyle === "dashed" ? "6 4" : c.value.borderStyle === "dotted" ? "1 3" : void 0,
3461
3466
  "stroke-linecap": c.value.borderStyle === "dotted" ? "round" : void 0,
3462
3467
  "aria-hidden": "true"
3463
- }, null, 8, ki)),
3464
- s(ri, {
3468
+ }, null, 8, ji)),
3469
+ s(ai, {
3465
3470
  track: e.track,
3466
3471
  "clip-path-id": e.clipPathId
3467
3472
  }, null, 8, ["track", "clip-path-id"]),
@@ -3483,7 +3488,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3483
3488
  onPointerleave: n[4] ||= (e) => o("pointer-leave"),
3484
3489
  onClick: n[5] ||= (e) => o("click", e),
3485
3490
  onContextmenu: n[6] ||= (e) => o("contextmenu", e)
3486
- }, null, 42, Ai)) : r("", !0),
3491
+ }, null, 42, Mi)) : r("", !0),
3487
3492
  !e.track.isEmpty && !e.track.hasVisibleSeries && !e.cleanView ? (g(), i("text", {
3488
3493
  key: 2,
3489
3494
  class: "waveform-track__no-visible-series",
@@ -3491,33 +3496,33 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3491
3496
  y: e.track.height / 2,
3492
3497
  "text-anchor": "middle",
3493
3498
  "dominant-baseline": "central"
3494
- }, " 暂无可见曲线 ", 8, ji)) : r("", !0)
3495
- ], 10, Oi));
3499
+ }, " 暂无可见曲线 ", 8, Ni)) : r("", !0)
3500
+ ], 10, Ai));
3496
3501
  }
3497
- }), Ni = [
3502
+ }), Fi = [
3498
3503
  "width",
3499
3504
  "height",
3500
3505
  "data-position",
3501
3506
  "data-orientation"
3502
- ], Pi = [
3507
+ ], Ii = [
3503
3508
  "disabled",
3504
3509
  "aria-pressed",
3505
3510
  "aria-label",
3506
3511
  "onClick"
3507
- ], Fi = [
3512
+ ], Li = [
3508
3513
  "data-line-type",
3509
3514
  "data-line-style",
3510
3515
  "data-point-type",
3511
3516
  "data-error-bar-visible"
3512
- ], Ii = [
3517
+ ], Ri = [
3513
3518
  "d",
3514
3519
  "stroke",
3515
3520
  "stroke-dasharray"
3516
- ], Li = [
3521
+ ], zi = [
3517
3522
  "d",
3518
3523
  "stroke",
3519
3524
  "stroke-width"
3520
- ], Ri = ["d", "fill"], zi = ["title"], Bi = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
3525
+ ], Bi = ["d", "fill"], Vi = ["title"], Hi = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
3521
3526
  __name: "WaveformLegend",
3522
3527
  props: {
3523
3528
  series: {},
@@ -3575,45 +3580,45 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3575
3580
  "data-point-type": e.pointType,
3576
3581
  "data-error-bar-visible": e.errorBar.visible || void 0
3577
3582
  }, [
3578
- w(qr)(e.lineType) ? (g(), i("path", {
3583
+ w(Yr)(e.lineType) ? (g(), i("path", {
3579
3584
  key: 0,
3580
3585
  class: "waveform-legend__line",
3581
- d: w(qr)(e.lineType) ?? void 0,
3586
+ d: w(Yr)(e.lineType) ?? void 0,
3582
3587
  stroke: e.color,
3583
- "stroke-dasharray": w(Jr)(e.lineStyle),
3588
+ "stroke-dasharray": w(Xr)(e.lineStyle),
3584
3589
  "stroke-width": "1.5",
3585
3590
  fill: "none"
3586
- }, null, 8, Ii)) : r("", !0),
3591
+ }, null, 8, Ri)) : r("", !0),
3587
3592
  e.errorBar.visible ? (g(), i("path", {
3588
3593
  key: 1,
3589
3594
  class: "waveform-legend__error-bar",
3590
- d: w(Yr)(e.errorBar.capWidth),
3595
+ d: w(Zr)(e.errorBar.capWidth),
3591
3596
  stroke: e.errorBar.color || e.color,
3592
3597
  "stroke-width": e.errorBar.width,
3593
3598
  "stroke-linecap": "butt",
3594
3599
  fill: "none"
3595
- }, null, 8, Li)) : r("", !0),
3600
+ }, null, 8, zi)) : r("", !0),
3596
3601
  e.pointType === "none" ? r("", !0) : (g(), i("path", {
3597
3602
  key: 2,
3598
3603
  class: "waveform-legend__point",
3599
- d: w(Gr)(e.pointType, 30) ?? void 0,
3604
+ d: w(qr)(e.pointType, 30) ?? void 0,
3600
3605
  fill: e.color,
3601
3606
  transform: "translate(13 8)"
3602
- }, null, 8, Ri))
3603
- ], 8, Fi)), a("span", {
3607
+ }, null, 8, Bi))
3608
+ ], 8, Li)), a("span", {
3604
3609
  class: "waveform-legend__label",
3605
3610
  title: e.name
3606
- }, S(e.name), 9, zi)], 10, Pi))), 128))], 6)], 2)], 8, Ni));
3611
+ }, S(e.name), 9, Vi)], 10, Ii))), 128))], 6)], 2)], 8, Fi));
3607
3612
  }
3608
- }), [["__scopeId", "data-v-2ae12e71"]]), Vi = {
3613
+ }), [["__scopeId", "data-v-2ae12e71"]]), Ui = {
3609
3614
  class: "waveform-chart__hover-layer",
3610
3615
  "pointer-events": "none",
3611
3616
  "aria-hidden": "true"
3612
- }, Hi = ["clip-path", "transform"], Ui = [
3617
+ }, Wi = ["clip-path", "transform"], Gi = [
3613
3618
  "x1",
3614
3619
  "x2",
3615
3620
  "y2"
3616
- ], Wi = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
3621
+ ], Ki = /*#__PURE__*/ Fe(/* @__PURE__ */ c({
3617
3622
  __name: "WaveformHoverLayer",
3618
3623
  props: {
3619
3624
  state: {},
@@ -3622,21 +3627,11 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3622
3627
  visible: { type: Boolean }
3623
3628
  },
3624
3629
  setup(n) {
3625
- let r = n, o = t(() => {
3626
- if (!r.visible) return [];
3627
- let e = /* @__PURE__ */ new Map();
3628
- return r.state.points.forEach((t) => {
3629
- e.has(t.trackIndex) || e.set(t.trackIndex, t);
3630
- }), r.tracks.flatMap((t) => {
3631
- let n = e.get(t.index);
3632
- return n && !t.isEmpty && t.hasVisibleSeries ? [{
3633
- point: n,
3634
- track: t,
3635
- x: t.xScale(n.point.x)
3636
- }] : [];
3637
- });
3638
- });
3639
- return (t, r) => (g(), i("g", Vi, [(g(!0), i(e, null, y(o.value, (e) => (g(), i("g", {
3630
+ let r = n, o = t(() => !r.visible || r.state.queryX === null ? [] : r.tracks.flatMap((e) => (r.state.trackIndex === null || r.state.trackIndex === e.index) && !e.isEmpty && e.hasVisibleSeries ? [{
3631
+ track: e,
3632
+ x: e.xScale(r.state.queryX)
3633
+ }] : []));
3634
+ return (t, r) => (g(), i("g", Ui, [(g(!0), i(e, null, y(o.value, (e) => (g(), i("g", {
3640
3635
  key: e.track.index,
3641
3636
  class: "waveform-track__crosshair waveform-chart__crosshair",
3642
3637
  "clip-path": `url(#${n.clipPathId}-${e.track.index})`,
@@ -3646,9 +3641,9 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3646
3641
  x2: e.x,
3647
3642
  y1: "0",
3648
3643
  y2: e.track.height
3649
- }, null, 8, Ui)], 8, Hi))), 128))]));
3644
+ }, null, 8, Gi)], 8, Wi))), 128))]));
3650
3645
  }
3651
- }), [["__scopeId", "data-v-a6f82099"]]), Gi = [
3646
+ }), [["__scopeId", "data-v-044318c2"]]), qi = [
3652
3647
  "data-display-mode",
3653
3648
  "data-interaction-mode",
3654
3649
  "data-presentation-mode",
@@ -3657,36 +3652,36 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3657
3652
  "data-plot-margin-top",
3658
3653
  "data-plot-margin-bottom",
3659
3654
  "data-title-area-height"
3660
- ], Ki = [
3655
+ ], Ji = [
3661
3656
  "role",
3662
3657
  "aria-level",
3663
3658
  "aria-hidden"
3664
- ], qi = ["data-title-scale", "data-title-wrapped"], Ji = [
3659
+ ], Yi = ["data-title-scale", "data-title-wrapped"], Xi = [
3665
3660
  "width",
3666
3661
  "height",
3667
3662
  "aria-label"
3668
- ], Yi = ["id"], Xi = ["width", "height"], Zi = ["transform"], Qi = {
3663
+ ], Zi = ["id"], Qi = ["width", "height"], $i = ["transform"], ea = {
3669
3664
  key: 0,
3670
3665
  class: "waveform-chart__grid-slots",
3671
3666
  "aria-hidden": "true"
3672
- }, $i = ["transform"], ea = ["width", "height"], ta = ["width", "height"], na = [
3667
+ }, ta = ["transform"], na = ["width", "height"], ra = ["width", "height"], ia = [
3673
3668
  "x",
3674
3669
  "y",
3675
3670
  "width",
3676
3671
  "height"
3677
- ], ra = {
3672
+ ], aa = {
3678
3673
  key: 4,
3679
3674
  class: "waveform-chart__legend-layer"
3680
- }, ia = [
3675
+ }, oa = [
3681
3676
  "data-legend-track-index",
3682
3677
  "data-legend-track-id",
3683
3678
  "transform"
3684
- ], aa = ["x", "y"], oa = ["x", "y"], sa = /* @__PURE__ */ c({
3679
+ ], sa = ["x", "y"], ca = ["x", "y"], la = /* @__PURE__ */ c({
3685
3680
  __name: "WaveformChartView",
3686
3681
  props: { controller: {} },
3687
3682
  setup(t) {
3688
- let { displayMode: o, activeInteractionMode: c, isCleanView: l, isPresentationMode: u, selection: d, containerStyle: m, overlayMode: h, resolvedChartLeftMargin: _, titleAreaHeight: v, resolvedPlotMargin: b, pointerInsideChart: x, handleNativeContextMenu: T, titleAreaReserved: E, titleAreaStyle: D, titleVisible: O, titleMeasureStyle: k, resolvedTitleText: A, titleVisualStyle: j, titleTextStyle: M, titleLayout: N, chartWidth: P, drawingHeight: F, hasWaveformData: I, requestViewportReset: L, trackLayouts: R, clipPathId: z, chartTopMargin: B, gridCells: V, hasVisibleWaveformData: H, zoomable: U, isZoomMode: ee, innerWidth: te, innerHeight: ne, handleSharedPointerMove: re, beginSharedViewportDrag: ie, finishViewportDrag: W, cancelViewportDrag: G, handlePointerLeave: K, handleAnnotationClick: q, handleAnnotationContextMenu: J, resolveFrameNumber: oe, frameStyle: se, axes: ce, resolvedZeroLine: le, timeUnit: ue, yLabel: de, handleIndependentPointerMove: fe, beginViewportDrag: pe, hoverState: me, showTooltip: he, selectionBox: ge, renderedAnnotations: Y, annotationsVisible: _e, handleExistingAnnotationContextMenu: ve, beginAnnotationDrag: ye, handleAnnotationMove: be, endAnnotationDrag: xe, resolveLegendPosition: X, resolveLegendOrientation: Z, legendBackgroundColor: Se, legendInteractive: Ce, resolvedHiddenSeriesIds: we, toggleSeriesVisibility: Te, resolvedXLabel: Ee, xAxisTitleY: De, hasChartArea: Oe, gridOptions: ke, pageCount: Ae, currentPage: je, getPageSize: Me, chartTracks: Ne, goToPage: Pe, annotationInteraction: Fe, editorDraft: Re, contextMenu: Q, editorSeries: ze, editorSeriesOptions: Be, timeError: Ve, confirmAnnotation: He, cancelAnnotation: Ue, changeDraftSeries: We, changeDraftTime: Ge, editContextAnnotation: Ke, deleteContextAnnotation: qe, chartHeight: Je, setContainer: Ye, setSvgElement: Xe, setTitleMeasureElement: Ze, setSharedOverlayElement: Qe } = C(t.controller);
3689
- function $e() {
3683
+ let { displayMode: o, activeInteractionMode: c, isCleanView: l, isPresentationMode: u, selection: d, containerStyle: m, overlayMode: h, resolvedChartLeftMargin: _, titleAreaHeight: v, resolvedPlotMargin: b, pointerInsideChart: x, handleNativeContextMenu: T, titleAreaReserved: E, titleAreaStyle: D, titleVisible: O, titleMeasureStyle: k, resolvedTitleText: A, titleVisualStyle: j, titleTextStyle: M, titleLayout: N, chartWidth: P, drawingHeight: F, hasWaveformData: I, requestViewportReset: L, trackLayouts: R, clipPathId: z, chartTopMargin: B, gridCells: V, hasVisibleWaveformData: H, zoomable: U, isZoomMode: ee, innerWidth: te, innerHeight: ne, handleSharedPointerMove: re, beginSharedViewportDrag: ie, finishViewportDrag: W, cancelViewportDrag: G, handlePointerLeave: K, handleAnnotationClick: q, handleAnnotationContextMenu: J, resolveFrameNumber: oe, frameStyle: se, axes: ce, resolvedZeroLine: le, timeUnit: ue, yLabel: de, handleIndependentPointerMove: fe, beginViewportDrag: pe, hoverState: me, showTooltip: he, selectionBox: ge, renderedAnnotations: Y, annotationsVisible: _e, handleExistingAnnotationContextMenu: ve, beginAnnotationDrag: ye, handleAnnotationMove: be, endAnnotationDrag: xe, resolveLegendPosition: X, resolveLegendOrientation: Z, legendBackgroundColor: Se, legendInteractive: Ce, resolvedHiddenSeriesIds: we, toggleSeriesVisibility: Te, resolvedXLabel: Ee, xAxisTitleY: De, hasChartArea: Oe, gridOptions: ke, pageCount: Ae, currentPage: je, getPageSize: Me, chartTracks: Ne, goToPage: Pe, annotationInteraction: Fe, editorDraft: Re, contextMenu: Q, editorSeries: ze, editorSeriesOptions: Be, timeError: Ve, confirmAnnotation: He, cancelAnnotation: Ue, changeDraftSeries: We, changeDraftTime: Ge, editContextAnnotation: Ke, deleteContextAnnotation: qe, chartHeight: Je, setContainer: Ye, setSvgElement: $, setTitleMeasureElement: Xe, setSharedOverlayElement: Ze } = C(t.controller);
3684
+ function Qe() {
3690
3685
  x.value = !1, K.value();
3691
3686
  }
3692
3687
  return (t, C) => (g(), i("div", {
@@ -3710,7 +3705,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3710
3705
  "data-plot-margin-bottom": w(b).bottom,
3711
3706
  "data-title-area-height": w(v),
3712
3707
  onPointerenter: C[8] ||= (e) => x.value = !0,
3713
- onPointerleave: $e,
3708
+ onPointerleave: Qe,
3714
3709
  onContextmenuCapture: C[9] ||= (...e) => w(T) && w(T)(...e)
3715
3710
  }, [
3716
3711
  w(E) ? (g(), i("div", {
@@ -3721,7 +3716,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3721
3716
  "aria-level": w(O) ? 2 : void 0,
3722
3717
  "aria-hidden": w(l) || void 0
3723
3718
  }, [a("span", {
3724
- ref: w(Ze),
3719
+ ref: w(Xe),
3725
3720
  class: "waveform-chart__title-measure",
3726
3721
  style: p(w(k)),
3727
3722
  "aria-hidden": "true"
@@ -3734,9 +3729,9 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3734
3729
  style: p(w(M)),
3735
3730
  "data-title-scale": w(N).scale,
3736
3731
  "data-title-wrapped": w(N).wrapped || void 0
3737
- }, S(w(A)), 13, qi)], 4)) : r("", !0)], 12, Ki)) : r("", !0),
3732
+ }, S(w(A)), 13, Yi)], 4)) : r("", !0)], 12, Ji)) : r("", !0),
3738
3733
  (g(), i("svg", {
3739
- ref: w(Xe),
3734
+ ref: w($),
3740
3735
  class: "waveform-chart__svg",
3741
3736
  width: w(P),
3742
3737
  height: w(F),
@@ -3751,9 +3746,9 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3751
3746
  }, [a("rect", {
3752
3747
  width: e.width,
3753
3748
  height: e.height
3754
- }, null, 8, Xi)], 8, Yi))), 128))]),
3749
+ }, null, 8, Qi)], 8, Zi))), 128))]),
3755
3750
  a("g", { transform: `translate(${w(_)}, ${w(B)})` }, [
3756
- w(o) !== "compact" && !w(l) ? (g(), i("g", Qi, [(g(!0), i(e, null, y(w(V), (e) => (g(), i("g", {
3751
+ w(o) !== "compact" && !w(l) ? (g(), i("g", ea, [(g(!0), i(e, null, y(w(V), (e) => (g(), i("g", {
3757
3752
  key: `grid-slot-${e.slotIndex}`,
3758
3753
  transform: `translate(${e.left}, ${e.top})`
3759
3754
  }, [e.series ? r("", !0) : (g(), i("rect", {
@@ -3761,10 +3756,10 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3761
3756
  class: "waveform-chart__grid-slot-placeholder",
3762
3757
  width: e.width,
3763
3758
  height: e.cellHeight
3764
- }, null, 8, ea))], 8, $i))), 128))])) : r("", !0),
3759
+ }, null, 8, na))], 8, ta))), 128))])) : r("", !0),
3765
3760
  w(o) !== "independent" && w(R).length && w(H) ? (g(), i("rect", {
3766
3761
  key: 1,
3767
- ref: w(Qe),
3762
+ ref: w(Ze),
3768
3763
  class: f(["waveform-chart__overlay waveform-chart__overlay--shared", {
3769
3764
  "is-zoomable": !w(u) && w(U) && w(ee),
3770
3765
  "is-annotating": !w(u) && w(c) === "annotation"
@@ -3778,9 +3773,9 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3778
3773
  onPointerleave: C[4] ||= (...e) => w(K) && w(K)(...e),
3779
3774
  onClick: C[5] ||= (...e) => w(q) && w(q)(...e),
3780
3775
  onContextmenu: C[6] ||= (...e) => w(J) && w(J)(...e)
3781
- }, null, 42, ta)) : r("", !0),
3782
- (g(!0), i(e, null, y(w(R), (e) => (g(), n(w(Mi), {
3783
- key: `${e.index}-${e.series.name}`,
3776
+ }, null, 42, ra)) : r("", !0),
3777
+ (g(!0), i(e, null, y(w(R), (e) => (g(), n(w(Pi), {
3778
+ key: `${e.index}-${e.id}`,
3784
3779
  track: e,
3785
3780
  "clip-path-id": w(z),
3786
3781
  "inner-width": w(te),
@@ -3825,7 +3820,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3825
3820
  "onClick",
3826
3821
  "onContextmenu"
3827
3822
  ]))), 128)),
3828
- s(w(Wi), {
3823
+ s(w(Ki), {
3829
3824
  state: w(me),
3830
3825
  tracks: w(R),
3831
3826
  "clip-path-id": w(z),
@@ -3844,7 +3839,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3844
3839
  width: w(ge).width,
3845
3840
  height: w(ge).height,
3846
3841
  "aria-hidden": "true"
3847
- }, null, 8, na)) : r("", !0),
3842
+ }, null, 8, ia)) : r("", !0),
3848
3843
  w(l) ? r("", !0) : (g(), n(w(Ie), {
3849
3844
  key: 3,
3850
3845
  annotations: w(Y),
@@ -3863,13 +3858,13 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3863
3858
  "onMove",
3864
3859
  "onDragEnd"
3865
3860
  ])),
3866
- w(l) ? r("", !0) : (g(), i("g", ra, [(g(!0), i(e, null, y(w(R), (e) => (g(), i("g", {
3867
- key: `legend-${e.index}-${e.series.name}`,
3861
+ w(l) ? r("", !0) : (g(), i("g", aa, [(g(!0), i(e, null, y(w(R), (e) => (g(), i("g", {
3862
+ key: `legend-${e.index}-${e.id}`,
3868
3863
  class: "waveform-chart__legend-track",
3869
3864
  "data-legend-track-index": e.index,
3870
3865
  "data-legend-track-id": e.id,
3871
3866
  transform: `translate(${e.left}, ${e.top})`
3872
- }, [!e.isEmpty && e.legendSeries.length > 1 ? (g(), n(w(Bi), {
3867
+ }, [!e.isEmpty && e.legendSeries.length > 1 ? (g(), n(w(Hi), {
3873
3868
  key: 0,
3874
3869
  series: e.legendSeries,
3875
3870
  position: w(X)(e.id),
@@ -3890,23 +3885,23 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3890
3885
  "width",
3891
3886
  "height",
3892
3887
  "onToggle"
3893
- ])) : r("", !0)], 8, ia))), 128))]))
3894
- ], 8, Zi),
3888
+ ])) : r("", !0)], 8, oa))), 128))]))
3889
+ ], 8, $i),
3895
3890
  w(Ee) && !w(l) ? (g(), i("text", {
3896
3891
  key: 0,
3897
3892
  class: "waveform-chart__label waveform-chart__x-label",
3898
3893
  x: w(_) + w(te) / 2,
3899
3894
  y: w(De),
3900
3895
  "text-anchor": "middle"
3901
- }, S(w(Ee)), 9, aa)) : r("", !0),
3896
+ }, S(w(Ee)), 9, sa)) : r("", !0),
3902
3897
  w(Oe) && !w(I) ? (g(), i("text", {
3903
3898
  key: 1,
3904
3899
  class: "waveform-chart__empty",
3905
3900
  x: w(P) / 2,
3906
3901
  y: w(F) / 2,
3907
3902
  "text-anchor": "middle"
3908
- }, " 暂无有效波形数据 ", 8, oa)) : r("", !0)
3909
- ], 40, Ji)),
3903
+ }, " 暂无有效波形数据 ", 8, ca)) : r("", !0)
3904
+ ], 40, Xi)),
3910
3905
  w(ke).showPagination && w(Ae) > 1 && !w(l) ? (g(), n(w(ae), {
3911
3906
  key: 1,
3912
3907
  class: "waveform-chart__pagination",
@@ -3923,7 +3918,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3923
3918
  "total",
3924
3919
  "onChange"
3925
3920
  ])) : r("", !0),
3926
- w(Re) && !w(l) && !w(u) ? (g(), n(Dr, {
3921
+ w(Re) && !w(l) && !w(u) ? (g(), n(Or, {
3927
3922
  key: 2,
3928
3923
  annotation: w(Re).annotation,
3929
3924
  mode: w(Re).mode,
@@ -3965,7 +3960,7 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3965
3960
  "onDelete",
3966
3961
  "onClose"
3967
3962
  ])) : r("", !0),
3968
- s(w(Rr), {
3963
+ s(w(Br), {
3969
3964
  state: w(me),
3970
3965
  visible: w(he) && !w(u),
3971
3966
  "time-unit": w(ue),
@@ -3978,9 +3973,9 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
3978
3973
  "container-width",
3979
3974
  "container-height"
3980
3975
  ])
3981
- ], 46, Gi));
3976
+ ], 46, qi));
3982
3977
  }
3983
- }), ca = /* @__PURE__ */ c({
3978
+ }), ua = /* @__PURE__ */ c({
3984
3979
  __name: "WaveformChart",
3985
3980
  props: {
3986
3981
  data: {},
@@ -4058,12 +4053,12 @@ var Xr = ["clip-path"], Zr = ["data-series-id", "data-series-name"], Qr = [
4058
4053
  "page-change"
4059
4054
  ],
4060
4055
  setup(e, { expose: t, emit: r }) {
4061
- let i = cr(e, r);
4056
+ let i = lr(e, r);
4062
4057
  return t({
4063
4058
  resetViewport: i.resetViewport,
4064
4059
  setViewportDomain: i.setViewportDomain
4065
- }), (e, t) => (g(), n(sa, { controller: w(i) }, null, 8, ["controller"]));
4060
+ }), (e, t) => (g(), n(la, { controller: w(i) }, null, 8, ["controller"]));
4066
4061
  }
4067
4062
  });
4068
4063
  //#endregion
4069
- export { Ut as DEFAULT_WAVEFORM_RENDERING_OPTIONS, ca as WaveformChart, Ze as buildMinorTicks, _t as clamp, ut as displayTime, pt as formatAxisTime, ft as formatEndpointTime, mt as formatTooltipTime, It as normalizeWaveformData, Lt as normalizeWaveformSeries, Xe as paddedDomain, Je as parseWaveformAnnotations, gt as resolveTrackGeometry, Wt as resolveWaveformRenderingOptions, Xt as selectRenderablePoints, qe as serializeWaveformAnnotations };
4064
+ export { Ht as DEFAULT_WAVEFORM_RENDERING_OPTIONS, ua as WaveformChart, Xe as buildMinorTicks, gt as clamp, lt as displayTime, ft as formatAxisTime, dt as formatEndpointTime, pt as formatTooltipTime, Ft as normalizeWaveformData, It as normalizeWaveformSeries, $ as paddedDomain, Je as parseWaveformAnnotations, ht as resolveTrackGeometry, Ut as resolveWaveformRenderingOptions, Yt as selectRenderablePoints, qe as serializeWaveformAnnotations };