@cloud-app-dev/vidc 3.0.16 → 3.0.17

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.
@@ -3,6 +3,7 @@ import './index.less';
3
3
  interface IDisableMarkProps {
4
4
  children: React.ReactNode;
5
5
  disabled: boolean;
6
+ width?: string | number;
6
7
  }
7
- export default function DisableMark({ children, disabled }: IDisableMarkProps): JSX.Element;
8
+ export default function DisableMark({ children, disabled, width }: IDisableMarkProps): JSX.Element;
8
9
  export {};
@@ -2,8 +2,12 @@ import React from 'react';
2
2
  import "./index.css";
3
3
  export default function DisableMark(_ref) {
4
4
  var children = _ref.children,
5
- disabled = _ref.disabled;
5
+ disabled = _ref.disabled,
6
+ width = _ref.width;
6
7
  return /*#__PURE__*/React.createElement(React.Fragment, null, disabled ? /*#__PURE__*/React.createElement("div", {
7
- className: "disable-mark"
8
+ className: "disable-mark",
9
+ style: {
10
+ width: width
11
+ }
8
12
  }) : null, children);
9
13
  }
@@ -12,5 +12,8 @@ declare class AMapInstance implements IMapInstance {
12
12
  getZoom(): number;
13
13
  setCenter(center: [number, number]): void;
14
14
  setZoomAndCenter(zoom: number, center: [number, number]): void;
15
+ on(type: string, fn: (e: any) => void): void;
16
+ off(type: string, fn: (e: any) => void): void;
17
+ setCursor(cursor: string): void;
15
18
  }
16
19
  export default AMapInstance;
@@ -66,13 +66,28 @@ var AMapInstance = /*#__PURE__*/function () {
66
66
  }, {
67
67
  key: "setCenter",
68
68
  value: function setCenter(center) {
69
- return this.map.setCenter(center);
69
+ this.map.setCenter(center);
70
70
  }
71
71
  }, {
72
72
  key: "setZoomAndCenter",
73
73
  value: function setZoomAndCenter(zoom, center) {
74
74
  this.map.setZoomAndCenter(zoom, center);
75
75
  }
76
+ }, {
77
+ key: "on",
78
+ value: function on(type, fn) {
79
+ this.map.on(type, fn);
80
+ }
81
+ }, {
82
+ key: "off",
83
+ value: function off(type, fn) {
84
+ this.map.off(type, fn);
85
+ }
86
+ }, {
87
+ key: "setCursor",
88
+ value: function setCursor(cursor) {
89
+ this.map.setDefaultCursor(cursor);
90
+ }
76
91
  }]);
77
92
 
78
93
  return AMapInstance;
@@ -8,8 +8,11 @@ declare class LeafletInstance implements IMapInstance {
8
8
  destoryMap(): void;
9
9
  setZoomAndCenter(zoom: number, center: [number, number] | LatLng): void;
10
10
  mapReset(): void;
11
- setZoom(zoom: number): Map;
11
+ setZoom(zoom: number): void;
12
12
  setCenter(center: [number, number] | LatLng): void;
13
13
  getZoom(): number;
14
+ on(type: string, fn: (event: any) => void): void;
15
+ off(type: string, fn: (event: any) => void): void;
16
+ setCursor(cursor: string): void;
14
17
  }
15
18
  export default LeafletInstance;
@@ -78,18 +78,33 @@ var LeafletInstance = /*#__PURE__*/function () {
78
78
  }, {
79
79
  key: "setZoom",
80
80
  value: function setZoom(zoom) {
81
- return this.map.setZoom(zoom);
81
+ this.map.setZoom(zoom);
82
82
  }
83
83
  }, {
84
84
  key: "setCenter",
85
85
  value: function setCenter(center) {
86
- return this.map.setCenter(center);
86
+ this.map.setCenter(center);
87
87
  }
88
88
  }, {
89
89
  key: "getZoom",
90
90
  value: function getZoom() {
91
91
  return this.map.getZoom();
92
92
  }
93
+ }, {
94
+ key: "on",
95
+ value: function on(type, fn) {
96
+ this.map.on(type, fn);
97
+ }
98
+ }, {
99
+ key: "off",
100
+ value: function off(type, fn) {
101
+ this.map.off(type, fn);
102
+ }
103
+ }, {
104
+ key: "setCursor",
105
+ value: function setCursor(cursor) {
106
+ this.map.setDefaultCursor(cursor);
107
+ }
93
108
  }]);
94
109
 
95
110
  return LeafletInstance;
@@ -1,13 +1,16 @@
1
+ import React from 'react';
1
2
  import { LatLng, MapPoint } from '../interface';
2
3
  import './index.less';
3
4
  export interface ILevelCenter {
4
5
  center?: [number, number];
5
6
  zoom?: number;
6
7
  points: MapPoint[];
8
+ enableClick?: boolean;
7
9
  onLevelCenterChange?: (options: {
8
10
  center: [number, number] | LatLng;
9
11
  zoom: number;
10
12
  }) => void;
13
+ children?: React.ReactNode;
11
14
  }
12
15
  declare const _default: (props: ILevelCenter) => JSX.Element;
13
16
  export default _default;
@@ -1,17 +1,20 @@
1
- import React, { useCallback, useContext, useEffect, useMemo } from 'react';
1
+ import _useMount from "ahooks/es/useMount";
2
+ import React, { useCallback, useContext, useMemo } from 'react';
2
3
  import ClusterLayer from '../ClusterLayer';
3
- import FindPio from '../FindPio';
4
4
  import ResetTools from '../ResetTools';
5
5
  import DragMarker from './DragMarker';
6
6
  import withMap from '../withMap';
7
7
  import { mapContext } from '../Context';
8
+ import useMapEvent from '../hook/useMapEvent';
8
9
  import "./index.css";
9
10
 
10
11
  function LevelCenter(_ref) {
11
12
  var center = _ref.center,
12
13
  zoom = _ref.zoom,
13
14
  points = _ref.points,
14
- onLevelCenterChange = _ref.onLevelCenterChange;
15
+ onLevelCenterChange = _ref.onLevelCenterChange,
16
+ enableClick = _ref.enableClick,
17
+ children = _ref.children;
15
18
 
16
19
  var _useContext = useContext(mapContext),
17
20
  instance = _useContext.instance;
@@ -21,22 +24,39 @@ function LevelCenter(_ref) {
21
24
  }, [center, instance]);
22
25
  var defaultZoom = useMemo(function () {
23
26
  return zoom || instance.config.zoom;
24
- }, [zoom, instance]);
27
+ }, [zoom, instance]); // eslint-disable-next-line react-hooks/exhaustive-deps
28
+
25
29
  var mapRest = useCallback(function () {
26
30
  return instance.setZoomAndCenter(defaultZoom, defaultCenter);
27
31
  }, [defaultZoom, defaultCenter]);
28
- useEffect(function () {
29
- return mapRest();
30
- }, []);
32
+
33
+ _useMount(function () {
34
+ if (enableClick) {
35
+ instance.setCursor('pointer');
36
+ }
37
+
38
+ mapRest();
39
+ });
40
+
41
+ useMapEvent('click', function (event) {
42
+ if (enableClick) {
43
+ var _center = [event.lnglat.lng, event.lnglat.lat];
44
+ instance.setCenter(_center);
45
+ onLevelCenterChange === null || onLevelCenterChange === void 0 ? void 0 : onLevelCenterChange({
46
+ center: _center,
47
+ zoom: defaultZoom
48
+ });
49
+ }
50
+ });
31
51
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ClusterLayer, {
32
52
  points: points
33
- }), /*#__PURE__*/React.createElement(FindPio, null), /*#__PURE__*/React.createElement(ResetTools, {
53
+ }), /*#__PURE__*/React.createElement(ResetTools, {
34
54
  onMapReset: mapRest
35
55
  }), /*#__PURE__*/React.createElement(DragMarker, {
36
56
  center: defaultCenter,
37
57
  zoom: defaultZoom,
38
58
  onChange: onLevelCenterChange
39
- }));
59
+ }), children);
40
60
  }
41
61
 
42
62
  export default withMap(LevelCenter, 'lv-center-map-container');
@@ -1,4 +1,5 @@
1
- import React, { useCallback, useContext, useEffect, useMemo } from 'react';
1
+ import _useMount from "ahooks/es/useMount";
2
+ import React, { useCallback, useContext, useMemo } from 'react';
2
3
  import ResetTools from '../ResetTools';
3
4
  import Marker from './Marker';
4
5
  import withMap from '../withMap';
@@ -15,13 +16,15 @@ function SinglePoint(_ref) {
15
16
  var type = useMapType();
16
17
  var defaultCenter = useMemo(function () {
17
18
  return type.AMap ? [point.longitude, point.latitude] : [point.latitude, point.longitude];
18
- }, [point.latitude, point.longitude, instance]);
19
+ }, [type.AMap, point.longitude, point.latitude]);
19
20
  var mapRest = useCallback(function () {
20
21
  return instance.setZoomAndCenter(instance.config.zoom, defaultCenter);
21
- }, [defaultCenter]);
22
- useEffect(function () {
22
+ }, [defaultCenter, instance]);
23
+
24
+ _useMount(function () {
23
25
  return mapRest();
24
- }, []);
26
+ });
27
+
25
28
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResetTools, {
26
29
  onMapReset: mapRest
27
30
  }), /*#__PURE__*/React.createElement(Marker, {
@@ -0,0 +1,2 @@
1
+ declare function useMapEvent(type: string, fn: (event: any) => void): void;
2
+ export default useMapEvent;
@@ -0,0 +1,22 @@
1
+ import _useCreation from "ahooks/es/useCreation";
2
+ import { useContext, useEffect } from 'react';
3
+ import { mapContext } from '../Context';
4
+
5
+ function useMapEvent(type, fn) {
6
+ var action = _useCreation(function () {
7
+ return fn;
8
+ }, []);
9
+
10
+ var _useContext = useContext(mapContext),
11
+ instance = _useContext.instance;
12
+
13
+ useEffect(function () {
14
+ console.log(11111);
15
+ instance.on(type, action);
16
+ return function () {
17
+ return instance.off(type, action);
18
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ }, []);
20
+ }
21
+
22
+ export default useMapEvent;
@@ -32,6 +32,9 @@ export class IMapInstance {
32
32
  setCenter(center: [number, number] | LatLng): void;
33
33
  getZoom(): number;
34
34
  setZoomAndCenter(zoom: number, center: [number, number] | LatLng): void;
35
+ on(type: string, fn: (e: any) => void): void;
36
+ off(type: string, fn: (e: any) => void): void;
37
+ setCursor(cursor: string);
35
38
  }
36
39
 
37
40
  export interface MapPoint {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type VideoEventInstance from '.';
3
2
  import type Api from '../api';
4
3
  import Flvjs from '@cloud-app-dev/flv.js';
@@ -11,6 +10,7 @@ interface IErrorEventProps {
11
10
  hls: Hls;
12
11
  reload: () => void;
13
12
  unload: () => void;
13
+ errorHandleAdapter?: (errorInfo: any) => boolean;
14
14
  }
15
- declare function ErrorEvent({ event, api, reload, unload, errorReloadTimer, flv, hls }: IErrorEventProps): JSX.Element;
16
- export default ErrorEvent;
15
+ declare function useErrorEvent({ event, api, reload, unload, errorReloadTimer, flv, hls, errorHandleAdapter }: IErrorEventProps): void;
16
+ export default useErrorEvent;
@@ -18,19 +18,20 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
18
18
 
19
19
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
20
 
21
- import React, { useState, useEffect, useRef } from 'react';
21
+ import { useState, useEffect, useRef } from 'react';
22
22
  import EventName from './eventName';
23
23
  import Flvjs from '@cloud-app-dev/flv.js';
24
24
  import Hls from 'hls.js';
25
25
 
26
- function ErrorEvent(_ref) {
26
+ function useErrorEvent(_ref) {
27
27
  var event = _ref.event,
28
28
  api = _ref.api,
29
29
  reload = _ref.reload,
30
30
  unload = _ref.unload,
31
31
  errorReloadTimer = _ref.errorReloadTimer,
32
32
  flv = _ref.flv,
33
- hls = _ref.hls;
33
+ hls = _ref.hls,
34
+ errorHandleAdapter = _ref.errorHandleAdapter;
34
35
 
35
36
  var _useState = useState(0),
36
37
  _useState2 = _slicedToArray(_useState, 2),
@@ -54,7 +55,10 @@ function ErrorEvent(_ref) {
54
55
  (_console = console).error.apply(_console, args);
55
56
 
56
57
  errorInfo.current = args;
57
- setErrorTime(errorTimer + 1);
58
+
59
+ if (!(errorHandleAdapter === null || errorHandleAdapter === void 0 ? void 0 : errorHandleAdapter(args))) {
60
+ setErrorTime(errorTimer + 1);
61
+ }
58
62
  };
59
63
 
60
64
  var reloadSuccess = function reloadSuccess() {
@@ -77,17 +81,22 @@ function ErrorEvent(_ref) {
77
81
  hls.on(Hls.Events.ERROR, errorHandle);
78
82
  }
79
83
 
80
- event.on(EventName.ERROR, errorHandle);
81
- event.on(EventName.CLEAR_ERROR_TIMER, clearErrorTimer);
82
- event.addEventListener('error', errorHandle); //获取video状态清除错误状态
84
+ if (event) {
85
+ event.on(EventName.ERROR, errorHandle);
86
+ event.on(EventName.CLEAR_ERROR_TIMER, clearErrorTimer);
87
+ event.addEventListener('error', errorHandle); //获取video状态清除错误状态
88
+
89
+ event.addEventListener('canplay', reloadSuccess);
90
+ }
83
91
 
84
- event.addEventListener('canplay', reloadSuccess);
85
92
  return function () {
86
93
  // flv, hls事件不用主动销毁,库内部自己处理
87
- event.off(EventName.ERROR, errorHandle);
88
- event.removeEventListener('error', errorHandle);
89
- event.removeEventListener('canplay', reloadSuccess);
90
- };
94
+ if (event) {
95
+ event.off(EventName.ERROR, errorHandle);
96
+ event.removeEventListener('error', errorHandle);
97
+ event.removeEventListener('canplay', reloadSuccess);
98
+ }
99
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
91
100
  }, [event, flv, hls, errorTimer]);
92
101
  useEffect(function () {
93
102
  if (errorTimer === 0) {
@@ -109,7 +118,6 @@ function ErrorEvent(_ref) {
109
118
  clearTimeout(reloadTimer.current);
110
119
  }; // eslint-disable-next-line react-hooks/exhaustive-deps
111
120
  }, [errorTimer, api, event, flv, hls]);
112
- return /*#__PURE__*/React.createElement(React.Fragment, null);
113
121
  }
114
122
 
115
- export default ErrorEvent;
123
+ export default useErrorEvent;
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
2
1
  import type Api from './api';
3
2
  import type VideoEventInstance from './event';
4
- declare function LiveHeart({ api, event }: {
3
+ declare function useLiveHeart({ api, event, isLive }: {
5
4
  api: Api;
6
5
  event: VideoEventInstance;
7
- }): JSX.Element;
8
- export default LiveHeart;
6
+ isLive: boolean;
7
+ }): void;
8
+ export default useLiveHeart;
@@ -1,18 +1,23 @@
1
1
  import _useRafInterval from "ahooks/es/useRafInterval";
2
2
  import _useUpdateEffect from "ahooks/es/useUpdateEffect";
3
3
  import _useDocumentVisibility from "ahooks/es/useDocumentVisibility";
4
- import React, { useRef } from 'react';
4
+ import { useRef } from 'react';
5
5
  import Events from './event/eventName';
6
6
 
7
- function LiveHeart(_ref) {
7
+ function useLiveHeart(_ref) {
8
8
  var api = _ref.api,
9
- event = _ref.event;
9
+ event = _ref.event,
10
+ isLive = _ref.isLive;
10
11
 
11
12
  var documentVisibility = _useDocumentVisibility();
12
13
 
13
14
  var cTimeRef = useRef(null);
14
15
 
15
16
  var run = function run() {
17
+ if (!isLive && documentVisibility !== 'visible') {
18
+ return;
19
+ }
20
+
16
21
  var current = api.getCurrentTime();
17
22
  var buffered = api.getSecondsLoaded();
18
23
 
@@ -38,12 +43,10 @@ function LiveHeart(_ref) {
38
43
  _useRafInterval(function () {
39
44
  var cuurentTime = api.getCurrentTime();
40
45
 
41
- if (!api.video.paused && cuurentTime === cTimeRef.current) {
46
+ if (!!isLive && !api.video.paused && cuurentTime === cTimeRef.current) {
42
47
  event.emit(Events.ERROR);
43
48
  }
44
49
  }, 20 * 1000);
45
-
46
- return /*#__PURE__*/React.createElement(React.Fragment, null);
47
50
  }
48
51
 
49
- export default LiveHeart;
52
+ export default useLiveHeart;
@@ -134,7 +134,7 @@ function VideoMessage(_ref) {
134
134
  event.off(EventName.HISTORY_PLAY_END, playEnd);
135
135
  event.off(EventName.CLEAR_ERROR_TIMER, reloadSuccess);
136
136
  };
137
- }, [event]);
137
+ }, [api, event]);
138
138
  var loading = state.loading,
139
139
  status = state.status;
140
140
  return /*#__PURE__*/React.createElement("div", {
@@ -19,9 +19,9 @@ import { usePlayerEvent, useRegisterPlayerEvents, useVideoEvents } from './event
19
19
  import EventName from './event/eventName';
20
20
  import ContrallerBar from './contraller_bar';
21
21
  import ContrallerEvent from './contraller_bar/contraller_event';
22
- import LiveHeart from './live_heart';
22
+ import useLiveHeart from './live_heart';
23
23
  import VideoMessage from './message';
24
- import ErrorEvent from './event/errorEvent';
24
+ import useErrorEvent from './event/errorEvent';
25
25
  import { getVideoType, playReload, playUnload } from './util';
26
26
  import Timeline from './timeline';
27
27
  import "./style/index.css";
@@ -85,7 +85,6 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
85
85
  _usePlayerApi2 = _slicedToArray(_usePlayerApi, 2),
86
86
  api = _usePlayerApi2[0],
87
87
  _usePlayerApi2$ = _slicedToArray(_usePlayerApi2[1], 3),
88
- _ = _usePlayerApi2$[0],
89
88
  flv = _usePlayerApi2$[1],
90
89
  hls = _usePlayerApi2$[2]; // 判断是否有链接传入
91
90
 
@@ -167,7 +166,23 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
167
166
  onCanPlayerInit === null || onCanPlayerInit === void 0 ? void 0 : onCanPlayerInit();
168
167
  } // eslint-disable-next-line react-hooks/exhaustive-deps
169
168
 
170
- }, [api, event, video]);
169
+ }, [api, event, video]); // 补货视频错误,自定义处理
170
+
171
+ useErrorEvent({
172
+ unload: unload,
173
+ flv: flv,
174
+ hls: hls,
175
+ api: playApi,
176
+ event: event,
177
+ reload: reload,
178
+ errorReloadTimer: errorReloadTimer
179
+ }); // 直播缓冲追回
180
+
181
+ useLiveHeart({
182
+ api: playApi,
183
+ event: event,
184
+ isLive: isLive
185
+ });
171
186
  return /*#__PURE__*/React.createElement("div", {
172
187
  className: "lm-player-container ".concat(className),
173
188
  ref: domRef
@@ -204,18 +219,7 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
204
219
  })), customTimeLine ? customTimeLine : !hideContrallerBar ? /*#__PURE__*/React.createElement(Timeline, {
205
220
  api: playApi,
206
221
  event: event
207
- }) : null, /*#__PURE__*/React.createElement(ErrorEvent, {
208
- unload: unload,
209
- flv: flv,
210
- hls: hls,
211
- api: playApi,
212
- event: event,
213
- reload: reload,
214
- errorReloadTimer: errorReloadTimer
215
- }), isLive && /*#__PURE__*/React.createElement(LiveHeart, {
216
- api: playApi,
217
- event: playEvent
218
- })), children);
222
+ }) : null), children);
219
223
  });
220
224
  SinglePlayer.defaultProps = {
221
225
  isLive: true,
@@ -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, ...options }: ILivePlayerProps): JSX.Element;
4
+ declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll, snapshot, defaultScreen, screenChange, defaultSelectIndex, oneWinExtTools, allWinExtTools, ...options }: ILivePlayerProps): JSX.Element;
5
5
  declare namespace LivePlayer {
6
6
  var defaultProps: {
7
7
  list: any[];
@@ -38,7 +38,9 @@ function LivePlayer(_a) {
38
38
  defaultScreen = _a.defaultScreen,
39
39
  screenChange = _a.screenChange,
40
40
  defaultSelectIndex = _a.defaultSelectIndex,
41
- options = __rest(_a, ["list", "children", "onIndexChange", "onClose", "onCloseAll", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex"]);
41
+ oneWinExtTools = _a.oneWinExtTools,
42
+ allWinExtTools = _a.allWinExtTools,
43
+ options = __rest(_a, ["list", "children", "onIndexChange", "onClose", "onCloseAll", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex", "oneWinExtTools", "allWinExtTools"]);
42
44
 
43
45
  var _useState = useState({
44
46
  screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : 4,
@@ -184,7 +186,9 @@ function LivePlayer(_a) {
184
186
  mode: state.modes[state.selectIndex],
185
187
  containerRef: domRef,
186
188
  updateState: updateState,
187
- snapshot: snapshot
189
+ snapshot: snapshot,
190
+ oneWinExtTools: oneWinExtTools,
191
+ allWinExtTools: allWinExtTools
188
192
  }), children && /*#__PURE__*/React.cloneElement(children, {
189
193
  selectIndex: state.selectIndex
190
194
  }));
@@ -16,6 +16,14 @@ interface IToolsProps {
16
16
  onCloseAll?: () => void;
17
17
  disabled: boolean;
18
18
  snapshot?: (base64?: string) => void;
19
+ /**
20
+ * 单窗口拓展工具条,左侧
21
+ */
22
+ oneWinExtTools?: JSX.Element;
23
+ /**
24
+ * 全局窗口工具条,右侧
25
+ */
26
+ allWinExtTools?: JSX.Element;
19
27
  }
20
- declare function LiveTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll, disabled, snapshot }: IToolsProps): JSX.Element;
28
+ declare function LiveTools({ containerRef, oneWinExtTools, allWinExtTools, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll, disabled, snapshot, }: IToolsProps): JSX.Element;
21
29
  export default LiveTools;
@@ -21,6 +21,8 @@ import useFullscreen from '../useFullscreen';
21
21
 
22
22
  function LiveTools(_ref) {
23
23
  var containerRef = _ref.containerRef,
24
+ oneWinExtTools = _ref.oneWinExtTools,
25
+ allWinExtTools = _ref.allWinExtTools,
24
26
  updateState = _ref.updateState,
25
27
  screenNum = _ref.screenNum,
26
28
  getPlayerItem = _ref.getPlayerItem,
@@ -71,7 +73,8 @@ function LiveTools(_ref) {
71
73
  return /*#__PURE__*/React.createElement("div", {
72
74
  className: "player-tools"
73
75
  }, /*#__PURE__*/React.createElement(DisableMark, {
74
- disabled: disabled
76
+ disabled: disabled,
77
+ width: "70%"
75
78
  }, /*#__PURE__*/React.createElement("div", {
76
79
  className: "player-tools-left"
77
80
  }, /*#__PURE__*/React.createElement("span", {
@@ -120,7 +123,7 @@ function LiveTools(_ref) {
120
123
  position: 'relative',
121
124
  top: 1
122
125
  }
123
- }))), /*#__PURE__*/React.createElement("div", {
126
+ })), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
124
127
  className: "player-tools-mid"
125
128
  }, /*#__PURE__*/React.createElement("div", {
126
129
  className: "player-tools-item",
@@ -147,7 +150,7 @@ function LiveTools(_ref) {
147
150
  title: "\u64AD\u653E"
148
151
  }))), /*#__PURE__*/React.createElement("div", {
149
152
  className: "player-tools-right"
150
- }, /*#__PURE__*/React.createElement("span", {
153
+ }, allWinExtTools, /*#__PURE__*/React.createElement("span", {
151
154
  className: "player-tools-item",
152
155
  onClick: onCloseAll
153
156
  }, /*#__PURE__*/React.createElement(IconFont, {
@@ -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, ...options }: IRecordPlayerProps): JSX.Element;
9
+ declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll, download, snapshot, defaultScreen, screenChange, defaultSelectIndex, oneWinExtTools, allWinExtTools, ...options }: IRecordPlayerProps): JSX.Element;
10
10
  export default RecordPlayer;
@@ -67,7 +67,9 @@ function RecordPlayer(_a) {
67
67
  defaultScreen = _a.defaultScreen,
68
68
  screenChange = _a.screenChange,
69
69
  defaultSelectIndex = _a.defaultSelectIndex,
70
- options = __rest(_a, ["list", "children", "queryRecord", "onIndexChange", "onClose", "onCloseAll", "download", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex"]);
70
+ oneWinExtTools = _a.oneWinExtTools,
71
+ allWinExtTools = _a.allWinExtTools,
72
+ options = __rest(_a, ["list", "children", "queryRecord", "onIndexChange", "onClose", "onCloseAll", "download", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex", "oneWinExtTools", "allWinExtTools"]);
71
73
 
72
74
  var _useState = useState(Object.assign(Object.assign({}, defaultState), {
73
75
  screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : defaultState.screenNum
@@ -411,7 +413,8 @@ function RecordPlayer(_a) {
411
413
  })), /*#__PURE__*/React.createElement("div", {
412
414
  className: "player-tools-group"
413
415
  }, /*#__PURE__*/React.createElement(DisableMark, {
414
- disabled: !segmentItem.cid
416
+ disabled: !segmentItem.cid,
417
+ width: "70%"
415
418
  }, /*#__PURE__*/React.createElement(RecordTools, {
416
419
  time: state.currentTimes[state.selectIndex],
417
420
  fit: fit,
@@ -426,7 +429,9 @@ function RecordPlayer(_a) {
426
429
  onCloseAll: onCloseAll,
427
430
  timeMode: state.timeMode,
428
431
  download: download,
429
- snapshot: snapshot
432
+ snapshot: snapshot,
433
+ oneWinExtTools: oneWinExtTools,
434
+ allWinExtTools: allWinExtTools
430
435
  }), /*#__PURE__*/React.createElement(SegmentTimeLine, {
431
436
  begin: timeBegin,
432
437
  updateState: updateState,
@@ -20,6 +20,14 @@ interface IToolsProps {
20
20
  timeMode: number;
21
21
  download?: () => void;
22
22
  snapshot?: (base64: string) => void;
23
+ /**
24
+ * 单窗口拓展工具条,左侧
25
+ */
26
+ oneWinExtTools?: JSX.Element;
27
+ /**
28
+ * 全局窗口工具条,右侧
29
+ */
30
+ allWinExtTools?: JSX.Element;
23
31
  }
24
- declare function RecordTools({ containerRef, updateState, download, screenNum, timeMode, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll, snapshot, }: IToolsProps): JSX.Element;
32
+ declare function RecordTools({ containerRef, updateState, download, screenNum, timeMode, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll, snapshot, oneWinExtTools, allWinExtTools, }: IToolsProps): JSX.Element;
25
33
  export default RecordTools;
@@ -34,7 +34,9 @@ function RecordTools(_ref) {
34
34
  onTimeChange = _ref.onTimeChange,
35
35
  onClose = _ref.onClose,
36
36
  onCloseAll = _ref.onCloseAll,
37
- snapshot = _ref.snapshot;
37
+ snapshot = _ref.snapshot,
38
+ oneWinExtTools = _ref.oneWinExtTools,
39
+ allWinExtTools = _ref.allWinExtTools;
38
40
 
39
41
  var _useFullscreen = useFullscreen(containerRef),
40
42
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
@@ -114,7 +116,7 @@ function RecordTools(_ref) {
114
116
  },
115
117
  type: "lm-player-S_Device_shezhi",
116
118
  title: "\u5207\u6362".concat(mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F")
117
- }))), /*#__PURE__*/React.createElement("div", {
119
+ })), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
118
120
  className: "player-tools-mid"
119
121
  }, /*#__PURE__*/React.createElement("div", {
120
122
  className: "player-tools-item",
@@ -148,7 +150,7 @@ function RecordTools(_ref) {
148
150
  title: "\u64AD\u653E"
149
151
  }))), /*#__PURE__*/React.createElement("div", {
150
152
  className: "player-tools-right"
151
- }, /*#__PURE__*/React.createElement("span", {
153
+ }, allWinExtTools, /*#__PURE__*/React.createElement("span", {
152
154
  className: "player-tools-item",
153
155
  onClick: onCloseAll
154
156
  }, /*#__PURE__*/React.createElement(IconFont, {
@@ -40,15 +40,40 @@ export interface IRecordPlayerProps {
40
40
  */
41
41
  download?: () => void;
42
42
 
43
+ /**
44
+ * 截图
45
+ */
43
46
  snapshot?: (base64: string) => void;
44
47
 
48
+ /**
49
+ * 窗口变化
50
+ */
45
51
  screenChange?: (num: number) => void;
46
52
 
53
+ /**
54
+ * 默认窗口数量
55
+ */
47
56
  defaultScreen?: 1 | 4 | 6 | 9 | 16;
48
57
 
58
+ /**
59
+ * 窗口数量,若有值数量将由外部控制
60
+ */
49
61
  screenNum?: 1 | 4 | 6 | 9 | 16;
50
62
 
63
+ /**
64
+ * 默认选中窗口
65
+ * @default 0
66
+ */
51
67
  defaultSelectIndex?: number;
68
+ /**
69
+ * 单窗口拓展工具条,左侧
70
+ */
71
+ oneWinExtTools?: JSX.Element;
72
+
73
+ /**
74
+ * 全局窗口工具条,右侧
75
+ */
76
+ allWinExtTools?: JSX.Element;
52
77
  }
53
78
 
54
79
  export interface IRecordPlayerState {
@@ -118,15 +143,41 @@ export interface ILivePlayerProps {
118
143
  */
119
144
  onIndexChange?: (idx: number) => void;
120
145
 
146
+ /**
147
+ * 截图
148
+ */
121
149
  snapshot?: (base64: string) => void;
122
150
 
151
+ /**
152
+ * 窗口变化
153
+ */
123
154
  screenChange?: (num: number) => void;
124
155
 
156
+ /**
157
+ * 默认窗口数量
158
+ */
125
159
  defaultScreen?: 1 | 4 | 6 | 9 | 16;
126
160
 
161
+ /**
162
+ * 窗口数量,若有值由外部来完全控制
163
+ */
127
164
  screenNum?: 1 | 4 | 6 | 9 | 16;
128
165
 
166
+ /**
167
+ * 默认选中窗口
168
+ * @default 0
169
+ */
129
170
  defaultSelectIndex?: number;
171
+
172
+ /**
173
+ * 单窗口拓展工具条,左侧
174
+ */
175
+ oneWinExtTools?: JSX.Element;
176
+
177
+ /**
178
+ * 全局窗口工具条,右侧
179
+ */
180
+ allWinExtTools?: JSX.Element;
130
181
  }
131
182
 
132
183
  export interface ILivePlayerState {
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.16",
5
+ "version": "3.0.17",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",