@cloud-app-dev/vidc 3.0.4 → 3.0.7
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 +12 -7
- package/es/DisableMark/index.css +9 -0
- package/es/DisableMark/index.d.ts +8 -0
- package/es/DisableMark/index.js +9 -0
- package/es/Drawer/index.css +1 -0
- package/es/Map/AMap.d.ts +14 -1
- package/es/Map/BasicMap/AMapInstance.js +18 -2
- package/es/Map/Config/utils.js +2 -2
- package/es/Player/demo.js +4 -3
- package/es/Player/iconfont.d.ts +1 -1
- package/es/Player/iconfont.js +1 -1
- package/es/Player/live_heart.js +7 -32
- package/es/Player/style/iconfont.ttf +0 -0
- package/es/Player/style/iconfont.woff +0 -0
- package/es/Player/style/iconfont.woff2 +0 -0
- package/es/ScreenPlayer/Live.d.ts +1 -1
- package/es/ScreenPlayer/Live.js +13 -3
- package/es/ScreenPlayer/LiveTools.d.ts +3 -1
- package/es/ScreenPlayer/LiveTools.js +84 -47
- package/es/ScreenPlayer/PlayerWithExt.js +0 -3
- package/es/ScreenPlayer/Record.d.ts +1 -1
- package/es/ScreenPlayer/Record.js +55 -16
- package/es/ScreenPlayer/RecordTools.d.ts +7 -1
- package/es/ScreenPlayer/RecordTools.js +112 -46
- package/es/ScreenPlayer/ScreenSelect.d.ts +7 -0
- package/es/ScreenPlayer/ScreenSelect.js +28 -0
- package/es/ScreenPlayer/SegmentTimeLine.d.ts +5 -2
- package/es/ScreenPlayer/SegmentTimeLine.js +14 -9
- package/es/ScreenPlayer/TimeMode.d.ts +7 -0
- package/es/ScreenPlayer/TimeMode.js +23 -0
- package/es/ScreenPlayer/TimeSelect.d.ts +7 -0
- package/es/ScreenPlayer/TimeSelect.js +128 -0
- package/es/ScreenPlayer/TimeSlider.d.ts +1 -1
- package/es/ScreenPlayer/TimeSlider.js +7 -10
- package/es/ScreenPlayer/demo.d.ts +1 -1
- package/es/ScreenPlayer/demo.js +9 -4
- package/es/ScreenPlayer/demo2.js +1 -1
- package/es/ScreenPlayer/index.css +79 -4
- package/es/ScreenPlayer/interface.d.ts +32 -0
- package/es/ScreenPlayer/utils.d.ts +3 -0
- package/es/ScreenPlayer/utils.js +9 -0
- package/es/Timeout/index.d.ts +8 -9
- package/es/Timeout/index.js +17 -23
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import "antd/lib/button/style";
|
|
2
|
+
import _Button from "antd/lib/button";
|
|
3
|
+
import "antd/lib/input-number/style";
|
|
4
|
+
import _InputNumber from "antd/lib/input-number";
|
|
5
|
+
import "antd/lib/popover/style";
|
|
6
|
+
import _Popover from "antd/lib/popover";
|
|
7
|
+
import _useUpdateEffect from "ahooks/es/useUpdateEffect";
|
|
8
|
+
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
|
|
11
|
+
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."); }
|
|
12
|
+
|
|
13
|
+
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); }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
+
|
|
21
|
+
import React, { useMemo, useState } from 'react';
|
|
22
|
+
import moment from 'moment';
|
|
23
|
+
|
|
24
|
+
function TimeSelect(_ref) {
|
|
25
|
+
var time = _ref.time,
|
|
26
|
+
onChange = _ref.onChange;
|
|
27
|
+
|
|
28
|
+
var _useState = useState(function () {
|
|
29
|
+
var m = time ? moment(time) : moment().set({
|
|
30
|
+
hours: 0,
|
|
31
|
+
minutes: 0,
|
|
32
|
+
seconds: 0
|
|
33
|
+
});
|
|
34
|
+
return [m.hours(), m.minutes(), m.seconds()];
|
|
35
|
+
}),
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
values = _useState2[0],
|
|
38
|
+
setValues = _useState2[1];
|
|
39
|
+
|
|
40
|
+
var timeStr = useMemo(function () {
|
|
41
|
+
var m = time ? moment(time) : moment().set({
|
|
42
|
+
hours: 0,
|
|
43
|
+
minutes: 0,
|
|
44
|
+
seconds: 0
|
|
45
|
+
});
|
|
46
|
+
return m.format('HH:mm:ss');
|
|
47
|
+
}, [time]);
|
|
48
|
+
|
|
49
|
+
var onChangeTime = function onChangeTime() {
|
|
50
|
+
var m = time ? moment(time) : moment().set({
|
|
51
|
+
hours: 0,
|
|
52
|
+
minutes: 0,
|
|
53
|
+
seconds: 0
|
|
54
|
+
});
|
|
55
|
+
var newTime = m.set({
|
|
56
|
+
hours: values[0],
|
|
57
|
+
minutes: values[1],
|
|
58
|
+
seconds: values[2]
|
|
59
|
+
}).valueOf();
|
|
60
|
+
onChange && onChange(newTime);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
_useUpdateEffect(function () {
|
|
64
|
+
var m = time ? moment(time) : moment().set({
|
|
65
|
+
hours: 0,
|
|
66
|
+
minutes: 0,
|
|
67
|
+
seconds: 0
|
|
68
|
+
});
|
|
69
|
+
setValues([m.hours(), m.minutes(), m.seconds()]);
|
|
70
|
+
}, [time]);
|
|
71
|
+
|
|
72
|
+
var formatter = function formatter(value) {
|
|
73
|
+
return String(value).length === 1 ? "0".concat(value) : value + '';
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
return /*#__PURE__*/React.createElement(_Popover, {
|
|
77
|
+
content: /*#__PURE__*/React.createElement("div", {
|
|
78
|
+
className: "player-time-select"
|
|
79
|
+
}, /*#__PURE__*/React.createElement(_InputNumber, {
|
|
80
|
+
size: "small",
|
|
81
|
+
style: {
|
|
82
|
+
width: 36
|
|
83
|
+
},
|
|
84
|
+
formatter: formatter,
|
|
85
|
+
controls: false,
|
|
86
|
+
value: values[0],
|
|
87
|
+
onChange: function onChange(v) {
|
|
88
|
+
return setValues(function (old) {
|
|
89
|
+
return [v, old[1], old[2]];
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}), ":", /*#__PURE__*/React.createElement(_InputNumber, {
|
|
93
|
+
size: "small",
|
|
94
|
+
style: {
|
|
95
|
+
width: 36
|
|
96
|
+
},
|
|
97
|
+
formatter: formatter,
|
|
98
|
+
controls: false,
|
|
99
|
+
value: values[1],
|
|
100
|
+
onChange: function onChange(v) {
|
|
101
|
+
return setValues(function (old) {
|
|
102
|
+
return [old[0], v, old[2]];
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}), ":", /*#__PURE__*/React.createElement(_InputNumber, {
|
|
106
|
+
size: "small",
|
|
107
|
+
style: {
|
|
108
|
+
width: 36
|
|
109
|
+
},
|
|
110
|
+
formatter: formatter,
|
|
111
|
+
controls: false,
|
|
112
|
+
value: values[2],
|
|
113
|
+
onChange: function onChange(v) {
|
|
114
|
+
return setValues(function (old) {
|
|
115
|
+
return [old[0], old[1], v];
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}), /*#__PURE__*/React.createElement(_Button, {
|
|
119
|
+
size: "small",
|
|
120
|
+
type: "primary",
|
|
121
|
+
onClick: onChangeTime
|
|
122
|
+
}, "\u786E\u5B9A"))
|
|
123
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
124
|
+
className: "player-record-time"
|
|
125
|
+
}, timeStr));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export default TimeSelect;
|
|
@@ -4,7 +4,7 @@ export interface ITimeSliderOptions {
|
|
|
4
4
|
start_timestamp?: number;
|
|
5
5
|
timecell?: TimeCellItem[];
|
|
6
6
|
current_timestamp?: number;
|
|
7
|
-
onTimeChange?: (time: number) => void;
|
|
7
|
+
onTimeChange?: (time: number, outTimeline?: boolean) => void;
|
|
8
8
|
}
|
|
9
9
|
export declare type TimeCellItem = ISegmentType;
|
|
10
10
|
export default class TimeSlider {
|
|
@@ -103,7 +103,7 @@ var TimeSlider = /*#__PURE__*/function () {
|
|
|
103
103
|
_this.drawLine(pos_x, 20, pos_x, _this.canVansH, hoverLineColor, 1);
|
|
104
104
|
|
|
105
105
|
_this.ctx.fillStyle = hoverLineColor;
|
|
106
|
-
_this.ctx.font =
|
|
106
|
+
_this.ctx.font = '10px Arial';
|
|
107
107
|
|
|
108
108
|
_this.ctx.fillText(_this.changeTime(current_timestamp), pos_x - 50, 12);
|
|
109
109
|
}
|
|
@@ -131,18 +131,15 @@ var TimeSlider = /*#__PURE__*/function () {
|
|
|
131
131
|
|
|
132
132
|
var timecellItem = _this.timecell.find(function (v) {
|
|
133
133
|
return current_timestamp >= v.beginTime && current_timestamp < v.endTime;
|
|
134
|
-
});
|
|
134
|
+
}); // 当前片段没有录像的时候
|
|
135
135
|
|
|
136
|
-
if (timecellItem && !timecellItem.url) {
|
|
137
|
-
// 无录像轴 不让点击
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
136
|
|
|
137
|
+
var outTimeline = timecellItem && !timecellItem.url;
|
|
141
138
|
_this.current_timestamp = current_timestamp;
|
|
142
139
|
|
|
143
140
|
_this.set_time_to_middle(_this.current_timestamp);
|
|
144
141
|
|
|
145
|
-
_this.options.onTimeChange && _this.options.onTimeChange(current_timestamp);
|
|
142
|
+
_this.options.onTimeChange && _this.options.onTimeChange(current_timestamp, outTimeline);
|
|
146
143
|
}
|
|
147
144
|
|
|
148
145
|
document.removeEventListener('mousemove', _this.mousemoveFunc);
|
|
@@ -233,7 +230,7 @@ var TimeSlider = /*#__PURE__*/function () {
|
|
|
233
230
|
this.options = options;
|
|
234
231
|
this.canvansW = this.canvas.width = this.canvas.clientWidth;
|
|
235
232
|
this.canVansH = this.canvas.height = this.canvas.clientHeight;
|
|
236
|
-
this.hours_per_ruler = (_a = this.options.hours_per_ruler) !== null && _a !== void 0 ? _a : this.hours_per_ruler;
|
|
233
|
+
this.zoom = this.hours_per_ruler = (_a = this.options.hours_per_ruler) !== null && _a !== void 0 ? _a : this.hours_per_ruler;
|
|
237
234
|
this.start_timestamp = (_b = this.options.start_timestamp) !== null && _b !== void 0 ? _b : this.start_timestamp;
|
|
238
235
|
this.current_timestamp = (_c = this.options.current_timestamp) !== null && _c !== void 0 ? _c : this.current_timestamp;
|
|
239
236
|
this.timecell = (_d = this.options.timecell) !== null && _d !== void 0 ? _d : this.timecell;
|
|
@@ -360,13 +357,13 @@ var TimeSlider = /*#__PURE__*/function () {
|
|
|
360
357
|
lineH = 10;
|
|
361
358
|
var big_date = this.graduation_title(date);
|
|
362
359
|
this.ctx.fillStyle = normalLineColor;
|
|
363
|
-
this.ctx.font =
|
|
360
|
+
this.ctx.font = '10px Arial';
|
|
364
361
|
this.ctx.fillText(big_date, graduation_left - 12, 30);
|
|
365
362
|
} else if (graduation_time / (60 * 1000) % medium_step === 0) {
|
|
366
363
|
lineH = 10;
|
|
367
364
|
var middle_date = this.graduation_title(date);
|
|
368
365
|
this.ctx.fillStyle = normalLineColor;
|
|
369
|
-
this.ctx.font =
|
|
366
|
+
this.ctx.font = '10px Arial';
|
|
370
367
|
this.ctx.fillText(middle_date, graduation_left - (middle_date.length > 5 ? 24 : 12), 30);
|
|
371
368
|
} else {
|
|
372
369
|
lineH = 5;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export default function (): JSX.Element;
|
|
2
|
+
export default function App(): JSX.Element;
|
package/es/ScreenPlayer/demo.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import "antd/lib/config-provider/style";
|
|
2
|
+
import _ConfigProvider from "antd/lib/config-provider";
|
|
1
3
|
import React from 'react';
|
|
2
4
|
import LivePlayer from './Live';
|
|
3
5
|
var list = [{
|
|
@@ -13,13 +15,16 @@ var list = [{
|
|
|
13
15
|
url: 'https://6a75ef90-0-server.antelopecloud.cn/flv_live?app=live&token=557997490_3356491776_1691725056_86b4dd8105fea7b1180408a63d17b37b',
|
|
14
16
|
type: 'flv'
|
|
15
17
|
}];
|
|
16
|
-
export default function () {
|
|
17
|
-
return /*#__PURE__*/React.createElement(
|
|
18
|
+
export default function App() {
|
|
19
|
+
return /*#__PURE__*/React.createElement(_ConfigProvider, {
|
|
20
|
+
prefixCls: "cloudapp"
|
|
21
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
18
22
|
style: {
|
|
19
23
|
width: 1200,
|
|
20
24
|
height: 800
|
|
21
25
|
}
|
|
22
26
|
}, /*#__PURE__*/React.createElement(LivePlayer, {
|
|
23
|
-
list: list
|
|
24
|
-
|
|
27
|
+
list: list,
|
|
28
|
+
onIndexChange: console.log
|
|
29
|
+
})));
|
|
25
30
|
}
|
package/es/ScreenPlayer/demo2.js
CHANGED
|
@@ -28,7 +28,7 @@ import RecordPlayer from './Record';
|
|
|
28
28
|
import moment from 'moment';
|
|
29
29
|
import Service from '../Service';
|
|
30
30
|
import { completionSegments } from './utils';
|
|
31
|
-
var token = "eyJhbGciOiJIUzI1NiJ9.
|
|
31
|
+
var token = "eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDEwMTAwMDQ0NSIsImV4dCI6MTY2MTY1NjgzMTU3MywidWlkIjoiMTAxMDAwMDAwNjk5IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA1MTgsMTAwMDAwMTEwNzI4XSwidmFsaWRUaW1lIjoxNzA0MzgzOTk5MDAwLCJvcHRDZW50ZXJJZCI6IjEwMDEwMDAwMDIzMyIsInVzZXJUeXBlIjoxMDA3MDQsImlhdCI6MTY2MTM5NzYzMTU3M30.OWPxfPgFBWqGJaRsYLSAZohn2AarhbkOuWLa1bwgZE4";
|
|
32
32
|
var cids = ['538509097', '539172446'];
|
|
33
33
|
|
|
34
34
|
var query = function query(_ref) {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
height: 100%;
|
|
4
4
|
box-sizing: border-box;
|
|
5
5
|
user-select: none;
|
|
6
|
+
min-width: 600px;
|
|
6
7
|
}
|
|
7
8
|
.split-screen-player-wrapper .player-layout {
|
|
8
|
-
height: calc(100% -
|
|
9
|
-
border-bottom: 1px solid var(--gray12);
|
|
9
|
+
height: calc(100% - 88px);
|
|
10
10
|
}
|
|
11
11
|
.split-screen-player-wrapper .player-layout .player-with-ext-layout {
|
|
12
12
|
float: left;
|
|
@@ -19,9 +19,64 @@
|
|
|
19
19
|
.split-screen-player-wrapper .player-layout .player-with-ext-layout.player-current-index .lm-player-ext-layout {
|
|
20
20
|
border: 1px solid var(--primary);
|
|
21
21
|
}
|
|
22
|
+
.split-screen-player-wrapper .player-tools-group {
|
|
23
|
+
height: 88px;
|
|
24
|
+
position: relative;
|
|
25
|
+
}
|
|
26
|
+
.split-screen-player-wrapper .player-record-time {
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
text-align: center;
|
|
30
|
+
background-color: var(--gray11);
|
|
31
|
+
line-height: 42px;
|
|
32
|
+
padding: 0 16px;
|
|
33
|
+
font-size: 16px;
|
|
34
|
+
color: var(--gray1);
|
|
35
|
+
margin: 0 20px;
|
|
36
|
+
}
|
|
22
37
|
.split-screen-player-wrapper .player-tools {
|
|
23
38
|
height: 42px;
|
|
24
39
|
background-color: var(--gray12);
|
|
40
|
+
padding: 0 10px;
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: space-between;
|
|
44
|
+
}
|
|
45
|
+
.split-screen-player-wrapper .player-tools .player-tools-left,
|
|
46
|
+
.split-screen-player-wrapper .player-tools .player-tools-right {
|
|
47
|
+
min-width: 35%;
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
}
|
|
51
|
+
.split-screen-player-wrapper .player-tools .player-tools-right {
|
|
52
|
+
justify-content: flex-end;
|
|
53
|
+
margin-right: 0;
|
|
54
|
+
margin-left: 4px;
|
|
55
|
+
}
|
|
56
|
+
.split-screen-player-wrapper .player-tools .player-tools-mid {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-self: center;
|
|
60
|
+
height: 100%;
|
|
61
|
+
}
|
|
62
|
+
.split-screen-player-wrapper .player-tools .player-tools-mid .player-tools-item {
|
|
63
|
+
margin: 0;
|
|
64
|
+
}
|
|
65
|
+
.split-screen-player-wrapper .player-tools .player-tools-item {
|
|
66
|
+
font-size: 18px;
|
|
67
|
+
width: 32px;
|
|
68
|
+
height: 32px;
|
|
69
|
+
color: var(--gray1);
|
|
70
|
+
text-align: center;
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
margin-right: 4px;
|
|
73
|
+
}
|
|
74
|
+
.split-screen-player-wrapper .player-tools .player-tools-item .lm-player-iconfont {
|
|
75
|
+
font-size: 20px;
|
|
76
|
+
}
|
|
77
|
+
.split-screen-player-wrapper .player-tools .player-tools-item:hover {
|
|
78
|
+
background-color: var(--gray11);
|
|
79
|
+
border-radius: var(--radius1);
|
|
25
80
|
}
|
|
26
81
|
.split-screen-player-wrapper.split-screen-player-wrapper-record .record-time-line {
|
|
27
82
|
width: 100%;
|
|
@@ -44,6 +99,26 @@
|
|
|
44
99
|
z-index: 5;
|
|
45
100
|
cursor: not-allowed;
|
|
46
101
|
}
|
|
47
|
-
.
|
|
48
|
-
|
|
102
|
+
.player-time-select {
|
|
103
|
+
width: 190px;
|
|
104
|
+
display: flex;
|
|
105
|
+
justify-content: space-around;
|
|
106
|
+
align-items: center;
|
|
107
|
+
}
|
|
108
|
+
.time-mode-select {
|
|
109
|
+
font-size: var(--fs-small);
|
|
110
|
+
color: var(--gray1);
|
|
111
|
+
}
|
|
112
|
+
.time-mode-select .cloudapp-select-selector {
|
|
113
|
+
background-color: transparent !important;
|
|
114
|
+
border-radius: var(--radius1) !important;
|
|
115
|
+
}
|
|
116
|
+
.time-mode-select .anticon {
|
|
117
|
+
color: var(--gray1);
|
|
118
|
+
}
|
|
119
|
+
.time-mode-select-dropdown {
|
|
120
|
+
font-size: var(--fs-small);
|
|
121
|
+
}
|
|
122
|
+
.time-mode-select-dropdown .cloudapp-select-item {
|
|
123
|
+
font-size: var(--fs-small);
|
|
49
124
|
}
|
|
@@ -23,6 +23,19 @@ export interface IRecordPlayerProps {
|
|
|
23
23
|
* 窗口索引变化,后续基于索引传入播放必要数据
|
|
24
24
|
*/
|
|
25
25
|
onIndexChange: (idx: number) => void;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* 关闭单个窗口
|
|
29
|
+
*/
|
|
30
|
+
onClose?: () => void;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 关闭所有窗口
|
|
34
|
+
*/
|
|
35
|
+
onCloseAll?: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* 窗口索引变化,后续基于索引传入播放必要数据
|
|
38
|
+
*/
|
|
26
39
|
}
|
|
27
40
|
|
|
28
41
|
export interface IRecordPlayerState {
|
|
@@ -60,6 +73,11 @@ export interface IRecordPlayerState {
|
|
|
60
73
|
* 加载中,用于拦截多次时间轴变化需要加载片段的情况
|
|
61
74
|
*/
|
|
62
75
|
loading?: boolean;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* 录像时间轴单页绘制时长单位(hour)
|
|
79
|
+
*/
|
|
80
|
+
timeMode:number
|
|
63
81
|
}
|
|
64
82
|
|
|
65
83
|
export type ScreenItemLivePlayerType = {
|
|
@@ -70,6 +88,20 @@ export type ScreenItemLivePlayerType = {
|
|
|
70
88
|
export interface ILivePlayerProps {
|
|
71
89
|
list?: ScreenItemLivePlayerType[];
|
|
72
90
|
children?: JSX.Element;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 关闭单个窗口
|
|
94
|
+
*/
|
|
95
|
+
onClose?: () => void;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 关闭所有窗口
|
|
99
|
+
*/
|
|
100
|
+
onCloseAll?: () => void;
|
|
101
|
+
/**
|
|
102
|
+
* 窗口索引变化,后续基于索引传入播放必要数据
|
|
103
|
+
*/
|
|
104
|
+
onIndexChange: (idx: number) => void;
|
|
73
105
|
}
|
|
74
106
|
|
|
75
107
|
export interface ILivePlayerState {
|
|
@@ -4,6 +4,9 @@ export declare const ScreenType: {
|
|
|
4
4
|
width: string;
|
|
5
5
|
height: string;
|
|
6
6
|
}[];
|
|
7
|
+
export declare const TimeModeLibs: {
|
|
8
|
+
name: number;
|
|
9
|
+
}[];
|
|
7
10
|
export declare function mergeFill<T, S>(len: number, mergeArr: T[], fillItem: S): (T | S)[];
|
|
8
11
|
export declare const FILTER_KEY = "00|11|00";
|
|
9
12
|
/**
|
package/es/ScreenPlayer/utils.js
CHANGED
|
@@ -15,6 +15,15 @@ export var ScreenType = [{
|
|
|
15
15
|
width: '25%',
|
|
16
16
|
height: '25%'
|
|
17
17
|
}];
|
|
18
|
+
export var TimeModeLibs = [{
|
|
19
|
+
name: 24
|
|
20
|
+
}, {
|
|
21
|
+
name: 12
|
|
22
|
+
}, {
|
|
23
|
+
name: 6
|
|
24
|
+
}, {
|
|
25
|
+
name: 1
|
|
26
|
+
}];
|
|
18
27
|
export function mergeFill(len, mergeArr, fillItem) {
|
|
19
28
|
return new Array(len).fill(fillItem).map(function (v, i) {
|
|
20
29
|
return mergeArr[i] ? mergeArr[i] : v;
|
package/es/Timeout/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { BasicTarget } from 'ahooks/es/utils/domTarget';
|
|
3
|
-
import 'antd/es/modal/style/css';
|
|
4
3
|
interface ITimeoutProps {
|
|
5
4
|
/**
|
|
6
|
-
|
|
5
|
+
* 容器
|
|
6
|
+
* @default `document.body`
|
|
7
7
|
*/
|
|
8
8
|
contianer?: BasicTarget;
|
|
9
9
|
/**
|
|
@@ -14,20 +14,19 @@ interface ITimeoutProps {
|
|
|
14
14
|
* 超时动作,默认退出登录
|
|
15
15
|
*/
|
|
16
16
|
onTimeout?: () => void;
|
|
17
|
+
/**
|
|
18
|
+
* 忽略的情况
|
|
19
|
+
*/
|
|
20
|
+
ignore?: () => boolean;
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
|
-
*
|
|
23
|
+
* @desc 用户创建界面超时回调
|
|
20
24
|
*/
|
|
21
|
-
declare function Timeout({ contianer, time, onTimeout }: ITimeoutProps): JSX.Element;
|
|
25
|
+
declare function Timeout({ contianer, time, onTimeout, ignore }: ITimeoutProps): JSX.Element;
|
|
22
26
|
declare namespace Timeout {
|
|
23
27
|
var defaultProps: {
|
|
24
28
|
time: number;
|
|
25
29
|
contianer: HTMLElement;
|
|
26
|
-
onTimeout: typeof defaultTimeoutAction;
|
|
27
30
|
};
|
|
28
31
|
}
|
|
29
|
-
declare function defaultTimeoutAction(): {
|
|
30
|
-
destroy: () => void;
|
|
31
|
-
update: (configUpdate: import("antd").ModalFuncProps | ((prevConfig: import("antd").ModalFuncProps) => import("antd").ModalFuncProps)) => void;
|
|
32
|
-
};
|
|
33
32
|
export default Timeout;
|
package/es/Timeout/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import "antd/lib/modal/style";
|
|
2
|
-
import _Modal from "antd/lib/modal";
|
|
3
1
|
import _useEventListener from "ahooks/es/useEventListener";
|
|
4
2
|
import _useRafInterval from "ahooks/es/useRafInterval";
|
|
5
3
|
|
|
@@ -16,16 +14,15 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
16
14
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
15
|
|
|
18
16
|
import React, { useEffect, useRef, useState } from 'react';
|
|
19
|
-
|
|
20
|
-
import 'antd/es/modal/style/css';
|
|
17
|
+
|
|
21
18
|
/**
|
|
22
|
-
*
|
|
19
|
+
* @desc 用户创建界面超时回调
|
|
23
20
|
*/
|
|
24
|
-
|
|
25
21
|
function Timeout(_ref) {
|
|
26
22
|
var contianer = _ref.contianer,
|
|
27
23
|
time = _ref.time,
|
|
28
|
-
onTimeout = _ref.onTimeout
|
|
24
|
+
onTimeout = _ref.onTimeout,
|
|
25
|
+
ignore = _ref.ignore;
|
|
29
26
|
var cuurentTimeRef = useRef(Date.now());
|
|
30
27
|
var lockstatusRef = useRef(false);
|
|
31
28
|
|
|
@@ -37,15 +34,24 @@ function Timeout(_ref) {
|
|
|
37
34
|
setState = _useState2[1];
|
|
38
35
|
|
|
39
36
|
_useRafInterval(function () {
|
|
40
|
-
|
|
37
|
+
var now = Date.now();
|
|
38
|
+
setState(function (old) {
|
|
41
39
|
return Object.assign(Object.assign({}, old), {
|
|
42
|
-
timelock:
|
|
40
|
+
timelock: now
|
|
43
41
|
});
|
|
44
42
|
});
|
|
43
|
+
var isIgnore = ignore ? ignore() : false;
|
|
44
|
+
|
|
45
|
+
if (isIgnore) {
|
|
46
|
+
// 如果当前需要忽略,那么重置时间
|
|
47
|
+
cuurentTimeRef.current = now;
|
|
48
|
+
}
|
|
45
49
|
}, 1 * 1000);
|
|
46
50
|
|
|
47
51
|
useEffect(function () {
|
|
48
|
-
|
|
52
|
+
var isIgnore = ignore ? ignore() : false;
|
|
53
|
+
|
|
54
|
+
if (!lockstatusRef.current && state.timelock - cuurentTimeRef.current > time * 1000 && !isIgnore) {
|
|
49
55
|
lockstatusRef.current = true;
|
|
50
56
|
onTimeout && onTimeout();
|
|
51
57
|
setTimeout(function () {
|
|
@@ -64,20 +70,8 @@ function Timeout(_ref) {
|
|
|
64
70
|
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
65
71
|
}
|
|
66
72
|
|
|
67
|
-
function defaultTimeoutAction() {
|
|
68
|
-
return _Modal.warning({
|
|
69
|
-
title: '系统提示',
|
|
70
|
-
content: /*#__PURE__*/React.createElement("p", null, "\u60A8\u957F\u65F6\u95F4\u672A\u64CD\u4F5C\u7CFB\u7EDF\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55\uFF01"),
|
|
71
|
-
onOk: function onOk() {
|
|
72
|
-
sessionStorage.clear();
|
|
73
|
-
window.location.replace('/login');
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
73
|
Timeout.defaultProps = {
|
|
79
74
|
time: 15 * 60,
|
|
80
|
-
contianer: document.body
|
|
81
|
-
onTimeout: defaultTimeoutAction
|
|
75
|
+
contianer: document.body
|
|
82
76
|
};
|
|
83
77
|
export default Timeout;
|
package/es/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { default as Box } from './Box';
|
|
|
6
6
|
export { default as CheckGroupFixed } from './CheckGroupFixed';
|
|
7
7
|
export { default as Config } from './Config';
|
|
8
8
|
export { default as ConfigContext } from './ConfigContext';
|
|
9
|
+
export { default as DisableMark } from './DisableMark';
|
|
9
10
|
export { default as DomMove } from './DomMove';
|
|
10
11
|
export { default as Drag } from './Drag';
|
|
11
12
|
export { default as Drawer } from './Drawer';
|
package/es/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { default as Box } from './Box';
|
|
|
6
6
|
export { default as CheckGroupFixed } from './CheckGroupFixed';
|
|
7
7
|
export { default as Config } from './Config';
|
|
8
8
|
export { default as ConfigContext } from './ConfigContext';
|
|
9
|
+
export { default as DisableMark } from './DisableMark';
|
|
9
10
|
export { default as DomMove } from './DomMove';
|
|
10
11
|
export { default as Drag } from './Drag';
|
|
11
12
|
export { default as Drawer } from './Drawer';
|