costy-plus 1.1.45-0 → 1.1.46-0
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.
|
@@ -15,11 +15,12 @@ import te from "../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/no
|
|
|
15
15
|
import "../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Emit.js";
|
|
16
16
|
import { Prop as m } from "../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Prop.js";
|
|
17
17
|
import { flattenDeep as ie, max as se, min as ae, cloneDeep as q } from "lodash";
|
|
18
|
-
import {
|
|
18
|
+
import { getStepForSpeed as D, getPrintLengthToPx as ne, getPointIdxForPx as G, getSens as k, getDataLenTimes as X, getActualY as z, calcMs as oe, calcBpm as le } from "@costy-plus/utils";
|
|
19
|
+
import { debounceDecorator as K } from "../utils/tool.js";
|
|
19
20
|
import * as de from "zrender";
|
|
20
21
|
import { Group as P, Polyline as _, Line as j, Text as F, Rect as re, util as he } from "zrender";
|
|
21
|
-
var fe = Object.defineProperty,
|
|
22
|
-
for (var a = s > 1 ? void 0 : s ?
|
|
22
|
+
var fe = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, c = (e, t, i, s) => {
|
|
23
|
+
for (var a = s > 1 ? void 0 : s ? ge(t, i) : t, n = e.length - 1, o; n >= 0; n--)
|
|
23
24
|
(o = e[n]) && (a = (s ? o(t, i, a) : o(a)) || a);
|
|
24
25
|
return s && a && fe(t, i, a), a;
|
|
25
26
|
};
|
|
@@ -219,8 +220,8 @@ let u = class extends ee {
|
|
|
219
220
|
return;
|
|
220
221
|
const a = 0.15 * this.waveConfigs[this.heartFight.showIdxPai].sampleRate;
|
|
221
222
|
let n = null, o = -1, d = 1 / 0;
|
|
222
|
-
for (let
|
|
223
|
-
const H = this.analyseValues[
|
|
223
|
+
for (let g = 0; g < this.analyseValues.length; g++) {
|
|
224
|
+
const H = this.analyseValues[g], M = g !== 1 ? H.filter((L, y) => {
|
|
224
225
|
var C;
|
|
225
226
|
return y === 0 || ((C = L.KeyPosByBeat) == null ? void 0 : C.Rpoint) !== 0;
|
|
226
227
|
}) : H;
|
|
@@ -230,7 +231,7 @@ let u = class extends ee {
|
|
|
230
231
|
if (C === void 0)
|
|
231
232
|
break;
|
|
232
233
|
const w = Math.abs(s - C);
|
|
233
|
-
w <= a && w < d && (d = w, n = y, o =
|
|
234
|
+
w <= a && w < d && (d = w, n = y, o = g), C < s ? x = L + 1 : I = L - 1;
|
|
234
235
|
}
|
|
235
236
|
}
|
|
236
237
|
if (n)
|
|
@@ -239,7 +240,7 @@ let u = class extends ee {
|
|
|
239
240
|
insertInfo: null
|
|
240
241
|
};
|
|
241
242
|
else {
|
|
242
|
-
let
|
|
243
|
+
let g = -1, H = 1 / 0, M = -1, x = -1;
|
|
243
244
|
for (let I = 0; I < this.analyseValues.length; I++) {
|
|
244
245
|
const L = this.analyseValues[I];
|
|
245
246
|
for (let y = 0; y < L.length; y++) {
|
|
@@ -249,11 +250,11 @@ let u = class extends ee {
|
|
|
249
250
|
const w = (f = C.KeyPosByBeat) == null ? void 0 : f.Rpoint;
|
|
250
251
|
if (w === void 0)
|
|
251
252
|
continue;
|
|
252
|
-
const
|
|
253
|
-
|
|
253
|
+
const p = Math.abs(s - w);
|
|
254
|
+
p < H && (H = p, x = I, s < w ? M = y : I !== 1 && ((h = C.KeyPosByBeat) == null ? void 0 : h.Rpoint) === 0 && y === 0 ? M = 1 : M = y + 1);
|
|
254
255
|
}
|
|
255
256
|
}
|
|
256
|
-
x !== -1 && (o = x,
|
|
257
|
+
x !== -1 && (o = x, g = M, this.nearestHeartInfo = {
|
|
257
258
|
analyseValue: {
|
|
258
259
|
AnabyBeat: {
|
|
259
260
|
QTd: 0,
|
|
@@ -303,7 +304,7 @@ let u = class extends ee {
|
|
|
303
304
|
},
|
|
304
305
|
insertInfo: {
|
|
305
306
|
listIndex: o,
|
|
306
|
-
insertIndex:
|
|
307
|
+
insertIndex: g,
|
|
307
308
|
pointIdx: s,
|
|
308
309
|
distanceToNearest: H
|
|
309
310
|
}
|
|
@@ -427,8 +428,8 @@ let u = class extends ee {
|
|
|
427
428
|
), h = X(
|
|
428
429
|
Math.ceil(this.splitPoint / (f || 1)) || 0,
|
|
429
430
|
this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate || 0
|
|
430
|
-
),
|
|
431
|
-
this.splitPoint =
|
|
431
|
+
), g = parseInt(`${h / 1e3 % 60}`, 10);
|
|
432
|
+
this.splitPoint = g * (this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate || 0) * (f || 0);
|
|
432
433
|
}
|
|
433
434
|
let t = 0, i = 0, s = 0, a = 0;
|
|
434
435
|
for (let f = 1; f <= this.leadModel.column - 1; f++) {
|
|
@@ -506,16 +507,16 @@ let u = class extends ee {
|
|
|
506
507
|
if (this.leadModel.isContinuous)
|
|
507
508
|
n = i * 1.1;
|
|
508
509
|
else if (!this.leadModel.add && o) {
|
|
509
|
-
const
|
|
510
|
+
const g = G(this.splitPoint * (this.leadModel.column || 1), o), H = X(g, this.rulerConfig.sampleRate || 0) / 1e3;
|
|
510
511
|
n = e + H;
|
|
511
512
|
}
|
|
512
|
-
for (let
|
|
513
|
-
|
|
513
|
+
for (let g = e; g <= n; g = +(g + 0.1).toFixed(1))
|
|
514
|
+
g !== e && (s += this.rulerStep), g % 1 === 0 ? (a = t - 10, (l = this.rulerGroup) == null || l.add(new F({
|
|
514
515
|
cursor: "",
|
|
515
516
|
style: {
|
|
516
517
|
x: s,
|
|
517
518
|
y: a - 15,
|
|
518
|
-
text:
|
|
519
|
+
text: g + "",
|
|
519
520
|
fontSize: 13,
|
|
520
521
|
fontFamily: this.fontFamily,
|
|
521
522
|
fill: "#FF0080"
|
|
@@ -557,7 +558,7 @@ let u = class extends ee {
|
|
|
557
558
|
endInd: a,
|
|
558
559
|
step: n,
|
|
559
560
|
sens: o,
|
|
560
|
-
data: i.slice(s, a).map((h,
|
|
561
|
+
data: i.slice(s, a).map((h, g) => this.waveConfigs[this.singleModeConfig.defaultSelect].gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName) ? z(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity, h, o / 2) : z(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity, h, o)).map((h, g) => [g * (n || 0), -h])
|
|
561
562
|
});
|
|
562
563
|
}
|
|
563
564
|
return d;
|
|
@@ -574,7 +575,7 @@ let u = class extends ee {
|
|
|
574
575
|
name: this.singleModeConfig.defaultSelect + "_" + r,
|
|
575
576
|
sens: e[r].sens,
|
|
576
577
|
shape: {
|
|
577
|
-
points: e[r].data.map(([f, h],
|
|
578
|
+
points: e[r].data.map(([f, h], g) => isNaN(h) ? (n === 0 && (n = g - 1, n = n < 0 ? 0 : n), [
|
|
578
579
|
e[r].data[n][0] + e[r].pos[0],
|
|
579
580
|
e[r].data[n][1] + e[r].pos[1]
|
|
580
581
|
]) : (n = 0, [
|
|
@@ -611,7 +612,7 @@ let u = class extends ee {
|
|
|
611
612
|
this.singleWaveDataCopy = e, e = null;
|
|
612
613
|
}
|
|
613
614
|
drawHeartReact(e = 0) {
|
|
614
|
-
var a, n, o, d, l, r, f, h,
|
|
615
|
+
var a, n, o, d, l, r, f, h, g, H, M;
|
|
615
616
|
if ((a = this.arrowHeartGroup) == null || a.removeAll(), !this.heartFight.isShow)
|
|
616
617
|
return;
|
|
617
618
|
if (this.leadModel.line !== 12 && this.leadModel.column !== 1) {
|
|
@@ -632,7 +633,7 @@ let u = class extends ee {
|
|
|
632
633
|
const s = (((o = (n = this.nearestHeartInfo.analyseValue) == null ? void 0 : n.KeyPosByBeat) == null ? void 0 : o.Rpoint) || 0) - e;
|
|
633
634
|
if (!(e > (((l = (d = this.nearestHeartInfo.analyseValue) == null ? void 0 : d.KeyPosByBeat) == null ? void 0 : l.Rpoint) || 0)) && !(!this.leadModel.isContinuous && !this.leadModel.add && s > (this.slidingWindowInfo.points || 0)) && !(this.leadModel.isSingleMode && s > (this.slidingWindowInfo.points || 0)) && !((((f = (r = this.nearestHeartInfo.analyseValue) == null ? void 0 : r.KeyPosByBeat) == null ? void 0 : f.Rpoint) || 0) - this.addSlidingWindowInfo.startInd > (this.addSlidingWindowInfo.points || 0))) {
|
|
634
635
|
if (this.nearestHeartInfo.insertInfo)
|
|
635
|
-
i = (s || 0) * t + this.leadHeadConfig.leadHedeWidth, (
|
|
636
|
+
i = (s || 0) * t + this.leadHeadConfig.leadHedeWidth, (g = this.arrowHeartGroup) == null || g.add(new j({
|
|
636
637
|
name: "draw_heart_line",
|
|
637
638
|
cursor: "",
|
|
638
639
|
shape: {
|
|
@@ -669,7 +670,7 @@ let u = class extends ee {
|
|
|
669
670
|
}
|
|
670
671
|
}
|
|
671
672
|
drawLoopArrow(e = 0) {
|
|
672
|
-
var h,
|
|
673
|
+
var h, g, H, M, x, I, L, y, C, w, p, A, V;
|
|
673
674
|
if (this.drawLoopArrowStartPosIdx = e, !this.heartFight.isShow)
|
|
674
675
|
return;
|
|
675
676
|
(h = this.arrowGroup) == null || h.removeAll(), this.heartFight.mode && this.currentHeardBeat.heardBeat === null && (this.currentHeardBeat.heardBeat = this.heartBeatPosition[this.heartFight.showIdxPai][this.heartFight.defaultSelect] || null, this.drawHeardBeatLine());
|
|
@@ -698,7 +699,7 @@ let u = class extends ee {
|
|
|
698
699
|
continue;
|
|
699
700
|
if (((S == null ? void 0 : S.position) || 0) - this.addSlidingWindowInfo.startInd > (this.addSlidingWindowInfo.points || 0))
|
|
700
701
|
break;
|
|
701
|
-
s = ((
|
|
702
|
+
s = ((g = this.AssistCtx) == null ? void 0 : g.measureText(`${(S == null ? void 0 : S.heart_style) || ""}`).width) || 0, t = r * (l || 0) + this.leadHeadConfig.leadHedeWidth - 0, a = 0, (H = this.arrowGroup) == null || H.add(new F({
|
|
702
703
|
name: "arrow_box",
|
|
703
704
|
cursor: "",
|
|
704
705
|
style: T(b({
|
|
@@ -782,7 +783,7 @@ let u = class extends ee {
|
|
|
782
783
|
const W = `${(v == null ? void 0 : v.telectricalaxis) || ""}`;
|
|
783
784
|
s = ((w = this.AssistCtx) == null ? void 0 : w.measureText(W).width) || 0;
|
|
784
785
|
const O = (N - B) / 2 - s / 2 + B;
|
|
785
|
-
(
|
|
786
|
+
(p = this.arrowGroup) == null || p.add(new F({
|
|
786
787
|
cursor: "",
|
|
787
788
|
style: b({
|
|
788
789
|
x: O,
|
|
@@ -798,7 +799,7 @@ let u = class extends ee {
|
|
|
798
799
|
this.$emit("notifyHeardBeat", he.clone(e)), this.currentHeardBeat.heardBeat = e, this.currentHeardBeat.ele = t, this.drawHeardBeatLine();
|
|
799
800
|
}
|
|
800
801
|
drawHeardBeatLine(e = 0) {
|
|
801
|
-
var a, n, o, d, l, r, f, h,
|
|
802
|
+
var a, n, o, d, l, r, f, h, g, H, M, x, I, L, y;
|
|
802
803
|
if (!this.currentHeardBeat.heardBeat)
|
|
803
804
|
return;
|
|
804
805
|
(a = this.heardBeatLineGroup) == null || a.removeAll();
|
|
@@ -812,19 +813,19 @@ let u = class extends ee {
|
|
|
812
813
|
if ((n = this.analyseValues[this.singleModeConfig.defaultSelect]) != null && n[this.currentHeardBeat.heardBeat.index])
|
|
813
814
|
t = ((l = (d = this.analyseValues[this.singleModeConfig.defaultSelect]) == null ? void 0 : d[this.currentHeardBeat.heardBeat.index]) == null ? void 0 : l.KeyPosByBeat) || t;
|
|
814
815
|
else {
|
|
815
|
-
let
|
|
816
|
+
let p = this.analyseValues.find((A) => {
|
|
816
817
|
var V;
|
|
817
818
|
return (V = A[this.currentHeardBeat.heardBeat.index]) == null ? void 0 : V.KeyPosByBeat;
|
|
818
819
|
});
|
|
819
|
-
if (!
|
|
820
|
+
if (!p)
|
|
820
821
|
break e;
|
|
821
|
-
|
|
822
|
+
p && (t = (o = p[this.currentHeardBeat.heardBeat.index]) == null ? void 0 : o.KeyPosByBeat), p = null;
|
|
822
823
|
}
|
|
823
|
-
for (const
|
|
824
|
-
if (this.heardBeatLineKeys.includes(
|
|
825
|
-
if (i = (t[
|
|
824
|
+
for (const p in t)
|
|
825
|
+
if (this.heardBeatLineKeys.includes(p)) {
|
|
826
|
+
if (i = (t[p] - this.slidingWindowInfo.startInd) * (C[w].step || 0), this.isLeadOff(w) || this.isLeadDel(w))
|
|
826
827
|
continue;
|
|
827
|
-
if (!this.leadModel.isContinuous && t[
|
|
828
|
+
if (!this.leadModel.isContinuous && t[p] - this.slidingWindowInfo.startInd > (this.slidingWindowInfo.points || 0))
|
|
828
829
|
break e;
|
|
829
830
|
s = C[w], (r = this.heardBeatLineGroup) == null || r.add(this.createHeardBeatLine(s.pos[0] + i, s.pos[1], this.singleModeConfig.defaultSelect + "_" + w, "single"));
|
|
830
831
|
}
|
|
@@ -833,28 +834,28 @@ let u = class extends ee {
|
|
|
833
834
|
} else {
|
|
834
835
|
let C = this.getRednerPoints(), w = this.getAddRednerPoints();
|
|
835
836
|
e:
|
|
836
|
-
for (let
|
|
837
|
-
t = ((h = (f = this.analyseValues[
|
|
837
|
+
for (let p = 0; p < C.length; p++) {
|
|
838
|
+
t = ((h = (f = this.analyseValues[p]) == null ? void 0 : f[this.currentHeardBeat.heardBeat.index]) == null ? void 0 : h.KeyPosByBeat) || t;
|
|
838
839
|
for (const A in t)
|
|
839
840
|
if (this.heardBeatLineKeys.includes(A) && Object.prototype.hasOwnProperty.call(t, A)) {
|
|
840
|
-
if (i = (t[A] - this.slidingWindowInfo.startInd) * (C[
|
|
841
|
+
if (i = (t[A] - this.slidingWindowInfo.startInd) * (C[p].step || 0), this.isLeadOff(p) || this.isLeadDel(p))
|
|
841
842
|
continue;
|
|
842
|
-
if (e > t[A] || !this.leadModel.isContinuous && t[A] - this.slidingWindowInfo.startInd > (this.slidingWindowInfo.points || 0) || (s = C[
|
|
843
|
+
if (e > t[A] || !this.leadModel.isContinuous && t[A] - this.slidingWindowInfo.startInd > (this.slidingWindowInfo.points || 0) || (s = C[p], this.leadModel.isContinuous && p > this.leadModel.line - 1))
|
|
843
844
|
break e;
|
|
844
|
-
(
|
|
845
|
+
(g = this.heardBeatLineGroup) == null || g.add(this.createHeardBeatLine(s.pos[0] + i, s.pos[1], p + "_" + p, "rowAndCol"));
|
|
845
846
|
}
|
|
846
847
|
}
|
|
847
848
|
e:
|
|
848
|
-
for (let
|
|
849
|
-
if (!!((H = this.analyseValues[
|
|
850
|
-
t = ((x = (M = this.analyseValues[
|
|
849
|
+
for (let p = 0; p < w.length; p++)
|
|
850
|
+
if (!!((H = this.analyseValues[p]) != null && H[this.currentHeardBeat.heardBeat.index])) {
|
|
851
|
+
t = ((x = (M = this.analyseValues[p]) == null ? void 0 : M[this.currentHeardBeat.heardBeat.index]) == null ? void 0 : x.KeyPosByBeat) || t;
|
|
851
852
|
for (const A in t)
|
|
852
853
|
if (this.heardBeatLineKeys.includes(A)) {
|
|
853
|
-
if (i = (t[A] - this.slidingWindowInfo.startInd) * (w[
|
|
854
|
+
if (i = (t[A] - this.slidingWindowInfo.startInd) * (w[p].step || 0), this.isLeadOff(this.longLeadConfig.leadIdxs[p]) && this.isLeadDel(this.longLeadConfig.leadIdxs[p]))
|
|
854
855
|
continue;
|
|
855
856
|
if (e > t[A])
|
|
856
857
|
break e;
|
|
857
|
-
s = w[
|
|
858
|
+
s = w[p], (I = this.heardBeatLineGroup) == null || I.add(this.createHeardBeatLine(s.pos[0] + i, s.pos[1], this.longLeadConfig.leadIdxs[p] + "_" + p, "add"));
|
|
858
859
|
}
|
|
859
860
|
}
|
|
860
861
|
C = null, w = null;
|
|
@@ -941,7 +942,7 @@ let u = class extends ee {
|
|
|
941
942
|
endInd: d,
|
|
942
943
|
sens: n,
|
|
943
944
|
step: a,
|
|
944
|
-
data: s.slice(o, d).map((h,
|
|
945
|
+
data: s.slice(o, d).map((h, g) => this.waveConfigs[i].gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[i].leadName) ? z(this.waveConfigs[i].sensitivity, h, n / 2) : z(this.waveConfigs[i].sensitivity, h, n)).map((h, g) => [g * (a || 0), -h])
|
|
945
946
|
}), i++);
|
|
946
947
|
}
|
|
947
948
|
return l;
|
|
@@ -1289,10 +1290,10 @@ c([
|
|
|
1289
1290
|
})
|
|
1290
1291
|
], u.prototype, "posStart", 2);
|
|
1291
1292
|
c([
|
|
1292
|
-
K(100)
|
|
1293
|
+
K(100, { leading: !0, trailing: !0 })
|
|
1293
1294
|
], u.prototype, "nativeScrollFunc", 1);
|
|
1294
1295
|
c([
|
|
1295
|
-
K(100)
|
|
1296
|
+
K(100, { leading: !0, trailing: !0 })
|
|
1296
1297
|
], u.prototype, "handleScroll", 1);
|
|
1297
1298
|
u = c([
|
|
1298
1299
|
te({
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import { throttle as
|
|
2
|
-
function
|
|
3
|
-
return function(
|
|
4
|
-
const
|
|
5
|
-
|
|
1
|
+
import { throttle as a, debounce as l } from "lodash";
|
|
2
|
+
function f(e, t) {
|
|
3
|
+
return function(c, u, o) {
|
|
4
|
+
const r = o.value;
|
|
5
|
+
o.value = a(r, e, t);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function v(e, t) {
|
|
9
|
+
return function(c, u, o) {
|
|
10
|
+
const r = o.value;
|
|
11
|
+
o.value = l(r, e, t);
|
|
6
12
|
};
|
|
7
13
|
}
|
|
8
14
|
export {
|
|
9
|
-
|
|
15
|
+
v as debounceDecorator,
|
|
16
|
+
f as throttleDecorator
|
|
10
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _=Object.defineProperty,z=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var T=Object.getOwnPropertySymbols;var X=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var N=(e,t,i)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,b=(e,t)=>{for(var i in t||(t={}))X.call(t,i)&&N(e,i,t[i]);if(T)for(var i of T(t))j.call(t,i)&&N(e,i,t[i]);return e},k=(e,t)=>z(e,V(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const $=require("vue"),Y=require("../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js");require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Emit.js");const v=require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Prop.js"),O=require("lodash"),u=require("@costy-plus/utils"),c=require("zrender"),q=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function K(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const E=q($),Q=K(c);var U=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,w=(e,t,i,s)=>{for(var a=s>1?void 0:s?Z(t,i):t,o=e.length-1,n;o>=0;o--)(n=e[o])&&(a=(s?n(t,i,a):n(a))||a);return s&&a&&U(t,i,a),a};exports.default=class extends E.default{constructor(){super(...arguments),this.AssistCtx=Object.freeze(null),this.sceneIns=Object.freeze(null),this.layerBgGroup=Object.freeze(null),this.leadHeadGroup=Object.freeze(null),this.splitLineGroup=Object.freeze(null),this.rowAndColwaveFromGroup=Object.freeze(null),this.singleWaveFromGroup=Object.freeze(null),this.addwaveFromGroup=Object.freeze(null),this.leadHeadNameGroup=Object.freeze(null),this.leadHeadOffAndDelGroup=Object.freeze(null),this.rulerGroup=Object.freeze(null),this.arrowGroup=Object.freeze(null),this.arrowHeartGroup=Object.freeze(null),this.heardBeatLineGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(10),this.totalRows=Object.freeze(0),this.rulerStep=Object.freeze(0),this.drawLoopArrowStartPosIdx=Object.freeze(0),this.dbClickWaveFromTime=Object.freeze(0),this.timersCopy=Object.freeze(0),this.nearestHeartInfo=Object.freeze({analyseValue:null,insertInfo:null}),this.range=Object.freeze(5e3),this.heartBeatPosition=[],this.currentHeardBeat={heardBeat:null,ele:null},this.loopArrowY=Object.freeze({add:0,rowAndCol:0}),this.fontFamily=Object.freeze("\u5FAE\u8F6F\u96C5\u9ED1"),this.ruleH=Object.freeze(40),this.splitBlockHeight=0,this.splitPoint=0,this.slidingWindowInfo=Object.freeze({}),this.addSlidingWindowInfo=Object.freeze({}),this.highestAndLowestPoint=Object.freeze({maxPoints:0,minPoints:0}),this.drawArea=Object.freeze({width:0,height:0}),this.vuescrollWH={width:0,height:0},this.waveDataCopy=[],this.addWaveDataCopy=[],this.singleWaveDataCopy=[],this.leadNameList=[],this.activeLeadIdx=Object.freeze(-1),this.publicStep=Object.freeze(0),this.sceneIsMouseDown=Object.freeze(!1),this.sceneIsMouseDownX=Object.freeze(0),this.lastScrollPointIdx=-1,this.lastScrollLeft=-1}get canvasContainer(){var e;return{width:this.width,height:this.height-(this.scrollConfig.isShow&&parseInt(`${(e=this.scrollConfig.bar)==null?void 0:e.size}`)||0)||0}}destroyed(){var e,t,i,s,a,o,n,d,l,r,f,h;this.sceneInsEventOff(),(e=this.rowAndColwaveFromGroup)==null||e.removeAll(),(t=this.singleWaveFromGroup)==null||t.removeAll(),(i=this.addwaveFromGroup)==null||i.removeAll(),(s=this.leadHeadGroup)==null||s.removeAll(),(a=this.splitLineGroup)==null||a.removeAll(),(o=this.leadHeadNameGroup)==null||o.removeAll(),(n=this.leadHeadOffAndDelGroup)==null||n.removeAll(),(d=this.rulerGroup)==null||d.removeAll(),(l=this.arrowGroup)==null||l.removeAll(),(r=this.arrowHeartGroup)==null||r.removeAll(),(f=this.heardBeatLineGroup)==null||f.removeAll(),(h=this.sceneIns)==null||h.dispose()}initCreatedConfig(){this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height,this.calcHeartBeatPositions(),this.initConfig()}init(){this.calcHeartBeatPositions(),this.initWaveFormPeer(),this.combinationDrawing(),this.registPostStart()}registPostStart(){this.posStart!==void 0&&this.posStart!==null&&(this.scrollConfig.isShow?this.$nextTick(()=>{var e;this.scrollConfig.isNativeScroll?(e=this.$refs[this.prefixId+"nativeScroll"])==null||e.scrollBy({left:(this.posStart||0)*(this.publicStep||1),top:0}):this.$refs[this.prefixId+"vueScroll"].scrollTo({x:(this.posStart||0)*(this.publicStep||1)})}):(this.scrollWaveFrom(this.posStart),this.scrollRuler(this.posStart),this.scrollArrow(this.posStart)))}resetScroll(e=0){this.scrollConfig.isShow?this.$nextTick(()=>{var t;this.scrollConfig.isNativeScroll?(t=this.$refs[this.prefixId+"nativeScroll"])==null||t.scrollBy({left:e,top:0}):this.$refs[this.prefixId+"vueScroll"].scrollTo({x:e})}):(this.scrollWaveFrom(e),this.scrollRuler(e),this.scrollArrow(e))}handleNotifyMeasurintRectPostion(e){let t=null;this.leadModel.isSingleMode&&this.singleWaveFromGroup?t=(this.singleWaveFromGroup._children||[]).find(i=>i.rectContain(e.x,e.y)||i.rectContain(e.x,e.yEnd)):(t=(this.rowAndColwaveFromGroup._children||[]).find(i=>i.rectContain(e.x,e.y)||i.rectContain(e.x,e.yEnd)),t||(t=(this.addwaveFromGroup._children||[]).find(i=>i.rectContain(e.x,e.y)||i.rectContain(e.x,e.yEnd)))),t&&this.$emit("notifyMeasurintConfig",t.sens)}combinationDrawing(e=!0){e&&(this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawRulerNotes()),this.drawWaveFrom()}calcHeartBeatPositions(){this.heartBeatPosition=[];let e=[],t=0;for(let i=0;i<this.analyseValues.length;i++){for(let s=1;s<this.analyseValues[i].length;s++)i!==1&&this.analyseValues[i][s].KeyPosByBeat.Rpoint===0||(this.analyseValues[i][s].AnabyBeat.VentricularRate===0||this.analyseValues[i][s].AnabyBeat.AtrialRate===0?t=0:t=Math.round(60/(this.analyseValues[i][s].AnabyBeat.VentricularRate||this.analyseValues[i][s].AnabyBeat.AtrialRate)*1e3),e.push({index:this.analyseValues[i][s].BeatID,position:this.analyseValues[i][s].KeyPosByBeat.Rpoint,heartrate:this.analyseValues[i][s].AnabyBeat.VentricularRate||this.analyseValues[i][s].AnabyBeat.AtrialRate,interval:t,telectricalaxis:this.analyseValues[i][s].AnabyBeat.TAxis===9999?this.range:this.analyseValues[i][s].AnabyBeat.TAxis,qrstCompany:(this.analyseValues[i][s].AnabyBeat.QRS_T===9999?this.range:this.analyseValues[i][s].AnabyBeat.QRS_T)+"\xB0",heart_style:this.analyseValues[i][s].heart_style}));this.heartBeatPosition.push(e)}e=null}initSlidingWindowInfo(){const e=this.publicStep||0,t=Math.ceil(this.splitPoint/e);if(this.slidingWindowInfo={points:this.slidingWindowInfo.points!==t||this.leadModel.isSingleMode?t:this.slidingWindowInfo.points,startInd:this.slidingWindowInfo.startInd||0,endInd:(this.slidingWindowInfo.startInd||0)+t},this.slidingWindowInfo.endInd>this.dataTotalLength&&(this.slidingWindowInfo.endInd=this.dataTotalLength),this.scrollConfig.isShow&&!this.leadModel.isSingleMode){const s=u.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),a=this.dataTotalLength*s;this.vuescrollWH.width=this.canvasContainer.width+(a||0)-this.splitPoint}const i=Math.ceil((this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/e);this.addSlidingWindowInfo={points:this.addSlidingWindowInfo.points!==i||this.leadModel.isSingleMode?i:this.addSlidingWindowInfo.points,startInd:this.addSlidingWindowInfo.startInd||0,endInd:(this.addSlidingWindowInfo.endInd||0)+i},this.addSlidingWindowInfo.endInd>this.dataTotalLength&&(this.addSlidingWindowInfo.endInd=this.dataTotalLength)}calcHighestAndLowestPoint(){const e=O.flattenDeep(this.waveLists);return{maxPoints:O.max(e)||0,minPoints:O.min(e)||0}}isLeadOff(e){return!!this.waveConfigs[e].isLeadOff}isLeadDel(e){return!!this.waveConfigs[e].isLeadDelete}initConfig(){var t;this.rowAndColwaveFromGroup=new c.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new c.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new c.Group({name:"addwaveFrom"}),this.leadHeadGroup=new c.Group({name:"leadHead"}),this.splitLineGroup=new c.Group({name:"splitLine"}),this.leadHeadNameGroup=new c.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new c.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new c.Group({name:"ruler"}),this.arrowGroup=new c.Group({name:"arrowLoop"}),this.arrowHeartGroup=new c.Group({name:"arrowHeart"}),this.heardBeatLineGroup=new c.Group({name:"heardBeatLine"});let e=this.canvasContainer.width;if(this.leadModel.ecgareawidth===1){const i=u.getPrintLengthToPx(((t=this.waveConfigs[0])==null?void 0:t.sampleRate)||0)+this.leadHeadConfig.leadHedeWidth;i<=e&&(e=i)}else if(this.leadModel.isContinuous){const i=u.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),s=this.dataTotalLength*i;!this.leadModel.isSingleMode&&(s||0)<e-this.leadHeadConfig.leadHedeWidth&&(e=(s||0)+this.leadHeadConfig.leadHedeWidth)}this.drawArea={width:e,height:this.canvasContainer.height-this.bottomAreaHeight-30},this.slidingWindowInfo={points:this.slidingWindowInfo.points||0,startInd:this.slidingWindowInfo.startInd||0,endInd:this.slidingWindowInfo.endInd||0},this.addSlidingWindowInfo={points:this.addSlidingWindowInfo.points||0,startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0},this.loopArrowY={add:0,rowAndCol:0},this.currentHeardBeat={heardBeat:null,ele:null},this.leadNameList=this.leadNames.map((i,s)=>s)||[],this.totalRows=this.leadModel.line+this.leadModel.add||1,this.highestAndLowestPoint=this.calcHighestAndLowestPoint(),this.leadModel.isSingleMode?(this.splitBlockHeight=Math.abs(this.highestAndLowestPoint.maxPoints)+Math.abs(this.highestAndLowestPoint.minPoints)+22,this.splitBlockHeight>this.drawArea.height&&(this.splitBlockHeight=this.drawArea.height/6)):this.splitBlockHeight=this.drawArea.height/this.totalRows,this.publicStep=u.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),this.rulerStep=(this.publicStep||1)*(this.leadModel.publicSampleRate||1)/(this.gridConfig.cellMg*2+2)}initWaveFormPeer(){var i;(i=this.sceneIns)==null||i.dispose(),this.AssistCtx=null;const e=document.getElementById(`${this.prefixId}wave-from-box`);this.sceneIns=Q.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:1});const t=document.getElementById(`${this.prefixId}MXGrid`);this.AssistCtx=t.getContext("2d"),this.sceneInsEventOff(),this.sceneIns.on("mousemove",this.sceneInsMousemove),this.sceneIns.on("mousedown",this.sceneInsMouseDown),this.sceneIns.on("mouseup",this.sceneInsMouseUp),this.sceneIns.on("click",this.sceneInsClick),this.sceneIns.on("contextmenu",this.sceneInsContextmenu)}sceneInsClick(e){var l,r,f,h;if(!this.heartFight.isShow||!this.heartFight.isClickArrow)return;this.nearestHeartInfo={analyseValue:null,insertInfo:null};const t=e.offsetX-this.waveDataCopy[0].pos[0],i=this.waveDataCopy[0].startInd||0;let s=u.getPointIdxForPx(t,this.waveDataCopy[0].step||1);if(s+=i,s<=0)return;const a=.15*this.waveConfigs[this.heartFight.showIdxPai].sampleRate;let o=null,n=-1,d=1/0;for(let p=0;p<this.analyseValues.length;p++){const H=this.analyseValues[p],P=p!==1?H.filter((L,S)=>{var m;return S===0||((m=L.KeyPosByBeat)==null?void 0:m.Rpoint)!==0}):H;let M=0,y=P.length-1;for(;M<=y;){const L=Math.floor((M+y)/2),S=P[L],m=(l=S.KeyPosByBeat)==null?void 0:l.Rpoint;if(m===void 0)break;const C=Math.abs(s-m);C<=a&&C<d&&(d=C,o=S,n=p),m<s?M=L+1:y=L-1}}if(o)this.nearestHeartInfo={analyseValue:o,insertInfo:null};else{let p=-1,H=1/0,P=-1,M=-1;for(let y=0;y<this.analyseValues.length;y++){const L=this.analyseValues[y];for(let S=0;S<L.length;S++){const m=L[S];if(y!==1&&S>0&&((r=m.KeyPosByBeat)==null?void 0:r.Rpoint)===0)continue;const C=(f=m.KeyPosByBeat)==null?void 0:f.Rpoint;if(C===void 0)continue;const g=Math.abs(s-C);g<H&&(H=g,M=y,s<C?P=S:y!==1&&((h=m.KeyPosByBeat)==null?void 0:h.Rpoint)===0&&S===0?P=1:P=S+1)}}M!==-1&&(n=M,p=P,this.nearestHeartInfo={analyseValue:{AnabyBeat:{QTd:0,QTc:0,SV3Amp:0,PR:0,QTcd:0,BeatType:-1,SV1Amp:0,QT:0,QRSAxis:0,SV5Amp:0,TAxis:0,AtrialRate:0,Td:0,RV5Amp:0,VentricularRate:0,Pd:0,QRSd:0,RV3Amp:0,PAxis:0,RV1Amp:0,QTdr:0,QRS_T:0},KeyPosByBeat:{Rpoint:s,PPpeak:0,Tend:0,PPstart:0,Tpeak:0,TPpeak:0,QRSend:0,Pend:0,Tstart:0,Ppeak:0,SPpoint:0,PPend:0,TPend:0,QRSstart:0,Pstart:0,TPstart:0},ecg_info_detail:[],BeatID:-1,heart_style:""},insertInfo:{listIndex:n,insertIndex:p,pointIdx:s,distanceToNearest:H}})}this.$emit("notifySceneClick",{event:e,offsetX:e.offsetX,offsetY:e.offsetY,nearestHeartInfo:O.cloneDeep(this.nearestHeartInfo)}),this.drawHeartReact(this.drawLoopArrowStartPosIdx)}sceneInsContextmenu(e){e.event.preventDefault(),this.$emit("notifySceneContextmenu",{event:e,offsetX:e.offsetX,offsetY:e.offsetY,nearestHeartInfo:O.cloneDeep(this.nearestHeartInfo)})}sceneInsMousemove(e){var t;this.sceneIsMouseDown&&(this.scrollConfig.isNativeScroll?(t=this.$refs[`${this.prefixId}nativeScroll`])==null||t.scrollBy({left:e.offsetX-this.sceneIsMouseDownX,top:0}):this.$refs[`${this.prefixId}vueScroll`].scrollBy({dx:e.offsetX-this.sceneIsMouseDownX}))}sceneInsMouseDown(e){this.sceneIsMouseDown=!0,this.sceneIsMouseDownX=e.offsetX}sceneInsMouseUp(e){this.sceneIsMouseDown=!1}sceneInsEventOff(){var e,t,i,s,a;(e=this.sceneIns)==null||e.off("mousemove",this.sceneInsMousemove),(t=this.sceneIns)==null||t.off("mousedown",this.sceneInsMouseDown),(i=this.sceneIns)==null||i.off("mouseup",this.sceneInsMouseUp),(s=this.sceneIns)==null||s.off("click",this.sceneInsClick),(a=this.sceneIns)==null||a.off("contextmenu",this.sceneInsContextmenu)}drawLeadHead(){var i,s,a,o,n,d;(i=this.leadHeadGroup)==null||i.removeAll(),(s=this.sceneIns)==null||s.remove(this.leadHeadGroup);let e="",t=!1;e:for(let l=1;l<=this.totalRows;l++){if(t=!1,!(this.waveConfigs||[])[l-1])break e;if(!!this.waveConfigs[l-1].isShowLeadHead){if(l<=this.leadModel.line)e=(this.leadNames||[])[l-1]||"",this.waveConfigs[l-1].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),this.leadHeadConfig.isShowLeadCalibration!==!1&&((a=this.leadHeadGroup)==null||a.add(this.createLeadHead(0,this.waveConfigs[l-1].posY||l*this.splitBlockHeight,u.getSens(this.waveConfigs[l-1].isFixedSquareWaveSize?this.waveConfigs[l-1].fixedSquareWaveSizeGain:this.waveConfigs[l-1].gain,this.gridConfig.cellMg),t)));else if(l>this.leadModel.line&&l-this.leadModel.line<=this.leadModel.add){if(!this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]])continue;e=this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[l-this.leadModel.line-1]]],this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),this.leadHeadConfig.isShowLeadCalibration!==!1&&((n=this.leadHeadGroup)==null||n.add(this.createLeadHead(0,((o=this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]])==null?void 0:o.posY)||l*this.splitBlockHeight,u.getSens(this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].isFixedSquareWaveSize?this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].fixedSquareWaveSizeGain:this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].gain,this.gridConfig.cellMg),t)))}}}(d=this.sceneIns)==null||d.add(this.leadHeadGroup)}createLeadHead(e,t,i,s){const a=this.leadHeadConfig.leadHedeWidth/4;return i=s?i/2:i,new c.Polyline({cursor:"",shape:{points:[[0+e,0+t],[a+e,0+t],[a+e,-i+t],[3*a+e,-i+t],[3*a+e,0+t],[4*a+e,0+t]]},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawColSplitLine(){var o,n,d,l,r;(o=this.splitLineGroup)==null||o.removeAll(),(n=this.sceneIns)==null||n.remove(this.splitLineGroup);const e=(this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/(this.leadModel.column||1);if(this.splitPoint=e,this.leadModel.isSingleMode){const f=u.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),h=u.getDataLenTimes(Math.ceil(this.splitPoint/(f||1))||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),p=parseInt(`${h/1e3%60}`,10);this.splitPoint=p*(this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0)*(f||0)}let t=0,i=0,s=0,a=0;for(let f=1;f<=this.leadModel.column-1;f++){t=f*e+this.leadHeadConfig.leadHedeWidth,i=f*this.leadModel.line;e:for(let h=1;h<=this.leadModel.line;h++){if(!(this.waveConfigs||[])[h-1+i])break e;if((this.waveConfigs||[])[h-1+i].posX!==void 0&&(t=(this.waveConfigs||[])[h-1+i].posX),s=(this.waveConfigs||[])[h-1+i].leadIdx,s===void 0)break;a=u.getSens((this.waveConfigs||[])[h-1+i].isFixedSquareWaveSize?(this.waveConfigs||[])[h-1+i].fixedSquareWaveSizeGain:(this.waveConfigs||[])[h-1+i].gain,this.gridConfig.cellMg),(this.waveConfigs||[])[h-1+i].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.leadNames[s])?(d=this.splitLineGroup)==null||d.add(this.creatSplitLine(t,((this.waveConfigs||[])[h-1+i].posY||h*this.splitBlockHeight)-(a||0)/2*.5,a,!0)):(l=this.splitLineGroup)==null||l.add(this.creatSplitLine(t,((this.waveConfigs||[])[h-1+i].posY||h*this.splitBlockHeight)-(a||0)*.5,a))}}(r=this.sceneIns)==null||r.add(this.splitLineGroup)}creatSplitLine(e,t,i,s){return new c.Line({cursor:"",shape:{x1:0+e,y1:0+t,x2:0+e,y2:(s?(i||0)/2:i||0)+t},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawRulerNotes(){var s,a;if(!this.rulerConfig.isShow)return;const e={fill:"#FF0080",fontSize:13,fontFamily:this.fontFamily},t=new c.Text({cursor:"",style:b({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),i=new c.Text({style:b({text:this.rulerConfig.renderText||`${this.rulerConfig.gainName} ${this.rulerConfig.speedName}`,x:this.leadHeadConfig.leadHedeWidth/2+20,y:this.canvasContainer.height-this.ruleH},e)});(s=this.sceneIns)==null||s.add(i),(a=this.sceneIns)==null||a.add(t)}drawRuler(e=0){var d,l,r,f,h;if(this.timersCopy=e,(d=this.rulerGroup)==null||d.removeAll(),!this.rulerConfig.isShow)return;const t=this.canvasContainer.height,i=this.dataTotalTimes*2;let s=this.leadHeadConfig.leadHedeWidth,a=0,o=i;const n=u.getStepForSpeed(this.rulerConfig.speed,this.gridConfig.cellMg,this.rulerConfig.sampleRate);if(this.leadModel.isContinuous)o=i*1.1;else if(!this.leadModel.add&&n){const p=u.getPointIdxForPx(this.splitPoint*(this.leadModel.column||1),n),H=u.getDataLenTimes(p,this.rulerConfig.sampleRate||0)/1e3;o=e+H}for(let p=e;p<=o;p=+(p+.1).toFixed(1))p!==e&&(s+=this.rulerStep),p%1===0?(a=t-10,(l=this.rulerGroup)==null||l.add(new c.Text({cursor:"",style:{x:s,y:a-15,text:p+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):a=t-5,(r=this.rulerGroup)==null||r.add(new c.Line({cursor:"",shape:{x1:s,y1:a,x2:s,y2:t},style:{stroke:"#FF0080",lineWidth:2}}));(f=this.rulerGroup)!=null&&f.__zr||(h=this.sceneIns)==null||h.add(this.rulerGroup)}drawWaveFrom(){var e,t,i,s,a;(e=this.leadHeadNameGroup)==null||e.removeAll(),(t=this.leadHeadOffAndDelGroup)==null||t.removeAll(),this.leadModel.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(i=this.sceneIns)==null||i.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(s=this.sceneIns)==null||s.add(this.rowAndColwaveFromGroup),(a=this.sceneIns)==null||a.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(this.timersCopy),this.drawLoopArrow(this.drawLoopArrowStartPosIdx),this.drawHeartReact(this.drawLoopArrowStartPosIdx)}getRednerSinglePoints(){let e=0,t=0;const i=this.waveLists[this.singleModeConfig.defaultSelect]||[];let s=this.slidingWindowInfo.startInd||0,a=this.slidingWindowInfo.endInd||0;const o=u.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),n=u.getSens(this.waveConfigs[this.singleModeConfig.defaultSelect].gain,this.gridConfig.cellMg),d=[],l=Math.ceil(i.length/(this.slidingWindowInfo.points||1));for(let r=0;r<1;r++){e=r*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let f=1;f<=l;f++)t=f*this.splitBlockHeight,f>1&&(t*=.8,s=a,a=s+(this.slidingWindowInfo.points||0)),f===1&&(this.loopArrowY.rowAndCol=t),d.push({pos:[e,t],startInd:s,endInd:a,step:o,sens:n,data:i.slice(s,a).map((h,p)=>this.waveConfigs[this.singleModeConfig.defaultSelect].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName)?u.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,h,n/2):u.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,h,n)).map((h,p)=>[p*(o||0),-h])})}return d}createSingleWaveFrom(){var n,d,l;(n=this.singleWaveFromGroup)==null||n.removeAll();let e=this.getRednerSinglePoints(),t=u.getDataLenTimes(this.slidingWindowInfo.points||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0);const i=t;let s=0,a=0,o=0;for(let r=0;r<e.length&&!(e[r].pos[1]>this.drawArea.height+this.bottomAreaHeight);r++)this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx)||(s=parseInt(`${t/1e3/60}`,10),a=parseInt(`${t/1e3%60}`,10),s=a===60?s+=1:s,s=s===0?"00":s<10?`0${s}`:s,a=a===0||a===60?"00":a<10?`0${a}`:a,(d=this.singleWaveFromGroup)==null||d.add(new c.Polyline({cursor:"",name:this.singleModeConfig.defaultSelect+"_"+r,sens:e[r].sens,shape:{points:e[r].data.map(([f,h],p)=>isNaN(h)?(o===0&&(o=p-1,o=o<0?0:o),[e[r].data[o][0]+e[r].pos[0],e[r].data[o][1]+e[r].pos[1]]):(o=0,[f+e[r].pos[0],h+e[r].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:f=>{this.onDbClickWaveFrom(f,"single")},oncontextmenu:f=>{this.onContextmenu(f,"single")}})),t/1e3<this.dataTotalTimes&&((l=this.singleWaveFromGroup)==null||l.add(new c.Text({cursor:"",style:{x:e[r].pos[0],y:e[r].pos[1]-(e[r].sens||0)/2,text:r===0?"00:00 \u5FC3\u7387":`${s}:${a} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}}))),r>0&&(t+=i)),this.createLeadName(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx,e[0].pos[0]-10,e[0].pos[1]+10),this.createLeadOffAndDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx,e[0].pos[0]-5,e[0].pos[1]-(e[r].sens||0)/2-15),this.waveConfigs[this.singleModeConfig.defaultSelect].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[this.singleModeConfig.defaultSelect].squareWaveSens,e[0].pos[0]-10,e[0].pos[1]+10);this.singleWaveDataCopy=e,e=null}drawHeartReact(e=0){var a,o,n,d,l,r,f,h,p,H,P;if((a=this.arrowHeartGroup)==null||a.removeAll(),!this.heartFight.isShow)return;if(this.leadModel.line!==12&&this.leadModel.column!==1){this.nearestHeartInfo={analyseValue:null,insertInfo:null};return}if(!this.nearestHeartInfo.analyseValue)return;const t=u.getStepForSpeed(this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,this.waveConfigs[this.heartFight.showIdxPai].sampleRate);let i=0;const s=(((n=(o=this.nearestHeartInfo.analyseValue)==null?void 0:o.KeyPosByBeat)==null?void 0:n.Rpoint)||0)-e;if(!(e>(((l=(d=this.nearestHeartInfo.analyseValue)==null?void 0:d.KeyPosByBeat)==null?void 0:l.Rpoint)||0))&&!(!this.leadModel.isContinuous&&!this.leadModel.add&&s>(this.slidingWindowInfo.points||0))&&!(this.leadModel.isSingleMode&&s>(this.slidingWindowInfo.points||0))&&!((((f=(r=this.nearestHeartInfo.analyseValue)==null?void 0:r.KeyPosByBeat)==null?void 0:f.Rpoint)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))){if(this.nearestHeartInfo.insertInfo)i=(s||0)*t+this.leadHeadConfig.leadHedeWidth,(p=this.arrowHeartGroup)==null||p.add(new c.Line({name:"draw_heart_line",cursor:"",shape:{x1:i,y1:0,x2:i,y2:this.canvasContainer.height-2},style:{stroke:"#E07F26",lineWidth:2}}));else{const M=.1*this.waveConfigs[this.heartFight.showIdxPai].sampleRate;i=((s||0)-M/2)*t+this.leadHeadConfig.leadHedeWidth;const y=(M*2+1)*t;(h=this.arrowHeartGroup)==null||h.add(new c.Rect({name:"draw_heart_rect",style:{fill:"#FF87E5",opacity:.64},shape:{x:i,y:0,width:y,height:this.canvasContainer.height-2},cursor:""}))}(H=this.arrowHeartGroup)!=null&&H.__zr||(P=this.sceneIns)==null||P.add(this.arrowHeartGroup)}}drawLoopArrow(e=0){var h,p,H,P,M,y,L,S,m,C,g,F,R;if(this.drawLoopArrowStartPosIdx=e,!this.heartFight.isShow)return;(h=this.arrowGroup)==null||h.removeAll(),this.heartFight.mode&&this.currentHeardBeat.heardBeat===null&&(this.currentHeardBeat.heardBeat=this.heartBeatPosition[this.heartFight.showIdxPai][this.heartFight.defaultSelect]||null,this.drawHeardBeatLine());let t=0,i=0;if(this.leadModel.add){const B=u.getSens(this.waveConfigs[this.longLeadConfig.leadIdxs[0]].gain,this.gridConfig.cellMg);i=this.loopArrowY.add-(B||0)-this.splitBlockHeight/3.5}else this.leadModel.column===1?i=0:i=20;let s=0,a=0;const o={fontSize:12,fill:"#FF0000",fontFamily:this.fontFamily};let n=0,d=0;const l=u.getStepForSpeed(this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,this.waveConfigs[this.heartFight.showIdxPai].sampleRate);let r=0,f=0;for(let B=0;B<(this.heartBeatPosition[this.heartFight.showIdxPai]||[]).length;B++){const W=this.heartBeatPosition[this.heartFight.showIdxPai][B];if(r=((W==null?void 0:W.position)||0)-e,e>((W==null?void 0:W.position)||0)||!this.leadModel.isContinuous&&!this.leadModel.add&&r>(this.slidingWindowInfo.points||0)||this.leadModel.isSingleMode&&r>(this.slidingWindowInfo.points||0))continue;if(((W==null?void 0:W.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;s=((p=this.AssistCtx)==null?void 0:p.measureText(`${(W==null?void 0:W.heart_style)||""}`).width)||0,t=r*(l||0)+this.leadHeadConfig.leadHedeWidth-0,a=0,(H=this.arrowGroup)==null||H.add(new c.Text({name:"arrow_box",cursor:"",style:k(b({x:t,y:i+10,text:`${(W==null?void 0:W.heart_style)||""}`},o),{fill:"#333"}),onclick:x=>{!this.heartFight.mode&&this.heartFight.isClickArrow},oncontextmenu:x=>{x.event.preventDefault(),!this.heartFight.mode&&this.heartFight.isClickArrow}}));let A=t,G=0;const I=this.heartBeatPosition[this.heartFight.showIdxPai][B+1]||null;if(this.heartFight.isHeartRateCalculatedBasedOnInterval)if(B>0){const x=this.heartBeatPosition[this.heartFight.showIdxPai][B-1];if(x){const D=(x.position||0)-e;if(!this.leadModel.isContinuous&&!this.leadModel.add&&D>(this.slidingWindowInfo.points||0))continue;A=D*(l||0)+this.leadHeadConfig.leadHedeWidth,G=t,d=u.calcMs(Math.abs(((W==null?void 0:W.position)||0)-(x.position||0))*(l||0),this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,1),n=d!==0&&u.calcBpm(d)||0}}else continue;else{if(!I||(f=((I==null?void 0:I.position)||0)-e,!this.leadModel.isContinuous&&!this.leadModel.add&&f>(this.slidingWindowInfo.points||0))||this.leadModel.isSingleMode&&f>(this.slidingWindowInfo.points||0))continue;if(((I==null?void 0:I.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;A=t,G=f*(l||0)+this.leadHeadConfig.leadHedeWidth,n=(I==null?void 0:I.heartrate)||0}if(a=0,this.heartFight.heartrate){s=((P=this.AssistCtx)==null?void 0:P.measureText(`${n||""}`).width)||0;const x=(G-A)/2-s/2+A;(M=this.arrowGroup)==null||M.add(new c.Text({cursor:"",style:b({x,y:a+i+5,text:`${n||""}`},o)})),a+=12}if(this.heartFight.interval){let x=`${(I==null?void 0:I.interval)||""}`;this.heartFight.isIntervalCalculatedBasedOnHeartRate&&(x=`${Math.round(6e4/n)}`),s=((y=this.AssistCtx)==null?void 0:y.measureText(x).width)||0;const D=(G-A)/2-s/2+A;(L=this.arrowGroup)==null||L.add(new c.Text({cursor:"",style:b({x:D,y:a+i+5,text:x},o)})),a+=12}if(this.heartFight.qrstCompany){const x=(I==null?void 0:I.qrstCompany)||"";s=((S=this.AssistCtx)==null?void 0:S.measureText(x).width)||0;const D=(G-A)/2-s/2+A;(m=this.arrowGroup)==null||m.add(new c.Text({cursor:"",style:b({x:D,y:a+i+5,text:x},o)})),a+=12}if(this.heartFight.telectricalaxis){const x=`${(I==null?void 0:I.telectricalaxis)||""}`;s=((C=this.AssistCtx)==null?void 0:C.measureText(x).width)||0;const D=(G-A)/2-s/2+A;(g=this.arrowGroup)==null||g.add(new c.Text({cursor:"",style:b({x:D,y:a+i+5,text:x},o)}))}}(F=this.arrowGroup)!=null&&F.__zr||(R=this.sceneIns)==null||R.add(this.arrowGroup)}arrowLoopClick(e,t){this.$emit("notifyHeardBeat",c.util.clone(e)),this.currentHeardBeat.heardBeat=e,this.currentHeardBeat.ele=t,this.drawHeardBeatLine()}drawHeardBeatLine(e=0){var a,o,n,d,l,r,f,h,p,H,P,M,y,L,S;if(!this.currentHeardBeat.heardBeat)return;(a=this.heardBeatLineGroup)==null||a.removeAll();let t={},i=0,s;if(this.leadModel.isSingleMode){let m=this.getRednerSinglePoints();e:for(let C=0;C<m.length;C++){if(C>=1||this.leadNames[this.singleModeConfig.defaultSelect]==="M")break e;if((o=this.analyseValues[this.singleModeConfig.defaultSelect])!=null&&o[this.currentHeardBeat.heardBeat.index])t=((l=(d=this.analyseValues[this.singleModeConfig.defaultSelect])==null?void 0:d[this.currentHeardBeat.heardBeat.index])==null?void 0:l.KeyPosByBeat)||t;else{let g=this.analyseValues.find(F=>{var R;return(R=F[this.currentHeardBeat.heardBeat.index])==null?void 0:R.KeyPosByBeat});if(!g)break e;g&&(t=(n=g[this.currentHeardBeat.heardBeat.index])==null?void 0:n.KeyPosByBeat),g=null}for(const g in t)if(this.heardBeatLineKeys.includes(g)){if(i=(t[g]-this.slidingWindowInfo.startInd)*(m[C].step||0),this.isLeadOff(C)||this.isLeadDel(C))continue;if(!this.leadModel.isContinuous&&t[g]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0))break e;s=m[C],(r=this.heardBeatLineGroup)==null||r.add(this.createHeardBeatLine(s.pos[0]+i,s.pos[1],this.singleModeConfig.defaultSelect+"_"+C,"single"))}}m=null}else{let m=this.getRednerPoints(),C=this.getAddRednerPoints();e:for(let g=0;g<m.length;g++){t=((h=(f=this.analyseValues[g])==null?void 0:f[this.currentHeardBeat.heardBeat.index])==null?void 0:h.KeyPosByBeat)||t;for(const F in t)if(this.heardBeatLineKeys.includes(F)&&Object.prototype.hasOwnProperty.call(t,F)){if(i=(t[F]-this.slidingWindowInfo.startInd)*(m[g].step||0),this.isLeadOff(g)||this.isLeadDel(g))continue;if(e>t[F]||!this.leadModel.isContinuous&&t[F]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0)||(s=m[g],this.leadModel.isContinuous&&g>this.leadModel.line-1))break e;(p=this.heardBeatLineGroup)==null||p.add(this.createHeardBeatLine(s.pos[0]+i,s.pos[1],g+"_"+g,"rowAndCol"))}}e:for(let g=0;g<C.length;g++)if(!!((H=this.analyseValues[g])!=null&&H[this.currentHeardBeat.heardBeat.index])){t=((M=(P=this.analyseValues[g])==null?void 0:P[this.currentHeardBeat.heardBeat.index])==null?void 0:M.KeyPosByBeat)||t;for(const F in t)if(this.heardBeatLineKeys.includes(F)){if(i=(t[F]-this.slidingWindowInfo.startInd)*(C[g].step||0),this.isLeadOff(this.longLeadConfig.leadIdxs[g])&&this.isLeadDel(this.longLeadConfig.leadIdxs[g]))continue;if(e>t[F])break e;s=C[g],(y=this.heardBeatLineGroup)==null||y.add(this.createHeardBeatLine(s.pos[0]+i,s.pos[1],this.longLeadConfig.leadIdxs[g]+"_"+g,"add"))}}m=null,C=null}(L=this.heardBeatLineGroup)!=null&&L.__zr||(S=this.sceneIns)==null||S.add(this.heardBeatLineGroup),t=null}createHeardBeatLine(e,t,i,s){return new c.Line({name:i,cursor:"",shape:{x1:e,y1:t-15,x2:e,y2:t+15},style:{stroke:"blue",lineWidth:1},oncontextmenu:a=>{this.onContextmenu(a,s)}})}drawLeadHeadNameAndOffOrDel(){var e,t;(e=this.sceneIns)==null||e.add(this.leadHeadNameGroup),(t=this.sceneIns)==null||t.add(this.leadHeadOffAndDelGroup)}getAddRednerPoints(){const e=[];let t=this.leadHeadConfig.leadHedeWidth,i=0,s=0,a=[],o=0,n=0;for(let d=0;d<this.leadModel.add;d++)s=this.longLeadConfig.leadIdxs[d],this.waveConfigs[s]&&(t=this.waveConfigs[s].addPosX||t,o=u.getStepForSpeed(this.waveConfigs[s].speed,this.gridConfig.cellMg,this.waveConfigs[s].sampleRate),n=u.getSens(this.waveConfigs[s].gain,this.gridConfig.cellMg),i=this.waveConfigs[s].addPosY||(d+this.leadModel.line+1)*this.splitBlockHeight,a=this.waveLists[s]||[],d===0&&(this.loopArrowY.add=i),e.push({pos:[t,i],startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0,data:a.slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((l,r)=>this.waveConfigs[s].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[s].leadName)?u.getActualY(this.waveConfigs[s].sensitivity,l,n/2):u.getActualY(this.waveConfigs[s].sensitivity,l,n)).map((l,r)=>[r*(o||0),-l]),sens:n,step:o}));return e}createAddWaveFrom(){var i,s;(i=this.addwaveFromGroup)==null||i.removeAll();let e=this.getAddRednerPoints(),t=0;for(let a=0;a<e.length;a++)this.isLeadDel(this.longLeadConfig.leadIdxs[a])||((s=this.addwaveFromGroup)==null||s.add(new c.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[a]+"_"+a,sens:e[a].sens,shape:{points:e[a].data.map(([o,n],d)=>isNaN(n)?(t===0&&(t=d-1,t=t<0?0:t),[e[a].data[t][0]+e[a].pos[0],e[a].data[t][1]+e[a].pos[1]]):(t=0,[o+e[a].pos[0],n+e[a].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:o=>{this.onDbClickWaveFrom(o,"add")},oncontextmenu:o=>{this.onContextmenu(o,"add")}})),this.createLeadName(this.longLeadConfig.leadNames[a],e[a].pos[0],e[a].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[a],e[a].pos[0]-5,e[a].pos[1]-(e[a].sens||0)/2-15),this.waveConfigs[this.longLeadConfig.leadIdxs[a]].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[this.longLeadConfig.leadIdxs[a]].squareWaveSens,e[a].pos[0],e[a].pos[1]-15));this.addWaveDataCopy=e,e=null}getRednerPoints(){let e=0,t=0,i=0,s=[],a=0,o=0,n=this.slidingWindowInfo.startInd||0,d=this.slidingWindowInfo.endInd||0;const l=[];for(let r=0;r<this.leadModel.column;r++){e=r*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&r>0&&(n=d,d=n+(this.slidingWindowInfo.points||0));for(let f=1;f<=this.leadModel.line&&(t=f*this.splitBlockHeight,!(i>(this.waveLists||[]).length-1));f++)e=this.waveConfigs[i].posX||e,t=this.waveConfigs[i].posY||t,a=u.getStepForSpeed(this.waveConfigs[i].speed,this.gridConfig.cellMg,this.waveConfigs[i].sampleRate),o=u.getSens(this.waveConfigs[i].gain,this.gridConfig.cellMg),s=this.waveLists[i]||[],this.waveConfigs[i]&&(f===1&&(this.loopArrowY.rowAndCol=t),l.push({pos:[e,t],startInd:n,endInd:d,sens:o,step:a,data:s.slice(n,d).map((h,p)=>this.waveConfigs[i].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[i].leadName)?u.getActualY(this.waveConfigs[i].sensitivity,h,o/2):u.getActualY(this.waveConfigs[i].sensitivity,h,o)).map((h,p)=>[p*(a||0),-h])}),i++)}return l}createRowAndColWaveFrom(){var s,a;(s=this.rowAndColwaveFromGroup)==null||s.removeAll();let e=this.getRednerPoints(),t=0,i=0;for(let o=0;o<e.length;o++)t=this.waveConfigs[o].leadIdx||0,this.isLeadDel(t)||(a=this.rowAndColwaveFromGroup)==null||a.add(new c.Polyline({cursor:"",name:o+"_"+o,sens:e[o].sens,shape:{points:e[o].data.map(([n,d],l)=>isNaN(d)?(i===0&&(i=l-1,i=i<0?0:i),[e[o].data[i][0]+e[o].pos[0],e[o].data[i][1]+e[o].pos[1]]):(i=0,[n+e[o].pos[0],d+e[o].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:n=>{this.onDbClickWaveFrom(n,"rowAndCol")},oncontextmenu:n=>{this.onContextmenu(n,"rowAndCol")}})),o<this.leadModel.line?(this.createLeadName(t,e[o].pos[0],e[o].pos[1]-15),this.createLeadOffAndDel(t,e[o].pos[0]-5,e[o].pos[1]-(e[o].sens||0)/2-15),this.waveConfigs[o].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[o].squareWaveSens,e[o].pos[0],e[o].pos[1]-15)):(this.createLeadName(t,e[o].pos[0]+5,e[o].pos[1]-40),this.createLeadOffAndDel(t,e[o].pos[0]-5,e[o].pos[1]-(e[o].sens||0)/2+9),this.waveConfigs[o].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[o].squareWaveSens,e[o].pos[0],e[o].pos[1]-15));this.waveDataCopy=e,e=null}createLeadSensNams(e,t,i){var a;let s=t;this.leadHeadConfig.isShowLeadCalibration===!1&&(this.leadModel.isSingleMode?s=t-this.leadHeadConfig.leadHedeWidth+12:s=t-this.leadHeadConfig.leadHedeWidth+5),this.leadHeadConfig.isShowLeadCalibration&&this.leadHeadConfig.isCalibrationDisplayedBelow&&(t<=this.leadHeadConfig.leadHedeWidth&&(this.leadModel.isSingleMode?s=t-this.leadHeadConfig.leadHedeWidth+12:s=t-this.leadHeadConfig.leadHedeWidth+5),i=i+40),(a=this.leadHeadNameGroup)==null||a.add(new c.Text({style:{x:s,y:i,text:e,fontSize:this.leadConfig.squareWaveSensFontSize||this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily}}))}createLeadName(e,t,i,s=!1){var o;let a=t;this.leadHeadConfig.isShowLeadCalibration===!1&&(this.leadModel.isSingleMode?a=t-this.leadHeadConfig.leadHedeWidth+12:a=t-this.leadHeadConfig.leadHedeWidth+5),this.leadHeadConfig.isShowLeadCalibration&&this.leadHeadConfig.isCalibrationDisplayedBelow&&(t<=this.leadHeadConfig.leadHedeWidth&&(this.leadModel.isSingleMode?a=t-this.leadHeadConfig.leadHedeWidth+12:a=t-this.leadHeadConfig.leadHedeWidth+5),i=i+20),(o=this.leadHeadNameGroup)==null||o.add(new c.Text({style:{x:a,y:i,text:this.leadNames[e],fontSize:this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily},oncontextmenu:n=>{n.event.preventDefault(),this.$emit("notiifyLeadName",{event:k(b({},n),{name:this.leadNames[e],idx:e}),isAdd:s})},onclick:n=>{this.$emit("notiifyLeadName",{event:k(b({},n),{name:this.leadNames[e],idx:e}),isAdd:s})}}))}createLeadOffAndDel(e,t,i){var s;(this.isLeadOff(e)||this.isLeadDel(e))&&((s=this.leadHeadOffAndDelGroup)==null||s.add(new c.Text({cursor:"",style:{x:t,y:i,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}onContextmenu(e,t){e.event.preventDefault(),e.event.stopPropagation();const i=e.target.name.split("_"),s=+i[1];let a=0,o=0,n=0,d=0,l=0;t==="single"?(a=e.offsetX-this.singleWaveDataCopy[s].pos[0],o=this.singleWaveDataCopy[s].startInd,n=u.getPointIdxForPx(a,this.singleWaveDataCopy[s].step||1),d=this.singleWaveDataCopy[s].sens,l=this.singleWaveDataCopy[s].step):t==="rowAndCol"?(a=e.offsetX-this.waveDataCopy[s].pos[0],o=this.waveDataCopy[s].startInd||0,n=u.getPointIdxForPx(a,this.waveDataCopy[s].step||1),d=this.waveDataCopy[s].sens,l=this.waveDataCopy[s].step):t==="add"&&(a=e.offsetX-this.addWaveDataCopy[s].pos[0],o=this.addWaveDataCopy[s].startInd||0,n=u.getPointIdxForPx(a,this.addWaveDataCopy[s].step||1),d=this.addWaveDataCopy[s].sens,l=this.addWaveDataCopy[s].step),n+=o,this.$emit("notifyOnContextmenu",{sens:d,step:l,activeLeadIdx:+i[0],pointIdx:n,offsetX:e.offsetX,offsetY:e.offsetY,pageX:e.event.pageX,pageY:e.event.pageY})}onDbClickWaveFrom(e,t){const i=Date.now(),s=()=>{const a=e.target.name.split("_");this.activeLeadIdx=+a[0];const o=+a[1];let n=0,d=0,l=0,r=0,f=0;t==="single"?(n=e.offsetX-this.singleWaveDataCopy[o].pos[0],d=this.singleWaveDataCopy[o].startInd,l=u.getPointIdxForPx(n,this.singleWaveDataCopy[o].step||1),r=this.singleWaveDataCopy[o].sens,f=this.singleWaveDataCopy[o].step):t==="rowAndCol"?(n=e.offsetX-this.waveDataCopy[o].pos[0],d=this.waveDataCopy[o].startInd||0,l=u.getPointIdxForPx(n,this.waveDataCopy[o].step||1),r=this.waveDataCopy[o].sens,f=this.waveDataCopy[o].step):t==="add"&&(n=e.offsetX-this.addWaveDataCopy[o].pos[0],d=this.addWaveDataCopy[o].startInd||0,l=u.getPointIdxForPx(n,this.addWaveDataCopy[o].step||1),r=this.addWaveDataCopy[o].sens,f=this.addWaveDataCopy[o].step),l+=d,this.$emit("notifyActiveEnlargr",{sens:r,step:f,activeLeadIdx:this.activeLeadIdx,pointIdx:l})};i-this.dbClickWaveFromTime<400?(this.dbClickWaveFromTime=0,s()):this.dbClickWaveFromTime=i}nativeScrollFunc(e){this.scrollCommon(e.target.scrollLeft||0)}handleScroll(e,t,i){t.type==="horizontal"&&(t.scrollLeft=t.scrollLeft||0,this.scrollCommon(t.scrollLeft))}scrollCommon(e){const t=Math.max(0,e||0),i=u.getPointIdxForPx(t,this.publicStep||1);i!==this.lastScrollPointIdx&&(this.lastScrollPointIdx=i,this.lastScrollLeft=t,this.scrollWaveFrom(i),this.scrollRuler(i),this.scrollArrow(i),this.$emit("notifyScrollPointIdx",{slidIdxs:i,scrollLeft:t}))}scrollWaveFrom(e){var s,a;this.slidingWindowInfo.startInd=e,this.slidingWindowInfo.endInd=e+(this.slidingWindowInfo.points||0),this.addSlidingWindowInfo.startInd=e,this.addSlidingWindowInfo.endInd=e+(this.addSlidingWindowInfo.points||0);const t=this.getRednerPoints(),i=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=i,(s=this.rowAndColwaveFromGroup)==null||s.eachChild((o,n)=>{const d=t[n||0];if(!(d!=null&&d.data))return;const[l,r]=d.pos,f=new Array(d.data.length);for(let h=0;h<d.data.length;h++)f[h]=[d.data[h][0]+l,d.data[h][1]+r];o.attr({shape:{points:f}})}),(a=this.addwaveFromGroup)==null||a.eachChild((o,n)=>{const d=i[n||0];if(!(d!=null&&d.data))return;const[l,r]=d.pos,f=new Array(d.data.length);for(let h=0;h<d.data.length;h++)f[h]=[d.data[h][0]+l,d.data[h][1]+r];o.attr({shape:{points:f}})})}scrollRuler(e){const t=u.getDataLenTimes(this.leadModel.isSingleMode?0:e,this.leadModel.publicSampleRate||0)/1e3;this.drawRuler(t)}scrollArrow(e){this.drawLoopArrow(e),this.drawHeardBeatLine(e),this.drawHeartReact(e)}};w([v.Prop({default:()=>["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"]})],exports.default.prototype,"heardBeatLineKeys",2);w([v.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);w([v.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"waveConfigs",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"waveLists",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"leadNames",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"analyseValues",2);w([v.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);w([v.Prop({required:!0})],exports.default.prototype,"leadModel",2);w([v.Prop({default:()=>({isShow:!1,gainName:"",speedName:""})})],exports.default.prototype,"rulerConfig",2);w([v.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);w([v.Prop({required:!0})],exports.default.prototype,"gridConfig",2);w([v.Prop({default:()=>({isShow:!1,speed:0,sens:0})})],exports.default.prototype,"measurRulerConfig",2);w([v.Prop({default:()=>({isShow:!1,heartRate:60,speed:0,sens:0})})],exports.default.prototype,"paralleRulerConfig",2);w([v.Prop({default:()=>({isShow:!1,speed:0})})],exports.default.prototype,"magnifierRulerConfig",2);w([v.Prop({default:()=>({isShow:!1,mode:!1,defaultSelect:2,heartrate:!1,interval:!1,qrstCompany:!1,telectricalaxis:!1,isClickArrow:!1,showIdxPai:0})})],exports.default.prototype,"heartFight",2);w([v.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);w([v.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeConfig",2);w([v.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);w([v.Prop({default:()=>0})],exports.default.prototype,"dataTotalTimes",2);w([v.Prop({default:()=>0})],exports.default.prototype,"dataTotalLength",2);w([v.Prop({default:()=>""})],exports.default.prototype,"prefixId",2);w([v.Prop({default:()=>0})],exports.default.prototype,"posStart",2);w([u.debounce(100)],exports.default.prototype,"nativeScrollFunc",1);w([u.debounce(100)],exports.default.prototype,"handleScroll",1);exports.default=w([Y.default({name:"Methods"})],exports.default);
|
|
1
|
+
"use strict";var z=Object.defineProperty,V=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var T=Object.getOwnPropertySymbols;var X=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var N=(e,t,i)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,b=(e,t)=>{for(var i in t||(t={}))X.call(t,i)&&N(e,i,t[i]);if(T)for(var i of T(t))$.call(t,i)&&N(e,i,t[i]);return e},k=(e,t)=>V(e,j(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("vue"),Y=require("../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js");require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Emit.js");const v=require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Prop.js"),O=require("lodash"),u=require("@costy-plus/utils"),_=require("../utils/tool.js"),c=require("zrender"),K=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function E(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const Q=K(q),U=E(c);var Z=Object.defineProperty,J=Object.getOwnPropertyDescriptor,w=(e,t,i,s)=>{for(var a=s>1?void 0:s?J(t,i):t,o=e.length-1,n;o>=0;o--)(n=e[o])&&(a=(s?n(t,i,a):n(a))||a);return s&&a&&Z(t,i,a),a};exports.default=class extends Q.default{constructor(){super(...arguments),this.AssistCtx=Object.freeze(null),this.sceneIns=Object.freeze(null),this.layerBgGroup=Object.freeze(null),this.leadHeadGroup=Object.freeze(null),this.splitLineGroup=Object.freeze(null),this.rowAndColwaveFromGroup=Object.freeze(null),this.singleWaveFromGroup=Object.freeze(null),this.addwaveFromGroup=Object.freeze(null),this.leadHeadNameGroup=Object.freeze(null),this.leadHeadOffAndDelGroup=Object.freeze(null),this.rulerGroup=Object.freeze(null),this.arrowGroup=Object.freeze(null),this.arrowHeartGroup=Object.freeze(null),this.heardBeatLineGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(10),this.totalRows=Object.freeze(0),this.rulerStep=Object.freeze(0),this.drawLoopArrowStartPosIdx=Object.freeze(0),this.dbClickWaveFromTime=Object.freeze(0),this.timersCopy=Object.freeze(0),this.nearestHeartInfo=Object.freeze({analyseValue:null,insertInfo:null}),this.range=Object.freeze(5e3),this.heartBeatPosition=[],this.currentHeardBeat={heardBeat:null,ele:null},this.loopArrowY=Object.freeze({add:0,rowAndCol:0}),this.fontFamily=Object.freeze("\u5FAE\u8F6F\u96C5\u9ED1"),this.ruleH=Object.freeze(40),this.splitBlockHeight=0,this.splitPoint=0,this.slidingWindowInfo=Object.freeze({}),this.addSlidingWindowInfo=Object.freeze({}),this.highestAndLowestPoint=Object.freeze({maxPoints:0,minPoints:0}),this.drawArea=Object.freeze({width:0,height:0}),this.vuescrollWH={width:0,height:0},this.waveDataCopy=[],this.addWaveDataCopy=[],this.singleWaveDataCopy=[],this.leadNameList=[],this.activeLeadIdx=Object.freeze(-1),this.publicStep=Object.freeze(0),this.sceneIsMouseDown=Object.freeze(!1),this.sceneIsMouseDownX=Object.freeze(0),this.lastScrollPointIdx=-1,this.lastScrollLeft=-1}get canvasContainer(){var e;return{width:this.width,height:this.height-(this.scrollConfig.isShow&&parseInt(`${(e=this.scrollConfig.bar)==null?void 0:e.size}`)||0)||0}}destroyed(){var e,t,i,s,a,o,n,d,l,r,f,h;this.sceneInsEventOff(),(e=this.rowAndColwaveFromGroup)==null||e.removeAll(),(t=this.singleWaveFromGroup)==null||t.removeAll(),(i=this.addwaveFromGroup)==null||i.removeAll(),(s=this.leadHeadGroup)==null||s.removeAll(),(a=this.splitLineGroup)==null||a.removeAll(),(o=this.leadHeadNameGroup)==null||o.removeAll(),(n=this.leadHeadOffAndDelGroup)==null||n.removeAll(),(d=this.rulerGroup)==null||d.removeAll(),(l=this.arrowGroup)==null||l.removeAll(),(r=this.arrowHeartGroup)==null||r.removeAll(),(f=this.heardBeatLineGroup)==null||f.removeAll(),(h=this.sceneIns)==null||h.dispose()}initCreatedConfig(){this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height,this.calcHeartBeatPositions(),this.initConfig()}init(){this.calcHeartBeatPositions(),this.initWaveFormPeer(),this.combinationDrawing(),this.registPostStart()}registPostStart(){this.posStart!==void 0&&this.posStart!==null&&(this.scrollConfig.isShow?this.$nextTick(()=>{var e;this.scrollConfig.isNativeScroll?(e=this.$refs[this.prefixId+"nativeScroll"])==null||e.scrollBy({left:(this.posStart||0)*(this.publicStep||1),top:0}):this.$refs[this.prefixId+"vueScroll"].scrollTo({x:(this.posStart||0)*(this.publicStep||1)})}):(this.scrollWaveFrom(this.posStart),this.scrollRuler(this.posStart),this.scrollArrow(this.posStart)))}resetScroll(e=0){this.scrollConfig.isShow?this.$nextTick(()=>{var t;this.scrollConfig.isNativeScroll?(t=this.$refs[this.prefixId+"nativeScroll"])==null||t.scrollBy({left:e,top:0}):this.$refs[this.prefixId+"vueScroll"].scrollTo({x:e})}):(this.scrollWaveFrom(e),this.scrollRuler(e),this.scrollArrow(e))}handleNotifyMeasurintRectPostion(e){let t=null;this.leadModel.isSingleMode&&this.singleWaveFromGroup?t=(this.singleWaveFromGroup._children||[]).find(i=>i.rectContain(e.x,e.y)||i.rectContain(e.x,e.yEnd)):(t=(this.rowAndColwaveFromGroup._children||[]).find(i=>i.rectContain(e.x,e.y)||i.rectContain(e.x,e.yEnd)),t||(t=(this.addwaveFromGroup._children||[]).find(i=>i.rectContain(e.x,e.y)||i.rectContain(e.x,e.yEnd)))),t&&this.$emit("notifyMeasurintConfig",t.sens)}combinationDrawing(e=!0){e&&(this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawRulerNotes()),this.drawWaveFrom()}calcHeartBeatPositions(){this.heartBeatPosition=[];let e=[],t=0;for(let i=0;i<this.analyseValues.length;i++){for(let s=1;s<this.analyseValues[i].length;s++)i!==1&&this.analyseValues[i][s].KeyPosByBeat.Rpoint===0||(this.analyseValues[i][s].AnabyBeat.VentricularRate===0||this.analyseValues[i][s].AnabyBeat.AtrialRate===0?t=0:t=Math.round(60/(this.analyseValues[i][s].AnabyBeat.VentricularRate||this.analyseValues[i][s].AnabyBeat.AtrialRate)*1e3),e.push({index:this.analyseValues[i][s].BeatID,position:this.analyseValues[i][s].KeyPosByBeat.Rpoint,heartrate:this.analyseValues[i][s].AnabyBeat.VentricularRate||this.analyseValues[i][s].AnabyBeat.AtrialRate,interval:t,telectricalaxis:this.analyseValues[i][s].AnabyBeat.TAxis===9999?this.range:this.analyseValues[i][s].AnabyBeat.TAxis,qrstCompany:(this.analyseValues[i][s].AnabyBeat.QRS_T===9999?this.range:this.analyseValues[i][s].AnabyBeat.QRS_T)+"\xB0",heart_style:this.analyseValues[i][s].heart_style}));this.heartBeatPosition.push(e)}e=null}initSlidingWindowInfo(){const e=this.publicStep||0,t=Math.ceil(this.splitPoint/e);if(this.slidingWindowInfo={points:this.slidingWindowInfo.points!==t||this.leadModel.isSingleMode?t:this.slidingWindowInfo.points,startInd:this.slidingWindowInfo.startInd||0,endInd:(this.slidingWindowInfo.startInd||0)+t},this.slidingWindowInfo.endInd>this.dataTotalLength&&(this.slidingWindowInfo.endInd=this.dataTotalLength),this.scrollConfig.isShow&&!this.leadModel.isSingleMode){const s=u.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),a=this.dataTotalLength*s;this.vuescrollWH.width=this.canvasContainer.width+(a||0)-this.splitPoint}const i=Math.ceil((this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/e);this.addSlidingWindowInfo={points:this.addSlidingWindowInfo.points!==i||this.leadModel.isSingleMode?i:this.addSlidingWindowInfo.points,startInd:this.addSlidingWindowInfo.startInd||0,endInd:(this.addSlidingWindowInfo.endInd||0)+i},this.addSlidingWindowInfo.endInd>this.dataTotalLength&&(this.addSlidingWindowInfo.endInd=this.dataTotalLength)}calcHighestAndLowestPoint(){const e=O.flattenDeep(this.waveLists);return{maxPoints:O.max(e)||0,minPoints:O.min(e)||0}}isLeadOff(e){return!!this.waveConfigs[e].isLeadOff}isLeadDel(e){return!!this.waveConfigs[e].isLeadDelete}initConfig(){var t;this.rowAndColwaveFromGroup=new c.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new c.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new c.Group({name:"addwaveFrom"}),this.leadHeadGroup=new c.Group({name:"leadHead"}),this.splitLineGroup=new c.Group({name:"splitLine"}),this.leadHeadNameGroup=new c.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new c.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new c.Group({name:"ruler"}),this.arrowGroup=new c.Group({name:"arrowLoop"}),this.arrowHeartGroup=new c.Group({name:"arrowHeart"}),this.heardBeatLineGroup=new c.Group({name:"heardBeatLine"});let e=this.canvasContainer.width;if(this.leadModel.ecgareawidth===1){const i=u.getPrintLengthToPx(((t=this.waveConfigs[0])==null?void 0:t.sampleRate)||0)+this.leadHeadConfig.leadHedeWidth;i<=e&&(e=i)}else if(this.leadModel.isContinuous){const i=u.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),s=this.dataTotalLength*i;!this.leadModel.isSingleMode&&(s||0)<e-this.leadHeadConfig.leadHedeWidth&&(e=(s||0)+this.leadHeadConfig.leadHedeWidth)}this.drawArea={width:e,height:this.canvasContainer.height-this.bottomAreaHeight-30},this.slidingWindowInfo={points:this.slidingWindowInfo.points||0,startInd:this.slidingWindowInfo.startInd||0,endInd:this.slidingWindowInfo.endInd||0},this.addSlidingWindowInfo={points:this.addSlidingWindowInfo.points||0,startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0},this.loopArrowY={add:0,rowAndCol:0},this.currentHeardBeat={heardBeat:null,ele:null},this.leadNameList=this.leadNames.map((i,s)=>s)||[],this.totalRows=this.leadModel.line+this.leadModel.add||1,this.highestAndLowestPoint=this.calcHighestAndLowestPoint(),this.leadModel.isSingleMode?(this.splitBlockHeight=Math.abs(this.highestAndLowestPoint.maxPoints)+Math.abs(this.highestAndLowestPoint.minPoints)+22,this.splitBlockHeight>this.drawArea.height&&(this.splitBlockHeight=this.drawArea.height/6)):this.splitBlockHeight=this.drawArea.height/this.totalRows,this.publicStep=u.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),this.rulerStep=(this.publicStep||1)*(this.leadModel.publicSampleRate||1)/(this.gridConfig.cellMg*2+2)}initWaveFormPeer(){var i;(i=this.sceneIns)==null||i.dispose(),this.AssistCtx=null;const e=document.getElementById(`${this.prefixId}wave-from-box`);this.sceneIns=U.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:1});const t=document.getElementById(`${this.prefixId}MXGrid`);this.AssistCtx=t.getContext("2d"),this.sceneInsEventOff(),this.sceneIns.on("mousemove",this.sceneInsMousemove),this.sceneIns.on("mousedown",this.sceneInsMouseDown),this.sceneIns.on("mouseup",this.sceneInsMouseUp),this.sceneIns.on("click",this.sceneInsClick),this.sceneIns.on("contextmenu",this.sceneInsContextmenu)}sceneInsClick(e){var l,r,f,h;if(!this.heartFight.isShow||!this.heartFight.isClickArrow)return;this.nearestHeartInfo={analyseValue:null,insertInfo:null};const t=e.offsetX-this.waveDataCopy[0].pos[0],i=this.waveDataCopy[0].startInd||0;let s=u.getPointIdxForPx(t,this.waveDataCopy[0].step||1);if(s+=i,s<=0)return;const a=.15*this.waveConfigs[this.heartFight.showIdxPai].sampleRate;let o=null,n=-1,d=1/0;for(let p=0;p<this.analyseValues.length;p++){const H=this.analyseValues[p],P=p!==1?H.filter((L,S)=>{var m;return S===0||((m=L.KeyPosByBeat)==null?void 0:m.Rpoint)!==0}):H;let M=0,y=P.length-1;for(;M<=y;){const L=Math.floor((M+y)/2),S=P[L],m=(l=S.KeyPosByBeat)==null?void 0:l.Rpoint;if(m===void 0)break;const C=Math.abs(s-m);C<=a&&C<d&&(d=C,o=S,n=p),m<s?M=L+1:y=L-1}}if(o)this.nearestHeartInfo={analyseValue:o,insertInfo:null};else{let p=-1,H=1/0,P=-1,M=-1;for(let y=0;y<this.analyseValues.length;y++){const L=this.analyseValues[y];for(let S=0;S<L.length;S++){const m=L[S];if(y!==1&&S>0&&((r=m.KeyPosByBeat)==null?void 0:r.Rpoint)===0)continue;const C=(f=m.KeyPosByBeat)==null?void 0:f.Rpoint;if(C===void 0)continue;const g=Math.abs(s-C);g<H&&(H=g,M=y,s<C?P=S:y!==1&&((h=m.KeyPosByBeat)==null?void 0:h.Rpoint)===0&&S===0?P=1:P=S+1)}}M!==-1&&(n=M,p=P,this.nearestHeartInfo={analyseValue:{AnabyBeat:{QTd:0,QTc:0,SV3Amp:0,PR:0,QTcd:0,BeatType:-1,SV1Amp:0,QT:0,QRSAxis:0,SV5Amp:0,TAxis:0,AtrialRate:0,Td:0,RV5Amp:0,VentricularRate:0,Pd:0,QRSd:0,RV3Amp:0,PAxis:0,RV1Amp:0,QTdr:0,QRS_T:0},KeyPosByBeat:{Rpoint:s,PPpeak:0,Tend:0,PPstart:0,Tpeak:0,TPpeak:0,QRSend:0,Pend:0,Tstart:0,Ppeak:0,SPpoint:0,PPend:0,TPend:0,QRSstart:0,Pstart:0,TPstart:0},ecg_info_detail:[],BeatID:-1,heart_style:""},insertInfo:{listIndex:n,insertIndex:p,pointIdx:s,distanceToNearest:H}})}this.$emit("notifySceneClick",{event:e,offsetX:e.offsetX,offsetY:e.offsetY,nearestHeartInfo:O.cloneDeep(this.nearestHeartInfo)}),this.drawHeartReact(this.drawLoopArrowStartPosIdx)}sceneInsContextmenu(e){e.event.preventDefault(),this.$emit("notifySceneContextmenu",{event:e,offsetX:e.offsetX,offsetY:e.offsetY,nearestHeartInfo:O.cloneDeep(this.nearestHeartInfo)})}sceneInsMousemove(e){var t;this.sceneIsMouseDown&&(this.scrollConfig.isNativeScroll?(t=this.$refs[`${this.prefixId}nativeScroll`])==null||t.scrollBy({left:e.offsetX-this.sceneIsMouseDownX,top:0}):this.$refs[`${this.prefixId}vueScroll`].scrollBy({dx:e.offsetX-this.sceneIsMouseDownX}))}sceneInsMouseDown(e){this.sceneIsMouseDown=!0,this.sceneIsMouseDownX=e.offsetX}sceneInsMouseUp(e){this.sceneIsMouseDown=!1}sceneInsEventOff(){var e,t,i,s,a;(e=this.sceneIns)==null||e.off("mousemove",this.sceneInsMousemove),(t=this.sceneIns)==null||t.off("mousedown",this.sceneInsMouseDown),(i=this.sceneIns)==null||i.off("mouseup",this.sceneInsMouseUp),(s=this.sceneIns)==null||s.off("click",this.sceneInsClick),(a=this.sceneIns)==null||a.off("contextmenu",this.sceneInsContextmenu)}drawLeadHead(){var i,s,a,o,n,d;(i=this.leadHeadGroup)==null||i.removeAll(),(s=this.sceneIns)==null||s.remove(this.leadHeadGroup);let e="",t=!1;e:for(let l=1;l<=this.totalRows;l++){if(t=!1,!(this.waveConfigs||[])[l-1])break e;if(!!this.waveConfigs[l-1].isShowLeadHead){if(l<=this.leadModel.line)e=(this.leadNames||[])[l-1]||"",this.waveConfigs[l-1].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),this.leadHeadConfig.isShowLeadCalibration!==!1&&((a=this.leadHeadGroup)==null||a.add(this.createLeadHead(0,this.waveConfigs[l-1].posY||l*this.splitBlockHeight,u.getSens(this.waveConfigs[l-1].isFixedSquareWaveSize?this.waveConfigs[l-1].fixedSquareWaveSizeGain:this.waveConfigs[l-1].gain,this.gridConfig.cellMg),t)));else if(l>this.leadModel.line&&l-this.leadModel.line<=this.leadModel.add){if(!this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]])continue;e=this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[l-this.leadModel.line-1]]],this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),this.leadHeadConfig.isShowLeadCalibration!==!1&&((n=this.leadHeadGroup)==null||n.add(this.createLeadHead(0,((o=this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]])==null?void 0:o.posY)||l*this.splitBlockHeight,u.getSens(this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].isFixedSquareWaveSize?this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].fixedSquareWaveSizeGain:this.waveConfigs[this.longLeadConfig.leadIdxs[l-this.leadModel.line-1]].gain,this.gridConfig.cellMg),t)))}}}(d=this.sceneIns)==null||d.add(this.leadHeadGroup)}createLeadHead(e,t,i,s){const a=this.leadHeadConfig.leadHedeWidth/4;return i=s?i/2:i,new c.Polyline({cursor:"",shape:{points:[[0+e,0+t],[a+e,0+t],[a+e,-i+t],[3*a+e,-i+t],[3*a+e,0+t],[4*a+e,0+t]]},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawColSplitLine(){var o,n,d,l,r;(o=this.splitLineGroup)==null||o.removeAll(),(n=this.sceneIns)==null||n.remove(this.splitLineGroup);const e=(this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/(this.leadModel.column||1);if(this.splitPoint=e,this.leadModel.isSingleMode){const f=u.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),h=u.getDataLenTimes(Math.ceil(this.splitPoint/(f||1))||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),p=parseInt(`${h/1e3%60}`,10);this.splitPoint=p*(this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0)*(f||0)}let t=0,i=0,s=0,a=0;for(let f=1;f<=this.leadModel.column-1;f++){t=f*e+this.leadHeadConfig.leadHedeWidth,i=f*this.leadModel.line;e:for(let h=1;h<=this.leadModel.line;h++){if(!(this.waveConfigs||[])[h-1+i])break e;if((this.waveConfigs||[])[h-1+i].posX!==void 0&&(t=(this.waveConfigs||[])[h-1+i].posX),s=(this.waveConfigs||[])[h-1+i].leadIdx,s===void 0)break;a=u.getSens((this.waveConfigs||[])[h-1+i].isFixedSquareWaveSize?(this.waveConfigs||[])[h-1+i].fixedSquareWaveSizeGain:(this.waveConfigs||[])[h-1+i].gain,this.gridConfig.cellMg),(this.waveConfigs||[])[h-1+i].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.leadNames[s])?(d=this.splitLineGroup)==null||d.add(this.creatSplitLine(t,((this.waveConfigs||[])[h-1+i].posY||h*this.splitBlockHeight)-(a||0)/2*.5,a,!0)):(l=this.splitLineGroup)==null||l.add(this.creatSplitLine(t,((this.waveConfigs||[])[h-1+i].posY||h*this.splitBlockHeight)-(a||0)*.5,a))}}(r=this.sceneIns)==null||r.add(this.splitLineGroup)}creatSplitLine(e,t,i,s){return new c.Line({cursor:"",shape:{x1:0+e,y1:0+t,x2:0+e,y2:(s?(i||0)/2:i||0)+t},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawRulerNotes(){var s,a;if(!this.rulerConfig.isShow)return;const e={fill:"#FF0080",fontSize:13,fontFamily:this.fontFamily},t=new c.Text({cursor:"",style:b({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),i=new c.Text({style:b({text:this.rulerConfig.renderText||`${this.rulerConfig.gainName} ${this.rulerConfig.speedName}`,x:this.leadHeadConfig.leadHedeWidth/2+20,y:this.canvasContainer.height-this.ruleH},e)});(s=this.sceneIns)==null||s.add(i),(a=this.sceneIns)==null||a.add(t)}drawRuler(e=0){var d,l,r,f,h;if(this.timersCopy=e,(d=this.rulerGroup)==null||d.removeAll(),!this.rulerConfig.isShow)return;const t=this.canvasContainer.height,i=this.dataTotalTimes*2;let s=this.leadHeadConfig.leadHedeWidth,a=0,o=i;const n=u.getStepForSpeed(this.rulerConfig.speed,this.gridConfig.cellMg,this.rulerConfig.sampleRate);if(this.leadModel.isContinuous)o=i*1.1;else if(!this.leadModel.add&&n){const p=u.getPointIdxForPx(this.splitPoint*(this.leadModel.column||1),n),H=u.getDataLenTimes(p,this.rulerConfig.sampleRate||0)/1e3;o=e+H}for(let p=e;p<=o;p=+(p+.1).toFixed(1))p!==e&&(s+=this.rulerStep),p%1===0?(a=t-10,(l=this.rulerGroup)==null||l.add(new c.Text({cursor:"",style:{x:s,y:a-15,text:p+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):a=t-5,(r=this.rulerGroup)==null||r.add(new c.Line({cursor:"",shape:{x1:s,y1:a,x2:s,y2:t},style:{stroke:"#FF0080",lineWidth:2}}));(f=this.rulerGroup)!=null&&f.__zr||(h=this.sceneIns)==null||h.add(this.rulerGroup)}drawWaveFrom(){var e,t,i,s,a;(e=this.leadHeadNameGroup)==null||e.removeAll(),(t=this.leadHeadOffAndDelGroup)==null||t.removeAll(),this.leadModel.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(i=this.sceneIns)==null||i.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(s=this.sceneIns)==null||s.add(this.rowAndColwaveFromGroup),(a=this.sceneIns)==null||a.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(this.timersCopy),this.drawLoopArrow(this.drawLoopArrowStartPosIdx),this.drawHeartReact(this.drawLoopArrowStartPosIdx)}getRednerSinglePoints(){let e=0,t=0;const i=this.waveLists[this.singleModeConfig.defaultSelect]||[];let s=this.slidingWindowInfo.startInd||0,a=this.slidingWindowInfo.endInd||0;const o=u.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),n=u.getSens(this.waveConfigs[this.singleModeConfig.defaultSelect].gain,this.gridConfig.cellMg),d=[],l=Math.ceil(i.length/(this.slidingWindowInfo.points||1));for(let r=0;r<1;r++){e=r*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let f=1;f<=l;f++)t=f*this.splitBlockHeight,f>1&&(t*=.8,s=a,a=s+(this.slidingWindowInfo.points||0)),f===1&&(this.loopArrowY.rowAndCol=t),d.push({pos:[e,t],startInd:s,endInd:a,step:o,sens:n,data:i.slice(s,a).map((h,p)=>this.waveConfigs[this.singleModeConfig.defaultSelect].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName)?u.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,h,n/2):u.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,h,n)).map((h,p)=>[p*(o||0),-h])})}return d}createSingleWaveFrom(){var n,d,l;(n=this.singleWaveFromGroup)==null||n.removeAll();let e=this.getRednerSinglePoints(),t=u.getDataLenTimes(this.slidingWindowInfo.points||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0);const i=t;let s=0,a=0,o=0;for(let r=0;r<e.length&&!(e[r].pos[1]>this.drawArea.height+this.bottomAreaHeight);r++)this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx)||(s=parseInt(`${t/1e3/60}`,10),a=parseInt(`${t/1e3%60}`,10),s=a===60?s+=1:s,s=s===0?"00":s<10?`0${s}`:s,a=a===0||a===60?"00":a<10?`0${a}`:a,(d=this.singleWaveFromGroup)==null||d.add(new c.Polyline({cursor:"",name:this.singleModeConfig.defaultSelect+"_"+r,sens:e[r].sens,shape:{points:e[r].data.map(([f,h],p)=>isNaN(h)?(o===0&&(o=p-1,o=o<0?0:o),[e[r].data[o][0]+e[r].pos[0],e[r].data[o][1]+e[r].pos[1]]):(o=0,[f+e[r].pos[0],h+e[r].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:f=>{this.onDbClickWaveFrom(f,"single")},oncontextmenu:f=>{this.onContextmenu(f,"single")}})),t/1e3<this.dataTotalTimes&&((l=this.singleWaveFromGroup)==null||l.add(new c.Text({cursor:"",style:{x:e[r].pos[0],y:e[r].pos[1]-(e[r].sens||0)/2,text:r===0?"00:00 \u5FC3\u7387":`${s}:${a} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}}))),r>0&&(t+=i)),this.createLeadName(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx,e[0].pos[0]-10,e[0].pos[1]+10),this.createLeadOffAndDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx,e[0].pos[0]-5,e[0].pos[1]-(e[r].sens||0)/2-15),this.waveConfigs[this.singleModeConfig.defaultSelect].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[this.singleModeConfig.defaultSelect].squareWaveSens,e[0].pos[0]-10,e[0].pos[1]+10);this.singleWaveDataCopy=e,e=null}drawHeartReact(e=0){var a,o,n,d,l,r,f,h,p,H,P;if((a=this.arrowHeartGroup)==null||a.removeAll(),!this.heartFight.isShow)return;if(this.leadModel.line!==12&&this.leadModel.column!==1){this.nearestHeartInfo={analyseValue:null,insertInfo:null};return}if(!this.nearestHeartInfo.analyseValue)return;const t=u.getStepForSpeed(this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,this.waveConfigs[this.heartFight.showIdxPai].sampleRate);let i=0;const s=(((n=(o=this.nearestHeartInfo.analyseValue)==null?void 0:o.KeyPosByBeat)==null?void 0:n.Rpoint)||0)-e;if(!(e>(((l=(d=this.nearestHeartInfo.analyseValue)==null?void 0:d.KeyPosByBeat)==null?void 0:l.Rpoint)||0))&&!(!this.leadModel.isContinuous&&!this.leadModel.add&&s>(this.slidingWindowInfo.points||0))&&!(this.leadModel.isSingleMode&&s>(this.slidingWindowInfo.points||0))&&!((((f=(r=this.nearestHeartInfo.analyseValue)==null?void 0:r.KeyPosByBeat)==null?void 0:f.Rpoint)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))){if(this.nearestHeartInfo.insertInfo)i=(s||0)*t+this.leadHeadConfig.leadHedeWidth,(p=this.arrowHeartGroup)==null||p.add(new c.Line({name:"draw_heart_line",cursor:"",shape:{x1:i,y1:0,x2:i,y2:this.canvasContainer.height-2},style:{stroke:"#E07F26",lineWidth:2}}));else{const M=.1*this.waveConfigs[this.heartFight.showIdxPai].sampleRate;i=((s||0)-M/2)*t+this.leadHeadConfig.leadHedeWidth;const y=(M*2+1)*t;(h=this.arrowHeartGroup)==null||h.add(new c.Rect({name:"draw_heart_rect",style:{fill:"#FF87E5",opacity:.64},shape:{x:i,y:0,width:y,height:this.canvasContainer.height-2},cursor:""}))}(H=this.arrowHeartGroup)!=null&&H.__zr||(P=this.sceneIns)==null||P.add(this.arrowHeartGroup)}}drawLoopArrow(e=0){var h,p,H,P,M,y,L,S,m,C,g,F,R;if(this.drawLoopArrowStartPosIdx=e,!this.heartFight.isShow)return;(h=this.arrowGroup)==null||h.removeAll(),this.heartFight.mode&&this.currentHeardBeat.heardBeat===null&&(this.currentHeardBeat.heardBeat=this.heartBeatPosition[this.heartFight.showIdxPai][this.heartFight.defaultSelect]||null,this.drawHeardBeatLine());let t=0,i=0;if(this.leadModel.add){const D=u.getSens(this.waveConfigs[this.longLeadConfig.leadIdxs[0]].gain,this.gridConfig.cellMg);i=this.loopArrowY.add-(D||0)-this.splitBlockHeight/3.5}else this.leadModel.column===1?i=0:i=20;let s=0,a=0;const o={fontSize:12,fill:"#FF0000",fontFamily:this.fontFamily};let n=0,d=0;const l=u.getStepForSpeed(this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,this.waveConfigs[this.heartFight.showIdxPai].sampleRate);let r=0,f=0;for(let D=0;D<(this.heartBeatPosition[this.heartFight.showIdxPai]||[]).length;D++){const W=this.heartBeatPosition[this.heartFight.showIdxPai][D];if(r=((W==null?void 0:W.position)||0)-e,e>((W==null?void 0:W.position)||0)||!this.leadModel.isContinuous&&!this.leadModel.add&&r>(this.slidingWindowInfo.points||0)||this.leadModel.isSingleMode&&r>(this.slidingWindowInfo.points||0))continue;if(((W==null?void 0:W.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;s=((p=this.AssistCtx)==null?void 0:p.measureText(`${(W==null?void 0:W.heart_style)||""}`).width)||0,t=r*(l||0)+this.leadHeadConfig.leadHedeWidth-0,a=0,(H=this.arrowGroup)==null||H.add(new c.Text({name:"arrow_box",cursor:"",style:k(b({x:t,y:i+10,text:`${(W==null?void 0:W.heart_style)||""}`},o),{fill:"#333"}),onclick:x=>{!this.heartFight.mode&&this.heartFight.isClickArrow},oncontextmenu:x=>{x.event.preventDefault(),!this.heartFight.mode&&this.heartFight.isClickArrow}}));let A=t,G=0;const I=this.heartBeatPosition[this.heartFight.showIdxPai][D+1]||null;if(this.heartFight.isHeartRateCalculatedBasedOnInterval)if(D>0){const x=this.heartBeatPosition[this.heartFight.showIdxPai][D-1];if(x){const B=(x.position||0)-e;if(!this.leadModel.isContinuous&&!this.leadModel.add&&B>(this.slidingWindowInfo.points||0))continue;A=B*(l||0)+this.leadHeadConfig.leadHedeWidth,G=t,d=u.calcMs(Math.abs(((W==null?void 0:W.position)||0)-(x.position||0))*(l||0),this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,1),n=d!==0&&u.calcBpm(d)||0}}else continue;else{if(!I||(f=((I==null?void 0:I.position)||0)-e,!this.leadModel.isContinuous&&!this.leadModel.add&&f>(this.slidingWindowInfo.points||0))||this.leadModel.isSingleMode&&f>(this.slidingWindowInfo.points||0))continue;if(((I==null?void 0:I.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;A=t,G=f*(l||0)+this.leadHeadConfig.leadHedeWidth,n=(I==null?void 0:I.heartrate)||0}if(a=0,this.heartFight.heartrate){s=((P=this.AssistCtx)==null?void 0:P.measureText(`${n||""}`).width)||0;const x=(G-A)/2-s/2+A;(M=this.arrowGroup)==null||M.add(new c.Text({cursor:"",style:b({x,y:a+i+5,text:`${n||""}`},o)})),a+=12}if(this.heartFight.interval){let x=`${(I==null?void 0:I.interval)||""}`;this.heartFight.isIntervalCalculatedBasedOnHeartRate&&(x=`${Math.round(6e4/n)}`),s=((y=this.AssistCtx)==null?void 0:y.measureText(x).width)||0;const B=(G-A)/2-s/2+A;(L=this.arrowGroup)==null||L.add(new c.Text({cursor:"",style:b({x:B,y:a+i+5,text:x},o)})),a+=12}if(this.heartFight.qrstCompany){const x=(I==null?void 0:I.qrstCompany)||"";s=((S=this.AssistCtx)==null?void 0:S.measureText(x).width)||0;const B=(G-A)/2-s/2+A;(m=this.arrowGroup)==null||m.add(new c.Text({cursor:"",style:b({x:B,y:a+i+5,text:x},o)})),a+=12}if(this.heartFight.telectricalaxis){const x=`${(I==null?void 0:I.telectricalaxis)||""}`;s=((C=this.AssistCtx)==null?void 0:C.measureText(x).width)||0;const B=(G-A)/2-s/2+A;(g=this.arrowGroup)==null||g.add(new c.Text({cursor:"",style:b({x:B,y:a+i+5,text:x},o)}))}}(F=this.arrowGroup)!=null&&F.__zr||(R=this.sceneIns)==null||R.add(this.arrowGroup)}arrowLoopClick(e,t){this.$emit("notifyHeardBeat",c.util.clone(e)),this.currentHeardBeat.heardBeat=e,this.currentHeardBeat.ele=t,this.drawHeardBeatLine()}drawHeardBeatLine(e=0){var a,o,n,d,l,r,f,h,p,H,P,M,y,L,S;if(!this.currentHeardBeat.heardBeat)return;(a=this.heardBeatLineGroup)==null||a.removeAll();let t={},i=0,s;if(this.leadModel.isSingleMode){let m=this.getRednerSinglePoints();e:for(let C=0;C<m.length;C++){if(C>=1||this.leadNames[this.singleModeConfig.defaultSelect]==="M")break e;if((o=this.analyseValues[this.singleModeConfig.defaultSelect])!=null&&o[this.currentHeardBeat.heardBeat.index])t=((l=(d=this.analyseValues[this.singleModeConfig.defaultSelect])==null?void 0:d[this.currentHeardBeat.heardBeat.index])==null?void 0:l.KeyPosByBeat)||t;else{let g=this.analyseValues.find(F=>{var R;return(R=F[this.currentHeardBeat.heardBeat.index])==null?void 0:R.KeyPosByBeat});if(!g)break e;g&&(t=(n=g[this.currentHeardBeat.heardBeat.index])==null?void 0:n.KeyPosByBeat),g=null}for(const g in t)if(this.heardBeatLineKeys.includes(g)){if(i=(t[g]-this.slidingWindowInfo.startInd)*(m[C].step||0),this.isLeadOff(C)||this.isLeadDel(C))continue;if(!this.leadModel.isContinuous&&t[g]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0))break e;s=m[C],(r=this.heardBeatLineGroup)==null||r.add(this.createHeardBeatLine(s.pos[0]+i,s.pos[1],this.singleModeConfig.defaultSelect+"_"+C,"single"))}}m=null}else{let m=this.getRednerPoints(),C=this.getAddRednerPoints();e:for(let g=0;g<m.length;g++){t=((h=(f=this.analyseValues[g])==null?void 0:f[this.currentHeardBeat.heardBeat.index])==null?void 0:h.KeyPosByBeat)||t;for(const F in t)if(this.heardBeatLineKeys.includes(F)&&Object.prototype.hasOwnProperty.call(t,F)){if(i=(t[F]-this.slidingWindowInfo.startInd)*(m[g].step||0),this.isLeadOff(g)||this.isLeadDel(g))continue;if(e>t[F]||!this.leadModel.isContinuous&&t[F]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0)||(s=m[g],this.leadModel.isContinuous&&g>this.leadModel.line-1))break e;(p=this.heardBeatLineGroup)==null||p.add(this.createHeardBeatLine(s.pos[0]+i,s.pos[1],g+"_"+g,"rowAndCol"))}}e:for(let g=0;g<C.length;g++)if(!!((H=this.analyseValues[g])!=null&&H[this.currentHeardBeat.heardBeat.index])){t=((M=(P=this.analyseValues[g])==null?void 0:P[this.currentHeardBeat.heardBeat.index])==null?void 0:M.KeyPosByBeat)||t;for(const F in t)if(this.heardBeatLineKeys.includes(F)){if(i=(t[F]-this.slidingWindowInfo.startInd)*(C[g].step||0),this.isLeadOff(this.longLeadConfig.leadIdxs[g])&&this.isLeadDel(this.longLeadConfig.leadIdxs[g]))continue;if(e>t[F])break e;s=C[g],(y=this.heardBeatLineGroup)==null||y.add(this.createHeardBeatLine(s.pos[0]+i,s.pos[1],this.longLeadConfig.leadIdxs[g]+"_"+g,"add"))}}m=null,C=null}(L=this.heardBeatLineGroup)!=null&&L.__zr||(S=this.sceneIns)==null||S.add(this.heardBeatLineGroup),t=null}createHeardBeatLine(e,t,i,s){return new c.Line({name:i,cursor:"",shape:{x1:e,y1:t-15,x2:e,y2:t+15},style:{stroke:"blue",lineWidth:1},oncontextmenu:a=>{this.onContextmenu(a,s)}})}drawLeadHeadNameAndOffOrDel(){var e,t;(e=this.sceneIns)==null||e.add(this.leadHeadNameGroup),(t=this.sceneIns)==null||t.add(this.leadHeadOffAndDelGroup)}getAddRednerPoints(){const e=[];let t=this.leadHeadConfig.leadHedeWidth,i=0,s=0,a=[],o=0,n=0;for(let d=0;d<this.leadModel.add;d++)s=this.longLeadConfig.leadIdxs[d],this.waveConfigs[s]&&(t=this.waveConfigs[s].addPosX||t,o=u.getStepForSpeed(this.waveConfigs[s].speed,this.gridConfig.cellMg,this.waveConfigs[s].sampleRate),n=u.getSens(this.waveConfigs[s].gain,this.gridConfig.cellMg),i=this.waveConfigs[s].addPosY||(d+this.leadModel.line+1)*this.splitBlockHeight,a=this.waveLists[s]||[],d===0&&(this.loopArrowY.add=i),e.push({pos:[t,i],startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0,data:a.slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((l,r)=>this.waveConfigs[s].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[s].leadName)?u.getActualY(this.waveConfigs[s].sensitivity,l,n/2):u.getActualY(this.waveConfigs[s].sensitivity,l,n)).map((l,r)=>[r*(o||0),-l]),sens:n,step:o}));return e}createAddWaveFrom(){var i,s;(i=this.addwaveFromGroup)==null||i.removeAll();let e=this.getAddRednerPoints(),t=0;for(let a=0;a<e.length;a++)this.isLeadDel(this.longLeadConfig.leadIdxs[a])||((s=this.addwaveFromGroup)==null||s.add(new c.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[a]+"_"+a,sens:e[a].sens,shape:{points:e[a].data.map(([o,n],d)=>isNaN(n)?(t===0&&(t=d-1,t=t<0?0:t),[e[a].data[t][0]+e[a].pos[0],e[a].data[t][1]+e[a].pos[1]]):(t=0,[o+e[a].pos[0],n+e[a].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:o=>{this.onDbClickWaveFrom(o,"add")},oncontextmenu:o=>{this.onContextmenu(o,"add")}})),this.createLeadName(this.longLeadConfig.leadNames[a],e[a].pos[0],e[a].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[a],e[a].pos[0]-5,e[a].pos[1]-(e[a].sens||0)/2-15),this.waveConfigs[this.longLeadConfig.leadIdxs[a]].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[this.longLeadConfig.leadIdxs[a]].squareWaveSens,e[a].pos[0],e[a].pos[1]-15));this.addWaveDataCopy=e,e=null}getRednerPoints(){let e=0,t=0,i=0,s=[],a=0,o=0,n=this.slidingWindowInfo.startInd||0,d=this.slidingWindowInfo.endInd||0;const l=[];for(let r=0;r<this.leadModel.column;r++){e=r*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&r>0&&(n=d,d=n+(this.slidingWindowInfo.points||0));for(let f=1;f<=this.leadModel.line&&(t=f*this.splitBlockHeight,!(i>(this.waveLists||[]).length-1));f++)e=this.waveConfigs[i].posX||e,t=this.waveConfigs[i].posY||t,a=u.getStepForSpeed(this.waveConfigs[i].speed,this.gridConfig.cellMg,this.waveConfigs[i].sampleRate),o=u.getSens(this.waveConfigs[i].gain,this.gridConfig.cellMg),s=this.waveLists[i]||[],this.waveConfigs[i]&&(f===1&&(this.loopArrowY.rowAndCol=t),l.push({pos:[e,t],startInd:n,endInd:d,sens:o,step:a,data:s.slice(n,d).map((h,p)=>this.waveConfigs[i].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[i].leadName)?u.getActualY(this.waveConfigs[i].sensitivity,h,o/2):u.getActualY(this.waveConfigs[i].sensitivity,h,o)).map((h,p)=>[p*(a||0),-h])}),i++)}return l}createRowAndColWaveFrom(){var s,a;(s=this.rowAndColwaveFromGroup)==null||s.removeAll();let e=this.getRednerPoints(),t=0,i=0;for(let o=0;o<e.length;o++)t=this.waveConfigs[o].leadIdx||0,this.isLeadDel(t)||(a=this.rowAndColwaveFromGroup)==null||a.add(new c.Polyline({cursor:"",name:o+"_"+o,sens:e[o].sens,shape:{points:e[o].data.map(([n,d],l)=>isNaN(d)?(i===0&&(i=l-1,i=i<0?0:i),[e[o].data[i][0]+e[o].pos[0],e[o].data[i][1]+e[o].pos[1]]):(i=0,[n+e[o].pos[0],d+e[o].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:n=>{this.onDbClickWaveFrom(n,"rowAndCol")},oncontextmenu:n=>{this.onContextmenu(n,"rowAndCol")}})),o<this.leadModel.line?(this.createLeadName(t,e[o].pos[0],e[o].pos[1]-15),this.createLeadOffAndDel(t,e[o].pos[0]-5,e[o].pos[1]-(e[o].sens||0)/2-15),this.waveConfigs[o].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[o].squareWaveSens,e[o].pos[0],e[o].pos[1]-15)):(this.createLeadName(t,e[o].pos[0]+5,e[o].pos[1]-40),this.createLeadOffAndDel(t,e[o].pos[0]-5,e[o].pos[1]-(e[o].sens||0)/2+9),this.waveConfigs[o].squareWaveSens&&this.createLeadSensNams(this.waveConfigs[o].squareWaveSens,e[o].pos[0],e[o].pos[1]-15));this.waveDataCopy=e,e=null}createLeadSensNams(e,t,i){var a;let s=t;this.leadHeadConfig.isShowLeadCalibration===!1&&(this.leadModel.isSingleMode?s=t-this.leadHeadConfig.leadHedeWidth+12:s=t-this.leadHeadConfig.leadHedeWidth+5),this.leadHeadConfig.isShowLeadCalibration&&this.leadHeadConfig.isCalibrationDisplayedBelow&&(t<=this.leadHeadConfig.leadHedeWidth&&(this.leadModel.isSingleMode?s=t-this.leadHeadConfig.leadHedeWidth+12:s=t-this.leadHeadConfig.leadHedeWidth+5),i=i+40),(a=this.leadHeadNameGroup)==null||a.add(new c.Text({style:{x:s,y:i,text:e,fontSize:this.leadConfig.squareWaveSensFontSize||this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily}}))}createLeadName(e,t,i,s=!1){var o;let a=t;this.leadHeadConfig.isShowLeadCalibration===!1&&(this.leadModel.isSingleMode?a=t-this.leadHeadConfig.leadHedeWidth+12:a=t-this.leadHeadConfig.leadHedeWidth+5),this.leadHeadConfig.isShowLeadCalibration&&this.leadHeadConfig.isCalibrationDisplayedBelow&&(t<=this.leadHeadConfig.leadHedeWidth&&(this.leadModel.isSingleMode?a=t-this.leadHeadConfig.leadHedeWidth+12:a=t-this.leadHeadConfig.leadHedeWidth+5),i=i+20),(o=this.leadHeadNameGroup)==null||o.add(new c.Text({style:{x:a,y:i,text:this.leadNames[e],fontSize:this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily},oncontextmenu:n=>{n.event.preventDefault(),this.$emit("notiifyLeadName",{event:k(b({},n),{name:this.leadNames[e],idx:e}),isAdd:s})},onclick:n=>{this.$emit("notiifyLeadName",{event:k(b({},n),{name:this.leadNames[e],idx:e}),isAdd:s})}}))}createLeadOffAndDel(e,t,i){var s;(this.isLeadOff(e)||this.isLeadDel(e))&&((s=this.leadHeadOffAndDelGroup)==null||s.add(new c.Text({cursor:"",style:{x:t,y:i,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}onContextmenu(e,t){e.event.preventDefault(),e.event.stopPropagation();const i=e.target.name.split("_"),s=+i[1];let a=0,o=0,n=0,d=0,l=0;t==="single"?(a=e.offsetX-this.singleWaveDataCopy[s].pos[0],o=this.singleWaveDataCopy[s].startInd,n=u.getPointIdxForPx(a,this.singleWaveDataCopy[s].step||1),d=this.singleWaveDataCopy[s].sens,l=this.singleWaveDataCopy[s].step):t==="rowAndCol"?(a=e.offsetX-this.waveDataCopy[s].pos[0],o=this.waveDataCopy[s].startInd||0,n=u.getPointIdxForPx(a,this.waveDataCopy[s].step||1),d=this.waveDataCopy[s].sens,l=this.waveDataCopy[s].step):t==="add"&&(a=e.offsetX-this.addWaveDataCopy[s].pos[0],o=this.addWaveDataCopy[s].startInd||0,n=u.getPointIdxForPx(a,this.addWaveDataCopy[s].step||1),d=this.addWaveDataCopy[s].sens,l=this.addWaveDataCopy[s].step),n+=o,this.$emit("notifyOnContextmenu",{sens:d,step:l,activeLeadIdx:+i[0],pointIdx:n,offsetX:e.offsetX,offsetY:e.offsetY,pageX:e.event.pageX,pageY:e.event.pageY})}onDbClickWaveFrom(e,t){const i=Date.now(),s=()=>{const a=e.target.name.split("_");this.activeLeadIdx=+a[0];const o=+a[1];let n=0,d=0,l=0,r=0,f=0;t==="single"?(n=e.offsetX-this.singleWaveDataCopy[o].pos[0],d=this.singleWaveDataCopy[o].startInd,l=u.getPointIdxForPx(n,this.singleWaveDataCopy[o].step||1),r=this.singleWaveDataCopy[o].sens,f=this.singleWaveDataCopy[o].step):t==="rowAndCol"?(n=e.offsetX-this.waveDataCopy[o].pos[0],d=this.waveDataCopy[o].startInd||0,l=u.getPointIdxForPx(n,this.waveDataCopy[o].step||1),r=this.waveDataCopy[o].sens,f=this.waveDataCopy[o].step):t==="add"&&(n=e.offsetX-this.addWaveDataCopy[o].pos[0],d=this.addWaveDataCopy[o].startInd||0,l=u.getPointIdxForPx(n,this.addWaveDataCopy[o].step||1),r=this.addWaveDataCopy[o].sens,f=this.addWaveDataCopy[o].step),l+=d,this.$emit("notifyActiveEnlargr",{sens:r,step:f,activeLeadIdx:this.activeLeadIdx,pointIdx:l})};i-this.dbClickWaveFromTime<400?(this.dbClickWaveFromTime=0,s()):this.dbClickWaveFromTime=i}nativeScrollFunc(e){this.scrollCommon(e.target.scrollLeft||0)}handleScroll(e,t,i){t.type==="horizontal"&&(t.scrollLeft=t.scrollLeft||0,this.scrollCommon(t.scrollLeft))}scrollCommon(e){const t=Math.max(0,e||0),i=u.getPointIdxForPx(t,this.publicStep||1);i!==this.lastScrollPointIdx&&(this.lastScrollPointIdx=i,this.lastScrollLeft=t,this.scrollWaveFrom(i),this.scrollRuler(i),this.scrollArrow(i),this.$emit("notifyScrollPointIdx",{slidIdxs:i,scrollLeft:t}))}scrollWaveFrom(e){var s,a;this.slidingWindowInfo.startInd=e,this.slidingWindowInfo.endInd=e+(this.slidingWindowInfo.points||0),this.addSlidingWindowInfo.startInd=e,this.addSlidingWindowInfo.endInd=e+(this.addSlidingWindowInfo.points||0);const t=this.getRednerPoints(),i=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=i,(s=this.rowAndColwaveFromGroup)==null||s.eachChild((o,n)=>{const d=t[n||0];if(!(d!=null&&d.data))return;const[l,r]=d.pos,f=new Array(d.data.length);for(let h=0;h<d.data.length;h++)f[h]=[d.data[h][0]+l,d.data[h][1]+r];o.attr({shape:{points:f}})}),(a=this.addwaveFromGroup)==null||a.eachChild((o,n)=>{const d=i[n||0];if(!(d!=null&&d.data))return;const[l,r]=d.pos,f=new Array(d.data.length);for(let h=0;h<d.data.length;h++)f[h]=[d.data[h][0]+l,d.data[h][1]+r];o.attr({shape:{points:f}})})}scrollRuler(e){const t=u.getDataLenTimes(this.leadModel.isSingleMode?0:e,this.leadModel.publicSampleRate||0)/1e3;this.drawRuler(t)}scrollArrow(e){this.drawLoopArrow(e),this.drawHeardBeatLine(e),this.drawHeartReact(e)}};w([v.Prop({default:()=>["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"]})],exports.default.prototype,"heardBeatLineKeys",2);w([v.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);w([v.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"waveConfigs",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"waveLists",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"leadNames",2);w([v.Prop({default:()=>[]})],exports.default.prototype,"analyseValues",2);w([v.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);w([v.Prop({required:!0})],exports.default.prototype,"leadModel",2);w([v.Prop({default:()=>({isShow:!1,gainName:"",speedName:""})})],exports.default.prototype,"rulerConfig",2);w([v.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);w([v.Prop({required:!0})],exports.default.prototype,"gridConfig",2);w([v.Prop({default:()=>({isShow:!1,speed:0,sens:0})})],exports.default.prototype,"measurRulerConfig",2);w([v.Prop({default:()=>({isShow:!1,heartRate:60,speed:0,sens:0})})],exports.default.prototype,"paralleRulerConfig",2);w([v.Prop({default:()=>({isShow:!1,speed:0})})],exports.default.prototype,"magnifierRulerConfig",2);w([v.Prop({default:()=>({isShow:!1,mode:!1,defaultSelect:2,heartrate:!1,interval:!1,qrstCompany:!1,telectricalaxis:!1,isClickArrow:!1,showIdxPai:0})})],exports.default.prototype,"heartFight",2);w([v.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);w([v.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeConfig",2);w([v.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);w([v.Prop({default:()=>0})],exports.default.prototype,"dataTotalTimes",2);w([v.Prop({default:()=>0})],exports.default.prototype,"dataTotalLength",2);w([v.Prop({default:()=>""})],exports.default.prototype,"prefixId",2);w([v.Prop({default:()=>0})],exports.default.prototype,"posStart",2);w([_.debounceDecorator(100,{leading:!0,trailing:!0})],exports.default.prototype,"nativeScrollFunc",1);w([_.debounceDecorator(100,{leading:!0,trailing:!0})],exports.default.prototype,"handleScroll",1);exports.default=w([Y.default({name:"Methods"})],exports.default);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("lodash");function l(o,t){return function(c,a,e){const r=e.value;e.value=n.throttle(r,o,t)}}function d(o,t){return function(c,a,e){const r=e.value;e.value=n.debounce(r,o,t)}}exports.debounceDecorator=d;exports.throttleDecorator=l;
|
package/package.json
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "costy-plus",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"main": "dist/lib/index.js",
|
|
5
|
-
"module": "dist/es/index.js",
|
|
6
|
-
"types": "dist/es/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "vite build",
|
|
9
|
-
"test": "vitest run"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"dist"
|
|
13
|
-
],
|
|
14
|
-
"keywords": [
|
|
15
|
-
"costy-plus",
|
|
16
|
-
"vue2组件库"
|
|
17
|
-
],
|
|
18
|
-
"author": "magic-tao",
|
|
19
|
-
"license": "MIT",
|
|
20
|
-
"description": "",
|
|
21
|
-
"typings": "dist/lib/index.d.ts",
|
|
22
|
-
"dependencies": {
|
|
23
|
-
"@costy-plus/utils": "0.0.17-0",
|
|
24
|
-
"element-ui": "~2.15.11",
|
|
25
|
-
"vuescroll": "4.17.5",
|
|
26
|
-
"zrender": "^5.5.0"
|
|
27
|
-
},
|
|
28
|
-
"peerDependencies": {
|
|
29
|
-
"lodash": "^4.17.21",
|
|
30
|
-
"view-design": "^4.7.0",
|
|
31
|
-
"zrender": "^5.5.0"
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "costy-plus",
|
|
3
|
+
"version": "1.1.46-0",
|
|
4
|
+
"main": "dist/lib/index.js",
|
|
5
|
+
"module": "dist/es/index.js",
|
|
6
|
+
"types": "dist/es/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "vite build",
|
|
9
|
+
"test": "vitest run"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"keywords": [
|
|
15
|
+
"costy-plus",
|
|
16
|
+
"vue2组件库"
|
|
17
|
+
],
|
|
18
|
+
"author": "magic-tao",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"description": "",
|
|
21
|
+
"typings": "dist/lib/index.d.ts",
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@costy-plus/utils": "0.0.17-0",
|
|
24
|
+
"element-ui": "~2.15.11",
|
|
25
|
+
"vuescroll": "4.17.5",
|
|
26
|
+
"zrender": "^5.5.0"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"lodash": "^4.17.21",
|
|
30
|
+
"view-design": "^4.7.0",
|
|
31
|
+
"zrender": "^5.5.0"
|
|
32
|
+
}
|
|
33
|
+
}
|