@yimou6/common-ui 1.12.3 → 1.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/cdn/index.cdn.js +15 -15
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +15 -15
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/cdn/index.css +1 -1
  6. package/es/components/image-verification/index.mjs.map +1 -1
  7. package/es/components/index.d.ts +22 -21
  8. package/es/components/index.mjs +1 -0
  9. package/es/components/index.mjs.map +1 -1
  10. package/es/components/monitor-playback/index.d.ts +573 -0
  11. package/es/components/monitor-playback/index.mjs +8 -0
  12. package/es/components/monitor-playback/index.mjs.map +1 -0
  13. package/es/components/monitor-playback/src/monitor-playback.d.ts +30 -0
  14. package/es/components/monitor-playback/src/monitor-playback.mjs +44 -0
  15. package/es/components/monitor-playback/src/monitor-playback.mjs.map +1 -0
  16. package/es/components/monitor-playback/src/monitor-playback.vue.d.ts +573 -0
  17. package/es/components/monitor-playback/src/monitor-playback.vue.mjs +6 -0
  18. package/es/components/monitor-playback/src/monitor-playback.vue.mjs.map +1 -0
  19. package/es/components/monitor-playback/src/monitor-playback.vue2.mjs +202 -0
  20. package/es/components/monitor-playback/src/monitor-playback.vue2.mjs.map +1 -0
  21. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.d.ts +25 -0
  22. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.mjs +26 -0
  23. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.mjs.map +1 -0
  24. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue.d.ts +104 -0
  25. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue.mjs +6 -0
  26. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue.mjs.map +1 -0
  27. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue2.mjs +507 -0
  28. package/es/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue2.mjs.map +1 -0
  29. package/es/components/page-header/src/page-header.d.ts +2 -2
  30. package/es/components/page-header/src/page-header.mjs.map +1 -1
  31. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +2 -10
  32. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  33. package/es/index.mjs +1 -0
  34. package/es/index.mjs.map +1 -1
  35. package/es/installer.mjs +2 -0
  36. package/es/installer.mjs.map +1 -1
  37. package/global.d.ts +2 -0
  38. package/lib/components/image-verification/index.js.map +1 -1
  39. package/lib/components/index.d.ts +22 -21
  40. package/lib/components/index.js +23 -21
  41. package/lib/components/index.js.map +1 -1
  42. package/lib/components/monitor-playback/index.d.ts +573 -0
  43. package/lib/components/monitor-playback/index.js +13 -0
  44. package/lib/components/monitor-playback/index.js.map +1 -0
  45. package/lib/components/monitor-playback/src/monitor-playback.d.ts +30 -0
  46. package/lib/components/monitor-playback/src/monitor-playback.js +46 -0
  47. package/lib/components/monitor-playback/src/monitor-playback.js.map +1 -0
  48. package/lib/components/monitor-playback/src/monitor-playback.vue.d.ts +573 -0
  49. package/lib/components/monitor-playback/src/monitor-playback.vue.js +10 -0
  50. package/lib/components/monitor-playback/src/monitor-playback.vue.js.map +1 -0
  51. package/lib/components/monitor-playback/src/monitor-playback.vue2.js +206 -0
  52. package/lib/components/monitor-playback/src/monitor-playback.vue2.js.map +1 -0
  53. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.d.ts +25 -0
  54. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.js +28 -0
  55. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.js.map +1 -0
  56. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue.d.ts +104 -0
  57. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue.js +10 -0
  58. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue.js.map +1 -0
  59. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue2.js +511 -0
  60. package/lib/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue2.js.map +1 -0
  61. package/lib/components/page-header/src/page-header.d.ts +2 -2
  62. package/lib/components/page-header/src/page-header.js.map +1 -1
  63. package/lib/components/tzj-player/src/easyPlayer.vue2.js +2 -10
  64. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  65. package/lib/index.js +27 -25
  66. package/lib/index.js.map +1 -1
  67. package/lib/installer.js +6 -4
  68. package/lib/installer.js.map +1 -1
  69. package/package.json +1 -1
  70. package/theme-default/i-monitor-playback.css +1 -0
  71. package/theme-default/index.css +1 -1
@@ -0,0 +1,507 @@
1
+ import { defineComponent, ref, onMounted, nextTick, onBeforeUnmount, openBlock, createElementBlock, createElementVNode, toDisplayString, normalizeClass, normalizeStyle } from 'vue';
2
+ import { TimelineRulerProps } from './timeline-ruler.mjs';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ const _hoisted_1 = { class: "ruler-panel" };
7
+ const _hoisted_2 = { class: "time-display" };
8
+ const _hoisted_3 = ["innerHTML"];
9
+ const _hoisted_4 = { class: "time-date" };
10
+ const _hoisted_5 = { class: "zoom-tag" };
11
+ const RH = 56;
12
+ const BASE_Y = 44;
13
+ const FRIC = 0.9;
14
+ const tPph = 120;
15
+ var _sfc_main = /* @__PURE__ */ defineComponent({
16
+ ...{
17
+ name: "ITimelineRuler"
18
+ },
19
+ __name: "timeline-ruler",
20
+ props: TimelineRulerProps,
21
+ emits: ["seek"],
22
+ setup(__props, { expose: __expose, emit: __emit }) {
23
+ const props = __props;
24
+ const emit = __emit;
25
+ const canvasRef = ref(null);
26
+ const rulerAreaRef = ref(null);
27
+ const recTrackRef = ref(null);
28
+ const timeBigHtml = ref(
29
+ '--<span class="sep">:</span>--<span class="sep">:</span>--'
30
+ );
31
+ const timeDateText = ref("----/--/--");
32
+ const tipShow = ref(false);
33
+ const tipText = ref("");
34
+ let tipElProxy = null;
35
+ const tipStyle = ref({});
36
+ const zoomTagText = ref("");
37
+ let BASE_TIME = null;
38
+ let pph = 120;
39
+ let offX = 0;
40
+ let dragging = false;
41
+ let dragSX = 0;
42
+ let dragSO = 0;
43
+ let vel = 0;
44
+ let lpX = 0;
45
+ let lpT = 0;
46
+ let mX = -1;
47
+ let mIn = false;
48
+ let _startTime = null;
49
+ let _durationSec = 3600;
50
+ let _currentPlayMs = null;
51
+ let cvs = null;
52
+ let cx = null;
53
+ let dpr = 1;
54
+ let rafId = null;
55
+ function pad(n) {
56
+ return String(n).padStart(2, "0");
57
+ }
58
+ __name(pad, "pad");
59
+ function fmtT(s) {
60
+ const d = new Date(s * 1e3);
61
+ return `${pad(d.getHours())}:${pad(d.getMinutes())}`;
62
+ }
63
+ __name(fmtT, "fmtT");
64
+ function fmtTF(s) {
65
+ const d = new Date(s * 1e3);
66
+ return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
67
+ }
68
+ __name(fmtTF, "fmtTF");
69
+ function fmtD(s) {
70
+ const d = new Date(s * 1e3);
71
+ return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
72
+ }
73
+ __name(fmtD, "fmtD");
74
+ function dateToSec(dt) {
75
+ return dt.getTime() / 1e3;
76
+ }
77
+ __name(dateToSec, "dateToSec");
78
+ function t2x(t) {
79
+ return (t - BASE_TIME) * pph / 3600 + offX;
80
+ }
81
+ __name(t2x, "t2x");
82
+ function x2t(x) {
83
+ return (x - offX) * 3600 / pph + BASE_TIME;
84
+ }
85
+ __name(x2t, "x2t");
86
+ function resize() {
87
+ if (!cvs || !rulerAreaRef.value) return;
88
+ const ow = cvs.width / dpr || 0;
89
+ const r = rulerAreaRef.value.getBoundingClientRect();
90
+ cvs.width = r.width * dpr;
91
+ cvs.height = RH * dpr;
92
+ cvs.style.height = `${RH}px`;
93
+ cx.setTransform(dpr, 0, 0, dpr, 0, 0);
94
+ if (ow > 0) {
95
+ const ct = x2t(ow / 2);
96
+ offX = r.width / 2 - (ct - BASE_TIME) * pph / 3600;
97
+ }
98
+ }
99
+ __name(resize, "resize");
100
+ function tCfg() {
101
+ if (pph >= 300)
102
+ return {
103
+ M: { iv: 3600, h: 32, w: 1.5, c: "#8899b4", lbl: true },
104
+ m: { iv: 1800, h: 22, w: 1, c: "#4a5a74" },
105
+ s: { iv: 600, h: 14, w: 0.7, c: "#33415a" },
106
+ u: { iv: 300, h: 8, w: 0.5, c: "#252f42" },
107
+ x: { iv: 60, h: 4, w: 0.3, c: "#1c2535" }
108
+ };
109
+ if (pph >= 140)
110
+ return {
111
+ M: { iv: 3600, h: 32, w: 1.5, c: "#8899b4", lbl: true },
112
+ m: { iv: 1800, h: 22, w: 1, c: "#4a5a74" },
113
+ s: { iv: 600, h: 14, w: 0.7, c: "#33415a" },
114
+ u: { iv: 300, h: 8, w: 0.5, c: "#252f42" }
115
+ };
116
+ if (pph >= 70)
117
+ return {
118
+ M: { iv: 3600, h: 32, w: 1.5, c: "#8899b4", lbl: true },
119
+ m: { iv: 1800, h: 20, w: 1, c: "#4a5a74" },
120
+ s: { iv: 600, h: 13, w: 0.7, c: "#33415a" }
121
+ };
122
+ if (pph >= 35)
123
+ return {
124
+ M: { iv: 3600, h: 32, w: 1.5, c: "#8899b4", lbl: true },
125
+ m: { iv: 1800, h: 18, w: 0.8, c: "#4a5a74" }
126
+ };
127
+ return {
128
+ M: { iv: 7200, h: 32, w: 1.5, c: "#8899b4", lbl: true },
129
+ m: { iv: 3600, h: 18, w: 0.8, c: "#4a5a74" }
130
+ };
131
+ }
132
+ __name(tCfg, "tCfg");
133
+ function draw() {
134
+ if (!cvs || !cx) return;
135
+ const w = cvs.width / dpr;
136
+ const h = cvs.height / dpr;
137
+ cx.clearRect(0, 0, w, h);
138
+ cx.strokeStyle = "#2a3448";
139
+ cx.lineWidth = 1;
140
+ cx.beginPath();
141
+ cx.moveTo(0, BASE_Y);
142
+ cx.lineTo(w, BASE_Y);
143
+ cx.stroke();
144
+ const cfg = tCfg();
145
+ const lt = x2t(-100);
146
+ const rt = x2t(w + 100);
147
+ const order = ["x", "u", "s", "m", "M"];
148
+ for (let li = 0; li < order.length; li++) {
149
+ const lv = order[li];
150
+ const tk = cfg[lv];
151
+ if (!tk) continue;
152
+ const st = Math.floor(lt / tk.iv) * tk.iv;
153
+ for (let t = st; t <= rt + tk.iv; t += tk.iv) {
154
+ const x = t2x(t);
155
+ if (x < -20 || x > w + 20) continue;
156
+ cx.strokeStyle = tk.c;
157
+ cx.lineWidth = tk.w;
158
+ cx.beginPath();
159
+ cx.moveTo(x, BASE_Y);
160
+ cx.lineTo(x, BASE_Y - tk.h);
161
+ cx.stroke();
162
+ if (tk.lbl) {
163
+ cx.fillStyle = "#7a8da6";
164
+ cx.font = '700 10px "Space Mono",monospace';
165
+ cx.textAlign = "center";
166
+ cx.textBaseline = "top";
167
+ cx.fillText(fmtT(t), x, 4);
168
+ const dd = new Date(t * 1e3);
169
+ if (dd.getHours() === 0 && dd.getMinutes() === 0) {
170
+ cx.fillStyle = "#4a5a74";
171
+ cx.font = '9px "Space Mono",monospace';
172
+ cx.fillText(fmtD(t), x, -1);
173
+ cx.save();
174
+ cx.strokeStyle = "#1e2a3a";
175
+ cx.lineWidth = 1;
176
+ cx.setLineDash([3, 3]);
177
+ cx.beginPath();
178
+ cx.moveTo(x, 14);
179
+ cx.lineTo(x, BASE_Y);
180
+ cx.stroke();
181
+ cx.restore();
182
+ }
183
+ }
184
+ }
185
+ }
186
+ if (_currentPlayMs && _startTime) {
187
+ const playSec = _currentPlayMs / 1e3;
188
+ const nx = t2x(playSec);
189
+ if (nx > -20 && nx < w + 20) {
190
+ cx.strokeStyle = "#3ddc84";
191
+ cx.lineWidth = 1.5;
192
+ cx.beginPath();
193
+ cx.moveTo(nx, BASE_Y - 32);
194
+ cx.lineTo(nx, BASE_Y);
195
+ cx.stroke();
196
+ cx.fillStyle = "#3ddc84";
197
+ cx.beginPath();
198
+ cx.moveTo(nx, BASE_Y + 1);
199
+ cx.lineTo(nx - 3, BASE_Y + 6);
200
+ cx.lineTo(nx + 3, BASE_Y + 6);
201
+ cx.closePath();
202
+ cx.fill();
203
+ }
204
+ }
205
+ const px = w / 2;
206
+ const g = cx.createLinearGradient(px - 20, 0, px + 20, 0);
207
+ g.addColorStop(0, "rgba(255,45,45,0)");
208
+ g.addColorStop(0.5, "rgba(255,45,45,0.06)");
209
+ g.addColorStop(1, "rgba(255,45,45,0)");
210
+ cx.fillStyle = g;
211
+ cx.fillRect(px - 20, 0, 40, BASE_Y);
212
+ cx.strokeStyle = "#ff2d2d";
213
+ cx.lineWidth = 1.5;
214
+ cx.beginPath();
215
+ cx.moveTo(px, 0);
216
+ cx.lineTo(px, BASE_Y);
217
+ cx.stroke();
218
+ cx.fillStyle = "#ff2d2d";
219
+ cx.beginPath();
220
+ cx.moveTo(px, 0);
221
+ cx.lineTo(px - 4, 6);
222
+ cx.lineTo(px + 4, 6);
223
+ cx.closePath();
224
+ cx.fill();
225
+ cx.beginPath();
226
+ cx.moveTo(px, BASE_Y + 1);
227
+ cx.lineTo(px - 3, BASE_Y + 7);
228
+ cx.lineTo(px + 3, BASE_Y + 7);
229
+ cx.closePath();
230
+ cx.fill();
231
+ if (mIn && mX >= 0 && !dragging) {
232
+ cx.save();
233
+ cx.strokeStyle = "rgba(136,153,180,0.4)";
234
+ cx.lineWidth = 1;
235
+ cx.setLineDash([2, 2]);
236
+ cx.beginPath();
237
+ cx.moveTo(mX, 4);
238
+ cx.lineTo(mX, BASE_Y);
239
+ cx.stroke();
240
+ cx.restore();
241
+ cx.fillStyle = "#8899b4";
242
+ cx.beginPath();
243
+ cx.arc(mX, BASE_Y, 2.5, 0, Math.PI * 2);
244
+ cx.fill();
245
+ const ht = x2t(mX);
246
+ tipText.value = `${fmtD(ht)} ${fmtTF(ht)}`;
247
+ tipStyle.value = { left: `${mX + 14}px` };
248
+ tipShow.value = true;
249
+ requestAnimationFrame(() => {
250
+ if (!tipElProxy || !rulerAreaRef.value) return;
251
+ const tr = tipElProxy.getBoundingClientRect();
252
+ const wr = rulerAreaRef.value.getBoundingClientRect();
253
+ if (tr.right > wr.right - 6)
254
+ tipStyle.value = { left: `${mX - tr.width - 14}px` };
255
+ });
256
+ } else {
257
+ tipShow.value = false;
258
+ }
259
+ const fw = 28;
260
+ const lf = cx.createLinearGradient(0, 0, fw, 0);
261
+ lf.addColorStop(0, "#1a2030");
262
+ lf.addColorStop(1, "rgba(26,32,48,0)");
263
+ cx.fillStyle = lf;
264
+ cx.fillRect(0, 0, fw, h);
265
+ const rf = cx.createLinearGradient(w - fw, 0, w, 0);
266
+ rf.addColorStop(0, "rgba(26,32,48,0)");
267
+ rf.addColorStop(1, "#1a2030");
268
+ cx.fillStyle = rf;
269
+ cx.fillRect(w - fw, 0, fw, h);
270
+ const ct = x2t(px);
271
+ const cd = new Date(ct * 1e3);
272
+ timeBigHtml.value = `${pad(cd.getHours())}<span class="sep">:</span>${pad(
273
+ cd.getMinutes()
274
+ )}<span class="sep">:</span>${pad(cd.getSeconds())}`;
275
+ timeDateText.value = fmtD(ct);
276
+ renderRecSegs(w);
277
+ }
278
+ __name(draw, "draw");
279
+ function renderRecSegs(w) {
280
+ if (!w) w = cvs.width / dpr;
281
+ if (!recTrackRef.value) return;
282
+ recTrackRef.value.innerHTML = "";
283
+ if (!_startTime) return;
284
+ const startS = dateToSec(_startTime);
285
+ const endS = startS + _durationSec;
286
+ const lt = x2t(-20);
287
+ const rt = x2t(w + 20);
288
+ if (endS < lt || startS > rt) return;
289
+ const x1 = t2x(Math.max(startS, lt));
290
+ const x2 = t2x(Math.min(endS, rt));
291
+ if (x2 - x1 < 0.5) return;
292
+ const div = document.createElement("div");
293
+ div.className = "rec-seg";
294
+ div.style.left = `${x1}px`;
295
+ div.style.width = `${x2 - x1}px`;
296
+ recTrackRef.value.appendChild(div);
297
+ }
298
+ __name(renderRecSegs, "renderRecSegs");
299
+ function loop() {
300
+ if (!dragging && Math.abs(vel) > 0.05) {
301
+ offX += vel;
302
+ vel *= FRIC;
303
+ } else if (!dragging) vel = 0;
304
+ if (Math.abs(pph - tPph) > 0.2) pph += (tPph - pph) * 0.15;
305
+ else pph = tPph;
306
+ zoomTagText.value = `${Math.round(pph)} px/h`;
307
+ draw();
308
+ rafId = requestAnimationFrame(loop);
309
+ }
310
+ __name(loop, "loop");
311
+ function gx(e) {
312
+ if (!cvs) return 0;
313
+ const r = cvs.getBoundingClientRect();
314
+ const clientX = "touches" in e ? e.touches[0].clientX : e.clientX;
315
+ return clientX - r.left;
316
+ }
317
+ __name(gx, "gx");
318
+ function onDown(e) {
319
+ e.preventDefault();
320
+ dragging = true;
321
+ vel = 0;
322
+ dragSX = gx(e);
323
+ dragSO = offX;
324
+ lpX = dragSX;
325
+ lpT = performance.now();
326
+ cvs.style.cursor = "grabbing";
327
+ }
328
+ __name(onDown, "onDown");
329
+ function onMove(e) {
330
+ if (!dragging) {
331
+ if (e.target === cvs || cvs && cvs.contains(e.target)) {
332
+ if (!cvs) return;
333
+ const r = cvs.getBoundingClientRect();
334
+ mX = ("touches" in e ? e.touches[0].clientX : e.clientX) - r.left;
335
+ mIn = true;
336
+ }
337
+ return;
338
+ }
339
+ e.preventDefault();
340
+ const x = gx(e);
341
+ offX = dragSO + (x - dragSX);
342
+ const now = performance.now();
343
+ const dt = now - lpT;
344
+ if (dt > 0) vel = (x - lpX) / dt * 16;
345
+ lpX = x;
346
+ lpT = now;
347
+ }
348
+ __name(onMove, "onMove");
349
+ function onUp() {
350
+ if (!dragging) return;
351
+ dragging = false;
352
+ cvs.style.cursor = mIn ? "grab" : "default";
353
+ vel = 0;
354
+ if (dragSO !== offX) {
355
+ const lockedSec = x2t(cvs.width / dpr / 2);
356
+ emit("seek", lockedSec);
357
+ }
358
+ }
359
+ __name(onUp, "onUp");
360
+ function initRuler(startTimeDate, durationSeconds) {
361
+ _startTime = startTimeDate;
362
+ _durationSec = durationSeconds || 3600;
363
+ BASE_TIME = dateToSec(startTimeDate);
364
+ resize();
365
+ const w = cvs.width / dpr;
366
+ offX = w / 2 - (BASE_TIME - BASE_TIME) * pph / 3600;
367
+ _currentPlayMs = startTimeDate.getTime();
368
+ }
369
+ __name(initRuler, "initRuler");
370
+ function updateRulerTime(timeMs) {
371
+ _currentPlayMs = timeMs;
372
+ }
373
+ __name(updateRulerTime, "updateRulerTime");
374
+ function autoFollow() {
375
+ if (!_currentPlayMs || dragging || !cvs) return;
376
+ const targetX = t2x(_currentPlayMs / 1e3);
377
+ const w = cvs.width / dpr;
378
+ const halfW = w / 2;
379
+ if (Math.abs(targetX - halfW) > halfW * 0.5) {
380
+ offX += (targetX - halfW) * 0.08;
381
+ }
382
+ }
383
+ __name(autoFollow, "autoFollow");
384
+ __expose({ initRuler, updateRulerTime, autoFollow });
385
+ onMounted(() => {
386
+ cvs = canvasRef.value;
387
+ cx = cvs.getContext("2d");
388
+ dpr = window.devicePixelRatio || 1;
389
+ cvs.addEventListener("mousedown", onDown);
390
+ cvs.addEventListener("touchstart", onDown, { passive: false });
391
+ window.addEventListener("mousemove", onMove);
392
+ window.addEventListener("touchmove", onMove, { passive: false });
393
+ window.addEventListener("mouseup", onUp);
394
+ window.addEventListener("touchend", onUp);
395
+ cvs.addEventListener("mouseenter", () => {
396
+ mIn = true;
397
+ cvs.style.cursor = "grab";
398
+ });
399
+ cvs.addEventListener("mouseleave", () => {
400
+ mIn = false;
401
+ mX = -1;
402
+ if (!dragging) cvs.style.cursor = "default";
403
+ });
404
+ cvs.addEventListener("click", (e) => {
405
+ if (Math.abs(gx(e)) - dragSX > 5) return;
406
+ const clickX = gx(e);
407
+ const lockedSec = x2t(clickX);
408
+ vel = 0;
409
+ offX = clickX - cvs.width / dpr / 2;
410
+ emit("seek", lockedSec);
411
+ });
412
+ window.addEventListener("resize", resize);
413
+ nextTick(() => {
414
+ tipElProxy = document.querySelector(".ruler-area .tip");
415
+ });
416
+ if (props.startTime) {
417
+ initRuler(props.startTime, props.duration);
418
+ } else {
419
+ BASE_TIME = Date.now() / 1e3;
420
+ resize();
421
+ const w = cvs.width / dpr;
422
+ offX = w / 2;
423
+ }
424
+ loop();
425
+ });
426
+ onBeforeUnmount(() => {
427
+ if (rafId) cancelAnimationFrame(rafId);
428
+ window.removeEventListener("resize", resize);
429
+ window.removeEventListener("mousemove", onMove);
430
+ window.removeEventListener("touchmove", onMove);
431
+ window.removeEventListener("mouseup", onUp);
432
+ window.removeEventListener("touchend", onUp);
433
+ });
434
+ return (_ctx, _cache) => {
435
+ return openBlock(), createElementBlock("div", _hoisted_1, [
436
+ createElementVNode("div", _hoisted_2, [
437
+ createElementVNode("div", {
438
+ class: "time-big",
439
+ innerHTML: timeBigHtml.value
440
+ }, null, 8, _hoisted_3),
441
+ createElementVNode(
442
+ "div",
443
+ _hoisted_4,
444
+ toDisplayString(timeDateText.value),
445
+ 1
446
+ /* TEXT */
447
+ )
448
+ ]),
449
+ createElementVNode(
450
+ "div",
451
+ {
452
+ ref_key: "recTrackRef",
453
+ ref: recTrackRef,
454
+ class: "rec-track"
455
+ },
456
+ null,
457
+ 512
458
+ /* NEED_PATCH */
459
+ ),
460
+ createElementVNode(
461
+ "div",
462
+ {
463
+ ref_key: "rulerAreaRef",
464
+ ref: rulerAreaRef,
465
+ class: "ruler-area"
466
+ },
467
+ [
468
+ createElementVNode(
469
+ "canvas",
470
+ {
471
+ id: "rulerCanvas",
472
+ ref_key: "canvasRef",
473
+ ref: canvasRef,
474
+ class: "ruler-canvas"
475
+ },
476
+ null,
477
+ 512
478
+ /* NEED_PATCH */
479
+ ),
480
+ createElementVNode(
481
+ "div",
482
+ {
483
+ class: normalizeClass(["tip", { show: tipShow.value }]),
484
+ style: normalizeStyle(tipStyle.value)
485
+ },
486
+ toDisplayString(tipText.value),
487
+ 7
488
+ /* TEXT, CLASS, STYLE */
489
+ ),
490
+ createElementVNode(
491
+ "div",
492
+ _hoisted_5,
493
+ toDisplayString(zoomTagText.value),
494
+ 1
495
+ /* TEXT */
496
+ )
497
+ ],
498
+ 512
499
+ /* NEED_PATCH */
500
+ )
501
+ ]);
502
+ };
503
+ }
504
+ });
505
+
506
+ export { _sfc_main as default };
507
+ //# sourceMappingURL=timeline-ruler.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-ruler.vue2.mjs","sources":["../../../../../../../../packages/components/monitor-playback/timeline-ruler/src/timeline-ruler.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { nextTick, onBeforeUnmount, onMounted, ref } from \"vue\";\nimport { TimelineRulerProps } from \"./timeline-ruler\";\nimport type { TickCfg } from \"./timeline-ruler\";\n\ndefineOptions({\n name: \"ITimelineRuler\",\n});\n\nconst props = defineProps(TimelineRulerProps);\n\nconst emit = defineEmits([\"seek\"]);\n\n// ==================== DOM Refs ====================\nconst canvasRef = ref<HTMLCanvasElement | null>(null);\nconst rulerAreaRef = ref<HTMLElement | null>(null);\nconst recTrackRef = ref<HTMLElement | null>(null);\n\n// ==================== UI State ====================\nconst timeBigHtml = ref(\n '--<span class=\"sep\">:</span>--<span class=\"sep\">:</span>--',\n);\nconst timeDateText = ref(\"----/--/--\");\nconst tipShow = ref(false);\nconst tipText = ref(\"\");\n/** ruler tooltip DOM 代理引用,延迟到 onMounted 赋值 */\nlet tipElProxy: Element | null = null;\nconst tipStyle = ref<Record<string, string>>({});\nconst zoomTagText = ref(\"\");\n\n// ==================== Ruler Constants ====================\nconst RH = 56;\nconst BASE_Y = 44;\nconst FRIC = 0.9;\n\n// ==================== Ruler State ====================\nlet BASE_TIME: number | null = null;\nlet pph = 120;\nconst tPph = 120;\nlet offX = 0;\nlet dragging = false;\nlet dragSX = 0;\nlet dragSO = 0;\nlet vel = 0;\nlet lpX = 0;\nlet lpT = 0;\nlet mX = -1;\nlet mIn = false;\nlet _startTime: Date | null = null;\nlet _durationSec = 3600;\nlet _currentPlayMs: number | null = null;\n\n// Canvas refs\nlet cvs: HTMLCanvasElement | null = null;\nlet cx: CanvasRenderingContext2D | null = null;\nlet dpr = 1;\nlet rafId: number | null = null;\n\n// ==================== Utils ====================\nfunction pad(n: number) {\n return String(n).padStart(2, \"0\");\n}\n\nfunction fmtT(s: number) {\n const d = new Date(s * 1000);\n return `${pad(d.getHours())}:${pad(d.getMinutes())}`;\n}\nfunction fmtTF(s: number) {\n const d = new Date(s * 1000);\n return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n}\nfunction fmtD(s: number) {\n const d = new Date(s * 1000);\n return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;\n}\n\nfunction dateToSec(dt: Date): number {\n return dt.getTime() / 1000;\n}\n\n// ==================== Coord Transform ====================\nfunction t2x(t: number): number {\n return ((t - BASE_TIME!) * pph) / 3600 + offX;\n}\nfunction x2t(x: number): number {\n return ((x - offX) * 3600) / pph + BASE_TIME!;\n}\n\n// ==================== Resize ====================\nfunction resize() {\n if (!cvs || !rulerAreaRef.value) return;\n const ow = cvs!.width / dpr || 0;\n const r = rulerAreaRef.value.getBoundingClientRect();\n cvs!.width = r.width * dpr;\n cvs!.height = RH * dpr;\n (cvs as HTMLCanvasElement).style.height = `${RH}px`;\n cx!.setTransform(dpr, 0, 0, dpr, 0, 0);\n if (ow > 0) {\n const ct = x2t(ow / 2);\n offX = r.width / 2 - ((ct - BASE_TIME!) * pph) / 3600;\n }\n}\n\n// ==================== Tick Config ====================\nfunction tCfg(): Record<string, TickCfg> {\n if (pph >= 300)\n return {\n M: { iv: 3600, h: 32, w: 1.5, c: \"#8899b4\", lbl: true },\n m: { iv: 1800, h: 22, w: 1, c: \"#4a5a74\" },\n s: { iv: 600, h: 14, w: 0.7, c: \"#33415a\" },\n u: { iv: 300, h: 8, w: 0.5, c: \"#252f42\" },\n x: { iv: 60, h: 4, w: 0.3, c: \"#1c2535\" },\n };\n if (pph >= 140)\n return {\n M: { iv: 3600, h: 32, w: 1.5, c: \"#8899b4\", lbl: true },\n m: { iv: 1800, h: 22, w: 1, c: \"#4a5a74\" },\n s: { iv: 600, h: 14, w: 0.7, c: \"#33415a\" },\n u: { iv: 300, h: 8, w: 0.5, c: \"#252f42\" },\n };\n if (pph >= 70)\n return {\n M: { iv: 3600, h: 32, w: 1.5, c: \"#8899b4\", lbl: true },\n m: { iv: 1800, h: 20, w: 1, c: \"#4a5a74\" },\n s: { iv: 600, h: 13, w: 0.7, c: \"#33415a\" },\n };\n if (pph >= 35)\n return {\n M: { iv: 3600, h: 32, w: 1.5, c: \"#8899b4\", lbl: true },\n m: { iv: 1800, h: 18, w: 0.8, c: \"#4a5a74\" },\n };\n return {\n M: { iv: 7200, h: 32, w: 1.5, c: \"#8899b4\", lbl: true },\n m: { iv: 3600, h: 18, w: 0.8, c: \"#4a5a74\" },\n };\n}\n\n// ==================== Draw ====================\nfunction draw() {\n if (!cvs || !cx) return;\n const w = cvs.width / dpr;\n const h = cvs.height / dpr;\n cx.clearRect(0, 0, w, h);\n\n // 基线\n cx.strokeStyle = \"#2a3448\";\n cx.lineWidth = 1;\n cx.beginPath();\n cx.moveTo(0, BASE_Y);\n cx.lineTo(w, BASE_Y);\n cx.stroke();\n\n // 多级刻度\n const cfg = tCfg();\n const lt = x2t(-100);\n const rt = x2t(w + 100);\n const order = [\"x\", \"u\", \"s\", \"m\", \"M\"];\n for (let li = 0; li < order.length; li++) {\n const lv = order[li];\n const tk = cfg[lv];\n if (!tk) continue;\n const st = Math.floor(lt / tk.iv) * tk.iv;\n for (let t = st; t <= rt + tk.iv; t += tk.iv) {\n const x = t2x(t);\n if (x < -20 || x > w + 20) continue;\n cx.strokeStyle = tk.c;\n cx.lineWidth = tk.w;\n cx.beginPath();\n cx.moveTo(x, BASE_Y);\n cx.lineTo(x, BASE_Y - tk.h);\n cx.stroke();\n if (tk.lbl) {\n cx.fillStyle = \"#7a8da6\";\n cx.font = '700 10px \"Space Mono\",monospace';\n cx.textAlign = \"center\";\n cx.textBaseline = \"top\";\n cx.fillText(fmtT(t), x, 4);\n const dd = new Date(t * 1000);\n if (dd.getHours() === 0 && dd.getMinutes() === 0) {\n cx.fillStyle = \"#4a5a74\";\n cx.font = '9px \"Space Mono\",monospace';\n cx.fillText(fmtD(t), x, -1);\n cx.save();\n cx.strokeStyle = \"#1e2a3a\";\n cx.lineWidth = 1;\n cx.setLineDash([3, 3]);\n cx.beginPath();\n cx.moveTo(x, 14);\n cx.lineTo(x, BASE_Y);\n cx.stroke();\n cx.restore();\n }\n }\n }\n }\n\n // 当前播放位置线(绿色)\n if (_currentPlayMs && _startTime) {\n const playSec = _currentPlayMs / 1000;\n const nx = t2x(playSec);\n if (nx > -20 && nx < w + 20) {\n cx.strokeStyle = \"#3ddc84\";\n cx.lineWidth = 1.5;\n cx.beginPath();\n cx.moveTo(nx, BASE_Y - 32);\n cx.lineTo(nx, BASE_Y);\n cx.stroke();\n cx.fillStyle = \"#3ddc84\";\n cx.beginPath();\n cx.moveTo(nx, BASE_Y + 1);\n cx.lineTo(nx - 3, BASE_Y + 6);\n cx.lineTo(nx + 3, BASE_Y + 6);\n cx.closePath();\n cx.fill();\n }\n }\n\n // 中心指针(红色)\n const px = w / 2;\n const g = cx.createLinearGradient(px - 20, 0, px + 20, 0);\n g.addColorStop(0, \"rgba(255,45,45,0)\");\n g.addColorStop(0.5, \"rgba(255,45,45,0.06)\");\n g.addColorStop(1, \"rgba(255,45,45,0)\");\n cx.fillStyle = g;\n cx.fillRect(px - 20, 0, 40, BASE_Y);\n\n cx.strokeStyle = \"#ff2d2d\";\n cx.lineWidth = 1.5;\n cx.beginPath();\n cx.moveTo(px, 0);\n cx.lineTo(px, BASE_Y);\n cx.stroke();\n\n cx.fillStyle = \"#ff2d2d\";\n cx.beginPath();\n cx.moveTo(px, 0);\n cx.lineTo(px - 4, 6);\n cx.lineTo(px + 4, 6);\n cx.closePath();\n cx.fill();\n\n cx.beginPath();\n cx.moveTo(px, BASE_Y + 1);\n cx.lineTo(px - 3, BASE_Y + 7);\n cx.lineTo(px + 3, BASE_Y + 7);\n cx.closePath();\n cx.fill();\n\n // 鼠标悬停线\n if (mIn && mX >= 0 && !dragging) {\n cx.save();\n cx.strokeStyle = \"rgba(136,153,180,0.4)\";\n cx.lineWidth = 1;\n cx.setLineDash([2, 2]);\n cx.beginPath();\n cx.moveTo(mX, 4);\n cx.lineTo(mX, BASE_Y);\n cx.stroke();\n cx.restore();\n cx.fillStyle = \"#8899b4\";\n cx.beginPath();\n cx.arc(mX, BASE_Y, 2.5, 0, Math.PI * 2);\n cx.fill();\n\n const ht = x2t(mX);\n tipText.value = `${fmtD(ht)} ${fmtTF(ht)}`;\n tipStyle.value = { left: `${mX + 14}px` };\n tipShow.value = true;\n requestAnimationFrame(() => {\n if (!tipElProxy || !rulerAreaRef.value) return;\n const tr = tipElProxy.getBoundingClientRect();\n const wr = rulerAreaRef.value.getBoundingClientRect();\n if (tr.right > wr.right - 6)\n tipStyle.value = { left: `${mX - tr.width - 14}px` };\n });\n } else {\n tipShow.value = false;\n }\n\n // 边缘渐隐\n const fw = 28;\n const lf = cx.createLinearGradient(0, 0, fw, 0);\n lf.addColorStop(0, \"#1a2030\");\n lf.addColorStop(1, \"rgba(26,32,48,0)\");\n cx.fillStyle = lf;\n cx.fillRect(0, 0, fw, h);\n const rf = cx.createLinearGradient(w - fw, 0, w, 0);\n rf.addColorStop(0, \"rgba(26,32,48,0)\");\n rf.addColorStop(1, \"#1a2030\");\n cx.fillStyle = rf;\n cx.fillRect(w - fw, 0, fw, h);\n\n // 更新中心时间显示\n const ct = x2t(px);\n const cd = new Date(ct * 1000);\n timeBigHtml.value = `${pad(cd.getHours())}<span class=\"sep\">:</span>${pad(\n cd.getMinutes(),\n )}<span class=\"sep\">:</span>${pad(cd.getSeconds())}`;\n timeDateText.value = fmtD(ct);\n\n // 录像段\n renderRecSegs(w);\n}\n\n// 录像段渲染\nfunction renderRecSegs(w?: number) {\n if (!w) w = (cvs as HTMLCanvasElement).width / dpr;\n if (!recTrackRef.value) return;\n recTrackRef.value.innerHTML = \"\";\n if (!_startTime) return;\n\n const startS = dateToSec(_startTime);\n const endS = startS + _durationSec;\n const lt = x2t(-20);\n const rt = x2t(w + 20);\n\n if (endS < lt || startS > rt) return;\n\n const x1 = t2x(Math.max(startS, lt));\n const x2 = t2x(Math.min(endS, rt));\n if (x2 - x1 < 0.5) return;\n\n const div = document.createElement(\"div\");\n div.className = \"rec-seg\";\n div.style.left = `${x1}px`;\n div.style.width = `${x2 - x1}px`;\n recTrackRef.value.appendChild(div);\n}\n\n// ==================== Animation Loop ====================\nfunction loop() {\n // 惯性滑动\n if (!dragging && Math.abs(vel) > 0.05) {\n offX += vel;\n vel *= FRIC;\n } else if (!dragging) vel = 0;\n\n // 平滑缩放\n if (Math.abs(pph - tPph) > 0.2) pph += (tPph - pph) * 0.15;\n else pph = tPph;\n\n zoomTagText.value = `${Math.round(pph)} px/h`;\n\n draw();\n\n rafId = requestAnimationFrame(loop);\n}\n\n// ==================== Events ====================\nfunction gx(e: MouseEvent | TouchEvent): number {\n if (!cvs) return 0;\n const r = cvs!.getBoundingClientRect();\n const clientX = \"touches\" in e ? e.touches[0].clientX : e.clientX;\n return clientX - r.left;\n}\n\nfunction onDown(e: MouseEvent | TouchEvent) {\n e.preventDefault();\n dragging = true;\n vel = 0;\n dragSX = gx(e);\n dragSO = offX;\n lpX = dragSX;\n lpT = performance.now();\n (cvs as HTMLCanvasElement).style.cursor = \"grabbing\";\n}\n\nfunction onMove(e: MouseEvent | TouchEvent) {\n if (!dragging) {\n if (e.target === cvs || (cvs && cvs!.contains(e.target as Node))) {\n if (!cvs) return;\n const r = cvs!.getBoundingClientRect();\n mX = (\"touches\" in e ? e.touches[0].clientX : e.clientX) - r.left;\n mIn = true;\n }\n return;\n }\n e.preventDefault();\n const x = gx(e);\n offX = dragSO + (x - dragSX);\n const now = performance.now();\n const dt = now - lpT;\n if (dt > 0) vel = ((x - lpX) / dt) * 16;\n lpX = x;\n lpT = now;\n}\n\nfunction onUp() {\n if (!dragging) return;\n dragging = false;\n (cvs as HTMLCanvasElement).style.cursor = mIn ? \"grab\" : \"default\";\n vel = 0;\n if (dragSO !== offX) {\n const lockedSec = x2t(cvs!.width / dpr / 2);\n emit(\"seek\", lockedSec);\n }\n}\n\n// ==================== Public API ====================\n/** 初始化/重置时间轴 */\nfunction initRuler(startTimeDate: Date, durationSeconds?: number) {\n _startTime = startTimeDate;\n _durationSec = durationSeconds || 3600;\n BASE_TIME = dateToSec(startTimeDate);\n resize();\n const w = (cvs as HTMLCanvasElement).width / dpr;\n offX = w / 2 - ((BASE_TIME! - BASE_TIME!) * pph) / 3600;\n _currentPlayMs = startTimeDate.getTime();\n}\n\n/** 更新当前播放时间(由父组件定时调用) */\nfunction updateRulerTime(timeMs: number) {\n _currentPlayMs = timeMs;\n}\n\n/** 播放时自动跟随指针到中心 */\nfunction autoFollow() {\n if (!_currentPlayMs || dragging || !cvs) return;\n const targetX = t2x(_currentPlayMs / 1000);\n const w = (cvs as HTMLCanvasElement).width / dpr;\n const halfW = w / 2;\n if (Math.abs(targetX - halfW) > halfW * 0.5) {\n offX += (targetX - halfW) * 0.08;\n }\n}\n\ndefineExpose({ initRuler, updateRulerTime, autoFollow });\n\n// ==================== Lifecycle ====================\nonMounted(() => {\n cvs = canvasRef.value;\n cx = cvs!.getContext(\"2d\");\n dpr = window.devicePixelRatio || 1;\n\n // 绑定事件\n cvs!.addEventListener(\"mousedown\", onDown);\n cvs!.addEventListener(\"touchstart\", onDown, { passive: false });\n window.addEventListener(\"mousemove\", onMove);\n window.addEventListener(\"touchmove\", onMove, { passive: false });\n window.addEventListener(\"mouseup\", onUp);\n window.addEventListener(\"touchend\", onUp);\n cvs!.addEventListener(\"mouseenter\", () => {\n mIn = true;\n (cvs as HTMLCanvasElement).style.cursor = \"grab\";\n });\n cvs!.addEventListener(\"mouseleave\", () => {\n mIn = false;\n mX = -1;\n if (!dragging) (cvs as HTMLCanvasElement).style.cursor = \"default\";\n });\n\n // 点击跳转\n cvs!.addEventListener(\"click\", (e) => {\n if (Math.abs(gx(e as MouseEvent)) - dragSX > 5) return;\n const clickX = gx(e as MouseEvent);\n const lockedSec = x2t(clickX);\n vel = 0;\n offX = clickX - cvs!.width / dpr / 2;\n emit(\"seek\", lockedSec);\n });\n\n // resize\n window.addEventListener(\"resize\", resize);\n\n // 获取 tip 代理元素\n nextTick(() => {\n tipElProxy = document.querySelector(\".ruler-area .tip\");\n });\n\n // 初始化\n if (props.startTime) {\n initRuler(props.startTime, props.duration);\n } else {\n BASE_TIME = Date.now() / 1000;\n resize();\n const w = cvs!.width / dpr;\n offX = w / 2;\n }\n loop();\n});\n\nonBeforeUnmount(() => {\n if (rafId) cancelAnimationFrame(rafId);\n window.removeEventListener(\"resize\", resize);\n window.removeEventListener(\"mousemove\", onMove);\n window.removeEventListener(\"touchmove\", onMove);\n window.removeEventListener(\"mouseup\", onUp);\n window.removeEventListener(\"touchend\", onUp);\n});\n</script>\n\n<template>\n <div class=\"ruler-panel\">\n <div class=\"time-display\">\n <div class=\"time-big\" v-html=\"timeBigHtml\" />\n <div class=\"time-date\">{{ timeDateText }}</div>\n </div>\n\n <div ref=\"recTrackRef\" class=\"rec-track\" />\n\n <div ref=\"rulerAreaRef\" class=\"ruler-area\">\n <canvas id=\"rulerCanvas\" ref=\"canvasRef\" class=\"ruler-canvas\" />\n <div class=\"tip\" :class=\"{ show: tipShow }\" :style=\"tipStyle\">\n {{ tipText }}\n </div>\n <div class=\"zoom-tag\">{{ zoomTagText }}</div>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_normalizeClass"],"mappings":";;;;;;;;;;AA+BA,MAAM,EAAK,GAAA,EAAA;AACX,MAAM,MAAS,GAAA,EAAA;AACf,MAAM,IAAO,GAAA,GAAA;AAKb,MAAM,IAAO,GAAA,GAAA;;;;;;;;;AA7Bb,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,IAAO,GAAA,MAAA;AAGb,IAAM,MAAA,SAAA,GAAY,IAA8B,IAAI,CAAA;AACpD,IAAM,MAAA,YAAA,GAAe,IAAwB,IAAI,CAAA;AACjD,IAAM,MAAA,WAAA,GAAc,IAAwB,IAAI,CAAA;AAGhD,IAAA,MAAM,WAAc,GAAA,GAAA;AAAA,MAClB;AAAA,KACF;AACA,IAAM,MAAA,YAAA,GAAe,IAAI,YAAY,CAAA;AACrC,IAAM,MAAA,OAAA,GAAU,IAAI,KAAK,CAAA;AACzB,IAAM,MAAA,OAAA,GAAU,IAAI,EAAE,CAAA;AAEtB,IAAA,IAAI,UAA6B,GAAA,IAAA;AACjC,IAAM,MAAA,QAAA,GAAW,GAA4B,CAAA,EAAE,CAAA;AAC/C,IAAM,MAAA,WAAA,GAAc,IAAI,EAAE,CAAA;AAQ1B,IAAA,IAAI,SAA2B,GAAA,IAAA;AAC/B,IAAA,IAAI,GAAM,GAAA,GAAA;AAEV,IAAA,IAAI,IAAO,GAAA,CAAA;AACX,IAAA,IAAI,QAAW,GAAA,KAAA;AACf,IAAA,IAAI,MAAS,GAAA,CAAA;AACb,IAAA,IAAI,MAAS,GAAA,CAAA;AACb,IAAA,IAAI,GAAM,GAAA,CAAA;AACV,IAAA,IAAI,GAAM,GAAA,CAAA;AACV,IAAA,IAAI,GAAM,GAAA,CAAA;AACV,IAAA,IAAI,EAAK,GAAA,CAAA,CAAA;AACT,IAAA,IAAI,GAAM,GAAA,KAAA;AACV,IAAA,IAAI,UAA0B,GAAA,IAAA;AAC9B,IAAA,IAAI,YAAe,GAAA,IAAA;AACnB,IAAA,IAAI,cAAgC,GAAA,IAAA;AAGpC,IAAA,IAAI,GAAgC,GAAA,IAAA;AACpC,IAAA,IAAI,EAAsC,GAAA,IAAA;AAC1C,IAAA,IAAI,GAAM,GAAA,CAAA;AACV,IAAA,IAAI,KAAuB,GAAA,IAAA;AAG3B,IAAA,SAAS,IAAI,CAAW,EAAA;AACtB,MAAA,OAAO,MAAO,CAAA,CAAC,CAAE,CAAA,QAAA,CAAS,GAAG,GAAG,CAAA;AAAA;AADzB,IAAA,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA;AAIT,IAAA,SAAS,KAAK,CAAW,EAAA;AACvB,MAAA,MAAM,CAAI,GAAA,IAAI,IAAK,CAAA,CAAA,GAAI,GAAI,CAAA;AAC3B,MAAO,OAAA,CAAA,EAAG,GAAI,CAAA,CAAA,CAAE,QAAS,EAAC,CAAC,CAAA,CAAA,EAAI,GAAI,CAAA,CAAA,CAAE,UAAW,EAAC,CAAC,CAAA,CAAA;AAAA;AAF3C,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAIT,IAAA,SAAS,MAAM,CAAW,EAAA;AACxB,MAAA,MAAM,CAAI,GAAA,IAAI,IAAK,CAAA,CAAA,GAAI,GAAI,CAAA;AAC3B,MAAA,OAAO,GAAG,GAAI,CAAA,CAAA,CAAE,QAAS,EAAC,CAAC,CAAI,CAAA,EAAA,GAAA,CAAI,CAAE,CAAA,UAAA,EAAY,CAAC,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA,UAAA,EAAY,CAAC,CAAA,CAAA;AAAA;AAFlE,IAAA,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA;AAIT,IAAA,SAAS,KAAK,CAAW,EAAA;AACvB,MAAA,MAAM,CAAI,GAAA,IAAI,IAAK,CAAA,CAAA,GAAI,GAAI,CAAA;AAC3B,MAAA,OAAO,GAAG,CAAE,CAAA,WAAA,EAAa,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA,QAAA,EAAa,GAAA,CAAC,CAAC,CAAI,CAAA,EAAA,GAAA,CAAI,CAAE,CAAA,OAAA,EAAS,CAAC,CAAA,CAAA;AAAA;AAF/D,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAKT,IAAA,SAAS,UAAU,EAAkB,EAAA;AACnC,MAAO,OAAA,EAAA,CAAG,SAAY,GAAA,GAAA;AAAA;AADf,IAAA,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAKT,IAAA,SAAS,IAAI,CAAmB,EAAA;AAC9B,MAAS,OAAA,CAAA,CAAA,GAAI,SAAc,IAAA,GAAA,GAAO,IAAO,GAAA,IAAA;AAAA;AADlC,IAAA,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA;AAGT,IAAA,SAAS,IAAI,CAAmB,EAAA;AAC9B,MAAS,OAAA,CAAA,CAAA,GAAI,IAAQ,IAAA,IAAA,GAAQ,GAAM,GAAA,SAAA;AAAA;AAD5B,IAAA,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA;AAKT,IAAA,SAAS,MAAS,GAAA;AAChB,MAAA,IAAI,CAAC,GAAA,IAAO,CAAC,YAAA,CAAa,KAAO,EAAA;AACjC,MAAM,MAAA,EAAA,GAAK,GAAK,CAAA,KAAA,GAAQ,GAAO,IAAA,CAAA;AAC/B,MAAM,MAAA,CAAA,GAAI,YAAa,CAAA,KAAA,CAAM,qBAAsB,EAAA;AACnD,MAAK,GAAA,CAAA,KAAA,GAAQ,EAAE,KAAQ,GAAA,GAAA;AACvB,MAAA,GAAA,CAAK,SAAS,EAAK,GAAA,GAAA;AACnB,MAAC,GAA0B,CAAA,KAAA,CAAM,MAAS,GAAA,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA;AAC/C,MAAA,EAAA,CAAI,aAAa,GAAK,EAAA,CAAA,EAAG,CAAG,EAAA,GAAA,EAAK,GAAG,CAAC,CAAA;AACrC,MAAA,IAAI,KAAK,CAAG,EAAA;AACV,QAAM,MAAA,EAAA,GAAK,GAAI,CAAA,EAAA,GAAK,CAAC,CAAA;AACrB,QAAA,IAAA,GAAO,CAAE,CAAA,KAAA,GAAQ,CAAM,GAAA,CAAA,EAAA,GAAK,aAAc,GAAO,GAAA,IAAA;AAAA;AACnD;AAXO,IAAA,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAeT,IAAA,SAAS,IAAgC,GAAA;AACvC,MAAA,IAAI,GAAO,IAAA,GAAA;AACT,QAAO,OAAA;AAAA,UACL,CAAA,EAAG,EAAE,EAAA,EAAI,IAAM,EAAA,CAAA,EAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAW,EAAA,GAAA,EAAK,IAAK,EAAA;AAAA,UACtD,CAAA,EAAG,EAAE,EAAI,EAAA,IAAA,EAAM,GAAG,EAAI,EAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,SAAU,EAAA;AAAA,UACzC,CAAA,EAAG,EAAE,EAAI,EAAA,GAAA,EAAK,GAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU,EAAA;AAAA,UAC1C,CAAA,EAAG,EAAE,EAAI,EAAA,GAAA,EAAK,GAAG,CAAG,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU,EAAA;AAAA,UACzC,CAAA,EAAG,EAAE,EAAI,EAAA,EAAA,EAAI,GAAG,CAAG,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU;AAAA,SAC1C;AACF,MAAA,IAAI,GAAO,IAAA,GAAA;AACT,QAAO,OAAA;AAAA,UACL,CAAA,EAAG,EAAE,EAAA,EAAI,IAAM,EAAA,CAAA,EAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAW,EAAA,GAAA,EAAK,IAAK,EAAA;AAAA,UACtD,CAAA,EAAG,EAAE,EAAI,EAAA,IAAA,EAAM,GAAG,EAAI,EAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,SAAU,EAAA;AAAA,UACzC,CAAA,EAAG,EAAE,EAAI,EAAA,GAAA,EAAK,GAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU,EAAA;AAAA,UAC1C,CAAA,EAAG,EAAE,EAAI,EAAA,GAAA,EAAK,GAAG,CAAG,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU;AAAA,SAC3C;AACF,MAAA,IAAI,GAAO,IAAA,EAAA;AACT,QAAO,OAAA;AAAA,UACL,CAAA,EAAG,EAAE,EAAA,EAAI,IAAM,EAAA,CAAA,EAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAW,EAAA,GAAA,EAAK,IAAK,EAAA;AAAA,UACtD,CAAA,EAAG,EAAE,EAAI,EAAA,IAAA,EAAM,GAAG,EAAI,EAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,SAAU,EAAA;AAAA,UACzC,CAAA,EAAG,EAAE,EAAI,EAAA,GAAA,EAAK,GAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU;AAAA,SAC5C;AACF,MAAA,IAAI,GAAO,IAAA,EAAA;AACT,QAAO,OAAA;AAAA,UACL,CAAA,EAAG,EAAE,EAAA,EAAI,IAAM,EAAA,CAAA,EAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAW,EAAA,GAAA,EAAK,IAAK,EAAA;AAAA,UACtD,CAAA,EAAG,EAAE,EAAI,EAAA,IAAA,EAAM,GAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU;AAAA,SAC7C;AACF,MAAO,OAAA;AAAA,QACL,CAAA,EAAG,EAAE,EAAA,EAAI,IAAM,EAAA,CAAA,EAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAW,EAAA,GAAA,EAAK,IAAK,EAAA;AAAA,QACtD,CAAA,EAAG,EAAE,EAAI,EAAA,IAAA,EAAM,GAAG,EAAI,EAAA,CAAA,EAAG,GAAK,EAAA,CAAA,EAAG,SAAU;AAAA,OAC7C;AAAA;AA9BO,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAkCT,IAAA,SAAS,IAAO,GAAA;AACd,MAAI,IAAA,CAAC,GAAO,IAAA,CAAC,EAAI,EAAA;AACjB,MAAM,MAAA,CAAA,GAAI,IAAI,KAAQ,GAAA,GAAA;AACtB,MAAM,MAAA,CAAA,GAAI,IAAI,MAAS,GAAA,GAAA;AACvB,MAAA,EAAA,CAAG,SAAU,CAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,CAAC,CAAA;AAGvB,MAAA,EAAA,CAAG,WAAc,GAAA,SAAA;AACjB,MAAA,EAAA,CAAG,SAAY,GAAA,CAAA;AACf,MAAA,EAAA,CAAG,SAAU,EAAA;AACb,MAAG,EAAA,CAAA,MAAA,CAAO,GAAG,MAAM,CAAA;AACnB,MAAG,EAAA,CAAA,MAAA,CAAO,GAAG,MAAM,CAAA;AACnB,MAAA,EAAA,CAAG,MAAO,EAAA;AAGV,MAAA,MAAM,MAAM,IAAK,EAAA;AACjB,MAAM,MAAA,EAAA,GAAK,IAAI,CAAI,GAAA,CAAA;AACnB,MAAM,MAAA,EAAA,GAAK,GAAI,CAAA,CAAA,GAAI,GAAG,CAAA;AACtB,MAAA,MAAM,QAAQ,CAAC,GAAA,EAAK,GAAK,EAAA,GAAA,EAAK,KAAK,GAAG,CAAA;AACtC,MAAA,KAAA,IAAS,EAAK,GAAA,CAAA,EAAG,EAAK,GAAA,KAAA,CAAM,QAAQ,EAAM,EAAA,EAAA;AACxC,QAAM,MAAA,EAAA,GAAK,MAAM,EAAE,CAAA;AACnB,QAAM,MAAA,EAAA,GAAK,IAAI,EAAE,CAAA;AACjB,QAAA,IAAI,CAAC,EAAI,EAAA;AACT,QAAA,MAAM,KAAK,IAAK,CAAA,KAAA,CAAM,KAAK,EAAG,CAAA,EAAE,IAAI,EAAG,CAAA,EAAA;AACvC,QAAS,KAAA,IAAA,CAAA,GAAI,IAAI,CAAK,IAAA,EAAA,GAAK,GAAG,EAAI,EAAA,CAAA,IAAK,GAAG,EAAI,EAAA;AAC5C,UAAM,MAAA,CAAA,GAAI,IAAI,CAAC,CAAA;AACf,UAAA,IAAI,CAAI,GAAA,CAAA,EAAA,IAAO,CAAI,GAAA,CAAA,GAAI,EAAI,EAAA;AAC3B,UAAA,EAAA,CAAG,cAAc,EAAG,CAAA,CAAA;AACpB,UAAA,EAAA,CAAG,YAAY,EAAG,CAAA,CAAA;AAClB,UAAA,EAAA,CAAG,SAAU,EAAA;AACb,UAAG,EAAA,CAAA,MAAA,CAAO,GAAG,MAAM,CAAA;AACnB,UAAA,EAAA,CAAG,MAAO,CAAA,CAAA,EAAG,MAAS,GAAA,EAAA,CAAG,CAAC,CAAA;AAC1B,UAAA,EAAA,CAAG,MAAO,EAAA;AACV,UAAA,IAAI,GAAG,GAAK,EAAA;AACV,YAAA,EAAA,CAAG,SAAY,GAAA,SAAA;AACf,YAAA,EAAA,CAAG,IAAO,GAAA,iCAAA;AACV,YAAA,EAAA,CAAG,SAAY,GAAA,QAAA;AACf,YAAA,EAAA,CAAG,YAAe,GAAA,KAAA;AAClB,YAAA,EAAA,CAAG,QAAS,CAAA,IAAA,CAAK,CAAC,CAAA,EAAG,GAAG,CAAC,CAAA;AACzB,YAAA,MAAM,EAAK,GAAA,IAAI,IAAK,CAAA,CAAA,GAAI,GAAI,CAAA;AAC5B,YAAA,IAAI,GAAG,QAAS,EAAA,KAAM,KAAK,EAAG,CAAA,UAAA,OAAiB,CAAG,EAAA;AAChD,cAAA,EAAA,CAAG,SAAY,GAAA,SAAA;AACf,cAAA,EAAA,CAAG,IAAO,GAAA,4BAAA;AACV,cAAA,EAAA,CAAG,QAAS,CAAA,IAAA,CAAK,CAAC,CAAA,EAAG,GAAG,CAAE,CAAA,CAAA;AAC1B,cAAA,EAAA,CAAG,IAAK,EAAA;AACR,cAAA,EAAA,CAAG,WAAc,GAAA,SAAA;AACjB,cAAA,EAAA,CAAG,SAAY,GAAA,CAAA;AACf,cAAA,EAAA,CAAG,WAAY,CAAA,CAAC,CAAG,EAAA,CAAC,CAAC,CAAA;AACrB,cAAA,EAAA,CAAG,SAAU,EAAA;AACb,cAAG,EAAA,CAAA,MAAA,CAAO,GAAG,EAAE,CAAA;AACf,cAAG,EAAA,CAAA,MAAA,CAAO,GAAG,MAAM,CAAA;AACnB,cAAA,EAAA,CAAG,MAAO,EAAA;AACV,cAAA,EAAA,CAAG,OAAQ,EAAA;AAAA;AACb;AACF;AACF;AAIF,MAAA,IAAI,kBAAkB,UAAY,EAAA;AAChC,QAAA,MAAM,UAAU,cAAiB,GAAA,GAAA;AACjC,QAAM,MAAA,EAAA,GAAK,IAAI,OAAO,CAAA;AACtB,QAAA,IAAI,EAAK,GAAA,CAAA,EAAA,IAAO,EAAK,GAAA,CAAA,GAAI,EAAI,EAAA;AAC3B,UAAA,EAAA,CAAG,WAAc,GAAA,SAAA;AACjB,UAAA,EAAA,CAAG,SAAY,GAAA,GAAA;AACf,UAAA,EAAA,CAAG,SAAU,EAAA;AACb,UAAG,EAAA,CAAA,MAAA,CAAO,EAAI,EAAA,MAAA,GAAS,EAAE,CAAA;AACzB,UAAG,EAAA,CAAA,MAAA,CAAO,IAAI,MAAM,CAAA;AACpB,UAAA,EAAA,CAAG,MAAO,EAAA;AACV,UAAA,EAAA,CAAG,SAAY,GAAA,SAAA;AACf,UAAA,EAAA,CAAG,SAAU,EAAA;AACb,UAAG,EAAA,CAAA,MAAA,CAAO,EAAI,EAAA,MAAA,GAAS,CAAC,CAAA;AACxB,UAAA,EAAA,CAAG,MAAO,CAAA,EAAA,GAAK,CAAG,EAAA,MAAA,GAAS,CAAC,CAAA;AAC5B,UAAA,EAAA,CAAG,MAAO,CAAA,EAAA,GAAK,CAAG,EAAA,MAAA,GAAS,CAAC,CAAA;AAC5B,UAAA,EAAA,CAAG,SAAU,EAAA;AACb,UAAA,EAAA,CAAG,IAAK,EAAA;AAAA;AACV;AAIF,MAAA,MAAM,KAAK,CAAI,GAAA,CAAA;AACf,MAAM,MAAA,CAAA,GAAI,GAAG,oBAAqB,CAAA,EAAA,GAAK,IAAI,CAAG,EAAA,EAAA,GAAK,IAAI,CAAC,CAAA;AACxD,MAAE,CAAA,CAAA,YAAA,CAAa,GAAG,mBAAmB,CAAA;AACrC,MAAE,CAAA,CAAA,YAAA,CAAa,KAAK,sBAAsB,CAAA;AAC1C,MAAE,CAAA,CAAA,YAAA,CAAa,GAAG,mBAAmB,CAAA;AACrC,MAAA,EAAA,CAAG,SAAY,GAAA,CAAA;AACf,MAAA,EAAA,CAAG,QAAS,CAAA,EAAA,GAAK,EAAI,EAAA,CAAA,EAAG,IAAI,MAAM,CAAA;AAElC,MAAA,EAAA,CAAG,WAAc,GAAA,SAAA;AACjB,MAAA,EAAA,CAAG,SAAY,GAAA,GAAA;AACf,MAAA,EAAA,CAAG,SAAU,EAAA;AACb,MAAG,EAAA,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AACf,MAAG,EAAA,CAAA,MAAA,CAAO,IAAI,MAAM,CAAA;AACpB,MAAA,EAAA,CAAG,MAAO,EAAA;AAEV,MAAA,EAAA,CAAG,SAAY,GAAA,SAAA;AACf,MAAA,EAAA,CAAG,SAAU,EAAA;AACb,MAAG,EAAA,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AACf,MAAG,EAAA,CAAA,MAAA,CAAO,EAAK,GAAA,CAAA,EAAG,CAAC,CAAA;AACnB,MAAG,EAAA,CAAA,MAAA,CAAO,EAAK,GAAA,CAAA,EAAG,CAAC,CAAA;AACnB,MAAA,EAAA,CAAG,SAAU,EAAA;AACb,MAAA,EAAA,CAAG,IAAK,EAAA;AAER,MAAA,EAAA,CAAG,SAAU,EAAA;AACb,MAAG,EAAA,CAAA,MAAA,CAAO,EAAI,EAAA,MAAA,GAAS,CAAC,CAAA;AACxB,MAAA,EAAA,CAAG,MAAO,CAAA,EAAA,GAAK,CAAG,EAAA,MAAA,GAAS,CAAC,CAAA;AAC5B,MAAA,EAAA,CAAG,MAAO,CAAA,EAAA,GAAK,CAAG,EAAA,MAAA,GAAS,CAAC,CAAA;AAC5B,MAAA,EAAA,CAAG,SAAU,EAAA;AACb,MAAA,EAAA,CAAG,IAAK,EAAA;AAGR,MAAA,IAAI,GAAO,IAAA,EAAA,IAAM,CAAK,IAAA,CAAC,QAAU,EAAA;AAC/B,QAAA,EAAA,CAAG,IAAK,EAAA;AACR,QAAA,EAAA,CAAG,WAAc,GAAA,uBAAA;AACjB,QAAA,EAAA,CAAG,SAAY,GAAA,CAAA;AACf,QAAA,EAAA,CAAG,WAAY,CAAA,CAAC,CAAG,EAAA,CAAC,CAAC,CAAA;AACrB,QAAA,EAAA,CAAG,SAAU,EAAA;AACb,QAAG,EAAA,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AACf,QAAG,EAAA,CAAA,MAAA,CAAO,IAAI,MAAM,CAAA;AACpB,QAAA,EAAA,CAAG,MAAO,EAAA;AACV,QAAA,EAAA,CAAG,OAAQ,EAAA;AACX,QAAA,EAAA,CAAG,SAAY,GAAA,SAAA;AACf,QAAA,EAAA,CAAG,SAAU,EAAA;AACb,QAAA,EAAA,CAAG,IAAI,EAAI,EAAA,MAAA,EAAQ,KAAK,CAAG,EAAA,IAAA,CAAK,KAAK,CAAC,CAAA;AACtC,QAAA,EAAA,CAAG,IAAK,EAAA;AAER,QAAM,MAAA,EAAA,GAAK,IAAI,EAAE,CAAA;AACjB,QAAQ,OAAA,CAAA,KAAA,GAAQ,GAAG,IAAK,CAAA,EAAE,CAAC,CAAI,CAAA,EAAA,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AACxC,QAAA,QAAA,CAAS,QAAQ,EAAE,IAAA,EAAM,CAAG,EAAA,EAAA,GAAK,EAAE,CAAK,EAAA,CAAA,EAAA;AACxC,QAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAChB,QAAA,qBAAA,CAAsB,MAAM;AAC1B,UAAA,IAAI,CAAC,UAAA,IAAc,CAAC,YAAA,CAAa,KAAO,EAAA;AACxC,UAAM,MAAA,EAAA,GAAK,WAAW,qBAAsB,EAAA;AAC5C,UAAM,MAAA,EAAA,GAAK,YAAa,CAAA,KAAA,CAAM,qBAAsB,EAAA;AACpD,UAAI,IAAA,EAAA,CAAG,KAAQ,GAAA,EAAA,CAAG,KAAQ,GAAA,CAAA;AACxB,YAAS,QAAA,CAAA,KAAA,GAAQ,EAAE,IAAM,EAAA,CAAA,EAAG,KAAK,EAAG,CAAA,KAAA,GAAQ,EAAE,CAAK,EAAA,CAAA,EAAA;AAAA,SACtD,CAAA;AAAA,OACI,MAAA;AACL,QAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA;AAAA;AAIlB,MAAA,MAAM,EAAK,GAAA,EAAA;AACX,MAAA,MAAM,KAAK,EAAG,CAAA,oBAAA,CAAqB,CAAG,EAAA,CAAA,EAAG,IAAI,CAAC,CAAA;AAC9C,MAAG,EAAA,CAAA,YAAA,CAAa,GAAG,SAAS,CAAA;AAC5B,MAAG,EAAA,CAAA,YAAA,CAAa,GAAG,kBAAkB,CAAA;AACrC,MAAA,EAAA,CAAG,SAAY,GAAA,EAAA;AACf,MAAA,EAAA,CAAG,QAAS,CAAA,CAAA,EAAG,CAAG,EAAA,EAAA,EAAI,CAAC,CAAA;AACvB,MAAA,MAAM,KAAK,EAAG,CAAA,oBAAA,CAAqB,IAAI,EAAI,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;AAClD,MAAG,EAAA,CAAA,YAAA,CAAa,GAAG,kBAAkB,CAAA;AACrC,MAAG,EAAA,CAAA,YAAA,CAAa,GAAG,SAAS,CAAA;AAC5B,MAAA,EAAA,CAAG,SAAY,GAAA,EAAA;AACf,MAAA,EAAA,CAAG,QAAS,CAAA,CAAA,GAAI,EAAI,EAAA,CAAA,EAAG,IAAI,CAAC,CAAA;AAG5B,MAAM,MAAA,EAAA,GAAK,IAAI,EAAE,CAAA;AACjB,MAAA,MAAM,EAAK,GAAA,IAAI,IAAK,CAAA,EAAA,GAAK,GAAI,CAAA;AAC7B,MAAA,WAAA,CAAY,QAAQ,CAAG,EAAA,GAAA,CAAI,GAAG,QAAS,EAAC,CAAC,CAA6B,0BAAA,EAAA,GAAA;AAAA,QACpE,GAAG,UAAW;AAAA,OACf,CAA6B,0BAAA,EAAA,GAAA,CAAI,EAAG,CAAA,UAAA,EAAY,CAAC,CAAA,CAAA;AAClD,MAAa,YAAA,CAAA,KAAA,GAAQ,KAAK,EAAE,CAAA;AAG5B,MAAA,aAAA,CAAc,CAAC,CAAA;AAAA;AAnKR,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAuKT,IAAA,SAAS,cAAc,CAAY,EAAA;AACjC,MAAA,IAAI,CAAC,CAAA,EAAQ,CAAA,GAAA,GAAA,CAA0B,KAAQ,GAAA,GAAA;AAC/C,MAAI,IAAA,CAAC,YAAY,KAAO,EAAA;AACxB,MAAA,WAAA,CAAY,MAAM,SAAY,GAAA,EAAA;AAC9B,MAAA,IAAI,CAAC,UAAY,EAAA;AAEjB,MAAM,MAAA,MAAA,GAAS,UAAU,UAAU,CAAA;AACnC,MAAA,MAAM,OAAO,MAAS,GAAA,YAAA;AACtB,MAAM,MAAA,EAAA,GAAK,IAAI,CAAG,EAAA,CAAA;AAClB,MAAM,MAAA,EAAA,GAAK,GAAI,CAAA,CAAA,GAAI,EAAE,CAAA;AAErB,MAAI,IAAA,IAAA,GAAO,EAAM,IAAA,MAAA,GAAS,EAAI,EAAA;AAE9B,MAAA,MAAM,KAAK,GAAI,CAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,EAAE,CAAC,CAAA;AACnC,MAAA,MAAM,KAAK,GAAI,CAAA,IAAA,CAAK,GAAI,CAAA,IAAA,EAAM,EAAE,CAAC,CAAA;AACjC,MAAI,IAAA,EAAA,GAAK,KAAK,GAAK,EAAA;AAEnB,MAAM,MAAA,GAAA,GAAM,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA;AACxC,MAAA,GAAA,CAAI,SAAY,GAAA,SAAA;AAChB,MAAI,GAAA,CAAA,KAAA,CAAM,IAAO,GAAA,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA;AACtB,MAAA,GAAA,CAAI,KAAM,CAAA,KAAA,GAAQ,CAAG,EAAA,EAAA,GAAK,EAAE,CAAA,EAAA,CAAA;AAC5B,MAAY,WAAA,CAAA,KAAA,CAAM,YAAY,GAAG,CAAA;AAAA;AArB1B,IAAA,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAyBT,IAAA,SAAS,IAAO,GAAA;AAEd,MAAA,IAAI,CAAC,QAAY,IAAA,IAAA,CAAK,GAAI,CAAA,GAAG,IAAI,IAAM,EAAA;AACrC,QAAQ,IAAA,IAAA,GAAA;AACR,QAAO,GAAA,IAAA,IAAA;AAAA,OACT,MAAA,IAAW,CAAC,QAAA,EAAgB,GAAA,GAAA,CAAA;AAG5B,MAAI,IAAA,IAAA,CAAK,IAAI,GAAM,GAAA,IAAI,IAAI,GAAK,EAAA,GAAA,IAAA,CAAQ,OAAO,GAAO,IAAA,IAAA;AAAA,WAC3C,GAAA,GAAA,IAAA;AAEX,MAAA,WAAA,CAAY,KAAQ,GAAA,CAAA,EAAG,IAAK,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA,KAAA,CAAA;AAEtC,MAAK,IAAA,EAAA;AAEL,MAAA,KAAA,GAAQ,sBAAsB,IAAI,CAAA;AAAA;AAf3B,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAmBT,IAAA,SAAS,GAAG,CAAoC,EAAA;AAC9C,MAAI,IAAA,CAAC,KAAY,OAAA,CAAA;AACjB,MAAM,MAAA,CAAA,GAAI,IAAK,qBAAsB,EAAA;AACrC,MAAM,MAAA,OAAA,GAAU,aAAa,CAAI,GAAA,CAAA,CAAE,QAAQ,CAAC,CAAA,CAAE,UAAU,CAAE,CAAA,OAAA;AAC1D,MAAA,OAAO,UAAU,CAAE,CAAA,IAAA;AAAA;AAJZ,IAAA,MAAA,CAAA,EAAA,EAAA,IAAA,CAAA;AAOT,IAAA,SAAS,OAAO,CAA4B,EAAA;AAC1C,MAAA,CAAA,CAAE,cAAe,EAAA;AACjB,MAAW,QAAA,GAAA,IAAA;AACX,MAAM,GAAA,GAAA,CAAA;AACN,MAAA,MAAA,GAAS,GAAG,CAAC,CAAA;AACb,MAAS,MAAA,GAAA,IAAA;AACT,MAAM,GAAA,GAAA,MAAA;AACN,MAAA,GAAA,GAAM,YAAY,GAAI,EAAA;AACtB,MAAC,GAAA,CAA0B,MAAM,MAAS,GAAA,UAAA;AAAA;AARnC,IAAA,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAWT,IAAA,SAAS,OAAO,CAA4B,EAAA;AAC1C,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAI,IAAA,CAAA,CAAE,WAAW,GAAQ,IAAA,GAAA,IAAO,IAAK,QAAS,CAAA,CAAA,CAAE,MAAc,CAAI,EAAA;AAChE,UAAA,IAAI,CAAC,GAAK,EAAA;AACV,UAAM,MAAA,CAAA,GAAI,IAAK,qBAAsB,EAAA;AACrC,UAAM,EAAA,GAAA,CAAA,SAAA,IAAa,IAAI,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,OAAA,GAAU,CAAE,CAAA,OAAA,IAAW,CAAE,CAAA,IAAA;AAC7D,UAAM,GAAA,GAAA,IAAA;AAAA;AAER,QAAA;AAAA;AAEF,MAAA,CAAA,CAAE,cAAe,EAAA;AACjB,MAAM,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA;AACd,MAAA,IAAA,GAAO,UAAU,CAAI,GAAA,MAAA,CAAA;AACrB,MAAM,MAAA,GAAA,GAAM,YAAY,GAAI,EAAA;AAC5B,MAAA,MAAM,KAAK,GAAM,GAAA,GAAA;AACjB,MAAA,IAAI,EAAK,GAAA,CAAA,EAAW,GAAA,GAAA,CAAA,CAAA,GAAI,OAAO,EAAM,GAAA,EAAA;AACrC,MAAM,GAAA,GAAA,CAAA;AACN,MAAM,GAAA,GAAA,GAAA;AAAA;AAjBC,IAAA,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAoBT,IAAA,SAAS,IAAO,GAAA;AACd,MAAA,IAAI,CAAC,QAAU,EAAA;AACf,MAAW,QAAA,GAAA,KAAA;AACX,MAAC,GAA0B,CAAA,KAAA,CAAM,MAAS,GAAA,GAAA,GAAM,MAAS,GAAA,SAAA;AACzD,MAAM,GAAA,GAAA,CAAA;AACN,MAAA,IAAI,WAAW,IAAM,EAAA;AACnB,QAAA,MAAM,SAAY,GAAA,GAAA,CAAI,GAAK,CAAA,KAAA,GAAQ,MAAM,CAAC,CAAA;AAC1C,QAAA,IAAA,CAAK,QAAQ,SAAS,CAAA;AAAA;AACxB;AARO,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAaT,IAAS,SAAA,SAAA,CAAU,eAAqB,eAA0B,EAAA;AAChE,MAAa,UAAA,GAAA,aAAA;AACb,MAAA,YAAA,GAAe,eAAmB,IAAA,IAAA;AAClC,MAAA,SAAA,GAAY,UAAU,aAAa,CAAA;AACnC,MAAO,MAAA,EAAA;AACP,MAAM,MAAA,CAAA,GAAK,IAA0B,KAAQ,GAAA,GAAA;AAC7C,MAAA,IAAA,GAAO,CAAI,GAAA,CAAA,GAAA,CAAM,SAAa,GAAA,SAAA,IAAc,GAAO,GAAA,IAAA;AACnD,MAAA,cAAA,GAAiB,cAAc,OAAQ,EAAA;AAAA;AAPhC,IAAA,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAWT,IAAA,SAAS,gBAAgB,MAAgB,EAAA;AACvC,MAAiB,cAAA,GAAA,MAAA;AAAA;AADV,IAAA,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AAKT,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,IAAI,CAAC,cAAA,IAAkB,QAAY,IAAA,CAAC,GAAK,EAAA;AACzC,MAAM,MAAA,OAAA,GAAU,GAAI,CAAA,cAAA,GAAiB,GAAI,CAAA;AACzC,MAAM,MAAA,CAAA,GAAK,IAA0B,KAAQ,GAAA,GAAA;AAC7C,MAAA,MAAM,QAAQ,CAAI,GAAA,CAAA;AAClB,MAAA,IAAI,KAAK,GAAI,CAAA,OAAA,GAAU,KAAK,CAAA,GAAI,QAAQ,GAAK,EAAA;AAC3C,QAAA,IAAA,IAAA,CAAS,UAAU,KAAS,IAAA,IAAA;AAAA;AAC9B;AAPO,IAAA,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AAUT,IAAA,QAAA,CAAa,EAAE,SAAA,EAAW,eAAiB,EAAA,UAAA,EAAY,CAAA;AAGvD,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,GAAA,GAAM,SAAU,CAAA,KAAA;AAChB,MAAK,EAAA,GAAA,GAAA,CAAK,WAAW,IAAI,CAAA;AACzB,MAAA,GAAA,GAAM,OAAO,gBAAoB,IAAA,CAAA;AAGjC,MAAK,GAAA,CAAA,gBAAA,CAAiB,aAAa,MAAM,CAAA;AACzC,MAAA,GAAA,CAAK,iBAAiB,YAAc,EAAA,MAAA,EAAQ,EAAE,OAAA,EAAS,OAAO,CAAA;AAC9D,MAAO,MAAA,CAAA,gBAAA,CAAiB,aAAa,MAAM,CAAA;AAC3C,MAAA,MAAA,CAAO,iBAAiB,WAAa,EAAA,MAAA,EAAQ,EAAE,OAAA,EAAS,OAAO,CAAA;AAC/D,MAAO,MAAA,CAAA,gBAAA,CAAiB,WAAW,IAAI,CAAA;AACvC,MAAO,MAAA,CAAA,gBAAA,CAAiB,YAAY,IAAI,CAAA;AACxC,MAAK,GAAA,CAAA,gBAAA,CAAiB,cAAc,MAAM;AACxC,QAAM,GAAA,GAAA,IAAA;AACN,QAAC,GAAA,CAA0B,MAAM,MAAS,GAAA,MAAA;AAAA,OAC3C,CAAA;AACD,MAAK,GAAA,CAAA,gBAAA,CAAiB,cAAc,MAAM;AACxC,QAAM,GAAA,GAAA,KAAA;AACN,QAAK,EAAA,GAAA,CAAA,CAAA;AACL,QAAA,IAAI,CAAC,QAAA,EAAW,GAAA,CAA0B,MAAM,MAAS,GAAA,SAAA;AAAA,OAC1D,CAAA;AAGD,MAAK,GAAA,CAAA,gBAAA,CAAiB,OAAS,EAAA,CAAC,CAAM,KAAA;AACpC,QAAA,IAAI,KAAK,GAAI,CAAA,EAAA,CAAG,CAAe,CAAC,CAAA,GAAI,SAAS,CAAG,EAAA;AAChD,QAAM,MAAA,MAAA,GAAS,GAAG,CAAe,CAAA;AACjC,QAAM,MAAA,SAAA,GAAY,IAAI,MAAM,CAAA;AAC5B,QAAM,GAAA,GAAA,CAAA;AACN,QAAO,IAAA,GAAA,MAAA,GAAS,GAAK,CAAA,KAAA,GAAQ,GAAM,GAAA,CAAA;AACnC,QAAA,IAAA,CAAK,QAAQ,SAAS,CAAA;AAAA,OACvB,CAAA;AAGD,MAAO,MAAA,CAAA,gBAAA,CAAiB,UAAU,MAAM,CAAA;AAGxC,MAAA,QAAA,CAAS,MAAM;AACb,QAAa,UAAA,GAAA,QAAA,CAAS,cAAc,kBAAkB,CAAA;AAAA,OACvD,CAAA;AAGD,MAAA,IAAI,MAAM,SAAW,EAAA;AACnB,QAAU,SAAA,CAAA,KAAA,CAAM,SAAW,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,OACpC,MAAA;AACL,QAAY,SAAA,GAAA,IAAA,CAAK,KAAQ,GAAA,GAAA;AACzB,QAAO,MAAA,EAAA;AACP,QAAM,MAAA,CAAA,GAAI,IAAK,KAAQ,GAAA,GAAA;AACvB,QAAA,IAAA,GAAO,CAAI,GAAA,CAAA;AAAA;AAEb,MAAK,IAAA,EAAA;AAAA,KACN,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAI,IAAA,KAAA,uBAA4B,KAAK,CAAA;AACrC,MAAO,MAAA,CAAA,mBAAA,CAAoB,UAAU,MAAM,CAAA;AAC3C,MAAO,MAAA,CAAA,mBAAA,CAAoB,aAAa,MAAM,CAAA;AAC9C,MAAO,MAAA,CAAA,mBAAA,CAAoB,aAAa,MAAM,CAAA;AAC9C,MAAO,MAAA,CAAA,mBAAA,CAAoB,WAAW,IAAI,CAAA;AAC1C,MAAO,MAAA,CAAA,mBAAA,CAAoB,YAAY,IAAI,CAAA;AAAA,KAC5C,CAAA;;AAIC,MAAA,OAAAA,SAAA,EAAA,EAAAC,kBAeM,CAAA,KAAA,EAfN,UAeM,EAAA;AAAA,QAdJC,kBAAA,CAGM,OAHN,UAGM,EAAA;AAAA,UAFJA,mBAA6C,KAAA,EAAA;AAAA,YAAxC,KAAM,EAAA,UAAA;AAAA,YAAW,WAAQ,WAAW,CAAA;AAAA;UACzCA,kBAAA;AAAA,YAA+C,KAAA;AAAA,YAA/C,UAAA;AAAA,YAA+CC,eAAA,CAArB,aAAY,KAAA,CAAA;AAAA,YAAA;AAAA;AAAA;AAAA;QAGxCD,kBAAA;AAAA,UAA2C,KAAA;AAAA,UAAA;AAAA,mBAAlC,EAAA,aAAA;AAAA,YAAJ,GAAI,EAAA,WAAA;AAAA,YAAc,KAAM,EAAA;AAAA;;;;;QAE7BA,kBAAA;AAAA,UAMM,KAAA;AAAA,UAAA;AAAA,mBANG,EAAA,cAAA;AAAA,YAAJ,GAAI,EAAA,YAAA;AAAA,YAAe,KAAM,EAAA;AAAA;;YAC5BA,kBAAA;AAAA,cAAgE,QAAA;AAAA,cAAA;AAAA,gBAAxD,EAAG,EAAA,aAAA;AAAA,uBAAkB,EAAA,WAAA;AAAA,gBAAJ,GAAI,EAAA,SAAA;AAAA,gBAAY,KAAM,EAAA;AAAA;;;;;YAC/CA,kBAAA;AAAA,cAEM,KAAA;AAAA,cAAA;AAAA,gBAFD,KAAA,EAAKE,eAAA,CAAC,KAAA,EAAK,EAAA,IAAiB,EAAA,OAAA,CAAO,KAAA,EAAA,CAAA,CAAA;AAAA,gBAAK,KAAA,gBAAO,CAAA,QAAA,CAAQ,KAAA;AAAA;8BACvD,QAAO,KAAA,CAAA;AAAA,cAAA;AAAA;AAAA,aAAA;AAAA,YAEZF,kBAAA;AAAA,cAA6C,KAAA;AAAA,cAA7C,UAAA;AAAA,cAA6CC,eAAA,CAApB,YAAW,KAAA,CAAA;AAAA,cAAA;AAAA;AAAA;AAAA;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
- import type { ExtractPropTypes, PropType } from 'vue';
2
- import type PageHeader from './page-header.vue';
1
+ import type { ExtractPropTypes, PropType } from "vue";
2
+ import type PageHeader from "./page-header.vue";
3
3
  export declare const PageHeaderProps: {
4
4
  title: {
5
5
  type: StringConstructor;
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.mjs","sources":["../../../../../../../packages/components/page-header/src/page-header.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from 'vue';\nimport type PageHeader from './page-header.vue';\n\nexport const PageHeaderProps = {\n title: {\n type: String,\n default: '',\n },\n underline: {\n type: Boolean,\n default: true,\n },\n slotFlex: {\n type: String as PropType<'between' | 'start'>,\n default: 'start',\n },\n /**\n * pinia useSystemMenuStoreHook\n */\n action: Object,\n};\n\nexport type PageHeaderPropsType = ExtractPropTypes<typeof PageHeaderProps>;\nexport type PageHeaderInstance = InstanceType<typeof PageHeader>;\n"],"names":[],"mappings":"AAGO,MAAM,eAAkB,GAAA;AAAA,EAC7B,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AACV;;;;"}
1
+ {"version":3,"file":"page-header.mjs","sources":["../../../../../../../packages/components/page-header/src/page-header.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\nimport type PageHeader from \"./page-header.vue\";\n\nexport const PageHeaderProps = {\n title: {\n type: String,\n default: \"\",\n },\n underline: {\n type: Boolean,\n default: true,\n },\n slotFlex: {\n type: String as PropType<\"between\" | \"start\">,\n default: \"start\",\n },\n /**\n * pinia useSystemMenuStoreHook\n */\n action: Object,\n};\n\nexport type PageHeaderPropsType = ExtractPropTypes<typeof PageHeaderProps>;\nexport type PageHeaderInstance = InstanceType<typeof PageHeader>;\n"],"names":[],"mappings":"AAGO,MAAM,eAAkB,GAAA;AAAA,EAC7B,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AACV;;;;"}
@@ -247,13 +247,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
247
247
  player = new window.EasyPlayerPro(document.getElementById(id), {
248
248
  isLive: true,
249
249
  // 是否直播
250
- hasAudio: false,
250
+ hasAudio: true,
251
251
  // 是否解析音频
252
252
  bufferTime: 0,
253
253
  // 直播监控缓存时长设为0,减少内存堆积
254
254
  stretch: true,
255
255
  // 加视频拉伸
256
- isMute: true,
257
256
  MSE: false,
258
257
  WCS: false,
259
258
  WASM: true,
@@ -351,19 +350,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
351
350
  }
352
351
  __name(startPlayer, "startPlayer");
353
352
  function destroy(flag = true) {
354
- console.log("destroy");
355
353
  if (player) {
356
354
  eventHandlers.value.forEach((handler, eventName) => {
357
355
  player.off(eventName, handler);
358
356
  });
359
357
  eventHandlers.value.clear();
360
- try {
361
- player.destroy();
362
- } catch (e) {
363
- if (props.debug) {
364
- console.warn("EasyPlayerPro destroy \u5F02\u5E38:", e);
365
- }
366
- }
358
+ player.destroy();
367
359
  player = null;
368
360
  }
369
361
  if (flag) {