@vtx/player 1.7.13 → 1.7.14

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 (143) hide show
  1. package/README.md +2 -2
  2. package/lib/api/fetch.js +62 -91
  3. package/lib/api/fetch.js.map +1 -1
  4. package/lib/api/index.js +18 -63
  5. package/lib/api/index.js.map +1 -1
  6. package/lib/api/types.d.ts +5 -5
  7. package/lib/bd/PlayerManager.js +38 -68
  8. package/lib/bd/PlayerManager.js.map +1 -1
  9. package/lib/bill-player/index.d.ts +1 -1
  10. package/lib/bill-player/index.js +66 -121
  11. package/lib/bill-player/index.js.map +1 -1
  12. package/lib/bill-player/style/css.js +0 -9
  13. package/lib/bill-player/style/css.js.map +1 -1
  14. package/lib/bill-player/style/index.js +0 -9
  15. package/lib/bill-player/style/index.js.map +1 -1
  16. package/lib/bill-player/style/index.less +297 -297
  17. package/lib/components/set-tag-video/index.js +6 -34
  18. package/lib/components/set-tag-video/index.js.map +1 -1
  19. package/lib/components/set-tag-video/style/css.js.map +1 -1
  20. package/lib/components/set-tag-video/style/index.js.map +1 -1
  21. package/lib/components/set-tag-video/style/index.less +125 -125
  22. package/lib/components/split-screen/index.d.ts +1 -1
  23. package/lib/components/split-screen/index.js +3 -14
  24. package/lib/components/split-screen/index.js.map +1 -1
  25. package/lib/components/split-screen/style/css.js.map +1 -1
  26. package/lib/components/split-screen/style/index.js.map +1 -1
  27. package/lib/components/tag-video/index.js +10 -38
  28. package/lib/components/tag-video/index.js.map +1 -1
  29. package/lib/components/tag-video/style/css.js.map +1 -1
  30. package/lib/components/tag-video/style/index.js.map +1 -1
  31. package/lib/components/tag-video/style/index.less +69 -69
  32. package/lib/components/video-scale/index.d.ts +1 -1
  33. package/lib/components/video-scale/index.js +2 -9
  34. package/lib/components/video-scale/index.js.map +1 -1
  35. package/lib/components/video-scale/style/css.js.map +1 -1
  36. package/lib/components/video-scale/style/index.js.map +1 -1
  37. package/lib/context/index.js +0 -4
  38. package/lib/context/index.js.map +1 -1
  39. package/lib/controls/index.d.ts +11 -11
  40. package/lib/controls/index.js +34 -99
  41. package/lib/controls/index.js.map +1 -1
  42. package/lib/controls/style/css.js +0 -5
  43. package/lib/controls/style/css.js.map +1 -1
  44. package/lib/controls/style/index.js +0 -5
  45. package/lib/controls/style/index.js.map +1 -1
  46. package/lib/controls/style/index.less +188 -188
  47. package/lib/h264/PlayerManager.js +18 -27
  48. package/lib/h264/PlayerManager.js.map +1 -1
  49. package/lib/history-control/index.d.ts +2 -2
  50. package/lib/history-control/index.js +61 -121
  51. package/lib/history-control/index.js.map +1 -1
  52. package/lib/history-control/style/css.js +0 -6
  53. package/lib/history-control/style/css.js.map +1 -1
  54. package/lib/history-control/style/index.js +0 -6
  55. package/lib/history-control/style/index.js.map +1 -1
  56. package/lib/history-control/style/index.less +252 -252
  57. package/lib/history-control-v2/components/grid-item/index.js +38 -77
  58. package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
  59. package/lib/history-control-v2/components/panel/index.js +44 -114
  60. package/lib/history-control-v2/components/panel/index.js.map +1 -1
  61. package/lib/history-control-v2/context.js +0 -2
  62. package/lib/history-control-v2/context.js.map +1 -1
  63. package/lib/history-control-v2/index.d.ts +4 -4
  64. package/lib/history-control-v2/index.js +97 -166
  65. package/lib/history-control-v2/index.js.map +1 -1
  66. package/lib/history-control-v2/style/css.js +0 -10
  67. package/lib/history-control-v2/style/css.js.map +1 -1
  68. package/lib/history-control-v2/style/index.js +0 -10
  69. package/lib/history-control-v2/style/index.js.map +1 -1
  70. package/lib/history-control-v2/style/index.less +437 -437
  71. package/lib/history-control-v2/utils.js +1 -21
  72. package/lib/history-control-v2/utils.js.map +1 -1
  73. package/lib/history-player/index.d.ts +1 -1
  74. package/lib/history-player/index.js +146 -205
  75. package/lib/history-player/index.js.map +1 -1
  76. package/lib/history-player/style/css.js +0 -3
  77. package/lib/history-player/style/css.js.map +1 -1
  78. package/lib/history-player/style/index.js +0 -3
  79. package/lib/history-player/style/index.js.map +1 -1
  80. package/lib/history-player/style/index.less +102 -102
  81. package/lib/hooks/useSettings.js +1 -6
  82. package/lib/hooks/useSettings.js.map +1 -1
  83. package/lib/icc/PlayerManager.js +26 -57
  84. package/lib/icc/PlayerManager.js.map +1 -1
  85. package/lib/icc/api.d.ts +0 -68
  86. package/lib/icc/api.js +2 -16
  87. package/lib/icc/api.js.map +1 -1
  88. package/lib/icons/index.d.ts +36 -36
  89. package/lib/icons/index.js +23 -171
  90. package/lib/icons/index.js.map +1 -1
  91. package/lib/icons/index.less +32 -32
  92. package/lib/index.js +0 -10
  93. package/lib/index.js.map +1 -1
  94. package/lib/live-channel-player/index.d.ts +1 -1
  95. package/lib/live-channel-player/index.js +31 -67
  96. package/lib/live-channel-player/index.js.map +1 -1
  97. package/lib/live-channel-player/style/css.js +0 -1
  98. package/lib/live-channel-player/style/css.js.map +1 -1
  99. package/lib/live-channel-player/style/index.js +0 -1
  100. package/lib/live-channel-player/style/index.js.map +1 -1
  101. package/lib/live-control/index.d.ts +2 -2
  102. package/lib/live-control/index.js +35 -86
  103. package/lib/live-control/index.js.map +1 -1
  104. package/lib/live-control/style/css.js +0 -4
  105. package/lib/live-control/style/css.js.map +1 -1
  106. package/lib/live-control/style/index.js +0 -4
  107. package/lib/live-control/style/index.js.map +1 -1
  108. package/lib/live-control/style/index.less +99 -99
  109. package/lib/live-control-v2/index.d.ts +3 -3
  110. package/lib/live-control-v2/index.js +108 -141
  111. package/lib/live-control-v2/index.js.map +1 -1
  112. package/lib/live-control-v2/style/css.js +0 -7
  113. package/lib/live-control-v2/style/css.js.map +1 -1
  114. package/lib/live-control-v2/style/index.js +0 -7
  115. package/lib/live-control-v2/style/index.js.map +1 -1
  116. package/lib/live-control-v2/style/index.less +192 -192
  117. package/lib/live-player/index.js +95 -136
  118. package/lib/live-player/index.js.map +1 -1
  119. package/lib/live-player/style/css.js +0 -2
  120. package/lib/live-player/style/css.js.map +1 -1
  121. package/lib/live-player/style/index.js +0 -2
  122. package/lib/live-player/style/index.js.map +1 -1
  123. package/lib/live-player/style/index.less +75 -75
  124. package/lib/player/index.d.ts +1 -1
  125. package/lib/player/index.js +79 -244
  126. package/lib/player/index.js.map +1 -1
  127. package/lib/rsl/PlayerManager.js +18 -64
  128. package/lib/rsl/PlayerManager.js.map +1 -1
  129. package/lib/typings/@vtx/utils/index.d.ts +28 -28
  130. package/lib/typings/h5player.d.ts +146 -146
  131. package/lib/typings/webrtcplayer.d.ts +56 -56
  132. package/lib/typings/wsplayer.d.ts +99 -99
  133. package/lib/utils/index.d.ts +1 -1
  134. package/lib/utils/index.js +12 -91
  135. package/lib/utils/index.js.map +1 -1
  136. package/lib/vite-env.d.ts +1 -1
  137. package/lib/vtxHls/PlayerManager.js +6 -20
  138. package/lib/vtxHls/PlayerManager.js.map +1 -1
  139. package/lib/vtxHls/WhepManager.js +9 -72
  140. package/lib/vtxHls/WhepManager.js.map +1 -1
  141. package/lib/webrtc/PlayerManager.js +28 -41
  142. package/lib/webrtc/PlayerManager.js.map +1 -1
  143. package/package.json +125 -125
@@ -4,53 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
-
8
7
  var _jsxRuntime = require("react/jsx-runtime");
9
-
10
8
  var _react = require("react");
11
-
12
9
  var _api = require("../api");
13
-
14
10
  var _splitScreen = _interopRequireDefault(require("../components/split-screen"));
15
-
16
11
  var _videoScale = _interopRequireDefault(require("../components/video-scale"));
17
-
18
12
  var _controls = require("../controls");
19
-
20
13
  var _icons = require("../icons");
21
-
22
14
  var _livePlayer = _interopRequireDefault(require("../live-player"));
23
-
24
15
  var _utils = require("../utils");
25
-
26
16
  var _icons2 = require("@ant-design/icons");
27
-
28
17
  var _ahooks = require("ahooks");
29
-
30
18
  var _space = _interopRequireDefault(require("antd/lib/space"));
31
-
32
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
-
34
20
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
35
-
36
21
  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
-
38
22
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
39
-
40
23
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
41
-
42
24
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
-
44
25
  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
-
46
26
  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); }
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
-
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; } }
52
29
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
53
-
54
30
  var DEFAULT_GRID = 4;
55
31
  var DEFAULT_ACTIVE = 0;
56
32
  var DEFAULT_CHANNELS = Array(25).fill({
@@ -60,45 +36,42 @@ var DEFAULT_CHANNELS = Array(25).fill({
60
36
  /**
61
37
  * 实时分屏组件
62
38
  */
63
-
64
39
  var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
65
40
  var _props$height = props.height,
66
- height = _props$height === void 0 ? '100%' : _props$height,
67
- _props$width = props.width,
68
- width = _props$width === void 0 ? '100%' : _props$width,
69
- onExpandChange = props.onExpandChange,
70
- onPlayingChannelChange = props.onPlayingChannelChange,
71
- onVideoClose = props.onVideoClose,
72
- onVideoCloseAll = props.onVideoCloseAll,
73
- onCloseVideoInRotation = props.onCloseVideoInRotation,
74
- extraDom = props.extraDom,
75
- _props$gridChange = props.gridChange,
76
- gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
77
- onScreenshot = props.onScreenshot,
78
- scale = props.scale,
79
- defaultGrid = props.defaultGrid;
80
-
41
+ height = _props$height === void 0 ? '100%' : _props$height,
42
+ _props$width = props.width,
43
+ width = _props$width === void 0 ? '100%' : _props$width,
44
+ onExpandChange = props.onExpandChange,
45
+ onPlayingChannelChange = props.onPlayingChannelChange,
46
+ onVideoClose = props.onVideoClose,
47
+ onVideoCloseAll = props.onVideoCloseAll,
48
+ onCloseVideoInRotation = props.onCloseVideoInRotation,
49
+ extraDom = props.extraDom,
50
+ _props$gridChange = props.gridChange,
51
+ gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
52
+ onScreenshot = props.onScreenshot,
53
+ scale = props.scale,
54
+ defaultGrid = props.defaultGrid;
81
55
  var _useSetState = (0, _ahooks.useSetState)({
82
- expand: true,
83
- grid: defaultGrid || DEFAULT_GRID,
84
- activeIndex: DEFAULT_ACTIVE,
85
- channels: DEFAULT_CHANNELS,
86
- scale: scale || '100%'
87
- }),
88
- _useSetState2 = _slicedToArray(_useSetState, 2),
89
- state = _useSetState2[0],
90
- setState = _useSetState2[1];
91
-
56
+ expand: true,
57
+ grid: defaultGrid || DEFAULT_GRID,
58
+ activeIndex: DEFAULT_ACTIVE,
59
+ channels: DEFAULT_CHANNELS,
60
+ scale: scale || '100%'
61
+ }),
62
+ _useSetState2 = _slicedToArray(_useSetState, 2),
63
+ state = _useSetState2[0],
64
+ setState = _useSetState2[1];
65
+ var dragRef = (0, _react.useRef)(null);
92
66
  var playRefs = (0, _react.useRef)({});
93
67
  var wrapRef = (0, _react.useRef)(null);
94
68
  var latestGrid = (0, _react.useRef)(defaultGrid || DEFAULT_GRID);
95
-
96
69
  var _useFullscreen = (0, _ahooks.useFullscreen)(wrapRef),
97
- _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
98
- isFullscreen = _useFullscreen2[0],
99
- toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
100
-
101
- var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS); // 实时视频轮询
70
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
71
+ isFullscreen = _useFullscreen2[0],
72
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
73
+ var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS);
74
+ // 实时视频轮询
102
75
  // useInterval(() => {
103
76
  // // 是否有视频正在播放
104
77
  // const hasVideo = channelRef.current.some((item) => item.channelNum);
@@ -112,7 +85,6 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
112
85
  // }, 0);
113
86
  // }
114
87
  // }, polling);
115
-
116
88
  (0, _react.useImperativeHandle)(ref, function () {
117
89
  return {
118
90
  setGrid: function setGrid(grid) {
@@ -122,7 +94,6 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
94
  var index = channelRef.current.findIndex(function (c) {
123
95
  return c.channelId && channel.channelId && c.channelId === channel.channelId;
124
96
  });
125
-
126
97
  if (~index) {
127
98
  setState({
128
99
  activeIndex: index
@@ -130,7 +101,6 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
130
101
  } else {
131
102
  // 播放该通道
132
103
  var newChannels = _toConsumableArray(channelRef.current);
133
-
134
104
  newChannels[state.activeIndex] = channel;
135
105
  var activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);
136
106
  channelRef.current = newChannels;
@@ -145,11 +115,10 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
145
115
  var adapt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
146
116
  var grid = latestGrid.current;
147
117
  var newChannels = [],
148
- activeIndex = state.activeIndex; // 每次清空已经在播放的视频
149
-
118
+ activeIndex = state.activeIndex;
119
+ // 每次清空已经在播放的视频
150
120
  if (init) {
151
121
  adapt && (grid = getGrid(channels.length));
152
-
153
122
  for (var i = 0; i < Number(grid); i++) {
154
123
  newChannels.push(channels[i] ? channels[i] : {
155
124
  channelNum: '',
@@ -164,30 +133,26 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
164
133
  adapt && (grid = getGrid(channelLength));
165
134
  newChannels = _toConsumableArray(new Array(grid)).map(function (item, index) {
166
135
  var _a, _b;
167
-
168
136
  if (((_a = channelRef.current[index]) === null || _a === void 0 ? void 0 : _a.channelNum) || ((_b = channelRef.current[index]) === null || _b === void 0 ? void 0 : _b.channelId)) {
169
137
  return channelRef.current[index];
170
138
  }
171
-
172
139
  return {
173
140
  channelNum: '',
174
141
  channelId: ''
175
142
  };
176
143
  });
177
-
178
144
  var _loop = function _loop(_i2) {
179
145
  var isRepeat = newChannels.find(function (item) {
180
146
  var _a, _b;
181
-
182
147
  return (item === null || item === void 0 ? void 0 : item.channelNum) === ((_a = channels[_i2]) === null || _a === void 0 ? void 0 : _a.channelNum) || (item === null || item === void 0 ? void 0 : item.channelId) === ((_b = channels[_i2]) === null || _b === void 0 ? void 0 : _b.channelId);
183
- }); // 如果之前在播放,则不需重复打开新窗口
184
-
148
+ });
149
+ // 如果之前在播放,则不需重复打开新窗口
185
150
  if (!isRepeat) {
186
- var index = getActiveIndex(newChannels, grid, activeIndex); // 如果相等,说明没有空闲窗口
151
+ var index = getActiveIndex(newChannels, grid, activeIndex);
152
+ // 如果相等,说明没有空闲窗口
187
153
  // if (index === activeIndex) {
188
154
  // break;
189
155
  // }
190
-
191
156
  if (activeIndex === grid) return "break";
192
157
  newChannels[index] = channels[_i2] || {
193
158
  channelNum: '',
@@ -196,14 +161,11 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
196
161
  activeIndex = index + 1;
197
162
  }
198
163
  };
199
-
200
164
  for (var _i2 = 0; _i2 < channels.length; _i2++) {
201
165
  var _ret = _loop(_i2);
202
-
203
166
  if (_ret === "break") break;
204
167
  }
205
168
  }
206
-
207
169
  latestGrid.current = grid;
208
170
  channelRef.current = newChannels;
209
171
  setState({
@@ -216,11 +178,9 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
216
178
  var index = channelRef.current.findIndex(function (c) {
217
179
  return c.channelId === channelId;
218
180
  });
219
-
220
181
  if (~index) {
221
182
  // 卸载通道
222
183
  var newChannels = _toConsumableArray(channelRef.current);
223
-
224
184
  newChannels[index] = {
225
185
  channelNum: '',
226
186
  channelId: ''
@@ -238,7 +198,6 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
238
198
  }));
239
199
  }
240
200
  }, [state.channels]);
241
-
242
201
  var handleCloseAll = function handleCloseAll() {
243
202
  setState({
244
203
  activeIndex: DEFAULT_ACTIVE
@@ -247,17 +206,14 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
247
206
  updateChannels(DEFAULT_CHANNELS);
248
207
  onVideoCloseAll && onVideoCloseAll();
249
208
  };
250
-
251
209
  var handleExpand = function handleExpand() {
252
210
  onExpandChange && onExpandChange(!state.expand);
253
211
  setState({
254
212
  expand: !state.expand
255
213
  });
256
214
  };
257
-
258
215
  var updateGrid = function updateGrid(grid) {
259
216
  var newChannels = _toConsumableArray(channelRef.current);
260
-
261
217
  if (grid > newChannels.length) {
262
218
  newChannels = DEFAULT_CHANNELS.slice(0, grid).map(function (item, index) {
263
219
  return newChannels[index] ? newChannels[index] : item;
@@ -265,26 +221,23 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
265
221
  } else {
266
222
  newChannels = newChannels.slice(0, grid);
267
223
  }
268
-
269
224
  latestGrid.current = grid;
270
225
  channelRef.current = newChannels;
271
226
  setState({
272
227
  grid: grid,
273
228
  channels: newChannels
274
- }); // 重置视频大小
275
-
229
+ });
230
+ // 重置视频大小
276
231
  resizeAll();
277
232
  };
278
-
279
233
  var updateScale = function updateScale(scale) {
280
234
  setState({
281
235
  scale: scale
282
- }); // 重置视频大小
283
-
236
+ });
237
+ // 重置视频大小
284
238
  resizeAll();
285
- }; // 重置所有视频大小
286
-
287
-
239
+ };
240
+ // 重置所有视频大小
288
241
  var resizeAll = function resizeAll() {
289
242
  var timer = setTimeout(function () {
290
243
  Object.values(playRefs.current).forEach(function (player) {
@@ -293,20 +246,16 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
293
246
  clearTimeout(timer);
294
247
  }, 100);
295
248
  };
296
-
297
249
  var updateChannels = function updateChannels(channels) {
298
250
  channelRef.current = channels;
299
251
  setState({
300
252
  channels: channels
301
253
  });
302
- }; // 关闭视频
303
-
304
-
254
+ };
255
+ // 关闭视频
305
256
  var closeVideo = function closeVideo(i) {
306
257
  var currChannels = _toConsumableArray(channelRef.current);
307
-
308
258
  var newChannels = _toConsumableArray(channelRef.current);
309
-
310
259
  newChannels[i] = {
311
260
  channelNum: '',
312
261
  channelId: ''
@@ -314,10 +263,8 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
314
263
  updateChannels(newChannels);
315
264
  onVideoClose && onVideoClose(currChannels[i], newChannels);
316
265
  };
317
-
318
266
  var getGridItems = function getGridItems() {
319
267
  var items = [];
320
-
321
268
  var _loop2 = function _loop2(i) {
322
269
  var element = (0, _jsxRuntime.jsx)(GridItem, {
323
270
  ref: function ref(_ref) {
@@ -341,7 +288,6 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
341
288
  });
342
289
  return;
343
290
  }
344
-
345
291
  closeVideo(i);
346
292
  },
347
293
  scale: state.scale,
@@ -349,14 +295,28 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
349
295
  }, i);
350
296
  items.push(element);
351
297
  };
352
-
353
298
  for (var i = 0; i < Number(latestGrid.current); i++) {
354
299
  _loop2(i);
355
300
  }
356
-
357
301
  return items;
358
302
  };
359
-
303
+ function _index(el) {
304
+ var index = 0;
305
+ if (!el || !el.parentNode) {
306
+ return -1;
307
+ }
308
+ // previousElementSibling:上一个兄弟元素
309
+ while (el && (el = el.previousElementSibling)) {
310
+ index++;
311
+ }
312
+ return index;
313
+ }
314
+ function findParent(el, className) {
315
+ if (el.className && typeof el.className == 'string' && el.className.indexOf(className) > -1) {
316
+ return el;
317
+ }
318
+ return findParent(el.parentNode, className);
319
+ }
360
320
  return (0, _jsxRuntime.jsxs)("div", Object.assign({
361
321
  className: "vtx-live-control-v2",
362
322
  ref: wrapRef,
@@ -366,7 +326,32 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
366
326
  }
367
327
  }, {
368
328
  children: [(0, _jsxRuntime.jsx)("div", Object.assign({
369
- className: "player-grid-container _".concat(state.grid)
329
+ className: "player-grid-container _".concat(state.grid),
330
+ onDragStart: function onDragStart(e) {
331
+ dragRef.current = e.target;
332
+ },
333
+ onDragOver: function onDragOver(e) {
334
+ if (!e.target) {
335
+ return;
336
+ }
337
+ var target = e.target;
338
+ if (target == null) {
339
+ return;
340
+ }
341
+ target = findParent(target, 'grid-item-container');
342
+ var indexDraging = _index(dragRef.current),
343
+ indexTarget = _index(target);
344
+ try {
345
+ if (indexDraging < indexTarget) {
346
+ // 目标比元素大,插到其后面
347
+ // extSibling下一个兄弟元素
348
+ target.parentNode.insertBefore(dragRef.current, target.nextSibling);
349
+ } else if (indexDraging > indexTarget) {
350
+ // 目标比元素小,插到其前面
351
+ target.parentNode.insertBefore(dragRef.current, target);
352
+ }
353
+ } catch (e) {}
354
+ }
370
355
  }, {
371
356
  children: getGridItems()
372
357
  })), (0, _jsxRuntime.jsxs)("div", Object.assign({
@@ -444,23 +429,21 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
444
429
  LiveControlV2.displayName = 'LiveControlV2';
445
430
  var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
446
431
  var active = props.active,
447
- onClick = props.onClick,
448
- channel = props.channel,
449
- onClose = props.onClose,
450
- onScreenshot = props.onScreenshot,
451
- scale = props.scale;
432
+ onClick = props.onClick,
433
+ channel = props.channel,
434
+ onClose = props.onClose,
435
+ onScreenshot = props.onScreenshot,
436
+ scale = props.scale;
452
437
  var empty = !channel.channelNum && !channel.channelId;
453
-
454
438
  var _useState = (0, _react.useState)({}),
455
- _useState2 = _slicedToArray(_useState, 2),
456
- actData = _useState2[0],
457
- setActData = _useState2[1];
458
-
459
- var loading = false; // const { data, loading } = useRequest(() => getPreviewUrl(channel as Required<ChannelType>), {
439
+ _useState2 = _slicedToArray(_useState, 2),
440
+ actData = _useState2[0],
441
+ setActData = _useState2[1];
442
+ var loading = false;
443
+ // const { data, loading } = useRequest(() => getPreviewUrl(channel as Required<ChannelType>), {
460
444
  // ready: !!channel.channelNum || !!channel.channelId,
461
445
  // refreshDeps: [channel.channelNum, channel.channelId],
462
446
  // });
463
-
464
447
  (0, _react.useEffect)(function () {
465
448
  if ((channel === null || channel === void 0 ? void 0 : channel.channelNum) || channel.channelId) {
466
449
  (0, _api.getPreviewUrl)(channel).then(function (res) {
@@ -471,17 +454,15 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
471
454
  }
472
455
  }, [channel === null || channel === void 0 ? void 0 : channel.channelNum, channel === null || channel === void 0 ? void 0 : channel.channelId]);
473
456
  var name = "".concat(actData === null || actData === void 0 ? void 0 : actData.deviceName, "-").concat(actData === null || actData === void 0 ? void 0 : actData.channelName);
474
-
475
457
  var _useSetState3 = (0, _ahooks.useSetState)({
476
- width: '100%',
477
- height: '100%'
478
- }),
479
- _useSetState4 = _slicedToArray(_useSetState3, 2),
480
- _useSetState4$ = _useSetState4[0],
481
- width = _useSetState4$.width,
482
- height = _useSetState4$.height,
483
- setState = _useSetState4[1];
484
-
458
+ width: '100%',
459
+ height: '100%'
460
+ }),
461
+ _useSetState4 = _slicedToArray(_useSetState3, 2),
462
+ _useSetState4$ = _useSetState4[0],
463
+ width = _useSetState4$.width,
464
+ height = _useSetState4$.height,
465
+ setState = _useSetState4[1];
485
466
  var gridItemRef = (0, _react.useRef)(null);
486
467
  var gridItemSize = (0, _ahooks.useSize)(gridItemRef);
487
468
  (0, _react.useEffect)(function () {
@@ -493,7 +474,6 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
493
474
  height: gridItemSize.height - 26
494
475
  });
495
476
  break;
496
-
497
477
  case '4*3':
498
478
  if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {
499
479
  setState({
@@ -506,9 +486,7 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
506
486
  height: '100%'
507
487
  });
508
488
  }
509
-
510
489
  break;
511
-
512
490
  case '16*9':
513
491
  if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {
514
492
  setState({
@@ -521,12 +499,10 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
521
499
  height: '100%'
522
500
  });
523
501
  }
524
-
525
502
  break;
526
503
  }
527
504
  }
528
505
  }, [gridItemSize, scale]);
529
-
530
506
  var handlePtzType = function handlePtzType(type) {
531
507
  var types = {
532
508
  1: 'all',
@@ -536,11 +512,11 @@ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
536
512
  };
537
513
  return types[type];
538
514
  };
539
-
540
515
  return (0, _jsxRuntime.jsx)("div", Object.assign({
541
516
  className: "grid-item-container ".concat(active ? 'active' : '', " ").concat(loading ? '' : 'emptyImg'),
542
517
  onClick: onClick,
543
- ref: gridItemRef
518
+ ref: gridItemRef,
519
+ draggable: true
544
520
  }, {
545
521
  children: (actData === null || actData === void 0 ? void 0 : actData.url) && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
546
522
  children: [!empty && (0, _jsxRuntime.jsx)(_controls.PlayerHeader, {
@@ -599,40 +575,31 @@ GridItem.displayName = 'grid-item';
599
575
  * @param currentIndex 当前索引
600
576
  * @returns
601
577
  */
602
-
603
578
  var getActiveIndex = function getActiveIndex(channels, grid, currentIndex) {
604
579
  var currentChannels = channels.slice(0, Number(grid));
605
-
606
580
  for (var i = currentIndex; i < currentChannels.length; i++) {
607
581
  if (!currentChannels[i].channelNum && !currentChannels[i].channelId) return i;
608
582
  }
609
-
610
583
  for (var _i3 = 0; _i3 < currentIndex; _i3++) {
611
584
  if (!currentChannels[_i3].channelNum && !currentChannels[_i3].channelId) return _i3;
612
585
  }
613
-
614
586
  return currentIndex;
615
587
  };
616
-
617
588
  var grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];
618
589
  /**
619
590
  * 获取布局
620
591
  * @param len 通道数量
621
592
  */
622
-
623
593
  var getGrid = function getGrid(len) {
624
594
  var grid;
625
-
626
595
  for (var i = 0; i < grids.length; i++) {
627
596
  if (grids[i] - len >= 0) {
628
597
  grid = grids[i];
629
598
  break;
630
599
  }
631
600
  }
632
-
633
601
  return grid > 25 ? 25 : grid;
634
602
  };
635
-
636
603
  var _default = LiveControlV2;
637
604
  exports["default"] = _default;
638
605
  //# sourceMappingURL=index.js.map