costy-plus 1.0.63-0 → 1.0.66-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.
@@ -105,18 +105,18 @@ let g = class extends E {
105
105
  initSlidingWindowInfo() {
106
106
  const e = this.publicStep || 0, t = Math.ceil(this.splitPoint / e);
107
107
  if (this.slidingWindowInfo = {
108
- points: this.slidingWindowInfo.points || t,
108
+ points: this.slidingWindowInfo.points !== t ? t : this.slidingWindowInfo.points,
109
109
  startInd: this.slidingWindowInfo.startInd || 0,
110
- endInd: this.slidingWindowInfo.endInd || t
110
+ endInd: this.slidingWindowInfo.endInd !== t ? t : this.slidingWindowInfo.endInd
111
111
  }, this.scrollConfig.isShow && !this.leadModel.isSingleMode) {
112
112
  const s = W(this.leadModel.publicSpeed, this.gridConfig.cellMg, this.leadModel.publicSampleRate), a = this.dataTotalLength * s;
113
113
  this.vuescrollWH.width = this.canvasContainer.width + (a || 0) - this.splitPoint;
114
114
  }
115
115
  const i = Math.ceil((this.drawArea.width - this.leadHeadConfig.leadHedeWidth) / e);
116
116
  this.addSlidingWindowInfo = {
117
- points: this.addSlidingWindowInfo.points || i,
117
+ points: this.addSlidingWindowInfo.points !== i ? i : this.addSlidingWindowInfo.points,
118
118
  startInd: this.addSlidingWindowInfo.startInd || 0,
119
- endInd: this.addSlidingWindowInfo.endInd || i
119
+ endInd: this.addSlidingWindowInfo.endInd !== i ? i : this.addSlidingWindowInfo.endInd
120
120
  };
121
121
  }
122
122
  calcHighestAndLowestPoint() {
@@ -81,3 +81,14 @@ export interface BottomRulerConfig {
81
81
  /** 走纸 */
82
82
  speed: number;
83
83
  }
84
+ /** 底部时间设置*/
85
+ export interface BottomTimeConfig {
86
+ isShow: boolean;
87
+ /** 采样率 */
88
+ sampleRate: number;
89
+ /** 增益 */
90
+ gain: number;
91
+ /** 走纸 */
92
+ speed: number;
93
+ startTime: string;
94
+ }
@@ -1,7 +1,7 @@
1
1
  import { Vue } from 'vue-property-decorator';
2
2
  import type { Config as vueScrollConfig } from 'vuescroll';
3
3
  import { ZRenderType, Group, Polyline, Line, ElementEvent } from 'zrender';
4
- import { LeadModle, LongLeadConfig, SingleModeConfig, WaveConfig, BottomRulerConfig } from './interface';
4
+ import { LeadModle, LongLeadConfig, SingleModeConfig, WaveConfig, BottomRulerConfig, BottomTimeConfig } from './interface';
5
5
  import { LeadHeadConfig, MXLeadConfig } from '../../types/EcgWave';
6
6
  import { MXGridConfig } from '../../types/BackgroundGrid';
7
7
  import { HandleScrollParams } from '../../types/Common';
@@ -20,6 +20,7 @@ export default class Methods extends Vue {
20
20
  protected leadModel: LeadModle;
21
21
  /** 底部导联尺子配置 */
22
22
  protected rulerConfig: BottomRulerConfig;
23
+ protected timeConfig: BottomTimeConfig;
23
24
  /** 导联配置 */
24
25
  protected leadConfig: MXLeadConfig;
25
26
  /** 网格配置 */
@@ -179,6 +180,9 @@ export default class Methods extends Vue {
179
180
  protected drawRulerNotes(): void;
180
181
  /** 绘制标尺 */
181
182
  protected drawRuler(startTimes?: number): void;
183
+ timestampToTime(timestamp?: number): string;
184
+ /** 绘制标尺 */
185
+ protected drawTimeLine(startTimes?: number): void;
182
186
  /** 绘制展示波形相关 */
183
187
  protected drawWaveFrom(): void;
184
188
  /** 获取 视图 单导 的数据点位 */
@@ -1,29 +1,29 @@
1
1
  var G = Object.defineProperty, x = Object.defineProperties;
2
2
  var D = Object.getOwnPropertyDescriptors;
3
- var F = Object.getOwnPropertySymbols;
4
- var O = Object.prototype.hasOwnProperty, N = Object.prototype.propertyIsEnumerable;
3
+ var L = Object.getOwnPropertySymbols;
4
+ var O = Object.prototype.hasOwnProperty, P = Object.prototype.propertyIsEnumerable;
5
5
  var A = (e, t, i) => t in e ? G(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, S = (e, t) => {
6
6
  for (var i in t || (t = {}))
7
7
  O.call(t, i) && A(e, i, t[i]);
8
- if (F)
9
- for (var i of F(t))
10
- N.call(t, i) && A(e, i, t[i]);
8
+ if (L)
9
+ for (var i of L(t))
10
+ P.call(t, i) && A(e, i, t[i]);
11
11
  return e;
12
12
  }, H = (e, t) => x(e, D(t));
13
- import P from "vue";
14
- import z from "../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js";
13
+ import N from "vue";
14
+ import R from "../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js";
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
- import { Prop as u } 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
- import { flattenDeep as R, max as j, min as B } from "lodash";
18
- import { throttling as b, getStepForSpeed as w, getPrintLengthToPx as k, getSens as m, getDataLenTimes as W, getPointIdxForPx as L, getActualY as v } from "@costy-plus/utils";
19
- import * as $ from "zrender";
20
- import { Group as c, Polyline as M, Line as y, Text as I } from "zrender";
21
- var X = Object.defineProperty, Y = Object.getOwnPropertyDescriptor, g = (e, t, i, s) => {
22
- for (var o = s > 1 ? void 0 : s ? Y(t, i) : t, n = e.length - 1, l; n >= 0; n--)
23
- (l = e[n]) && (o = (s ? l(t, i, o) : l(o)) || o);
24
- return s && o && X(t, i, o), o;
16
+ import { Prop as c } 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
+ import { flattenDeep as z, max as j, min as $ } from "lodash";
18
+ import { throttling as b, getStepForSpeed as w, getPrintLengthToPx as B, getSens as v, getDataLenTimes as W, getPointIdxForPx as F, getActualY as I } from "@costy-plus/utils";
19
+ import * as k from "zrender";
20
+ import { Group as u, Polyline as M, Line as y, Text as C } from "zrender";
21
+ var T = Object.defineProperty, X = Object.getOwnPropertyDescriptor, g = (e, t, i, s) => {
22
+ for (var o = s > 1 ? void 0 : s ? X(t, i) : t, n = e.length - 1, a; n >= 0; n--)
23
+ (a = e[n]) && (o = (s ? a(t, i, o) : a(o)) || o);
24
+ return s && o && T(t, i, o), o;
25
25
  };
26
- let p = class extends P {
26
+ let p = class extends N {
27
27
  constructor() {
28
28
  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.heardBeatLineGroup = Object.freeze(null), this.bottomAreaHeight = Object.freeze(55), 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.range = Object.freeze(5e3), this.loopArrowY = Object.freeze({
29
29
  add: 0,
@@ -47,8 +47,8 @@ let p = class extends P {
47
47
  };
48
48
  }
49
49
  destroyed() {
50
- var e, t, i, s, o, n, l, h, a, f, r;
51
- 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(), (o = this.splitLineGroup) == null || o.removeAll(), (n = this.leadHeadNameGroup) == null || n.removeAll(), (l = this.leadHeadOffAndDelGroup) == null || l.removeAll(), (h = this.rulerGroup) == null || h.removeAll(), (a = this.arrowGroup) == null || a.removeAll(), (f = this.heardBeatLineGroup) == null || f.removeAll(), (r = this.sceneIns) == null || r.dispose();
50
+ var e, t, i, s, o, n, a, h, l, f, d;
51
+ 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(), (o = this.splitLineGroup) == null || o.removeAll(), (n = this.leadHeadNameGroup) == null || n.removeAll(), (a = this.leadHeadOffAndDelGroup) == null || a.removeAll(), (h = this.rulerGroup) == null || h.removeAll(), (l = this.arrowGroup) == null || l.removeAll(), (f = this.heardBeatLineGroup) == null || f.removeAll(), (d = this.sceneIns) == null || d.dispose();
52
52
  }
53
53
  initCreatedConfig() {
54
54
  this.vuescrollWH.width = this.width, this.vuescrollWH.height = this.height, this.initConfig();
@@ -84,25 +84,25 @@ let p = class extends P {
84
84
  initSlidingWindowInfo() {
85
85
  const e = this.publicStep || 0, t = Math.ceil(this.splitPoint / e);
86
86
  if (this.slidingWindowInfo = {
87
- points: this.slidingWindowInfo.points || t,
87
+ points: this.slidingWindowInfo.points !== t ? t : this.slidingWindowInfo.points,
88
88
  startInd: this.slidingWindowInfo.startInd || 0,
89
- endInd: this.slidingWindowInfo.endInd || t
89
+ endInd: this.slidingWindowInfo.endInd !== t ? t : this.slidingWindowInfo.endInd
90
90
  }, this.scrollConfig.isShow && !this.leadModel.isSingleMode) {
91
91
  const s = w(this.leadModel.publicSpeed, this.gridConfig.cellMg, this.leadModel.publicSampleRate), o = this.dataTotalLength * s;
92
92
  this.vuescrollWH.width = this.canvasContainer.width + (o || 0) - this.splitPoint;
93
93
  }
94
94
  const i = Math.ceil((this.drawArea.width - this.leadHeadConfig.leadHedeWidth) / e);
95
95
  this.addSlidingWindowInfo = {
96
- points: this.addSlidingWindowInfo.points || i,
96
+ points: this.addSlidingWindowInfo.points !== i ? i : this.addSlidingWindowInfo.points,
97
97
  startInd: this.addSlidingWindowInfo.startInd || 0,
98
- endInd: this.addSlidingWindowInfo.endInd || i
98
+ endInd: this.addSlidingWindowInfo.endInd !== i ? i : this.addSlidingWindowInfo.endInd
99
99
  };
100
100
  }
101
101
  calcHighestAndLowestPoint() {
102
- const e = R(this.waveLists);
102
+ const e = z(this.waveLists);
103
103
  return {
104
104
  maxPoints: j(e) || 0,
105
- minPoints: B(e) || 0
105
+ minPoints: $(e) || 0
106
106
  };
107
107
  }
108
108
  isLeadOff(e) {
@@ -113,30 +113,30 @@ let p = class extends P {
113
113
  }
114
114
  initConfig() {
115
115
  var t;
116
- this.rowAndColwaveFromGroup = new c({
116
+ this.rowAndColwaveFromGroup = new u({
117
117
  name: "rowAndColwaveFrom"
118
- }), this.singleWaveFromGroup = new c({
118
+ }), this.singleWaveFromGroup = new u({
119
119
  name: "singleWaveFrom"
120
- }), this.addwaveFromGroup = new c({
120
+ }), this.addwaveFromGroup = new u({
121
121
  name: "addwaveFrom"
122
- }), this.leadHeadGroup = new c({
122
+ }), this.leadHeadGroup = new u({
123
123
  name: "leadHead"
124
- }), this.splitLineGroup = new c({
124
+ }), this.splitLineGroup = new u({
125
125
  name: "splitLine"
126
- }), this.leadHeadNameGroup = new c({
126
+ }), this.leadHeadNameGroup = new u({
127
127
  name: "leadHeadName"
128
- }), this.leadHeadOffAndDelGroup = new c({
128
+ }), this.leadHeadOffAndDelGroup = new u({
129
129
  name: "leadHeadOffAndDel"
130
- }), this.rulerGroup = new c({
130
+ }), this.rulerGroup = new u({
131
131
  name: "ruler"
132
- }), this.arrowGroup = new c({
132
+ }), this.arrowGroup = new u({
133
133
  name: "arrowLoop"
134
- }), this.heardBeatLineGroup = new c({
134
+ }), this.heardBeatLineGroup = new u({
135
135
  name: "heardBeatLine"
136
136
  });
137
137
  let e = this.canvasContainer.width;
138
138
  if (this.leadModel.ecgareawidth === 1) {
139
- const i = k(((t = this.waveConfigs[0]) == null ? void 0 : t.sampleRate) || 0) + this.leadHeadConfig.leadHedeWidth;
139
+ const i = B(((t = this.waveConfigs[0]) == null ? void 0 : t.sampleRate) || 0) + this.leadHeadConfig.leadHedeWidth;
140
140
  i <= e && (e = i);
141
141
  } else if (this.leadModel.isContinuous) {
142
142
  const i = w(this.leadModel.publicSpeed, this.gridConfig.cellMg, this.leadModel.publicSampleRate), s = this.dataTotalLength * i;
@@ -162,7 +162,7 @@ let p = class extends P {
162
162
  var i;
163
163
  (i = this.sceneIns) == null || i.dispose(), this.AssistCtx = null;
164
164
  const e = document.getElementById(`${this.prefixId}wave-from-box`);
165
- this.sceneIns = $.init(e, {
165
+ this.sceneIns = k.init(e, {
166
166
  width: this.canvasContainer.width,
167
167
  height: this.canvasContainer.height,
168
168
  devicePixelRatio: 2
@@ -190,32 +190,32 @@ let p = class extends P {
190
190
  (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);
191
191
  }
192
192
  drawLeadHead() {
193
- var n, l, h, a, f;
194
- (n = this.leadHeadGroup) == null || n.removeAll(), (l = this.sceneIns) == null || l.remove(this.leadHeadGroup), console.log("this.waveConfigs", this.waveConfigs);
193
+ var n, a, h, l, f;
194
+ (n = this.leadHeadGroup) == null || n.removeAll(), (a = this.sceneIns) == null || a.remove(this.leadHeadGroup), console.log("this.waveConfigs", this.waveConfigs);
195
195
  let e = "", t = !1, i = 0, s = 0;
196
- for (let r = 0; r <= this.leadModel.column; r++) {
197
- s = r * this.leadModel.line;
196
+ for (let d = 0; d <= this.leadModel.column; d++) {
197
+ s = d * this.leadModel.line;
198
198
  e:
199
- for (let d = 1; d <= this.leadModel.line; d++) {
200
- if (!(this.waveConfigs || [])[d - 1 + s])
199
+ for (let r = 1; r <= this.leadModel.line; r++) {
200
+ if (!(this.waveConfigs || [])[r - 1 + s])
201
201
  break e;
202
- !this.waveConfigs[d - 1 + s].isShowLeadHead || (t = !1, e = (this.leadNames || [])[d - 1 + s] || "", this.waveConfigs[d - 1 + s].gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(e) && (t = !0), i = this.waveConfigs[d - 1 + s].posX ? this.waveConfigs[d - 1 + s].posX - this.leadHeadConfig.leadHedeWidth : 0, (h = this.leadHeadGroup) == null || h.add(
202
+ !this.waveConfigs[r - 1 + s].isShowLeadHead || (t = !1, e = (this.leadNames || [])[r - 1 + s] || "", this.waveConfigs[r - 1 + s].gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(e) && (t = !0), i = this.waveConfigs[r - 1 + s].posX ? this.waveConfigs[r - 1 + s].posX - this.leadHeadConfig.leadHedeWidth : 0, (h = this.leadHeadGroup) == null || h.add(
203
203
  this.createLeadHead(
204
204
  i,
205
- this.waveConfigs[d - 1 + s].posY || d * this.splitBlockHeight,
206
- m(this.waveConfigs[d - 1 + s].gain, this.gridConfig.cellMg),
205
+ this.waveConfigs[r - 1 + s].posY || r * this.splitBlockHeight,
206
+ v(this.waveConfigs[r - 1 + s].gain, this.gridConfig.cellMg),
207
207
  t
208
208
  )
209
209
  ));
210
210
  }
211
211
  }
212
212
  let o = null;
213
- for (let r = 0; r < this.leadModel.add; r++)
214
- !this.waveConfigs[this.longLeadConfig.leadIdxs[r]] || (o = this.waveConfigs[this.longLeadConfig.leadIdxs[r]], e = this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[r]]], t = !1, o.gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(e) && (t = !0), i = o.posX ? o.posX - this.leadHeadConfig.leadHedeWidth : 0, (a = this.leadHeadGroup) == null || a.add(
213
+ for (let d = 0; d < this.leadModel.add; d++)
214
+ !this.waveConfigs[this.longLeadConfig.leadIdxs[d]] || (o = this.waveConfigs[this.longLeadConfig.leadIdxs[d]], e = this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[d]]], t = !1, o.gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(e) && (t = !0), i = o.posX ? o.posX - this.leadHeadConfig.leadHedeWidth : 0, (l = this.leadHeadGroup) == null || l.add(
215
215
  this.createLeadHead(
216
216
  i,
217
- o.posY || (r + 1 + this.leadModel.line) * this.splitBlockHeight,
218
- m(o.gain, this.gridConfig.cellMg),
217
+ o.posY || (d + 1 + this.leadModel.line) * this.splitBlockHeight,
218
+ v(o.gain, this.gridConfig.cellMg),
219
219
  t
220
220
  )
221
221
  ));
@@ -260,42 +260,42 @@ let p = class extends P {
260
260
  });
261
261
  }
262
262
  drawColSplitLine() {
263
- var n, l, h, a, f;
264
- (n = this.splitLineGroup) == null || n.removeAll(), (l = this.sceneIns) == null || l.remove(this.splitLineGroup);
263
+ var n, a, h, l, f;
264
+ (n = this.splitLineGroup) == null || n.removeAll(), (a = this.sceneIns) == null || a.remove(this.splitLineGroup);
265
265
  const e = (this.drawArea.width - this.leadHeadConfig.leadHedeWidth) / (this.leadModel.column || 1);
266
266
  if (this.splitPoint = e, this.leadModel.isSingleMode) {
267
- const r = w(
267
+ const d = w(
268
268
  this.waveConfigs[this.singleModeConfig.defaultSelect].speed,
269
269
  this.gridConfig.cellMg,
270
270
  this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate
271
- ), d = W(
272
- Math.ceil(this.splitPoint / (r || 1)) || 0,
271
+ ), r = W(
272
+ Math.ceil(this.splitPoint / (d || 1)) || 0,
273
273
  this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate || 0
274
- ), C = parseInt(`${d / 1e3 % 60}`, 10);
275
- this.splitPoint = C * (this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate || 0) * (r || 0);
274
+ ), m = parseInt(`${r / 1e3 % 60}`, 10);
275
+ this.splitPoint = m * (this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate || 0) * (d || 0);
276
276
  }
277
277
  let t = 0, i = 0, s = 0, o = 0;
278
- for (let r = 1; r <= this.leadModel.column - 1; r++) {
279
- t = r * e + this.leadHeadConfig.leadHedeWidth, i = r * this.leadModel.line;
278
+ for (let d = 1; d <= this.leadModel.column - 1; d++) {
279
+ t = d * e + this.leadHeadConfig.leadHedeWidth, i = d * this.leadModel.line;
280
280
  e:
281
- for (let d = 1; d <= this.leadModel.line; d++) {
282
- if (!(this.waveConfigs || [])[d - 1 + i])
281
+ for (let r = 1; r <= this.leadModel.line; r++) {
282
+ if (!(this.waveConfigs || [])[r - 1 + i])
283
283
  break e;
284
- if ((this.waveConfigs || [])[d - 1 + i].isShowLeadHead)
284
+ if ((this.waveConfigs || [])[r - 1 + i].isShowLeadHead)
285
285
  continue e;
286
- if ((this.waveConfigs || [])[d - 1 + i].posX !== void 0 && (t = (this.waveConfigs || [])[d - 1 + i].posX), s = (this.waveConfigs || [])[d - 1 + i].leadIdx, s === void 0)
286
+ if ((this.waveConfigs || [])[r - 1 + i].posX !== void 0 && (t = (this.waveConfigs || [])[r - 1 + i].posX), s = (this.waveConfigs || [])[r - 1 + i].leadIdx, s === void 0)
287
287
  break;
288
- o = m((this.waveConfigs || [])[d - 1 + i].gain, this.gridConfig.cellMg), (this.waveConfigs || [])[d - 1 + i].gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.leadNames[s]) ? (h = this.splitLineGroup) == null || h.add(
288
+ o = v((this.waveConfigs || [])[r - 1 + i].gain, this.gridConfig.cellMg), (this.waveConfigs || [])[r - 1 + i].gainName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.leadNames[s]) ? (h = this.splitLineGroup) == null || h.add(
289
289
  this.creatSplitLine(
290
290
  t,
291
- ((this.waveConfigs || [])[d - 1 + i].posY || d * this.splitBlockHeight) - (o || 0) / 2 * 0.5,
291
+ ((this.waveConfigs || [])[r - 1 + i].posY || r * this.splitBlockHeight) - (o || 0) / 2 * 0.5,
292
292
  o,
293
293
  !0
294
294
  )
295
- ) : (a = this.splitLineGroup) == null || a.add(
295
+ ) : (l = this.splitLineGroup) == null || l.add(
296
296
  this.creatSplitLine(
297
297
  t,
298
- ((this.waveConfigs || [])[d - 1 + i].posY || d * this.splitBlockHeight) - (o || 0) * 0.5,
298
+ ((this.waveConfigs || [])[r - 1 + i].posY || r * this.splitBlockHeight) - (o || 0) * 0.5,
299
299
  o
300
300
  )
301
301
  );
@@ -326,14 +326,14 @@ let p = class extends P {
326
326
  fill: "#FF0080",
327
327
  fontSize: 13,
328
328
  fontFamily: this.fontFamily
329
- }, t = new I({
329
+ }, t = new C({
330
330
  cursor: "",
331
331
  style: S({
332
332
  text: "(s)",
333
333
  x: this.leadHeadConfig.leadHedeWidth / 2 - 8,
334
334
  y: this.canvasContainer.height - 25
335
335
  }, e)
336
- }), i = new I({
336
+ }), i = new C({
337
337
  style: S({
338
338
  text: `${this.rulerConfig.gainName} ${this.rulerConfig.speedName}`,
339
339
  x: this.leadHeadConfig.leadHedeWidth / 2 + 20,
@@ -343,7 +343,7 @@ let p = class extends P {
343
343
  (s = this.sceneIns) == null || s.add(i), (o = this.sceneIns) == null || o.add(t);
344
344
  }
345
345
  drawRuler(e = 0) {
346
- var l, h, a;
346
+ var a, h, l;
347
347
  if (this.timersCopy = e, !this.rulerConfig.isShow)
348
348
  return;
349
349
  const t = this.dataTotalTimes / 1e3;
@@ -352,11 +352,11 @@ let p = class extends P {
352
352
  if (this.leadModel.isContinuous)
353
353
  o = t * 5;
354
354
  else if (!this.leadModel.add && n) {
355
- const f = L(this.splitPoint, n), r = W(f, this.rulerConfig.sampleRate || 0) / 1e3;
356
- o = e + r;
355
+ const f = F(this.splitPoint, n), d = W(f, this.rulerConfig.sampleRate || 0) / 1e3;
356
+ o = e + d;
357
357
  }
358
358
  for (let f = e; f <= o; f = +(f + 0.1).toFixed(1))
359
- f !== e && (i += this.rulerStep), f % 1 === 0 ? (s = this.canvasContainer.height - 10, (l = this.rulerGroup) == null || l.add(new I({
359
+ f !== e && (i += this.rulerStep), f % 1 === 0 ? (s = this.canvasContainer.height - 10, (a = this.rulerGroup) == null || a.add(new C({
360
360
  cursor: "",
361
361
  style: {
362
362
  x: i,
@@ -379,11 +379,55 @@ let p = class extends P {
379
379
  lineWidth: 2
380
380
  }
381
381
  }));
382
- (a = this.sceneIns) == null || a.add(this.rulerGroup);
382
+ (l = this.sceneIns) == null || l.add(this.rulerGroup);
383
+ }
384
+ timestampToTime(e = 0) {
385
+ const t = new Date(e), i = t.getFullYear(), s = ("0" + (t.getMonth() + 1)).slice(-2), o = ("0" + t.getDate()).slice(-2), n = ("0" + t.getHours()).slice(-2), a = ("0" + t.getMinutes()).slice(-2), h = ("0" + t.getSeconds()).slice(-2);
386
+ return `${i}-${s}-${o} ${n}:${a}:${h}`;
387
+ }
388
+ drawTimeLine(e = 0) {
389
+ var h, l, f;
390
+ if (this.timersCopy = e, !this.timeConfig.isShow)
391
+ return;
392
+ const t = this.dataTotalTimes / 1e3;
393
+ let i = this.leadHeadConfig.leadHedeWidth, s = 0, o = t;
394
+ const n = w(this.timeConfig.speed, this.gridConfig.cellMg, this.timeConfig.sampleRate);
395
+ if (this.leadModel.isContinuous)
396
+ o = t * 5;
397
+ else if (!this.leadModel.add && n) {
398
+ const d = F(this.splitPoint, n), r = W(d, this.timeConfig.sampleRate || 0) / 1e3;
399
+ o = e + r;
400
+ }
401
+ const a = new Date(this.timeConfig.startTime).getTime();
402
+ for (let d = e; d <= o; d = +(d + 0.1).toFixed(1))
403
+ d !== e && (i += this.rulerStep), d % 1 === 0 ? (s = this.canvasContainer.height - 10, (h = this.rulerGroup) == null || h.add(new C({
404
+ cursor: "",
405
+ style: {
406
+ x: i,
407
+ y: s - 15,
408
+ text: this.timestampToTime(a + d * 1e3).slice(11),
409
+ fontSize: 13,
410
+ fontFamily: this.fontFamily,
411
+ fill: "#000"
412
+ }
413
+ })), (l = this.rulerGroup) == null || l.add(new y({
414
+ cursor: "",
415
+ shape: {
416
+ x1: i,
417
+ y1: s,
418
+ x2: i,
419
+ y2: this.canvasContainer.height
420
+ },
421
+ style: {
422
+ stroke: "#000",
423
+ lineWidth: 1
424
+ }
425
+ }))) : s = this.canvasContainer.height - 5;
426
+ (f = this.sceneIns) == null || f.add(this.rulerGroup);
383
427
  }
384
428
  drawWaveFrom() {
385
429
  var e, t, i;
386
- this.leadModel.isSingleMode ? (this.addWaveDataCopy = [], this.waveDataCopy = [], this.createSingleWaveFrom(), (e = this.sceneIns) == null || e.add(this.singleWaveFromGroup)) : (this.singleWaveDataCopy = [], this.createAddWaveFrom(), this.createRowAndColWaveFrom(), (t = this.sceneIns) == null || t.add(this.rowAndColwaveFromGroup), (i = this.sceneIns) == null || i.add(this.addwaveFromGroup)), this.drawLeadHeadNameAndOffOrDel(), this.drawRuler(this.timersCopy);
430
+ this.leadModel.isSingleMode ? (this.addWaveDataCopy = [], this.waveDataCopy = [], this.createSingleWaveFrom(), (e = this.sceneIns) == null || e.add(this.singleWaveFromGroup)) : (this.singleWaveDataCopy = [], this.createAddWaveFrom(), this.createRowAndColWaveFrom(), (t = this.sceneIns) == null || t.add(this.rowAndColwaveFromGroup), (i = this.sceneIns) == null || i.add(this.addwaveFromGroup)), this.drawLeadHeadNameAndOffOrDel(), this.drawRuler(this.timersCopy), this.drawTimeLine(this.timersCopy);
387
431
  }
388
432
  getRednerSinglePoints() {
389
433
  let e = 0, t = 0;
@@ -393,36 +437,36 @@ let p = class extends P {
393
437
  this.waveConfigs[this.singleModeConfig.defaultSelect].speed,
394
438
  this.gridConfig.cellMg,
395
439
  this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate
396
- ), l = m(this.waveConfigs[this.singleModeConfig.defaultSelect].gain, this.gridConfig.cellMg), h = [], a = Math.ceil(i.length / (this.slidingWindowInfo.points || 1));
440
+ ), a = v(this.waveConfigs[this.singleModeConfig.defaultSelect].gain, this.gridConfig.cellMg), h = [], l = Math.ceil(i.length / (this.slidingWindowInfo.points || 1));
397
441
  for (let f = 0; f < 1; f++) {
398
442
  e = f * this.splitPoint + this.leadHeadConfig.leadHedeWidth, t = 0;
399
- for (let r = 1; r <= a; r++)
400
- t = r * this.splitBlockHeight, r > 1 && (t *= 0.8, s = o, o = s + (this.slidingWindowInfo.points || 0)), r === 1 && (this.loopArrowY.rowAndCol = t), h.push({
443
+ for (let d = 1; d <= l; d++)
444
+ t = d * this.splitBlockHeight, d > 1 && (t *= 0.8, s = o, o = s + (this.slidingWindowInfo.points || 0)), d === 1 && (this.loopArrowY.rowAndCol = t), h.push({
401
445
  pos: [e, t],
402
446
  startInd: s,
403
447
  endInd: o,
404
448
  step: n,
405
- sens: l,
406
- data: i.slice(s, o).map((d, C) => this.waveConfigs[this.singleModeConfig.defaultSelect].leadName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName) ? v(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity, d, l / 2) : v(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity, d, l)).map((d, C) => [C * (n || 0), -d])
449
+ sens: a,
450
+ data: i.slice(s, o).map((r, m) => this.waveConfigs[this.singleModeConfig.defaultSelect].leadName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName) ? I(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity, r, a / 2) : I(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity, r, a)).map((r, m) => [m * (n || 0), -r])
407
451
  });
408
452
  }
409
453
  return h;
410
454
  }
411
455
  createSingleWaveFrom() {
412
- var n, l, h;
456
+ var n, a, h;
413
457
  (n = this.singleWaveFromGroup) == null || n.removeAll();
414
458
  let e = this.getRednerSinglePoints(), t = W(this.slidingWindowInfo.points || 0, this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate || 0), i = 0, s = 0, o = 0;
415
- for (let a = 0; a < e.length && !(e[a].pos[1] > this.drawArea.height + this.bottomAreaHeight); a++)
416
- this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx) || (i = parseInt(`${t / 1e3 / 60}`, 10), s = parseInt(`${t / 1e3 % 60}`, 10), i = s === 60 ? i += 1 : i, i = i === 0 ? "00" : i < 10 ? `0${i}` : i, s = s === 0 || s === 60 ? "00" : s < 10 ? `0${s}` : s, (l = this.singleWaveFromGroup) == null || l.add(new M({
459
+ for (let l = 0; l < e.length && !(e[l].pos[1] > this.drawArea.height + this.bottomAreaHeight); l++)
460
+ this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx) || (i = parseInt(`${t / 1e3 / 60}`, 10), s = parseInt(`${t / 1e3 % 60}`, 10), i = s === 60 ? i += 1 : i, i = i === 0 ? "00" : i < 10 ? `0${i}` : i, s = s === 0 || s === 60 ? "00" : s < 10 ? `0${s}` : s, (a = this.singleWaveFromGroup) == null || a.add(new M({
417
461
  cursor: "",
418
- name: this.singleModeConfig.defaultSelect + "_" + a,
462
+ name: this.singleModeConfig.defaultSelect + "_" + l,
419
463
  shape: {
420
- points: e[a].data.map(([f, r], d) => isNaN(r) ? (o === 0 && (o = d - 1, o = o < 0 ? 0 : o), [
421
- e[a].data[o][0] + e[a].pos[0],
422
- e[a].data[o][1] + e[a].pos[1]
464
+ points: e[l].data.map(([f, d], r) => isNaN(d) ? (o === 0 && (o = r - 1, o = o < 0 ? 0 : o), [
465
+ e[l].data[o][0] + e[l].pos[0],
466
+ e[l].data[o][1] + e[l].pos[1]
423
467
  ]) : (o = 0, [
424
- f + e[a].pos[0],
425
- r + e[a].pos[1]
468
+ f + e[l].pos[0],
469
+ d + e[l].pos[1]
426
470
  ]))
427
471
  },
428
472
  style: {
@@ -432,21 +476,21 @@ let p = class extends P {
432
476
  onclick: (f) => {
433
477
  console.log(11, f);
434
478
  }
435
- })), (h = this.singleWaveFromGroup) == null || h.add(new I({
479
+ })), (h = this.singleWaveFromGroup) == null || h.add(new C({
436
480
  cursor: "",
437
481
  style: {
438
- x: e[a].pos[0],
439
- y: e[a].pos[1] - (e[a].sens || 0) / 2,
440
- text: a === 0 ? "00:00 \u5FC3\u7387" : `${i}:${s} \u5FC3\u7387`,
482
+ x: e[l].pos[0],
483
+ y: e[l].pos[1] - (e[l].sens || 0) / 2,
484
+ text: l === 0 ? "00:00 \u5FC3\u7387" : `${i}:${s} \u5FC3\u7387`,
441
485
  fontWeight: "bold",
442
486
  fontSize: 14,
443
487
  fill: "#FF0080",
444
488
  fontFamily: this.fontFamily
445
489
  }
446
- })), a > 0 && (t += t)), this.createLeadName(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx, e[0].pos[0] - 10, e[0].pos[1] + 10), this.createLeadOffAndDel(
490
+ })), l > 0 && (t += t)), this.createLeadName(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx, e[0].pos[0] - 10, e[0].pos[1] + 10), this.createLeadOffAndDel(
447
491
  this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx,
448
492
  e[0].pos[0] - 5,
449
- e[0].pos[1] - (e[a].sens || 0) / 2 - 15
493
+ e[0].pos[1] - (e[l].sens || 0) / 2 - 15
450
494
  );
451
495
  this.singleWaveDataCopy = e, e = null;
452
496
  }
@@ -456,14 +500,14 @@ let p = class extends P {
456
500
  }
457
501
  getAddRednerPoints() {
458
502
  const e = [];
459
- let t = this.leadHeadConfig.leadHedeWidth, i = 0, s = 0, o = [], n = 0, l = 0;
503
+ let t = this.leadHeadConfig.leadHedeWidth, i = 0, s = 0, o = [], n = 0, a = 0;
460
504
  for (let h = 0; h < this.leadModel.add; h++)
461
- s = this.longLeadConfig.leadIdxs[h], this.waveConfigs[s] && (t = this.waveConfigs[s].addPosX || t, n = w(this.waveConfigs[s].speed, this.gridConfig.cellMg, this.waveConfigs[s].sampleRate), l = m(this.waveConfigs[s].gain, this.gridConfig.cellMg), i = this.waveConfigs[s].addPosY || (h + this.leadModel.line + 1) * this.splitBlockHeight, o = this.waveLists[s] || [], h === 0 && (this.loopArrowY.add = i), e.push({
505
+ s = this.longLeadConfig.leadIdxs[h], this.waveConfigs[s] && (t = this.waveConfigs[s].addPosX || t, n = w(this.waveConfigs[s].speed, this.gridConfig.cellMg, this.waveConfigs[s].sampleRate), a = v(this.waveConfigs[s].gain, this.gridConfig.cellMg), i = this.waveConfigs[s].addPosY || (h + this.leadModel.line + 1) * this.splitBlockHeight, o = this.waveLists[s] || [], h === 0 && (this.loopArrowY.add = i), e.push({
462
506
  pos: [t, i],
463
507
  startInd: this.addSlidingWindowInfo.startInd || 0,
464
508
  endInd: this.addSlidingWindowInfo.endInd || 0,
465
- data: o.slice(this.addSlidingWindowInfo.startInd, this.addSlidingWindowInfo.endInd).map((a, f) => this.waveConfigs[s].leadName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[s].leadName) ? v(this.waveConfigs[s].sensitivity, a, l / 2) : v(this.waveConfigs[s].sensitivity, a, l)).map((a, f) => [f * (n || 0), -a]),
466
- sens: l,
509
+ data: o.slice(this.addSlidingWindowInfo.startInd, this.addSlidingWindowInfo.endInd).map((l, f) => this.waveConfigs[s].leadName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[s].leadName) ? I(this.waveConfigs[s].sensitivity, l, a / 2) : I(this.waveConfigs[s].sensitivity, l, a)).map((l, f) => [f * (n || 0), -l]),
510
+ sens: a,
467
511
  step: n
468
512
  }));
469
513
  return e;
@@ -476,7 +520,7 @@ let p = class extends P {
476
520
  cursor: "",
477
521
  name: this.longLeadConfig.leadIdxs[s] + "_" + s,
478
522
  shape: {
479
- points: e[s].data.map(([o, n], l) => isNaN(n) ? (t === 0 && (t = l - 1, t = t < 0 ? 0 : t), [
523
+ points: e[s].data.map(([o, n], a) => isNaN(n) ? (t === 0 && (t = a - 1, t = t < 0 ? 0 : t), [
480
524
  e[s].data[t][0] + e[s].pos[0],
481
525
  e[s].data[t][1] + e[s].pos[1]
482
526
  ]) : (t = 0, [
@@ -495,21 +539,21 @@ let p = class extends P {
495
539
  this.addWaveDataCopy = e, e = null;
496
540
  }
497
541
  getRednerPoints() {
498
- let e = 0, t = 0, i = 0, s = [], o = 0, n = 0, l = this.slidingWindowInfo.startInd || 0, h = this.slidingWindowInfo.endInd || 0;
499
- const a = [];
542
+ let e = 0, t = 0, i = 0, s = [], o = 0, n = 0, a = this.slidingWindowInfo.startInd || 0, h = this.slidingWindowInfo.endInd || 0;
543
+ const l = [];
500
544
  for (let f = 0; f < this.leadModel.column; f++) {
501
- e = f * this.splitPoint + this.leadHeadConfig.leadHedeWidth, t = 0, this.leadModel.isContinuous && f > 0 && (l = h, h = l + (this.slidingWindowInfo.points || 0));
502
- for (let r = 1; r <= this.leadModel.line && (t = r * this.splitBlockHeight, !(i > (this.waveLists || []).length - 1)); r++)
503
- e = this.waveConfigs[i].posX || e, t = this.waveConfigs[i].posY || t, o = w(this.waveConfigs[i].speed, this.gridConfig.cellMg, this.waveConfigs[i].sampleRate), n = m(this.waveConfigs[i].gain, this.gridConfig.cellMg), s = this.waveLists[i] || [], this.waveConfigs[i] && (r === 1 && (this.loopArrowY.rowAndCol = t), a.push({
545
+ e = f * this.splitPoint + this.leadHeadConfig.leadHedeWidth, t = 0, this.leadModel.isContinuous && f > 0 && (a = h, h = a + (this.slidingWindowInfo.points || 0));
546
+ for (let d = 1; d <= this.leadModel.line && (t = d * this.splitBlockHeight, !(i > (this.waveLists || []).length - 1)); d++)
547
+ e = this.waveConfigs[i].posX || e, t = this.waveConfigs[i].posY || t, o = w(this.waveConfigs[i].speed, this.gridConfig.cellMg, this.waveConfigs[i].sampleRate), n = v(this.waveConfigs[i].gain, this.gridConfig.cellMg), s = this.waveLists[i] || [], this.waveConfigs[i] && (d === 1 && (this.loopArrowY.rowAndCol = t), l.push({
504
548
  pos: [e, t],
505
- startInd: l,
549
+ startInd: a,
506
550
  endInd: h,
507
551
  sens: n,
508
552
  step: o,
509
- data: s.slice(l, h).map((d, C) => this.waveConfigs[i].leadName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[i].leadName) ? v(this.waveConfigs[i].sensitivity, d, n / 2) : v(this.waveConfigs[i].sensitivity, d, n)).map((d, C) => [C * (o || 0), -d])
553
+ data: s.slice(a, h).map((r, m) => this.waveConfigs[i].leadName === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.waveConfigs[i].leadName) ? I(this.waveConfigs[i].sensitivity, r, n / 2) : I(this.waveConfigs[i].sensitivity, r, n)).map((r, m) => [m * (o || 0), -r])
510
554
  }), i++);
511
555
  }
512
- return a;
556
+ return l;
513
557
  }
514
558
  createRowAndColWaveFrom() {
515
559
  var s, o;
@@ -520,11 +564,11 @@ let p = class extends P {
520
564
  cursor: "",
521
565
  name: n + "_" + n,
522
566
  shape: {
523
- points: e[n].data.map(([l, h], a) => isNaN(h) ? (i === 0 && (i = a - 1, i = i < 0 ? 0 : i), [
567
+ points: e[n].data.map(([a, h], l) => isNaN(h) ? (i === 0 && (i = l - 1, i = i < 0 ? 0 : i), [
524
568
  e[n].data[i][0] + e[n].pos[0],
525
569
  e[n].data[i][1] + e[n].pos[1]
526
570
  ]) : (i = 0, [
527
- l + e[n].pos[0],
571
+ a + e[n].pos[0],
528
572
  h + e[n].pos[1]
529
573
  ]))
530
574
  },
@@ -532,15 +576,15 @@ let p = class extends P {
532
576
  stroke: this.leadConfig.lineColor,
533
577
  lineWidth: this.leadConfig.lineWidth
534
578
  },
535
- onclick: (l) => {
536
- console.log(33, l);
579
+ onclick: (a) => {
580
+ console.log(33, a);
537
581
  }
538
582
  })), n < this.leadModel.line ? (this.createLeadName(t, e[n].pos[0], e[n].pos[1] - 15), this.createLeadOffAndDel(t, e[n].pos[0] - 5, e[n].pos[1] - (e[n].sens || 0) / 2 - 15)) : (this.createLeadName(t, e[n].pos[0] + 5, e[n].pos[1] - (e[n].sens || 0) / 2), this.createLeadOffAndDel(t, e[n].pos[0] - 5, e[n].pos[1] - (e[n].sens || 0) / 2 + 9));
539
583
  this.waveDataCopy = e, e = null;
540
584
  }
541
585
  createLeadName(e, t, i, s = !1) {
542
586
  var o;
543
- (o = this.leadHeadNameGroup) == null || o.add(new I({
587
+ (o = this.leadHeadNameGroup) == null || o.add(new C({
544
588
  style: {
545
589
  x: t,
546
590
  y: i,
@@ -571,7 +615,7 @@ let p = class extends P {
571
615
  }
572
616
  createLeadOffAndDel(e, t, i) {
573
617
  var s;
574
- (this.isLeadOff(e) || this.isLeadDel(e)) && ((s = this.leadHeadOffAndDelGroup) == null || s.add(new I({
618
+ (this.isLeadOff(e) || this.isLeadDel(e)) && ((s = this.leadHeadOffAndDelGroup) == null || s.add(new C({
575
619
  cursor: "",
576
620
  style: {
577
621
  x: t,
@@ -591,7 +635,7 @@ let p = class extends P {
591
635
  t.type === "horizontal" && (t.scrollLeft = t.scrollLeft || 0, this.scrollCommon(t.scrollLeft));
592
636
  }
593
637
  scrollCommon(e) {
594
- const t = L(e, this.publicStep || 1);
638
+ const t = F(e, this.publicStep || 1);
595
639
  this.scrollWaveFrom(t), this.scrollRuler(t), this.scrollArrow(t), this.$emit("notifyScrollPointIdx", {
596
640
  slidIdxs: t,
597
641
  scrollLeft: e
@@ -601,21 +645,21 @@ let p = class extends P {
601
645
  var s, o;
602
646
  this.slidingWindowInfo.startInd = e, this.slidingWindowInfo.endInd = e + (this.slidingWindowInfo.points || 0), this.addSlidingWindowInfo.startInd = e, this.addSlidingWindowInfo.endInd = e + (this.addSlidingWindowInfo.points || 0);
603
647
  let t = this.getRednerPoints(), i = this.getAddRednerPoints();
604
- this.waveDataCopy = t, this.addWaveDataCopy = i, (s = this.rowAndColwaveFromGroup) == null || s.eachChild((n, l) => {
605
- l = l || 0, !(!t[l] || !t[l].data) && n.attr({
648
+ this.waveDataCopy = t, this.addWaveDataCopy = i, (s = this.rowAndColwaveFromGroup) == null || s.eachChild((n, a) => {
649
+ a = a || 0, !(!t[a] || !t[a].data) && n.attr({
606
650
  shape: {
607
- points: t[l].data.map(([h, a]) => [
608
- h + t[l].pos[0],
609
- a + t[l].pos[1]
651
+ points: t[a].data.map(([h, l]) => [
652
+ h + t[a].pos[0],
653
+ l + t[a].pos[1]
610
654
  ])
611
655
  }
612
656
  });
613
- }), (o = this.addwaveFromGroup) == null || o.eachChild((n, l) => {
614
- l = l || 0, !(!i[l] || !i[l].data) && n.attr({
657
+ }), (o = this.addwaveFromGroup) == null || o.eachChild((n, a) => {
658
+ a = a || 0, !(!i[a] || !i[a].data) && n.attr({
615
659
  shape: {
616
- points: i[l].data.map(([h, a]) => [
617
- h + i[l].pos[0],
618
- a + i[l].pos[1]
660
+ points: i[a].data.map(([h, l]) => [
661
+ h + i[a].pos[0],
662
+ l + i[a].pos[1]
619
663
  ])
620
664
  }
621
665
  });
@@ -625,7 +669,7 @@ let p = class extends P {
625
669
  var i, s;
626
670
  (i = this.rulerGroup) == null || i.removeAll(), (s = this.sceneIns) == null || s.remove(this.rulerGroup);
627
671
  const t = W(this.leadModel.isSingleMode ? 0 : e, this.leadModel.publicSampleRate || 0) / 1e3;
628
- this.drawRuler(t);
672
+ this.drawRuler(t), this.drawTimeLine(t);
629
673
  }
630
674
  scrollArrow(e) {
631
675
  var t, i;
@@ -633,36 +677,36 @@ let p = class extends P {
633
677
  }
634
678
  };
635
679
  g([
636
- u({
680
+ c({
637
681
  required: !0,
638
682
  type: Number,
639
683
  validator: (e) => typeof e == "number"
640
684
  })
641
685
  ], p.prototype, "width", 2);
642
686
  g([
643
- u({
687
+ c({
644
688
  required: !0,
645
689
  type: Number,
646
690
  validator: (e) => typeof e == "number"
647
691
  })
648
692
  ], p.prototype, "height", 2);
649
693
  g([
650
- u({
694
+ c({
651
695
  default: () => []
652
696
  })
653
697
  ], p.prototype, "waveConfigs", 2);
654
698
  g([
655
- u({
699
+ c({
656
700
  default: () => []
657
701
  })
658
702
  ], p.prototype, "waveLists", 2);
659
703
  g([
660
- u({
704
+ c({
661
705
  default: () => []
662
706
  })
663
707
  ], p.prototype, "leadNames", 2);
664
708
  g([
665
- u({
709
+ c({
666
710
  default: () => ({
667
711
  leadHedeWidth: 20,
668
712
  leadHedeColor: "#000",
@@ -671,12 +715,12 @@ g([
671
715
  })
672
716
  ], p.prototype, "leadHeadConfig", 2);
673
717
  g([
674
- u({
718
+ c({
675
719
  required: !0
676
720
  })
677
721
  ], p.prototype, "leadModel", 2);
678
722
  g([
679
- u({
723
+ c({
680
724
  default: () => ({
681
725
  isShow: !1,
682
726
  gainName: "",
@@ -685,7 +729,18 @@ g([
685
729
  })
686
730
  ], p.prototype, "rulerConfig", 2);
687
731
  g([
688
- u({
732
+ c({
733
+ default: () => ({
734
+ isShow: !0,
735
+ sampleRate: 500,
736
+ speed: 10,
737
+ gain: 10,
738
+ startTime: ""
739
+ })
740
+ })
741
+ ], p.prototype, "timeConfig", 2);
742
+ g([
743
+ c({
689
744
  default: () => ({
690
745
  lineColor: "#000",
691
746
  lineWidth: 1,
@@ -695,12 +750,12 @@ g([
695
750
  })
696
751
  ], p.prototype, "leadConfig", 2);
697
752
  g([
698
- u({
753
+ c({
699
754
  required: !0
700
755
  })
701
756
  ], p.prototype, "gridConfig", 2);
702
757
  g([
703
- u({
758
+ c({
704
759
  default: () => ({
705
760
  leadIdxs: [1, 6, 10],
706
761
  leadNames: [1, 6, 10]
@@ -708,14 +763,14 @@ g([
708
763
  })
709
764
  ], p.prototype, "longLeadConfig", 2);
710
765
  g([
711
- u({
766
+ c({
712
767
  default: () => ({
713
768
  defaultSelect: 1
714
769
  })
715
770
  })
716
771
  ], p.prototype, "singleModeConfig", 2);
717
772
  g([
718
- u({
773
+ c({
719
774
  default: () => ({
720
775
  isShow: !0,
721
776
  isNativeScroll: !1,
@@ -730,22 +785,22 @@ g([
730
785
  })
731
786
  ], p.prototype, "scrollConfig", 2);
732
787
  g([
733
- u({
788
+ c({
734
789
  default: () => 0
735
790
  })
736
791
  ], p.prototype, "dataTotalTimes", 2);
737
792
  g([
738
- u({
793
+ c({
739
794
  default: () => 0
740
795
  })
741
796
  ], p.prototype, "dataTotalLength", 2);
742
797
  g([
743
- u({
798
+ c({
744
799
  default: () => ""
745
800
  })
746
801
  ], p.prototype, "prefixId", 2);
747
802
  g([
748
- u({
803
+ c({
749
804
  default: () => 0
750
805
  })
751
806
  ], p.prototype, "posStart", 2);
@@ -756,7 +811,7 @@ g([
756
811
  b(200)
757
812
  ], p.prototype, "handleScroll", 1);
758
813
  p = g([
759
- z({
814
+ R({
760
815
  name: "Methods"
761
816
  })
762
817
  ], p);
@@ -1 +1 @@
1
- "use strict";var O=Object.defineProperty,B=Object.defineProperties;var N=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var G=(e,t,i)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,I=(e,t)=>{for(var i in t||(t={}))R.call(t,i)&&G(e,i,t[i]);if(D)for(var i of D(t))k.call(t,i)&&G(e,i,t[i]);return e},F=(e,t)=>B(e,N(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const j=require("vue"),z=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 w=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"),x=require("lodash"),u=require("@costy-plus/utils"),g=require("zrender"),T=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function _(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 $=T(j),X=_(g);var V=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,c=(e,t,i,s)=>{for(var a=s>1?void 0:s?Y(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&&V(t,i,a),a};exports.default=class extends $.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.heardBeatLineGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(55),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.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)}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,f,r;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(),(f=this.heardBeatLineGroup)==null||f.removeAll(),(r=this.sceneIns)==null||r.dispose()}initCreatedConfig(){this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height,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))}combinationDrawing(){this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawRulerNotes(),this.drawWaveFrom()}calcHeartBeatPositions(){let e=[];for(let t=0;t<this.analyseValues.length;t++){for(let i=1;i<this.analyseValues[t].length;i++)t!==1&&this.analyseValues[t][i].KeyPosByBeat.Rpoint===0||e.push({index:this.analyseValues[t][i].BeatID,position:this.analyseValues[t][i].KeyPosByBeat.Rpoint,heartrate:this.analyseValues[t][i].AnabyBeat.VentricularRate,interval:Math.round(60/this.analyseValues[t][i].AnabyBeat.VentricularRate*1e3),telectricalaxis:this.analyseValues[t][i].AnabyBeat.TAxis===9999?this.range:this.analyseValues[t][i].AnabyBeat.TAxis,qrstCompany:(this.analyseValues[t][i].AnabyBeat.QRS_T===9999?this.range:this.analyseValues[t][i].AnabyBeat.QRS_T)+"\xB0"});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,startInd:this.slidingWindowInfo.startInd||0,endInd:this.slidingWindowInfo.endInd||t},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,startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||i}}calcHighestAndLowestPoint(){const e=x.flattenDeep(this.waveLists);return{maxPoints:x.max(e)||0,minPoints:x.min(e)||0}}isLeadOff(e){return!!this.waveConfigs[e].isLeadOff}isLeadDel(e){return!!this.waveConfigs[e].isLeadDelete}initConfig(){var t;this.rowAndColwaveFromGroup=new g.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new g.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new g.Group({name:"addwaveFrom"}),this.leadHeadGroup=new g.Group({name:"leadHead"}),this.splitLineGroup=new g.Group({name:"splitLine"}),this.leadHeadNameGroup=new g.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new g.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new g.Group({name:"ruler"}),this.arrowGroup=new g.Group({name:"arrowLoop"}),this.heardBeatLineGroup=new g.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},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=X.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:2});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)}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;(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)}drawLeadHead(){var o,n,d,l,f;(o=this.leadHeadGroup)==null||o.removeAll(),(n=this.sceneIns)==null||n.remove(this.leadHeadGroup),console.log("this.waveConfigs",this.waveConfigs);let e="",t=!1,i=0,s=0;for(let r=0;r<=this.leadModel.column;r++){s=r*this.leadModel.line;e:for(let h=1;h<=this.leadModel.line;h++){if(!(this.waveConfigs||[])[h-1+s])break e;!this.waveConfigs[h-1+s].isShowLeadHead||(t=!1,e=(this.leadNames||[])[h-1+s]||"",this.waveConfigs[h-1+s].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=this.waveConfigs[h-1+s].posX?this.waveConfigs[h-1+s].posX-this.leadHeadConfig.leadHedeWidth:0,(d=this.leadHeadGroup)==null||d.add(this.createLeadHead(i,this.waveConfigs[h-1+s].posY||h*this.splitBlockHeight,u.getSens(this.waveConfigs[h-1+s].gain,this.gridConfig.cellMg),t)))}}let a=null;for(let r=0;r<this.leadModel.add;r++)!this.waveConfigs[this.longLeadConfig.leadIdxs[r]]||(a=this.waveConfigs[this.longLeadConfig.leadIdxs[r]],e=this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[r]]],t=!1,a.gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=a.posX?a.posX-this.leadHeadConfig.leadHedeWidth:0,(l=this.leadHeadGroup)==null||l.add(this.createLeadHead(i,a.posY||(r+1+this.leadModel.line)*this.splitBlockHeight,u.getSens(a.gain,this.gridConfig.cellMg),t)));a=null,(f=this.sceneIns)==null||f.add(this.leadHeadGroup)}createLeadHead(e,t,i,s){const a=this.leadHeadConfig.leadHedeWidth/4;return i=s?i/2:i,new g.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,f;(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 r=u.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),h=u.getDataLenTimes(Math.ceil(this.splitPoint/(r||1))||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),m=parseInt(`${h/1e3%60}`,10);this.splitPoint=m*(this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0)*(r||0)}let t=0,i=0,s=0,a=0;for(let r=1;r<=this.leadModel.column-1;r++){t=r*e+this.leadHeadConfig.leadHedeWidth,i=r*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].isShowLeadHead)continue 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].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))}}(f=this.sceneIns)==null||f.add(this.splitLineGroup)}creatSplitLine(e,t,i,s){return new g.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 g.Text({cursor:"",style:I({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),i=new g.Text({style:I({text:`${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 n,d,l;if(this.timersCopy=e,!this.rulerConfig.isShow)return;const t=this.dataTotalTimes/1e3;let i=this.leadHeadConfig.leadHedeWidth,s=0,a=t;const o=u.getStepForSpeed(this.rulerConfig.speed,this.gridConfig.cellMg,this.rulerConfig.sampleRate);if(this.leadModel.isContinuous)a=t*5;else if(!this.leadModel.add&&o){const f=u.getPointIdxForPx(this.splitPoint,o),r=u.getDataLenTimes(f,this.rulerConfig.sampleRate||0)/1e3;a=e+r}for(let f=e;f<=a;f=+(f+.1).toFixed(1))f!==e&&(i+=this.rulerStep),f%1===0?(s=this.canvasContainer.height-10,(n=this.rulerGroup)==null||n.add(new g.Text({cursor:"",style:{x:i,y:s-15,text:f+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):s=this.canvasContainer.height-5,(d=this.rulerGroup)==null||d.add(new g.Line({cursor:"",shape:{x1:i,y1:s,x2:i,y2:this.canvasContainer.height},style:{stroke:"#FF0080",lineWidth:2}}));(l=this.sceneIns)==null||l.add(this.rulerGroup)}drawWaveFrom(){var e,t,i;this.leadModel.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(e=this.sceneIns)==null||e.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(t=this.sceneIns)==null||t.add(this.rowAndColwaveFromGroup),(i=this.sceneIns)==null||i.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(this.timersCopy),this.drawLoopArrow()}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 f=0;f<1;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let r=1;r<=l;r++)t=r*this.splitBlockHeight,r>1&&(t*=.8,s=a,a=s+(this.slidingWindowInfo.points||0)),r===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,m)=>this.waveConfigs[this.singleModeConfig.defaultSelect].leadName==="\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,m)=>[m*(o||0),-h])})}return d}createSingleWaveFrom(){var o,n,d;(o=this.singleWaveFromGroup)==null||o.removeAll();let e=this.getRednerSinglePoints(),t=u.getDataLenTimes(this.slidingWindowInfo.points||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),i=0,s=0,a=0;for(let l=0;l<e.length&&!(e[l].pos[1]>this.drawArea.height+this.bottomAreaHeight);l++)this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx)||(i=parseInt(`${t/1e3/60}`,10),s=parseInt(`${t/1e3%60}`,10),i=s===60?i+=1:i,i=i===0?"00":i<10?`0${i}`:i,s=s===0||s===60?"00":s<10?`0${s}`:s,(n=this.singleWaveFromGroup)==null||n.add(new g.Polyline({cursor:"",name:this.singleModeConfig.defaultSelect+"_"+l,shape:{points:e[l].data.map(([f,r],h)=>isNaN(r)?(a===0&&(a=h-1,a=a<0?0:a),[e[l].data[a][0]+e[l].pos[0],e[l].data[a][1]+e[l].pos[1]]):(a=0,[f+e[l].pos[0],r+e[l].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:f=>{this.onDbClickWaveFrom(f,"single")}})),(d=this.singleWaveFromGroup)==null||d.add(new g.Text({cursor:"",style:{x:e[l].pos[0],y:e[l].pos[1]-(e[l].sens||0)/2,text:l===0?"00:00 \u5FC3\u7387":`${i}:${s} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}})),l>0&&(t+=t)),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[l].sens||0)/2-15);this.singleWaveDataCopy=e,e=null}drawLoopArrow(e=0){var l,f,r,h,m,C,v,L,H,P,A,M;if(this.drawLoopArrowStartPosIdx=e,!this.heartFight.isShow)return;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 y=u.getSens(this.waveConfigs[this.longLeadConfig.leadIdxs[0]].gain,this.gridConfig.cellMg);i=this.loopArrowY.add-(y||0)-this.splitBlockHeight/3.5}else i=20;let s=0,a=0;const o={fontSize:12,fill:"red",fontFamily:this.fontFamily},n=u.getStepForSpeed(this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,this.waveConfigs[this.heartFight.showIdxPai].sampleRate);let d=0;for(let y=0;y<(this.heartBeatPosition[this.heartFight.showIdxPai]||[]).length;y++){const p=this.heartBeatPosition[this.heartFight.showIdxPai][y];if(d=((p==null?void 0:p.position)||0)-e,!(e>((p==null?void 0:p.position)||0))&&!(!this.leadModel.isContinuous&&!this.leadModel.add&&d>(this.slidingWindowInfo.points||0))&&!(this.leadModel.isSingleMode&&d>(this.slidingWindowInfo.points||0))){if(((p==null?void 0:p.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;t=d*(n||0)+this.leadHeadConfig.leadHedeWidth-9.5,a=0,(r=this.arrowGroup)==null||r.add(new g.Polygon({name:"arrow_box",shape:{points:[[4+t,0+i],[15+t,0+i],[15+t,10+i],[19+t,10+i],[9.5+t,22+i],[0+t,10+i],[4+t,10+i],[4+t,0+i]]},style:{fill:((f=(l=this.currentHeardBeat)==null?void 0:l.heardBeat)==null?void 0:f.index)===(p==null?void 0:p.index)?"blue":"#ccc"},onclick:W=>{var b;!this.heartFight.mode||(W.target.attr({style:{fill:"blue"}}),(b=this.arrowGroup)==null||b.children().filter(S=>S.name==="arrow_box").forEach(S=>{S.id!==W.target.id&&S.attr({style:{fill:"#ccc"}})}),this.arrowLoopClick(p,W.target))}})),this.heartFight.heartrate&&(s=((h=this.AssistCtx)==null?void 0:h.measureText(`${(p==null?void 0:p.heartrate)||""}`).width)||0,(m=this.arrowGroup)==null||m.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.heartrate)||""}`},o)})),a+=12),this.heartFight.interval&&(s=((C=this.AssistCtx)==null?void 0:C.measureText(`${(p==null?void 0:p.interval)||""}`).width)||0,(v=this.arrowGroup)==null||v.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.interval)||""}`},o)})),a+=12),this.heartFight.qrstCompany&&(s=((L=this.AssistCtx)==null?void 0:L.measureText(`${(p==null?void 0:p.qrstCompany)||""}`).width)||0,(H=this.arrowGroup)==null||H.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.qrstCompany)||""}`},o)})),a+=12),this.heartFight.telectricalaxis&&(s=((P=this.AssistCtx)==null?void 0:P.measureText(`${(p==null?void 0:p.telectricalaxis)||""}`).width)||0,(A=this.arrowGroup)==null||A.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.telectricalaxis)||""}`},o)})))}}(M=this.sceneIns)==null||M.add(this.arrowGroup)}arrowLoopClick(e,t){this.$emit("notifyHeardBeat",g.util.clone(e)),this.currentHeardBeat.heardBeat=e,this.currentHeardBeat.ele=t,this.drawHeardBeatLine()}drawHeardBeatLine(e=0){var n,d,l,f,r,h,m;if(!this.currentHeardBeat.heardBeat)return;(n=this.heardBeatLineGroup)==null||n.removeAll(),(d=this.sceneIns)==null||d.remove(this.heardBeatLineGroup);let t={},i=0,s=this.getRednerPoints(),a=this.getAddRednerPoints(),o;e:for(let C=0;C<s.length;C++){t=((l=this.analyseValues[C])==null?void 0:l[this.currentHeardBeat.heardBeat.index].KeyPosByBeat)||{};for(const v in t)if(["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"].includes(v)&&Object.prototype.hasOwnProperty.call(t,v)){if(i=(t[v]-this.slidingWindowInfo.startInd)*(s[C].step||0),this.isLeadOff(C)||this.isLeadDel(C))continue;if(e>t[v]||!this.leadModel.isContinuous&&t[v]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0)||(o=s[C],this.leadModel.isContinuous&&C>this.leadModel.line-1))break e;(f=this.heardBeatLineGroup)==null||f.add(this.createHeardBeatLine(o.pos[0]+i,o.pos[1]))}}e:for(let C=0;C<a.length;C++){t=((r=this.analyseValues[C])==null?void 0:r[this.currentHeardBeat.heardBeat.index].KeyPosByBeat)||{};for(const v in t)if(["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"].includes(v)){if(i=(t[v]-this.slidingWindowInfo.startInd)*(a[C].step||0),this.isLeadOff(this.longLeadConfig.leadIdxs[C])&&this.isLeadDel(this.longLeadConfig.leadIdxs[C]))continue;if(e>t[v])break e;o=a[C],(h=this.heardBeatLineGroup)==null||h.add(this.createHeardBeatLine(o.pos[0]+i,o.pos[1]))}}(m=this.sceneIns)==null||m.add(this.heardBeatLineGroup),t=null,s=null,a=null}createHeardBeatLine(e,t){return new g.Line({cursor:"",shape:{x1:e,y1:t-10,x2:e,y2:t+10},style:{stroke:"blue",lineWidth:1}})}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,f)=>this.waveConfigs[s].leadName==="\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,f)=>[f*(o||0),-l]),sens:n,step:o}));return e}createAddWaveFrom(){var i;let e=this.getAddRednerPoints(),t=0;for(let s=0;s<e.length;s++)this.isLeadDel(this.longLeadConfig.leadIdxs[s])||((i=this.addwaveFromGroup)==null||i.add(new g.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[s]+"_"+s,shape:{points:e[s].data.map(([a,o],n)=>isNaN(o)?(t===0&&(t=n-1,t=t<0?0:t),[e[s].data[t][0]+e[s].pos[0],e[s].data[t][1]+e[s].pos[1]]):(t=0,[a+e[s].pos[0],o+e[s].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:a=>{this.onDbClickWaveFrom(a,"add")}})),this.createLeadName(this.longLeadConfig.leadNames[s],e[s].pos[0],e[s].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[s],e[s].pos[0]-5,e[s].pos[1]-(e[s].sens||0)/2-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 f=0;f<this.leadModel.column;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&f>0&&(n=d,d=n+(this.slidingWindowInfo.points||0));for(let r=1;r<=this.leadModel.line&&(t=r*this.splitBlockHeight,!(i>(this.waveLists||[]).length-1));r++)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]&&(r===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,m)=>this.waveConfigs[i].leadName==="\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,m)=>[m*(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 g.Polyline({cursor:"",name:o+"_"+o,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")}})),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.createLeadName(t,e[o].pos[0]+5,e[o].pos[1]-(e[o].sens||0)/2),this.createLeadOffAndDel(t,e[o].pos[0]-5,e[o].pos[1]-(e[o].sens||0)/2+9));this.waveDataCopy=e,e=null}createLeadName(e,t,i,s=!1){var a;(a=this.leadHeadNameGroup)==null||a.add(new g.Text({style:{x:t,y:i,text:this.leadNames[e],fontSize:this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily},oncontextmenu:o=>{o.event.preventDefault(),this.$emit("notiifyLeadName",{event:F(I({},o),{name:this.leadNames[e],idx:e}),isAdd:s})},onclick:o=>{this.$emit("notiifyLeadName",{event:F(I({},o),{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 g.Text({cursor:"",style:{x:t,y:i,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}onDbClickWaveFrom(e,t){console.log("onDbClickWaveFrom",e);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,f=0,r=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),f=this.singleWaveDataCopy[o].sens,r=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),f=this.waveDataCopy[o].sens,r=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),f=this.addWaveDataCopy[o].sens,r=this.addWaveDataCopy[o].step),l+=d,this.$emit("notifyActiveEnlargr",{sens:f,step:r,activeLeadIdx:this.activeLeadIdx,pointIdx:l})};i-this.dbClickWaveFromTime<400?(this.dbClickWaveFromTime=0,s()):this.dbClickWaveFromTime=i}nativeScrollFunc(e){console.log("event",e,e.target.scrollLeft),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=u.getPointIdxForPx(e,this.publicStep||1);this.scrollWaveFrom(t),this.scrollRuler(t),this.scrollArrow(t),this.$emit("notifyScrollPointIdx",{slidIdxs:t,scrollLeft:e})}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);let t=this.getRednerPoints(),i=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=i,(s=this.rowAndColwaveFromGroup)==null||s.eachChild((o,n)=>{n=n||0,!(!t[n]||!t[n].data)&&o.attr({shape:{points:t[n].data.map(([d,l])=>[d+t[n].pos[0],l+t[n].pos[1]])}})}),(a=this.addwaveFromGroup)==null||a.eachChild((o,n)=>{n=n||0,!(!i[n]||!i[n].data)&&o.attr({shape:{points:i[n].data.map(([d,l])=>[d+i[n].pos[0],l+i[n].pos[1]])}})}),t=null,i=null}scrollRuler(e){var i,s;(i=this.rulerGroup)==null||i.removeAll(),(s=this.sceneIns)==null||s.remove(this.rulerGroup);const t=u.getDataLenTimes(this.leadModel.isSingleMode?0:e,this.leadModel.publicSampleRate||0)/1e3;this.drawRuler(t)}scrollArrow(e){var t,i;(t=this.arrowGroup)==null||t.removeAll(),(i=this.sceneIns)==null||i.remove(this.arrowGroup),this.drawLoopArrow(e),this.drawHeardBeatLine(e)}};c([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);c([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"waveConfigs",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"waveLists",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"leadNames",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"analyseValues",2);c([w.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);c([w.Prop({required:!0})],exports.default.prototype,"leadModel",2);c([w.Prop({default:()=>({isShow:!1,gainName:"",speedName:""})})],exports.default.prototype,"rulerConfig",2);c([w.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);c([w.Prop({required:!0})],exports.default.prototype,"gridConfig",2);c([w.Prop({default:()=>({isShow:!1,speed:0,sens:0})})],exports.default.prototype,"measurRulerConfig",2);c([w.Prop({default:()=>({isShow:!1,heartRate:60,speed:0,sens:0})})],exports.default.prototype,"paralleRulerConfig",2);c([w.Prop({default:()=>({isShow:!1,speed:0})})],exports.default.prototype,"magnifierRulerConfig",2);c([w.Prop({default:()=>({isShow:!1,mode:!1,defaultSelect:2,heartrate:!1,interval:!1,qrstCompany:!1,telectricalaxis:!1,showIdxPai:0})})],exports.default.prototype,"heartFight",2);c([w.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);c([w.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeConfig",2);c([w.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);c([w.Prop({default:()=>0})],exports.default.prototype,"dataTotalTimes",2);c([w.Prop({default:()=>0})],exports.default.prototype,"dataTotalLength",2);c([w.Prop({default:()=>""})],exports.default.prototype,"prefixId",2);c([w.Prop({default:()=>0})],exports.default.prototype,"posStart",2);c([u.throttling(200)],exports.default.prototype,"nativeScrollFunc",1);c([u.throttling(200)],exports.default.prototype,"handleScroll",1);exports.default=c([z.default({name:"Methods"})],exports.default);
1
+ "use strict";var O=Object.defineProperty,B=Object.defineProperties;var N=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var G=(e,t,i)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,I=(e,t)=>{for(var i in t||(t={}))R.call(t,i)&&G(e,i,t[i]);if(D)for(var i of D(t))k.call(t,i)&&G(e,i,t[i]);return e},F=(e,t)=>B(e,N(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const j=require("vue"),z=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 w=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"),x=require("lodash"),u=require("@costy-plus/utils"),g=require("zrender"),T=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function _(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 $=T(j),X=_(g);var V=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,c=(e,t,i,s)=>{for(var a=s>1?void 0:s?Y(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&&V(t,i,a),a};exports.default=class extends $.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.heardBeatLineGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(55),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.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)}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,f,r;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(),(f=this.heardBeatLineGroup)==null||f.removeAll(),(r=this.sceneIns)==null||r.dispose()}initCreatedConfig(){this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height,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))}combinationDrawing(){this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawRulerNotes(),this.drawWaveFrom()}calcHeartBeatPositions(){let e=[];for(let t=0;t<this.analyseValues.length;t++){for(let i=1;i<this.analyseValues[t].length;i++)t!==1&&this.analyseValues[t][i].KeyPosByBeat.Rpoint===0||e.push({index:this.analyseValues[t][i].BeatID,position:this.analyseValues[t][i].KeyPosByBeat.Rpoint,heartrate:this.analyseValues[t][i].AnabyBeat.VentricularRate,interval:Math.round(60/this.analyseValues[t][i].AnabyBeat.VentricularRate*1e3),telectricalaxis:this.analyseValues[t][i].AnabyBeat.TAxis===9999?this.range:this.analyseValues[t][i].AnabyBeat.TAxis,qrstCompany:(this.analyseValues[t][i].AnabyBeat.QRS_T===9999?this.range:this.analyseValues[t][i].AnabyBeat.QRS_T)+"\xB0"});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?t:this.slidingWindowInfo.points,startInd:this.slidingWindowInfo.startInd||0,endInd:this.slidingWindowInfo.endInd!==t?t:this.slidingWindowInfo.endInd},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?i:this.addSlidingWindowInfo.points,startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd!==i?i:this.addSlidingWindowInfo.endInd}}calcHighestAndLowestPoint(){const e=x.flattenDeep(this.waveLists);return{maxPoints:x.max(e)||0,minPoints:x.min(e)||0}}isLeadOff(e){return!!this.waveConfigs[e].isLeadOff}isLeadDel(e){return!!this.waveConfigs[e].isLeadDelete}initConfig(){var t;this.rowAndColwaveFromGroup=new g.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new g.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new g.Group({name:"addwaveFrom"}),this.leadHeadGroup=new g.Group({name:"leadHead"}),this.splitLineGroup=new g.Group({name:"splitLine"}),this.leadHeadNameGroup=new g.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new g.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new g.Group({name:"ruler"}),this.arrowGroup=new g.Group({name:"arrowLoop"}),this.heardBeatLineGroup=new g.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},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=X.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:2});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)}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;(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)}drawLeadHead(){var o,n,d,l,f;(o=this.leadHeadGroup)==null||o.removeAll(),(n=this.sceneIns)==null||n.remove(this.leadHeadGroup),console.log("this.waveConfigs",this.waveConfigs);let e="",t=!1,i=0,s=0;for(let r=0;r<=this.leadModel.column;r++){s=r*this.leadModel.line;e:for(let h=1;h<=this.leadModel.line;h++){if(!(this.waveConfigs||[])[h-1+s])break e;!this.waveConfigs[h-1+s].isShowLeadHead||(t=!1,e=(this.leadNames||[])[h-1+s]||"",this.waveConfigs[h-1+s].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=this.waveConfigs[h-1+s].posX?this.waveConfigs[h-1+s].posX-this.leadHeadConfig.leadHedeWidth:0,(d=this.leadHeadGroup)==null||d.add(this.createLeadHead(i,this.waveConfigs[h-1+s].posY||h*this.splitBlockHeight,u.getSens(this.waveConfigs[h-1+s].gain,this.gridConfig.cellMg),t)))}}let a=null;for(let r=0;r<this.leadModel.add;r++)!this.waveConfigs[this.longLeadConfig.leadIdxs[r]]||(a=this.waveConfigs[this.longLeadConfig.leadIdxs[r]],e=this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[r]]],t=!1,a.gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=a.posX?a.posX-this.leadHeadConfig.leadHedeWidth:0,(l=this.leadHeadGroup)==null||l.add(this.createLeadHead(i,a.posY||(r+1+this.leadModel.line)*this.splitBlockHeight,u.getSens(a.gain,this.gridConfig.cellMg),t)));a=null,(f=this.sceneIns)==null||f.add(this.leadHeadGroup)}createLeadHead(e,t,i,s){const a=this.leadHeadConfig.leadHedeWidth/4;return i=s?i/2:i,new g.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,f;(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 r=u.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),h=u.getDataLenTimes(Math.ceil(this.splitPoint/(r||1))||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),m=parseInt(`${h/1e3%60}`,10);this.splitPoint=m*(this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0)*(r||0)}let t=0,i=0,s=0,a=0;for(let r=1;r<=this.leadModel.column-1;r++){t=r*e+this.leadHeadConfig.leadHedeWidth,i=r*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].isShowLeadHead)continue 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].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))}}(f=this.sceneIns)==null||f.add(this.splitLineGroup)}creatSplitLine(e,t,i,s){return new g.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 g.Text({cursor:"",style:I({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),i=new g.Text({style:I({text:`${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 n,d,l;if(this.timersCopy=e,!this.rulerConfig.isShow)return;const t=this.dataTotalTimes/1e3;let i=this.leadHeadConfig.leadHedeWidth,s=0,a=t;const o=u.getStepForSpeed(this.rulerConfig.speed,this.gridConfig.cellMg,this.rulerConfig.sampleRate);if(this.leadModel.isContinuous)a=t*5;else if(!this.leadModel.add&&o){const f=u.getPointIdxForPx(this.splitPoint,o),r=u.getDataLenTimes(f,this.rulerConfig.sampleRate||0)/1e3;a=e+r}for(let f=e;f<=a;f=+(f+.1).toFixed(1))f!==e&&(i+=this.rulerStep),f%1===0?(s=this.canvasContainer.height-10,(n=this.rulerGroup)==null||n.add(new g.Text({cursor:"",style:{x:i,y:s-15,text:f+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):s=this.canvasContainer.height-5,(d=this.rulerGroup)==null||d.add(new g.Line({cursor:"",shape:{x1:i,y1:s,x2:i,y2:this.canvasContainer.height},style:{stroke:"#FF0080",lineWidth:2}}));(l=this.sceneIns)==null||l.add(this.rulerGroup)}drawWaveFrom(){var e,t,i;this.leadModel.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(e=this.sceneIns)==null||e.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(t=this.sceneIns)==null||t.add(this.rowAndColwaveFromGroup),(i=this.sceneIns)==null||i.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(this.timersCopy),this.drawLoopArrow()}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 f=0;f<1;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let r=1;r<=l;r++)t=r*this.splitBlockHeight,r>1&&(t*=.8,s=a,a=s+(this.slidingWindowInfo.points||0)),r===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,m)=>this.waveConfigs[this.singleModeConfig.defaultSelect].leadName==="\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,m)=>[m*(o||0),-h])})}return d}createSingleWaveFrom(){var o,n,d;(o=this.singleWaveFromGroup)==null||o.removeAll();let e=this.getRednerSinglePoints(),t=u.getDataLenTimes(this.slidingWindowInfo.points||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),i=0,s=0,a=0;for(let l=0;l<e.length&&!(e[l].pos[1]>this.drawArea.height+this.bottomAreaHeight);l++)this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx)||(i=parseInt(`${t/1e3/60}`,10),s=parseInt(`${t/1e3%60}`,10),i=s===60?i+=1:i,i=i===0?"00":i<10?`0${i}`:i,s=s===0||s===60?"00":s<10?`0${s}`:s,(n=this.singleWaveFromGroup)==null||n.add(new g.Polyline({cursor:"",name:this.singleModeConfig.defaultSelect+"_"+l,shape:{points:e[l].data.map(([f,r],h)=>isNaN(r)?(a===0&&(a=h-1,a=a<0?0:a),[e[l].data[a][0]+e[l].pos[0],e[l].data[a][1]+e[l].pos[1]]):(a=0,[f+e[l].pos[0],r+e[l].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:f=>{this.onDbClickWaveFrom(f,"single")}})),(d=this.singleWaveFromGroup)==null||d.add(new g.Text({cursor:"",style:{x:e[l].pos[0],y:e[l].pos[1]-(e[l].sens||0)/2,text:l===0?"00:00 \u5FC3\u7387":`${i}:${s} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}})),l>0&&(t+=t)),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[l].sens||0)/2-15);this.singleWaveDataCopy=e,e=null}drawLoopArrow(e=0){var l,f,r,h,m,C,v,L,H,P,A,M;if(this.drawLoopArrowStartPosIdx=e,!this.heartFight.isShow)return;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 y=u.getSens(this.waveConfigs[this.longLeadConfig.leadIdxs[0]].gain,this.gridConfig.cellMg);i=this.loopArrowY.add-(y||0)-this.splitBlockHeight/3.5}else i=20;let s=0,a=0;const o={fontSize:12,fill:"red",fontFamily:this.fontFamily},n=u.getStepForSpeed(this.waveConfigs[this.heartFight.showIdxPai].speed,this.gridConfig.cellMg,this.waveConfigs[this.heartFight.showIdxPai].sampleRate);let d=0;for(let y=0;y<(this.heartBeatPosition[this.heartFight.showIdxPai]||[]).length;y++){const p=this.heartBeatPosition[this.heartFight.showIdxPai][y];if(d=((p==null?void 0:p.position)||0)-e,!(e>((p==null?void 0:p.position)||0))&&!(!this.leadModel.isContinuous&&!this.leadModel.add&&d>(this.slidingWindowInfo.points||0))&&!(this.leadModel.isSingleMode&&d>(this.slidingWindowInfo.points||0))){if(((p==null?void 0:p.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;t=d*(n||0)+this.leadHeadConfig.leadHedeWidth-9.5,a=0,(r=this.arrowGroup)==null||r.add(new g.Polygon({name:"arrow_box",shape:{points:[[4+t,0+i],[15+t,0+i],[15+t,10+i],[19+t,10+i],[9.5+t,22+i],[0+t,10+i],[4+t,10+i],[4+t,0+i]]},style:{fill:((f=(l=this.currentHeardBeat)==null?void 0:l.heardBeat)==null?void 0:f.index)===(p==null?void 0:p.index)?"blue":"#ccc"},onclick:W=>{var b;!this.heartFight.mode||(W.target.attr({style:{fill:"blue"}}),(b=this.arrowGroup)==null||b.children().filter(S=>S.name==="arrow_box").forEach(S=>{S.id!==W.target.id&&S.attr({style:{fill:"#ccc"}})}),this.arrowLoopClick(p,W.target))}})),this.heartFight.heartrate&&(s=((h=this.AssistCtx)==null?void 0:h.measureText(`${(p==null?void 0:p.heartrate)||""}`).width)||0,(m=this.arrowGroup)==null||m.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.heartrate)||""}`},o)})),a+=12),this.heartFight.interval&&(s=((C=this.AssistCtx)==null?void 0:C.measureText(`${(p==null?void 0:p.interval)||""}`).width)||0,(v=this.arrowGroup)==null||v.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.interval)||""}`},o)})),a+=12),this.heartFight.qrstCompany&&(s=((L=this.AssistCtx)==null?void 0:L.measureText(`${(p==null?void 0:p.qrstCompany)||""}`).width)||0,(H=this.arrowGroup)==null||H.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.qrstCompany)||""}`},o)})),a+=12),this.heartFight.telectricalaxis&&(s=((P=this.AssistCtx)==null?void 0:P.measureText(`${(p==null?void 0:p.telectricalaxis)||""}`).width)||0,(A=this.arrowGroup)==null||A.add(new g.Text({cursor:"",style:I({x:4+t-s*1.5,y:a+i,text:`${(p==null?void 0:p.telectricalaxis)||""}`},o)})))}}(M=this.sceneIns)==null||M.add(this.arrowGroup)}arrowLoopClick(e,t){this.$emit("notifyHeardBeat",g.util.clone(e)),this.currentHeardBeat.heardBeat=e,this.currentHeardBeat.ele=t,this.drawHeardBeatLine()}drawHeardBeatLine(e=0){var n,d,l,f,r,h,m;if(!this.currentHeardBeat.heardBeat)return;(n=this.heardBeatLineGroup)==null||n.removeAll(),(d=this.sceneIns)==null||d.remove(this.heardBeatLineGroup);let t={},i=0,s=this.getRednerPoints(),a=this.getAddRednerPoints(),o;e:for(let C=0;C<s.length;C++){t=((l=this.analyseValues[C])==null?void 0:l[this.currentHeardBeat.heardBeat.index].KeyPosByBeat)||{};for(const v in t)if(["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"].includes(v)&&Object.prototype.hasOwnProperty.call(t,v)){if(i=(t[v]-this.slidingWindowInfo.startInd)*(s[C].step||0),this.isLeadOff(C)||this.isLeadDel(C))continue;if(e>t[v]||!this.leadModel.isContinuous&&t[v]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0)||(o=s[C],this.leadModel.isContinuous&&C>this.leadModel.line-1))break e;(f=this.heardBeatLineGroup)==null||f.add(this.createHeardBeatLine(o.pos[0]+i,o.pos[1]))}}e:for(let C=0;C<a.length;C++){t=((r=this.analyseValues[C])==null?void 0:r[this.currentHeardBeat.heardBeat.index].KeyPosByBeat)||{};for(const v in t)if(["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"].includes(v)){if(i=(t[v]-this.slidingWindowInfo.startInd)*(a[C].step||0),this.isLeadOff(this.longLeadConfig.leadIdxs[C])&&this.isLeadDel(this.longLeadConfig.leadIdxs[C]))continue;if(e>t[v])break e;o=a[C],(h=this.heardBeatLineGroup)==null||h.add(this.createHeardBeatLine(o.pos[0]+i,o.pos[1]))}}(m=this.sceneIns)==null||m.add(this.heardBeatLineGroup),t=null,s=null,a=null}createHeardBeatLine(e,t){return new g.Line({cursor:"",shape:{x1:e,y1:t-10,x2:e,y2:t+10},style:{stroke:"blue",lineWidth:1}})}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,f)=>this.waveConfigs[s].leadName==="\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,f)=>[f*(o||0),-l]),sens:n,step:o}));return e}createAddWaveFrom(){var i;let e=this.getAddRednerPoints(),t=0;for(let s=0;s<e.length;s++)this.isLeadDel(this.longLeadConfig.leadIdxs[s])||((i=this.addwaveFromGroup)==null||i.add(new g.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[s]+"_"+s,shape:{points:e[s].data.map(([a,o],n)=>isNaN(o)?(t===0&&(t=n-1,t=t<0?0:t),[e[s].data[t][0]+e[s].pos[0],e[s].data[t][1]+e[s].pos[1]]):(t=0,[a+e[s].pos[0],o+e[s].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:a=>{this.onDbClickWaveFrom(a,"add")}})),this.createLeadName(this.longLeadConfig.leadNames[s],e[s].pos[0],e[s].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[s],e[s].pos[0]-5,e[s].pos[1]-(e[s].sens||0)/2-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 f=0;f<this.leadModel.column;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&f>0&&(n=d,d=n+(this.slidingWindowInfo.points||0));for(let r=1;r<=this.leadModel.line&&(t=r*this.splitBlockHeight,!(i>(this.waveLists||[]).length-1));r++)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]&&(r===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,m)=>this.waveConfigs[i].leadName==="\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,m)=>[m*(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 g.Polyline({cursor:"",name:o+"_"+o,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")}})),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.createLeadName(t,e[o].pos[0]+5,e[o].pos[1]-(e[o].sens||0)/2),this.createLeadOffAndDel(t,e[o].pos[0]-5,e[o].pos[1]-(e[o].sens||0)/2+9));this.waveDataCopy=e,e=null}createLeadName(e,t,i,s=!1){var a;(a=this.leadHeadNameGroup)==null||a.add(new g.Text({style:{x:t,y:i,text:this.leadNames[e],fontSize:this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily},oncontextmenu:o=>{o.event.preventDefault(),this.$emit("notiifyLeadName",{event:F(I({},o),{name:this.leadNames[e],idx:e}),isAdd:s})},onclick:o=>{this.$emit("notiifyLeadName",{event:F(I({},o),{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 g.Text({cursor:"",style:{x:t,y:i,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}onDbClickWaveFrom(e,t){console.log("onDbClickWaveFrom",e);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,f=0,r=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),f=this.singleWaveDataCopy[o].sens,r=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),f=this.waveDataCopy[o].sens,r=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),f=this.addWaveDataCopy[o].sens,r=this.addWaveDataCopy[o].step),l+=d,this.$emit("notifyActiveEnlargr",{sens:f,step:r,activeLeadIdx:this.activeLeadIdx,pointIdx:l})};i-this.dbClickWaveFromTime<400?(this.dbClickWaveFromTime=0,s()):this.dbClickWaveFromTime=i}nativeScrollFunc(e){console.log("event",e,e.target.scrollLeft),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=u.getPointIdxForPx(e,this.publicStep||1);this.scrollWaveFrom(t),this.scrollRuler(t),this.scrollArrow(t),this.$emit("notifyScrollPointIdx",{slidIdxs:t,scrollLeft:e})}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);let t=this.getRednerPoints(),i=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=i,(s=this.rowAndColwaveFromGroup)==null||s.eachChild((o,n)=>{n=n||0,!(!t[n]||!t[n].data)&&o.attr({shape:{points:t[n].data.map(([d,l])=>[d+t[n].pos[0],l+t[n].pos[1]])}})}),(a=this.addwaveFromGroup)==null||a.eachChild((o,n)=>{n=n||0,!(!i[n]||!i[n].data)&&o.attr({shape:{points:i[n].data.map(([d,l])=>[d+i[n].pos[0],l+i[n].pos[1]])}})}),t=null,i=null}scrollRuler(e){var i,s;(i=this.rulerGroup)==null||i.removeAll(),(s=this.sceneIns)==null||s.remove(this.rulerGroup);const t=u.getDataLenTimes(this.leadModel.isSingleMode?0:e,this.leadModel.publicSampleRate||0)/1e3;this.drawRuler(t)}scrollArrow(e){var t,i;(t=this.arrowGroup)==null||t.removeAll(),(i=this.sceneIns)==null||i.remove(this.arrowGroup),this.drawLoopArrow(e),this.drawHeardBeatLine(e)}};c([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);c([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"waveConfigs",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"waveLists",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"leadNames",2);c([w.Prop({default:()=>[]})],exports.default.prototype,"analyseValues",2);c([w.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);c([w.Prop({required:!0})],exports.default.prototype,"leadModel",2);c([w.Prop({default:()=>({isShow:!1,gainName:"",speedName:""})})],exports.default.prototype,"rulerConfig",2);c([w.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);c([w.Prop({required:!0})],exports.default.prototype,"gridConfig",2);c([w.Prop({default:()=>({isShow:!1,speed:0,sens:0})})],exports.default.prototype,"measurRulerConfig",2);c([w.Prop({default:()=>({isShow:!1,heartRate:60,speed:0,sens:0})})],exports.default.prototype,"paralleRulerConfig",2);c([w.Prop({default:()=>({isShow:!1,speed:0})})],exports.default.prototype,"magnifierRulerConfig",2);c([w.Prop({default:()=>({isShow:!1,mode:!1,defaultSelect:2,heartrate:!1,interval:!1,qrstCompany:!1,telectricalaxis:!1,showIdxPai:0})})],exports.default.prototype,"heartFight",2);c([w.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);c([w.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeConfig",2);c([w.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);c([w.Prop({default:()=>0})],exports.default.prototype,"dataTotalTimes",2);c([w.Prop({default:()=>0})],exports.default.prototype,"dataTotalLength",2);c([w.Prop({default:()=>""})],exports.default.prototype,"prefixId",2);c([w.Prop({default:()=>0})],exports.default.prototype,"posStart",2);c([u.throttling(200)],exports.default.prototype,"nativeScrollFunc",1);c([u.throttling(200)],exports.default.prototype,"handleScroll",1);exports.default=c([z.default({name:"Methods"})],exports.default);
@@ -81,3 +81,14 @@ export interface BottomRulerConfig {
81
81
  /** 走纸 */
82
82
  speed: number;
83
83
  }
84
+ /** 底部时间设置*/
85
+ export interface BottomTimeConfig {
86
+ isShow: boolean;
87
+ /** 采样率 */
88
+ sampleRate: number;
89
+ /** 增益 */
90
+ gain: number;
91
+ /** 走纸 */
92
+ speed: number;
93
+ startTime: string;
94
+ }
@@ -1,7 +1,7 @@
1
1
  import { Vue } from 'vue-property-decorator';
2
2
  import type { Config as vueScrollConfig } from 'vuescroll';
3
3
  import { ZRenderType, Group, Polyline, Line, ElementEvent } from 'zrender';
4
- import { LeadModle, LongLeadConfig, SingleModeConfig, WaveConfig, BottomRulerConfig } from './interface';
4
+ import { LeadModle, LongLeadConfig, SingleModeConfig, WaveConfig, BottomRulerConfig, BottomTimeConfig } from './interface';
5
5
  import { LeadHeadConfig, MXLeadConfig } from '../../types/EcgWave';
6
6
  import { MXGridConfig } from '../../types/BackgroundGrid';
7
7
  import { HandleScrollParams } from '../../types/Common';
@@ -20,6 +20,7 @@ export default class Methods extends Vue {
20
20
  protected leadModel: LeadModle;
21
21
  /** 底部导联尺子配置 */
22
22
  protected rulerConfig: BottomRulerConfig;
23
+ protected timeConfig: BottomTimeConfig;
23
24
  /** 导联配置 */
24
25
  protected leadConfig: MXLeadConfig;
25
26
  /** 网格配置 */
@@ -179,6 +180,9 @@ export default class Methods extends Vue {
179
180
  protected drawRulerNotes(): void;
180
181
  /** 绘制标尺 */
181
182
  protected drawRuler(startTimes?: number): void;
183
+ timestampToTime(timestamp?: number): string;
184
+ /** 绘制标尺 */
185
+ protected drawTimeLine(startTimes?: number): void;
182
186
  /** 绘制展示波形相关 */
183
187
  protected drawWaveFrom(): void;
184
188
  /** 获取 视图 单导 的数据点位 */
@@ -1 +1 @@
1
- "use strict";var W=Object.defineProperty,M=Object.defineProperties;var F=Object.getOwnPropertyDescriptors;var I=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var S=(e,t,i)=>t in e?W(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,m=(e,t)=>{for(var i in t||(t={}))H.call(t,i)&&S(e,i,t[i]);if(I)for(var i of I(t))y.call(t,i)&&S(e,i,t[i]);return e},C=(e,t)=>M(e,F(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("vue"),L=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 c=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"),v=require("lodash"),p=require("@costy-plus/utils"),u=require("zrender"),b=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function P(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 G=b(A),x=P(u);var D=Object.defineProperty,O=Object.getOwnPropertyDescriptor,g=(e,t,i,s)=>{for(var o=s>1?void 0:s?O(t,i):t,n=e.length-1,l;n>=0;n--)(l=e[n])&&(o=(s?l(t,i,o):l(o))||o);return s&&o&&D(t,i,o),o};exports.default=class extends G.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.heardBeatLineGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(55),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.range=Object.freeze(5e3),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)}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,o,n,l,h,a,f,r;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(),(o=this.splitLineGroup)==null||o.removeAll(),(n=this.leadHeadNameGroup)==null||n.removeAll(),(l=this.leadHeadOffAndDelGroup)==null||l.removeAll(),(h=this.rulerGroup)==null||h.removeAll(),(a=this.arrowGroup)==null||a.removeAll(),(f=this.heardBeatLineGroup)==null||f.removeAll(),(r=this.sceneIns)==null||r.dispose()}initCreatedConfig(){this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height,this.initConfig()}init(){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))}combinationDrawing(){this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawRulerNotes(),this.drawWaveFrom()}initSlidingWindowInfo(){const e=this.publicStep||0,t=Math.ceil(this.splitPoint/e);if(this.slidingWindowInfo={points:this.slidingWindowInfo.points||t,startInd:this.slidingWindowInfo.startInd||0,endInd:this.slidingWindowInfo.endInd||t},this.scrollConfig.isShow&&!this.leadModel.isSingleMode){const s=p.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),o=this.dataTotalLength*s;this.vuescrollWH.width=this.canvasContainer.width+(o||0)-this.splitPoint}const i=Math.ceil((this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/e);this.addSlidingWindowInfo={points:this.addSlidingWindowInfo.points||i,startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||i}}calcHighestAndLowestPoint(){const e=v.flattenDeep(this.waveLists);return{maxPoints:v.max(e)||0,minPoints:v.min(e)||0}}isLeadOff(e){return!!this.waveConfigs[e].isLeadOff}isLeadDel(e){return!!this.waveConfigs[e].isLeadDelete}initConfig(){var t;this.rowAndColwaveFromGroup=new u.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new u.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new u.Group({name:"addwaveFrom"}),this.leadHeadGroup=new u.Group({name:"leadHead"}),this.splitLineGroup=new u.Group({name:"splitLine"}),this.leadHeadNameGroup=new u.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new u.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new u.Group({name:"ruler"}),this.arrowGroup=new u.Group({name:"arrowLoop"}),this.heardBeatLineGroup=new u.Group({name:"heardBeatLine"});let e=this.canvasContainer.width;if(this.leadModel.ecgareawidth===1){const i=p.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=p.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},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.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=p.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=x.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:2});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)}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;(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)}drawLeadHead(){var n,l,h,a,f;(n=this.leadHeadGroup)==null||n.removeAll(),(l=this.sceneIns)==null||l.remove(this.leadHeadGroup),console.log("this.waveConfigs",this.waveConfigs);let e="",t=!1,i=0,s=0;for(let r=0;r<=this.leadModel.column;r++){s=r*this.leadModel.line;e:for(let d=1;d<=this.leadModel.line;d++){if(!(this.waveConfigs||[])[d-1+s])break e;!this.waveConfigs[d-1+s].isShowLeadHead||(t=!1,e=(this.leadNames||[])[d-1+s]||"",this.waveConfigs[d-1+s].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=this.waveConfigs[d-1+s].posX?this.waveConfigs[d-1+s].posX-this.leadHeadConfig.leadHedeWidth:0,(h=this.leadHeadGroup)==null||h.add(this.createLeadHead(i,this.waveConfigs[d-1+s].posY||d*this.splitBlockHeight,p.getSens(this.waveConfigs[d-1+s].gain,this.gridConfig.cellMg),t)))}}let o=null;for(let r=0;r<this.leadModel.add;r++)!this.waveConfigs[this.longLeadConfig.leadIdxs[r]]||(o=this.waveConfigs[this.longLeadConfig.leadIdxs[r]],e=this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[r]]],t=!1,o.gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=o.posX?o.posX-this.leadHeadConfig.leadHedeWidth:0,(a=this.leadHeadGroup)==null||a.add(this.createLeadHead(i,o.posY||(r+1+this.leadModel.line)*this.splitBlockHeight,p.getSens(o.gain,this.gridConfig.cellMg),t)));o=null,(f=this.sceneIns)==null||f.add(this.leadHeadGroup)}createLeadHead(e,t,i,s){const o=this.leadHeadConfig.leadHedeWidth/4;return i=s?i/2:i,new u.Polyline({cursor:"",shape:{points:[[0+e,0+t],[o+e,0+t],[o+e,-i+t],[3*o+e,-i+t],[3*o+e,0+t],[4*o+e,0+t]]},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawColSplitLine(){var n,l,h,a,f;(n=this.splitLineGroup)==null||n.removeAll(),(l=this.sceneIns)==null||l.remove(this.splitLineGroup);const e=(this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/(this.leadModel.column||1);if(this.splitPoint=e,this.leadModel.isSingleMode){const r=p.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),d=p.getDataLenTimes(Math.ceil(this.splitPoint/(r||1))||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),w=parseInt(`${d/1e3%60}`,10);this.splitPoint=w*(this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0)*(r||0)}let t=0,i=0,s=0,o=0;for(let r=1;r<=this.leadModel.column-1;r++){t=r*e+this.leadHeadConfig.leadHedeWidth,i=r*this.leadModel.line;e:for(let d=1;d<=this.leadModel.line;d++){if(!(this.waveConfigs||[])[d-1+i])break e;if((this.waveConfigs||[])[d-1+i].isShowLeadHead)continue e;if((this.waveConfigs||[])[d-1+i].posX!==void 0&&(t=(this.waveConfigs||[])[d-1+i].posX),s=(this.waveConfigs||[])[d-1+i].leadIdx,s===void 0)break;o=p.getSens((this.waveConfigs||[])[d-1+i].gain,this.gridConfig.cellMg),(this.waveConfigs||[])[d-1+i].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.leadNames[s])?(h=this.splitLineGroup)==null||h.add(this.creatSplitLine(t,((this.waveConfigs||[])[d-1+i].posY||d*this.splitBlockHeight)-(o||0)/2*.5,o,!0)):(a=this.splitLineGroup)==null||a.add(this.creatSplitLine(t,((this.waveConfigs||[])[d-1+i].posY||d*this.splitBlockHeight)-(o||0)*.5,o))}}(f=this.sceneIns)==null||f.add(this.splitLineGroup)}creatSplitLine(e,t,i,s){return new u.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,o;if(!this.rulerConfig.isShow)return;const e={fill:"#FF0080",fontSize:13,fontFamily:this.fontFamily},t=new u.Text({cursor:"",style:m({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),i=new u.Text({style:m({text:`${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),(o=this.sceneIns)==null||o.add(t)}drawRuler(e=0){var l,h,a;if(this.timersCopy=e,!this.rulerConfig.isShow)return;const t=this.dataTotalTimes/1e3;let i=this.leadHeadConfig.leadHedeWidth,s=0,o=t;const n=p.getStepForSpeed(this.rulerConfig.speed,this.gridConfig.cellMg,this.rulerConfig.sampleRate);if(this.leadModel.isContinuous)o=t*5;else if(!this.leadModel.add&&n){const f=p.getPointIdxForPx(this.splitPoint,n),r=p.getDataLenTimes(f,this.rulerConfig.sampleRate||0)/1e3;o=e+r}for(let f=e;f<=o;f=+(f+.1).toFixed(1))f!==e&&(i+=this.rulerStep),f%1===0?(s=this.canvasContainer.height-10,(l=this.rulerGroup)==null||l.add(new u.Text({cursor:"",style:{x:i,y:s-15,text:f+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):s=this.canvasContainer.height-5,(h=this.rulerGroup)==null||h.add(new u.Line({cursor:"",shape:{x1:i,y1:s,x2:i,y2:this.canvasContainer.height},style:{stroke:"#FF0080",lineWidth:2}}));(a=this.sceneIns)==null||a.add(this.rulerGroup)}drawWaveFrom(){var e,t,i;this.leadModel.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(e=this.sceneIns)==null||e.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(t=this.sceneIns)==null||t.add(this.rowAndColwaveFromGroup),(i=this.sceneIns)==null||i.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(this.timersCopy)}getRednerSinglePoints(){let e=0,t=0;const i=this.waveLists[this.singleModeConfig.defaultSelect]||[];let s=this.slidingWindowInfo.startInd||0,o=this.slidingWindowInfo.endInd||0;const n=p.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),l=p.getSens(this.waveConfigs[this.singleModeConfig.defaultSelect].gain,this.gridConfig.cellMg),h=[],a=Math.ceil(i.length/(this.slidingWindowInfo.points||1));for(let f=0;f<1;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let r=1;r<=a;r++)t=r*this.splitBlockHeight,r>1&&(t*=.8,s=o,o=s+(this.slidingWindowInfo.points||0)),r===1&&(this.loopArrowY.rowAndCol=t),h.push({pos:[e,t],startInd:s,endInd:o,step:n,sens:l,data:i.slice(s,o).map((d,w)=>this.waveConfigs[this.singleModeConfig.defaultSelect].leadName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName)?p.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,d,l/2):p.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,d,l)).map((d,w)=>[w*(n||0),-d])})}return h}createSingleWaveFrom(){var n,l,h;(n=this.singleWaveFromGroup)==null||n.removeAll();let e=this.getRednerSinglePoints(),t=p.getDataLenTimes(this.slidingWindowInfo.points||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),i=0,s=0,o=0;for(let a=0;a<e.length&&!(e[a].pos[1]>this.drawArea.height+this.bottomAreaHeight);a++)this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx)||(i=parseInt(`${t/1e3/60}`,10),s=parseInt(`${t/1e3%60}`,10),i=s===60?i+=1:i,i=i===0?"00":i<10?`0${i}`:i,s=s===0||s===60?"00":s<10?`0${s}`:s,(l=this.singleWaveFromGroup)==null||l.add(new u.Polyline({cursor:"",name:this.singleModeConfig.defaultSelect+"_"+a,shape:{points:e[a].data.map(([f,r],d)=>isNaN(r)?(o===0&&(o=d-1,o=o<0?0:o),[e[a].data[o][0]+e[a].pos[0],e[a].data[o][1]+e[a].pos[1]]):(o=0,[f+e[a].pos[0],r+e[a].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:f=>{console.log(11,f)}})),(h=this.singleWaveFromGroup)==null||h.add(new u.Text({cursor:"",style:{x:e[a].pos[0],y:e[a].pos[1]-(e[a].sens||0)/2,text:a===0?"00:00 \u5FC3\u7387":`${i}:${s} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}})),a>0&&(t+=t)),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[a].sens||0)/2-15);this.singleWaveDataCopy=e,e=null}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,o=[],n=0,l=0;for(let h=0;h<this.leadModel.add;h++)s=this.longLeadConfig.leadIdxs[h],this.waveConfigs[s]&&(t=this.waveConfigs[s].addPosX||t,n=p.getStepForSpeed(this.waveConfigs[s].speed,this.gridConfig.cellMg,this.waveConfigs[s].sampleRate),l=p.getSens(this.waveConfigs[s].gain,this.gridConfig.cellMg),i=this.waveConfigs[s].addPosY||(h+this.leadModel.line+1)*this.splitBlockHeight,o=this.waveLists[s]||[],h===0&&(this.loopArrowY.add=i),e.push({pos:[t,i],startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0,data:o.slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((a,f)=>this.waveConfigs[s].leadName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[s].leadName)?p.getActualY(this.waveConfigs[s].sensitivity,a,l/2):p.getActualY(this.waveConfigs[s].sensitivity,a,l)).map((a,f)=>[f*(n||0),-a]),sens:l,step:n}));return e}createAddWaveFrom(){var i;let e=this.getAddRednerPoints(),t=0;for(let s=0;s<e.length;s++)this.isLeadDel(this.longLeadConfig.leadIdxs[s])||((i=this.addwaveFromGroup)==null||i.add(new u.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[s]+"_"+s,shape:{points:e[s].data.map(([o,n],l)=>isNaN(n)?(t===0&&(t=l-1,t=t<0?0:t),[e[s].data[t][0]+e[s].pos[0],e[s].data[t][1]+e[s].pos[1]]):(t=0,[o+e[s].pos[0],n+e[s].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:o=>{console.log(22,o)}})),this.createLeadName(this.longLeadConfig.leadNames[s],e[s].pos[0],e[s].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[s],e[s].pos[0]-5,e[s].pos[1]-(e[s].sens||0)/2-15));this.addWaveDataCopy=e,e=null}getRednerPoints(){let e=0,t=0,i=0,s=[],o=0,n=0,l=this.slidingWindowInfo.startInd||0,h=this.slidingWindowInfo.endInd||0;const a=[];for(let f=0;f<this.leadModel.column;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&f>0&&(l=h,h=l+(this.slidingWindowInfo.points||0));for(let r=1;r<=this.leadModel.line&&(t=r*this.splitBlockHeight,!(i>(this.waveLists||[]).length-1));r++)e=this.waveConfigs[i].posX||e,t=this.waveConfigs[i].posY||t,o=p.getStepForSpeed(this.waveConfigs[i].speed,this.gridConfig.cellMg,this.waveConfigs[i].sampleRate),n=p.getSens(this.waveConfigs[i].gain,this.gridConfig.cellMg),s=this.waveLists[i]||[],this.waveConfigs[i]&&(r===1&&(this.loopArrowY.rowAndCol=t),a.push({pos:[e,t],startInd:l,endInd:h,sens:n,step:o,data:s.slice(l,h).map((d,w)=>this.waveConfigs[i].leadName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[i].leadName)?p.getActualY(this.waveConfigs[i].sensitivity,d,n/2):p.getActualY(this.waveConfigs[i].sensitivity,d,n)).map((d,w)=>[w*(o||0),-d])}),i++)}return a}createRowAndColWaveFrom(){var s,o;(s=this.rowAndColwaveFromGroup)==null||s.removeAll();let e=this.getRednerPoints(),t=0,i=0;for(let n=0;n<e.length;n++)t=this.waveConfigs[n].leadIdx||0,this.isLeadDel(t)||(o=this.rowAndColwaveFromGroup)==null||o.add(new u.Polyline({cursor:"",name:n+"_"+n,shape:{points:e[n].data.map(([l,h],a)=>isNaN(h)?(i===0&&(i=a-1,i=i<0?0:i),[e[n].data[i][0]+e[n].pos[0],e[n].data[i][1]+e[n].pos[1]]):(i=0,[l+e[n].pos[0],h+e[n].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:l=>{console.log(33,l)}})),n<this.leadModel.line?(this.createLeadName(t,e[n].pos[0],e[n].pos[1]-15),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(e[n].sens||0)/2-15)):(this.createLeadName(t,e[n].pos[0]+5,e[n].pos[1]-(e[n].sens||0)/2),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(e[n].sens||0)/2+9));this.waveDataCopy=e,e=null}createLeadName(e,t,i,s=!1){var o;(o=this.leadHeadNameGroup)==null||o.add(new u.Text({style:{x:t,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:C(m({},n),{name:this.leadNames[e],idx:e}),isAdd:s})},onclick:n=>{this.$emit("notiifyLeadName",{event:C(m({},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 u.Text({cursor:"",style:{x:t,y:i,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}nativeScrollFunc(e){console.log("event",e,e.target.scrollLeft),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=p.getPointIdxForPx(e,this.publicStep||1);this.scrollWaveFrom(t),this.scrollRuler(t),this.scrollArrow(t),this.$emit("notifyScrollPointIdx",{slidIdxs:t,scrollLeft:e})}scrollWaveFrom(e){var s,o;this.slidingWindowInfo.startInd=e,this.slidingWindowInfo.endInd=e+(this.slidingWindowInfo.points||0),this.addSlidingWindowInfo.startInd=e,this.addSlidingWindowInfo.endInd=e+(this.addSlidingWindowInfo.points||0);let t=this.getRednerPoints(),i=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=i,(s=this.rowAndColwaveFromGroup)==null||s.eachChild((n,l)=>{l=l||0,!(!t[l]||!t[l].data)&&n.attr({shape:{points:t[l].data.map(([h,a])=>[h+t[l].pos[0],a+t[l].pos[1]])}})}),(o=this.addwaveFromGroup)==null||o.eachChild((n,l)=>{l=l||0,!(!i[l]||!i[l].data)&&n.attr({shape:{points:i[l].data.map(([h,a])=>[h+i[l].pos[0],a+i[l].pos[1]])}})}),t=null,i=null}scrollRuler(e){var i,s;(i=this.rulerGroup)==null||i.removeAll(),(s=this.sceneIns)==null||s.remove(this.rulerGroup);const t=p.getDataLenTimes(this.leadModel.isSingleMode?0:e,this.leadModel.publicSampleRate||0)/1e3;this.drawRuler(t)}scrollArrow(e){var t,i;(t=this.arrowGroup)==null||t.removeAll(),(i=this.sceneIns)==null||i.remove(this.arrowGroup)}};g([c.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);g([c.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);g([c.Prop({default:()=>[]})],exports.default.prototype,"waveConfigs",2);g([c.Prop({default:()=>[]})],exports.default.prototype,"waveLists",2);g([c.Prop({default:()=>[]})],exports.default.prototype,"leadNames",2);g([c.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);g([c.Prop({required:!0})],exports.default.prototype,"leadModel",2);g([c.Prop({default:()=>({isShow:!1,gainName:"",speedName:""})})],exports.default.prototype,"rulerConfig",2);g([c.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);g([c.Prop({required:!0})],exports.default.prototype,"gridConfig",2);g([c.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);g([c.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeConfig",2);g([c.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);g([c.Prop({default:()=>0})],exports.default.prototype,"dataTotalTimes",2);g([c.Prop({default:()=>0})],exports.default.prototype,"dataTotalLength",2);g([c.Prop({default:()=>""})],exports.default.prototype,"prefixId",2);g([c.Prop({default:()=>0})],exports.default.prototype,"posStart",2);g([p.throttling(200)],exports.default.prototype,"nativeScrollFunc",1);g([p.throttling(200)],exports.default.prototype,"handleScroll",1);exports.default=g([L.default({name:"Methods"})],exports.default);
1
+ "use strict";var W=Object.defineProperty,M=Object.defineProperties;var y=Object.getOwnPropertyDescriptors;var I=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var S=(e,t,i)=>t in e?W(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,m=(e,t)=>{for(var i in t||(t={}))F.call(t,i)&&S(e,i,t[i]);if(I)for(var i of I(t))H.call(t,i)&&S(e,i,t[i]);return e},C=(e,t)=>M(e,y(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const L=require("vue"),A=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 c=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"),v=require("lodash"),p=require("@costy-plus/utils"),u=require("zrender"),P=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function b(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 G=P(L),x=b(u);var D=Object.defineProperty,O=Object.getOwnPropertyDescriptor,g=(e,t,i,s)=>{for(var o=s>1?void 0:s?O(t,i):t,n=e.length-1,l;n>=0;n--)(l=e[n])&&(o=(s?l(t,i,o):l(o))||o);return s&&o&&D(t,i,o),o};exports.default=class extends G.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.heardBeatLineGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(55),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.range=Object.freeze(5e3),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)}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,o,n,l,h,a,f,d;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(),(o=this.splitLineGroup)==null||o.removeAll(),(n=this.leadHeadNameGroup)==null||n.removeAll(),(l=this.leadHeadOffAndDelGroup)==null||l.removeAll(),(h=this.rulerGroup)==null||h.removeAll(),(a=this.arrowGroup)==null||a.removeAll(),(f=this.heardBeatLineGroup)==null||f.removeAll(),(d=this.sceneIns)==null||d.dispose()}initCreatedConfig(){this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height,this.initConfig()}init(){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))}combinationDrawing(){this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawRulerNotes(),this.drawWaveFrom()}initSlidingWindowInfo(){const e=this.publicStep||0,t=Math.ceil(this.splitPoint/e);if(this.slidingWindowInfo={points:this.slidingWindowInfo.points!==t?t:this.slidingWindowInfo.points,startInd:this.slidingWindowInfo.startInd||0,endInd:this.slidingWindowInfo.endInd!==t?t:this.slidingWindowInfo.endInd},this.scrollConfig.isShow&&!this.leadModel.isSingleMode){const s=p.getStepForSpeed(this.leadModel.publicSpeed,this.gridConfig.cellMg,this.leadModel.publicSampleRate),o=this.dataTotalLength*s;this.vuescrollWH.width=this.canvasContainer.width+(o||0)-this.splitPoint}const i=Math.ceil((this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/e);this.addSlidingWindowInfo={points:this.addSlidingWindowInfo.points!==i?i:this.addSlidingWindowInfo.points,startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd!==i?i:this.addSlidingWindowInfo.endInd}}calcHighestAndLowestPoint(){const e=v.flattenDeep(this.waveLists);return{maxPoints:v.max(e)||0,minPoints:v.min(e)||0}}isLeadOff(e){return!!this.waveConfigs[e].isLeadOff}isLeadDel(e){return!!this.waveConfigs[e].isLeadDelete}initConfig(){var t;this.rowAndColwaveFromGroup=new u.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new u.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new u.Group({name:"addwaveFrom"}),this.leadHeadGroup=new u.Group({name:"leadHead"}),this.splitLineGroup=new u.Group({name:"splitLine"}),this.leadHeadNameGroup=new u.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new u.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new u.Group({name:"ruler"}),this.arrowGroup=new u.Group({name:"arrowLoop"}),this.heardBeatLineGroup=new u.Group({name:"heardBeatLine"});let e=this.canvasContainer.width;if(this.leadModel.ecgareawidth===1){const i=p.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=p.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},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.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=p.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=x.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:2});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)}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;(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)}drawLeadHead(){var n,l,h,a,f;(n=this.leadHeadGroup)==null||n.removeAll(),(l=this.sceneIns)==null||l.remove(this.leadHeadGroup),console.log("this.waveConfigs",this.waveConfigs);let e="",t=!1,i=0,s=0;for(let d=0;d<=this.leadModel.column;d++){s=d*this.leadModel.line;e:for(let r=1;r<=this.leadModel.line;r++){if(!(this.waveConfigs||[])[r-1+s])break e;!this.waveConfigs[r-1+s].isShowLeadHead||(t=!1,e=(this.leadNames||[])[r-1+s]||"",this.waveConfigs[r-1+s].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=this.waveConfigs[r-1+s].posX?this.waveConfigs[r-1+s].posX-this.leadHeadConfig.leadHedeWidth:0,(h=this.leadHeadGroup)==null||h.add(this.createLeadHead(i,this.waveConfigs[r-1+s].posY||r*this.splitBlockHeight,p.getSens(this.waveConfigs[r-1+s].gain,this.gridConfig.cellMg),t)))}}let o=null;for(let d=0;d<this.leadModel.add;d++)!this.waveConfigs[this.longLeadConfig.leadIdxs[d]]||(o=this.waveConfigs[this.longLeadConfig.leadIdxs[d]],e=this.leadNames[this.longLeadConfig.leadNames[this.longLeadConfig.leadNames[d]]],t=!1,o.gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(e)&&(t=!0),i=o.posX?o.posX-this.leadHeadConfig.leadHedeWidth:0,(a=this.leadHeadGroup)==null||a.add(this.createLeadHead(i,o.posY||(d+1+this.leadModel.line)*this.splitBlockHeight,p.getSens(o.gain,this.gridConfig.cellMg),t)));o=null,(f=this.sceneIns)==null||f.add(this.leadHeadGroup)}createLeadHead(e,t,i,s){const o=this.leadHeadConfig.leadHedeWidth/4;return i=s?i/2:i,new u.Polyline({cursor:"",shape:{points:[[0+e,0+t],[o+e,0+t],[o+e,-i+t],[3*o+e,-i+t],[3*o+e,0+t],[4*o+e,0+t]]},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawColSplitLine(){var n,l,h,a,f;(n=this.splitLineGroup)==null||n.removeAll(),(l=this.sceneIns)==null||l.remove(this.splitLineGroup);const e=(this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/(this.leadModel.column||1);if(this.splitPoint=e,this.leadModel.isSingleMode){const d=p.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),r=p.getDataLenTimes(Math.ceil(this.splitPoint/(d||1))||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),w=parseInt(`${r/1e3%60}`,10);this.splitPoint=w*(this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0)*(d||0)}let t=0,i=0,s=0,o=0;for(let d=1;d<=this.leadModel.column-1;d++){t=d*e+this.leadHeadConfig.leadHedeWidth,i=d*this.leadModel.line;e:for(let r=1;r<=this.leadModel.line;r++){if(!(this.waveConfigs||[])[r-1+i])break e;if((this.waveConfigs||[])[r-1+i].isShowLeadHead)continue e;if((this.waveConfigs||[])[r-1+i].posX!==void 0&&(t=(this.waveConfigs||[])[r-1+i].posX),s=(this.waveConfigs||[])[r-1+i].leadIdx,s===void 0)break;o=p.getSens((this.waveConfigs||[])[r-1+i].gain,this.gridConfig.cellMg),(this.waveConfigs||[])[r-1+i].gainName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.leadNames[s])?(h=this.splitLineGroup)==null||h.add(this.creatSplitLine(t,((this.waveConfigs||[])[r-1+i].posY||r*this.splitBlockHeight)-(o||0)/2*.5,o,!0)):(a=this.splitLineGroup)==null||a.add(this.creatSplitLine(t,((this.waveConfigs||[])[r-1+i].posY||r*this.splitBlockHeight)-(o||0)*.5,o))}}(f=this.sceneIns)==null||f.add(this.splitLineGroup)}creatSplitLine(e,t,i,s){return new u.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,o;if(!this.rulerConfig.isShow)return;const e={fill:"#FF0080",fontSize:13,fontFamily:this.fontFamily},t=new u.Text({cursor:"",style:m({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),i=new u.Text({style:m({text:`${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),(o=this.sceneIns)==null||o.add(t)}drawRuler(e=0){var l,h,a;if(this.timersCopy=e,!this.rulerConfig.isShow)return;const t=this.dataTotalTimes/1e3;let i=this.leadHeadConfig.leadHedeWidth,s=0,o=t;const n=p.getStepForSpeed(this.rulerConfig.speed,this.gridConfig.cellMg,this.rulerConfig.sampleRate);if(this.leadModel.isContinuous)o=t*5;else if(!this.leadModel.add&&n){const f=p.getPointIdxForPx(this.splitPoint,n),d=p.getDataLenTimes(f,this.rulerConfig.sampleRate||0)/1e3;o=e+d}for(let f=e;f<=o;f=+(f+.1).toFixed(1))f!==e&&(i+=this.rulerStep),f%1===0?(s=this.canvasContainer.height-10,(l=this.rulerGroup)==null||l.add(new u.Text({cursor:"",style:{x:i,y:s-15,text:f+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):s=this.canvasContainer.height-5,(h=this.rulerGroup)==null||h.add(new u.Line({cursor:"",shape:{x1:i,y1:s,x2:i,y2:this.canvasContainer.height},style:{stroke:"#FF0080",lineWidth:2}}));(a=this.sceneIns)==null||a.add(this.rulerGroup)}timestampToTime(e=0){const t=new Date(e),i=t.getFullYear(),s=("0"+(t.getMonth()+1)).slice(-2),o=("0"+t.getDate()).slice(-2),n=("0"+t.getHours()).slice(-2),l=("0"+t.getMinutes()).slice(-2),h=("0"+t.getSeconds()).slice(-2);return`${i}-${s}-${o} ${n}:${l}:${h}`}drawTimeLine(e=0){var h,a,f;if(this.timersCopy=e,!this.timeConfig.isShow)return;const t=this.dataTotalTimes/1e3;let i=this.leadHeadConfig.leadHedeWidth,s=0,o=t;const n=p.getStepForSpeed(this.timeConfig.speed,this.gridConfig.cellMg,this.timeConfig.sampleRate);if(this.leadModel.isContinuous)o=t*5;else if(!this.leadModel.add&&n){const d=p.getPointIdxForPx(this.splitPoint,n),r=p.getDataLenTimes(d,this.timeConfig.sampleRate||0)/1e3;o=e+r}const l=new Date(this.timeConfig.startTime).getTime();for(let d=e;d<=o;d=+(d+.1).toFixed(1))d!==e&&(i+=this.rulerStep),d%1===0?(s=this.canvasContainer.height-10,(h=this.rulerGroup)==null||h.add(new u.Text({cursor:"",style:{x:i,y:s-15,text:this.timestampToTime(l+d*1e3).slice(11),fontSize:13,fontFamily:this.fontFamily,fill:"#000"}})),(a=this.rulerGroup)==null||a.add(new u.Line({cursor:"",shape:{x1:i,y1:s,x2:i,y2:this.canvasContainer.height},style:{stroke:"#000",lineWidth:1}}))):s=this.canvasContainer.height-5;(f=this.sceneIns)==null||f.add(this.rulerGroup)}drawWaveFrom(){var e,t,i;this.leadModel.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(e=this.sceneIns)==null||e.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(t=this.sceneIns)==null||t.add(this.rowAndColwaveFromGroup),(i=this.sceneIns)==null||i.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(this.timersCopy),this.drawTimeLine(this.timersCopy)}getRednerSinglePoints(){let e=0,t=0;const i=this.waveLists[this.singleModeConfig.defaultSelect]||[];let s=this.slidingWindowInfo.startInd||0,o=this.slidingWindowInfo.endInd||0;const n=p.getStepForSpeed(this.waveConfigs[this.singleModeConfig.defaultSelect].speed,this.gridConfig.cellMg,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate),l=p.getSens(this.waveConfigs[this.singleModeConfig.defaultSelect].gain,this.gridConfig.cellMg),h=[],a=Math.ceil(i.length/(this.slidingWindowInfo.points||1));for(let f=0;f<1;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let d=1;d<=a;d++)t=d*this.splitBlockHeight,d>1&&(t*=.8,s=o,o=s+(this.slidingWindowInfo.points||0)),d===1&&(this.loopArrowY.rowAndCol=t),h.push({pos:[e,t],startInd:s,endInd:o,step:n,sens:l,data:i.slice(s,o).map((r,w)=>this.waveConfigs[this.singleModeConfig.defaultSelect].leadName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[this.singleModeConfig.defaultSelect].leadName)?p.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,r,l/2):p.getActualY(this.waveConfigs[this.singleModeConfig.defaultSelect].sensitivity,r,l)).map((r,w)=>[w*(n||0),-r])})}return h}createSingleWaveFrom(){var n,l,h;(n=this.singleWaveFromGroup)==null||n.removeAll();let e=this.getRednerSinglePoints(),t=p.getDataLenTimes(this.slidingWindowInfo.points||0,this.waveConfigs[this.singleModeConfig.defaultSelect].sampleRate||0),i=0,s=0,o=0;for(let a=0;a<e.length&&!(e[a].pos[1]>this.drawArea.height+this.bottomAreaHeight);a++)this.isLeadDel(this.waveConfigs[this.singleModeConfig.defaultSelect].leadIdx)||(i=parseInt(`${t/1e3/60}`,10),s=parseInt(`${t/1e3%60}`,10),i=s===60?i+=1:i,i=i===0?"00":i<10?`0${i}`:i,s=s===0||s===60?"00":s<10?`0${s}`:s,(l=this.singleWaveFromGroup)==null||l.add(new u.Polyline({cursor:"",name:this.singleModeConfig.defaultSelect+"_"+a,shape:{points:e[a].data.map(([f,d],r)=>isNaN(d)?(o===0&&(o=r-1,o=o<0?0:o),[e[a].data[o][0]+e[a].pos[0],e[a].data[o][1]+e[a].pos[1]]):(o=0,[f+e[a].pos[0],d+e[a].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:f=>{console.log(11,f)}})),(h=this.singleWaveFromGroup)==null||h.add(new u.Text({cursor:"",style:{x:e[a].pos[0],y:e[a].pos[1]-(e[a].sens||0)/2,text:a===0?"00:00 \u5FC3\u7387":`${i}:${s} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}})),a>0&&(t+=t)),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[a].sens||0)/2-15);this.singleWaveDataCopy=e,e=null}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,o=[],n=0,l=0;for(let h=0;h<this.leadModel.add;h++)s=this.longLeadConfig.leadIdxs[h],this.waveConfigs[s]&&(t=this.waveConfigs[s].addPosX||t,n=p.getStepForSpeed(this.waveConfigs[s].speed,this.gridConfig.cellMg,this.waveConfigs[s].sampleRate),l=p.getSens(this.waveConfigs[s].gain,this.gridConfig.cellMg),i=this.waveConfigs[s].addPosY||(h+this.leadModel.line+1)*this.splitBlockHeight,o=this.waveLists[s]||[],h===0&&(this.loopArrowY.add=i),e.push({pos:[t,i],startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0,data:o.slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((a,f)=>this.waveConfigs[s].leadName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[s].leadName)?p.getActualY(this.waveConfigs[s].sensitivity,a,l/2):p.getActualY(this.waveConfigs[s].sensitivity,a,l)).map((a,f)=>[f*(n||0),-a]),sens:l,step:n}));return e}createAddWaveFrom(){var i;let e=this.getAddRednerPoints(),t=0;for(let s=0;s<e.length;s++)this.isLeadDel(this.longLeadConfig.leadIdxs[s])||((i=this.addwaveFromGroup)==null||i.add(new u.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[s]+"_"+s,shape:{points:e[s].data.map(([o,n],l)=>isNaN(n)?(t===0&&(t=l-1,t=t<0?0:t),[e[s].data[t][0]+e[s].pos[0],e[s].data[t][1]+e[s].pos[1]]):(t=0,[o+e[s].pos[0],n+e[s].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:o=>{console.log(22,o)}})),this.createLeadName(this.longLeadConfig.leadNames[s],e[s].pos[0],e[s].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[s],e[s].pos[0]-5,e[s].pos[1]-(e[s].sens||0)/2-15));this.addWaveDataCopy=e,e=null}getRednerPoints(){let e=0,t=0,i=0,s=[],o=0,n=0,l=this.slidingWindowInfo.startInd||0,h=this.slidingWindowInfo.endInd||0;const a=[];for(let f=0;f<this.leadModel.column;f++){e=f*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&f>0&&(l=h,h=l+(this.slidingWindowInfo.points||0));for(let d=1;d<=this.leadModel.line&&(t=d*this.splitBlockHeight,!(i>(this.waveLists||[]).length-1));d++)e=this.waveConfigs[i].posX||e,t=this.waveConfigs[i].posY||t,o=p.getStepForSpeed(this.waveConfigs[i].speed,this.gridConfig.cellMg,this.waveConfigs[i].sampleRate),n=p.getSens(this.waveConfigs[i].gain,this.gridConfig.cellMg),s=this.waveLists[i]||[],this.waveConfigs[i]&&(d===1&&(this.loopArrowY.rowAndCol=t),a.push({pos:[e,t],startInd:l,endInd:h,sens:n,step:o,data:s.slice(l,h).map((r,w)=>this.waveConfigs[i].leadName==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.waveConfigs[i].leadName)?p.getActualY(this.waveConfigs[i].sensitivity,r,n/2):p.getActualY(this.waveConfigs[i].sensitivity,r,n)).map((r,w)=>[w*(o||0),-r])}),i++)}return a}createRowAndColWaveFrom(){var s,o;(s=this.rowAndColwaveFromGroup)==null||s.removeAll();let e=this.getRednerPoints(),t=0,i=0;for(let n=0;n<e.length;n++)t=this.waveConfigs[n].leadIdx||0,this.isLeadDel(t)||(o=this.rowAndColwaveFromGroup)==null||o.add(new u.Polyline({cursor:"",name:n+"_"+n,shape:{points:e[n].data.map(([l,h],a)=>isNaN(h)?(i===0&&(i=a-1,i=i<0?0:i),[e[n].data[i][0]+e[n].pos[0],e[n].data[i][1]+e[n].pos[1]]):(i=0,[l+e[n].pos[0],h+e[n].pos[1]]))},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:l=>{console.log(33,l)}})),n<this.leadModel.line?(this.createLeadName(t,e[n].pos[0],e[n].pos[1]-15),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(e[n].sens||0)/2-15)):(this.createLeadName(t,e[n].pos[0]+5,e[n].pos[1]-(e[n].sens||0)/2),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(e[n].sens||0)/2+9));this.waveDataCopy=e,e=null}createLeadName(e,t,i,s=!1){var o;(o=this.leadHeadNameGroup)==null||o.add(new u.Text({style:{x:t,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:C(m({},n),{name:this.leadNames[e],idx:e}),isAdd:s})},onclick:n=>{this.$emit("notiifyLeadName",{event:C(m({},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 u.Text({cursor:"",style:{x:t,y:i,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}nativeScrollFunc(e){console.log("event",e,e.target.scrollLeft),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=p.getPointIdxForPx(e,this.publicStep||1);this.scrollWaveFrom(t),this.scrollRuler(t),this.scrollArrow(t),this.$emit("notifyScrollPointIdx",{slidIdxs:t,scrollLeft:e})}scrollWaveFrom(e){var s,o;this.slidingWindowInfo.startInd=e,this.slidingWindowInfo.endInd=e+(this.slidingWindowInfo.points||0),this.addSlidingWindowInfo.startInd=e,this.addSlidingWindowInfo.endInd=e+(this.addSlidingWindowInfo.points||0);let t=this.getRednerPoints(),i=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=i,(s=this.rowAndColwaveFromGroup)==null||s.eachChild((n,l)=>{l=l||0,!(!t[l]||!t[l].data)&&n.attr({shape:{points:t[l].data.map(([h,a])=>[h+t[l].pos[0],a+t[l].pos[1]])}})}),(o=this.addwaveFromGroup)==null||o.eachChild((n,l)=>{l=l||0,!(!i[l]||!i[l].data)&&n.attr({shape:{points:i[l].data.map(([h,a])=>[h+i[l].pos[0],a+i[l].pos[1]])}})}),t=null,i=null}scrollRuler(e){var i,s;(i=this.rulerGroup)==null||i.removeAll(),(s=this.sceneIns)==null||s.remove(this.rulerGroup);const t=p.getDataLenTimes(this.leadModel.isSingleMode?0:e,this.leadModel.publicSampleRate||0)/1e3;this.drawRuler(t),this.drawTimeLine(t)}scrollArrow(e){var t,i;(t=this.arrowGroup)==null||t.removeAll(),(i=this.sceneIns)==null||i.remove(this.arrowGroup)}};g([c.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);g([c.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);g([c.Prop({default:()=>[]})],exports.default.prototype,"waveConfigs",2);g([c.Prop({default:()=>[]})],exports.default.prototype,"waveLists",2);g([c.Prop({default:()=>[]})],exports.default.prototype,"leadNames",2);g([c.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);g([c.Prop({required:!0})],exports.default.prototype,"leadModel",2);g([c.Prop({default:()=>({isShow:!1,gainName:"",speedName:""})})],exports.default.prototype,"rulerConfig",2);g([c.Prop({default:()=>({isShow:!0,sampleRate:500,speed:10,gain:10,startTime:""})})],exports.default.prototype,"timeConfig",2);g([c.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);g([c.Prop({required:!0})],exports.default.prototype,"gridConfig",2);g([c.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);g([c.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeConfig",2);g([c.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);g([c.Prop({default:()=>0})],exports.default.prototype,"dataTotalTimes",2);g([c.Prop({default:()=>0})],exports.default.prototype,"dataTotalLength",2);g([c.Prop({default:()=>""})],exports.default.prototype,"prefixId",2);g([c.Prop({default:()=>0})],exports.default.prototype,"posStart",2);g([p.throttling(200)],exports.default.prototype,"nativeScrollFunc",1);g([p.throttling(200)],exports.default.prototype,"handleScroll",1);exports.default=g([A.default({name:"Methods"})],exports.default);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "costy-plus",
3
- "version": "1.0.63-0",
3
+ "version": "1.0.66-0",
4
4
  "main": "dist/lib/index.js",
5
5
  "module": "dist/es/index.js",
6
6
  "types": "dist/es/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  "description": "",
21
21
  "typings": "dist/lib/index.d.ts",
22
22
  "dependencies": {
23
- "@costy-plus/utils": "workspace:*",
23
+ "@costy-plus/utils": "0.0.12-0",
24
24
  "element-ui": "~2.15.11",
25
25
  "vuescroll": "4.17.5",
26
26
  "zrender": "5.4.0"