@chaomingd/design 0.0.68
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/LICENSE +21 -0
- package/README.md +23 -0
- package/dist/esm/CheckGroup/context.d.ts +9 -0
- package/dist/esm/CheckGroup/context.js +6 -0
- package/dist/esm/CheckGroup/hooks/useCheckGroup.d.ts +21 -0
- package/dist/esm/CheckGroup/hooks/useCheckGroup.js +180 -0
- package/dist/esm/CheckGroup/index.d.ts +9 -0
- package/dist/esm/CheckGroup/index.js +79 -0
- package/dist/esm/CheckGroup/type.d.ts +28 -0
- package/dist/esm/CheckGroup/type.js +1 -0
- package/dist/esm/Grid/index.d.ts +15 -0
- package/dist/esm/Grid/index.js +64 -0
- package/dist/esm/Grid/index.less +7 -0
- package/dist/esm/KaTeXRenderer/index.d.ts +9 -0
- package/dist/esm/KaTeXRenderer/index.js +33 -0
- package/dist/esm/KaTeXRenderer/index.less +0 -0
- package/dist/esm/PixelPlayer/index.d.ts +28 -0
- package/dist/esm/PixelPlayer/index.js +118 -0
- package/dist/esm/PixelPlayer/index.less +29 -0
- package/dist/esm/PixelPlayer/lib/peer-stream.d.ts +62 -0
- package/dist/esm/PixelPlayer/lib/peer-stream.js +876 -0
- package/dist/esm/PixelPlayer/useAutoLayoutContainer.d.ts +2 -0
- package/dist/esm/PixelPlayer/useAutoLayoutContainer.js +53 -0
- package/dist/esm/PixelPlayer/useVideoWithCustomEvent.d.ts +5 -0
- package/dist/esm/PixelPlayer/useVideoWithCustomEvent.js +37 -0
- package/dist/esm/Resizer/index.d.ts +17 -0
- package/dist/esm/Resizer/index.js +73 -0
- package/dist/esm/Resizer/index.less +73 -0
- package/dist/esm/SetupAntApp/index.d.ts +1 -0
- package/dist/esm/SetupAntApp/index.js +10 -0
- package/dist/esm/Transition/index.d.ts +4 -0
- package/dist/esm/Transition/index.js +132 -0
- package/dist/esm/Transition/type.d.ts +33 -0
- package/dist/esm/Transition/type.js +12 -0
- package/dist/esm/Transition/utils.d.ts +6 -0
- package/dist/esm/Transition/utils.js +15 -0
- package/dist/esm/UploadFile/components/IconButton/index.d.ts +11 -0
- package/dist/esm/UploadFile/components/IconButton/index.js +26 -0
- package/dist/esm/UploadFile/components/IconButton/index.less +58 -0
- package/dist/esm/UploadFile/components/Slash.d.ts +2 -0
- package/dist/esm/UploadFile/components/Slash.js +15 -0
- package/dist/esm/UploadFile/components/SvgIcons.d.ts +11 -0
- package/dist/esm/UploadFile/components/SvgIcons.js +141 -0
- package/dist/esm/UploadFile/hooks/useUploadModel.d.ts +16 -0
- package/dist/esm/UploadFile/hooks/useUploadModel.js +376 -0
- package/dist/esm/UploadFile/index.d.ts +4 -0
- package/dist/esm/UploadFile/index.js +277 -0
- package/dist/esm/UploadFile/index.less +274 -0
- package/dist/esm/UploadFile/type.d.ts +63 -0
- package/dist/esm/UploadFile/type.js +1 -0
- package/dist/esm/UploadFile/utils/formatBitString.d.ts +1 -0
- package/dist/esm/UploadFile/utils/formatBitString.js +9 -0
- package/dist/esm/UploadFile/utils/getExt.d.ts +1 -0
- package/dist/esm/UploadFile/utils/getExt.js +6 -0
- package/dist/esm/UploadFile/utils/isImage.d.ts +1 -0
- package/dist/esm/UploadFile/utils/isImage.js +8 -0
- package/dist/esm/UploadFile/utils/normalizeExt.d.ts +1 -0
- package/dist/esm/UploadFile/utils/normalizeExt.js +4 -0
- package/dist/esm/UploadFile/utils/validateFileTypes.d.ts +13 -0
- package/dist/esm/UploadFile/utils/validateFileTypes.js +83 -0
- package/dist/esm/UploadFile/utils/validateRule.d.ts +3 -0
- package/dist/esm/UploadFile/utils/validateRule.js +22 -0
- package/dist/esm/UploadFile/utils/validateUpload.d.ts +5 -0
- package/dist/esm/UploadFile/utils/validateUpload.js +35 -0
- package/dist/esm/constant/index.d.ts +7 -0
- package/dist/esm/constant/index.js +18 -0
- package/dist/esm/constants/cssPrefix.d.ts +1 -0
- package/dist/esm/constants/cssPrefix.js +1 -0
- package/dist/esm/getAntApp/index.d.ts +8 -0
- package/dist/esm/getAntApp/index.js +17 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/interface.d.ts +1 -0
- package/dist/esm/interface.js +1 -0
- package/dist/esm/styles/cssVar.less +28 -0
- package/dist/esm/styles/reset.css +3 -0
- package/dist/esm/styles/var.d.ts +1 -0
- package/dist/esm/styles/var.js +1 -0
- package/dist/esm/styles/var.less +2 -0
- package/dist/esm/variable.less +52 -0
- package/dist/lib/CheckGroup/context.d.ts +9 -0
- package/dist/lib/CheckGroup/context.js +12 -0
- package/dist/lib/CheckGroup/hooks/useCheckGroup.d.ts +21 -0
- package/dist/lib/CheckGroup/hooks/useCheckGroup.js +164 -0
- package/dist/lib/CheckGroup/index.d.ts +9 -0
- package/dist/lib/CheckGroup/index.js +93 -0
- package/dist/lib/CheckGroup/type.d.ts +28 -0
- package/dist/lib/CheckGroup/type.js +5 -0
- package/dist/lib/Grid/index.d.ts +15 -0
- package/dist/lib/Grid/index.js +77 -0
- package/dist/lib/Grid/index.less +7 -0
- package/dist/lib/KaTeXRenderer/index.d.ts +9 -0
- package/dist/lib/KaTeXRenderer/index.js +41 -0
- package/dist/lib/KaTeXRenderer/index.less +0 -0
- package/dist/lib/PixelPlayer/index.d.ts +28 -0
- package/dist/lib/PixelPlayer/index.js +108 -0
- package/dist/lib/PixelPlayer/index.less +29 -0
- package/dist/lib/PixelPlayer/lib/peer-stream.d.ts +62 -0
- package/dist/lib/PixelPlayer/lib/peer-stream.js +707 -0
- package/dist/lib/PixelPlayer/useAutoLayoutContainer.d.ts +2 -0
- package/dist/lib/PixelPlayer/useAutoLayoutContainer.js +60 -0
- package/dist/lib/PixelPlayer/useVideoWithCustomEvent.d.ts +5 -0
- package/dist/lib/PixelPlayer/useVideoWithCustomEvent.js +35 -0
- package/dist/lib/Resizer/index.d.ts +17 -0
- package/dist/lib/Resizer/index.js +75 -0
- package/dist/lib/Resizer/index.less +73 -0
- package/dist/lib/SetupAntApp/index.d.ts +1 -0
- package/dist/lib/SetupAntApp/index.js +16 -0
- package/dist/lib/Transition/index.d.ts +4 -0
- package/dist/lib/Transition/index.js +128 -0
- package/dist/lib/Transition/type.d.ts +33 -0
- package/dist/lib/Transition/type.js +18 -0
- package/dist/lib/Transition/utils.d.ts +6 -0
- package/dist/lib/Transition/utils.js +22 -0
- package/dist/lib/UploadFile/components/IconButton/index.d.ts +11 -0
- package/dist/lib/UploadFile/components/IconButton/index.js +29 -0
- package/dist/lib/UploadFile/components/IconButton/index.less +58 -0
- package/dist/lib/UploadFile/components/Slash.d.ts +2 -0
- package/dist/lib/UploadFile/components/Slash.js +22 -0
- package/dist/lib/UploadFile/components/SvgIcons.d.ts +11 -0
- package/dist/lib/UploadFile/components/SvgIcons.js +158 -0
- package/dist/lib/UploadFile/hooks/useUploadModel.d.ts +16 -0
- package/dist/lib/UploadFile/hooks/useUploadModel.js +306 -0
- package/dist/lib/UploadFile/index.d.ts +4 -0
- package/dist/lib/UploadFile/index.js +280 -0
- package/dist/lib/UploadFile/index.less +274 -0
- package/dist/lib/UploadFile/type.d.ts +63 -0
- package/dist/lib/UploadFile/type.js +5 -0
- package/dist/lib/UploadFile/utils/formatBitString.d.ts +1 -0
- package/dist/lib/UploadFile/utils/formatBitString.js +15 -0
- package/dist/lib/UploadFile/utils/getExt.d.ts +1 -0
- package/dist/lib/UploadFile/utils/getExt.js +12 -0
- package/dist/lib/UploadFile/utils/isImage.d.ts +1 -0
- package/dist/lib/UploadFile/utils/isImage.js +14 -0
- package/dist/lib/UploadFile/utils/normalizeExt.d.ts +1 -0
- package/dist/lib/UploadFile/utils/normalizeExt.js +10 -0
- package/dist/lib/UploadFile/utils/validateFileTypes.d.ts +13 -0
- package/dist/lib/UploadFile/utils/validateFileTypes.js +87 -0
- package/dist/lib/UploadFile/utils/validateRule.d.ts +3 -0
- package/dist/lib/UploadFile/utils/validateRule.js +28 -0
- package/dist/lib/UploadFile/utils/validateUpload.d.ts +5 -0
- package/dist/lib/UploadFile/utils/validateUpload.js +31 -0
- package/dist/lib/constant/index.d.ts +7 -0
- package/dist/lib/constant/index.js +24 -0
- package/dist/lib/constants/cssPrefix.d.ts +1 -0
- package/dist/lib/constants/cssPrefix.js +7 -0
- package/dist/lib/getAntApp/index.d.ts +8 -0
- package/dist/lib/getAntApp/index.js +27 -0
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/index.js +69 -0
- package/dist/lib/interface.d.ts +1 -0
- package/dist/lib/interface.js +5 -0
- package/dist/lib/styles/cssVar.less +28 -0
- package/dist/lib/styles/reset.css +3 -0
- package/dist/lib/styles/var.d.ts +1 -0
- package/dist/lib/styles/var.js +7 -0
- package/dist/lib/styles/var.less +2 -0
- package/dist/lib/variable.less +52 -0
- package/package.json +54 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { HTMLAttributes } from 'react';
|
|
2
|
+
import './index.less';
|
|
3
|
+
export interface GridProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
gap?: number | [number, number];
|
|
5
|
+
col: number;
|
|
6
|
+
pxTransform?: (n: number) => string;
|
|
7
|
+
}
|
|
8
|
+
declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement | null>>;
|
|
9
|
+
declare const GridItem: ({ className, children }: HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
type GridType = typeof Grid;
|
|
11
|
+
interface IGrid extends GridType {
|
|
12
|
+
Item: typeof GridItem;
|
|
13
|
+
}
|
|
14
|
+
declare const GridCom: IGrid;
|
|
15
|
+
export default GridCom;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
require("./index.less");
|
|
12
|
+
var _var = require("../styles/var");
|
|
13
|
+
var _utils = require("@chaomingd/utils");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
const GridContext = /*#__PURE__*/(0, _react.createContext)({});
|
|
16
|
+
function toMarginPadding(gap, type, pxTransform) {
|
|
17
|
+
if (!gap) return undefined;
|
|
18
|
+
let gaps;
|
|
19
|
+
if (Array.isArray(gap)) {
|
|
20
|
+
gaps = gap;
|
|
21
|
+
} else {
|
|
22
|
+
gaps = [gap, gap];
|
|
23
|
+
}
|
|
24
|
+
if (type === 'margin') {
|
|
25
|
+
return `${pxTransform(-gaps[0] / 2)} ${pxTransform(-gaps[1] / 2)}`;
|
|
26
|
+
}
|
|
27
|
+
return `${pxTransform(gaps[0] / 2)} ${pxTransform(gaps[1] / 2)}`;
|
|
28
|
+
}
|
|
29
|
+
const Grid = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
30
|
+
const {
|
|
31
|
+
className,
|
|
32
|
+
children,
|
|
33
|
+
gap,
|
|
34
|
+
pxTransform,
|
|
35
|
+
col
|
|
36
|
+
} = props;
|
|
37
|
+
if (!col) return null;
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridContext.Provider, {
|
|
39
|
+
value: props,
|
|
40
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
41
|
+
ref: ref,
|
|
42
|
+
className: (0, _classnames.default)(className, `${_var.CSS_PREFIX}-grid`),
|
|
43
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
44
|
+
style: {
|
|
45
|
+
margin: toMarginPadding(gap, 'margin', pxTransform || _utils.pxtorem)
|
|
46
|
+
},
|
|
47
|
+
className: `${_var.CSS_PREFIX}-grid-wrapper`,
|
|
48
|
+
children: children
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// export interface GridItemProps extends HTMLAttributes<HTMLDivElement> {}
|
|
55
|
+
|
|
56
|
+
const GridItem = ({
|
|
57
|
+
className,
|
|
58
|
+
children
|
|
59
|
+
}) => {
|
|
60
|
+
const gridProps = (0, _react.useContext)(GridContext);
|
|
61
|
+
const {
|
|
62
|
+
gap,
|
|
63
|
+
col,
|
|
64
|
+
pxTransform
|
|
65
|
+
} = gridProps;
|
|
66
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
67
|
+
style: {
|
|
68
|
+
padding: toMarginPadding(gap, 'padding', pxTransform || _utils.pxtorem),
|
|
69
|
+
width: `${100 / col}%`
|
|
70
|
+
},
|
|
71
|
+
className: (0, _classnames.default)(className, `${_var.CSS_PREFIX}-grid-item`),
|
|
72
|
+
children: children
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
const GridCom = Grid;
|
|
76
|
+
GridCom.Item = GridItem;
|
|
77
|
+
var _default = exports.default = GridCom;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import 'katex/dist/katex.min.css';
|
|
3
|
+
interface KaTeXRendererProps {
|
|
4
|
+
expression: string;
|
|
5
|
+
errorMessage?: string;
|
|
6
|
+
displayMode?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const KaTeXRenderer: React.FC<KaTeXRendererProps>;
|
|
9
|
+
export default KaTeXRenderer;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _katex = _interopRequireDefault(require("katex"));
|
|
11
|
+
require("katex/dist/katex.min.css");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
// KaTeXRenderer.tsx
|
|
14
|
+
|
|
15
|
+
// 引入 KaTeX 的样式
|
|
16
|
+
|
|
17
|
+
const KaTeXRenderer = ({
|
|
18
|
+
expression,
|
|
19
|
+
errorMessage = 'Invalid LaTeX expression',
|
|
20
|
+
displayMode = false
|
|
21
|
+
}) => {
|
|
22
|
+
const containerRef = (0, _react.useRef)(null);
|
|
23
|
+
console.log('expression', expression);
|
|
24
|
+
(0, _react.useEffect)(() => {
|
|
25
|
+
if (containerRef.current) {
|
|
26
|
+
try {
|
|
27
|
+
_katex.default.render(String.raw`${expression}`, containerRef.current, {
|
|
28
|
+
throwOnError: false,
|
|
29
|
+
displayMode
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
containerRef.current.innerHTML = `<span style="color: red;">${errorMessage}</span>`;
|
|
33
|
+
console.error('KaTeX render error:', error);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}, [expression, displayMode, errorMessage]);
|
|
37
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
38
|
+
ref: containerRef
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var _default = exports.default = KaTeXRenderer;
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './index.less';
|
|
3
|
+
interface CommonProps {
|
|
4
|
+
disablePictureInPicture?: boolean;
|
|
5
|
+
reconnectCount?: number;
|
|
6
|
+
poster?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface VideoHandler {
|
|
9
|
+
play: () => void;
|
|
10
|
+
stop: () => void;
|
|
11
|
+
pause: () => void;
|
|
12
|
+
status: Status;
|
|
13
|
+
}
|
|
14
|
+
type Status = 'playing' | 'paused' | 'stopped' | 'connecting' | 'disconnected' | 'reConnecting';
|
|
15
|
+
export declare const PixelPlayer: React.ForwardRefExoticComponent<{
|
|
16
|
+
disablePictureInPicture?: boolean | undefined;
|
|
17
|
+
onConnected?: (() => void) | undefined;
|
|
18
|
+
onDisconnected?: (() => void) | undefined;
|
|
19
|
+
onTryConnect?: (() => void) | undefined;
|
|
20
|
+
onClick?: (() => void) | undefined;
|
|
21
|
+
renderConnectingView?: (() => JSX.Element) | undefined;
|
|
22
|
+
renderDisconnectedView?: (() => JSX.Element) | undefined;
|
|
23
|
+
renderReconnectingView?: (() => JSX.Element) | undefined;
|
|
24
|
+
url: string;
|
|
25
|
+
className?: string | undefined;
|
|
26
|
+
positionOrigin?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | undefined;
|
|
27
|
+
} & CommonProps & React.RefAttributes<VideoHandler>>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PixelPlayer = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _peerStream = require("./lib/peer-stream");
|
|
10
|
+
var _useVideoWithCustomEvent = require("./useVideoWithCustomEvent");
|
|
11
|
+
var _useAutoLayoutContainer = require("./useAutoLayoutContainer");
|
|
12
|
+
require("./index.less");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
(0, _peerStream.initialize)({});
|
|
15
|
+
const defaultRenderTextView = text => {
|
|
16
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
17
|
+
className: "c-pixel-player__placeholder",
|
|
18
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
19
|
+
className: "c-pixel-player__placeholder-text",
|
|
20
|
+
children: text
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const PixelPlayer = exports.PixelPlayer = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
25
|
+
const [status, setStatus] = (0, _react.useState)('connecting');
|
|
26
|
+
const {
|
|
27
|
+
onConnected: externalOnConnected,
|
|
28
|
+
onDisconnected: externalOnDisconnected,
|
|
29
|
+
onTryConnect: externalOnTryConnect,
|
|
30
|
+
onClick,
|
|
31
|
+
renderConnectingView = () => {
|
|
32
|
+
return defaultRenderTextView('正在连接中......');
|
|
33
|
+
},
|
|
34
|
+
renderReconnectingView = () => {
|
|
35
|
+
return defaultRenderTextView('正在重连中......');
|
|
36
|
+
},
|
|
37
|
+
renderDisconnectedView = () => {
|
|
38
|
+
return defaultRenderTextView('连接已断开');
|
|
39
|
+
}
|
|
40
|
+
} = props;
|
|
41
|
+
const onConnected = (0, _react.useCallback)(() => {
|
|
42
|
+
setStatus('playing');
|
|
43
|
+
externalOnConnected?.();
|
|
44
|
+
}, [externalOnConnected]);
|
|
45
|
+
const onDisconnected = (0, _react.useCallback)(() => {
|
|
46
|
+
setStatus('disconnected');
|
|
47
|
+
externalOnDisconnected?.();
|
|
48
|
+
}, [externalOnDisconnected]);
|
|
49
|
+
const onTryConnect = (0, _react.useCallback)(() => {
|
|
50
|
+
setStatus('reConnecting');
|
|
51
|
+
externalOnTryConnect?.();
|
|
52
|
+
}, []);
|
|
53
|
+
const filteredEventHandlers = Object.fromEntries(Object.entries({
|
|
54
|
+
onDisconnected,
|
|
55
|
+
onConnected,
|
|
56
|
+
onTryConnect,
|
|
57
|
+
onClick
|
|
58
|
+
}).filter(([_, value]) => value !== undefined));
|
|
59
|
+
const videoRef = (0, _useVideoWithCustomEvent.useVideoWithCustomEvent)(filteredEventHandlers);
|
|
60
|
+
const containerRef = (0, _useAutoLayoutContainer.useAutoLayoutContainer)(videoRef, props.positionOrigin || 'top-left');
|
|
61
|
+
(0, _react.useImperativeHandle)(ref, () => ({
|
|
62
|
+
play: () => {
|
|
63
|
+
// console.log('播放')
|
|
64
|
+
videoRef.current?.customPlay();
|
|
65
|
+
// 默认播放成功
|
|
66
|
+
setStatus('playing');
|
|
67
|
+
},
|
|
68
|
+
pause: () => {
|
|
69
|
+
// console.log('暂停')
|
|
70
|
+
videoRef.current?.customPause();
|
|
71
|
+
setStatus('paused');
|
|
72
|
+
},
|
|
73
|
+
stop: () => {
|
|
74
|
+
// console.log('停止')
|
|
75
|
+
videoRef.current?.customStop();
|
|
76
|
+
setStatus('stopped');
|
|
77
|
+
},
|
|
78
|
+
status
|
|
79
|
+
// 可以添加其他想要暴露的方法或属性
|
|
80
|
+
}));
|
|
81
|
+
const videoProps = {
|
|
82
|
+
is: 'peer-stream',
|
|
83
|
+
signal: props.url,
|
|
84
|
+
reconnectCount: props.reconnectCount,
|
|
85
|
+
poster: props.poster,
|
|
86
|
+
disablePictureInPicture: true
|
|
87
|
+
};
|
|
88
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
89
|
+
className: ['c-pixel-player__container', props.className].join(' '),
|
|
90
|
+
ref: containerRef,
|
|
91
|
+
children: [(() => {
|
|
92
|
+
switch (status) {
|
|
93
|
+
case 'connecting':
|
|
94
|
+
return renderConnectingView();
|
|
95
|
+
case 'disconnected':
|
|
96
|
+
return renderDisconnectedView();
|
|
97
|
+
case 'reConnecting':
|
|
98
|
+
return renderReconnectingView();
|
|
99
|
+
default:
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
})(), /*#__PURE__*/(0, _jsxRuntime.jsx)("video", {
|
|
103
|
+
className: "c-pixel-player__video",
|
|
104
|
+
...videoProps,
|
|
105
|
+
ref: videoRef
|
|
106
|
+
})]
|
|
107
|
+
});
|
|
108
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.c-pixel-player {
|
|
2
|
+
&__container {
|
|
3
|
+
position: relative;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
width: 800px;
|
|
6
|
+
height: 400px;
|
|
7
|
+
}
|
|
8
|
+
&__video {
|
|
9
|
+
position: absolute;
|
|
10
|
+
}
|
|
11
|
+
&__placeholder {
|
|
12
|
+
position: absolute;
|
|
13
|
+
z-index: 10;
|
|
14
|
+
top: 0;
|
|
15
|
+
right: 0;
|
|
16
|
+
bottom: 0;
|
|
17
|
+
left: 0;
|
|
18
|
+
background: #111;
|
|
19
|
+
&-text {
|
|
20
|
+
position: absolute;
|
|
21
|
+
transform: translate(-50%, -50%);
|
|
22
|
+
left: 50%;
|
|
23
|
+
font-size: 20px;
|
|
24
|
+
color: #fff;
|
|
25
|
+
letter-spacing: 1px;
|
|
26
|
+
top: 50%;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
type CreatePeerStreamOptions = {
|
|
2
|
+
poster?: string;
|
|
3
|
+
onInitialize?: () => void;
|
|
4
|
+
};
|
|
5
|
+
declare const customEventsArray: readonly ["initialize", "connected", "disconnected", "tryConnect", "message", "error"];
|
|
6
|
+
export declare class PeerStream extends HTMLVideoElement {
|
|
7
|
+
ws: WebSocket;
|
|
8
|
+
pc: RTCPeerConnection;
|
|
9
|
+
VideoEncoderQP?: number;
|
|
10
|
+
QualityControlOwnership?: boolean;
|
|
11
|
+
InitialSettings: any;
|
|
12
|
+
disablepictureinpicture?: boolean;
|
|
13
|
+
dc: any;
|
|
14
|
+
audio?: HTMLAudioElement;
|
|
15
|
+
ping: number;
|
|
16
|
+
customEvents: {
|
|
17
|
+
[K in (typeof customEventsArray)[number]]: CustomEvent;
|
|
18
|
+
};
|
|
19
|
+
reconnect: number;
|
|
20
|
+
reconnectCount: number;
|
|
21
|
+
constructor(...params: any[]);
|
|
22
|
+
createCustomEvents(): void;
|
|
23
|
+
customPlay(): void;
|
|
24
|
+
customPause(): void;
|
|
25
|
+
customStop(): void;
|
|
26
|
+
setupWebsocket(): void;
|
|
27
|
+
setupAttributes(): void;
|
|
28
|
+
connectedCallback(): void;
|
|
29
|
+
disconnectedCallback(): void;
|
|
30
|
+
adoptedCallback(): void;
|
|
31
|
+
static observedAttributes: string[];
|
|
32
|
+
attributeChangedCallback(): void;
|
|
33
|
+
onWebSocketMessage(msgStr: string): Promise<void>;
|
|
34
|
+
onDataChannelMessage(message: ArrayBuffer): void;
|
|
35
|
+
setupVideo(): void;
|
|
36
|
+
setupDataChannel(label?: string): void;
|
|
37
|
+
setupPeerConnection(): void;
|
|
38
|
+
setupOffer(): Promise<void>;
|
|
39
|
+
registerKeyboardEvents(): void;
|
|
40
|
+
registerTouchEvents(): void;
|
|
41
|
+
registerFakeMouseEvents(): void;
|
|
42
|
+
registerMouseHoverEvents(): void;
|
|
43
|
+
registerPointerlockEvents(): void;
|
|
44
|
+
registerMouseEnterAndLeaveEvents(): void;
|
|
45
|
+
emitMouseMove(x: number, y: number, deltaX: number, deltaY: number): void;
|
|
46
|
+
emitMouseDown(button: number, x: number, y: number): void;
|
|
47
|
+
emitMouseUp(button: number, x: number, y: number): void;
|
|
48
|
+
emitMouseWheel(delta: number, x: number, y: number): void;
|
|
49
|
+
emitTouchData(type: number, touches: string | any[] | TouchList, fingerIds: {
|
|
50
|
+
[x: string]: number;
|
|
51
|
+
}): void;
|
|
52
|
+
emitMessage(msg: string | any[], messageType?: number): boolean;
|
|
53
|
+
_normalize(x: number, y: number): {
|
|
54
|
+
inRange: boolean;
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
};
|
|
58
|
+
debug(NodeJS: any): void;
|
|
59
|
+
}
|
|
60
|
+
type InitialSettings = {} & CreatePeerStreamOptions;
|
|
61
|
+
export declare function initialize(initialSettings: InitialSettings): void;
|
|
62
|
+
export {};
|