@cloud-app-dev/vidc 3.0.15 → 3.0.16

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.
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { ILivePlayerProps } from './interface';
3
3
  import './index.less';
4
- declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll, snapshot, defaultScreen, screenChange, defaultSelectIndex }: ILivePlayerProps): JSX.Element;
4
+ declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll, snapshot, defaultScreen, screenChange, defaultSelectIndex, ...options }: ILivePlayerProps): JSX.Element;
5
5
  declare namespace LivePlayer {
6
6
  var defaultProps: {
7
7
  list: any[];
@@ -20,6 +20,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
20
20
 
21
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
22
 
23
+ import { __rest } from "tslib";
23
24
  import React, { useEffect, useMemo, useRef, useState } from 'react';
24
25
  import { ScreenType, mergeFill } from './utils';
25
26
  import { LivePlayerWithExt } from './PlayerWithExt';
@@ -27,16 +28,17 @@ import Tools from './LiveTools';
27
28
  import useVideoFit from './useVideoFit';
28
29
  import "./index.css";
29
30
 
30
- function LivePlayer(_ref) {
31
- var list = _ref.list,
32
- children = _ref.children,
33
- onIndexChange = _ref.onIndexChange,
34
- onClose = _ref.onClose,
35
- onCloseAll = _ref.onCloseAll,
36
- snapshot = _ref.snapshot,
37
- defaultScreen = _ref.defaultScreen,
38
- screenChange = _ref.screenChange,
39
- defaultSelectIndex = _ref.defaultSelectIndex;
31
+ function LivePlayer(_a) {
32
+ var list = _a.list,
33
+ children = _a.children,
34
+ onIndexChange = _a.onIndexChange,
35
+ onClose = _a.onClose,
36
+ onCloseAll = _a.onCloseAll,
37
+ snapshot = _a.snapshot,
38
+ defaultScreen = _a.defaultScreen,
39
+ screenChange = _a.screenChange,
40
+ defaultSelectIndex = _a.defaultSelectIndex,
41
+ options = __rest(_a, ["list", "children", "onIndexChange", "onClose", "onCloseAll", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex"]);
40
42
 
41
43
  var _useState = useState({
42
44
  screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : 4,
@@ -51,18 +53,24 @@ function LivePlayer(_ref) {
51
53
 
52
54
  var _useVideoFit = useVideoFit(domRef, []),
53
55
  fit = _useVideoFit.fit,
54
- toggleFit = _useVideoFit.toggleFit; // 缓存所有player对象
56
+ toggleFit = _useVideoFit.toggleFit; // 若外部来控制screenNum 则由外部完全控制
55
57
 
56
58
 
59
+ var screenNum = useMemo(function () {
60
+ var _a;
61
+
62
+ return (_a = options.screenNum) !== null && _a !== void 0 ? _a : state.screenNum;
63
+ }, [options.screenNum, state.screenNum]); // 缓存所有player对象
64
+
57
65
  var playerRef = useRef([]);
58
66
  var screenType = useMemo(function () {
59
67
  return ScreenType.find(function (v) {
60
- return v.name === state.screenNum;
68
+ return v.name === screenNum;
61
69
  });
62
- }, [state.screenNum]);
70
+ }, [screenNum]);
63
71
  var screenList = useMemo(function () {
64
- return mergeFill(state.screenNum, list, {});
65
- }, [list, state.screenNum]); // 获取选中player对象
72
+ return mergeFill(screenNum, list, {});
73
+ }, [list, screenNum]); // 获取选中player对象
66
74
 
67
75
  var getPlayerItem = function getPlayerItem() {
68
76
  var _a;
@@ -75,9 +83,15 @@ function LivePlayer(_ref) {
75
83
  var obj = {};
76
84
 
77
85
  if (newState.hasOwnProperty('screenNum')) {
78
- obj.screenNum = newState.screenNum;
86
+ if (options.screenNum) {
87
+ // 若外部控制,不需要update state
88
+ screenChange === null || screenChange === void 0 ? void 0 : screenChange(newState.screenNum);
89
+ } else {
90
+ obj.screenNum = newState.screenNum;
91
+ } // 修正选中索引
92
+
79
93
 
80
- if (obj.screenNum < state.selectIndex) {
94
+ if (newState.screenNum < state.selectIndex) {
81
95
  obj.selectIndex = 0;
82
96
  }
83
97
  }
@@ -166,7 +180,7 @@ function LivePlayer(_ref) {
166
180
  disabled: !segmentItem.url,
167
181
  toggleFit: toggleFit,
168
182
  getPlayerItem: getPlayerItem,
169
- screenNum: state.screenNum,
183
+ screenNum: screenNum,
170
184
  mode: state.modes[state.selectIndex],
171
185
  containerRef: domRef,
172
186
  updateState: updateState,
@@ -6,5 +6,5 @@ import './index.less';
6
6
  * @param param0
7
7
  * @returns
8
8
  */
9
- declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll, download, snapshot, defaultScreen, screenChange, defaultSelectIndex, }: IRecordPlayerProps): JSX.Element;
9
+ declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll, download, snapshot, defaultScreen, screenChange, defaultSelectIndex, ...options }: IRecordPlayerProps): JSX.Element;
10
10
  export default RecordPlayer;
@@ -27,7 +27,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
27
27
 
28
28
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
29
 
30
- import { __awaiter } from "tslib";
30
+ import { __awaiter, __rest } from "tslib";
31
31
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
32
32
  import { ScreenType, mergeFill, differenceWithIndexs, FILTER_KEY } from './utils';
33
33
  import { SegmentPlayerWithExt, FrontendPlayerWithExt } from './PlayerWithExt';
@@ -53,39 +53,46 @@ var defaultState = {
53
53
  * @returns
54
54
  */
55
55
 
56
- function RecordPlayer(_ref) {
56
+ function RecordPlayer(_a) {
57
57
  var _this = this;
58
58
 
59
- var list = _ref.list,
60
- children = _ref.children,
61
- queryRecord = _ref.queryRecord,
62
- onIndexChange = _ref.onIndexChange,
63
- onClose = _ref.onClose,
64
- onCloseAll = _ref.onCloseAll,
65
- download = _ref.download,
66
- snapshot = _ref.snapshot,
67
- defaultScreen = _ref.defaultScreen,
68
- screenChange = _ref.screenChange,
69
- defaultSelectIndex = _ref.defaultSelectIndex;
59
+ var list = _a.list,
60
+ children = _a.children,
61
+ queryRecord = _a.queryRecord,
62
+ onIndexChange = _a.onIndexChange,
63
+ onClose = _a.onClose,
64
+ onCloseAll = _a.onCloseAll,
65
+ download = _a.download,
66
+ snapshot = _a.snapshot,
67
+ defaultScreen = _a.defaultScreen,
68
+ screenChange = _a.screenChange,
69
+ defaultSelectIndex = _a.defaultSelectIndex,
70
+ options = __rest(_a, ["list", "children", "queryRecord", "onIndexChange", "onClose", "onCloseAll", "download", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex"]);
70
71
 
71
72
  var _useState = useState(Object.assign(Object.assign({}, defaultState), {
72
73
  screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : defaultState.screenNum
73
74
  })),
74
75
  _useState2 = _slicedToArray(_useState, 2),
75
76
  state = _useState2[0],
76
- setState = _useState2[1];
77
+ setState = _useState2[1]; // 若外部来控制screenNum 则由外部完全控制
77
78
 
79
+
80
+ var screenNum = useMemo(function () {
81
+ var _a;
82
+
83
+ return (_a = options.screenNum) !== null && _a !== void 0 ? _a : state.screenNum;
84
+ }, [options.screenNum, state.screenNum]);
78
85
  var domRef = useRef(null);
79
86
  var screenType = useMemo(function () {
80
87
  return ScreenType.find(function (v) {
81
- return v.name === state.screenNum;
88
+ return v.name === screenNum;
82
89
  });
83
- }, [state.screenNum]);
90
+ }, [screenNum]);
84
91
  var screenList = useMemo(function () {
85
- return mergeFill(state.screenNum, list, {
92
+ return mergeFill(screenNum, list, {
86
93
  recordType: 1
87
94
  });
88
- }, [state.screenNum, list]);
95
+ }, [screenNum, list]);
89
96
 
90
97
  var _useVideoFit = useVideoFit(domRef, []),
91
98
  fit = _useVideoFit.fit,
@@ -198,9 +205,15 @@ function RecordPlayer(_ref) {
198
205
  var obj = {};
199
206
 
200
207
  if (newState.hasOwnProperty('screenNum')) {
201
- obj.screenNum = newState.screenNum;
208
+ if (options.screenNum) {
209
+ // 若外部控制,不需要update state
210
+ screenChange === null || screenChange === void 0 ? void 0 : screenChange(newState.screenNum);
211
+ } else {
212
+ obj.screenNum = newState.screenNum;
213
+ } // 修正选中索引
214
+
202
215
 
203
- if (obj.screenNum < state.selectIndex) {
216
+ if (newState.screenNum < state.selectIndex) {
204
217
  obj.selectIndex = 0;
205
218
  }
206
219
  }
@@ -404,7 +417,7 @@ function RecordPlayer(_ref) {
404
417
  fit: fit,
405
418
  toggleFit: toggleFit,
406
419
  getPlayerItem: getPlayerItem,
407
- screenNum: state.screenNum,
420
+ screenNum: screenNum,
408
421
  mode: state.modes[state.selectIndex],
409
422
  containerRef: domRef,
410
423
  updateState: updateState,
@@ -46,6 +46,8 @@ export interface IRecordPlayerProps {
46
46
 
47
47
  defaultScreen?: 1 | 4 | 6 | 9 | 16;
48
48
 
49
+ screenNum?: 1 | 4 | 6 | 9 | 16;
50
+
49
51
  defaultSelectIndex?: number;
50
52
  }
51
53
 
@@ -122,6 +124,8 @@ export interface ILivePlayerProps {
122
124
 
123
125
  defaultScreen?: 1 | 4 | 6 | 9 | 16;
124
126
 
127
+ screenNum?: 1 | 4 | 6 | 9 | 16;
128
+
125
129
  defaultSelectIndex?: number;
126
130
  }
127
131
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "@cloud-app-dev/vidc",
4
4
  "description": "Video Image Data Componennts",
5
- "version": "3.0.15",
5
+ "version": "3.0.16",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",
@@ -42,6 +42,8 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@cloud-app-dev/utils": "^4.0.1",
45
+ "@testing-library/react-hooks": "^8.0.1",
46
+ "@types/jest": "^29.0.1",
45
47
  "@types/leaflet": "^1.7.11",
46
48
  "@types/lodash-es": "^4.17.6",
47
49
  "@types/node": "^18.7.6",