@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 +0 -2
- package/es/DeviceSelect/index.js +1 -1
- package/es/FullScreen/index.d.ts +2 -1
- package/es/FullScreen/index.js +7 -4
- package/es/HightLevel/index.js +1 -1
- package/es/Picture/component/MoveContent/index.js +2 -2
- package/es/Picture/demo.d.ts +2 -0
- package/es/Picture/demo.js +16 -0
- package/es/Picture/index.js +2 -2
- package/es/Picture/utils.js +1 -1
- package/es/Player/frontend_player.d.ts +1 -7
- package/es/Player/index.d.ts +2 -8
- package/es/Player/index.js +1 -7
- package/es/Player/player.d.ts +15 -0
- package/es/Player/segment_player.d.ts +1 -5
- package/es/PlayerExt/demo.d.ts +2 -0
- package/es/PlayerExt/demo.js +227 -0
- package/es/PlayerExt/index.css +13 -0
- package/es/PlayerExt/index.d.ts +36 -0
- package/es/PlayerExt/index.js +120 -0
- package/es/UserSelect/index.js +1 -1
- package/es/WorkerFlow/Form/EmptyUserSet.js +1 -1
- package/es/WorkerFlow/Form/FormAuth.js +1 -1
- package/es/WorkerFlow/Form/GroupSelect.js +1 -1
- package/es/WorkerFlow/Form/GroupSelectModalContent.js +1 -1
- package/es/WorkerFlow/Form/LevelGroupSelect.js +1 -1
- package/es/WorkerFlow/Form/UserAndGroupSelect.js +1 -1
- package/es/WorkerFlow/Form/UserSelect.js +1 -1
- package/es/WorkerFlow/Form/UserSelectModalContent.js +1 -1
- package/es/WorkerFlow/Form/UserSet.js +1 -1
- package/es/WorkerFlow/index.js +1 -1
- package/es/WorkerFlow/utils.js +1 -1
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/package.json +7 -8
- package/tsconfig.json +1 -1
package/.umirc.ts
CHANGED
package/es/DeviceSelect/index.js
CHANGED
|
@@ -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
|
|
package/es/FullScreen/index.d.ts
CHANGED
|
@@ -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;
|
package/es/FullScreen/index.js
CHANGED
|
@@ -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
|
-
|
|
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;
|
package/es/HightLevel/index.js
CHANGED
|
@@ -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
|
|
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,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
|
+
}
|
package/es/Picture/index.js
CHANGED
|
@@ -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);
|
package/es/Picture/utils.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type {
|
|
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
|
package/es/Player/index.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
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;
|
package/es/Player/index.js
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
1
|
import SinglePlayer from './single_player';
|
|
2
|
-
|
|
3
|
-
import FrontendPlayer from './frontend_player';
|
|
4
|
-
export default {
|
|
5
|
-
SinglePlayer: SinglePlayer,
|
|
6
|
-
FrontendPlayer: FrontendPlayer,
|
|
7
|
-
SegmentPlayer: SegmentPlayer
|
|
8
|
-
};
|
|
2
|
+
export default SinglePlayer;
|
package/es/Player/player.d.ts
CHANGED
|
@@ -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 {
|
|
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,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 };
|
package/es/UserSelect/index.js
CHANGED
|
@@ -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';
|
package/es/WorkerFlow/index.js
CHANGED
|
@@ -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';
|
package/es/WorkerFlow/utils.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
54
|
-
"antd": "^4.
|
|
51
|
+
"@umijs/test": "^3.5.26",
|
|
52
|
+
"antd": "^4.21.0",
|
|
55
53
|
"babel-plugin-import": "^1.13.3",
|
|
56
|
-
"dumi": "^1.1.
|
|
57
|
-
"father-build": "^1.22.
|
|
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
|
},
|