@vtx/player 1.4.10 → 1.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bd/PlayerManager.d.ts +89 -0
- package/lib/bd/PlayerManager.js +353 -0
- package/lib/bd/PlayerManager.js.map +1 -0
- package/lib/history-control-v2/index.js +1 -1
- package/lib/history-control-v2/index.js.map +1 -1
- package/lib/history-player/index.js +82 -17
- package/lib/history-player/index.js.map +1 -1
- package/lib/live-control-v2/index.d.ts +2 -0
- package/lib/live-control-v2/index.js +1 -1
- package/lib/live-control-v2/index.js.map +1 -1
- package/lib/live-player/index.d.ts +4 -0
- package/lib/live-player/index.js +4 -0
- package/lib/live-player/index.js.map +1 -1
- package/lib/player/index.d.ts +6 -2
- package/lib/player/index.js +82 -47
- package/lib/player/index.js.map +1 -1
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +43 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export default PlayerManager;
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
declare class PlayerManager {
|
|
6
|
+
constructor(opt: any);
|
|
7
|
+
el: any;
|
|
8
|
+
url: any;
|
|
9
|
+
realPlayer: any;
|
|
10
|
+
recordPlayer: any;
|
|
11
|
+
player: any;
|
|
12
|
+
type: any;
|
|
13
|
+
playNum: number;
|
|
14
|
+
playIndex: number;
|
|
15
|
+
currentChannelId: string;
|
|
16
|
+
recordList: any[];
|
|
17
|
+
isShow: boolean;
|
|
18
|
+
winDom: any;
|
|
19
|
+
picConfig: {
|
|
20
|
+
device: any[];
|
|
21
|
+
channel: any[];
|
|
22
|
+
};
|
|
23
|
+
dp: any;
|
|
24
|
+
initPlayer(): void;
|
|
25
|
+
/**
|
|
26
|
+
* 播放实时预览视频
|
|
27
|
+
* @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2
|
|
28
|
+
* @param opt.selectIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放
|
|
29
|
+
*/
|
|
30
|
+
playRealVideo(): void;
|
|
31
|
+
/**
|
|
32
|
+
* 播放录像回放
|
|
33
|
+
* @param opt.channelList {Array<Object>} 通道集合 必填
|
|
34
|
+
* @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒
|
|
35
|
+
* @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒
|
|
36
|
+
* @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像
|
|
37
|
+
* @param opt.streamType {String|Number} 码流类型 可选
|
|
38
|
+
* @param opt.recordType {String|Number} 录像类型 可选
|
|
39
|
+
*/
|
|
40
|
+
playRecordVideo(opt: any): void;
|
|
41
|
+
setVideoFrame(viewSize: any): void;
|
|
42
|
+
stopVideo(index: any): void;
|
|
43
|
+
/**
|
|
44
|
+
* 录像暂停
|
|
45
|
+
* 只有正在播放的录像调用才有效
|
|
46
|
+
*/
|
|
47
|
+
pause(): void;
|
|
48
|
+
/**
|
|
49
|
+
* 录像暂停后播放
|
|
50
|
+
* 只有暂停后的录像调用才有效
|
|
51
|
+
*/
|
|
52
|
+
play(): void;
|
|
53
|
+
/**
|
|
54
|
+
* 倍速播放
|
|
55
|
+
* @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率
|
|
56
|
+
*/
|
|
57
|
+
playSpeed(speed: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* 关闭播放器
|
|
60
|
+
* @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器
|
|
61
|
+
*/
|
|
62
|
+
close(index: number): void;
|
|
63
|
+
resize(): void;
|
|
64
|
+
/**
|
|
65
|
+
* 设置全屏
|
|
66
|
+
*/
|
|
67
|
+
setFullScreen(): void;
|
|
68
|
+
/**
|
|
69
|
+
* 设置窗口自适应还是拉伸
|
|
70
|
+
* @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸
|
|
71
|
+
*/
|
|
72
|
+
setPlayerAdapter(playerAdapter: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数
|
|
75
|
+
* @param {number} number
|
|
76
|
+
*/
|
|
77
|
+
setPlayerNum(number: number): void;
|
|
78
|
+
/**
|
|
79
|
+
* 设置选中的播放器的索引
|
|
80
|
+
* @param {number} index
|
|
81
|
+
*/
|
|
82
|
+
setSelectIndex(index: number): void;
|
|
83
|
+
/**
|
|
84
|
+
* 录像跳转播放
|
|
85
|
+
* @param {number} time HH:mm:ss格式
|
|
86
|
+
*/
|
|
87
|
+
jumpPlayByTime(time: number): void;
|
|
88
|
+
__receiveMessageFromWSPlayer(method: any, data: any): void;
|
|
89
|
+
}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
+
|
|
10
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
11
|
+
|
|
12
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
var PlayerManager = /*#__PURE__*/function () {
|
|
18
|
+
function PlayerManager(opt) {
|
|
19
|
+
_classCallCheck(this, PlayerManager);
|
|
20
|
+
|
|
21
|
+
// 播放器所在的容器ID
|
|
22
|
+
this.el = opt.el;
|
|
23
|
+
this.url = opt.url; // 实时预览播放器
|
|
24
|
+
|
|
25
|
+
this.realPlayer = null; // 录像回放播放器
|
|
26
|
+
|
|
27
|
+
this.recordPlayer = null;
|
|
28
|
+
this.player = null; // 实时预览还是录像回放播放器
|
|
29
|
+
|
|
30
|
+
this.type = opt.type; // 窗口的数量
|
|
31
|
+
|
|
32
|
+
this.playNum = 1; // 当前选中的窗口的索引
|
|
33
|
+
|
|
34
|
+
this.playIndex = 0; // 当前选中窗口正在播放视频的通道
|
|
35
|
+
|
|
36
|
+
this.currentChannelId = ''; // 索引对应窗口,保存当日录像信息
|
|
37
|
+
|
|
38
|
+
this.recordList = [];
|
|
39
|
+
this.isShow = false; // 视频是否在播放
|
|
40
|
+
|
|
41
|
+
this.winDom = $('#' + opt.el);
|
|
42
|
+
this.winDom.empty();
|
|
43
|
+
this.winDom.css('width', '100%').css('height', '100%').addClass('ttx-video-h5');
|
|
44
|
+
this.picConfig = {
|
|
45
|
+
device: [],
|
|
46
|
+
channel: []
|
|
47
|
+
};
|
|
48
|
+
this.dp = null; // this.initFlash = this.initFlash.bind(this);
|
|
49
|
+
// this.initPlayer();
|
|
50
|
+
// this.playRealVideo();
|
|
51
|
+
} //初始化视频插件
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
_createClass(PlayerManager, [{
|
|
55
|
+
key: "initPlayer",
|
|
56
|
+
value: function initPlayer() {// if (this.isInitFinished) {
|
|
57
|
+
// return;
|
|
58
|
+
// }
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 播放实时预览视频
|
|
62
|
+
* @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2
|
|
63
|
+
* @param opt.selectIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
}, {
|
|
67
|
+
key: "playRealVideo",
|
|
68
|
+
value: function playRealVideo() {
|
|
69
|
+
//先停止视频播放
|
|
70
|
+
// swfobject.getObjectById(this.el).stopVideo(opt.selectIndex);
|
|
71
|
+
//播放视频
|
|
72
|
+
//type 当实时视频时,传1,监听时,传2,双向对讲时传3 广播功能 4
|
|
73
|
+
var index = this.playIndex;
|
|
74
|
+
var url = this.url;
|
|
75
|
+
var type = this.type;
|
|
76
|
+
var itemId = this.el;
|
|
77
|
+
|
|
78
|
+
if (this.dp) {
|
|
79
|
+
this.dp.ttxplayer.stop();
|
|
80
|
+
this.dp.ttxplayer.setPlayTime(0);
|
|
81
|
+
this.dp.destroy();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
var bufferTime = 2000;
|
|
85
|
+
var bufferTimeMax = 6000; // bufferTime = bufferTime ? bufferTime : 200;
|
|
86
|
+
// bufferTimeMax = bufferTimeMax ? bufferTimeMax : 2000;
|
|
87
|
+
|
|
88
|
+
var videoOptions = {
|
|
89
|
+
url: url,
|
|
90
|
+
type: 'ttxplayer',
|
|
91
|
+
customType: {
|
|
92
|
+
ttxplayer: function ttxplayer(video, player) {
|
|
93
|
+
player.ttxplayer = new Cmsv6Player(null, itemId, {
|
|
94
|
+
showScreenshot: true,
|
|
95
|
+
lang: 'zh-cn'
|
|
96
|
+
}); // player.ttxplayer.ft.style = "color:blue;position:relative;background-color:black;";
|
|
97
|
+
|
|
98
|
+
player.ttxplayer.liveText = ''; //如果不是直播链接则,live传false
|
|
99
|
+
|
|
100
|
+
var v6isLive = false; // if (url.indexOf('/rtmp/') === -1 && that.options.live) {
|
|
101
|
+
// v6isLive = false;
|
|
102
|
+
// }
|
|
103
|
+
|
|
104
|
+
player.ttxplayer.play(url, {
|
|
105
|
+
isLive: v6isLive,
|
|
106
|
+
hasVideo: true,
|
|
107
|
+
hasAudio: true,
|
|
108
|
+
enableAudio: false,
|
|
109
|
+
minBufferTime: bufferTime,
|
|
110
|
+
maxBufferTime: bufferTimeMax,
|
|
111
|
+
showLastScreen: false
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}; //*** */
|
|
116
|
+
|
|
117
|
+
this.dp = new DPlayer({
|
|
118
|
+
container: document.getElementById(itemId),
|
|
119
|
+
live: false,
|
|
120
|
+
screenshot: true,
|
|
121
|
+
autoplay: true,
|
|
122
|
+
mutex: false,
|
|
123
|
+
loop: false,
|
|
124
|
+
lang: 'zh-cn',
|
|
125
|
+
video: videoOptions
|
|
126
|
+
}); // this.bindDpEvent(dp, type);
|
|
127
|
+
|
|
128
|
+
this.setVideoFrame('full');
|
|
129
|
+
var dp = this.dp; // var bcolor = '000';
|
|
130
|
+
|
|
131
|
+
if (dp && dp.container.id) {
|
|
132
|
+
$('#' + dp.container.id).find('.ttxplayer-controller').css('display', 'none');
|
|
133
|
+
$('#' + dp.container.id).find('.dplayer-controller').css('display', 'none');
|
|
134
|
+
} // $('#' + dp.container.id)
|
|
135
|
+
// .find('.dplayer-controller')
|
|
136
|
+
// .css('background', '#' + bcolor);
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 播放录像回放
|
|
141
|
+
* @param opt.channelList {Array<Object>} 通道集合 必填
|
|
142
|
+
* @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒
|
|
143
|
+
* @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒
|
|
144
|
+
* @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像
|
|
145
|
+
* @param opt.streamType {String|Number} 码流类型 可选
|
|
146
|
+
* @param opt.recordType {String|Number} 录像类型 可选
|
|
147
|
+
*/
|
|
148
|
+
// channelList: [{
|
|
149
|
+
// id: channelCode, // {String} 通道编码 -- 用于回放,必填
|
|
150
|
+
// }]
|
|
151
|
+
|
|
152
|
+
}, {
|
|
153
|
+
key: "playRecordVideo",
|
|
154
|
+
value: function playRecordVideo(opt) {
|
|
155
|
+
this.recordPlayer && this.recordPlayer.getRecordList(opt);
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
key: "setVideoFrame",
|
|
159
|
+
value: function setVideoFrame(viewSize) {
|
|
160
|
+
this.winDom.find('video').each(function (i, obj) {
|
|
161
|
+
var _obj = $(obj);
|
|
162
|
+
|
|
163
|
+
_obj.css('width', '100%').css('height', '100%');
|
|
164
|
+
|
|
165
|
+
var width = _obj.width();
|
|
166
|
+
|
|
167
|
+
var height = _obj.height();
|
|
168
|
+
|
|
169
|
+
if (viewSize === '4:3') {
|
|
170
|
+
if (width / height > 4 / 3) {
|
|
171
|
+
_obj.css('width', height * 4 / 3);
|
|
172
|
+
} else {
|
|
173
|
+
_obj.css('height', width * 3 / 4);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (viewSize === '16:9') {
|
|
178
|
+
if (width / height > 16 / 9) {
|
|
179
|
+
_obj.css('width', height * 16 / 9);
|
|
180
|
+
} else {
|
|
181
|
+
_obj.css('height', width * 9 / 16);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}, {
|
|
187
|
+
key: "stopVideo",
|
|
188
|
+
value: function stopVideo(index) {
|
|
189
|
+
var that = this;
|
|
190
|
+
|
|
191
|
+
if (index >= this.playNum) {
|
|
192
|
+
return;
|
|
193
|
+
} // this.reSetVideo(index)
|
|
194
|
+
// var video = this.playVideos[index];
|
|
195
|
+
// if (video) {
|
|
196
|
+
// if (that.options.isTtx) {
|
|
197
|
+
// video.ttxplayer.stop();
|
|
198
|
+
// video.ttxplayer.setPlayTime(0);
|
|
199
|
+
// } else {
|
|
200
|
+
// video.pause();
|
|
201
|
+
// video.video.currentTime = 0;
|
|
202
|
+
// }
|
|
203
|
+
// try {
|
|
204
|
+
// var url = video.options.video.url;
|
|
205
|
+
// var devidno = url.split('DevIDNO=')[1].split('&')[0];
|
|
206
|
+
// that.timeMap808[devidno] = new Date().getTime();
|
|
207
|
+
// } catch (e) {}
|
|
208
|
+
// }
|
|
209
|
+
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* 录像暂停
|
|
213
|
+
* 只有正在播放的录像调用才有效
|
|
214
|
+
*/
|
|
215
|
+
|
|
216
|
+
}, {
|
|
217
|
+
key: "pause",
|
|
218
|
+
value: function pause() {
|
|
219
|
+
this.player && this.player.toggleVideo(0);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 录像暂停后播放
|
|
223
|
+
* 只有暂停后的录像调用才有效
|
|
224
|
+
*/
|
|
225
|
+
|
|
226
|
+
}, {
|
|
227
|
+
key: "play",
|
|
228
|
+
value: function play() {
|
|
229
|
+
this.player && this.player.toggleVideo(0);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* 倍速播放
|
|
233
|
+
* @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率
|
|
234
|
+
*/
|
|
235
|
+
|
|
236
|
+
}, {
|
|
237
|
+
key: "playSpeed",
|
|
238
|
+
value: function playSpeed(speed) {
|
|
239
|
+
this.recordPlayer && this.recordPlayer.playSpeed(speed);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* 关闭播放器
|
|
243
|
+
* @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器
|
|
244
|
+
*/
|
|
245
|
+
|
|
246
|
+
}, {
|
|
247
|
+
key: "close",
|
|
248
|
+
value: function close(index) {
|
|
249
|
+
this.player && this.player.reSetVideo(index);
|
|
250
|
+
}
|
|
251
|
+
}, {
|
|
252
|
+
key: "resize",
|
|
253
|
+
value: function resize() {
|
|
254
|
+
this.player && this.player.setSize();
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* 设置全屏
|
|
258
|
+
*/
|
|
259
|
+
|
|
260
|
+
}, {
|
|
261
|
+
key: "setFullScreen",
|
|
262
|
+
value: function setFullScreen() {
|
|
263
|
+
this.player.fullScreen();
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* 设置窗口自适应还是拉伸
|
|
267
|
+
* @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸
|
|
268
|
+
*/
|
|
269
|
+
|
|
270
|
+
}, {
|
|
271
|
+
key: "setPlayerAdapter",
|
|
272
|
+
value: function setPlayerAdapter(playerAdapter) {
|
|
273
|
+
this.player.setPlayerAdapter(playerAdapter);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数
|
|
277
|
+
* @param {number} number
|
|
278
|
+
*/
|
|
279
|
+
|
|
280
|
+
}, {
|
|
281
|
+
key: "setPlayerNum",
|
|
282
|
+
value: function setPlayerNum(number) {
|
|
283
|
+
this.player.setPlayerNum(number);
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* 设置选中的播放器的索引
|
|
287
|
+
* @param {number} index
|
|
288
|
+
*/
|
|
289
|
+
|
|
290
|
+
}, {
|
|
291
|
+
key: "setSelectIndex",
|
|
292
|
+
value: function setSelectIndex(index) {
|
|
293
|
+
this.player.setSelectIndex(index);
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* 录像跳转播放
|
|
297
|
+
* @param {number} time HH:mm:ss格式
|
|
298
|
+
*/
|
|
299
|
+
|
|
300
|
+
}, {
|
|
301
|
+
key: "jumpPlayByTime",
|
|
302
|
+
value: function jumpPlayByTime(time) {
|
|
303
|
+
this.player.seekVideo(0, time);
|
|
304
|
+
} // ----------------- 播放器事件 ------------------------
|
|
305
|
+
|
|
306
|
+
}, {
|
|
307
|
+
key: "__receiveMessageFromWSPlayer",
|
|
308
|
+
value: function __receiveMessageFromWSPlayer(method, data) {
|
|
309
|
+
switch (method) {
|
|
310
|
+
// ------------- 公共事件 ---------------------
|
|
311
|
+
case 'selectWindowChanged':
|
|
312
|
+
// 选中的窗口发生改变
|
|
313
|
+
this.currentChannelId = data.channelId;
|
|
314
|
+
this.playIndex = data.playIndex;
|
|
315
|
+
break;
|
|
316
|
+
|
|
317
|
+
case 'windowNumChanged':
|
|
318
|
+
// 播放器显示的路数发生改变
|
|
319
|
+
this.playNum = data;
|
|
320
|
+
break;
|
|
321
|
+
|
|
322
|
+
case 'closeVideo':
|
|
323
|
+
// 视频关闭
|
|
324
|
+
// 点击关闭按钮引发的视频关闭进行提示
|
|
325
|
+
// 切换视频引发的视频关闭不进行提示
|
|
326
|
+
if (!data.changeVideoFlag) {
|
|
327
|
+
console.log("\u7A97\u53E3".concat(data.selectIndex, "\u7684\u89C6\u9891\u5DF2\u5173\u95ED"));
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
break;
|
|
331
|
+
|
|
332
|
+
case 'statusChanged':
|
|
333
|
+
// 视频状态发生改变
|
|
334
|
+
break;
|
|
335
|
+
|
|
336
|
+
case 'errorInfo':
|
|
337
|
+
// 错误信息提示
|
|
338
|
+
// data = {
|
|
339
|
+
// errorCode: xxx,
|
|
340
|
+
// errorMsg: "",
|
|
341
|
+
// channelList: [],
|
|
342
|
+
// }
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}]);
|
|
347
|
+
|
|
348
|
+
return PlayerManager;
|
|
349
|
+
}();
|
|
350
|
+
|
|
351
|
+
var _default = PlayerManager;
|
|
352
|
+
exports["default"] = _default;
|
|
353
|
+
//# sourceMappingURL=PlayerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerManager.js","names":["PlayerManager","opt","el","url","realPlayer","recordPlayer","player","type","playNum","playIndex","currentChannelId","recordList","isShow","winDom","$","empty","css","addClass","picConfig","device","channel","dp","index","itemId","ttxplayer","stop","setPlayTime","destroy","bufferTime","bufferTimeMax","videoOptions","customType","video","Cmsv6Player","showScreenshot","lang","liveText","v6isLive","play","isLive","hasVideo","hasAudio","enableAudio","minBufferTime","maxBufferTime","showLastScreen","DPlayer","container","document","getElementById","live","screenshot","autoplay","mutex","loop","setVideoFrame","id","find","getRecordList","viewSize","each","i","obj","_obj","width","height","that","toggleVideo","speed","playSpeed","reSetVideo","setSize","fullScreen","playerAdapter","setPlayerAdapter","number","setPlayerNum","setSelectIndex","time","seekVideo","method","data","channelId","changeVideoFlag","console","log","selectIndex"],"sources":["bd/PlayerManager.js"],"sourcesContent":["/**\n *\n */\nclass PlayerManager {\n constructor(opt) {\n // 播放器所在的容器ID\n this.el = opt.el;\n this.url = opt.url;\n // 实时预览播放器\n this.realPlayer = null;\n // 录像回放播放器\n this.recordPlayer = null;\n this.player = null;\n // 实时预览还是录像回放播放器\n this.type = opt.type;\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.recordList = [];\n this.isShow = false; // 视频是否在播放\n this.winDom = $('#' + opt.el);\n this.winDom.empty();\n this.winDom.css('width', '100%').css('height', '100%').addClass('ttx-video-h5');\n this.picConfig = {\n device: [],\n channel: [],\n };\n this.dp = null;\n // this.initFlash = this.initFlash.bind(this);\n // this.initPlayer();\n // this.playRealVideo();\n }\n //初始化视频插件\n initPlayer() {\n // if (this.isInitFinished) {\n // return;\n // }\n }\n /**\n * 播放实时预览视频\n * @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2\n * @param opt.selectIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放\n */\n playRealVideo() {\n //先停止视频播放\n // swfobject.getObjectById(this.el).stopVideo(opt.selectIndex);\n //播放视频\n //type 当实时视频时,传1,监听时,传2,双向对讲时传3 广播功能 4\n const index = this.playIndex;\n const url = this.url;\n const type = this.type;\n var itemId = this.el;\n if (this.dp) {\n this.dp.ttxplayer.stop();\n this.dp.ttxplayer.setPlayTime(0);\n this.dp.destroy();\n }\n var bufferTime = 2000;\n var bufferTimeMax = 6000;\n // bufferTime = bufferTime ? bufferTime : 200;\n // bufferTimeMax = bufferTimeMax ? bufferTimeMax : 2000;\n const videoOptions = {\n url: url,\n type: 'ttxplayer',\n customType: {\n ttxplayer: function (video, player) {\n player.ttxplayer = new Cmsv6Player(null, itemId, {\n showScreenshot: true,\n lang: 'zh-cn',\n });\n // player.ttxplayer.ft.style = \"color:blue;position:relative;background-color:black;\";\n player.ttxplayer.liveText = '';\n //如果不是直播链接则,live传false\n var v6isLive = false;\n // if (url.indexOf('/rtmp/') === -1 && that.options.live) {\n // v6isLive = false;\n // }\n player.ttxplayer.play(url, {\n isLive: v6isLive,\n hasVideo: true,\n hasAudio: true,\n enableAudio: false,\n minBufferTime: bufferTime,\n maxBufferTime: bufferTimeMax,\n showLastScreen: false,\n });\n },\n },\n };\n //*** */\n this.dp = new DPlayer({\n container: document.getElementById(itemId),\n live: false,\n screenshot: true,\n autoplay: true,\n mutex: false,\n loop: false,\n lang: 'zh-cn',\n video: videoOptions,\n });\n // this.bindDpEvent(dp, type);\n this.setVideoFrame('full');\n const dp = this.dp;\n // var bcolor = '000';\n if (dp && dp.container.id) {\n $('#' + dp.container.id)\n .find('.ttxplayer-controller')\n .css('display', 'none');\n $('#' + dp.container.id)\n .find('.dplayer-controller')\n .css('display', 'none');\n }\n // $('#' + dp.container.id)\n // .find('.dplayer-controller')\n // .css('background', '#' + bcolor);\n }\n /**\n * 播放录像回放\n * @param opt.channelList {Array<Object>} 通道集合 必填\n * @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒\n * @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒\n * @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像\n * @param opt.streamType {String|Number} 码流类型 可选\n * @param opt.recordType {String|Number} 录像类型 可选\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于回放,必填\n // }]\n playRecordVideo(opt) {\n this.recordPlayer && this.recordPlayer.getRecordList(opt);\n }\n setVideoFrame(viewSize) {\n this.winDom.find('video').each(function (i, obj) {\n var _obj = $(obj);\n _obj.css('width', '100%').css('height', '100%');\n var width = _obj.width();\n var height = _obj.height();\n if (viewSize === '4:3') {\n if (width / height > 4 / 3) {\n _obj.css('width', (height * 4) / 3);\n }\n else {\n _obj.css('height', (width * 3) / 4);\n }\n }\n if (viewSize === '16:9') {\n if (width / height > 16 / 9) {\n _obj.css('width', (height * 16) / 9);\n }\n else {\n _obj.css('height', (width * 9) / 16);\n }\n }\n });\n }\n stopVideo(index) {\n var that = this;\n if (index >= this.playNum) {\n return;\n }\n // this.reSetVideo(index)\n // var video = this.playVideos[index];\n // if (video) {\n // if (that.options.isTtx) {\n // video.ttxplayer.stop();\n // video.ttxplayer.setPlayTime(0);\n // } else {\n // video.pause();\n // video.video.currentTime = 0;\n // }\n // try {\n // var url = video.options.video.url;\n // var devidno = url.split('DevIDNO=')[1].split('&')[0];\n // that.timeMap808[devidno] = new Date().getTime();\n // } catch (e) {}\n // }\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.player && this.player.toggleVideo(0);\n }\n /**\n * 录像暂停后播放\n * 只有暂停后的录像调用才有效\n */\n play() {\n this.player && this.player.toggleVideo(0);\n }\n /**\n * 倍速播放\n * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率\n */\n playSpeed(speed) {\n this.recordPlayer && this.recordPlayer.playSpeed(speed);\n }\n /**\n * 关闭播放器\n * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器\n */\n close(index) {\n this.player && this.player.reSetVideo(index);\n }\n resize() {\n this.player && this.player.setSize();\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.fullScreen();\n }\n /**\n * 设置窗口自适应还是拉伸\n * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸\n */\n setPlayerAdapter(playerAdapter) {\n this.player.setPlayerAdapter(playerAdapter);\n }\n /**\n * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数\n * @param {number} number\n */\n setPlayerNum(number) {\n this.player.setPlayerNum(number);\n }\n /**\n * 设置选中的播放器的索引\n * @param {number} index\n */\n setSelectIndex(index) {\n this.player.setSelectIndex(index);\n }\n /**\n * 录像跳转播放\n * @param {number} time HH:mm:ss格式\n */\n jumpPlayByTime(time) {\n this.player.seekVideo(0, time);\n }\n // ----------------- 播放器事件 ------------------------\n __receiveMessageFromWSPlayer(method, data) {\n switch (method) {\n // ------------- 公共事件 ---------------------\n case 'selectWindowChanged': // 选中的窗口发生改变\n this.currentChannelId = data.channelId;\n this.playIndex = data.playIndex;\n break;\n case 'windowNumChanged': // 播放器显示的路数发生改变\n this.playNum = data;\n break;\n case 'closeVideo': // 视频关闭\n // 点击关闭按钮引发的视频关闭进行提示\n // 切换视频引发的视频关闭不进行提示\n if (!data.changeVideoFlag) {\n console.log(`窗口${data.selectIndex}的视频已关闭`);\n }\n break;\n case 'statusChanged': // 视频状态发生改变\n break;\n case 'errorInfo': // 错误信息提示\n // data = {\n // errorCode: xxx,\n // errorMsg: \"\",\n // channelList: [],\n // }\n break;\n }\n }\n}\nexport default PlayerManager;\n"],"mappings":"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"}
|
|
@@ -298,7 +298,7 @@ var HistoryControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
298
298
|
scale: state.scale,
|
|
299
299
|
loading: true,
|
|
300
300
|
onScreenshot: function onScreenshot(url) {
|
|
301
|
-
_onScreenshot(url, i);
|
|
301
|
+
_onScreenshot && _onScreenshot(url, i);
|
|
302
302
|
}
|
|
303
303
|
}, i);
|
|
304
304
|
items.push(element);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","HistoryControlV2","forwardRef","props","ref","width","height","onExpandChange","onVideoClose","onVideoCloseAll","onScreenshot","onPlayingChannelChange","onTimeChange","useSetState","expand","grid","DEFAULT_GRID","scale","state","setState","useState","DEFAULT_CHANNELS","channels","setChannels","loading","setLoading","DEFAULT_ACTIVE","activeIndex","setActiveIndex","timeLinePosition","setTimeLinePosition","panelRef","useRef","wrapRef","useFullscreen","isFullscreen","toggleFullscreen","useRequest","getHistoryUrl","manual","runAsync","getVideoLabelById","getVideoLabelByIdAsync","useImperativeHandle","load","channel","current","start","playInfo","tagId","id","labelRes","deviceId","videoDeviceId","channelNum","videoChannelNum","beginTime","startTime","endTime","protocol","token","getUrlParam","res","newChannels","resultChannel","_a","filter","citem","channelIndex","Object","assign","index","_c","_b","item","getChannelData","unLoadAll","handleCloseAll","handleExpand","getGridItems","items","i","element","_jsx","GridItem","active","palyIndex","onClick","onClose","deviceName","channelName","url","tableList","aIndex","find","ele","push","Number","store","useEffect","getRealGrid","length","realChannels","className","style","children","_jsxs","historyControlV2Context","Provider","Spin","spinning","size","Panel","Space","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","setGrid","GridIcon","DownOutlined","UpOutlined","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName"],"sources":["history-control-v2/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { getHistoryUrl, getVideoLabelById } from '../api';\nimport SplitScreen, { getRealGrid } from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState } from 'ahooks';\nimport Space from 'antd/lib/space';\nimport Spin from 'antd/lib/spin';\nimport GridItem from './components/grid-item';\nimport Panel from './components/panel';\nimport { historyControlV2Context } from './context';\nimport { DEFAULT_ACTIVE, DEFAULT_CHANNELS, DEFAULT_GRID, getChannelData } from './utils';\n/**\n * 历史视频控制器\n */\nexport const HistoryControlV2 = forwardRef((props, ref) => {\n const { width = '100%', height = '100%', onExpandChange, onVideoClose, onVideoCloseAll, onScreenshot, onPlayingChannelChange, onTimeChange, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n scale: '100%',\n });\n const [channels, setChannels] = useState(DEFAULT_CHANNELS);\n const [loading, setLoading] = useState(false);\n const [activeIndex, setActiveIndex] = useState(DEFAULT_ACTIVE);\n const [timeLinePosition, setTimeLinePosition] = useState(-1);\n const panelRef = useRef();\n // 全屏方法\n const wrapRef = useRef(null);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const { runAsync } = useRequest(getHistoryUrl, {\n manual: true,\n });\n const { runAsync: getVideoLabelByIdAsync } = useRequest(getVideoLabelById, {\n manual: true,\n });\n useImperativeHandle(ref, () => {\n return {\n load: (channel) => {\n panelRef.current.load(channel);\n },\n start: (playInfo) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c;\n setLoading(true);\n const result = playInfo;\n if (playInfo.tagId) {\n /**\n * 如果传了tagId 则根据TagId 获取 deviceId,channelNum,beginTime,endTime\n * 如果没有传tagId 则根据 传入进来的 deviceId, channelNum,beginTime,endTime\n */\n const labelRes = yield getVideoLabelByIdAsync({\n id: playInfo.tagId,\n });\n result.deviceId = labelRes.videoDeviceId || playInfo.deviceId;\n result.channelNum = labelRes.videoChannelNum || playInfo.channelNum;\n result.beginTime = labelRes.startTime || playInfo.beginTime;\n result.endTime = labelRes.endTime || playInfo.endTime;\n }\n const res = yield runAsync({\n deviceId: result.deviceId,\n channelNum: result.channelNum,\n beginTime: result.beginTime,\n endTime: result.endTime,\n protocol: result.protocol,\n token: getUrlParam('token'),\n });\n const newChannels = [...channels];\n const resultChannel = (_a = newChannels.filter((citem) => citem.deviceId === res.deviceId && citem.channelNum === res.channelNum)) === null || _a === void 0 ? void 0 : _a[0];\n // 如果当前通道已经再里面了,则直接替换当前通道\n if (resultChannel) {\n newChannels[resultChannel.channelIndex] = Object.assign(Object.assign({}, newChannels[resultChannel.channelIndex]), { \n // 有tagId 则为-1 不然维持原有的\n index: playInfo.tagId\n ? -1\n : newChannels[resultChannel.channelIndex].index, tagId: playInfo.tagId || '', startTime: result.beginTime, endTime: result.endTime });\n }\n else {\n // 如果当前通道不在里面 则找到第一个channelNum为''的替换\n const channelIndex = (_c = (_b = newChannels.filter((item) => item.channelNum === '')) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.channelIndex;\n if (typeof channelIndex == 'number') {\n newChannels[channelIndex] = Object.assign(Object.assign({}, newChannels[channelIndex]), getChannelData(res, result));\n }\n }\n setChannels(newChannels);\n setLoading(false);\n }),\n unLoadAll: handleCloseAll,\n };\n });\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const handleCloseAll = () => {\n // const realChannels = channels.filter((item) => item.channelNum !== '');\n // realChannels.map((item) => {\n // onVideoClose && onVideoClose(item);\n // });\n onVideoCloseAll();\n setChannels(DEFAULT_CHANNELS);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(state.grid); i++) {\n const element = (_jsx(GridItem, { active: activeIndex === i, palyIndex: i, onTimeChange: onTimeChange, onClick: () => setActiveIndex(i), channel: channels[i], onClose: () => {\n var _a;\n const newChannels = [...channels];\n newChannels[i].index = -1;\n newChannels[i].deviceName = '';\n newChannels[i].deviceId = '';\n newChannels[i].startTime = '';\n newChannels[i].endTime = '';\n newChannels[i].tagId = '';\n newChannels[i].channelName = '';\n newChannels[i].channelNum = '';\n newChannels[i].url = '';\n newChannels[i].tableList = [];\n setChannels(newChannels);\n const aIndex = ((_a = newChannels.find((ele) => !!ele.channelNum)) === null || _a === void 0 ? void 0 : _a.channelIndex) || 0;\n setActiveIndex(aIndex);\n onVideoClose && onVideoClose(channels[i], newChannels);\n }, scale: state.scale, loading: true, onScreenshot: (url) => {\n onScreenshot(url, i);\n } }, i));\n items.push(element);\n }\n return items;\n };\n const store = {\n channels,\n setChannels,\n loading,\n setLoading,\n activeIndex,\n setActiveIndex,\n timeLinePosition,\n setTimeLinePosition,\n };\n useEffect(() => {\n if (getRealGrid(channels.filter((item) => item.channelNum !== '').length) > state.grid) {\n setState({\n grid: getRealGrid(channels.filter((item) => item.channelNum !== '').length) || 1,\n });\n }\n const realChannels = channels.filter((item) => item.channelNum !== '');\n if (typeof onPlayingChannelChange === 'function') {\n onPlayingChannelChange(realChannels);\n }\n }, [channels]);\n return (_jsx(\"div\", Object.assign({ className: \"vtx-history-control-v2\", style: { width, height }, ref: wrapRef }, { children: _jsxs(historyControlV2Context.Provider, Object.assign({ value: store }, { children: [_jsx(Spin, { spinning: loading, className: \"vtx-spin\", size: \"large\" }), _jsx(\"div\", Object.assign({ className: `player-grid-container _${getRealGrid(state.grid)}` }, { children: getGridItems() })), _jsx(Panel, { onVideoClose: (channel) => {\n onVideoClose(channel, channels);\n }, ref: panelRef }), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) }))) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), _jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => setState({ grid }) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => setState({ scale }) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(OccupyingScreenIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen }))] }))] }))] })) })));\n});\nHistoryControlV2.displayName = 'HistoryControlV2';\nexport default HistoryControlV2;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","HistoryControlV2","forwardRef","props","ref","width","height","onExpandChange","onVideoClose","onVideoCloseAll","onScreenshot","onPlayingChannelChange","onTimeChange","useSetState","expand","grid","DEFAULT_GRID","scale","state","setState","useState","DEFAULT_CHANNELS","channels","setChannels","loading","setLoading","DEFAULT_ACTIVE","activeIndex","setActiveIndex","timeLinePosition","setTimeLinePosition","panelRef","useRef","wrapRef","useFullscreen","isFullscreen","toggleFullscreen","useRequest","getHistoryUrl","manual","runAsync","getVideoLabelById","getVideoLabelByIdAsync","useImperativeHandle","load","channel","current","start","playInfo","tagId","id","labelRes","deviceId","videoDeviceId","channelNum","videoChannelNum","beginTime","startTime","endTime","protocol","token","getUrlParam","res","newChannels","resultChannel","_a","filter","citem","channelIndex","Object","assign","index","_c","_b","item","getChannelData","unLoadAll","handleCloseAll","handleExpand","getGridItems","items","i","element","_jsx","GridItem","active","palyIndex","onClick","onClose","deviceName","channelName","url","tableList","aIndex","find","ele","push","Number","store","useEffect","getRealGrid","length","realChannels","className","style","children","_jsxs","historyControlV2Context","Provider","Spin","spinning","size","Panel","Space","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","setGrid","GridIcon","DownOutlined","UpOutlined","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName"],"sources":["history-control-v2/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { getHistoryUrl, getVideoLabelById } from '../api';\nimport SplitScreen, { getRealGrid } from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState } from 'ahooks';\nimport Space from 'antd/lib/space';\nimport Spin from 'antd/lib/spin';\nimport GridItem from './components/grid-item';\nimport Panel from './components/panel';\nimport { historyControlV2Context } from './context';\nimport { DEFAULT_ACTIVE, DEFAULT_CHANNELS, DEFAULT_GRID, getChannelData } from './utils';\n/**\n * 历史视频控制器\n */\nexport const HistoryControlV2 = forwardRef((props, ref) => {\n const { width = '100%', height = '100%', onExpandChange, onVideoClose, onVideoCloseAll, onScreenshot, onPlayingChannelChange, onTimeChange, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n scale: '100%',\n });\n const [channels, setChannels] = useState(DEFAULT_CHANNELS);\n const [loading, setLoading] = useState(false);\n const [activeIndex, setActiveIndex] = useState(DEFAULT_ACTIVE);\n const [timeLinePosition, setTimeLinePosition] = useState(-1);\n const panelRef = useRef();\n // 全屏方法\n const wrapRef = useRef(null);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const { runAsync } = useRequest(getHistoryUrl, {\n manual: true,\n });\n const { runAsync: getVideoLabelByIdAsync } = useRequest(getVideoLabelById, {\n manual: true,\n });\n useImperativeHandle(ref, () => {\n return {\n load: (channel) => {\n panelRef.current.load(channel);\n },\n start: (playInfo) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c;\n setLoading(true);\n const result = playInfo;\n if (playInfo.tagId) {\n /**\n * 如果传了tagId 则根据TagId 获取 deviceId,channelNum,beginTime,endTime\n * 如果没有传tagId 则根据 传入进来的 deviceId, channelNum,beginTime,endTime\n */\n const labelRes = yield getVideoLabelByIdAsync({\n id: playInfo.tagId,\n });\n result.deviceId = labelRes.videoDeviceId || playInfo.deviceId;\n result.channelNum = labelRes.videoChannelNum || playInfo.channelNum;\n result.beginTime = labelRes.startTime || playInfo.beginTime;\n result.endTime = labelRes.endTime || playInfo.endTime;\n }\n const res = yield runAsync({\n deviceId: result.deviceId,\n channelNum: result.channelNum,\n beginTime: result.beginTime,\n endTime: result.endTime,\n protocol: result.protocol,\n token: getUrlParam('token'),\n });\n const newChannels = [...channels];\n const resultChannel = (_a = newChannels.filter((citem) => citem.deviceId === res.deviceId && citem.channelNum === res.channelNum)) === null || _a === void 0 ? void 0 : _a[0];\n // 如果当前通道已经再里面了,则直接替换当前通道\n if (resultChannel) {\n newChannels[resultChannel.channelIndex] = Object.assign(Object.assign({}, newChannels[resultChannel.channelIndex]), { \n // 有tagId 则为-1 不然维持原有的\n index: playInfo.tagId\n ? -1\n : newChannels[resultChannel.channelIndex].index, tagId: playInfo.tagId || '', startTime: result.beginTime, endTime: result.endTime });\n }\n else {\n // 如果当前通道不在里面 则找到第一个channelNum为''的替换\n const channelIndex = (_c = (_b = newChannels.filter((item) => item.channelNum === '')) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.channelIndex;\n if (typeof channelIndex == 'number') {\n newChannels[channelIndex] = Object.assign(Object.assign({}, newChannels[channelIndex]), getChannelData(res, result));\n }\n }\n setChannels(newChannels);\n setLoading(false);\n }),\n unLoadAll: handleCloseAll,\n };\n });\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const handleCloseAll = () => {\n // const realChannels = channels.filter((item) => item.channelNum !== '');\n // realChannels.map((item) => {\n // onVideoClose && onVideoClose(item);\n // });\n onVideoCloseAll();\n setChannels(DEFAULT_CHANNELS);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(state.grid); i++) {\n const element = (_jsx(GridItem, { active: activeIndex === i, palyIndex: i, onTimeChange: onTimeChange, onClick: () => setActiveIndex(i), channel: channels[i], onClose: () => {\n var _a;\n const newChannels = [...channels];\n newChannels[i].index = -1;\n newChannels[i].deviceName = '';\n newChannels[i].deviceId = '';\n newChannels[i].startTime = '';\n newChannels[i].endTime = '';\n newChannels[i].tagId = '';\n newChannels[i].channelName = '';\n newChannels[i].channelNum = '';\n newChannels[i].url = '';\n newChannels[i].tableList = [];\n setChannels(newChannels);\n const aIndex = ((_a = newChannels.find((ele) => !!ele.channelNum)) === null || _a === void 0 ? void 0 : _a.channelIndex) || 0;\n setActiveIndex(aIndex);\n onVideoClose && onVideoClose(channels[i], newChannels);\n }, scale: state.scale, loading: true, onScreenshot: (url) => {\n onScreenshot && onScreenshot(url, i);\n } }, i));\n items.push(element);\n }\n return items;\n };\n const store = {\n channels,\n setChannels,\n loading,\n setLoading,\n activeIndex,\n setActiveIndex,\n timeLinePosition,\n setTimeLinePosition,\n };\n useEffect(() => {\n if (getRealGrid(channels.filter((item) => item.channelNum !== '').length) > state.grid) {\n setState({\n grid: getRealGrid(channels.filter((item) => item.channelNum !== '').length) || 1,\n });\n }\n const realChannels = channels.filter((item) => item.channelNum !== '');\n if (typeof onPlayingChannelChange === 'function') {\n onPlayingChannelChange(realChannels);\n }\n }, [channels]);\n return (_jsx(\"div\", Object.assign({ className: \"vtx-history-control-v2\", style: { width, height }, ref: wrapRef }, { children: _jsxs(historyControlV2Context.Provider, Object.assign({ value: store }, { children: [_jsx(Spin, { spinning: loading, className: \"vtx-spin\", size: \"large\" }), _jsx(\"div\", Object.assign({ className: `player-grid-container _${getRealGrid(state.grid)}` }, { children: getGridItems() })), _jsx(Panel, { onVideoClose: (channel) => {\n onVideoClose(channel, channels);\n }, ref: panelRef }), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) }))) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), _jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => setState({ grid }) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => setState({ scale }) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(OccupyingScreenIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen }))] }))] }))] })) })));\n});\nHistoryControlV2.displayName = 'HistoryControlV2';\nexport default HistoryControlV2;\n"],"mappings":";;;;;;;;;AASA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;+CAtBA,oJ;;;;;;;;;;;;;;;;;;;;;;AADA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;EACrF,SAASC,KAAT,CAAeC,KAAf,EAAsB;IAAE,OAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;MAAEA,OAAO,CAACD,KAAD,CAAP;IAAiB,CAA5C,CAApC;EAAoF;;EAC5G,OAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;IACvD,SAASC,SAAT,CAAmBJ,KAAnB,EAA0B;MAAE,IAAI;QAAEK,IAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;MAA8B,CAApC,CAAqC,OAAOO,CAAP,EAAU;QAAEJ,MAAM,CAACI,CAAD,CAAN;MAAY;IAAE;;IAC3F,SAASC,QAAT,CAAkBR,KAAlB,EAAyB;MAAE,IAAI;QAAEK,IAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;MAAkC,CAAxC,CAAyC,OAAOO,CAAP,EAAU;QAAEJ,MAAM,CAACI,CAAD,CAAN;MAAY;IAAE;;IAC9F,SAASF,IAAT,CAAcI,MAAd,EAAsB;MAAEA,MAAM,CAACC,IAAP,GAAcT,OAAO,CAACQ,MAAM,CAACT,KAAR,CAArB,GAAsCD,KAAK,CAACU,MAAM,CAACT,KAAR,CAAL,CAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;IAAsF;;IAC9GH,IAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAACc,KAAV,CAAgBjB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;EACH,CALM,CAAP;AAMH,CARD;;AAwBA;AACA;AACA;AACO,IAAMO,gBAAgB,gBAAG,IAAAC,iBAAA,EAAW,UAACC,KAAD,EAAQC,GAAR,EAAgB;EACvD,mBAAgJD,KAAhJ,CAAQE,KAAR;EAAA,IAAQA,KAAR,6BAAgB,MAAhB;EAAA,oBAAgJF,KAAhJ,CAAwBG,MAAxB;EAAA,IAAwBA,MAAxB,8BAAiC,MAAjC;EAAA,IAAyCC,cAAzC,GAAgJJ,KAAhJ,CAAyCI,cAAzC;EAAA,IAAyDC,aAAzD,GAAgJL,KAAhJ,CAAyDK,YAAzD;EAAA,IAAuEC,eAAvE,GAAgJN,KAAhJ,CAAuEM,eAAvE;EAAA,IAAwFC,aAAxF,GAAgJP,KAAhJ,CAAwFO,YAAxF;EAAA,IAAsGC,sBAAtG,GAAgJR,KAAhJ,CAAsGQ,sBAAtG;EAAA,IAA8HC,YAA9H,GAAgJT,KAAhJ,CAA8HS,YAA9H;;EACA,mBAA0B,IAAAC,mBAAA,EAAY;IAClCC,MAAM,EAAE,IAD0B;IAElCC,IAAI,EAAEC,oBAF4B;IAGlCC,KAAK,EAAE;EAH2B,CAAZ,CAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EAKA,gBAAgC,IAAAC,eAAA,EAASC,wBAAT,CAAhC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EACA,iBAA8B,IAAAH,eAAA,EAAS,KAAT,CAA9B;EAAA;EAAA,IAAOI,OAAP;EAAA,IAAgBC,UAAhB;;EACA,iBAAsC,IAAAL,eAAA,EAASM,sBAAT,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EACA,iBAAgD,IAAAR,eAAA,EAAS,CAAC,CAAV,CAAhD;EAAA;EAAA,IAAOS,gBAAP;EAAA,IAAyBC,mBAAzB;;EACA,IAAMC,QAAQ,GAAG,IAAAC,aAAA,GAAjB,CAXuD,CAYvD;;EACA,IAAMC,OAAO,GAAG,IAAAD,aAAA,EAAO,IAAP,CAAhB;;EACA,qBAA6C,IAAAE,qBAAA,EAAcD,OAAd,CAA7C;EAAA;EAAA,IAAOE,YAAP;EAAA,IAAuBC,gBAAvB,sBAAuBA,gBAAvB;;EACA,kBAAqB,IAAAC,kBAAA,EAAWC,kBAAX,EAA0B;IAC3CC,MAAM,EAAE;EADmC,CAA1B,CAArB;EAAA,IAAQC,QAAR,eAAQA,QAAR;;EAGA,mBAA6C,IAAAH,kBAAA,EAAWI,sBAAX,EAA8B;IACvEF,MAAM,EAAE;EAD+D,CAA9B,CAA7C;EAAA,IAAkBG,sBAAlB,gBAAQF,QAAR;;EAGA,IAAAG,0BAAA,EAAoBvC,GAApB,EAAyB,YAAM;IAC3B,OAAO;MACHwC,IAAI,EAAE,cAACC,OAAD,EAAa;QACfd,QAAQ,CAACe,OAAT,CAAiBF,IAAjB,CAAsBC,OAAtB;MACH,CAHE;MAIHE,KAAK,EAAE,eAACC,QAAD;QAAA,OAAclE,SAAS,CAAC,KAAK,CAAN,EAAS,KAAK,CAAd,EAAiB,KAAK,CAAtB,0CAAyB;UAAA;;UAAA;YAAA;cAAA;gBAAA;kBAEnD2C,UAAU,CAAC,IAAD,CAAV;kBACM5B,MAH6C,GAGpCmD,QAHoC;;kBAAA,KAI/CA,QAAQ,CAACC,KAJsC;oBAAA;oBAAA;kBAAA;;kBAAA;kBAS9B,OAAMP,sBAAsB,CAAC;oBAC1CQ,EAAE,EAAEF,QAAQ,CAACC;kBAD6B,CAAD,CAA5B;;gBAT8B;kBASzCE,QATyC;kBAY/CtD,MAAM,CAACuD,QAAP,GAAkBD,QAAQ,CAACE,aAAT,IAA0BL,QAAQ,CAACI,QAArD;kBACAvD,MAAM,CAACyD,UAAP,GAAoBH,QAAQ,CAACI,eAAT,IAA4BP,QAAQ,CAACM,UAAzD;kBACAzD,MAAM,CAAC2D,SAAP,GAAmBL,QAAQ,CAACM,SAAT,IAAsBT,QAAQ,CAACQ,SAAlD;kBACA3D,MAAM,CAAC6D,OAAP,GAAiBP,QAAQ,CAACO,OAAT,IAAoBV,QAAQ,CAACU,OAA9C;;gBAf+C;kBAAA;kBAiBvC,OAAMlB,QAAQ,CAAC;oBACvBY,QAAQ,EAAEvD,MAAM,CAACuD,QADM;oBAEvBE,UAAU,EAAEzD,MAAM,CAACyD,UAFI;oBAGvBE,SAAS,EAAE3D,MAAM,CAAC2D,SAHK;oBAIvBE,OAAO,EAAE7D,MAAM,CAAC6D,OAJO;oBAKvBC,QAAQ,EAAE9D,MAAM,CAAC8D,QALM;oBAMvBC,KAAK,EAAE,IAAAC,kBAAA,EAAY,OAAZ;kBANgB,CAAD,CAAd;;gBAjBuC;kBAiB7CC,GAjB6C;kBAyB7CC,WAzB6C,sBAyB3BzC,QAzB2B;kBA0B7C0C,aA1B6C,GA0B7B,CAACC,EAAE,GAAGF,WAAW,CAACG,MAAZ,CAAmB,UAACC,KAAD;oBAAA,OAAWA,KAAK,CAACf,QAAN,KAAmBU,GAAG,CAACV,QAAvB,IAAmCe,KAAK,CAACb,UAAN,KAAqBQ,GAAG,CAACR,UAAvE;kBAAA,CAAnB,CAAN,MAAiH,IAAjH,IAAyHW,EAAE,KAAK,KAAK,CAArI,GAAyI,KAAK,CAA9I,GAAkJA,EAAE,CAAC,CAAD,CA1BvH,EA2BnD;;kBACA,IAAID,aAAJ,EAAmB;oBACfD,WAAW,CAACC,aAAa,CAACI,YAAf,CAAX,GAA0CC,MAAM,CAACC,MAAP,CAAcD,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBP,WAAW,CAACC,aAAa,CAACI,YAAf,CAA7B,CAAd,EAA0E;sBAChH;sBACAG,KAAK,EAAEvB,QAAQ,CAACC,KAAT,GACD,CAAC,CADA,GAEDc,WAAW,CAACC,aAAa,CAACI,YAAf,CAAX,CAAwCG,KAJkE;sBAI3DtB,KAAK,EAAED,QAAQ,CAACC,KAAT,IAAkB,EAJkC;sBAI9BQ,SAAS,EAAE5D,MAAM,CAAC2D,SAJY;sBAIDE,OAAO,EAAE7D,MAAM,CAAC6D;oBAJf,CAA1E,CAA1C;kBAKH,CAND,MAOK;oBACD;oBACMU,YAFL,GAEoB,CAACI,EAAE,GAAG,CAACC,EAAE,GAAGV,WAAW,CAACG,MAAZ,CAAmB,UAACQ,IAAD;sBAAA,OAAUA,IAAI,CAACpB,UAAL,KAAoB,EAA9B;oBAAA,CAAnB,CAAN,MAAgE,IAAhE,IAAwEmB,EAAE,KAAK,KAAK,CAApF,GAAwF,KAAK,CAA7F,GAAiGA,EAAE,CAAC,CAAD,CAAzG,MAAkH,IAAlH,IAA0HD,EAAE,KAAK,KAAK,CAAtI,GAA0I,KAAK,CAA/I,GAAmJA,EAAE,CAACJ,YAF1K;;oBAGD,IAAI,OAAOA,YAAP,IAAuB,QAA3B,EAAqC;sBACjCL,WAAW,CAACK,YAAD,CAAX,GAA4BC,MAAM,CAACC,MAAP,CAAcD,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBP,WAAW,CAACK,YAAD,CAA7B,CAAd,EAA4D,IAAAO,sBAAA,EAAeb,GAAf,EAAoBjE,MAApB,CAA5D,CAA5B;oBACH;kBACJ;;kBACD0B,WAAW,CAACwC,WAAD,CAAX;kBACAtC,UAAU,CAAC,KAAD,CAAV;;gBA3CmD;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAAzB,EAAvB;MAAA,CAJJ;MAiDHmD,SAAS,EAAEC;IAjDR,CAAP;EAmDH,CApDD;;EAqDA,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;IACvBvE,cAAc,IAAIA,cAAc,CAAC,CAACW,KAAK,CAACJ,MAAR,CAAhC;IACAK,QAAQ,CAAC;MAAEL,MAAM,EAAE,CAACI,KAAK,CAACJ;IAAjB,CAAD,CAAR;EACH,CAHD;;EAIA,IAAM+D,cAAc,GAAG,SAAjBA,cAAiB,GAAM;IACzB;IACA;IACA;IACA;IACApE,eAAe;IACfc,WAAW,CAACF,wBAAD,CAAX;EACH,CAPD;;EAQA,IAAM0D,YAAY,GAAG,SAAfA,YAAe,GAAM;IACvB,IAAMC,KAAK,GAAG,EAAd;;IADuB,2BAEdC,CAFc;MAGnB,IAAMC,OAAO,GAAI,IAAAC,eAAA,EAAKC,oBAAL,EAAe;QAAEC,MAAM,EAAE1D,WAAW,KAAKsD,CAA1B;QAA6BK,SAAS,EAAEL,CAAxC;QAA2CrE,YAAY,EAAEA,YAAzD;QAAuE2E,OAAO,EAAE;UAAA,OAAM3D,cAAc,CAACqD,CAAD,CAApB;QAAA,CAAhF;QAAyGpC,OAAO,EAAEvB,QAAQ,CAAC2D,CAAD,CAA1H;QAA+HO,OAAO,EAAE,mBAAM;UACtK,IAAIvB,EAAJ;;UACA,IAAMF,WAAW,sBAAOzC,QAAP,CAAjB;;UACAyC,WAAW,CAACkB,CAAD,CAAX,CAAeV,KAAf,GAAuB,CAAC,CAAxB;UACAR,WAAW,CAACkB,CAAD,CAAX,CAAeQ,UAAf,GAA4B,EAA5B;UACA1B,WAAW,CAACkB,CAAD,CAAX,CAAe7B,QAAf,GAA0B,EAA1B;UACAW,WAAW,CAACkB,CAAD,CAAX,CAAexB,SAAf,GAA2B,EAA3B;UACAM,WAAW,CAACkB,CAAD,CAAX,CAAevB,OAAf,GAAyB,EAAzB;UACAK,WAAW,CAACkB,CAAD,CAAX,CAAehC,KAAf,GAAuB,EAAvB;UACAc,WAAW,CAACkB,CAAD,CAAX,CAAeS,WAAf,GAA6B,EAA7B;UACA3B,WAAW,CAACkB,CAAD,CAAX,CAAe3B,UAAf,GAA4B,EAA5B;UACAS,WAAW,CAACkB,CAAD,CAAX,CAAeU,GAAf,GAAqB,EAArB;UACA5B,WAAW,CAACkB,CAAD,CAAX,CAAeW,SAAf,GAA2B,EAA3B;UACArE,WAAW,CAACwC,WAAD,CAAX;UACA,IAAM8B,MAAM,GAAG,CAAC,CAAC5B,EAAE,GAAGF,WAAW,CAAC+B,IAAZ,CAAiB,UAACC,GAAD;YAAA,OAAS,CAAC,CAACA,GAAG,CAACzC,UAAf;UAAA,CAAjB,CAAN,MAAuD,IAAvD,IAA+DW,EAAE,KAAK,KAAK,CAA3E,GAA+E,KAAK,CAApF,GAAwFA,EAAE,CAACG,YAA5F,KAA6G,CAA5H;UACAxC,cAAc,CAACiE,MAAD,CAAd;UACArF,aAAY,IAAIA,aAAY,CAACc,QAAQ,CAAC2D,CAAD,CAAT,EAAclB,WAAd,CAA5B;QACH,CAjB2B;QAiBzB9C,KAAK,EAAEC,KAAK,CAACD,KAjBY;QAiBLO,OAAO,EAAE,IAjBJ;QAiBUd,YAAY,EAAE,sBAACiF,GAAD,EAAS;UACzDjF,aAAY,IAAIA,aAAY,CAACiF,GAAD,EAAMV,CAAN,CAA5B;QACH;MAnB2B,CAAf,EAmBRA,CAnBQ,CAAjB;MAoBAD,KAAK,CAACgB,IAAN,CAAWd,OAAX;IAvBmB;;IAEvB,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgB,MAAM,CAAC/E,KAAK,CAACH,IAAP,CAA1B,EAAwCkE,CAAC,EAAzC,EAA6C;MAAA,MAApCA,CAAoC;IAsB5C;;IACD,OAAOD,KAAP;EACH,CA1BD;;EA2BA,IAAMkB,KAAK,GAAG;IACV5E,QAAQ,EAARA,QADU;IAEVC,WAAW,EAAXA,WAFU;IAGVC,OAAO,EAAPA,OAHU;IAIVC,UAAU,EAAVA,UAJU;IAKVE,WAAW,EAAXA,WALU;IAMVC,cAAc,EAAdA,cANU;IAOVC,gBAAgB,EAAhBA,gBAPU;IAQVC,mBAAmB,EAAnBA;EARU,CAAd;EAUA,IAAAqE,gBAAA,EAAU,YAAM;IACZ,IAAI,IAAAC,wBAAA,EAAY9E,QAAQ,CAAC4C,MAAT,CAAgB,UAACQ,IAAD;MAAA,OAAUA,IAAI,CAACpB,UAAL,KAAoB,EAA9B;IAAA,CAAhB,EAAkD+C,MAA9D,IAAwEnF,KAAK,CAACH,IAAlF,EAAwF;MACpFI,QAAQ,CAAC;QACLJ,IAAI,EAAE,IAAAqF,wBAAA,EAAY9E,QAAQ,CAAC4C,MAAT,CAAgB,UAACQ,IAAD;UAAA,OAAUA,IAAI,CAACpB,UAAL,KAAoB,EAA9B;QAAA,CAAhB,EAAkD+C,MAA9D,KAAyE;MAD1E,CAAD,CAAR;IAGH;;IACD,IAAMC,YAAY,GAAGhF,QAAQ,CAAC4C,MAAT,CAAgB,UAACQ,IAAD;MAAA,OAAUA,IAAI,CAACpB,UAAL,KAAoB,EAA9B;IAAA,CAAhB,CAArB;;IACA,IAAI,OAAO3C,sBAAP,KAAkC,UAAtC,EAAkD;MAC9CA,sBAAsB,CAAC2F,YAAD,CAAtB;IACH;EACJ,CAVD,EAUG,CAAChF,QAAD,CAVH;EAWA,OAAQ,IAAA6D,eAAA,EAAK,KAAL,EAAYd,MAAM,CAACC,MAAP,CAAc;IAAEiC,SAAS,EAAE,wBAAb;IAAuCC,KAAK,EAAE;MAAEnG,KAAK,EAALA,KAAF;MAASC,MAAM,EAANA;IAAT,CAA9C;IAAiEF,GAAG,EAAE6B;EAAtE,CAAd,EAA+F;IAAEwE,QAAQ,EAAE,IAAAC,gBAAA,EAAMC,iCAAA,CAAwBC,QAA9B,EAAwCvC,MAAM,CAACC,MAAP,CAAc;MAAElF,KAAK,EAAE8G;IAAT,CAAd,EAAgC;MAAEO,QAAQ,EAAE,CAAC,IAAAtB,eAAA,EAAK0B,gBAAL,EAAW;QAAEC,QAAQ,EAAEtF,OAAZ;QAAqB+E,SAAS,EAAE,UAAhC;QAA4CQ,IAAI,EAAE;MAAlD,CAAX,CAAD,EAA0E,IAAA5B,eAAA,EAAK,KAAL,EAAYd,MAAM,CAACC,MAAP,CAAc;QAAEiC,SAAS,mCAA4B,IAAAH,wBAAA,EAAYlF,KAAK,CAACH,IAAlB,CAA5B;MAAX,CAAd,EAAkF;QAAE0F,QAAQ,EAAE1B,YAAY;MAAxB,CAAlF,CAAZ,CAA1E,EAAwM,IAAAI,eAAA,EAAK6B,iBAAL,EAAY;QAAExG,YAAY,EAAE,sBAACqC,OAAD,EAAa;UAChbrC,aAAY,CAACqC,OAAD,EAAUvB,QAAV,CAAZ;QACH,CAFsZ;QAEpZlB,GAAG,EAAE2B;MAF+Y,CAAZ,CAAxM,EAE9K,IAAA2E,gBAAA,EAAM,KAAN,EAAarC,MAAM,CAACC,MAAP,CAAc;QAAEiC,SAAS,EAAE;MAAb,CAAd,EAAgD;QAAEE,QAAQ,EAAE,CAAC,IAAAtB,eAAA,EAAK8B,iBAAL,EAAY5C,MAAM,CAACC,MAAP,CAAc;UAAEiC,SAAS,EAAE,MAAb;UAAqBQ,IAAI,EAAE,EAA3B;UAA+BG,KAAK,EAAE;QAAtC,CAAd,EAAgE;UAAET,QAAQ,EAAElG,cAAc,IAAK,IAAA4E,eAAA,EAAK,KAAL,EAAYd,MAAM,CAACC,MAAP,CAAc;YAAEiB,OAAO,EAAET,YAAX;YAAyB0B,KAAK,EAAE;cAAEW,OAAO,EAAE;YAAX;UAAhC,CAAd,EAAqE;YAAEV,QAAQ,EAAEvF,KAAK,CAACJ,MAAN,GAAe,IAAAqE,eAAA,EAAKiC,eAAL,EAAe,EAAf,CAAf,GAAoC,IAAAjC,eAAA,EAAKkC,iBAAL,EAAiB,EAAjB;UAAhD,CAArE,CAAZ;QAA/B,CAAhE,CAAZ,CAAD,EAA4Q,IAAAX,gBAAA,EAAMO,iBAAN,EAAa5C,MAAM,CAACC,MAAP,CAAc;UAAEiC,SAAS,EAAE,OAAb;UAAsBQ,IAAI,EAAE,EAA5B;UAAgCG,KAAK,EAAE;QAAvC,CAAd,EAAiE;UAAET,QAAQ,EAAE,CAAC,IAAAtB,eAAA,EAAKmC,mBAAL,EAAmB;YAAE/B,OAAO,EAAEV;UAAX,CAAnB,CAAD,EAAkD,IAAAM,eAAA,EAAK,KAAL,EAAY;YAAEoB,SAAS,EAAE;UAAb,CAAZ,CAAlD,EAA4F,IAAApB,eAAA,EAAKoC,uBAAL,EAAkBlD,MAAM,CAACC,MAAP,CAAc;YAAEvD,IAAI,EAAEG,KAAK,CAACH,IAAd;YAAoByG,OAAO,EAAE,iBAACzG,IAAD;cAAA,OAAUI,QAAQ,CAAC;gBAAEJ,IAAI,EAAJA;cAAF,CAAD,CAAlB;YAAA;UAA7B,CAAd,EAA2E;YAAE0F,QAAQ,EAAE,IAAAC,gBAAA,EAAM,KAAN,EAAarC,MAAM,CAACC,MAAP,CAAc;cAAEiC,SAAS,EAAE;YAAb,CAAd,EAAoD;cAAEE,QAAQ,EAAE,CAAC,IAAAtB,eAAA,EAAKsC,eAAL,EAAe,EAAf,CAAD,EAAqB,IAAAtC,eAAA,EAAKuC,oBAAL,EAAmB;gBAAEnB,SAAS,EAAE;cAAb,CAAnB,CAArB,EAAsE,IAAApB,eAAA,EAAKwC,kBAAL,EAAiB;gBAAEpB,SAAS,EAAE;cAAb,CAAjB,CAAtE;YAAZ,CAApD,CAAb;UAAZ,CAA3E,CAAlB,CAA5F,EAAgZ,IAAApB,eAAA,EAAKyC,sBAAL,EAAiBvD,MAAM,CAACC,MAAP,CAAc;YAAErD,KAAK,EAAEC,KAAK,CAACD,KAAf;YAAsB4G,QAAQ,EAAE,kBAAC5G,KAAD;cAAA,OAAWE,QAAQ,CAAC;gBAAEF,KAAK,EAALA;cAAF,CAAD,CAAnB;YAAA;UAAhC,CAAd,EAAgF;YAAEwF,QAAQ,EAAE,IAAAC,gBAAA,EAAM,KAAN,EAAarC,MAAM,CAACC,MAAP,CAAc;cAAEiC,SAAS,EAAE;YAAb,CAAd,EAAoD;cAAEE,QAAQ,EAAE,CAAC,IAAAtB,eAAA,EAAK2C,0BAAL,EAA0B,EAA1B,CAAD,EAAgC,IAAA3C,eAAA,EAAKuC,oBAAL,EAAmB;gBAAEnB,SAAS,EAAE;cAAb,CAAnB,CAAhC,EAAiF,IAAApB,eAAA,EAAKwC,kBAAL,EAAiB;gBAAEpB,SAAS,EAAE;cAAb,CAAjB,CAAjF;YAAZ,CAApD,CAAb;UAAZ,CAAhF,CAAjB,CAAhZ,EAAmtBpE,YAAY,GAAI,IAAAgD,eAAA,EAAK4C,yBAAL,EAAyB;YAAExC,OAAO,EAAEnD;UAAX,CAAzB,CAAJ,GAAgE,IAAA+C,eAAA,EAAK6C,qBAAL,EAAqB;YAAEzC,OAAO,EAAEnD;UAAX,CAArB,CAA/xB;QAAZ,CAAjE,CAAb,CAA5Q;MAAZ,CAAhD,CAAb,CAF8K;IAAZ,CAAhC,CAAxC;EAAZ,CAA/F,CAAZ,CAAR;AAGH,CAzI+B,CAAzB;;AA0IPnC,gBAAgB,CAACgI,WAAjB,GAA+B,kBAA/B;eACehI,gB"}
|