@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.
@@ -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":"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"}