@cloud-app-dev/vidc 3.0.5 → 3.0.6

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,9 @@
1
+ .disable-mark {
2
+ position: absolute;
3
+ cursor: not-allowed;
4
+ width: 100%;
5
+ height: 100%;
6
+ top: 0;
7
+ left: 0;
8
+ z-index: 999;
9
+ }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ interface IDisableMarkProps {
4
+ children: React.ReactNode;
5
+ disabled: boolean;
6
+ }
7
+ export default function DisableMark({ children, disabled }: IDisableMarkProps): JSX.Element;
8
+ export {};
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import "./index.css";
3
+ export default function DisableMark(_ref) {
4
+ var children = _ref.children,
5
+ disabled = _ref.disabled;
6
+ console.log(disabled);
7
+ return /*#__PURE__*/React.createElement(React.Fragment, null, disabled ? /*#__PURE__*/React.createElement("div", {
8
+ className: "disable-mark"
9
+ }) : null, children);
10
+ }
@@ -1,28 +1,10 @@
1
- import _useUpdateEffect from "ahooks/es/useUpdateEffect";
2
-
3
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
-
5
- 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."); }
6
-
7
- 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); }
8
-
9
- 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; }
10
-
11
- 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; }
12
-
13
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
-
15
- import React, { useEffect, useState } from 'react';
1
+ import _useRafInterval from "ahooks/es/useRafInterval";
2
+ import React, { useEffect } from 'react';
16
3
  import BrowserTab from './event/browserTabEvent';
17
4
 
18
5
  function LiveHeart(_ref) {
19
6
  var api = _ref.api;
20
7
 
21
- var _useState = useState(Date.now()),
22
- _useState2 = _slicedToArray(_useState, 2),
23
- runDep = _useState2[0],
24
- setRundep = _useState2[1];
25
-
26
8
  var run = function run() {
27
9
  var current = api.getCurrentTime();
28
10
  var buffered = api.getSecondsLoaded();
@@ -30,6 +12,7 @@ function LiveHeart(_ref) {
30
12
  if (buffered - current > 5) {
31
13
  console.debug("\u5F53\u524D\u5EF6\u65F6\u8FC7\u5927current->".concat(current, " buffered->").concat(buffered, ", \u57FA\u4E8E\u89C6\u9891\u5F53\u524D\u7F13\u5B58\u65F6\u95F4\u66F4\u65B0\u5F53\u524D\u64AD\u653E\u65F6\u95F4 updateTime -> ").concat(buffered - 2));
32
14
  api.seekTo(buffered - 2 > 0 ? buffered - 2 : 0);
15
+ api.play();
33
16
  }
34
17
  };
35
18
 
@@ -41,21 +24,13 @@ function LiveHeart(_ref) {
41
24
  BrowserTab.addEventListener(browserTabChange);
42
25
  return function () {
43
26
  BrowserTab.removeEventListener(browserTabChange);
44
- };
27
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
45
28
  }, [api]);
46
29
 
47
- _useUpdateEffect(function () {
48
- run();
49
- }, [runDep]);
30
+ _useRafInterval(function () {
31
+ return run();
32
+ }, 30 * 1000);
50
33
 
51
- useEffect(function () {
52
- var timer = setInterval(function () {
53
- return setRundep(Date.now());
54
- }, 30 * 1000);
55
- return function () {
56
- return clearInterval(timer);
57
- };
58
- }, []);
59
34
  return /*#__PURE__*/React.createElement(React.Fragment, null);
60
35
  }
61
36
 
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { ILivePlayerProps } from './interface';
3
3
  import './index.less';
4
- declare function LivePlayer({ list, children }: ILivePlayerProps): JSX.Element;
4
+ declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll }: ILivePlayerProps): JSX.Element;
5
5
  export default LivePlayer;
@@ -10,7 +10,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
10
10
 
11
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
 
13
- import React, { useMemo, useRef, useState } from 'react';
13
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
14
14
  import { ScreenType, mergeFill } from './utils';
15
15
  import { LivePlayerWithExt } from './PlayerWithExt';
16
16
  import Tools from './LiveTools';
@@ -20,7 +20,10 @@ import "./index.css";
20
20
  function LivePlayer(_ref) {
21
21
  var _ref$list = _ref.list,
22
22
  list = _ref$list === void 0 ? [] : _ref$list,
23
- children = _ref.children;
23
+ children = _ref.children,
24
+ onIndexChange = _ref.onIndexChange,
25
+ onClose = _ref.onClose,
26
+ onCloseAll = _ref.onCloseAll;
24
27
 
25
28
  var _useState = useState({
26
29
  screenNum: 4,
@@ -73,8 +76,13 @@ function LivePlayer(_ref) {
73
76
  setState(function (old) {
74
77
  return Object.assign(Object.assign({}, old), obj);
75
78
  });
76
- };
79
+ }; // index变化同步到父组件
80
+ // eslint-disable-next-line react-hooks/exhaustive-deps
77
81
 
82
+
83
+ useEffect(function () {
84
+ return onIndexChange(state.selectIndex);
85
+ }, [state.selectIndex]);
78
86
  return /*#__PURE__*/React.createElement("div", {
79
87
  className: "split-screen-player-wrapper",
80
88
  ref: domRef
@@ -102,6 +110,8 @@ function LivePlayer(_ref) {
102
110
  }
103
111
  }));
104
112
  })), /*#__PURE__*/React.createElement(Tools, {
113
+ onClose: onClose,
114
+ onCloseAll: onCloseAll,
105
115
  fit: fit,
106
116
  toggleFit: toggleFit,
107
117
  getPlayerItem: getPlayerItem,
@@ -12,6 +12,8 @@ interface IToolsProps {
12
12
  getPlayerItem: () => ExportPlayerType | undefined;
13
13
  fit?: string;
14
14
  toggleFit?: () => void;
15
+ onClose?: () => void;
16
+ onCloseAll?: () => void;
15
17
  }
16
- declare function LiveTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit }: IToolsProps): JSX.Element;
18
+ declare function LiveTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll }: IToolsProps): JSX.Element;
17
19
  export default LiveTools;
@@ -24,7 +24,9 @@ function LiveTools(_ref) {
24
24
  getPlayerItem = _ref.getPlayerItem,
25
25
  mode = _ref.mode,
26
26
  toggleFit = _ref.toggleFit,
27
- fit = _ref.fit;
27
+ fit = _ref.fit,
28
+ onClose = _ref.onClose,
29
+ onCloseAll = _ref.onCloseAll;
28
30
 
29
31
  var _useFullscreen = _useFullscreen3(containerRef),
30
32
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
@@ -76,7 +78,8 @@ function LiveTools(_ref) {
76
78
  type: "lm-player-Refresh_Main",
77
79
  title: "\u91CD\u8F7D"
78
80
  })), /*#__PURE__*/React.createElement("span", {
79
- className: "player-tools-item"
81
+ className: "player-tools-item",
82
+ onClick: onClose
80
83
  }, /*#__PURE__*/React.createElement(IconFont, {
81
84
  type: "lm-player-YesorNo_No_Dark",
82
85
  title: "\u5173\u95ED\u5F53\u524D"
@@ -94,7 +97,8 @@ function LiveTools(_ref) {
94
97
  }))), /*#__PURE__*/React.createElement("div", {
95
98
  className: "player-tools-right"
96
99
  }, /*#__PURE__*/React.createElement("span", {
97
- className: "player-tools-item"
100
+ className: "player-tools-item",
101
+ onClick: onCloseAll
98
102
  }, /*#__PURE__*/React.createElement(IconFont, {
99
103
  type: "lm-player-YesorNo_No_Dark",
100
104
  title: "\u5173\u95ED\u6240\u6709"
@@ -6,5 +6,5 @@ import './index.less';
6
6
  * @param param0
7
7
  * @returns
8
8
  */
9
- declare function RecordPlayer({ list, children, queryRecord, onIndexChange }: IRecordPlayerProps): JSX.Element;
9
+ declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll }: IRecordPlayerProps): JSX.Element;
10
10
  export default RecordPlayer;
@@ -32,6 +32,7 @@ import RecordTools from './RecordTools';
32
32
  import SegmentTimeLine from './SegmentTimeLine';
33
33
  import useRecordList from './useRecordList';
34
34
  import useVideoFit from './useVideoFit';
35
+ import DisableMark from '../DisableMark';
35
36
  import "./index.css";
36
37
  /**
37
38
  * @desc 录像设计的时间全部需要到毫秒
@@ -45,7 +46,9 @@ function RecordPlayer(_ref) {
45
46
  var list = _ref.list,
46
47
  children = _ref.children,
47
48
  queryRecord = _ref.queryRecord,
48
- onIndexChange = _ref.onIndexChange;
49
+ onIndexChange = _ref.onIndexChange,
50
+ onClose = _ref.onClose,
51
+ onCloseAll = _ref.onCloseAll;
49
52
 
50
53
  var _useState = useState({
51
54
  screenNum: 4,
@@ -285,9 +288,10 @@ function RecordPlayer(_ref) {
285
288
  setState(function (old) {
286
289
  return Object.assign({}, old);
287
290
  });
288
- }; // index变化同步到父组件
289
- // eslint-disable-next-line react-hooks/exhaustive-deps
291
+ };
290
292
 
293
+ console.log(segmentItem.cid); // index变化同步到父组件
294
+ // eslint-disable-next-line react-hooks/exhaustive-deps
291
295
 
292
296
  useEffect(function () {
293
297
  return onIndexChange(state.selectIndex);
@@ -338,7 +342,11 @@ function RecordPlayer(_ref) {
338
342
  height: screenType.height
339
343
  }
340
344
  }));
341
- })), /*#__PURE__*/React.createElement(RecordTools, {
345
+ })), /*#__PURE__*/React.createElement("div", {
346
+ className: "player-tools-group"
347
+ }, /*#__PURE__*/React.createElement(DisableMark, {
348
+ disabled: !segmentItem.cid
349
+ }, /*#__PURE__*/React.createElement(RecordTools, {
342
350
  time: state.currentTimes[state.selectIndex],
343
351
  fit: fit,
344
352
  toggleFit: toggleFit,
@@ -347,14 +355,15 @@ function RecordPlayer(_ref) {
347
355
  mode: state.mode,
348
356
  containerRef: domRef,
349
357
  updateState: updateState,
350
- onTimeChange: onTimeChange
358
+ onTimeChange: onTimeChange,
359
+ onClose: onClose,
360
+ onCloseAll: onCloseAll
351
361
  }), /*#__PURE__*/React.createElement(SegmentTimeLine, {
352
- disabled: !!segmentItem.cid,
353
362
  begin: timeBegin,
354
363
  timeCell: segmentItem.segments,
355
364
  key: state.selectIndex,
356
365
  onTimeChange: onTimeChange
357
- }), children && /*#__PURE__*/React.cloneElement(children, {
366
+ }))), children && /*#__PURE__*/React.cloneElement(children, {
358
367
  selectIndex: state.selectIndex
359
368
  }));
360
369
  }
@@ -14,6 +14,8 @@ interface IToolsProps {
14
14
  toggleFit?: () => void;
15
15
  time?: number;
16
16
  onTimeChange?: (time: number) => void;
17
+ onClose?: () => void;
18
+ onCloseAll?: () => void;
17
19
  }
18
- declare function RecordTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, time, onTimeChange }: IToolsProps): JSX.Element;
20
+ declare function RecordTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll }: IToolsProps): JSX.Element;
19
21
  export default RecordTools;
@@ -27,7 +27,9 @@ function RecordTools(_ref) {
27
27
  toggleFit = _ref.toggleFit,
28
28
  fit = _ref.fit,
29
29
  time = _ref.time,
30
- onTimeChange = _ref.onTimeChange;
30
+ onTimeChange = _ref.onTimeChange,
31
+ onClose = _ref.onClose,
32
+ onCloseAll = _ref.onCloseAll;
31
33
 
32
34
  var _useFullscreen = _useFullscreen3(containerRef),
33
35
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
@@ -79,7 +81,8 @@ function RecordTools(_ref) {
79
81
  type: "lm-player-Refresh_Main",
80
82
  title: "\u91CD\u8F7D"
81
83
  })), /*#__PURE__*/React.createElement("span", {
82
- className: "player-tools-item"
84
+ className: "player-tools-item",
85
+ onClick: onClose
83
86
  }, /*#__PURE__*/React.createElement(IconFont, {
84
87
  type: "lm-player-YesorNo_No_Dark",
85
88
  title: "\u5173\u95ED\u5F53\u524D"
@@ -114,7 +117,8 @@ function RecordTools(_ref) {
114
117
  }))), /*#__PURE__*/React.createElement("div", {
115
118
  className: "player-tools-right"
116
119
  }, /*#__PURE__*/React.createElement("span", {
117
- className: "player-tools-item"
120
+ className: "player-tools-item",
121
+ onClick: onCloseAll
118
122
  }, /*#__PURE__*/React.createElement(IconFont, {
119
123
  type: "lm-player-YesorNo_No_Dark",
120
124
  title: "\u5173\u95ED\u6240\u6709"
@@ -4,7 +4,6 @@ interface ISegmentTimeLineProps {
4
4
  begin?: number;
5
5
  timeCell?: ISegmentType[];
6
6
  onTimeChange?: (time: number) => void;
7
- disabled?: boolean;
8
7
  }
9
- declare function SegmentTimeLine({ begin, timeCell, disabled, onTimeChange }: ISegmentTimeLineProps): JSX.Element;
8
+ declare function SegmentTimeLine({ begin, timeCell, onTimeChange }: ISegmentTimeLineProps): JSX.Element;
10
9
  export default SegmentTimeLine;
@@ -7,7 +7,6 @@ import TimeSlider from './TimeSlider';
7
7
  function SegmentTimeLine(_ref) {
8
8
  var begin = _ref.begin,
9
9
  timeCell = _ref.timeCell,
10
- disabled = _ref.disabled,
11
10
  onTimeChange = _ref.onTimeChange;
12
11
  var ref = useRef();
13
12
 
@@ -36,9 +35,7 @@ function SegmentTimeLine(_ref) {
36
35
  }, [begin, timeCell, size === null || size === void 0 ? void 0 : size.width, run]);
37
36
  return /*#__PURE__*/React.createElement("div", {
38
37
  className: "record-time-line"
39
- }, !disabled && /*#__PURE__*/React.createElement("div", {
40
- className: "time-line-mask"
41
- }), /*#__PURE__*/React.createElement("canvas", {
38
+ }, /*#__PURE__*/React.createElement("canvas", {
42
39
  ref: ref
43
40
  }));
44
41
  }
@@ -24,6 +24,7 @@ export default function App() {
24
24
  height: 800
25
25
  }
26
26
  }, /*#__PURE__*/React.createElement(LivePlayer, {
27
- list: list
27
+ list: list,
28
+ onIndexChange: console.log
28
29
  })));
29
30
  }
@@ -6,7 +6,7 @@
6
6
  min-width: 600px;
7
7
  }
8
8
  .split-screen-player-wrapper .player-layout {
9
- height: calc(100% - 42px);
9
+ height: calc(100% - 88px);
10
10
  }
11
11
  .split-screen-player-wrapper .player-layout .player-with-ext-layout {
12
12
  float: left;
@@ -19,6 +19,10 @@
19
19
  .split-screen-player-wrapper .player-layout .player-with-ext-layout.player-current-index .lm-player-ext-layout {
20
20
  border: 1px solid var(--primary);
21
21
  }
22
+ .split-screen-player-wrapper .player-tools-group {
23
+ height: 88px;
24
+ position: relative;
25
+ }
22
26
  .split-screen-player-wrapper .player-record-time {
23
27
  width: 100%;
24
28
  height: 100%;
@@ -95,9 +99,6 @@
95
99
  z-index: 5;
96
100
  cursor: not-allowed;
97
101
  }
98
- .split-screen-player-wrapper.split-screen-player-wrapper-record .player-layout {
99
- height: calc(100% - 42px - 60px);
100
- }
101
102
  .player-time-select {
102
103
  width: 190px;
103
104
  display: flex;
@@ -23,6 +23,19 @@ export interface IRecordPlayerProps {
23
23
  * 窗口索引变化,后续基于索引传入播放必要数据
24
24
  */
25
25
  onIndexChange: (idx: number) => void;
26
+
27
+ /**
28
+ * 关闭单个窗口
29
+ */
30
+ onClose?: () => void;
31
+
32
+ /**
33
+ * 关闭所有窗口
34
+ */
35
+ onCloseAll?: () => void;
36
+ /**
37
+ * 窗口索引变化,后续基于索引传入播放必要数据
38
+ */
26
39
  }
27
40
 
28
41
  export interface IRecordPlayerState {
@@ -70,6 +83,20 @@ export type ScreenItemLivePlayerType = {
70
83
  export interface ILivePlayerProps {
71
84
  list?: ScreenItemLivePlayerType[];
72
85
  children?: JSX.Element;
86
+
87
+ /**
88
+ * 关闭单个窗口
89
+ */
90
+ onClose?: () => void;
91
+
92
+ /**
93
+ * 关闭所有窗口
94
+ */
95
+ onCloseAll?: () => void;
96
+ /**
97
+ * 窗口索引变化,后续基于索引传入播放必要数据
98
+ */
99
+ onIndexChange: (idx: number) => void;
73
100
  }
74
101
 
75
102
  export interface ILivePlayerState {
package/es/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { default as Box } from './Box';
6
6
  export { default as CheckGroupFixed } from './CheckGroupFixed';
7
7
  export { default as Config } from './Config';
8
8
  export { default as ConfigContext } from './ConfigContext';
9
+ export { default as DisableMark } from './DisableMark';
9
10
  export { default as DomMove } from './DomMove';
10
11
  export { default as Drag } from './Drag';
11
12
  export { default as Drawer } from './Drawer';
package/es/index.js CHANGED
@@ -6,6 +6,7 @@ export { default as Box } from './Box';
6
6
  export { default as CheckGroupFixed } from './CheckGroupFixed';
7
7
  export { default as Config } from './Config';
8
8
  export { default as ConfigContext } from './ConfigContext';
9
+ export { default as DisableMark } from './DisableMark';
9
10
  export { default as DomMove } from './DomMove';
10
11
  export { default as Drag } from './Drag';
11
12
  export { default as Drawer } from './Drawer';
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.5",
5
+ "version": "3.0.6",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",