@vtx/player 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/lib/api/fetch.js +75 -51
  2. package/lib/api/fetch.js.map +1 -1
  3. package/lib/api/index.js +62 -18
  4. package/lib/api/index.js.map +1 -1
  5. package/lib/api/types.d.ts +5 -5
  6. package/lib/bill-player/index.js +111 -59
  7. package/lib/bill-player/index.js.map +1 -1
  8. package/lib/bill-player/style/css.js +9 -0
  9. package/lib/bill-player/style/css.js.map +1 -1
  10. package/lib/bill-player/style/index.js +9 -0
  11. package/lib/bill-player/style/index.js.map +1 -1
  12. package/lib/components/set-tag-video/index.js +34 -6
  13. package/lib/components/set-tag-video/index.js.map +1 -1
  14. package/lib/components/set-tag-video/style/css.js.map +1 -1
  15. package/lib/components/set-tag-video/style/index.js.map +1 -1
  16. package/lib/components/split-screen/index.d.ts +1 -1
  17. package/lib/components/split-screen/index.js +14 -3
  18. package/lib/components/split-screen/index.js.map +1 -1
  19. package/lib/components/split-screen/style/css.js.map +1 -1
  20. package/lib/components/split-screen/style/index.js.map +1 -1
  21. package/lib/components/tag-video/index.js +38 -10
  22. package/lib/components/tag-video/index.js.map +1 -1
  23. package/lib/components/tag-video/style/css.js.map +1 -1
  24. package/lib/components/tag-video/style/index.js.map +1 -1
  25. package/lib/components/video-scale/index.d.ts +1 -1
  26. package/lib/components/video-scale/index.js +9 -2
  27. package/lib/components/video-scale/index.js.map +1 -1
  28. package/lib/components/video-scale/style/css.js.map +1 -1
  29. package/lib/components/video-scale/style/index.js.map +1 -1
  30. package/lib/context/index.js +4 -0
  31. package/lib/context/index.js.map +1 -1
  32. package/lib/controls/index.d.ts +3 -3
  33. package/lib/controls/index.js +97 -33
  34. package/lib/controls/index.js.map +1 -1
  35. package/lib/controls/style/css.js +5 -0
  36. package/lib/controls/style/css.js.map +1 -1
  37. package/lib/controls/style/index.js +5 -0
  38. package/lib/controls/style/index.js.map +1 -1
  39. package/lib/history-control/index.d.ts +2 -2
  40. package/lib/history-control/index.js +114 -57
  41. package/lib/history-control/index.js.map +1 -1
  42. package/lib/history-control/style/css.js +6 -0
  43. package/lib/history-control/style/css.js.map +1 -1
  44. package/lib/history-control/style/index.js +6 -0
  45. package/lib/history-control/style/index.js.map +1 -1
  46. package/lib/history-control-v2/components/grid-item/index.js +70 -32
  47. package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
  48. package/lib/history-control-v2/components/panel/index.js +105 -36
  49. package/lib/history-control-v2/components/panel/index.js.map +1 -1
  50. package/lib/history-control-v2/context.js +2 -0
  51. package/lib/history-control-v2/context.js.map +1 -1
  52. package/lib/history-control-v2/index.d.ts +4 -4
  53. package/lib/history-control-v2/index.js +163 -95
  54. package/lib/history-control-v2/index.js.map +1 -1
  55. package/lib/history-control-v2/style/css.js +10 -0
  56. package/lib/history-control-v2/style/css.js.map +1 -1
  57. package/lib/history-control-v2/style/index.js +10 -0
  58. package/lib/history-control-v2/style/index.js.map +1 -1
  59. package/lib/history-control-v2/utils.js +21 -1
  60. package/lib/history-control-v2/utils.js.map +1 -1
  61. package/lib/history-player/index.d.ts +1 -1
  62. package/lib/history-player/index.js +118 -73
  63. package/lib/history-player/index.js.map +1 -1
  64. package/lib/history-player/style/css.js +3 -0
  65. package/lib/history-player/style/css.js.map +1 -1
  66. package/lib/history-player/style/index.js +3 -0
  67. package/lib/history-player/style/index.js.map +1 -1
  68. package/lib/hooks/useSettings.js +6 -1
  69. package/lib/hooks/useSettings.js.map +1 -1
  70. package/lib/icons/index.js +171 -23
  71. package/lib/icons/index.js.map +1 -1
  72. package/lib/index.js +10 -0
  73. package/lib/index.js.map +1 -1
  74. package/lib/live-channel-player/index.js +67 -31
  75. package/lib/live-channel-player/index.js.map +1 -1
  76. package/lib/live-channel-player/style/css.js +1 -0
  77. package/lib/live-channel-player/style/css.js.map +1 -1
  78. package/lib/live-channel-player/style/index.js +1 -0
  79. package/lib/live-channel-player/style/index.js.map +1 -1
  80. package/lib/live-control/index.d.ts +2 -2
  81. package/lib/live-control/index.js +83 -32
  82. package/lib/live-control/index.js.map +1 -1
  83. package/lib/live-control/style/css.js +4 -0
  84. package/lib/live-control/style/css.js.map +1 -1
  85. package/lib/live-control/style/index.js +4 -0
  86. package/lib/live-control/style/index.js.map +1 -1
  87. package/lib/live-control-v2/index.d.ts +3 -3
  88. package/lib/live-control-v2/index.js +131 -59
  89. package/lib/live-control-v2/index.js.map +1 -1
  90. package/lib/live-control-v2/style/css.js +7 -0
  91. package/lib/live-control-v2/style/css.js.map +1 -1
  92. package/lib/live-control-v2/style/index.js +7 -0
  93. package/lib/live-control-v2/style/index.js.map +1 -1
  94. package/lib/live-player/index.js +58 -31
  95. package/lib/live-player/index.js.map +1 -1
  96. package/lib/live-player/style/css.js +2 -0
  97. package/lib/live-player/style/css.js.map +1 -1
  98. package/lib/live-player/style/index.js +2 -0
  99. package/lib/live-player/style/index.js.map +1 -1
  100. package/lib/player/index.d.ts +2 -2
  101. package/lib/player/index.js +127 -47
  102. package/lib/player/index.js.map +1 -1
  103. package/lib/typings/h5player.d.ts +1 -1
  104. package/lib/utils/index.d.ts +1 -1
  105. package/lib/utils/index.js +74 -8
  106. package/lib/utils/index.js.map +1 -1
  107. package/package.json +1 -1
@@ -4,29 +4,53 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
+
7
8
  var _jsxRuntime = require("react/jsx-runtime");
9
+
8
10
  var _react = require("react");
11
+
9
12
  var _api = require("../api");
13
+
10
14
  var _splitScreen = _interopRequireDefault(require("../components/split-screen"));
15
+
11
16
  var _videoScale = _interopRequireDefault(require("../components/video-scale"));
17
+
12
18
  var _controls = require("../controls");
19
+
13
20
  var _icons = require("../icons");
21
+
14
22
  var _livePlayer = _interopRequireDefault(require("../live-player"));
23
+
15
24
  var _utils = require("../utils");
25
+
16
26
  var _icons2 = require("@ant-design/icons");
27
+
17
28
  var _ahooks = require("ahooks");
29
+
18
30
  var _space = _interopRequireDefault(require("antd/lib/space"));
31
+
19
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
+
20
34
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
35
+
21
36
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
37
+
22
38
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
39
+
23
40
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
41
+
24
42
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
+
25
44
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
45
+
26
46
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
28
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
47
+
48
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
49
+
50
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
51
+
29
52
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
53
+
30
54
  var DEFAULT_GRID = 4;
31
55
  var DEFAULT_ACTIVE = 0;
32
56
  var DEFAULT_CHANNELS = Array(25).fill({
@@ -35,38 +59,42 @@ var DEFAULT_CHANNELS = Array(25).fill({
35
59
  /**
36
60
  * 实时分屏组件
37
61
  */
62
+
38
63
  var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
39
64
  var _props$height = props.height,
40
- height = _props$height === void 0 ? '100%' : _props$height,
41
- _props$width = props.width,
42
- width = _props$width === void 0 ? '100%' : _props$width,
43
- onExpandChange = props.onExpandChange,
44
- onPlayingChannelChange = props.onPlayingChannelChange,
45
- onVideoClose = props.onVideoClose,
46
- onCloseVideoInRotation = props.onCloseVideoInRotation,
47
- extraDom = props.extraDom,
48
- _props$gridChange = props.gridChange,
49
- gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
50
- onScreenshot = props.onScreenshot;
65
+ height = _props$height === void 0 ? '100%' : _props$height,
66
+ _props$width = props.width,
67
+ width = _props$width === void 0 ? '100%' : _props$width,
68
+ onExpandChange = props.onExpandChange,
69
+ onPlayingChannelChange = props.onPlayingChannelChange,
70
+ onVideoClose = props.onVideoClose,
71
+ onCloseVideoInRotation = props.onCloseVideoInRotation,
72
+ extraDom = props.extraDom,
73
+ _props$gridChange = props.gridChange,
74
+ gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
75
+ onScreenshot = props.onScreenshot;
76
+
51
77
  var _useSetState = (0, _ahooks.useSetState)({
52
- expand: true,
53
- grid: DEFAULT_GRID,
54
- activeIndex: DEFAULT_ACTIVE,
55
- channels: DEFAULT_CHANNELS,
56
- scale: '100%'
57
- }),
58
- _useSetState2 = _slicedToArray(_useSetState, 2),
59
- state = _useSetState2[0],
60
- setState = _useSetState2[1];
78
+ expand: true,
79
+ grid: DEFAULT_GRID,
80
+ activeIndex: DEFAULT_ACTIVE,
81
+ channels: DEFAULT_CHANNELS,
82
+ scale: '100%'
83
+ }),
84
+ _useSetState2 = _slicedToArray(_useSetState, 2),
85
+ state = _useSetState2[0],
86
+ setState = _useSetState2[1];
87
+
61
88
  var playRefs = (0, _react.useRef)({});
62
89
  var wrapRef = (0, _react.useRef)(null);
63
90
  var latestGrid = (0, _react.useRef)(DEFAULT_GRID);
91
+
64
92
  var _useFullscreen = (0, _ahooks.useFullscreen)(wrapRef),
65
- _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
66
- isFullscreen = _useFullscreen2[0],
67
- toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
68
- var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS);
69
- // 实时视频轮询
93
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
94
+ isFullscreen = _useFullscreen2[0],
95
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
96
+
97
+ var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS); // 实时视频轮询
70
98
  // useInterval(() => {
71
99
  // // 是否有视频正在播放
72
100
  // const hasVideo = channelRef.current.some((item) => item.channelNum);
@@ -80,6 +108,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
80
108
  // }, 0);
81
109
  // }
82
110
  // }, polling);
111
+
83
112
  (0, _react.useImperativeHandle)(ref, function () {
84
113
  return {
85
114
  setGrid: function setGrid(grid) {
@@ -89,6 +118,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
89
118
  var index = channelRef.current.findIndex(function (c) {
90
119
  return c.channelId && channel.channelId && c.channelId === channel.channelId;
91
120
  });
121
+
92
122
  if (~index) {
93
123
  setState({
94
124
  activeIndex: index
@@ -96,6 +126,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
96
126
  } else {
97
127
  // 播放该通道
98
128
  var newChannels = _toConsumableArray(channelRef.current);
129
+
99
130
  newChannels[state.activeIndex] = channel;
100
131
  var activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);
101
132
  channelRef.current = newChannels;
@@ -110,10 +141,11 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
110
141
  var adapt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
111
142
  var grid = latestGrid.current;
112
143
  var newChannels = [],
113
- activeIndex = state.activeIndex;
114
- // 每次清空已经在播放的视频
144
+ activeIndex = state.activeIndex; // 每次清空已经在播放的视频
145
+
115
146
  if (init) {
116
147
  adapt && (grid = getGrid(channels.length));
148
+
117
149
  for (var i = 0; i < Number(grid); i++) {
118
150
  newChannels.push(channels[i] ? channels[i] : {
119
151
  channelNum: ''
@@ -122,18 +154,21 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
154
  } else {
123
155
  // 不清空,找寻空闲窗口播放
124
156
  newChannels = _toConsumableArray(channelRef.current);
157
+
125
158
  for (var _i2 = 0; _i2 < channels.length; _i2++) {
126
159
  newChannels[activeIndex] = channels[_i2] || {
127
160
  channelNum: ''
128
161
  };
129
- var index = getActiveIndex(newChannels, latestGrid.current, activeIndex);
130
- // 如果相等,说明没有空闲窗口
162
+ var index = getActiveIndex(newChannels, latestGrid.current, activeIndex); // 如果相等,说明没有空闲窗口
163
+
131
164
  if (index === activeIndex) {
132
165
  break;
133
166
  }
167
+
134
168
  activeIndex = index;
135
169
  }
136
170
  }
171
+
137
172
  latestGrid.current = grid;
138
173
  channelRef.current = newChannels;
139
174
  setState({
@@ -146,9 +181,11 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
146
181
  var index = channelRef.current.findIndex(function (c) {
147
182
  return c.channelId === channelId;
148
183
  });
184
+
149
185
  if (~index) {
150
186
  // 卸载通道
151
187
  var newChannels = _toConsumableArray(channelRef.current);
188
+
152
189
  newChannels[index] = {
153
190
  channelNum: ''
154
191
  };
@@ -165,20 +202,24 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
165
202
  }));
166
203
  }
167
204
  }, [state.channels]);
205
+
168
206
  var handleCloseAll = function handleCloseAll() {
169
207
  setState({
170
208
  activeIndex: DEFAULT_ACTIVE
171
209
  });
172
210
  updateChannels(DEFAULT_CHANNELS);
173
211
  };
212
+
174
213
  var handleExpand = function handleExpand() {
175
214
  onExpandChange && onExpandChange(!state.expand);
176
215
  setState({
177
216
  expand: !state.expand
178
217
  });
179
218
  };
219
+
180
220
  var updateGrid = function updateGrid(grid) {
181
221
  var newChannels = _toConsumableArray(channelRef.current);
222
+
182
223
  if (grid > newChannels.length) {
183
224
  newChannels = DEFAULT_CHANNELS.slice(0, grid).map(function (item, index) {
184
225
  return newChannels[index] ? newChannels[index] : item;
@@ -186,23 +227,26 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
186
227
  } else {
187
228
  newChannels = newChannels.slice(0, grid);
188
229
  }
230
+
189
231
  latestGrid.current = grid;
190
232
  channelRef.current = newChannels;
191
233
  setState({
192
234
  grid: grid,
193
235
  channels: newChannels
194
- });
195
- // 重置视频大小
236
+ }); // 重置视频大小
237
+
196
238
  resizeAll();
197
239
  };
240
+
198
241
  var updateScale = function updateScale(scale) {
199
242
  setState({
200
243
  scale: scale
201
- });
202
- // 重置视频大小
244
+ }); // 重置视频大小
245
+
203
246
  resizeAll();
204
- };
205
- // 重置所有视频大小
247
+ }; // 重置所有视频大小
248
+
249
+
206
250
  var resizeAll = function resizeAll() {
207
251
  var timer = setTimeout(function () {
208
252
  Object.values(playRefs.current).forEach(function (player) {
@@ -211,23 +255,28 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
211
255
  clearTimeout(timer);
212
256
  }, 100);
213
257
  };
258
+
214
259
  var updateChannels = function updateChannels(channels) {
215
260
  channelRef.current = channels;
216
261
  setState({
217
262
  channels: channels
218
263
  });
219
- };
220
- // 关闭视频
264
+ }; // 关闭视频
265
+
266
+
221
267
  var closeVideo = function closeVideo(i) {
222
268
  var newChannels = _toConsumableArray(channelRef.current);
269
+
223
270
  onVideoClose && onVideoClose(newChannels[i]);
224
271
  newChannels[i] = {
225
272
  channelNum: ''
226
273
  };
227
274
  updateChannels(newChannels);
228
275
  };
276
+
229
277
  var getGridItems = function getGridItems() {
230
278
  var items = [];
279
+
231
280
  var _loop = function _loop(i) {
232
281
  var element = (0, _jsxRuntime.jsx)(GridItem, {
233
282
  ref: function ref(_ref) {
@@ -250,6 +299,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
250
299
  });
251
300
  return;
252
301
  }
302
+
253
303
  closeVideo(i);
254
304
  },
255
305
  scale: state.scale,
@@ -257,11 +307,14 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
257
307
  }, i);
258
308
  items.push(element);
259
309
  };
310
+
260
311
  for (var i = 0; i < Number(latestGrid.current); i++) {
261
312
  _loop(i);
262
313
  }
314
+
263
315
  return items;
264
316
  };
317
+
265
318
  return (0, _jsxRuntime.jsxs)("div", Object.assign({
266
319
  className: "vtx-live-control-v2",
267
320
  ref: wrapRef,
@@ -349,30 +402,34 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
349
402
  LiveControlV2.displayName = 'LiveControlV2';
350
403
  var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
351
404
  var active = props.active,
352
- onClick = props.onClick,
353
- channel = props.channel,
354
- onClose = props.onClose,
355
- onScreenshot = props.onScreenshot,
356
- scale = props.scale;
405
+ onClick = props.onClick,
406
+ channel = props.channel,
407
+ onClose = props.onClose,
408
+ onScreenshot = props.onScreenshot,
409
+ scale = props.scale;
357
410
  var empty = !channel.channelNum;
411
+
358
412
  var _useRequest = (0, _ahooks.useRequest)(function () {
359
- return (0, _api.getPreviewUrl)(channel);
360
- }, {
361
- ready: !!channel.channelNum,
362
- refreshDeps: [channel.channelNum]
363
- }),
364
- data = _useRequest.data,
365
- loading = _useRequest.loading;
413
+ return (0, _api.getPreviewUrl)(channel);
414
+ }, {
415
+ ready: !!channel.channelNum,
416
+ refreshDeps: [channel.channelNum]
417
+ }),
418
+ data = _useRequest.data,
419
+ loading = _useRequest.loading;
420
+
366
421
  var name = "".concat(data === null || data === void 0 ? void 0 : data.deviceName, "-").concat(data === null || data === void 0 ? void 0 : data.channelName);
422
+
367
423
  var _useSetState3 = (0, _ahooks.useSetState)({
368
- width: '100%',
369
- height: '100%'
370
- }),
371
- _useSetState4 = _slicedToArray(_useSetState3, 2),
372
- _useSetState4$ = _useSetState4[0],
373
- width = _useSetState4$.width,
374
- height = _useSetState4$.height,
375
- setState = _useSetState4[1];
424
+ width: '100%',
425
+ height: '100%'
426
+ }),
427
+ _useSetState4 = _slicedToArray(_useSetState3, 2),
428
+ _useSetState4$ = _useSetState4[0],
429
+ width = _useSetState4$.width,
430
+ height = _useSetState4$.height,
431
+ setState = _useSetState4[1];
432
+
376
433
  var gridItemRef = (0, _react.useRef)(null);
377
434
  var gridItemSize = (0, _ahooks.useSize)(gridItemRef);
378
435
  (0, _react.useEffect)(function () {
@@ -384,6 +441,7 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
384
441
  height: gridItemSize.height - 26
385
442
  });
386
443
  break;
444
+
387
445
  case '4*3':
388
446
  if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {
389
447
  setState({
@@ -396,7 +454,9 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
396
454
  height: '100%'
397
455
  });
398
456
  }
457
+
399
458
  break;
459
+
400
460
  case '16*9':
401
461
  if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {
402
462
  setState({
@@ -409,10 +469,12 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
409
469
  height: '100%'
410
470
  });
411
471
  }
472
+
412
473
  break;
413
474
  }
414
475
  }
415
476
  }, [gridItemSize, scale]);
477
+
416
478
  var handlePtzType = function handlePtzType(type) {
417
479
  var types = {
418
480
  1: 'all',
@@ -422,6 +484,7 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
422
484
  };
423
485
  return types[type];
424
486
  };
487
+
425
488
  return (0, _jsxRuntime.jsx)("div", Object.assign({
426
489
  className: "grid-item-container ".concat(active ? 'active' : '', " ").concat(loading ? '' : 'emptyImg'),
427
490
  onClick: onClick,
@@ -472,31 +535,40 @@ GridItem.displayName = 'grid-item';
472
535
  * @param currentIndex 当前索引
473
536
  * @returns
474
537
  */
538
+
475
539
  var getActiveIndex = function getActiveIndex(channels, grid, currentIndex) {
476
540
  var currentChannels = channels.slice(0, Number(grid));
541
+
477
542
  for (var i = currentIndex + 1; i < currentChannels.length; i++) {
478
543
  if (!currentChannels[i].channelNum) return i;
479
544
  }
545
+
480
546
  for (var _i3 = 0; _i3 < currentIndex; _i3++) {
481
547
  if (!currentChannels[_i3].channelNum) return _i3;
482
548
  }
549
+
483
550
  return currentIndex;
484
551
  };
552
+
485
553
  var grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];
486
554
  /**
487
555
  * 获取布局
488
556
  * @param len 通道数量
489
557
  */
558
+
490
559
  var getGrid = function getGrid(len) {
491
560
  var grid;
561
+
492
562
  for (var i = 0; i < grids.length; i++) {
493
563
  if (grids[i] - len >= 0) {
494
564
  grid = grids[i];
495
565
  break;
496
566
  }
497
567
  }
568
+
498
569
  return grid > 25 ? 25 : grid;
499
570
  };
571
+
500
572
  var _default = LiveControlV2;
501
573
  exports["default"] = _default;
502
574
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_splitScreen","_interopRequireDefault","_videoScale","_controls","_icons","_livePlayer","_utils","_icons2","_ahooks","_space","obj","__esModule","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","fill","channelNum","LiveControlV2","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onPlayingChannelChange","onVideoClose","onCloseVideoInRotation","extraDom","_props$gridChange","gridChange","onScreenshot","_useSetState","useSetState","expand","grid","activeIndex","channels","scale","_useSetState2","state","setState","playRefs","useRef","wrapRef","latestGrid","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","arguments","undefined","adapt","getGrid","Number","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","map","item","resizeAll","updateScale","timer","setTimeout","values","forEach","player","resize","clearTimeout","closeVideo","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","concat","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","deviceName","channelName","_useSetState3","_useSetState4","_useSetState4$","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","captureName","deviceId","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","_default","exports"],"sources":["live-control-v2/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport SplitScreen from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState, useSize } from 'ahooks';\nimport Space from 'antd/lib/space';\nconst DEFAULT_GRID = 4;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(25).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControlV2 = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onPlayingChannelChange, onVideoClose, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: '100%',\n });\n const playRefs = useRef({});\n const wrapRef = useRef(null);\n const latestGrid = useRef(DEFAULT_GRID);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n // useInterval(() => {\n // // 是否有视频正在播放\n // const hasVideo = channelRef.current.some((item) => item.channelNum);\n // if (polling && hasVideo) {\n // updateChannels(DEFAULT_CHANNELS);\n // const timer = setTimeout(() => {\n // setState({\n // channels: channelRef.current,\n // });\n // clearTimeout(timer);\n // }, 0);\n // }\n // }, polling);\n useImperativeHandle(ref, () => {\n return {\n setGrid: (grid) => {\n updateGrid(grid);\n },\n load: (channel) => {\n const index = channelRef.current.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...channelRef.current];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);\n channelRef.current = newChannels;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels, init = true, adapt = false) => {\n let grid = latestGrid.current;\n let newChannels = [], activeIndex = state.activeIndex;\n // 每次清空已经在播放的视频\n if (init) {\n adapt && (grid = getGrid(channels.length));\n for (let i = 0; i < Number(grid); i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n }\n else {\n // 不清空,找寻空闲窗口播放\n newChannels = [...channelRef.current];\n for (let i = 0; i < channels.length; i++) {\n newChannels[activeIndex] = channels[i] || { channelNum: '' };\n const index = getActiveIndex(newChannels, latestGrid.current, activeIndex);\n // 如果相等,说明没有空闲窗口\n if (index === activeIndex) {\n break;\n }\n activeIndex = index;\n }\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels, activeIndex });\n },\n unLoad: (channelId) => {\n const index = channelRef.current.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...channelRef.current];\n newChannels[index] = { channelNum: '' };\n updateChannels(newChannels);\n }\n },\n unLoadAll: handleCloseAll,\n };\n });\n useEffect(() => {\n if (onPlayingChannelChange) {\n onPlayingChannelChange(state.channels.filter((c) => !!c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({\n activeIndex: DEFAULT_ACTIVE,\n });\n updateChannels(DEFAULT_CHANNELS);\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const updateGrid = (grid) => {\n let newChannels = [...channelRef.current];\n if (grid > newChannels.length) {\n newChannels = DEFAULT_CHANNELS.slice(0, grid).map((item, index) => {\n return newChannels[index] ? newChannels[index] : item;\n });\n }\n else {\n newChannels = newChannels.slice(0, grid);\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels });\n // 重置视频大小\n resizeAll();\n };\n const updateScale = (scale) => {\n setState({ scale });\n // 重置视频大小\n resizeAll();\n };\n // 重置所有视频大小\n const resizeAll = () => {\n const timer = setTimeout(() => {\n Object.values(playRefs.current).forEach((player) => {\n player && player.resize();\n });\n clearTimeout(timer);\n }, 100);\n };\n const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const newChannels = [...channelRef.current];\n onVideoClose && onVideoClose(newChannels[i]);\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { ref: ref => {\n playRefs.current[i] = ref;\n }, active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: channelRef.current[i] || { channelNum: '' }, onClose: () => {\n // 如果正在轮播\n if (onCloseVideoInRotation) {\n onCloseVideoInRotation(() => closeVideo(i));\n return;\n }\n closeVideo(i);\n }, scale: state.scale, onScreenshot: onScreenshot }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-control-v2\", ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsxs(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, {}) }))), extraDom ? extraDom : null] })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), gridChange ? (_jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => updateGrid(grid) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) }))) : (_jsxs(\"div\", Object.assign({ className: 'grid-change-disable' }, { children: [_jsx(GridIcon, { disabled: !gridChange }), _jsx(DownOutlined, { className: \"arrow\" })] }))), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => updateScale(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});\nLiveControlV2.displayName = 'LiveControlV2';\nconst GridItem = forwardRef((props, ref) => {\n const { active, onClick, channel, onClose, onScreenshot, scale } = props;\n const empty = !channel.channelNum;\n const { data, loading } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const handlePtzType = (type) => {\n const types = {\n 1: 'all',\n 2: 'onlyFocus',\n 3: 'onlyRotate',\n 4: 'none',\n };\n return types[type];\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(VtxLivePlayer, { ref: ref, url: data.url, type: (data === null || data === void 0 ? void 0 : data.player) || '', captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, showInfo: channel.showInfo, info: channel.info, screenshot: onScreenshot, cloudParams: {\n query: {\n channelNum: data.channelNum,\n deviceId: data.deviceId,\n tenantId: getUrlParam('tenantId'),\n },\n type: handlePtzType(data.ptzType),\n } }) })) }))] })) })));\n});\nGridItem.displayName = 'grid-item';\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, Number(grid));\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nconst grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];\n/**\n * 获取布局\n * @param len 通道数量\n */\nconst getGrid = (len) => {\n let grid;\n for (let i = 0; i < grids.length; i++) {\n if (grids[i] - len >= 0) {\n grid = grids[i];\n break;\n }\n }\n return grid > 25 ? 25 : grid;\n};\nexport default LiveControlV2;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","Array","fill","channelNum","LiveControlV2","forwardRef","props","ref","height","width","onExpandChange","onPlayingChannelChange","onVideoClose","onCloseVideoInRotation","extraDom","gridChange","onScreenshot","useSetState","expand","grid","activeIndex","channels","scale","state","setState","playRefs","useRef","wrapRef","latestGrid","useFullscreen","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","adapt","getGrid","length","i","Number","push","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","slice","map","item","resizeAll","updateScale","timer","setTimeout","Object","values","forEach","player","resize","clearTimeout","closeVideo","getGridItems","items","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","name","deviceName","channelName","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","captureName","deviceId","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","len"],"sources":["live-control-v2/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport SplitScreen from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState, useSize } from 'ahooks';\nimport Space from 'antd/lib/space';\nconst DEFAULT_GRID = 4;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(25).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControlV2 = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onPlayingChannelChange, onVideoClose, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: '100%',\n });\n const playRefs = useRef({});\n const wrapRef = useRef(null);\n const latestGrid = useRef(DEFAULT_GRID);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n // useInterval(() => {\n // // 是否有视频正在播放\n // const hasVideo = channelRef.current.some((item) => item.channelNum);\n // if (polling && hasVideo) {\n // updateChannels(DEFAULT_CHANNELS);\n // const timer = setTimeout(() => {\n // setState({\n // channels: channelRef.current,\n // });\n // clearTimeout(timer);\n // }, 0);\n // }\n // }, polling);\n useImperativeHandle(ref, () => {\n return {\n setGrid: (grid) => {\n updateGrid(grid);\n },\n load: (channel) => {\n const index = channelRef.current.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...channelRef.current];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);\n channelRef.current = newChannels;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels, init = true, adapt = false) => {\n let grid = latestGrid.current;\n let newChannels = [], activeIndex = state.activeIndex;\n // 每次清空已经在播放的视频\n if (init) {\n adapt && (grid = getGrid(channels.length));\n for (let i = 0; i < Number(grid); i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n }\n else {\n // 不清空,找寻空闲窗口播放\n newChannels = [...channelRef.current];\n for (let i = 0; i < channels.length; i++) {\n newChannels[activeIndex] = channels[i] || { channelNum: '' };\n const index = getActiveIndex(newChannels, latestGrid.current, activeIndex);\n // 如果相等,说明没有空闲窗口\n if (index === activeIndex) {\n break;\n }\n activeIndex = index;\n }\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels, activeIndex });\n },\n unLoad: (channelId) => {\n const index = channelRef.current.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...channelRef.current];\n newChannels[index] = { channelNum: '' };\n updateChannels(newChannels);\n }\n },\n unLoadAll: handleCloseAll,\n };\n });\n useEffect(() => {\n if (onPlayingChannelChange) {\n onPlayingChannelChange(state.channels.filter((c) => !!c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({\n activeIndex: DEFAULT_ACTIVE,\n });\n updateChannels(DEFAULT_CHANNELS);\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const updateGrid = (grid) => {\n let newChannels = [...channelRef.current];\n if (grid > newChannels.length) {\n newChannels = DEFAULT_CHANNELS.slice(0, grid).map((item, index) => {\n return newChannels[index] ? newChannels[index] : item;\n });\n }\n else {\n newChannels = newChannels.slice(0, grid);\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels });\n // 重置视频大小\n resizeAll();\n };\n const updateScale = (scale) => {\n setState({ scale });\n // 重置视频大小\n resizeAll();\n };\n // 重置所有视频大小\n const resizeAll = () => {\n const timer = setTimeout(() => {\n Object.values(playRefs.current).forEach((player) => {\n player && player.resize();\n });\n clearTimeout(timer);\n }, 100);\n };\n const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const newChannels = [...channelRef.current];\n onVideoClose && onVideoClose(newChannels[i]);\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { ref: ref => {\n playRefs.current[i] = ref;\n }, active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: channelRef.current[i] || { channelNum: '' }, onClose: () => {\n // 如果正在轮播\n if (onCloseVideoInRotation) {\n onCloseVideoInRotation(() => closeVideo(i));\n return;\n }\n closeVideo(i);\n }, scale: state.scale, onScreenshot: onScreenshot }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-control-v2\", ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsxs(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, {}) }))), extraDom ? extraDom : null] })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), gridChange ? (_jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => updateGrid(grid) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) }))) : (_jsxs(\"div\", Object.assign({ className: 'grid-change-disable' }, { children: [_jsx(GridIcon, { disabled: !gridChange }), _jsx(DownOutlined, { className: \"arrow\" })] }))), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => updateScale(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});\nLiveControlV2.displayName = 'LiveControlV2';\nconst GridItem = forwardRef((props, ref) => {\n const { active, onClick, channel, onClose, onScreenshot, scale } = props;\n const empty = !channel.channelNum;\n const { data, loading } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const handlePtzType = (type) => {\n const types = {\n 1: 'all',\n 2: 'onlyFocus',\n 3: 'onlyRotate',\n 4: 'none',\n };\n return types[type];\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(VtxLivePlayer, { ref: ref, url: data.url, type: (data === null || data === void 0 ? void 0 : data.player) || '', captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, showInfo: channel.showInfo, info: channel.info, screenshot: onScreenshot, cloudParams: {\n query: {\n channelNum: data.channelNum,\n deviceId: data.deviceId,\n tenantId: getUrlParam('tenantId'),\n },\n type: handlePtzType(data.ptzType),\n } }) })) }))] })) })));\n});\nGridItem.displayName = 'grid-item';\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, Number(grid));\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nconst grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];\n/**\n * 获取布局\n * @param len 通道数量\n */\nconst getGrid = (len) => {\n let grid;\n for (let i = 0; i < grids.length; i++) {\n if (grids[i] - len >= 0) {\n grid = grids[i];\n break;\n }\n }\n return grid > 25 ? 25 : grid;\n};\nexport default LiveControlV2;\n"],"mappings":"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"}
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  require("antd/lib/popover/style/css");
4
+
4
5
  require("antd/lib/space/style/css");
6
+
5
7
  require("antd/lib/tooltip/style/css");
8
+
6
9
  require("../../controls/style/css");
10
+
7
11
  require("../../live-player/style/css");
12
+
8
13
  require("../../components/split-screen/style/css");
14
+
9
15
  require("../../components/video-scale/style/css");
16
+
10
17
  require("./index.css");
11
18
  //# sourceMappingURL=css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":["require"],"sources":["live-control-v2/style/index.js"],"sourcesContent":["import 'antd/lib/popover/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/tooltip/style';\nimport '../../controls/style';\nimport '../../live-player/style';\nimport '../../components/split-screen/style';\nimport '../../components/video-scale/style';\nimport './index.less';\n"],"mappings":";;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA"}
1
+ {"version":3,"file":"css.js","names":[],"sources":["live-control-v2/style/index.js"],"sourcesContent":["import 'antd/lib/popover/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/tooltip/style';\nimport '../../controls/style';\nimport '../../live-player/style';\nimport '../../components/split-screen/style';\nimport '../../components/video-scale/style';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA"}
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  require("antd/lib/popover/style");
4
+
4
5
  require("antd/lib/space/style");
6
+
5
7
  require("antd/lib/tooltip/style");
8
+
6
9
  require("../../controls/style");
10
+
7
11
  require("../../live-player/style");
12
+
8
13
  require("../../components/split-screen/style");
14
+
9
15
  require("../../components/video-scale/style");
16
+
10
17
  require("./index.less");
11
18
  //# sourceMappingURL=index.js.map