@cloud-app-dev/vidc 2.1.0-alpha.8 → 2.2.0-alpha.2

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 (166) hide show
  1. package/.umirc.ts +4 -3
  2. package/es/Api/index.js +1 -1
  3. package/es/AppContext/Sync.d.ts +1 -0
  4. package/es/AppContext/interface.d.ts +4 -1
  5. package/es/CheckGroupFixed/index.d.ts +1 -0
  6. package/es/DeviceSelect/TreeType.d.ts +1 -0
  7. package/es/DeviceSelect/demo.d.ts +1 -0
  8. package/es/DeviceSelect/index.d.ts +1 -0
  9. package/es/DeviceSelect/index.js +1 -1
  10. package/es/Drag/DragAndDropItem.js +2 -2
  11. package/es/Drag/DropItem.js +2 -2
  12. package/es/Drawer/Demo.js +24 -3
  13. package/es/Drawer/Footer.d.ts +1 -0
  14. package/es/Drawer/index.d.ts +29 -3
  15. package/es/Drawer/index.js +155 -4
  16. package/es/FrontendPlayer/index.d.ts +2 -0
  17. package/es/FrontendPlayer/index.js +2 -0
  18. package/es/FullScreen/index.d.ts +2 -3
  19. package/es/FullScreen/index.js +14 -41
  20. package/es/InitialConfig/utils.d.ts +5 -5
  21. package/es/InitialConfig/utils.js +19 -19
  22. package/es/Input/index.d.ts +1 -0
  23. package/es/List/CheckExt.d.ts +1 -0
  24. package/es/List/DeviceList/index.js +1 -1
  25. package/es/List/DynamicDeviceList/Demo.d.ts +1 -0
  26. package/es/List/DynamicDeviceList/index.d.ts +1 -0
  27. package/es/List/GridList/index.js +0 -1
  28. package/es/List/VList/index.d.ts +1 -0
  29. package/es/List/index.d.ts +1 -0
  30. package/es/LoaderApp/index.js +26 -22
  31. package/es/LoaderApp/loader.js +2 -6
  32. package/es/LoaderApp/utils.d.ts +1 -0
  33. package/es/LoaderApp/utils.js +37 -0
  34. package/es/Modal/index.d.ts +27 -0
  35. package/es/Modal/index.js +155 -1
  36. package/es/Picture/component/DefaultRects/RectInfo.d.ts +1 -0
  37. package/es/Picture/component/DefaultRects/index.d.ts +2 -1
  38. package/es/Picture/component/DrawRect/index.d.ts +3 -4
  39. package/es/Picture/component/MoveContent/index.js +16 -12
  40. package/es/Picture/component/RectMenu/index.d.ts +2 -3
  41. package/es/Picture/component/Tools/index.js +0 -5
  42. package/es/Picture/component/WheelScale/index.d.ts +1 -0
  43. package/es/Picture/component/WheelScale/index.js +3 -3
  44. package/es/Picture/index.d.ts +1 -0
  45. package/es/Picture/index.js +4 -2
  46. package/es/Picture/interface.d.ts +4 -2
  47. package/es/Picture/utils.d.ts +1 -0
  48. package/es/Player/api/index.d.ts +71 -0
  49. package/es/Player/api/index.js +284 -0
  50. package/es/Player/contraller_bar/bar.d.ts +8 -0
  51. package/es/Player/contraller_bar/bar.js +21 -0
  52. package/es/Player/contraller_bar/contraller_event.d.ts +9 -0
  53. package/es/{RefModal/index.js → Player/contraller_bar/contraller_event.js} +39 -54
  54. package/es/Player/contraller_bar/index.d.ts +19 -0
  55. package/es/Player/contraller_bar/index.js +37 -0
  56. package/es/Player/contraller_bar/left_bar.d.ts +15 -0
  57. package/es/Player/contraller_bar/left_bar.js +91 -0
  58. package/es/Player/contraller_bar/right_bar.d.ts +13 -0
  59. package/es/Player/contraller_bar/right_bar.js +55 -0
  60. package/es/Player/contraller_bar/useBarStatus.d.ts +3 -0
  61. package/es/{RefDrawer/index.js → Player/contraller_bar/useBarStatus.js} +27 -46
  62. package/es/Player/demo.d.ts +2 -0
  63. package/es/Player/demo.js +269 -0
  64. package/es/Player/event/browserTabEvent.d.ts +9 -0
  65. package/es/Player/event/browserTabEvent.js +57 -0
  66. package/es/Player/event/errorEvent.d.ts +16 -0
  67. package/es/Player/event/errorEvent.js +120 -0
  68. package/es/Player/event/eventName.d.ts +3 -0
  69. package/es/Player/event/eventName.js +15 -0
  70. package/es/Player/event/index.d.ts +22 -0
  71. package/es/Player/event/index.js +175 -0
  72. package/es/Player/frontend_player.d.ts +15 -0
  73. package/es/Player/frontend_player.js +90 -0
  74. package/es/Player/frontend_timeline.d.ts +14 -0
  75. package/es/Player/frontend_timeline.js +138 -0
  76. package/es/Player/iconfont.d.ts +13 -0
  77. package/es/Player/iconfont.js +18 -0
  78. package/es/Player/index.d.ts +8 -0
  79. package/es/Player/index.js +8 -0
  80. package/es/Player/live_heart.d.ts +6 -0
  81. package/es/Player/live_heart.js +29 -0
  82. package/es/Player/message.d.ts +11 -0
  83. package/es/Player/message.js +150 -0
  84. package/es/Player/player.d.ts +75 -0
  85. package/es/Player/segment_player.d.ts +13 -0
  86. package/es/Player/segment_player.js +191 -0
  87. package/es/Player/segment_timeline.d.ts +16 -0
  88. package/es/Player/segment_timeline.js +154 -0
  89. package/es/Player/single_player.d.ts +5 -0
  90. package/es/Player/single_player.js +185 -0
  91. package/es/Player/style/bar.css +37 -0
  92. package/es/Player/style/iconfont.css +62 -0
  93. package/es/Player/style/index.css +22 -0
  94. package/es/Player/style/message.css +49 -0
  95. package/es/Player/style/slider.css +96 -0
  96. package/es/Player/style/timeline.css +92 -0
  97. package/es/Player/timeline.d.ts +11 -0
  98. package/es/Player/timeline.js +104 -0
  99. package/es/Player/util.d.ts +48 -0
  100. package/es/Player/util.js +172 -0
  101. package/es/Progress/index.d.ts +1 -0
  102. package/es/SegmentPlayer/index.d.ts +2 -0
  103. package/es/SegmentPlayer/index.js +2 -0
  104. package/es/Service/fetch-adapter.d.ts +12 -0
  105. package/es/Service/fetch-adapter.js +184 -0
  106. package/es/Service/http.d.ts +1 -1
  107. package/es/Service/http.js +4 -2
  108. package/es/Service/interface.d.ts +2 -1
  109. package/es/Tree/BaseTree/demo.d.ts +1 -0
  110. package/es/Tree/BaseTree/demo.js +3 -1
  111. package/es/Tree/BaseTree/index.d.ts +2 -2
  112. package/es/Tree/demo.d.ts +1 -0
  113. package/es/Tree/index.js +1 -1
  114. package/es/UserSelect/demo.d.ts +1 -0
  115. package/es/WorkerFlow/Form/Approver.d.ts +1 -0
  116. package/es/WorkerFlow/Form/Condition.d.ts +1 -0
  117. package/es/WorkerFlow/Form/Condition.js +2 -1
  118. package/es/WorkerFlow/Form/EmptyUserSet.d.ts +1 -0
  119. package/es/WorkerFlow/Form/EmptyUserSet.js +2 -1
  120. package/es/WorkerFlow/Form/FormAuth.d.ts +1 -0
  121. package/es/WorkerFlow/Form/GroupList.d.ts +1 -0
  122. package/es/WorkerFlow/Form/GroupSelect.d.ts +1 -0
  123. package/es/WorkerFlow/Form/GroupSelect.js +2 -1
  124. package/es/WorkerFlow/Form/Handle.d.ts +1 -0
  125. package/es/WorkerFlow/Form/LevelGroupSelect.d.ts +1 -0
  126. package/es/WorkerFlow/Form/LevelGroupSelect.js +2 -1
  127. package/es/WorkerFlow/Form/Notifier.d.ts +1 -0
  128. package/es/WorkerFlow/Form/UserAndGroupSelect.d.ts +1 -0
  129. package/es/WorkerFlow/Form/UserAndGroupSelect.js +2 -1
  130. package/es/WorkerFlow/Form/UserSelect.d.ts +1 -0
  131. package/es/WorkerFlow/Form/UserSelect.js +2 -1
  132. package/es/WorkerFlow/Form/UserSet.d.ts +1 -0
  133. package/es/WorkerFlow/Form/UsersHandleType.d.ts +1 -0
  134. package/es/WorkerFlow/Nodes/Add.d.ts +1 -0
  135. package/es/WorkerFlow/Nodes/Add.js +1 -1
  136. package/es/WorkerFlow/Nodes/AddOption.d.ts +1 -0
  137. package/es/WorkerFlow/Nodes/AddOptionList.d.ts +1 -0
  138. package/es/WorkerFlow/Nodes/Approver.d.ts +1 -0
  139. package/es/WorkerFlow/Nodes/Condition.d.ts +1 -0
  140. package/es/WorkerFlow/Nodes/End.d.ts +1 -0
  141. package/es/WorkerFlow/Nodes/Handle.d.ts +1 -0
  142. package/es/WorkerFlow/Nodes/Node.d.ts +1 -0
  143. package/es/WorkerFlow/Nodes/Notifier.d.ts +1 -0
  144. package/es/WorkerFlow/Nodes/Render.d.ts +1 -0
  145. package/es/WorkerFlow/Nodes/Start.d.ts +1 -0
  146. package/es/WorkerFlow/Nodes/TitleElement.d.ts +1 -0
  147. package/es/WorkerFlow/Nodes/TitleElement.js +6 -2
  148. package/es/WorkerFlow/index.js +2 -1
  149. package/es/index.d.ts +5 -8
  150. package/es/index.js +6 -9
  151. package/es/typings.d.ts +1 -0
  152. package/package.json +15 -10
  153. package/tsconfig.json +3 -2
  154. package/typings/global.d.ts +4 -0
  155. package/es/AppRedirect/index.css +0 -0
  156. package/es/AppRedirect/index.d.ts +0 -16
  157. package/es/AppRedirect/index.js +0 -33
  158. package/es/AppRouter/index.d.ts +0 -8
  159. package/es/AppRouter/index.js +0 -17
  160. package/es/RefDrawer/index.d.ts +0 -15
  161. package/es/RefModal/index.d.ts +0 -15
  162. package/es/useDrawer/index.d.ts +0 -14
  163. package/es/useDrawer/index.js +0 -91
  164. package/es/useModal/index.d.ts +0 -14
  165. package/es/useModal/index.js +0 -93
  166. package/typings.d.ts +0 -2
@@ -0,0 +1,284 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14
+
15
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
16
+
17
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
+
19
+ import { useEffect, useState } from 'react';
20
+ import { fullscreen, isFullscreen, exitFullscreen, createFlvPlayer, createHlsPlayer } from '../util';
21
+
22
+ var Api = /*#__PURE__*/function () {
23
+ function Api(container) {
24
+ var _this = this;
25
+
26
+ _classCallCheck(this, Api);
27
+
28
+ /**
29
+ * 全屏
30
+ */
31
+ this.requestFullScreen = function () {
32
+ if (!isFullscreen(_this.container)) {
33
+ fullscreen(_this.container);
34
+ }
35
+ };
36
+ /**
37
+ * 退出全屏
38
+ */
39
+
40
+
41
+ this.cancelFullScreen = function () {
42
+ if (isFullscreen(_this.container)) {
43
+ exitFullscreen();
44
+ }
45
+ };
46
+
47
+ this.play = function () {
48
+ if (_this.video.paused) {
49
+ _this.video.play();
50
+ }
51
+ };
52
+
53
+ this.pause = function () {
54
+ _this.video.pause();
55
+ };
56
+ /**
57
+ * 设置currentTime实现seek
58
+ * @param {*} seconds
59
+ * @param {*} noEmit
60
+ */
61
+
62
+
63
+ this.seekTo = function (seconds) {
64
+ _this.video.currentTime = seconds;
65
+ };
66
+
67
+ this.setVolume = function (fraction) {
68
+ _this.video.volume = fraction;
69
+ };
70
+
71
+ this.mute = function () {
72
+ _this.video.muted = true;
73
+ };
74
+
75
+ this.unmute = function () {
76
+ _this.video.muted = false;
77
+ };
78
+ /**
79
+ * 开启画中画功能
80
+ */
81
+
82
+
83
+ this.requestPictureInPicture = function () {
84
+ _this.video.requestPictureInPicture();
85
+ };
86
+ /**
87
+ * 关闭画中画功能
88
+ */
89
+
90
+
91
+ this.exitPictureInPicture = function () {
92
+ if (document.exitPictureInPicture && document.pictureInPictureElement === _this.video) {
93
+ document.exitPictureInPicture();
94
+ }
95
+ };
96
+ /**
97
+ * 设置播放速率
98
+ * @param {*} rate
99
+ */
100
+
101
+
102
+ this.setPlaybackRate = function (rate) {
103
+ _this.video.playbackRate = rate;
104
+ };
105
+ /**
106
+ * 获取视频总时长
107
+ */
108
+
109
+
110
+ this.getDuration = function () {
111
+ var _this$video = _this.video,
112
+ duration = _this$video.duration,
113
+ seekable = _this$video.seekable;
114
+
115
+ if (duration === Infinity && seekable.length > 0) {
116
+ return seekable.end(seekable.length - 1);
117
+ }
118
+
119
+ return duration;
120
+ };
121
+ /**
122
+ * 获取当前播放时间
123
+ */
124
+
125
+
126
+ this.getCurrentTime = function () {
127
+ return _this.video.currentTime;
128
+ };
129
+ /**
130
+ * 获取缓存时间
131
+ */
132
+
133
+
134
+ this.getSecondsLoaded = function () {
135
+ return _this.getBufferedTime()[1];
136
+ };
137
+ /**
138
+ * 获取当前视频缓存的起止时间
139
+ */
140
+
141
+
142
+ this.getBufferedTime = function () {
143
+ var buffered = _this.video.buffered;
144
+
145
+ if (buffered.length === 0) {
146
+ return [0, 0];
147
+ }
148
+
149
+ var end = buffered.end(buffered.length - 1);
150
+ var start = buffered.start(buffered.length - 1);
151
+
152
+ var duration = _this.getDuration();
153
+
154
+ if (end > duration) {
155
+ return duration;
156
+ }
157
+
158
+ return [start, end];
159
+ };
160
+ /**
161
+ * 视频截屏方法
162
+ */
163
+
164
+
165
+ this.snapshot = function () {
166
+ var canvas = document.createElement('canvas');
167
+ var ctx = canvas.getContext('2d');
168
+ canvas.width = _this.video.videoWidth;
169
+ canvas.height = _this.video.videoHeight;
170
+ ctx.drawImage(_this.video, 0, 0, canvas.width, canvas.height);
171
+ setTimeout(function () {
172
+ canvas.remove();
173
+ canvas = null;
174
+ ctx = null;
175
+ }, 200);
176
+ return canvas.toDataURL();
177
+ };
178
+
179
+ this.unload = function () {};
180
+
181
+ this.reload = function () {};
182
+
183
+ this.destroy = function () {
184
+ _this.container = null;
185
+ };
186
+
187
+ this.container = container;
188
+ }
189
+
190
+ _createClass(Api, [{
191
+ key: "video",
192
+ get: function get() {
193
+ return this.container.querySelector('video');
194
+ }
195
+ }]);
196
+
197
+ return Api;
198
+ }(); // 创建播放介质
199
+
200
+
201
+ export function useTypeAndPlay(url, type, isLive, container, segments, flvConfig, hlsConfig) {
202
+ var _useState = useState({
203
+ type: '',
204
+ flv: undefined,
205
+ hls: undefined
206
+ }),
207
+ _useState2 = _slicedToArray(_useState, 2),
208
+ state = _useState2[0],
209
+ setState = _useState2[1];
210
+
211
+ useEffect(function () {
212
+ if (!container) {
213
+ return undefined;
214
+ }
215
+
216
+ var video = container.querySelector('video');
217
+ var options = {};
218
+
219
+ if (type === 'flv') {
220
+ if (!(url || segments)) {
221
+ return undefined;
222
+ }
223
+
224
+ options.type = 'flv';
225
+ options.flv = createFlvPlayer(video, url, isLive, flvConfig);
226
+ }
227
+
228
+ if (type === 'hls') {
229
+ if (!url) {
230
+ return undefined;
231
+ }
232
+
233
+ options.type = 'hls';
234
+ options.hls = createHlsPlayer(video, url, hlsConfig);
235
+ }
236
+
237
+ if (url && type === 'native') {
238
+ options.type = 'native';
239
+ video.setAttribute('src', url);
240
+ }
241
+
242
+ try {
243
+ video.play();
244
+ } catch (_) {}
245
+
246
+ setState(options);
247
+ return function () {
248
+ if (options.flv) {
249
+ options.flv.destroy();
250
+ }
251
+
252
+ if (options.hls) {
253
+ options.hls.destroy();
254
+ }
255
+
256
+ video.removeAttribute('src');
257
+ setState({});
258
+ };
259
+ }, [url, container, segments]);
260
+ return [state.type, state.flv, state.hls];
261
+ } //创建Api
262
+
263
+ export function usePlayerApi(url, type, isLive, container, segments, flvConfig, hlsConfig) {
264
+ var _useState3 = useState(null),
265
+ _useState4 = _slicedToArray(_useState3, 2),
266
+ api = _useState4[0],
267
+ setApi = _useState4[1];
268
+
269
+ var typePlay = useTypeAndPlay(url, type, isLive, container, segments, flvConfig, hlsConfig);
270
+ useEffect(function () {
271
+ if (!container) {
272
+ console.debug('wait create api...');
273
+ return undefined;
274
+ }
275
+
276
+ var api = new Api(container);
277
+ setApi(api);
278
+ return function () {
279
+ return api.destroy();
280
+ };
281
+ }, [container, segments]);
282
+ return [api, typePlay];
283
+ }
284
+ export default Api;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface IBarProps extends React.HTMLAttributes<HTMLSpanElement> {
3
+ visibel?: boolean;
4
+ className?: string;
5
+ children?: React.ReactNode;
6
+ }
7
+ declare function Bar({ visibel, className, children, ...props }: IBarProps): JSX.Element;
8
+ export default Bar;
@@ -0,0 +1,21 @@
1
+ import { __rest } from "tslib";
2
+ import React from 'react';
3
+
4
+ function Bar(_a) {
5
+ var _a$visibel = _a.visibel,
6
+ visibel = _a$visibel === void 0 ? true : _a$visibel,
7
+ _a$className = _a.className,
8
+ className = _a$className === void 0 ? '' : _a$className,
9
+ children = _a.children,
10
+ props = __rest(_a, ["visibel", "className", "children"]);
11
+
12
+ if (visibel === false) {
13
+ return null;
14
+ }
15
+
16
+ return /*#__PURE__*/React.createElement("span", Object.assign({
17
+ className: "contraller-bar-item ".concat(className)
18
+ }, props), children);
19
+ }
20
+
21
+ export default Bar;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import VideoEventInstance from '../event';
3
+ interface IContrallerEventProps {
4
+ event?: VideoEventInstance;
5
+ container?: HTMLElement;
6
+ children?: React.ReactNode;
7
+ }
8
+ declare function ContrallerEvent({ event, container, children }: IContrallerEventProps): JSX.Element;
9
+ export default ContrallerEvent;
@@ -10,64 +10,49 @@ 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, { useContext, useImperativeHandle, useMemo, useState } from 'react';
14
- import Modal from '../Modal';
15
- import ConfigContext from '../ConfigContext';
13
+ import React, { useEffect, useState, useRef } from 'react';
14
+ import EventName from '../event/eventName';
16
15
 
17
- function RefModal(_, ref) {
18
- var context = useContext(ConfigContext.Context);
19
- var root = useMemo(function () {
20
- return (context === null || context === void 0 ? void 0 : context.root) || document.body;
21
- }, [context === null || context === void 0 ? void 0 : context.root]);
16
+ function ContrallerEvent(_ref) {
17
+ var event = _ref.event,
18
+ container = _ref.container,
19
+ children = _ref.children;
20
+ var timer = useRef(null);
22
21
 
23
- var _useState = useState({
24
- content: null,
25
- visible: false,
26
- title: '',
27
- onOk: undefined,
28
- width: undefined,
29
- className: undefined
30
- }),
22
+ var _useState = useState(true),
31
23
  _useState2 = _slicedToArray(_useState, 2),
32
- state = _useState2[0],
33
- setState = _useState2[1];
34
-
35
- var open = function open(options) {
36
- setState(function (old) {
37
- return Object.assign(Object.assign(Object.assign({}, old), options), {
38
- visible: true
39
- });
40
- });
41
- };
42
-
43
- var close = function close() {
44
- setState(function (old) {
45
- return Object.assign(Object.assign({}, old), {
46
- visible: false
47
- });
48
- });
49
- };
24
+ visibel = _useState2[0],
25
+ setVisibel = _useState2[1];
26
+
27
+ useEffect(function () {
28
+ var showContraller = function showContraller() {
29
+ clearTimeout(timer.current);
30
+ setVisibel(true);
31
+ event.emit(EventName.SHOW_CONTRALLER);
32
+ };
50
33
 
51
- useImperativeHandle(ref, function () {
52
- return {
53
- open: open,
54
- close: close
34
+ var hideContraller = function hideContraller() {
35
+ clearTimeout(timer.current);
36
+ timer.current = setTimeout(function () {
37
+ setVisibel(false);
38
+ event.emit(EventName.HIDE_CONTRALLER);
39
+ }, 3 * 1000);
40
+ }; // 默认执行延时hide
41
+
42
+
43
+ hideContraller();
44
+ container.addEventListener('mouseenter', showContraller, false);
45
+ container.addEventListener('mouseleave', hideContraller, false);
46
+ return function () {
47
+ container.removeEventListener('mouseenter', showContraller, false);
48
+ container.removeEventListener('mouseleave', hideContraller, false);
55
49
  };
56
- }, [state]);
57
- return /*#__PURE__*/React.createElement(Modal, {
58
- okText: "\u786E\u5B9A",
59
- cancelText: "\u53D6\u6D88",
60
- visible: state.visible,
61
- onOk: state.onOk,
62
- onCancel: close,
63
- destroyOnClose: true,
64
- title: state.title,
65
- width: state.width,
66
- className: state.className,
67
- getContainer: function getContainer() {
68
- return root;
69
- }
70
- }, state.content);
50
+ }, [event]);
51
+ return /*#__PURE__*/React.createElement(React.Fragment, null, React.Children.map(children, function (child) {
52
+ return /*#__PURE__*/React.isValidElement(child) ? /*#__PURE__*/React.cloneElement(child, {
53
+ visibel: visibel
54
+ }) : child;
55
+ }));
71
56
  }
72
57
 
73
- export default /*#__PURE__*/React.forwardRef(RefModal);
58
+ export default ContrallerEvent;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type Api from '../api';
3
+ import type VideoEventInstance from '../event';
4
+ import '../style/bar.less';
5
+ interface IContrallerBarProps {
6
+ container?: HTMLElement;
7
+ rightExtContents: React.ReactNode;
8
+ rightMidExtContents: React.ReactNode;
9
+ visibel?: boolean;
10
+ api: Api;
11
+ event: VideoEventInstance;
12
+ isLive?: boolean;
13
+ leftExtContents: React.ReactNode;
14
+ leftMidExtContents: React.ReactNode;
15
+ reload: () => void;
16
+ hideTimeProgress?: boolean;
17
+ }
18
+ declare function ContrallerBar({ container, rightExtContents, rightMidExtContents, visibel, api, event, isLive, leftExtContents, leftMidExtContents, reload, hideTimeProgress, }: IContrallerBarProps): JSX.Element;
19
+ export default ContrallerBar;
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import LeftBar from './left_bar';
3
+ import RightBar from './right_bar';
4
+ import "../style/bar.css";
5
+
6
+ function ContrallerBar(_ref) {
7
+ var container = _ref.container,
8
+ rightExtContents = _ref.rightExtContents,
9
+ rightMidExtContents = _ref.rightMidExtContents,
10
+ visibel = _ref.visibel,
11
+ api = _ref.api,
12
+ event = _ref.event,
13
+ isLive = _ref.isLive,
14
+ leftExtContents = _ref.leftExtContents,
15
+ leftMidExtContents = _ref.leftMidExtContents,
16
+ reload = _ref.reload,
17
+ hideTimeProgress = _ref.hideTimeProgress;
18
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
19
+ className: "contraller-bar-layout ".concat(!visibel ? 'hide-contraller-bar' : '')
20
+ }, /*#__PURE__*/React.createElement(LeftBar, {
21
+ hideTimeProgress: hideTimeProgress,
22
+ api: api,
23
+ reload: reload,
24
+ event: event,
25
+ container: container,
26
+ isLive: isLive,
27
+ leftMidExtContents: leftMidExtContents,
28
+ leftExtContents: leftExtContents
29
+ }), /*#__PURE__*/React.createElement(RightBar, {
30
+ api: api,
31
+ container: container,
32
+ rightExtContents: rightExtContents,
33
+ rightMidExtContents: rightMidExtContents
34
+ })));
35
+ }
36
+
37
+ export default ContrallerBar;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import Api from '../api';
3
+ import VideoEventInstance from '../event';
4
+ interface ILeftBarProps {
5
+ api: Api;
6
+ event: VideoEventInstance;
7
+ container: HTMLElement;
8
+ isLive: boolean;
9
+ leftExtContents?: React.ReactNode;
10
+ leftMidExtContents?: React.ReactNode;
11
+ reload: () => void;
12
+ hideTimeProgress?: boolean;
13
+ }
14
+ declare function LeftBar({ api, event, container, isLive, reload, leftExtContents, leftMidExtContents, hideTimeProgress }: ILeftBarProps): JSX.Element;
15
+ export default LeftBar;
@@ -0,0 +1,91 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useState, useEffect, useCallback, useMemo } from 'react';
14
+ import IconFont from '../iconfont';
15
+ import Bar from './bar';
16
+ import { useTimes } from '../timeline';
17
+ import { timeStamp } from '../util';
18
+
19
+ function LeftBar(_ref) {
20
+ var api = _ref.api,
21
+ event = _ref.event,
22
+ container = _ref.container,
23
+ isLive = _ref.isLive,
24
+ reload = _ref.reload,
25
+ leftExtContents = _ref.leftExtContents,
26
+ leftMidExtContents = _ref.leftMidExtContents,
27
+ hideTimeProgress = _ref.hideTimeProgress;
28
+
29
+ var _useState = useState(Date.now()),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ dep = _useState2[0],
32
+ setDep = _useState2[1];
33
+
34
+ useEffect(function () {
35
+ var updateRender = function updateRender() {
36
+ return setDep(Date.now());
37
+ };
38
+
39
+ event.addEventListener('play', updateRender);
40
+ event.addEventListener('pause', updateRender);
41
+ event.addEventListener('volumechange', updateRender);
42
+ return function () {
43
+ event.removeEventListener('play', updateRender);
44
+ event.removeEventListener('pause', updateRender);
45
+ event.removeEventListener('volumechange', updateRender);
46
+ };
47
+ }, [event]);
48
+ var video = container.querySelector('video'); //缓存值
49
+
50
+ var paused = useMemo(function () {
51
+ return video === null || video === void 0 ? void 0 : video.paused;
52
+ }, [dep, video]);
53
+ var statusIconClassName = useMemo(function () {
54
+ return paused ? 'lm-player-Play_Main' : 'lm-player-Pause_Main';
55
+ }, [paused]);
56
+ var statusText = useMemo(function () {
57
+ return paused ? '播放' : '暂停';
58
+ }, [paused]);
59
+
60
+ var _useTimes = useTimes(api, event, hideTimeProgress),
61
+ _useTimes2 = _slicedToArray(_useTimes, 3),
62
+ current = _useTimes2[0],
63
+ _ = _useTimes2[1],
64
+ duration = _useTimes2[2]; //TODO 方法
65
+
66
+
67
+ var changePlayStatus = useCallback(function () {
68
+ if (video === null || video === void 0 ? void 0 : video.paused) {
69
+ var buffered = api.getSecondsLoaded();
70
+ api.seekTo(buffered - 1);
71
+ api.play();
72
+ } else {
73
+ api.pause();
74
+ }
75
+ }, [video, api, isLive]);
76
+ return /*#__PURE__*/React.createElement("div", {
77
+ className: "contraller-left-bar"
78
+ }, leftExtContents, /*#__PURE__*/React.createElement(Bar, null, /*#__PURE__*/React.createElement(IconFont, {
79
+ onClick: changePlayStatus,
80
+ type: statusIconClassName,
81
+ title: statusText
82
+ })), !isLive && !hideTimeProgress && /*#__PURE__*/React.createElement("span", {
83
+ className: "video-time-progress"
84
+ }, timeStamp(current), "/", timeStamp(duration || 0)), /*#__PURE__*/React.createElement(Bar, null, /*#__PURE__*/React.createElement(IconFont, {
85
+ onClick: reload,
86
+ type: "lm-player-Refresh_Main",
87
+ title: "\u91CD\u8F7D"
88
+ })), leftMidExtContents);
89
+ }
90
+
91
+ export default LeftBar;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import Api from '../api';
3
+ interface IRightBarProps {
4
+ container?: HTMLElement;
5
+ visibel?: boolean;
6
+ api: Api;
7
+ video?: HTMLVideoElement;
8
+ isLive?: boolean;
9
+ rightExtContents: React.ReactNode;
10
+ rightMidExtContents: React.ReactNode;
11
+ }
12
+ declare function RightBar({ container, api, rightExtContents, rightMidExtContents }: IRightBarProps): JSX.Element;
13
+ export default RightBar;
@@ -0,0 +1,55 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useState, useMemo, useEffect, useCallback } from 'react';
14
+ import IconFont from '../iconfont';
15
+ import Bar from './bar';
16
+ import { isFullscreen } from '../util';
17
+
18
+ function RightBar(_ref) {
19
+ var container = _ref.container,
20
+ api = _ref.api,
21
+ rightExtContents = _ref.rightExtContents,
22
+ rightMidExtContents = _ref.rightMidExtContents;
23
+
24
+ var _useState = useState(Date.now()),
25
+ _useState2 = _slicedToArray(_useState, 2),
26
+ dep = _useState2[0],
27
+ setDep = _useState2[1];
28
+
29
+ useEffect(function () {
30
+ var update = function update() {
31
+ return setDep(Date.now());
32
+ };
33
+
34
+ document.addEventListener('fullscreenchange', update);
35
+ return function () {
36
+ return document.removeEventListener('fullscreenchange', update);
37
+ };
38
+ }, []);
39
+ var isfull = useMemo(function () {
40
+ return isFullscreen(container);
41
+ }, [dep, container]);
42
+ var fullscreen = useCallback(function () {
43
+ !isFullscreen(container) ? api.requestFullScreen() : api.cancelFullScreen();
44
+ setDep(Date.now());
45
+ }, [api, container]);
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ className: "contraller-right-bar"
48
+ }, rightMidExtContents, /*#__PURE__*/React.createElement(Bar, null, /*#__PURE__*/React.createElement(IconFont, {
49
+ title: isfull ? '窗口' : '全屏',
50
+ onClick: fullscreen,
51
+ type: isfull ? 'lm-player-ExitFull_Main' : 'lm-player-Full_Main'
52
+ })), rightExtContents);
53
+ }
54
+
55
+ export default RightBar;
@@ -0,0 +1,3 @@
1
+ import type VideoEventInstance from '../event';
2
+ declare function useBarStatus(event: VideoEventInstance): number;
3
+ export default useBarStatus;