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

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.
package/.umirc.ts CHANGED
@@ -39,8 +39,6 @@ export default defineConfig({
39
39
  },
40
40
  },
41
41
  },
42
- fastRefresh: true,
43
-
44
42
  // mfsu: {
45
43
  // development: {
46
44
  // output: './.mfsu/dev',
@@ -22,7 +22,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
22
22
  import TreeMode from '../Tree';
23
23
  import DynamicDeviceList from '../List/DynamicDeviceList';
24
24
  import DeviceList from '../List/DeviceList';
25
- import { uniq, uniqBy } from 'lodash';
25
+ import { uniq, uniqBy } from 'lodash-es';
26
26
  import TreeType from './TreeType';
27
27
  import "./index.css";
28
28
 
@@ -4,6 +4,7 @@ interface IFullScrenProps {
4
4
  className?: string;
5
5
  getContainer: () => HTMLElement | Element;
6
6
  fullScreenChange?: (flag: boolean) => void;
7
+ hasText?: boolean;
7
8
  }
8
- declare function FullScreen({ className, getContainer, fullScreenChange }: IFullScrenProps): JSX.Element;
9
+ declare function FullScreen({ className, getContainer, fullScreenChange, hasText }: IFullScrenProps): JSX.Element;
9
10
  export default FullScreen;
@@ -19,7 +19,8 @@ import "./index.css";
19
19
  function FullScreen(_ref) {
20
20
  var className = _ref.className,
21
21
  getContainer = _ref.getContainer,
22
- fullScreenChange = _ref.fullScreenChange;
22
+ fullScreenChange = _ref.fullScreenChange,
23
+ hasText = _ref.hasText;
23
24
 
24
25
  var _useFullscreen = _useFullscreen3(getContainer),
25
26
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
@@ -27,15 +28,17 @@ function FullScreen(_ref) {
27
28
  toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
28
29
 
29
30
  useEffect(function () {
30
- return fullScreenChange && fullScreenChange(isFullscreen);
31
+ if (isFullscreen) {
32
+ fullScreenChange(isFullscreen);
33
+ }
31
34
  }, [isFullscreen]);
32
35
  return /*#__PURE__*/React.createElement("span", {
33
- className: "tools-screen-layer ".concat(className ? className : ''),
36
+ className: "tools-screen-layer ".concat(className !== null && className !== void 0 ? className : ''),
34
37
  onClick: toggleFullscreen
35
38
  }, /*#__PURE__*/React.createElement(IconFont, {
36
39
  className: "defualt-fullscreen-icon icon-primary",
37
40
  type: !isFullscreen ? 'icon-S_View_ScreenViewFull' : 'icon-S_View_ScreenViewExit'
38
- }), !isFullscreen ? '全屏' : '窗口');
41
+ }), hasText ? !isFullscreen ? '全屏' : '窗口' : undefined);
39
42
  }
40
43
 
41
44
  export default FullScreen;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { replace, escapeRegExp } from 'lodash';
2
+ import { replace, escapeRegExp } from 'lodash-es';
3
3
  import "./index.css";
4
4
 
5
5
  function HighLevel(_ref) {
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
8
8
 
9
9
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
10
10
 
11
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
11
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
12
 
13
13
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
14
 
@@ -18,7 +18,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
18
18
 
19
19
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
20
20
 
21
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
22
22
 
23
23
  import React from 'react';
24
24
  import addEventListener from 'add-dom-event-listener';
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function App(): JSX.Element;
@@ -0,0 +1,16 @@
1
+ import "antd/lib/config-provider/style";
2
+ import _ConfigProvider from "antd/lib/config-provider";
3
+ import React from 'react';
4
+ import Picture from '.';
5
+ export default function App() {
6
+ return /*#__PURE__*/React.createElement(_ConfigProvider, {
7
+ prefixCls: "cloudapp"
8
+ }, /*#__PURE__*/React.createElement("div", {
9
+ style: {
10
+ width: 800,
11
+ height: 400
12
+ }
13
+ }, /*#__PURE__*/React.createElement(Picture, {
14
+ imagePath: "https://x0.ifengimg.com/cmpp/fck/2020_30/65cca65a549d6c2_w1024_h578.jpg"
15
+ })));
16
+ }
@@ -23,7 +23,7 @@ import Tools from './component/Tools';
23
23
  import DrawRect from './component/DrawRect';
24
24
  import WheelScale from './component/WheelScale';
25
25
  import DefaultRects from './component/DefaultRects';
26
- import { isFunction } from 'lodash';
26
+ import { isFunction } from 'lodash-es';
27
27
  import "./index.css";
28
28
 
29
29
  function Picture(_a) {
@@ -187,7 +187,7 @@ function Picture(_a) {
187
187
  rotate = state.rotate;
188
188
 
189
189
  if (!layoutRef.current) {
190
- return;
190
+ return undefined;
191
191
  }
192
192
 
193
193
  var position = computedBound(layoutRef.current, currrentPosition, scale, rotate);
@@ -1,4 +1,4 @@
1
- import { cloneDeep } from 'lodash';
1
+ import { cloneDeep } from 'lodash-es';
2
2
  export function customContextMenu(e) {
3
3
  e.preventDefault();
4
4
  return false;
@@ -1,11 +1,5 @@
1
1
  /// <reference types="react" />
2
- import type { ISinglePlayerProps } from './player';
3
- declare type OmitPlayerProps = 'customTimeLine' | 'onCanPlayerInit' | 'isLive' | 'reload' | 'type';
4
- interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlayerProps> {
5
- begin?: number;
6
- end?: number;
7
- onSeek(time: number): void;
8
- }
2
+ import type { IFrontendPlayerProps } from './player';
9
3
  /**
10
4
  * @desc 主组件,负责片段整体逻辑控制
11
5
  * @param param0
@@ -1,8 +1,2 @@
1
- import SegmentPlayer from './segment_player';
2
- import FrontendPlayer from './frontend_player';
3
- declare const _default: {
4
- SinglePlayer: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<import("./player").ISinglePlayerProps & import("react").RefAttributes<import("./player").ExportPlayerType>>>;
5
- FrontendPlayer: typeof FrontendPlayer;
6
- SegmentPlayer: typeof SegmentPlayer;
7
- };
8
- export default _default;
1
+ import SinglePlayer from './single_player';
2
+ export default SinglePlayer;
@@ -1,8 +1,2 @@
1
1
  import SinglePlayer from './single_player';
2
- import SegmentPlayer from './segment_player';
3
- import FrontendPlayer from './frontend_player';
4
- export default {
5
- SinglePlayer: SinglePlayer,
6
- FrontendPlayer: FrontendPlayer,
7
- SegmentPlayer: SegmentPlayer
8
- };
2
+ export default SinglePlayer;
@@ -37,7 +37,22 @@ export interface ISinglePlayerProps {
37
37
  playerEvents?: CustomEvent[];
38
38
  }
39
39
 
40
+ type OmitPlayerProps = 'customTimeLine' | 'onCanPlayerInit' | 'isLive' | 'reload' | 'type';
41
+
42
+ export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlayerProps> {
43
+ begin?: number;
44
+ end?: number;
45
+ onSeek(time: number): void;
46
+ }
47
+
48
+ export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'customTimeLine' | 'onCanPlayerInit'> {
49
+ segments?: ISegmentType[];
50
+ begin?: number;
51
+ }
52
+
40
53
  export const SinglePlayer: React.FunctionComponent<ISinglePlayerProps>;
54
+ export const FrontendPlayer: React.FunctionComponent<IFrontendPlayerProps>;
55
+ export const SegmentPlayer: React.FunctionComponent<ISegmentPlayerProps>;
41
56
 
42
57
  export interface EventName {
43
58
  RELOAD: 'reload'; //手动视频重载
@@ -1,9 +1,5 @@
1
1
  /// <reference types="react" />
2
- import type { ISegmentType, ISinglePlayerProps } from './player';
3
- interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'customTimeLine' | 'onCanPlayerInit'> {
4
- segments?: ISegmentType[];
5
- begin?: number;
6
- }
2
+ import type { ISegmentPlayerProps } from './player';
7
3
  /**
8
4
  * @desc 主组件,负责片段整体逻辑控制
9
5
  * @param param0
@@ -0,0 +1,2 @@
1
+ declare const App: () => JSX.Element;
2
+ export default App;
@@ -0,0 +1,227 @@
1
+ import "antd/lib/config-provider/style";
2
+ import _ConfigProvider from "antd/lib/config-provider";
3
+ import "antd/lib/button/style";
4
+ import _Button from "antd/lib/button";
5
+ import "antd/lib/input/style";
6
+ import _Input from "antd/lib/input";
7
+ import "antd/lib/select/style";
8
+ import _Select from "antd/lib/select";
9
+
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+
12
+ 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."); }
13
+
14
+ 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); }
15
+
16
+ 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; }
17
+
18
+ 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; }
19
+
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+
22
+ import React, { useState } from 'react';
23
+ import Player from '../Player/single_player';
24
+ import ExtModel from './index';
25
+ var options = [{
26
+ value: '',
27
+ label: '自动'
28
+ }, {
29
+ value: 'flv',
30
+ label: 'FLV'
31
+ }, {
32
+ value: 'hls',
33
+ label: 'HLS'
34
+ }];
35
+ var options2 = [{
36
+ value: 1,
37
+ label: '直播'
38
+ }, {
39
+ value: 0,
40
+ label: '录像'
41
+ }];
42
+
43
+ function Demo1() {
44
+ var _useState = useState({
45
+ type: undefined,
46
+ isLive: 1,
47
+ url: '',
48
+ tempUrl: ''
49
+ }),
50
+ _useState2 = _slicedToArray(_useState, 2),
51
+ state = _useState2[0],
52
+ setState = _useState2[1];
53
+
54
+ return /*#__PURE__*/React.createElement("div", {
55
+ style: {
56
+ width: '100%',
57
+ height: 800
58
+ }
59
+ }, /*#__PURE__*/React.createElement("h3", null, "\u6807\u51C6\u89C6\u9891\u64AD\u653E"), /*#__PURE__*/React.createElement("div", {
60
+ style: {
61
+ marginBottom: 10,
62
+ display: 'flex'
63
+ }
64
+ }, /*#__PURE__*/React.createElement(_Select, {
65
+ value: state.type || '',
66
+ onChange: function onChange(val) {
67
+ return setState(function (old) {
68
+ return Object.assign(Object.assign({}, old), {
69
+ type: val
70
+ });
71
+ });
72
+ }
73
+ }, options.map(function (v) {
74
+ return /*#__PURE__*/React.createElement(_Select.Option, {
75
+ key: v.label,
76
+ value: v.value
77
+ }, v.label);
78
+ })), /*#__PURE__*/React.createElement(_Input, {
79
+ style: {
80
+ flex: 1,
81
+ height: 32
82
+ },
83
+ type: "text",
84
+ placeholder: "\u8BF7\u8F93\u5165\u89C6\u9891\u5730\u5740",
85
+ onChange: function onChange(e) {
86
+ return setState(function (old) {
87
+ return Object.assign(Object.assign({}, old), {
88
+ tempUrl: e.target.value
89
+ });
90
+ });
91
+ }
92
+ }), /*#__PURE__*/React.createElement(_Select, {
93
+ value: state.isLive,
94
+ onChange: function onChange(val) {
95
+ return setState(function (old) {
96
+ return Object.assign(Object.assign({}, old), {
97
+ isLive: val
98
+ });
99
+ });
100
+ }
101
+ }, options2.map(function (v) {
102
+ return /*#__PURE__*/React.createElement(_Select.Option, {
103
+ key: v.label,
104
+ value: v.value
105
+ }, v.label);
106
+ })), /*#__PURE__*/React.createElement(_Button, {
107
+ style: {
108
+ width: 60,
109
+ height: 32
110
+ },
111
+ onClick: function onClick(e) {
112
+ return setState(function (old) {
113
+ return Object.assign(Object.assign({}, old), {
114
+ url: state.tempUrl
115
+ });
116
+ });
117
+ }
118
+ }, "\u64AD\u653E")), /*#__PURE__*/React.createElement("div", {
119
+ style: {
120
+ height: 600
121
+ }
122
+ }, /*#__PURE__*/React.createElement(ExtModel, {
123
+ url: state.url,
124
+ mode: 1
125
+ }, /*#__PURE__*/React.createElement(Player, {
126
+ type: state.type,
127
+ url: state.url,
128
+ isLive: !!state.isLive
129
+ }))));
130
+ }
131
+
132
+ function Demo2() {
133
+ var _useState3 = useState({
134
+ type: undefined,
135
+ isLive: 1,
136
+ url: '',
137
+ tempUrl: ''
138
+ }),
139
+ _useState4 = _slicedToArray(_useState3, 2),
140
+ state = _useState4[0],
141
+ setState = _useState4[1];
142
+
143
+ return /*#__PURE__*/React.createElement("div", {
144
+ style: {
145
+ width: '100%',
146
+ height: 800
147
+ }
148
+ }, /*#__PURE__*/React.createElement("h3", null, "\u63D2\u4EF6\u89C6\u9891\u64AD\u653E"), /*#__PURE__*/React.createElement("div", {
149
+ style: {
150
+ marginBottom: 10,
151
+ display: 'flex'
152
+ }
153
+ }, /*#__PURE__*/React.createElement(_Select, {
154
+ value: state.type || '',
155
+ onChange: function onChange(val) {
156
+ return setState(function (old) {
157
+ return Object.assign(Object.assign({}, old), {
158
+ type: val
159
+ });
160
+ });
161
+ }
162
+ }, options.map(function (v) {
163
+ return /*#__PURE__*/React.createElement(_Select.Option, {
164
+ key: v.label,
165
+ value: v.value
166
+ }, v.label);
167
+ })), /*#__PURE__*/React.createElement(_Input, {
168
+ style: {
169
+ flex: 1,
170
+ height: 32
171
+ },
172
+ type: "text",
173
+ placeholder: "\u8BF7\u8F93\u5165\u89C6\u9891\u5730\u5740",
174
+ onChange: function onChange(e) {
175
+ return setState(function (old) {
176
+ return Object.assign(Object.assign({}, old), {
177
+ tempUrl: e.target.value
178
+ });
179
+ });
180
+ }
181
+ }), /*#__PURE__*/React.createElement(_Select, {
182
+ value: state.isLive,
183
+ onChange: function onChange(val) {
184
+ return setState(function (old) {
185
+ return Object.assign(Object.assign({}, old), {
186
+ isLive: val
187
+ });
188
+ });
189
+ }
190
+ }, options2.map(function (v) {
191
+ return /*#__PURE__*/React.createElement(_Select.Option, {
192
+ key: v.label,
193
+ value: v.value
194
+ }, v.label);
195
+ })), /*#__PURE__*/React.createElement(_Button, {
196
+ style: {
197
+ width: 60,
198
+ height: 32
199
+ },
200
+ onClick: function onClick(e) {
201
+ return setState(function (old) {
202
+ return Object.assign(Object.assign({}, old), {
203
+ url: state.tempUrl
204
+ });
205
+ });
206
+ }
207
+ }, "\u64AD\u653E")), /*#__PURE__*/React.createElement("div", {
208
+ style: {
209
+ height: 600
210
+ }
211
+ }, /*#__PURE__*/React.createElement(ExtModel, {
212
+ url: state.url,
213
+ mode: 2
214
+ }, /*#__PURE__*/React.createElement(Player, {
215
+ type: state.type,
216
+ url: state.url,
217
+ isLive: !!state.isLive
218
+ }))));
219
+ }
220
+
221
+ var App = function App() {
222
+ return /*#__PURE__*/React.createElement(_ConfigProvider, {
223
+ prefixCls: "cloudapp"
224
+ }, /*#__PURE__*/React.createElement(Demo1, null), /*#__PURE__*/React.createElement(Demo2, null));
225
+ };
226
+
227
+ export default App;
@@ -0,0 +1,13 @@
1
+ .lm-player-ext-layput {
2
+ background-color: #000;
3
+ width: 100%;
4
+ height: 100%;
5
+ color: #fff;
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+ justify-content: center;
10
+ }
11
+ .lm-player-ext-layput .lm-player-PlaySource {
12
+ font-size: 66px;
13
+ }
@@ -0,0 +1,36 @@
1
+ /// <reference types="react" />
2
+ import './index.less';
3
+ export declare type PlayModeType = 1 | 2;
4
+ export interface IPluginProps {
5
+ url?: string;
6
+ children: JSX.Element;
7
+ /**
8
+ * @description 模式1浏览器模式,2插件模式
9
+ * @default 1
10
+ */
11
+ mode?: PlayModeType;
12
+ /**
13
+ * @description 插件下载地址
14
+ */
15
+ pluginDownloadUrl?: string;
16
+ /**
17
+ * @description 插件模式下传递的参数 ’&’开头
18
+ * @default ''
19
+ */
20
+ pluginParams?: string;
21
+ }
22
+ /**
23
+ * 客户端插件模式,随机端口
24
+ */
25
+ export declare const LOCAL_PORT: string[];
26
+ /**
27
+ * 随机获取端口号
28
+ * @returns
29
+ */
30
+ export declare function getLocalPort(): string;
31
+ export declare function getLocalPlayPath(url: string, params?: string): string;
32
+ export declare function usePlugin(mode: PlayModeType): {
33
+ needInstall: boolean;
34
+ };
35
+ export declare function ExtModel({ url, children, mode, pluginDownloadUrl, pluginParams }: IPluginProps): JSX.Element;
36
+ export { ExtModel as default };
@@ -0,0 +1,120 @@
1
+ import _useMount from "ahooks/es/useMount";
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, { useMemo, useState } from 'react';
16
+ import IconFont from '../Player/iconfont';
17
+ import "./index.css";
18
+ /**
19
+ * 客户端插件模式,随机端口
20
+ */
21
+
22
+ export var LOCAL_PORT = ['15080', '15081', '15082', '15083', '15084', '15085', '15086', '15087', '15088', '15089'];
23
+ /**
24
+ * 随机获取端口号
25
+ * @returns
26
+ */
27
+
28
+ export function getLocalPort() {
29
+ return LOCAL_PORT[Math.floor(Math.random() * LOCAL_PORT.length)];
30
+ }
31
+ export function getLocalPlayPath(url) {
32
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
33
+ var URL_TEMPLATE = "http://127.0.0.1:<port>/video/v1/transcoding?uri=<pull_uri>";
34
+ var port = getLocalPort();
35
+ var pull_uri = window.btoa(url).replaceAll('=', '').replaceAll('/', '_').replaceAll('+', '-');
36
+ return URL_TEMPLATE.replace('<port>', port).replace('<pull_uri>', pull_uri) + params;
37
+ }
38
+ export function usePlugin(mode) {
39
+ var _useState = useState({
40
+ installed: false
41
+ }),
42
+ _useState2 = _slicedToArray(_useState, 2),
43
+ state = _useState2[0],
44
+ setState = _useState2[1];
45
+
46
+ _useMount(function () {
47
+ if (mode !== 2) {
48
+ return undefined;
49
+ }
50
+
51
+ var port = getLocalPort();
52
+ fetch("http://127.0.0.1:".concat(port, "/video/v1/state")).then(function (res) {
53
+ if (res.status === 200) {
54
+ setState({
55
+ installed: true
56
+ });
57
+ }
58
+ }).catch(function (e) {
59
+ console.error('插件未安装');
60
+ });
61
+ });
62
+
63
+ return {
64
+ needInstall: useMemo(function () {
65
+ return mode === 2 && !state.installed;
66
+ }, [state.installed])
67
+ };
68
+ }
69
+ export function ExtModel(_ref) {
70
+ var url = _ref.url,
71
+ children = _ref.children,
72
+ mode = _ref.mode,
73
+ pluginDownloadUrl = _ref.pluginDownloadUrl,
74
+ pluginParams = _ref.pluginParams;
75
+ var hasUrl = useMemo(function () {
76
+ return !!url;
77
+ }, [url]);
78
+
79
+ var _usePlugin = usePlugin(mode),
80
+ needInstall = _usePlugin.needInstall;
81
+
82
+ var playUrl = useMemo(function () {
83
+ return needInstall && url ? getLocalPlayPath(url, pluginParams) : url;
84
+ }, [url]);
85
+
86
+ if (needInstall) {
87
+ return /*#__PURE__*/React.createElement("div", {
88
+ className: "lm-player-ext-layput"
89
+ }, /*#__PURE__*/React.createElement("div", {
90
+ style: {
91
+ marginTop: -60,
92
+ textAlign: 'center'
93
+ }
94
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(IconFont, {
95
+ type: "lm-player-PlaySource"
96
+ })), /*#__PURE__*/React.createElement("div", null, "\u8BF7", /*#__PURE__*/React.createElement("a", {
97
+ target: "_blank",
98
+ href: pluginDownloadUrl,
99
+ style: {
100
+ textDecoration: 'none',
101
+ padding: '0 4px'
102
+ },
103
+ download: "PlayerPlugin.exe",
104
+ rel: "noopener noreferrer"
105
+ }, "\u4E0B\u8F7D"), "\u64AD\u653E\u63D2\u4EF6")));
106
+ }
107
+
108
+ if (!hasUrl) {
109
+ return /*#__PURE__*/React.createElement("div", {
110
+ className: "lm-player-ext-layput"
111
+ }, /*#__PURE__*/React.createElement(IconFont, {
112
+ type: "lm-player-PlaySource"
113
+ }));
114
+ }
115
+
116
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(children, {
117
+ url: playUrl
118
+ }));
119
+ }
120
+ export { ExtModel as default };
@@ -24,7 +24,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24
24
  import React, { useCallback, useMemo, useState, useImperativeHandle } from 'react';
25
25
  import api from '../Api';
26
26
  import TreeMode from '../Tree';
27
- import { uniq, intersectionWith, uniqBy, differenceWith } from 'lodash';
27
+ import { uniq, intersectionWith, uniqBy, differenceWith } from 'lodash-es';
28
28
  import IconFont from '../IconFont';
29
29
  import useHttp from '../useHttp';
30
30
  import ListExt from '../List/ListExt';
@@ -19,7 +19,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
19
 
20
20
  import { __awaiter } from "tslib";
21
21
  import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';
22
- import { replace } from 'lodash';
22
+ import { replace } from 'lodash-es';
23
23
  import chroma from 'chroma-js';
24
24
  import UserSelectModalContent from './UserSelectModalContent';
25
25
  import IconFont from '../../IconFont';
@@ -25,7 +25,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
25
 
26
26
  import React, { useCallback, useEffect, useState } from 'react';
27
27
  import Box from '../../Box';
28
- import { cloneDeep } from 'lodash';
28
+ import { cloneDeep } from 'lodash-es';
29
29
 
30
30
  function FormAuth(_ref) {
31
31
  var form = _ref.form,
@@ -19,7 +19,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
19
 
20
20
  import { __awaiter } from "tslib";
21
21
  import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';
22
- import { replace } from 'lodash';
22
+ import { replace } from 'lodash-es';
23
23
  import chroma from 'chroma-js';
24
24
  import GroupSelectModalContent from './GroupSelectModalContent';
25
25
  import IconFont from '../../IconFont';
@@ -23,7 +23,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
23
  import React, { useCallback, useMemo, useState, useImperativeHandle } from 'react';
24
24
  import api from '../../Api';
25
25
  import TreeMode from '../../Tree';
26
- import { uniq, intersectionWith } from 'lodash';
26
+ import { uniq, intersectionWith } from 'lodash-es';
27
27
  import useHttp from '../../useHttp';
28
28
  import { formatRenderGroup } from './utils';
29
29
  import GroupList from './GroupList';
@@ -21,7 +21,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
21
 
22
22
  import { __awaiter } from "tslib";
23
23
  import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';
24
- import { replace } from 'lodash';
24
+ import { replace } from 'lodash-es';
25
25
  import chroma from 'chroma-js';
26
26
  import GroupSelectModalContent from './GroupSelectModalContent';
27
27
  import { formatRenderGroup, ToUpperNumberString } from './utils';
@@ -21,7 +21,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
21
 
22
22
  import { __awaiter } from "tslib";
23
23
  import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';
24
- import { replace } from 'lodash';
24
+ import { replace } from 'lodash-es';
25
25
  import chroma from 'chroma-js';
26
26
  import UserSelectModalContent from './UserSelectModalContent';
27
27
  import GroupSelectModalContent from './GroupSelectModalContent';
@@ -19,7 +19,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
19
 
20
20
  import { __awaiter } from "tslib";
21
21
  import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';
22
- import { replace } from 'lodash';
22
+ import { replace } from 'lodash-es';
23
23
  import chroma from 'chroma-js';
24
24
  import UserSelectModalContent from './UserSelectModalContent';
25
25
  import IconFont from '../../IconFont';
@@ -22,7 +22,7 @@ import React, { useCallback, useMemo, useState, forwardRef, useImperativeHandle
22
22
  import api from '../../Api';
23
23
  import TreeMode from '../../Tree';
24
24
  import List from '../../List/ListExt';
25
- import { uniq, uniqBy, differenceWith, intersectionWith } from 'lodash';
25
+ import { uniq, uniqBy, differenceWith, intersectionWith } from 'lodash-es';
26
26
  import useHttp from '../../useHttp';
27
27
  var UserSelectModalContent = /*#__PURE__*/forwardRef(function UserSelectModalContent(_ref, ref) {
28
28
  var selectUsers = _ref.selectUsers;
@@ -17,7 +17,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
17
 
18
18
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
19
19
  import { UserSetOptions } from '../Nodes/Constants';
20
- import { cloneDeep } from 'lodash';
20
+ import { cloneDeep } from 'lodash-es';
21
21
  import UsersHandleType from './UsersHandleType';
22
22
  import UserSelect from './UserSelect';
23
23
  import UserAndGroupSelect from './UserAndGroupSelect';
@@ -33,7 +33,7 @@ import ApproverForm from './Form/Approver';
33
33
  import ConditionForm from './Form/Condition';
34
34
  import NotifierForm from './Form/Notifier';
35
35
  import { TemplateConfig1 } from './template';
36
- import { cloneDeep } from 'lodash';
36
+ import { cloneDeep } from 'lodash-es';
37
37
  import EndNode from './Nodes/End';
38
38
  import Render from './Nodes/Render';
39
39
  import Tools from './Tools';
@@ -10,7 +10,7 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
10
10
 
11
11
  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; }
12
12
 
13
- import { cloneDeep } from 'lodash';
13
+ import { cloneDeep } from 'lodash-es';
14
14
  import { getNodeById } from './XML/utils';
15
15
  export function getJAVATaskData(data) {
16
16
  var _a;
package/es/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export { default as LoaderScript } from './LoaderScript';
27
27
  export { default as Modal } from './Modal';
28
28
  export { default as Picture } from './Picture';
29
29
  export { default as Player } from './Player';
30
+ export { default as PlayerExt } from './PlayerExt';
30
31
  export { default as Progress } from './Progress';
31
32
  export { default as SegmentPlayer } from './SegmentPlayer';
32
33
  export { default as Service } from './Service';
package/es/index.js CHANGED
@@ -27,6 +27,7 @@ export { default as LoaderScript } from './LoaderScript';
27
27
  export { default as Modal } from './Modal';
28
28
  export { default as Picture } from './Picture';
29
29
  export { default as Player } from './Player';
30
+ export { default as PlayerExt } from './PlayerExt';
30
31
  export { default as Progress } from './Progress';
31
32
  export { default as SegmentPlayer } from './SegmentPlayer';
32
33
  export { default as Service } from './Service';
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": "2.2.0-alpha.2",
5
+ "version": "2.2.0-alpha.4",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",
@@ -30,7 +30,6 @@
30
30
  ]
31
31
  },
32
32
  "dependencies": {
33
- "@types/lodash-es": "^4.17.6",
34
33
  "add-dom-event-listener": "^1.1.0",
35
34
  "ahooks": "^3.1.0",
36
35
  "axios": "^0.27.2",
@@ -38,7 +37,6 @@
38
37
  "flv.zv.js": "^2.2.0",
39
38
  "hls.js": "^1.1.5",
40
39
  "immer": "^9.0.5",
41
- "lodash": "^4.17.21",
42
40
  "lodash-es": "^4.17.21",
43
41
  "rc-queue-anim": "^2.0.0"
44
42
  },
@@ -46,15 +44,15 @@
46
44
  "@cloud-app-dev/utils": "^3.0.3",
47
45
  "@types/add-dom-event-listener": "^1.1.0",
48
46
  "@types/chroma-js": "^2.1.3",
49
- "@types/lodash": "^4.14.178",
47
+ "@types/lodash-es": "^4.17.6",
50
48
  "@types/node": "^17.0.5",
51
49
  "@types/react": "^18.0.9",
52
50
  "@types/react-dom": "^18.0.4",
53
- "@umijs/test": "^3.0.5",
54
- "antd": "^4.20.6",
51
+ "@umijs/test": "^3.5.26",
52
+ "antd": "^4.21.0",
55
53
  "babel-plugin-import": "^1.13.3",
56
- "dumi": "^1.1.40",
57
- "father-build": "^1.22.1",
54
+ "dumi": "^1.1.42",
55
+ "father-build": "^1.22.3",
58
56
  "gh-pages": "^3.0.0",
59
57
  "history": "^5.3.0",
60
58
  "lint-staged": "^10.0.7",
@@ -62,6 +60,7 @@
62
60
  "react": "^18.1.0",
63
61
  "react-dom": "^18.1.0",
64
62
  "react-router-dom": "^6.3.0",
63
+ "tslib": "^2.4.0",
65
64
  "typescript": "^4.5.4",
66
65
  "yorkie": "^2.0.0"
67
66
  },
package/tsconfig.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "compilerOptions": {
4
4
  "target": "es6",
5
5
  "module": "esnext",
6
- "lib": ["es2018", "dom", "es2019"],
6
+ "lib": ["es2018", "dom", "es2021"],
7
7
  "rootDir": "./",
8
8
  "outDir": "es",
9
9
  "moduleResolution": "node",